@vidispine/vdt-js 22.4.0-pre.4 → 22.4.0-pre.5
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/README.md +2 -2
- package/dist/index.d.ts +1182 -0
- package/dist/index.es.js +1396 -1223
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1403 -1229
- package/dist/index.js.map +1 -1
- package/package.json +23 -9
package/dist/index.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
5
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
7
6
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
8
7
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
8
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
9
9
|
var _typeof = require('@babel/runtime/helpers/typeof');
|
|
10
10
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
11
11
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
@@ -13,10 +13,10 @@ var parseFileSize = require('filesize');
|
|
|
13
13
|
|
|
14
14
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
15
15
|
|
|
16
|
-
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
17
16
|
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
18
17
|
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
19
18
|
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
19
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
20
20
|
var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
|
|
21
21
|
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
|
|
22
22
|
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
|
|
@@ -26,9 +26,15 @@ var gcd = function gcd(a, b) {
|
|
|
26
26
|
return b ? gcd(b, a % b) : a;
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
var parseAspectRatio = function parseAspectRatio(
|
|
30
|
-
var
|
|
29
|
+
var parseAspectRatio = function parseAspectRatio(aspectRatio) {
|
|
30
|
+
var _ref = aspectRatio || {},
|
|
31
|
+
width = _ref.width,
|
|
31
32
|
height = _ref.height;
|
|
33
|
+
|
|
34
|
+
if (width === undefined || height === undefined) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
|
|
32
38
|
var denominator = gcd(width, height);
|
|
33
39
|
var widthRatio = width / denominator;
|
|
34
40
|
var heightRatio = height / denominator;
|
|
@@ -41,256 +47,196 @@ var parseAspectRatio = function parseAspectRatio(_ref) {
|
|
|
41
47
|
return [widthRatio, heightRatio].join(':');
|
|
42
48
|
};
|
|
43
49
|
|
|
44
|
-
|
|
50
|
+
/**
|
|
51
|
+
*
|
|
52
|
+
* @param keyValuePairTypes
|
|
53
|
+
* @returns
|
|
54
|
+
*
|
|
55
|
+
* @category Other
|
|
56
|
+
*/
|
|
57
|
+
var parseKeyValuePairTypes = function parseKeyValuePairTypes(keyValuePairTypes) {
|
|
58
|
+
return Object.fromEntries(keyValuePairTypes.map(function (_ref) {
|
|
59
|
+
var key = _ref.key,
|
|
60
|
+
value = _ref.value;
|
|
61
|
+
return [key, value];
|
|
62
|
+
}));
|
|
63
|
+
};
|
|
45
64
|
|
|
46
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Object with all name of roles in VidiCore
|
|
67
|
+
*
|
|
68
|
+
* @category Auth
|
|
69
|
+
*/
|
|
70
|
+
var ROLE_NAMES = {
|
|
71
|
+
ACCESSCONTROL_READ: '_accesscontrol_read',
|
|
72
|
+
ACCESSCONTROL_WRITE: '_accesscontrol_write',
|
|
73
|
+
ADMINISTRATOR: '_administrator',
|
|
74
|
+
AUTO_PROJECTION_READ: '_auto_projection_read',
|
|
75
|
+
AUTO_PROJECTION_WRITE: '_auto_projection_write',
|
|
76
|
+
COLLECTION_NOTIFICATION_READ: '_collection_notification_read',
|
|
77
|
+
COLLECTION_NOTIFICATION_WRITE: '_collection_notification_write',
|
|
78
|
+
COLLECTION_READ: '_collection_read',
|
|
79
|
+
COLLECTION_WRITE: '_collection_write',
|
|
80
|
+
CONFIGURATION_READ: '_configuration_read',
|
|
81
|
+
DELETION_LOCK_NOTIFICATION_READ: '_deletion_lock_notification_read',
|
|
82
|
+
DELETION_LOCK_NOTIFICATION_WRITE: '_deletion_lock_notification_write',
|
|
83
|
+
DELETION_LOCK_READ: '_deletion_lock_read',
|
|
84
|
+
DELETION_LOCK_WRITE: '_deletion_lock_write',
|
|
85
|
+
DOCUMENT_NOTIFICATION_READ: '_document_notification_read',
|
|
86
|
+
DOCUMENT_NOTIFICATION_WRITE: '_document_notification_write',
|
|
87
|
+
DOCUMENT_READ: '_document_read',
|
|
88
|
+
DOCUMENT_WRITE: '_document_write',
|
|
89
|
+
ERROR_READ: '_error_read',
|
|
90
|
+
ERROR_WRITE: '_error_write',
|
|
91
|
+
EXPORT: '_export',
|
|
92
|
+
EXPORT_TEMPLATE_READ: '_export_template_read',
|
|
93
|
+
EXPORT_TEMPLATE_WRITE: '_export_template_write',
|
|
94
|
+
EXTERNAL_ID_READ: '_external_id_read',
|
|
95
|
+
EXTERNAL_ID_WRITE: '_external_id_write',
|
|
96
|
+
FILE_NOTIFICATION_READ: '_file_notification_read',
|
|
97
|
+
FILE_NOTIFICATION_WRITE: '_file_notification_write',
|
|
98
|
+
FILE_READ: '_file_read',
|
|
99
|
+
FILE_WRITE: '_file_write',
|
|
100
|
+
GROUP_READ: '_group_read',
|
|
101
|
+
GROUP_WRITE: '_group_write',
|
|
102
|
+
IMPORT_WRITE: '_import',
|
|
103
|
+
ITEM_ID_READ: '_item_id_read',
|
|
104
|
+
ITEM_ID_WRITE: '_item_id_write',
|
|
105
|
+
ITEM_NOTIFICATION_READ: '_item_notification_read',
|
|
106
|
+
ITEM_NOTIFICATION_WRITE: '_item_notification_write',
|
|
107
|
+
ITEM_WRITE: '_item_write',
|
|
108
|
+
ITEM_SEARCH: '_item_search',
|
|
109
|
+
ITEM_SHAPE_READ: '_item_shape_read',
|
|
110
|
+
ITEM_SHAPE_WRITE: '_item_shape_write',
|
|
111
|
+
ITEM_TIMELINE_READ: '_item_timeline_read',
|
|
112
|
+
ITEM_TIMELINE_WRITE: '_item_timeline_write',
|
|
113
|
+
ITEM_URI: '_item_uri',
|
|
114
|
+
JOB_NOTIFICATION_READ: '_job_notification_read',
|
|
115
|
+
JOB_NOTIFICATION_WRITE: '_job_notification_write',
|
|
116
|
+
JOB_READ: '_job_read',
|
|
117
|
+
JOB_WRITE: '_job_write',
|
|
118
|
+
LIBRARY_READ: '_library_read',
|
|
119
|
+
LIBRARY_WRITE: '_library_write',
|
|
120
|
+
LOCK_READ: '_lock_read',
|
|
121
|
+
LOCK_WRITE: '_lock_write',
|
|
122
|
+
LOG_READ: '_log_read',
|
|
123
|
+
METADATA_DATASET_READ: '_metadata_dataset_read',
|
|
124
|
+
METADATA_DATASET_WRITE: '_metadata_dataset_write',
|
|
125
|
+
METADATA_FIELD_GROUP_READ: '_metadata_field_group_read',
|
|
126
|
+
METADATA_FIELD_GROUP_WRITE: '_metadata_field_group_write',
|
|
127
|
+
METADATA_FIELD_READ: '_metadata_field_read',
|
|
128
|
+
METADATA_FIELD_WRITE: '_metadata_field_write',
|
|
129
|
+
METADATA_GLOBAL_READ: '_metadata_global_read',
|
|
130
|
+
METADATA_GLOBAL_WRITE: '_metadata_global_write',
|
|
131
|
+
METADATA_LOCK_READ: '_metadata_lock_read',
|
|
132
|
+
METADATA_LOCK_WRITE: '_metadata_lock_write',
|
|
133
|
+
METADATA_READ: '_metadata_read',
|
|
134
|
+
METADATA_SCHEMA_READ: '_metadata_schema_read',
|
|
135
|
+
METADATA_SCHEMA_WRITE: '_metadata_schema_write',
|
|
136
|
+
METADATA_WRITE: '_metadata_write',
|
|
137
|
+
OTIF_ANALYZE: '_otif_analyze',
|
|
138
|
+
OTIF_READ: '_otif_read',
|
|
139
|
+
OTIF_WRITE: '_otif_write',
|
|
140
|
+
PLACEHOLDER_NOTIFICATION_READ: '_placeholder_notification_read',
|
|
141
|
+
PLACEHOLDER_NOTIFICATION_WRITE: '_placeholder_notification_write',
|
|
142
|
+
PROJECTION_READ: '_projection_read',
|
|
143
|
+
PROJECTION_WRITE: '_projection_write',
|
|
144
|
+
QUOTA_NOTIFICATION_READ: '_quota_notification_read',
|
|
145
|
+
QUOTA_NOTIFICATION_WRITE: '_quota_notification_write',
|
|
146
|
+
QUOTA_READ: '_quota_read',
|
|
147
|
+
QUOTA_WRITE: '_quota_write',
|
|
148
|
+
RELATION_READ: '_relation_read',
|
|
149
|
+
RELATION_WRITE: '_relation_write',
|
|
150
|
+
RESOURCE_READ: '_resource_read',
|
|
151
|
+
RESOURCE_WRITE: '_resource_write',
|
|
152
|
+
RUN_AS: '_run_as',
|
|
153
|
+
SEARCH: '_search',
|
|
154
|
+
SEQUENCE_READ: '_sequence_read',
|
|
155
|
+
SEQUENCE_WRITE: '_sequence_write',
|
|
156
|
+
SHAPE_TAG_READ: '_shape_tag_read',
|
|
157
|
+
SHAPE_TAG_WRITE: '_shape_tag_write',
|
|
158
|
+
SITE_MANAGER: '_site_manager',
|
|
159
|
+
SITE_RULE_READ: '_site_rule_read',
|
|
160
|
+
SITE_RULE_WRITE: '_site_rule_write',
|
|
161
|
+
STORAGE_GROUP_READ: '_storage_group_read',
|
|
162
|
+
STORAGE_GROUP_WRITE: '_storage_group_write',
|
|
163
|
+
STORAGE_NOTIFICATION_READ: '_storage_notification_read',
|
|
164
|
+
STORAGE_NOTIFICATION_WRITE: '_storage_notification_write',
|
|
165
|
+
STORAGE_READ: '_storage_read',
|
|
166
|
+
STORAGE_RULE_READ: '_storage_rule_read',
|
|
167
|
+
STORAGE_RULE_WRITE: '_storage_rule_write',
|
|
168
|
+
STORAGE_WRITE: '_storage_write',
|
|
169
|
+
SUPER_ACCESS_USER: '_super_access_user',
|
|
170
|
+
TASKDEFINITION_READ: '_taskdefinition_read',
|
|
171
|
+
TASKDEFINITION_WRITE: '_taskdefinition_write',
|
|
172
|
+
THUMBNAIL_READ: '_thumbnail_read',
|
|
173
|
+
THUMBNAIL_WRITE: '_thumbnail_write',
|
|
174
|
+
TRANSCODER: '_transcoder',
|
|
175
|
+
TRANSFER_READ: '_transfer_read',
|
|
176
|
+
TRANSFER_WRITE: '_transfer_write',
|
|
177
|
+
USER: '_user',
|
|
178
|
+
VXA: '_vxa',
|
|
179
|
+
VXA_READ: '_vxa_read'
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
var SHARED_ATTRIBUTE_KEYS = ['uuid', 'user', 'timestamp', 'change', 'conflict', 'mode'];
|
|
183
|
+
var SHARED_FIELD_AND_GROUP_ATTRIBUTE_KEYS = ['name', 'id', 'referenced', 'data', 'inheritance'];
|
|
184
|
+
/**
|
|
185
|
+
* Array with all available metadata group attributes
|
|
186
|
+
*
|
|
187
|
+
* @category Metadata
|
|
188
|
+
*/
|
|
189
|
+
|
|
190
|
+
var GROUP_ATTRIBUTE_KEYS = [].concat(SHARED_ATTRIBUTE_KEYS, SHARED_FIELD_AND_GROUP_ATTRIBUTE_KEYS, ['cycle', 'field', 'group']);
|
|
191
|
+
/**
|
|
192
|
+
* Array with all available metadata group attributes
|
|
193
|
+
*
|
|
194
|
+
* @category Metadata
|
|
195
|
+
*/
|
|
47
196
|
|
|
48
|
-
var
|
|
49
|
-
|
|
197
|
+
var FIELD_ATTRIBUTE_KEYS = [].concat(SHARED_ATTRIBUTE_KEYS, SHARED_FIELD_AND_GROUP_ATTRIBUTE_KEYS, ['value', 'reference', 'type', 'track']);
|
|
198
|
+
/**
|
|
199
|
+
* Array with all available metadata field value attributes
|
|
200
|
+
*
|
|
201
|
+
* @category Metadata
|
|
202
|
+
*/
|
|
50
203
|
|
|
51
|
-
|
|
52
|
-
var key = _ref.key,
|
|
53
|
-
value = _ref.value;
|
|
54
|
-
return _objectSpread$b(_objectSpread$b({}, a), {}, _defineProperty__default["default"]({}, key, value));
|
|
55
|
-
};
|
|
204
|
+
var FIELD_VALUE_ATTRIBUTE_KEYS = [].concat(SHARED_ATTRIBUTE_KEYS, ['value', 'lang']);
|
|
56
205
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
var
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
var
|
|
70
|
-
var DELETION_LOCK_NOTIFICATION_WRITE = '_deletion_lock_notification_write';
|
|
71
|
-
var DELETION_LOCK_READ = '_deletion_lock_read';
|
|
72
|
-
var DELETION_LOCK_WRITE = '_deletion_lock_write';
|
|
73
|
-
var DOCUMENT_NOTIFICATION_READ = '_document_notification_read';
|
|
74
|
-
var DOCUMENT_NOTIFICATION_WRITE = '_document_notification_write';
|
|
75
|
-
var DOCUMENT_READ = '_document_read';
|
|
76
|
-
var DOCUMENT_WRITE = '_document_write';
|
|
77
|
-
var ERROR_READ = '_error_read';
|
|
78
|
-
var ERROR_WRITE = '_error_write';
|
|
79
|
-
var EXPORT = '_export';
|
|
80
|
-
var EXPORT_TEMPLATE_READ = '_export_template_read';
|
|
81
|
-
var EXPORT_TEMPLATE_WRITE = '_export_template_write';
|
|
82
|
-
var EXTERNAL_ID_READ = '_external_id_read';
|
|
83
|
-
var EXTERNAL_ID_WRITE = '_external_id_write';
|
|
84
|
-
var FILE_NOTIFICATION_READ = '_file_notification_read';
|
|
85
|
-
var FILE_NOTIFICATION_WRITE = '_file_notification_write';
|
|
86
|
-
var FILE_READ = '_file_read';
|
|
87
|
-
var FILE_WRITE = '_file_write';
|
|
88
|
-
var GROUP_READ = '_group_read';
|
|
89
|
-
var GROUP_WRITE = '_group_write';
|
|
90
|
-
var IMPORT_WRITE = '_import';
|
|
91
|
-
var ITEM_ID_READ = '_item_id_read';
|
|
92
|
-
var ITEM_ID_WRITE = '_item_id_write';
|
|
93
|
-
var ITEM_NOTIFICATION_READ = '_item_notification_read';
|
|
94
|
-
var ITEM_NOTIFICATION_WRITE = '_item_notification_write';
|
|
95
|
-
var ITEM_WRITE = '_item_write';
|
|
96
|
-
var ITEM_SEARCH = '_item_search';
|
|
97
|
-
var ITEM_SHAPE_READ = '_item_shape_read';
|
|
98
|
-
var ITEM_SHAPE_WRITE = '_item_shape_write';
|
|
99
|
-
var ITEM_TIMELINE_READ = '_item_timeline_read';
|
|
100
|
-
var ITEM_TIMELINE_WRITE = '_item_timeline_write';
|
|
101
|
-
var ITEM_URI = '_item_uri';
|
|
102
|
-
var JOB_NOTIFICATION_READ = '_job_notification_read';
|
|
103
|
-
var JOB_NOTIFICATION_WRITE = '_job_notification_write';
|
|
104
|
-
var JOB_READ = '_job_read';
|
|
105
|
-
var JOB_WRITE = '_job_write';
|
|
106
|
-
var LIBRARY_READ = '_library_read';
|
|
107
|
-
var LIBRARY_WRITE = '_library_write';
|
|
108
|
-
var LOCK_READ = '_lock_read';
|
|
109
|
-
var LOCK_WRITE = '_lock_write';
|
|
110
|
-
var LOG_READ = '_log_read';
|
|
111
|
-
var METADATA_DATASET_READ = '_metadata_dataset_read';
|
|
112
|
-
var METADATA_DATASET_WRITE = '_metadata_dataset_write';
|
|
113
|
-
var METADATA_FIELD_GROUP_READ = '_metadata_field_group_read';
|
|
114
|
-
var METADATA_FIELD_GROUP_WRITE = '_metadata_field_group_write';
|
|
115
|
-
var METADATA_FIELD_READ = '_metadata_field_read';
|
|
116
|
-
var METADATA_FIELD_WRITE = '_metadata_field_write';
|
|
117
|
-
var METADATA_GLOBAL_READ = '_metadata_global_read';
|
|
118
|
-
var METADATA_GLOBAL_WRITE = '_metadata_global_write';
|
|
119
|
-
var METADATA_LOCK_READ = '_metadata_lock_read';
|
|
120
|
-
var METADATA_LOCK_WRITE = '_metadata_lock_write';
|
|
121
|
-
var METADATA_READ = '_metadata_read';
|
|
122
|
-
var METADATA_SCHEMA_READ = '_metadata_schema_read';
|
|
123
|
-
var METADATA_SCHEMA_WRITE = '_metadata_schema_write';
|
|
124
|
-
var METADATA_WRITE = '_metadata_write';
|
|
125
|
-
var OTIF_ANALYZE = '_otif_analyze';
|
|
126
|
-
var OTIF_READ = '_otif_read';
|
|
127
|
-
var OTIF_WRITE = '_otif_write';
|
|
128
|
-
var PLACEHOLDER_NOTIFICATION_READ = '_placeholder_notification_read';
|
|
129
|
-
var PLACEHOLDER_NOTIFICATION_WRITE = '_placeholder_notification_write';
|
|
130
|
-
var PROJECTION_READ = '_projection_read';
|
|
131
|
-
var PROJECTION_WRITE = '_projection_write';
|
|
132
|
-
var QUOTA_NOTIFICATION_READ = '_quota_notification_read';
|
|
133
|
-
var QUOTA_NOTIFICATION_WRITE = '_quota_notification_write';
|
|
134
|
-
var QUOTA_READ = '_quota_read';
|
|
135
|
-
var QUOTA_WRITE = '_quota_write';
|
|
136
|
-
var RELATION_READ = '_relation_read';
|
|
137
|
-
var RELATION_WRITE = '_relation_write';
|
|
138
|
-
var RESOURCE_READ = '_resource_read';
|
|
139
|
-
var RESOURCE_WRITE = '_resource_write';
|
|
140
|
-
var RUN_AS = '_run_as';
|
|
141
|
-
var SEARCH = '_search';
|
|
142
|
-
var SEQUENCE_READ = '_sequence_read';
|
|
143
|
-
var SEQUENCE_WRITE = '_sequence_write';
|
|
144
|
-
var SHAPE_TAG_READ = '_shape_tag_read';
|
|
145
|
-
var SHAPE_TAG_WRITE = '_shape_tag_write';
|
|
146
|
-
var SITE_MANAGER = '_site_manager';
|
|
147
|
-
var SITE_RULE_READ = '_site_rule_read';
|
|
148
|
-
var SITE_RULE_WRITE = '_site_rule_write';
|
|
149
|
-
var STORAGE_GROUP_READ = '_storage_group_read';
|
|
150
|
-
var STORAGE_GROUP_WRITE = '_storage_group_write';
|
|
151
|
-
var STORAGE_NOTIFICATION_READ = '_storage_notification_read';
|
|
152
|
-
var STORAGE_NOTIFICATION_WRITE = '_storage_notification_write';
|
|
153
|
-
var STORAGE_READ = '_storage_read';
|
|
154
|
-
var STORAGE_RULE_READ = '_storage_rule_read';
|
|
155
|
-
var STORAGE_RULE_WRITE = '_storage_rule_write';
|
|
156
|
-
var STORAGE_WRITE = '_storage_write';
|
|
157
|
-
var SUPER_ACCESS_USER = '_super_access_user';
|
|
158
|
-
var TASKDEFINITION_READ = '_taskdefinition_read';
|
|
159
|
-
var TASKDEFINITION_WRITE = '_taskdefinition_write';
|
|
160
|
-
var THUMBNAIL_READ = '_thumbnail_read';
|
|
161
|
-
var THUMBNAIL_WRITE = '_thumbnail_write';
|
|
162
|
-
var TRANSCODER = '_transcoder';
|
|
163
|
-
var TRANSFER_READ = '_transfer_read';
|
|
164
|
-
var TRANSFER_WRITE = '_transfer_write';
|
|
165
|
-
var USER = '_user';
|
|
166
|
-
var VXA = '_vxa';
|
|
167
|
-
var VXA_READ = '_vxa_read';
|
|
168
|
-
|
|
169
|
-
var roles = /*#__PURE__*/Object.freeze({
|
|
170
|
-
__proto__: null,
|
|
171
|
-
ACCESSCONTROL_READ: ACCESSCONTROL_READ,
|
|
172
|
-
ACCESSCONTROL_WRITE: ACCESSCONTROL_WRITE,
|
|
173
|
-
ADMINISTRATOR: ADMINISTRATOR,
|
|
174
|
-
AUTO_PROJECTION_READ: AUTO_PROJECTION_READ,
|
|
175
|
-
AUTO_PROJECTION_WRITE: AUTO_PROJECTION_WRITE,
|
|
176
|
-
COLLECTION_NOTIFICATION_READ: COLLECTION_NOTIFICATION_READ,
|
|
177
|
-
COLLECTION_NOTIFICATION_WRITE: COLLECTION_NOTIFICATION_WRITE,
|
|
178
|
-
COLLECTION_READ: COLLECTION_READ,
|
|
179
|
-
COLLECTION_WRITE: COLLECTION_WRITE,
|
|
180
|
-
DELETION_LOCK_NOTIFICATION_READ: DELETION_LOCK_NOTIFICATION_READ,
|
|
181
|
-
DELETION_LOCK_NOTIFICATION_WRITE: DELETION_LOCK_NOTIFICATION_WRITE,
|
|
182
|
-
DELETION_LOCK_READ: DELETION_LOCK_READ,
|
|
183
|
-
DELETION_LOCK_WRITE: DELETION_LOCK_WRITE,
|
|
184
|
-
DOCUMENT_NOTIFICATION_READ: DOCUMENT_NOTIFICATION_READ,
|
|
185
|
-
DOCUMENT_NOTIFICATION_WRITE: DOCUMENT_NOTIFICATION_WRITE,
|
|
186
|
-
DOCUMENT_READ: DOCUMENT_READ,
|
|
187
|
-
DOCUMENT_WRITE: DOCUMENT_WRITE,
|
|
188
|
-
ERROR_READ: ERROR_READ,
|
|
189
|
-
ERROR_WRITE: ERROR_WRITE,
|
|
190
|
-
EXPORT: EXPORT,
|
|
191
|
-
EXPORT_TEMPLATE_READ: EXPORT_TEMPLATE_READ,
|
|
192
|
-
EXPORT_TEMPLATE_WRITE: EXPORT_TEMPLATE_WRITE,
|
|
193
|
-
EXTERNAL_ID_READ: EXTERNAL_ID_READ,
|
|
194
|
-
EXTERNAL_ID_WRITE: EXTERNAL_ID_WRITE,
|
|
195
|
-
FILE_NOTIFICATION_READ: FILE_NOTIFICATION_READ,
|
|
196
|
-
FILE_NOTIFICATION_WRITE: FILE_NOTIFICATION_WRITE,
|
|
197
|
-
FILE_READ: FILE_READ,
|
|
198
|
-
FILE_WRITE: FILE_WRITE,
|
|
199
|
-
GROUP_READ: GROUP_READ,
|
|
200
|
-
GROUP_WRITE: GROUP_WRITE,
|
|
201
|
-
IMPORT_WRITE: IMPORT_WRITE,
|
|
202
|
-
ITEM_ID_READ: ITEM_ID_READ,
|
|
203
|
-
ITEM_ID_WRITE: ITEM_ID_WRITE,
|
|
204
|
-
ITEM_NOTIFICATION_READ: ITEM_NOTIFICATION_READ,
|
|
205
|
-
ITEM_NOTIFICATION_WRITE: ITEM_NOTIFICATION_WRITE,
|
|
206
|
-
ITEM_WRITE: ITEM_WRITE,
|
|
207
|
-
ITEM_SEARCH: ITEM_SEARCH,
|
|
208
|
-
ITEM_SHAPE_READ: ITEM_SHAPE_READ,
|
|
209
|
-
ITEM_SHAPE_WRITE: ITEM_SHAPE_WRITE,
|
|
210
|
-
ITEM_TIMELINE_READ: ITEM_TIMELINE_READ,
|
|
211
|
-
ITEM_TIMELINE_WRITE: ITEM_TIMELINE_WRITE,
|
|
212
|
-
ITEM_URI: ITEM_URI,
|
|
213
|
-
JOB_NOTIFICATION_READ: JOB_NOTIFICATION_READ,
|
|
214
|
-
JOB_NOTIFICATION_WRITE: JOB_NOTIFICATION_WRITE,
|
|
215
|
-
JOB_READ: JOB_READ,
|
|
216
|
-
JOB_WRITE: JOB_WRITE,
|
|
217
|
-
LIBRARY_READ: LIBRARY_READ,
|
|
218
|
-
LIBRARY_WRITE: LIBRARY_WRITE,
|
|
219
|
-
LOCK_READ: LOCK_READ,
|
|
220
|
-
LOCK_WRITE: LOCK_WRITE,
|
|
221
|
-
LOG_READ: LOG_READ,
|
|
222
|
-
METADATA_DATASET_READ: METADATA_DATASET_READ,
|
|
223
|
-
METADATA_DATASET_WRITE: METADATA_DATASET_WRITE,
|
|
224
|
-
METADATA_FIELD_GROUP_READ: METADATA_FIELD_GROUP_READ,
|
|
225
|
-
METADATA_FIELD_GROUP_WRITE: METADATA_FIELD_GROUP_WRITE,
|
|
226
|
-
METADATA_FIELD_READ: METADATA_FIELD_READ,
|
|
227
|
-
METADATA_FIELD_WRITE: METADATA_FIELD_WRITE,
|
|
228
|
-
METADATA_GLOBAL_READ: METADATA_GLOBAL_READ,
|
|
229
|
-
METADATA_GLOBAL_WRITE: METADATA_GLOBAL_WRITE,
|
|
230
|
-
METADATA_LOCK_READ: METADATA_LOCK_READ,
|
|
231
|
-
METADATA_LOCK_WRITE: METADATA_LOCK_WRITE,
|
|
232
|
-
METADATA_READ: METADATA_READ,
|
|
233
|
-
METADATA_SCHEMA_READ: METADATA_SCHEMA_READ,
|
|
234
|
-
METADATA_SCHEMA_WRITE: METADATA_SCHEMA_WRITE,
|
|
235
|
-
METADATA_WRITE: METADATA_WRITE,
|
|
236
|
-
OTIF_ANALYZE: OTIF_ANALYZE,
|
|
237
|
-
OTIF_READ: OTIF_READ,
|
|
238
|
-
OTIF_WRITE: OTIF_WRITE,
|
|
239
|
-
PLACEHOLDER_NOTIFICATION_READ: PLACEHOLDER_NOTIFICATION_READ,
|
|
240
|
-
PLACEHOLDER_NOTIFICATION_WRITE: PLACEHOLDER_NOTIFICATION_WRITE,
|
|
241
|
-
PROJECTION_READ: PROJECTION_READ,
|
|
242
|
-
PROJECTION_WRITE: PROJECTION_WRITE,
|
|
243
|
-
QUOTA_NOTIFICATION_READ: QUOTA_NOTIFICATION_READ,
|
|
244
|
-
QUOTA_NOTIFICATION_WRITE: QUOTA_NOTIFICATION_WRITE,
|
|
245
|
-
QUOTA_READ: QUOTA_READ,
|
|
246
|
-
QUOTA_WRITE: QUOTA_WRITE,
|
|
247
|
-
RELATION_READ: RELATION_READ,
|
|
248
|
-
RELATION_WRITE: RELATION_WRITE,
|
|
249
|
-
RESOURCE_READ: RESOURCE_READ,
|
|
250
|
-
RESOURCE_WRITE: RESOURCE_WRITE,
|
|
251
|
-
RUN_AS: RUN_AS,
|
|
252
|
-
SEARCH: SEARCH,
|
|
253
|
-
SEQUENCE_READ: SEQUENCE_READ,
|
|
254
|
-
SEQUENCE_WRITE: SEQUENCE_WRITE,
|
|
255
|
-
SHAPE_TAG_READ: SHAPE_TAG_READ,
|
|
256
|
-
SHAPE_TAG_WRITE: SHAPE_TAG_WRITE,
|
|
257
|
-
SITE_MANAGER: SITE_MANAGER,
|
|
258
|
-
SITE_RULE_READ: SITE_RULE_READ,
|
|
259
|
-
SITE_RULE_WRITE: SITE_RULE_WRITE,
|
|
260
|
-
STORAGE_GROUP_READ: STORAGE_GROUP_READ,
|
|
261
|
-
STORAGE_GROUP_WRITE: STORAGE_GROUP_WRITE,
|
|
262
|
-
STORAGE_NOTIFICATION_READ: STORAGE_NOTIFICATION_READ,
|
|
263
|
-
STORAGE_NOTIFICATION_WRITE: STORAGE_NOTIFICATION_WRITE,
|
|
264
|
-
STORAGE_READ: STORAGE_READ,
|
|
265
|
-
STORAGE_RULE_READ: STORAGE_RULE_READ,
|
|
266
|
-
STORAGE_RULE_WRITE: STORAGE_RULE_WRITE,
|
|
267
|
-
STORAGE_WRITE: STORAGE_WRITE,
|
|
268
|
-
SUPER_ACCESS_USER: SUPER_ACCESS_USER,
|
|
269
|
-
TASKDEFINITION_READ: TASKDEFINITION_READ,
|
|
270
|
-
TASKDEFINITION_WRITE: TASKDEFINITION_WRITE,
|
|
271
|
-
THUMBNAIL_READ: THUMBNAIL_READ,
|
|
272
|
-
THUMBNAIL_WRITE: THUMBNAIL_WRITE,
|
|
273
|
-
TRANSCODER: TRANSCODER,
|
|
274
|
-
TRANSFER_READ: TRANSFER_READ,
|
|
275
|
-
TRANSFER_WRITE: TRANSFER_WRITE,
|
|
276
|
-
USER: USER,
|
|
277
|
-
VXA: VXA,
|
|
278
|
-
VXA_READ: VXA_READ
|
|
279
|
-
});
|
|
206
|
+
/**
|
|
207
|
+
* Array with all available VidiCore system/default field group names
|
|
208
|
+
*
|
|
209
|
+
* @category Metadata
|
|
210
|
+
*/
|
|
211
|
+
var SYSTEM_FIELDGROUPS = ['stl_subtitle', 'stl_tti', 'stl_gsi', 'mrk_marker', 'pho_validation', 'pho_resource', 'pho_error', 'facedetect_rect', 'facedetect_face', 'originalTrackFilename', 'stl_gsiHeader'];
|
|
212
|
+
/**
|
|
213
|
+
* Array with all available VidiCore system/default field group names
|
|
214
|
+
*
|
|
215
|
+
* @category Metadata
|
|
216
|
+
*/
|
|
217
|
+
|
|
218
|
+
var SYSTEM_FIELDS = ['title', 'user', 'shapeTag', 'representativeThumbnail', 'representativeThumbnailNoAuth', 'representativeItems', 'itemId', 'collectionId', 'mediaType', 'mimeType', 'created', 'startTimeCode', 'startSeconds', 'fieldValidationError', 'schemaValidationError', 'originalFilename', 'originalUri', 'originalAudioCodec', 'originalVideoCodec', 'originalHeight', 'originalWidth', 'originalFormat', 'durationSeconds', 'durationTimeCode', 'solr-index', '__user', '__collection', '__collection_size', '__ancestor_collection', '__ancestor_collection_size', '__shape', '__shape_size', '__shape_last_added', '__placeholder_shape_size', '__version', '__version_count', '__storage', '__storage_size', '__shapetag_{tag}_hash_{hash}', '__storage_{tag}', '__storage_{tag}_size', '__storagegroup', '__storagegroup_size', '__sequence', '__sequence_size', '__metadata_last_modified', '__external_id', '__deletion_lock_id', '__deletion_lock_expiry', '__child_collection', '__child_collection_size', '__parent_collection', '__parent_collection_size', '__items_size', 'stl_text', 'stl_justification', 'stl_xrelative', 'stl_yrelative', 'stl_vertical', 'stl_verticalbase', 'stl_horizontalbase', 'stl_sizerelative', 'stl_color', 'stl_outline', 'stl_outlinecolor', 'stl_outlinesize', 'stl_font', 'stl_service', 'stl_tti', 'stl_gsi', 'cct', 'tcd', 'tcf', 'oet', 'cd', 'mnc', 'cpn', 'dfc', 'tcp', 'tcs', 'tet', 'tnb', 'tnd', 'en', 'co', 'tng', 'rd', 'mnr', 'dsc', 'opt', 'lc', 'tpt', 'tn', 'slr', 'tns', 'rn', 'pub', 'dsn', 'ecd', 'mrk_zerolength', 'mrk_text', 'mrk_color', 'pho_resource_name', 'pho_error_level', 'pho_error_code', 'pho_error_description', 'facedetect_rect_width', 'facedetect_rect_height', 'facedetect_rect_y', 'facedetect_rect_x', 'facedetect_pid', 'facedetect_rect', 'trackId', 'eidr_actor', 'eidr_alternateId', 'eidr_countryOfOrigin', 'eidr_director', 'eidr_id', 'eidr_referentType', 'eidr_releaseDate', 'eidr_resourceName', 'eidr_status', 'eidr_sync', 'ttml_div', 'ttml_root', 'vxa_collection_id', 'vxaId', 'vxaLocalPath', 'tco', 'cs', 'ebn', 'tf', 'cf', 'sgn', 'tci', 'jc', 'vp', 'sn'];
|
|
280
219
|
|
|
281
|
-
var _excluded$
|
|
282
|
-
_excluded2$2 = ["start", "end"];
|
|
220
|
+
var _excluded$e = ["value"],
|
|
221
|
+
_excluded2$2 = ["start", "end", "base"];
|
|
283
222
|
|
|
284
|
-
function ownKeys$
|
|
223
|
+
function ownKeys$i(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; }
|
|
285
224
|
|
|
286
|
-
function _objectSpread$
|
|
225
|
+
function _objectSpread$i(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$i(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$i(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
226
|
+
|
|
227
|
+
var isValueObject = function isValueObject(o) {
|
|
228
|
+
return Object.prototype.toString.call(o) === '[object Object]' && o.value !== undefined;
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
var isFieldType = function isFieldType(v) {
|
|
232
|
+
return ['string', 'boolean', 'number'].includes(_typeof__default["default"](v));
|
|
233
|
+
};
|
|
287
234
|
|
|
288
|
-
var
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
var FIELD_VALUE_PROPERTY_KEYS = [].concat(COMBINED_PROPERTY_KEYS, ['value', 'lang']);
|
|
235
|
+
var isFieldObject = function isFieldObject(o) {
|
|
236
|
+
return isValueObject(o) && ((o === null || o === void 0 ? void 0 : o.value) === null || isValueObject(o.value) || isFieldType(o.value));
|
|
237
|
+
};
|
|
292
238
|
|
|
293
|
-
var isObject
|
|
239
|
+
var isObject = function isObject(o) {
|
|
294
240
|
return Object.prototype.toString.call(o) === '[object Object]';
|
|
295
241
|
};
|
|
296
242
|
|
|
@@ -299,16 +245,6 @@ var isDate = function isDate(o) {
|
|
|
299
245
|
};
|
|
300
246
|
|
|
301
247
|
var isField = function isField(value) {
|
|
302
|
-
var FIELD_TYPES = ['string', 'boolean', 'number'];
|
|
303
|
-
|
|
304
|
-
var isFieldType = function isFieldType(v) {
|
|
305
|
-
return FIELD_TYPES.includes(_typeof__default["default"](v));
|
|
306
|
-
};
|
|
307
|
-
|
|
308
|
-
var isFieldObject = function isFieldObject(v) {
|
|
309
|
-
return isObject$1(v) && (v.value === null || isObject$1(v.value) || isFieldType(v.value));
|
|
310
|
-
};
|
|
311
|
-
|
|
312
248
|
if (value === null) {
|
|
313
249
|
return true;
|
|
314
250
|
}
|
|
@@ -322,7 +258,7 @@ var isField = function isField(value) {
|
|
|
322
258
|
|
|
323
259
|
var isGroup = function isGroup(value) {
|
|
324
260
|
var isGroupObject = function isGroupObject(v) {
|
|
325
|
-
return isObject
|
|
261
|
+
return isObject(v) && v.value === undefined && !!Object.entries(value);
|
|
326
262
|
};
|
|
327
263
|
|
|
328
264
|
if (Array.isArray(value)) {
|
|
@@ -346,9 +282,9 @@ var ensureKeysAreValid = function ensureKeysAreValid(keysToCheck, keysToMatch) {
|
|
|
346
282
|
}
|
|
347
283
|
};
|
|
348
284
|
|
|
349
|
-
var parseValue = function parseValue(value) {
|
|
285
|
+
var parseValue$1 = function parseValue(value) {
|
|
350
286
|
if (Array.isArray(value)) {
|
|
351
|
-
throw Error('Invalid value object, cannot be array');
|
|
287
|
+
throw Error('Invalid value inside value object, cannot be array');
|
|
352
288
|
}
|
|
353
289
|
|
|
354
290
|
if ([undefined, null].includes(value)) return {};
|
|
@@ -356,46 +292,50 @@ var parseValue = function parseValue(value) {
|
|
|
356
292
|
value: value.toISOString()
|
|
357
293
|
};
|
|
358
294
|
return {
|
|
359
|
-
value: value
|
|
295
|
+
value: value.toString()
|
|
360
296
|
};
|
|
361
297
|
};
|
|
362
298
|
|
|
363
299
|
var parseValueObject = function parseValueObject(valueObject) {
|
|
364
|
-
ensureKeysAreValid(Object.keys(valueObject),
|
|
300
|
+
ensureKeysAreValid(Object.keys(valueObject), FIELD_VALUE_ATTRIBUTE_KEYS);
|
|
365
301
|
|
|
366
302
|
if (Object.keys(valueObject).length === 0) {
|
|
367
303
|
throw Error('Invalid value object, cannot be empty object');
|
|
368
304
|
}
|
|
369
305
|
|
|
370
|
-
|
|
371
|
-
|
|
306
|
+
if (typeof (valueObject === null || valueObject === void 0 ? void 0 : valueObject.value) === 'string') {
|
|
307
|
+
return valueObject;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
var parsedValue = parseValue$1(valueObject === null || valueObject === void 0 ? void 0 : valueObject.value);
|
|
311
|
+
return _objectSpread$i(_objectSpread$i({}, valueObject), parsedValue !== undefined ? parsedValue : {});
|
|
372
312
|
};
|
|
373
313
|
|
|
374
314
|
var parseFieldValue = function parseFieldValue(value) {
|
|
375
315
|
if ([undefined, null].includes(value)) return undefined;
|
|
376
|
-
if (Array.isArray(value)) return value.
|
|
377
|
-
if (
|
|
378
|
-
return parseValue(value);
|
|
316
|
+
if (Array.isArray(value)) return value.flatMap(parseFieldValue);
|
|
317
|
+
if (isValueObject(value)) return parseValueObject(value);
|
|
318
|
+
return parseValue$1(value);
|
|
379
319
|
};
|
|
380
320
|
|
|
381
321
|
var parseFieldObject = function parseFieldObject(fieldObject) {
|
|
382
|
-
ensureKeysAreValid(Object.keys(fieldObject),
|
|
322
|
+
ensureKeysAreValid(Object.keys(fieldObject), FIELD_ATTRIBUTE_KEYS);
|
|
383
323
|
var parsedFieldValue = parseFieldValue(fieldObject === null || fieldObject === void 0 ? void 0 : fieldObject.value);
|
|
384
324
|
|
|
385
325
|
if (parsedFieldValue === undefined) {
|
|
386
326
|
fieldObject.value;
|
|
387
|
-
var fieldObjectWithoutValue = _objectWithoutProperties__default["default"](fieldObject, _excluded$
|
|
327
|
+
var fieldObjectWithoutValue = _objectWithoutProperties__default["default"](fieldObject, _excluded$e);
|
|
388
328
|
|
|
389
329
|
return fieldObjectWithoutValue;
|
|
390
330
|
}
|
|
391
331
|
|
|
392
|
-
return _objectSpread$
|
|
332
|
+
return _objectSpread$i(_objectSpread$i({}, fieldObject), {}, {
|
|
393
333
|
value: _toConsumableArray__default["default"](Array.isArray(parsedFieldValue) ? parsedFieldValue : [parsedFieldValue])
|
|
394
334
|
});
|
|
395
335
|
};
|
|
396
336
|
|
|
397
337
|
var parseField$1 = function parseField(field) {
|
|
398
|
-
if (
|
|
338
|
+
if (isFieldObject(field)) {
|
|
399
339
|
return parseFieldObject(field);
|
|
400
340
|
}
|
|
401
341
|
|
|
@@ -419,485 +359,652 @@ var parseGroupsAndFields = function parseGroupsAndFields(groupOrField) {
|
|
|
419
359
|
name = _ref2[0],
|
|
420
360
|
value = _ref2[1];
|
|
421
361
|
|
|
422
|
-
if (
|
|
423
|
-
groupAttributes = _objectSpread$
|
|
362
|
+
if (GROUP_ATTRIBUTE_KEYS.includes(name)) {
|
|
363
|
+
groupAttributes = _objectSpread$i(_objectSpread$i({}, groupAttributes), {}, _defineProperty__default["default"]({}, name, value));
|
|
424
364
|
} else if (isField(value)) {
|
|
425
365
|
try {
|
|
426
|
-
field.push(_objectSpread$
|
|
366
|
+
field.push(_objectSpread$i({
|
|
427
367
|
name: name
|
|
428
368
|
}, parseField$1(value)));
|
|
429
369
|
} catch (error) {
|
|
430
370
|
throw Error(error.message + (name ? " for field \"".concat(name, "\"") : ''));
|
|
431
371
|
}
|
|
432
372
|
} else if (isGroup(value)) {
|
|
433
|
-
(Array.isArray(value) ? value : [value]).forEach(function (
|
|
434
|
-
group.push(_objectSpread$
|
|
373
|
+
(Array.isArray(value) ? value : [value]).forEach(function (childGroup) {
|
|
374
|
+
group.push(_objectSpread$i({
|
|
435
375
|
name: name
|
|
436
|
-
}, parseGroupsAndFields(
|
|
376
|
+
}, parseGroupsAndFields(childGroup)));
|
|
437
377
|
});
|
|
438
378
|
} else {
|
|
439
379
|
throw Error("Unhandled value for \"".concat(name, "\""));
|
|
440
380
|
}
|
|
441
381
|
});
|
|
442
|
-
return _objectSpread$
|
|
382
|
+
return _objectSpread$i(_objectSpread$i(_objectSpread$i({}, groupAttributes), group.length > 0 ? {
|
|
443
383
|
group: group
|
|
444
384
|
} : {}), field.length > 0 ? {
|
|
445
385
|
field: field
|
|
446
386
|
} : {});
|
|
447
387
|
};
|
|
448
388
|
|
|
449
|
-
var parseTimespan$1 = function parseTimespan() {
|
|
450
|
-
var
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
groupsAndFields = _objectWithoutProperties__default["default"](_ref3, _excluded2$2);
|
|
389
|
+
var parseTimespan$1 = function parseTimespan(timespan) {
|
|
390
|
+
var _timespan$start = timespan.start,
|
|
391
|
+
start = _timespan$start === void 0 ? '-INF' : _timespan$start,
|
|
392
|
+
_timespan$end = timespan.end,
|
|
393
|
+
end = _timespan$end === void 0 ? '+INF' : _timespan$end,
|
|
394
|
+
_timespan$base = timespan.base,
|
|
395
|
+
base = _timespan$base === void 0 ? undefined : _timespan$base,
|
|
396
|
+
groupsAndFields = _objectWithoutProperties__default["default"](timespan, _excluded2$2);
|
|
458
397
|
|
|
459
398
|
var _parseGroupsAndFields = parseGroupsAndFields(groupsAndFields),
|
|
460
399
|
group = _parseGroupsAndFields.group,
|
|
461
400
|
field = _parseGroupsAndFields.field;
|
|
462
401
|
|
|
463
|
-
return _objectSpread$
|
|
402
|
+
return _objectSpread$i(_objectSpread$i(_objectSpread$i({}, group ? {
|
|
464
403
|
group: group
|
|
465
404
|
} : {}), field ? {
|
|
466
405
|
field: field
|
|
467
406
|
} : {}), {}, {
|
|
468
|
-
start: start,
|
|
469
|
-
end: end
|
|
470
|
-
}
|
|
407
|
+
start: start.toString(),
|
|
408
|
+
end: end.toString()
|
|
409
|
+
}, base ? {
|
|
410
|
+
base: base
|
|
411
|
+
} : {});
|
|
471
412
|
};
|
|
413
|
+
|
|
472
414
|
/**
|
|
473
|
-
* Create a VidiCore
|
|
415
|
+
* Create a VidiCore metadata object from a more dense/simplified structure
|
|
416
|
+
*
|
|
417
|
+
* @param input To create VidiCore metadata object of
|
|
418
|
+
* @returns A VidiCore metadata object
|
|
474
419
|
*
|
|
475
|
-
* @
|
|
476
|
-
* @returns {object} a MetadataType object
|
|
420
|
+
* @category Metadata
|
|
477
421
|
*/
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
var createMetadataType = function createMetadataType() {
|
|
481
|
-
var metadata = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
422
|
+
var createMetadataType = function createMetadataType(input) {
|
|
482
423
|
return {
|
|
483
|
-
timespan: (Array.isArray(
|
|
424
|
+
timespan: (Array.isArray(input) ? input : [input || {}]).map(function (t) {
|
|
484
425
|
return parseTimespan$1(t);
|
|
485
426
|
})
|
|
486
427
|
};
|
|
487
428
|
};
|
|
488
429
|
|
|
430
|
+
/**
|
|
431
|
+
* @private
|
|
432
|
+
*
|
|
433
|
+
* Function to sort timespan lists with
|
|
434
|
+
*
|
|
435
|
+
* TODO:
|
|
436
|
+
* - Take different time bases in account
|
|
437
|
+
* - Also compare end if start is same (lowest end first)
|
|
438
|
+
*
|
|
439
|
+
* @param timespan1 first timespan to compare
|
|
440
|
+
* @param timespan2 second timespan to compare
|
|
441
|
+
* @returns -1 if first is before second, 1 if first is after second, 0 if same start
|
|
442
|
+
*/
|
|
489
443
|
var sortTimespanList = function sortTimespanList(timespan1, timespan2) {
|
|
490
|
-
var
|
|
491
|
-
var secondStart = timespan2.start;
|
|
444
|
+
var _timespan1$start, _timespan2$start;
|
|
492
445
|
|
|
493
|
-
var
|
|
494
|
-
|
|
495
|
-
|
|
446
|
+
var _ref = (timespan1 === null || timespan1 === void 0 ? void 0 : (_timespan1$start = timespan1.start) === null || _timespan1$start === void 0 ? void 0 : _timespan1$start.split('@')) || [],
|
|
447
|
+
_ref2 = _slicedToArray__default["default"](_ref, 1),
|
|
448
|
+
firstStart = _ref2[0];
|
|
496
449
|
|
|
497
|
-
var
|
|
498
|
-
|
|
499
|
-
|
|
450
|
+
var _ref3 = (timespan2 === null || timespan2 === void 0 ? void 0 : (_timespan2$start = timespan2.start) === null || _timespan2$start === void 0 ? void 0 : _timespan2$start.split('@')) || [],
|
|
451
|
+
_ref4 = _slicedToArray__default["default"](_ref3, 1),
|
|
452
|
+
secondStart = _ref4[0];
|
|
500
453
|
|
|
501
|
-
if (Number(
|
|
454
|
+
if (Number(firstStart) < Number(secondStart)) {
|
|
502
455
|
return -1;
|
|
503
456
|
}
|
|
504
457
|
|
|
505
|
-
if (Number(
|
|
458
|
+
if (Number(firstStart) > Number(secondStart)) {
|
|
506
459
|
return 1;
|
|
507
460
|
}
|
|
508
461
|
|
|
509
462
|
return 0;
|
|
510
463
|
};
|
|
511
464
|
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
465
|
+
/**
|
|
466
|
+
* @private
|
|
467
|
+
*
|
|
468
|
+
* Wrap in array if not already an array, and return empty array if v is undefined
|
|
469
|
+
*
|
|
470
|
+
* @param v value to return as array
|
|
471
|
+
* @returns input value wrapped as array
|
|
472
|
+
*/
|
|
515
473
|
|
|
516
|
-
|
|
474
|
+
var asArray = function asArray(v) {
|
|
475
|
+
return Array.isArray(v) ? v : v && [v] || [];
|
|
476
|
+
};
|
|
477
|
+
/**
|
|
478
|
+
* @private
|
|
479
|
+
*
|
|
480
|
+
* Wrap in array if not already an array, and return empty array if v is undefined
|
|
481
|
+
*
|
|
482
|
+
* @param v value to return as array
|
|
483
|
+
* @returns input value wrapped as array
|
|
484
|
+
*/
|
|
517
485
|
|
|
518
|
-
|
|
486
|
+
var asSingle = function asSingle(v) {
|
|
487
|
+
return Array.isArray(v) ? v.pop() : v;
|
|
488
|
+
};
|
|
489
|
+
/**
|
|
490
|
+
* @private
|
|
491
|
+
* Check if array is string array (+ type guard)
|
|
492
|
+
*
|
|
493
|
+
* @param arr Array to check if string array
|
|
494
|
+
* @returns true if string array
|
|
495
|
+
*/
|
|
519
496
|
|
|
520
|
-
var
|
|
521
|
-
|
|
522
|
-
|
|
497
|
+
var isStringArray = function isStringArray(arr) {
|
|
498
|
+
return (arr === null || arr === void 0 ? void 0 : arr.every(function (v) {
|
|
499
|
+
return typeof v === 'string';
|
|
500
|
+
})) || false;
|
|
501
|
+
};
|
|
523
502
|
|
|
524
|
-
|
|
525
|
-
_ref$arrayOnSingle = _ref.arrayOnSingle,
|
|
526
|
-
arrayOnSingle = _ref$arrayOnSingle === void 0 ? true : _ref$arrayOnSingle,
|
|
527
|
-
_ref$arrayOnSingleVal = _ref.arrayOnSingleValue,
|
|
528
|
-
arrayOnSingleValue = _ref$arrayOnSingleVal === void 0 ? true : _ref$arrayOnSingleVal,
|
|
529
|
-
joinValue = _ref.joinValue,
|
|
530
|
-
includeAttributes = _ref.includeAttributes,
|
|
531
|
-
includeValueAttributes = _ref.includeValueAttributes;
|
|
532
|
-
|
|
533
|
-
if (includeAttributes || includeValueAttributes) return valueList;
|
|
534
|
-
var valueArray = [];
|
|
535
|
-
valueList.forEach(function (thisValue) {
|
|
536
|
-
if (thisValue.value) valueArray.push(thisValue.value);
|
|
537
|
-
});
|
|
538
|
-
if (joinValue) return valueArray.join(joinValue);
|
|
503
|
+
var _excluded$d = ["value"];
|
|
539
504
|
|
|
540
|
-
|
|
541
|
-
return valueArray[0];
|
|
542
|
-
}
|
|
505
|
+
function ownKeys$h(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; }
|
|
543
506
|
|
|
544
|
-
|
|
507
|
+
function _objectSpread$h(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$h(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$h(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
508
|
+
|
|
509
|
+
var defaultOptions$a = {
|
|
510
|
+
includeValueAttributes: false
|
|
545
511
|
};
|
|
512
|
+
/**
|
|
513
|
+
* @internal
|
|
514
|
+
* Parse the value object inside a field value list
|
|
515
|
+
*
|
|
516
|
+
* @param value The Vidicore metadata value type
|
|
517
|
+
* @param options For how to parse the value object
|
|
518
|
+
* @returns The parsed value
|
|
519
|
+
*/
|
|
546
520
|
|
|
547
|
-
|
|
548
|
-
var
|
|
549
|
-
|
|
521
|
+
function parseValue(value, options) {
|
|
522
|
+
var _defaultOptions = _objectSpread$h(_objectSpread$h({}, defaultOptions$a), options || {}),
|
|
523
|
+
includeValueAttributes = _defaultOptions.includeValueAttributes;
|
|
550
524
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
525
|
+
if (includeValueAttributes === false) {
|
|
526
|
+
return value === null || value === void 0 ? void 0 : value.value;
|
|
527
|
+
}
|
|
554
528
|
|
|
555
|
-
var
|
|
556
|
-
|
|
557
|
-
attributes = _objectWithoutProperties__default["default"](field, _excluded$7);
|
|
529
|
+
var stringValue = value.value,
|
|
530
|
+
attributes = _objectWithoutProperties__default["default"](value, _excluded$d);
|
|
558
531
|
|
|
559
|
-
var
|
|
560
|
-
|
|
561
|
-
|
|
532
|
+
var valueAttributes = includeValueAttributes === true && attributes || Array.isArray(includeValueAttributes) && Object.fromEntries(Object.entries(attributes).filter(function (_ref) {
|
|
533
|
+
var _ref2 = _slicedToArray__default["default"](_ref, 1),
|
|
534
|
+
key = _ref2[0];
|
|
535
|
+
|
|
536
|
+
return includeValueAttributes.includes(key);
|
|
537
|
+
})) || {};
|
|
538
|
+
return _objectSpread$h(_objectSpread$h({}, valueAttributes), {}, {
|
|
539
|
+
value: stringValue
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
var _excluded$c = ["joinValue", "arrayOnSingleValue"];
|
|
544
|
+
|
|
545
|
+
function ownKeys$g(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; }
|
|
546
|
+
|
|
547
|
+
function _objectSpread$g(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$g(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$g(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
548
|
+
var defaultOptions$9 = _objectSpread$g(_objectSpread$g({}, defaultOptions$a), {}, {
|
|
549
|
+
joinValue: undefined,
|
|
550
|
+
arrayOnSingleValue: true
|
|
551
|
+
});
|
|
552
|
+
/**
|
|
553
|
+
* @internal
|
|
554
|
+
*
|
|
555
|
+
* @param valueList
|
|
556
|
+
* @param options
|
|
557
|
+
* @returns
|
|
558
|
+
*/
|
|
559
|
+
|
|
560
|
+
function parseValueList(valueList, options) {
|
|
561
|
+
var _defaultOptions = _objectSpread$g(_objectSpread$g({}, defaultOptions$9), options || {}),
|
|
562
|
+
joinValue = _defaultOptions.joinValue,
|
|
563
|
+
arrayOnSingleValue = _defaultOptions.arrayOnSingleValue,
|
|
564
|
+
parseValueOptions = _objectWithoutProperties__default["default"](_defaultOptions, _excluded$c);
|
|
565
|
+
|
|
566
|
+
var parsedValueList = valueList === null || valueList === void 0 ? void 0 : valueList.map(function (v) {
|
|
567
|
+
return parseValue(v, parseValueOptions);
|
|
562
568
|
});
|
|
569
|
+
if (isStringArray(parsedValueList) && joinValue) return parsedValueList === null || parsedValueList === void 0 ? void 0 : parsedValueList.join(joinValue);
|
|
570
|
+
if (arrayOnSingleValue !== true && (parsedValueList === null || parsedValueList === void 0 ? void 0 : parsedValueList.length) <= 1) return parsedValueList === null || parsedValueList === void 0 ? void 0 : parsedValueList[0];
|
|
563
571
|
return parsedValueList;
|
|
564
|
-
}
|
|
572
|
+
}
|
|
565
573
|
|
|
566
|
-
var
|
|
567
|
-
|
|
568
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
574
|
+
var _excluded$b = ["includeFieldAttributes"],
|
|
575
|
+
_excluded2$1 = ["value"];
|
|
569
576
|
|
|
570
|
-
|
|
571
|
-
joinValue = _ref3.joinValue,
|
|
572
|
-
includeAttributes = _ref3.includeAttributes,
|
|
573
|
-
includeFieldAttributes = _ref3.includeFieldAttributes,
|
|
574
|
-
includeValueAttributes = _ref3.includeValueAttributes,
|
|
575
|
-
fieldAsList = _ref3.fieldAsList;
|
|
577
|
+
function ownKeys$f(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; }
|
|
576
578
|
|
|
577
|
-
|
|
579
|
+
function _objectSpread$f(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$f(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$f(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
580
|
+
var defaultOptions$8 = _objectSpread$f({
|
|
581
|
+
includeFieldAttributes: false
|
|
582
|
+
}, defaultOptions$9);
|
|
583
|
+
/**
|
|
584
|
+
* @internal
|
|
585
|
+
*
|
|
586
|
+
* @param field
|
|
587
|
+
* @param options
|
|
588
|
+
* @returns
|
|
589
|
+
*/
|
|
578
590
|
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
}
|
|
591
|
+
var parseField = function parseField(field, options) {
|
|
592
|
+
var _defaultOptions = _objectSpread$f(_objectSpread$f({}, defaultOptions$8), options || {}),
|
|
593
|
+
includeFieldAttributes = _defaultOptions.includeFieldAttributes,
|
|
594
|
+
parseValueListOptions = _objectWithoutProperties__default["default"](_defaultOptions, _excluded$b);
|
|
584
595
|
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
var parsedField = parseField(thisField, options);
|
|
596
|
+
var value = field.value,
|
|
597
|
+
attributes = _objectWithoutProperties__default["default"](field, _excluded2$1);
|
|
588
598
|
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
599
|
+
var parsedValueList = parseValueList(value, parseValueListOptions);
|
|
600
|
+
var fieldAttributes = includeFieldAttributes === true && attributes || Array.isArray(includeFieldAttributes) && Object.fromEntries(Object.entries(attributes).filter(function (_ref) {
|
|
601
|
+
var _ref2 = _slicedToArray__default["default"](_ref, 1),
|
|
602
|
+
key = _ref2[0];
|
|
593
603
|
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
var _currentValue = output[key];
|
|
601
|
-
var _parsedValue = parsedField;
|
|
604
|
+
return includeFieldAttributes.includes(key);
|
|
605
|
+
})) || {};
|
|
606
|
+
return includeFieldAttributes ? _objectSpread$f(_objectSpread$f({}, fieldAttributes), {}, {
|
|
607
|
+
value: parsedValueList
|
|
608
|
+
}) : parsedValueList;
|
|
609
|
+
};
|
|
602
610
|
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
611
|
+
function ownKeys$e(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; }
|
|
612
|
+
|
|
613
|
+
function _objectSpread$e(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$e(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$e(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
614
|
+
var defaultOptions$7 = _objectSpread$e(_objectSpread$e({}, defaultOptions$8), {}, {
|
|
615
|
+
fieldAsList: false,
|
|
616
|
+
arrayOnSingleField: false,
|
|
617
|
+
overrideField: undefined
|
|
618
|
+
});
|
|
619
|
+
|
|
620
|
+
/**
|
|
621
|
+
* Parse a metadata field list according to selected options
|
|
622
|
+
*
|
|
623
|
+
* @remarks
|
|
624
|
+
* Duplicate fields (same field name in the same field list) are usually not the data model we'd advise using.
|
|
625
|
+
* Since VidiCore supports multiple values in one fields, it's typically advised to store them as such.
|
|
626
|
+
* But, given duplicated fields when parsing it will:
|
|
627
|
+
* - with default options, merge duplicated field values to one field value array
|
|
628
|
+
* - with `fieldAsList` enabled, separate fields in the list/array (as usual, even if not duplicate)
|
|
629
|
+
* - with `includeFieldAttributes` enabled, return an array of field objects
|
|
630
|
+
* - with `overrideField` enabled - Override so it returns the latest "duplicated" field it parses
|
|
631
|
+
*
|
|
632
|
+
* @param fieldList Field list to parse
|
|
633
|
+
* @param [options=defaultOptions] Options for how to parse the field list
|
|
634
|
+
* @returns A parsed field list
|
|
635
|
+
*
|
|
636
|
+
* @category Metadata
|
|
637
|
+
*/
|
|
638
|
+
var parseFieldList = function parseFieldList(fieldList, options) {
|
|
639
|
+
var parseFieldListOptions = _objectSpread$e(_objectSpread$e({}, defaultOptions$7), options || {});
|
|
640
|
+
|
|
641
|
+
var fieldAsList = parseFieldListOptions.fieldAsList,
|
|
642
|
+
arrayOnSingleField = parseFieldListOptions.arrayOnSingleField,
|
|
643
|
+
overrideField = parseFieldListOptions.overrideField;
|
|
644
|
+
var shouldOverride = overrideField === true && fieldAsList === false;
|
|
645
|
+
var output = {};
|
|
646
|
+
fieldList === null || fieldList === void 0 ? void 0 : fieldList.forEach(function (field) {
|
|
647
|
+
var name = field.name;
|
|
648
|
+
var parsedField = parseField(field, parseFieldListOptions);
|
|
649
|
+
var parsedFieldOutput = arrayOnSingleField === true ? asArray(parsedField) : parsedField;
|
|
650
|
+
var existingParsedFields = output[name];
|
|
651
|
+
if (!existingParsedFields) output[name] = parsedFieldOutput;else if (shouldOverride) output[name] = parsedField;else output[name] = [asArray(existingParsedFields), asArray(parsedField)].flat();
|
|
612
652
|
});
|
|
613
|
-
return output;
|
|
653
|
+
return fieldAsList === true ? Object.values(output).flat() : output;
|
|
614
654
|
};
|
|
615
655
|
|
|
616
|
-
var
|
|
617
|
-
var group = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
618
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
656
|
+
var _excluded$a = ["field", "group"];
|
|
619
657
|
|
|
620
|
-
|
|
621
|
-
includeAttributes = _ref4.includeAttributes,
|
|
622
|
-
includeGroupAttributes = _ref4.includeGroupAttributes,
|
|
623
|
-
flat = _ref4.flat,
|
|
624
|
-
flatGroup = _ref4.flatGroup,
|
|
625
|
-
groupAsList = _ref4.groupAsList,
|
|
626
|
-
fieldAsList = _ref4.fieldAsList;
|
|
658
|
+
function ownKeys$d(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; }
|
|
627
659
|
|
|
628
|
-
|
|
629
|
-
fieldList = _group$field === void 0 ? [] : _group$field,
|
|
630
|
-
_group$group = group.group,
|
|
631
|
-
groupList = _group$group === void 0 ? [] : _group$group,
|
|
632
|
-
attributes = _objectWithoutProperties__default["default"](group, _excluded2$1);
|
|
660
|
+
function _objectSpread$d(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$d(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$d(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
633
661
|
|
|
634
|
-
|
|
662
|
+
var defaultParseGroupOptions = _objectSpread$d(_objectSpread$d({}, defaultOptions$7), {}, {
|
|
663
|
+
includeGroupAttributes: false,
|
|
664
|
+
groupAsList: false,
|
|
665
|
+
arrayOnSingleGroup: false,
|
|
666
|
+
overrideGroup: undefined
|
|
667
|
+
});
|
|
635
668
|
|
|
636
|
-
|
|
637
|
-
|
|
669
|
+
/**
|
|
670
|
+
* @internal
|
|
671
|
+
*
|
|
672
|
+
* (Kept here due to circular dependency otherwise)
|
|
673
|
+
*
|
|
674
|
+
* @param group
|
|
675
|
+
* @param options
|
|
676
|
+
* @returns
|
|
677
|
+
*/
|
|
678
|
+
var parseGroup = function parseGroup(group, options) {
|
|
679
|
+
var parseGroupOptions = _objectSpread$d(_objectSpread$d({}, defaultParseGroupOptions), options || {});
|
|
638
680
|
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
681
|
+
var includeGroupAttributes = parseGroupOptions.includeGroupAttributes;
|
|
682
|
+
var parseFieldListOptions = Object.fromEntries(Object.entries(parseGroupOptions).filter(function (_ref) {
|
|
683
|
+
var _ref2 = _slicedToArray__default["default"](_ref, 1),
|
|
684
|
+
key = _ref2[0];
|
|
642
685
|
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
Object.assign(output, {
|
|
646
|
-
group: parsedGroupList
|
|
647
|
-
});
|
|
648
|
-
} else {
|
|
649
|
-
Object.assign(output, parsedGroupList);
|
|
650
|
-
}
|
|
686
|
+
return Object.keys(defaultOptions$7).includes(key);
|
|
687
|
+
}));
|
|
651
688
|
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
});
|
|
656
|
-
} else {
|
|
657
|
-
Object.assign(output, parsedFieldList);
|
|
658
|
-
}
|
|
659
|
-
} else {
|
|
660
|
-
Object.assign(output, {
|
|
661
|
-
field: parsedFieldList
|
|
662
|
-
});
|
|
663
|
-
Object.assign(output, {
|
|
664
|
-
group: parsedGroupList
|
|
665
|
-
});
|
|
666
|
-
}
|
|
689
|
+
var fieldList = group.field,
|
|
690
|
+
groupList = group.group,
|
|
691
|
+
attributes = _objectWithoutProperties__default["default"](group, _excluded$a);
|
|
667
692
|
|
|
668
|
-
|
|
693
|
+
var parsedFieldList = fieldList && parseFieldList(fieldList, parseFieldListOptions); // eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
694
|
+
|
|
695
|
+
var parsedGroupList = groupList && parseGroupList(groupList, parseGroupOptions);
|
|
696
|
+
var groupAttributes = includeGroupAttributes === true && attributes || Array.isArray(includeGroupAttributes) && Object.fromEntries(Object.entries(attributes).filter(function (_ref3) {
|
|
697
|
+
var _ref4 = _slicedToArray__default["default"](_ref3, 1),
|
|
698
|
+
key = _ref4[0];
|
|
699
|
+
|
|
700
|
+
return includeGroupAttributes.includes(key);
|
|
701
|
+
})) || {};
|
|
702
|
+
return _objectSpread$d(_objectSpread$d(_objectSpread$d({}, groupAttributes), parseFieldListOptions !== null && parseFieldListOptions !== void 0 && parseFieldListOptions.fieldAsList ? parsedFieldList && {
|
|
703
|
+
field: parsedFieldList
|
|
704
|
+
} || {} : parsedFieldList), parseGroupOptions !== null && parseGroupOptions !== void 0 && parseGroupOptions.groupAsList ? parsedGroupList && {
|
|
705
|
+
group: parsedGroupList
|
|
706
|
+
} || {} : parsedGroupList);
|
|
669
707
|
};
|
|
670
708
|
|
|
671
|
-
var
|
|
672
|
-
|
|
673
|
-
|
|
709
|
+
var defaultOptions$6 = defaultParseGroupOptions;
|
|
710
|
+
/**
|
|
711
|
+
* Parse a metadata group list according to selected options
|
|
712
|
+
*
|
|
713
|
+
* @remarks
|
|
714
|
+
* Parsing duplicate groups (with identical name) in the same group list will return:
|
|
715
|
+
* - with default options, an array of group objects
|
|
716
|
+
* - with `groupAsList` enabled, separate group objects in the list/array (as usual, even if not duplicate)
|
|
717
|
+
* - with `overrideGroup` enabled, return the latest duplicated group it parses
|
|
718
|
+
*
|
|
719
|
+
* @param groupList Group list to parse
|
|
720
|
+
* @param options options for how to parse list
|
|
721
|
+
* @returns A parsed group list
|
|
722
|
+
*
|
|
723
|
+
* @category Metadata
|
|
724
|
+
*/
|
|
725
|
+
|
|
726
|
+
var parseGroupList = function parseGroupList(groupList, options) {
|
|
727
|
+
var parseGroupOptions = _objectSpread$d(_objectSpread$d({}, defaultOptions$6), options || {});
|
|
674
728
|
|
|
675
|
-
var
|
|
676
|
-
|
|
729
|
+
var groupAsList = parseGroupOptions.groupAsList,
|
|
730
|
+
arrayOnSingleGroup = parseGroupOptions.arrayOnSingleGroup,
|
|
731
|
+
overrideGroup = parseGroupOptions.overrideGroup;
|
|
732
|
+
var shouldOverride = overrideGroup === true && groupAsList === false;
|
|
733
|
+
var output = {};
|
|
734
|
+
groupList === null || groupList === void 0 ? void 0 : groupList.forEach(function (group) {
|
|
735
|
+
var name = group.name;
|
|
736
|
+
var parsedGroup = parseGroup(group, parseGroupOptions);
|
|
737
|
+
var parsedGroupOutput = arrayOnSingleGroup === true ? asArray(parsedGroup) : parsedGroup;
|
|
738
|
+
var existingParsedGroups = output[name];
|
|
739
|
+
if (!existingParsedGroups) output[name] = parsedGroupOutput;else if (shouldOverride) output[name] = parsedGroup;else output[name] = [asArray(existingParsedGroups), asArray(parsedGroup)].flat();
|
|
740
|
+
});
|
|
677
741
|
|
|
678
742
|
if (groupAsList) {
|
|
679
|
-
return
|
|
680
|
-
return parseGroup(thisGroup, options);
|
|
681
|
-
});
|
|
743
|
+
return Object.values(output).flat();
|
|
682
744
|
}
|
|
683
745
|
|
|
684
|
-
var output = {};
|
|
685
|
-
groupList.forEach(function (thisGroup) {
|
|
686
|
-
var key = thisGroup.name;
|
|
687
|
-
var parsedGroup = parseGroup(thisGroup, options);
|
|
688
|
-
|
|
689
|
-
if (output[key]) {
|
|
690
|
-
var _output$key = output[key],
|
|
691
|
-
currentField = _output$key.field,
|
|
692
|
-
currentGroup = _output$key.group;
|
|
693
|
-
var parsedField = parsedGroup.field,
|
|
694
|
-
parsedGroupList = parsedGroup.group;
|
|
695
|
-
output[key].field = _objectSpread$9(_objectSpread$9({}, currentField), parsedField);
|
|
696
|
-
output[key].group = _objectSpread$9(_objectSpread$9({}, currentGroup), parsedGroupList);
|
|
697
|
-
} else {
|
|
698
|
-
output[key] = parsedGroup;
|
|
699
|
-
}
|
|
700
|
-
});
|
|
701
746
|
return output;
|
|
702
747
|
};
|
|
748
|
+
|
|
749
|
+
var _excluded$9 = ["field", "group"];
|
|
750
|
+
|
|
751
|
+
function ownKeys$c(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; }
|
|
752
|
+
|
|
753
|
+
function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$c(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
754
|
+
var defaultOptions$5 = _objectSpread$c(_objectSpread$c({}, defaultOptions$6), {}, {
|
|
755
|
+
includeTimespanAttributes: false,
|
|
756
|
+
flat: false,
|
|
757
|
+
arrayOnSingle: false,
|
|
758
|
+
arrayOnSingleValue: true,
|
|
759
|
+
arrayOnSingleGroup: undefined,
|
|
760
|
+
arrayOnSingleField: undefined
|
|
761
|
+
});
|
|
703
762
|
/**
|
|
704
|
-
*
|
|
705
|
-
*
|
|
706
|
-
*
|
|
707
|
-
* @
|
|
708
|
-
*
|
|
709
|
-
*
|
|
710
|
-
* @param
|
|
711
|
-
* @param
|
|
712
|
-
* @
|
|
713
|
-
*
|
|
714
|
-
* @
|
|
715
|
-
*
|
|
716
|
-
* @
|
|
717
|
-
* @param {boolean} [options.groupAsList=false] - Return groups as list.
|
|
718
|
-
* @param {boolean} [options.fieldAsList=false] - Return fields as list.
|
|
719
|
-
* @param {boolean} [options.arrayOnSingle=true] - Return fields as array even if single field.
|
|
720
|
-
* @param {boolean} [options.arrayOnSingleValue=true] - Return fields as array even if single field value.
|
|
721
|
-
* @returns {Object} Metadata object parsed according to options.
|
|
763
|
+
*
|
|
764
|
+
* Parses timespan according to specified options
|
|
765
|
+
*
|
|
766
|
+
* @remarks
|
|
767
|
+
* To ensure a flat (no array) representation when using `flat: true`, the parser will also set `overrideGroup` and `overrideField` to true (unless those are explicitly set false)
|
|
768
|
+
*
|
|
769
|
+
* @param timespan - A VidiCore metadata timespan
|
|
770
|
+
* @param options - Options to change how it is parsed
|
|
771
|
+
* @returns Timespan parsed according to options
|
|
772
|
+
*
|
|
773
|
+
* @see {@link parseGroupList} and {@link parseFieldList} for more info
|
|
774
|
+
*
|
|
775
|
+
* @category Metadata
|
|
722
776
|
*/
|
|
723
777
|
|
|
778
|
+
var parseTimespan = function parseTimespan(timespan, options) {
|
|
779
|
+
var parseTimespanOptions = _objectSpread$c(_objectSpread$c({}, defaultOptions$5), options || {});
|
|
724
780
|
|
|
725
|
-
var
|
|
726
|
-
|
|
727
|
-
|
|
781
|
+
var includeTimespanAttributes = parseTimespanOptions.includeTimespanAttributes,
|
|
782
|
+
arrayOnSingle = parseTimespanOptions.arrayOnSingle,
|
|
783
|
+
flat = parseTimespanOptions.flat;
|
|
784
|
+
var parseGroupListOptions = Object.fromEntries(Object.entries(options).map(function (_ref) {
|
|
785
|
+
var _ref2 = _slicedToArray__default["default"](_ref, 2),
|
|
786
|
+
key = _ref2[0],
|
|
787
|
+
value = _ref2[1];
|
|
728
788
|
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
flatTimespan = _ref6.flatTimespan,
|
|
734
|
-
groupAsList = _ref6.groupAsList,
|
|
735
|
-
fieldAsList = _ref6.fieldAsList;
|
|
789
|
+
if (Object.keys(defaultOptions$6).includes(key)) {
|
|
790
|
+
if (['arrayOnSingleGroup', 'arrayOnSingleField', 'arrayOnSingleValue'].includes(key) && (value !== undefined ? value : arrayOnSingle === true)) {
|
|
791
|
+
return [key, true];
|
|
792
|
+
}
|
|
736
793
|
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
groupList = _timespan$group === void 0 ? [] : _timespan$group,
|
|
741
|
-
attributes = _objectWithoutProperties__default["default"](timespan, _excluded3);
|
|
794
|
+
if (['overrideGroup', 'overrideField'].includes(key) && (value !== undefined ? value : flat === true)) {
|
|
795
|
+
return [key, true];
|
|
796
|
+
}
|
|
742
797
|
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
var output = {};
|
|
798
|
+
return [key, value];
|
|
799
|
+
}
|
|
746
800
|
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
801
|
+
return undefined;
|
|
802
|
+
}).filter(function (e) {
|
|
803
|
+
return !!e;
|
|
804
|
+
}));
|
|
805
|
+
var parseFieldListOptions = Object.fromEntries(Object.entries(options).map(function (_ref3) {
|
|
806
|
+
var _ref4 = _slicedToArray__default["default"](_ref3, 2),
|
|
807
|
+
key = _ref4[0],
|
|
808
|
+
value = _ref4[1];
|
|
809
|
+
|
|
810
|
+
if (Object.keys(defaultOptions$7).includes(key)) {
|
|
811
|
+
if (['arrayOnSingleField', 'arrayOnSingleValue'].includes(key) && (value !== undefined ? value : arrayOnSingle === true)) {
|
|
812
|
+
return [key, true];
|
|
813
|
+
}
|
|
750
814
|
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
group: group
|
|
755
|
-
});
|
|
756
|
-
} else {
|
|
757
|
-
Object.assign(output, group);
|
|
758
|
-
}
|
|
815
|
+
if (['overrideField'].includes(key) && (value !== undefined ? value : flat === true)) {
|
|
816
|
+
return [key, true];
|
|
817
|
+
}
|
|
759
818
|
|
|
760
|
-
|
|
761
|
-
Object.assign(output, {
|
|
762
|
-
field: field
|
|
763
|
-
});
|
|
764
|
-
} else {
|
|
765
|
-
Object.assign(output, field);
|
|
819
|
+
return [key, value];
|
|
766
820
|
}
|
|
767
|
-
} else {
|
|
768
|
-
Object.assign(output, {
|
|
769
|
-
field: field
|
|
770
|
-
});
|
|
771
|
-
Object.assign(output, {
|
|
772
|
-
group: group
|
|
773
|
-
});
|
|
774
|
-
}
|
|
775
821
|
|
|
776
|
-
|
|
822
|
+
return undefined;
|
|
823
|
+
}).filter(function (e) {
|
|
824
|
+
return !!e;
|
|
825
|
+
}));
|
|
826
|
+
|
|
827
|
+
var _ref5 = timespan || {},
|
|
828
|
+
fieldList = _ref5.field,
|
|
829
|
+
groupList = _ref5.group,
|
|
830
|
+
attributes = _objectWithoutProperties__default["default"](_ref5, _excluded$9);
|
|
831
|
+
|
|
832
|
+
var parsedFieldList = fieldList && parseFieldList(fieldList, parseFieldListOptions); // eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
833
|
+
|
|
834
|
+
var parsedGroupList = groupList && parseGroupList(groupList, parseGroupListOptions);
|
|
835
|
+
var timespanAttributes = includeTimespanAttributes === true && attributes || Array.isArray(includeTimespanAttributes) && Object.fromEntries(Object.entries(attributes).filter(function (_ref6) {
|
|
836
|
+
var _ref7 = _slicedToArray__default["default"](_ref6, 1),
|
|
837
|
+
key = _ref7[0];
|
|
838
|
+
|
|
839
|
+
return includeTimespanAttributes.includes(key);
|
|
840
|
+
})) || {};
|
|
841
|
+
return _objectSpread$c(_objectSpread$c(_objectSpread$c({}, timespanAttributes), parseFieldListOptions !== null && parseFieldListOptions !== void 0 && parseFieldListOptions.fieldAsList ? {
|
|
842
|
+
field: parsedFieldList
|
|
843
|
+
} : parsedFieldList), parseGroupListOptions !== null && parseGroupListOptions !== void 0 && parseGroupListOptions.groupAsList ? {
|
|
844
|
+
group: parsedGroupList
|
|
845
|
+
} : parsedGroupList);
|
|
777
846
|
};
|
|
778
847
|
|
|
779
|
-
|
|
848
|
+
var _excluded$8 = ["timespanAsList", "joinTimespan", "sortTimespan", "flat", "flatTimespan"];
|
|
780
849
|
|
|
781
|
-
function
|
|
850
|
+
function ownKeys$b(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; }
|
|
851
|
+
|
|
852
|
+
function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$b(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
853
|
+
var defaultOptions$4 = _objectSpread$b(_objectSpread$b({}, defaultOptions$5), {}, {
|
|
854
|
+
timespanAsList: false,
|
|
855
|
+
joinTimespan: '_',
|
|
856
|
+
sortTimespan: false,
|
|
857
|
+
flat: false,
|
|
858
|
+
flatTimespan: undefined
|
|
859
|
+
});
|
|
782
860
|
/**
|
|
783
861
|
* Parses timespanList according to specified options.
|
|
784
862
|
* The attributes can be targeted for each sub-type.
|
|
785
863
|
*
|
|
786
|
-
* @param
|
|
787
|
-
* @param
|
|
788
|
-
* @
|
|
789
|
-
*
|
|
790
|
-
* @
|
|
791
|
-
*
|
|
792
|
-
* @
|
|
793
|
-
* @param {boolean} options.includeFieldAttributes - Include attributes on fields.
|
|
794
|
-
* @param {boolean} options.includeValueAttributes - Include attributes on values.
|
|
795
|
-
* @param {boolean} options.flat - Flatten to key/value (Note: keys may be overwritten).
|
|
796
|
-
* @param {boolean} options.flatTimespan - Flatten timespan.
|
|
797
|
-
* @param {boolean} options.flatGroup - Flatten group.
|
|
798
|
-
* @param {boolean} options.sortTimespan - Sort timespan by start time.
|
|
799
|
-
* @param {boolean} options.timespanAsList - Return timespans as list.
|
|
800
|
-
* @param {boolean} options.groupAsList - Return groups as list.
|
|
801
|
-
* @param {boolean} options.fieldAsList - Return fields as list.
|
|
802
|
-
* @param {boolean} [options.arrayOnSingle=true] - Return fields as array even if single field.
|
|
803
|
-
* @param {boolean} [options.arrayOnSingleValue=true] - Return fields as array even if single field value.
|
|
804
|
-
* @returns {Object} Metadata object parsed according to options.
|
|
864
|
+
* @param timespanList - A Vidicore metadata timespan list
|
|
865
|
+
* @param options - Options which change how the metadataType is parsed.
|
|
866
|
+
* @returns Timespan list parsed according to options
|
|
867
|
+
*
|
|
868
|
+
* @see {@link parseTimespan} for more info
|
|
869
|
+
*
|
|
870
|
+
* @category Metadata
|
|
805
871
|
*/
|
|
806
872
|
|
|
807
|
-
var parseTimespanList = function parseTimespanList() {
|
|
808
|
-
var
|
|
809
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
873
|
+
var parseTimespanList = function parseTimespanList(timespanList, options) {
|
|
874
|
+
var parseTimespanListOptions = _objectSpread$b(_objectSpread$b({}, defaultOptions$4), options || {});
|
|
810
875
|
|
|
811
|
-
var
|
|
812
|
-
joinTimespan =
|
|
813
|
-
|
|
814
|
-
|
|
876
|
+
var timespanAsList = parseTimespanListOptions.timespanAsList,
|
|
877
|
+
joinTimespan = parseTimespanListOptions.joinTimespan,
|
|
878
|
+
sortTimespan = parseTimespanListOptions.sortTimespan,
|
|
879
|
+
flat = parseTimespanListOptions.flat,
|
|
880
|
+
flatTimespan = parseTimespanListOptions.flatTimespan,
|
|
881
|
+
otherOptions = _objectWithoutProperties__default["default"](parseTimespanListOptions, _excluded$8);
|
|
815
882
|
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
});
|
|
820
|
-
}
|
|
883
|
+
var parseTimespanOptions = _objectSpread$b({
|
|
884
|
+
flat: flat
|
|
885
|
+
}, otherOptions);
|
|
821
886
|
|
|
887
|
+
if (sortTimespan) timespanList.sort(sortTimespanList);
|
|
888
|
+
var shouldFlatten = (flatTimespan !== undefined ? flatTimespan === true : flat === true) && timespanAsList === false;
|
|
822
889
|
var output = {};
|
|
823
|
-
timespanList.forEach(function (
|
|
824
|
-
var start =
|
|
825
|
-
end =
|
|
826
|
-
var key = [start, end].join(joinTimespan
|
|
827
|
-
var parsedTimespan = parseTimespan(
|
|
828
|
-
|
|
829
|
-
if (
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
parsedGroup = parsedTimespan.group;
|
|
837
|
-
output[key].field = _objectSpread$8(_objectSpread$8({}, currentField), parsedField);
|
|
838
|
-
output[key].group = _objectSpread$8(_objectSpread$8({}, currentGroup), parsedGroup);
|
|
839
|
-
} else {
|
|
840
|
-
output[key] = parsedTimespan;
|
|
841
|
-
}
|
|
890
|
+
timespanList === null || timespanList === void 0 ? void 0 : timespanList.forEach(function (timespan) {
|
|
891
|
+
var start = timespan.start,
|
|
892
|
+
end = timespan.end;
|
|
893
|
+
var key = shouldFlatten ? 'flat' : [start, end].join(joinTimespan);
|
|
894
|
+
var parsedTimespan = parseTimespan(timespan, parseTimespanOptions);
|
|
895
|
+
var existingParsedTimespans = output[key];
|
|
896
|
+
if (!existingParsedTimespans) output[key] = parsedTimespan;else if (shouldFlatten) {
|
|
897
|
+
if (start === '-INF' && end === '+INF') {
|
|
898
|
+
output[key] = _objectSpread$b(_objectSpread$b({}, asSingle(existingParsedTimespans)), parsedTimespan);
|
|
899
|
+
} else {
|
|
900
|
+
output[key] = _objectSpread$b(_objectSpread$b({}, parsedTimespan), asSingle(existingParsedTimespans));
|
|
901
|
+
}
|
|
902
|
+
} else output[key] = [].concat(_toConsumableArray__default["default"](asArray(existingParsedTimespans)), [parsedTimespan]);
|
|
842
903
|
});
|
|
904
|
+
|
|
905
|
+
if (timespanAsList === true) {
|
|
906
|
+
return Object.values(output);
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
if (shouldFlatten) {
|
|
910
|
+
return Object.values(output).pop();
|
|
911
|
+
}
|
|
912
|
+
|
|
843
913
|
return output;
|
|
844
914
|
};
|
|
845
915
|
|
|
846
|
-
var _excluded$
|
|
916
|
+
var _excluded$7 = ["timespan"];
|
|
917
|
+
|
|
918
|
+
function ownKeys$a(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; }
|
|
919
|
+
|
|
920
|
+
function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$a(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
921
|
+
var defaultOptions$3 = _objectSpread$a(_objectSpread$a({}, defaultOptions$4), {}, {
|
|
922
|
+
includeMetadataAttributes: false,
|
|
923
|
+
flat: false
|
|
924
|
+
});
|
|
847
925
|
/**
|
|
848
|
-
* Parses MetadataType according to specified options
|
|
849
|
-
*
|
|
850
|
-
* @
|
|
851
|
-
*
|
|
852
|
-
*
|
|
853
|
-
*
|
|
854
|
-
*
|
|
855
|
-
* @param
|
|
856
|
-
* @param
|
|
857
|
-
* @
|
|
858
|
-
*
|
|
859
|
-
* @
|
|
860
|
-
*
|
|
861
|
-
* @
|
|
862
|
-
* @param {boolean} options.sortTimespan - Sort timespan by start time.
|
|
863
|
-
* @param {boolean} options.timespanAsList - Return timespans as list.
|
|
864
|
-
* @param {boolean} options.groupAsList - Return groups as list.
|
|
865
|
-
* @param {boolean} options.fieldAsList - Return fields as list.
|
|
866
|
-
* @param {boolean} [options.arrayOnSingle=true] - Return fields as array even if single field.
|
|
867
|
-
* @param {boolean} [options.arrayOnSingleValue=true] - Return fields as array even if single field value.
|
|
868
|
-
* @returns {Object} Metadata object parsed according to options.
|
|
926
|
+
* Parses MetadataType according to specified options
|
|
927
|
+
*
|
|
928
|
+
* @remarks
|
|
929
|
+
* Be aware that you need to take into account that the returned groups and fields can be an array if it has multiple values or groups/fields with same name.
|
|
930
|
+
* If you are certain your metadata type won't return multiple groups/fields/values with same name or don't mind that they _might_ be overridden:
|
|
931
|
+
* you can use the option `flat` along with `joinValue` or `arrayOnSingleValue: false`.
|
|
932
|
+
*
|
|
933
|
+
* @param metadataType - A MetadataType from VidiCore
|
|
934
|
+
* @param options - Options which change how the metadataType is parsed
|
|
935
|
+
* @returns Metadata object parsed according to options
|
|
936
|
+
*
|
|
937
|
+
* @see {@link parseTimespanList} for more info
|
|
938
|
+
*
|
|
939
|
+
* @category Metadata
|
|
869
940
|
*/
|
|
870
941
|
|
|
871
|
-
|
|
872
|
-
var
|
|
873
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
942
|
+
function parseMetadataType(metadataType, options) {
|
|
943
|
+
var parseMetadataTypeOptions = _objectSpread$a(_objectSpread$a({}, defaultOptions$3), options || {});
|
|
874
944
|
|
|
875
|
-
var
|
|
876
|
-
|
|
877
|
-
includeMetadataAttributes = _ref.includeMetadataAttributes,
|
|
878
|
-
sortTimespan = _ref.sortTimespan;
|
|
945
|
+
var includeMetadataAttributes = parseMetadataTypeOptions.includeMetadataAttributes,
|
|
946
|
+
flat = parseMetadataTypeOptions.flat;
|
|
879
947
|
|
|
880
|
-
var
|
|
881
|
-
|
|
882
|
-
timespanList =
|
|
883
|
-
attributes = _objectWithoutProperties__default["default"](
|
|
948
|
+
var _ref = metadataType || {},
|
|
949
|
+
_ref$timespan = _ref.timespan,
|
|
950
|
+
timespanList = _ref$timespan === void 0 ? [] : _ref$timespan,
|
|
951
|
+
attributes = _objectWithoutProperties__default["default"](_ref, _excluded$7);
|
|
884
952
|
|
|
885
|
-
|
|
886
|
-
|
|
953
|
+
var parseTimespanListOptions = Object.fromEntries(Object.entries(options).map(function (_ref2) {
|
|
954
|
+
var _ref3 = _slicedToArray__default["default"](_ref2, 2),
|
|
955
|
+
key = _ref3[0],
|
|
956
|
+
value = _ref3[1];
|
|
887
957
|
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
958
|
+
if (Object.keys(defaultOptions$4).includes(key)) {
|
|
959
|
+
if (['onlyGeneric', 'overrideGroup', 'overrideField'].includes(key) && (value !== undefined ? value : flat === true)) {
|
|
960
|
+
return [key, true];
|
|
961
|
+
}
|
|
891
962
|
|
|
892
|
-
|
|
893
|
-
}
|
|
963
|
+
return [key, value];
|
|
964
|
+
}
|
|
965
|
+
|
|
966
|
+
return undefined;
|
|
967
|
+
}).filter(function (e) {
|
|
968
|
+
return !!e;
|
|
969
|
+
}));
|
|
970
|
+
var parsedTimespanList = parseTimespanList(timespanList, parseTimespanListOptions);
|
|
971
|
+
var metadataAttributes = includeMetadataAttributes === true && _objectSpread$a(_objectSpread$a({}, attributes), attributes.revision ? {
|
|
972
|
+
revision: attributes.revision.split(',')
|
|
973
|
+
} : {}) || Array.isArray(includeMetadataAttributes) && Object.fromEntries(Object.entries(attributes).map(function (_ref4) {
|
|
974
|
+
var _ref5 = _slicedToArray__default["default"](_ref4, 2),
|
|
975
|
+
key = _ref5[0],
|
|
976
|
+
value = _ref5[1];
|
|
977
|
+
|
|
978
|
+
if (includeMetadataAttributes.includes(key)) {
|
|
979
|
+
return [key, key === 'revision' && typeof value === 'string' ? value.split(',') : value];
|
|
980
|
+
}
|
|
981
|
+
|
|
982
|
+
return undefined;
|
|
983
|
+
}).filter(function (o) {
|
|
984
|
+
return !!o;
|
|
985
|
+
})) || {};
|
|
986
|
+
return _objectSpread$a(_objectSpread$a({}, metadataAttributes), parseTimespanListOptions !== null && parseTimespanListOptions !== void 0 && parseTimespanListOptions.timespanAsList ? {
|
|
987
|
+
timespan: parsedTimespanList
|
|
988
|
+
} : parsedTimespanList);
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
/**
|
|
992
|
+
* Parse simple (key/value) metadata
|
|
993
|
+
*
|
|
994
|
+
* Not indexed metadata, available on almost all entities (storages, library, user, group, etc...)
|
|
995
|
+
*
|
|
996
|
+
* @param simpleMetadataType A VidiCore simple metadata object
|
|
997
|
+
* @returns A parsed simple metadata object
|
|
998
|
+
*
|
|
999
|
+
* @category Metadata
|
|
1000
|
+
*/
|
|
894
1001
|
|
|
895
|
-
var parseSimpleMetadataType = function parseSimpleMetadataType() {
|
|
896
|
-
var _ref =
|
|
1002
|
+
var parseSimpleMetadataType = function parseSimpleMetadataType(simpleMetadataType) {
|
|
1003
|
+
var _ref = simpleMetadataType || {},
|
|
897
1004
|
_ref$field = _ref.field,
|
|
898
1005
|
field = _ref$field === void 0 ? [] : _ref$field;
|
|
899
1006
|
|
|
900
|
-
return
|
|
1007
|
+
return parseKeyValuePairTypes(field);
|
|
901
1008
|
};
|
|
902
1009
|
|
|
903
1010
|
var MAP_CONSTANT_TO_DEN_NUM = {
|
|
@@ -936,20 +1043,26 @@ var TIME_BASE_CONSTANTS = Object.keys(MAP_CONSTANT_TO_DEN_NUM);
|
|
|
936
1043
|
* TimeBase class representing the TimeBaseType in VidiCore
|
|
937
1044
|
*
|
|
938
1045
|
* For more info, see the [Time bases section in VidiCore API Docs](https://apidoc.vidispine.com/latest/time.html#time-bases)
|
|
1046
|
+
*
|
|
1047
|
+
* @category Time
|
|
939
1048
|
*/
|
|
940
|
-
|
|
941
1049
|
var TimeBase = /*#__PURE__*/function () {
|
|
1050
|
+
// The numerator for the TimeBase
|
|
1051
|
+
// The denominator for the TimeBase
|
|
1052
|
+
|
|
942
1053
|
/**
|
|
943
1054
|
* Constructor for TimeBase
|
|
944
1055
|
*
|
|
945
|
-
* @param
|
|
946
|
-
* @param {number} [timeCodeType.numerator=1] The numerator for the TimeBase
|
|
947
|
-
* @param {number} [timeCodeType.denominator=1] The denominator for the TimeBase
|
|
1056
|
+
* @param timeBaseType A TimeBaseType object
|
|
948
1057
|
*/
|
|
949
|
-
function TimeBase(
|
|
1058
|
+
function TimeBase(timeBaseType) {
|
|
950
1059
|
_classCallCheck__default["default"](this, TimeBase);
|
|
951
1060
|
|
|
952
|
-
|
|
1061
|
+
_defineProperty__default["default"](this, "numerator", 1);
|
|
1062
|
+
|
|
1063
|
+
_defineProperty__default["default"](this, "denominator", 1);
|
|
1064
|
+
|
|
1065
|
+
var _ref = timeBaseType || {},
|
|
953
1066
|
_ref$numerator = _ref.numerator,
|
|
954
1067
|
numerator = _ref$numerator === void 0 ? 1 : _ref$numerator,
|
|
955
1068
|
_ref$denominator = _ref.denominator,
|
|
@@ -960,7 +1073,7 @@ var TimeBase = /*#__PURE__*/function () {
|
|
|
960
1073
|
}
|
|
961
1074
|
/**
|
|
962
1075
|
* Get TimeBase in a constant representation (e.g. "PAL") if possible, otherwise undefined
|
|
963
|
-
* @returns
|
|
1076
|
+
* @returns Constant representation of the TimeBase
|
|
964
1077
|
*/
|
|
965
1078
|
|
|
966
1079
|
|
|
@@ -991,33 +1104,24 @@ var TimeBase = /*#__PURE__*/function () {
|
|
|
991
1104
|
/**
|
|
992
1105
|
* Get TimeBase as a VidiCore TimeBaseType string
|
|
993
1106
|
*
|
|
1107
|
+
* @remarks
|
|
994
1108
|
* Default format: denominator(:numerator if > 1)
|
|
995
1109
|
* `constant` has precedence over `fraction` if both are true (e.g. NTSC > 30000:1001)
|
|
996
1110
|
*
|
|
997
|
-
* @param
|
|
998
|
-
* @
|
|
999
|
-
* @param {boolean} [options.fraction=false] Show time base as fraction (25:1) even when numerator is 1
|
|
1000
|
-
* @returns {string} Text representation of the TimeBase
|
|
1111
|
+
* @param options For how to display it as text
|
|
1112
|
+
* @returns Text representation of the TimeBase
|
|
1001
1113
|
*/
|
|
1002
1114
|
|
|
1003
1115
|
}, {
|
|
1004
1116
|
key: "toText",
|
|
1005
|
-
value: function toText() {
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
var _ref2 = options || {},
|
|
1009
|
-
_ref2$constant = _ref2.constant,
|
|
1010
|
-
constant = _ref2$constant === void 0 ? false : _ref2$constant,
|
|
1011
|
-
_ref2$fraction = _ref2.fraction,
|
|
1012
|
-
fraction = _ref2$fraction === void 0 ? false : _ref2$fraction;
|
|
1013
|
-
|
|
1014
|
-
if (constant) {
|
|
1117
|
+
value: function toText(options) {
|
|
1118
|
+
if (options !== null && options !== void 0 && options.constant) {
|
|
1015
1119
|
var _timeBaseText = this.toConstant();
|
|
1016
1120
|
|
|
1017
1121
|
if (_timeBaseText) return _timeBaseText;
|
|
1018
1122
|
}
|
|
1019
1123
|
|
|
1020
|
-
if (fraction || this.numerator > 1) {
|
|
1124
|
+
if (options !== null && options !== void 0 && options.fraction || this.numerator > 1) {
|
|
1021
1125
|
var _timeBaseText2 = [this.denominator, this.numerator].join(':');
|
|
1022
1126
|
|
|
1023
1127
|
return _timeBaseText2;
|
|
@@ -1029,7 +1133,7 @@ var TimeBase = /*#__PURE__*/function () {
|
|
|
1029
1133
|
/**
|
|
1030
1134
|
* Output TimeBase as frame rate (by default max 16 decimal places)
|
|
1031
1135
|
*
|
|
1032
|
-
*
|
|
1136
|
+
* @remarks
|
|
1033
1137
|
* For `options.fixed`:
|
|
1034
1138
|
* - `true` gives two decimal places
|
|
1035
1139
|
* - `false` gives max amount of decimal places
|
|
@@ -1038,45 +1142,32 @@ var TimeBase = /*#__PURE__*/function () {
|
|
|
1038
1142
|
* Default format: rate with two decimals if needed (i.e. decimals are > 0)
|
|
1039
1143
|
* Option precedence (when all true): `constant` > `rounded` > `fixed`
|
|
1040
1144
|
*
|
|
1041
|
-
* @param
|
|
1042
|
-
*
|
|
1043
|
-
* @
|
|
1044
|
-
* @param {boolean} [options.rounded=false] Rounded to nearest integer
|
|
1145
|
+
* @param options For how to display it as rate
|
|
1146
|
+
*
|
|
1147
|
+
* @return Rate of the TimeBase
|
|
1045
1148
|
*
|
|
1046
|
-
* @
|
|
1149
|
+
* @category Time
|
|
1047
1150
|
*/
|
|
1048
1151
|
|
|
1049
1152
|
}, {
|
|
1050
1153
|
key: "toRate",
|
|
1051
|
-
value: function toRate() {
|
|
1052
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1053
|
-
|
|
1054
|
-
var _ref3 = options || {},
|
|
1055
|
-
_ref3$constant = _ref3.constant,
|
|
1056
|
-
constant = _ref3$constant === void 0 ? false : _ref3$constant,
|
|
1057
|
-
_ref3$rounded = _ref3.rounded,
|
|
1058
|
-
rounded = _ref3$rounded === void 0 ? false : _ref3$rounded,
|
|
1059
|
-
_ref3$fixed = _ref3.fixed,
|
|
1060
|
-
fixed = _ref3$fixed === void 0 ? true : _ref3$fixed;
|
|
1061
|
-
|
|
1062
|
-
if (constant) {
|
|
1063
|
-
var _rate = this.toConstant();
|
|
1064
|
-
|
|
1065
|
-
if (_rate) return _rate;
|
|
1066
|
-
}
|
|
1067
|
-
|
|
1154
|
+
value: function toRate(options) {
|
|
1068
1155
|
var rate = this.denominator / this.numerator;
|
|
1069
1156
|
|
|
1070
1157
|
if (Number.isInteger(rate)) {
|
|
1071
1158
|
return rate;
|
|
1072
1159
|
}
|
|
1073
1160
|
|
|
1074
|
-
if (rounded) {
|
|
1161
|
+
if (options !== null && options !== void 0 && options.rounded) {
|
|
1075
1162
|
return Math.round(rate);
|
|
1076
1163
|
}
|
|
1077
1164
|
|
|
1165
|
+
var _ref2 = options || {},
|
|
1166
|
+
_ref2$fixed = _ref2.fixed,
|
|
1167
|
+
fixed = _ref2$fixed === void 0 ? true : _ref2$fixed;
|
|
1168
|
+
|
|
1078
1169
|
if (fixed === true || typeof fixed === 'number') {
|
|
1079
|
-
return Number(rate.toFixed(fixed ===
|
|
1170
|
+
return Number(rate.toFixed(typeof fixed === 'boolean' ? 2 : fixed));
|
|
1080
1171
|
}
|
|
1081
1172
|
|
|
1082
1173
|
return rate;
|
|
@@ -1084,7 +1175,7 @@ var TimeBase = /*#__PURE__*/function () {
|
|
|
1084
1175
|
/**
|
|
1085
1176
|
* Get TimeBase in a object representation
|
|
1086
1177
|
*
|
|
1087
|
-
* @returns
|
|
1178
|
+
* @returns TimeBase as `{denominator, numerator}` object
|
|
1088
1179
|
*/
|
|
1089
1180
|
|
|
1090
1181
|
}, {
|
|
@@ -1096,9 +1187,9 @@ var TimeBase = /*#__PURE__*/function () {
|
|
|
1096
1187
|
};
|
|
1097
1188
|
}
|
|
1098
1189
|
/**
|
|
1099
|
-
* @deprecated Use {@link TimeBase#toObject|toObject} instead
|
|
1190
|
+
* @deprecated Use {@link TimeBase#toObject | toObject} instead
|
|
1100
1191
|
*
|
|
1101
|
-
* @returns
|
|
1192
|
+
* @returns TimeBase as `{denominator, numerator}` object
|
|
1102
1193
|
*/
|
|
1103
1194
|
|
|
1104
1195
|
}, {
|
|
@@ -1116,8 +1207,10 @@ var TimeBase = /*#__PURE__*/function () {
|
|
|
1116
1207
|
/**
|
|
1117
1208
|
* Format a string representation of a time base to a TimeBase Instance
|
|
1118
1209
|
*
|
|
1119
|
-
* @param
|
|
1120
|
-
* @returns
|
|
1210
|
+
* @param timeBaseText The string to format to a TimeBase instance
|
|
1211
|
+
* @returns A TimeBase Instance
|
|
1212
|
+
*
|
|
1213
|
+
* @category Time
|
|
1121
1214
|
*/
|
|
1122
1215
|
|
|
1123
1216
|
var formatTimeBaseText = function formatTimeBaseText(timeBaseText) {
|
|
@@ -1159,27 +1252,29 @@ var formatTimeBaseText = function formatTimeBaseText(timeBaseText) {
|
|
|
1159
1252
|
/**
|
|
1160
1253
|
* Create a TimeBase instance of an object
|
|
1161
1254
|
*
|
|
1162
|
-
* @param
|
|
1163
|
-
* @returns
|
|
1255
|
+
* @param timeBase A TimeBase object
|
|
1256
|
+
* @returns A TimeBase instance
|
|
1257
|
+
*
|
|
1258
|
+
* @category Time
|
|
1164
1259
|
*/
|
|
1165
|
-
|
|
1166
1260
|
var formatTimeBaseType = function formatTimeBaseType(timeBase) {
|
|
1167
1261
|
return new TimeBase(timeBase);
|
|
1168
1262
|
};
|
|
1169
1263
|
|
|
1170
1264
|
/**
|
|
1171
|
-
* Create a TimeBase Instance from a string or object representation of a time base
|
|
1265
|
+
* Create a TimeBase Instance from a number, string or object representation of a time base
|
|
1266
|
+
*
|
|
1267
|
+
* @param timeBase Input to create time base from
|
|
1268
|
+
* @returns A TimeBase instance
|
|
1172
1269
|
*
|
|
1173
|
-
* @
|
|
1174
|
-
* @returns {TimeBase} A TimeBase instance
|
|
1270
|
+
* @category Time
|
|
1175
1271
|
*/
|
|
1176
|
-
|
|
1177
1272
|
var createTimeBase = function createTimeBase(timeBase) {
|
|
1178
|
-
if (
|
|
1179
|
-
return
|
|
1273
|
+
if (typeof timeBase === 'string' || typeof timeBase === 'number') {
|
|
1274
|
+
return formatTimeBaseText(timeBase);
|
|
1180
1275
|
}
|
|
1181
1276
|
|
|
1182
|
-
return
|
|
1277
|
+
return formatTimeBaseType(timeBase);
|
|
1183
1278
|
};
|
|
1184
1279
|
|
|
1185
1280
|
/**
|
|
@@ -1187,14 +1282,12 @@ var createTimeBase = function createTimeBase(timeBase) {
|
|
|
1187
1282
|
*
|
|
1188
1283
|
* Drops 4 frames (0-3) for 59.97 and 2 frames (0-1) for 29.97/NTSC
|
|
1189
1284
|
*
|
|
1190
|
-
* @param
|
|
1191
|
-
* @returns
|
|
1285
|
+
* @param timeBase Time base to get amount of frames to drop for
|
|
1286
|
+
* @returns Amount of frame drops for specified time base, false if no frame drops
|
|
1192
1287
|
*/
|
|
1193
1288
|
var getAmountOfFrameDrops = function getAmountOfFrameDrops(timeBase) {
|
|
1194
|
-
var timeBaseConstant = timeBase.
|
|
1195
|
-
|
|
1196
|
-
});
|
|
1197
|
-
return timeBaseConstant === '59.94' && 4 || ['NTSC', '29.97'].includes(timeBaseConstant) && 2 || 0;
|
|
1289
|
+
var timeBaseConstant = timeBase.toConstant();
|
|
1290
|
+
return timeBaseConstant === '59.94' && 4 || ['NTSC', '29.97'].includes(timeBaseConstant) && 2 || false;
|
|
1198
1291
|
};
|
|
1199
1292
|
|
|
1200
1293
|
/**
|
|
@@ -1202,21 +1295,21 @@ var getAmountOfFrameDrops = function getAmountOfFrameDrops(timeBase) {
|
|
|
1202
1295
|
*
|
|
1203
1296
|
* Check if TimeBase drops frames
|
|
1204
1297
|
*
|
|
1205
|
-
* @param
|
|
1206
|
-
* @returns
|
|
1298
|
+
* @param timeBase TimeBase Instance to check
|
|
1299
|
+
* @returns true if time base drops frames, false otherwise
|
|
1207
1300
|
*/
|
|
1208
1301
|
|
|
1209
1302
|
var isDropFrameTimeBase = function isDropFrameTimeBase(timeBase) {
|
|
1210
1303
|
return getAmountOfFrameDrops(timeBase) > 0;
|
|
1211
1304
|
};
|
|
1212
1305
|
|
|
1213
|
-
var _excluded$
|
|
1306
|
+
var _excluded$6 = ["hours"];
|
|
1214
1307
|
|
|
1215
|
-
var getDroppedFramesFromSamples = function getDroppedFramesFromSamples(
|
|
1216
|
-
var samples =
|
|
1217
|
-
timeBase =
|
|
1308
|
+
var getDroppedFramesFromSamples = function getDroppedFramesFromSamples(timeCode) {
|
|
1309
|
+
var samples = timeCode.samples,
|
|
1310
|
+
timeBase = timeCode.timeBase;
|
|
1218
1311
|
var amountOfFrameDrops = getAmountOfFrameDrops(timeBase);
|
|
1219
|
-
if (amountOfFrameDrops
|
|
1312
|
+
if (!amountOfFrameDrops) return 0;
|
|
1220
1313
|
var roundedFrameRate = timeBase.toRate({
|
|
1221
1314
|
rounded: true
|
|
1222
1315
|
});
|
|
@@ -1230,53 +1323,67 @@ var getDroppedFramesFromSamples = function getDroppedFramesFromSamples(_ref) {
|
|
|
1230
1323
|
var amountOfFrameRemainderChunks = frameRemainder > 0 ? amountOfFrameDrops : 0;
|
|
1231
1324
|
return amountOfTenMinuteChunks * 9 * amountOfFrameDrops + amountOfOneMinuteReminderChunks * amountOfFrameDrops + amountOfFrameRemainderChunks;
|
|
1232
1325
|
};
|
|
1326
|
+
|
|
1233
1327
|
/**
|
|
1234
1328
|
* TimeCode class representing the TimeCodeType in VidiCore
|
|
1235
1329
|
*
|
|
1236
1330
|
* For more info, see the [Time Codes section of VidiCore API Docs](https://apidoc.vidispine.com/latest/time.html#time-codes)
|
|
1331
|
+
*
|
|
1332
|
+
* @category Time
|
|
1237
1333
|
*/
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
1334
|
var TimeCode = /*#__PURE__*/function () {
|
|
1335
|
+
// Amount of samples for the time code
|
|
1336
|
+
// The time base for the time code
|
|
1337
|
+
// If time code is dropFrame or not (by default checks timeBase)
|
|
1338
|
+
// Separator for frame in smpte output (default ":" for non-drop-frame and ";" for dropFrame)
|
|
1339
|
+
|
|
1241
1340
|
/**
|
|
1242
1341
|
* Constructor for TimeCode
|
|
1243
1342
|
*
|
|
1244
|
-
* @param
|
|
1245
|
-
* @param
|
|
1246
|
-
* @param {object|string|number} [timeCodeType.timeBase={numerator: 1, denominator: 1}] The time base it should have
|
|
1247
|
-
* @param {object} [options={}] Options for the timeCode
|
|
1248
|
-
* @param {boolean} options.dropFrame If time code should be dropFrame or not (by default checks timeBase)
|
|
1249
|
-
* @param {string} options.frameSeparator Separator to use for frame smpte output (default ":" for non-drop-frame and ";" for dropFrame)
|
|
1343
|
+
* @param timeCodeType Object to create TimeCode of
|
|
1344
|
+
* @param options Options for the timeCode
|
|
1250
1345
|
*/
|
|
1251
|
-
function TimeCode() {
|
|
1346
|
+
function TimeCode(timeCodeType, options) {
|
|
1252
1347
|
var _options$dropFrame, _options$frameSeparat;
|
|
1253
1348
|
|
|
1254
|
-
var timeCodeType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1255
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
1256
|
-
|
|
1257
1349
|
_classCallCheck__default["default"](this, TimeCode);
|
|
1258
1350
|
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1351
|
+
_defineProperty__default["default"](this, "samples", 0);
|
|
1352
|
+
|
|
1353
|
+
_defineProperty__default["default"](this, "timeBase", new TimeBase());
|
|
1354
|
+
|
|
1355
|
+
_defineProperty__default["default"](this, "dropFrame", void 0);
|
|
1356
|
+
|
|
1357
|
+
_defineProperty__default["default"](this, "frameSeparator", void 0);
|
|
1358
|
+
|
|
1359
|
+
var _ref = timeCodeType || {},
|
|
1360
|
+
samples = _ref.samples,
|
|
1361
|
+
timeBase = _ref.timeBase;
|
|
1362
|
+
|
|
1363
|
+
if (samples !== undefined) {
|
|
1364
|
+
if (typeof samples === 'number') {
|
|
1365
|
+
this.samples = samples;
|
|
1366
|
+
} else if (typeof samples === 'string') {
|
|
1367
|
+
if (samples === '-INF') {
|
|
1368
|
+
this.samples = -Infinity;
|
|
1369
|
+
} else if (samples === '+INF') {
|
|
1370
|
+
this.samples = Infinity;
|
|
1371
|
+
} else {
|
|
1372
|
+
this.samples = Number(samples);
|
|
1373
|
+
}
|
|
1374
|
+
} else {
|
|
1375
|
+
throw new Error("samples is not number/string/-Inf/+Inf is: ".concat(samples));
|
|
1376
|
+
}
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1379
|
+
if (timeBase !== undefined) {
|
|
1380
|
+
if (timeBase instanceof TimeBase) {
|
|
1381
|
+
this.timeBase = timeBase;
|
|
1272
1382
|
} else {
|
|
1273
|
-
this.
|
|
1383
|
+
this.timeBase = createTimeBase(timeBase);
|
|
1274
1384
|
}
|
|
1275
|
-
} else {
|
|
1276
|
-
throw new Error("samples is not number/string/-Inf/+Inf is: ".concat(samples));
|
|
1277
1385
|
}
|
|
1278
1386
|
|
|
1279
|
-
this.timeBase = createTimeBase(timeBase);
|
|
1280
1387
|
this.dropFrame = (_options$dropFrame = options === null || options === void 0 ? void 0 : options.dropFrame) !== null && _options$dropFrame !== void 0 ? _options$dropFrame : isDropFrameTimeBase(this.timeBase);
|
|
1281
1388
|
this.frameSeparator = (_options$frameSeparat = options === null || options === void 0 ? void 0 : options.frameSeparator) !== null && _options$frameSeparat !== void 0 ? _options$frameSeparat : this.dropFrame ? ';' : ':';
|
|
1282
1389
|
}
|
|
@@ -1289,26 +1396,26 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1289
1396
|
* "51@50".add("25@25") => "101@50"
|
|
1290
1397
|
* while "25@25".add("51@50") => "50@25" (not "101@50")
|
|
1291
1398
|
*
|
|
1292
|
-
* @param
|
|
1399
|
+
* @param timeCode A TimeCode instance you want to add with
|
|
1293
1400
|
* @returns A new TimeCode instance with the addition applied
|
|
1294
1401
|
*/
|
|
1295
1402
|
|
|
1296
1403
|
|
|
1297
1404
|
_createClass__default["default"](TimeCode, [{
|
|
1298
1405
|
key: "add",
|
|
1299
|
-
value: function add(
|
|
1300
|
-
if (!(
|
|
1406
|
+
value: function add(timeCode) {
|
|
1407
|
+
if (!(timeCode !== null && timeCode !== void 0 && timeCode.timeBase) || (timeCode === null || timeCode === void 0 ? void 0 : timeCode.samples) === undefined) {
|
|
1301
1408
|
throw Error('Invalid timeCodeType, cannot be added');
|
|
1302
1409
|
}
|
|
1303
1410
|
|
|
1304
|
-
var
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
var conformedTimeCode =
|
|
1411
|
+
var _ref2 = (timeCode === null || timeCode === void 0 ? void 0 : timeCode.timeBase) || {},
|
|
1412
|
+
numerator = _ref2.numerator,
|
|
1413
|
+
denominator = _ref2.denominator;
|
|
1414
|
+
|
|
1415
|
+
var conformedTimeCode = timeCode;
|
|
1309
1416
|
|
|
1310
1417
|
if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {
|
|
1311
|
-
conformedTimeCode =
|
|
1418
|
+
conformedTimeCode = timeCode.conformTimeBase(this.timeBase);
|
|
1312
1419
|
}
|
|
1313
1420
|
|
|
1314
1421
|
var _conformedTimeCode = conformedTimeCode,
|
|
@@ -1327,25 +1434,25 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1327
1434
|
* "101@50".subtract("25@25") => "51@50"
|
|
1328
1435
|
* while "50@25".subtract("51@50") => "25@25" (not "49@50")
|
|
1329
1436
|
*
|
|
1330
|
-
* @param
|
|
1437
|
+
* @param timeCode A TimeCode instance you want to subtract with
|
|
1331
1438
|
* @returns A new TimeCode instance with the subtraction applied
|
|
1332
1439
|
*/
|
|
1333
1440
|
|
|
1334
1441
|
}, {
|
|
1335
1442
|
key: "subtract",
|
|
1336
|
-
value: function subtract(
|
|
1337
|
-
if (!(
|
|
1443
|
+
value: function subtract(timeCode) {
|
|
1444
|
+
if (!(timeCode !== null && timeCode !== void 0 && timeCode.timeBase) || (timeCode === null || timeCode === void 0 ? void 0 : timeCode.samples) === undefined) {
|
|
1338
1445
|
throw Error('Invalid timeCodeType, cannot be subtracted');
|
|
1339
1446
|
}
|
|
1340
1447
|
|
|
1341
|
-
var
|
|
1342
|
-
|
|
1343
|
-
var numerator =
|
|
1344
|
-
denominator =
|
|
1345
|
-
var conformedTimeCode =
|
|
1448
|
+
var _timeCode$timeBase = timeCode.timeBase;
|
|
1449
|
+
_timeCode$timeBase = _timeCode$timeBase === void 0 ? {} : _timeCode$timeBase;
|
|
1450
|
+
var numerator = _timeCode$timeBase.numerator,
|
|
1451
|
+
denominator = _timeCode$timeBase.denominator;
|
|
1452
|
+
var conformedTimeCode = timeCode;
|
|
1346
1453
|
|
|
1347
1454
|
if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {
|
|
1348
|
-
conformedTimeCode =
|
|
1455
|
+
conformedTimeCode = timeCode.conformTimeBase(this.timeBase);
|
|
1349
1456
|
}
|
|
1350
1457
|
|
|
1351
1458
|
var _conformedTimeCode2 = conformedTimeCode,
|
|
@@ -1361,19 +1468,14 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1361
1468
|
* If it conforms to a less granular time base - it will floor samples (hasn't reached that sample yet)
|
|
1362
1469
|
* - e.g. "51@50".conformTo("PAL") => "25@PAL" (not "26@PAL")
|
|
1363
1470
|
*
|
|
1364
|
-
* @param
|
|
1471
|
+
* @param timeBase The TimeBase it should conform the TimeCode to
|
|
1365
1472
|
* @returns A new TimeCode instance with the conformTo timeBase applied
|
|
1366
1473
|
*/
|
|
1367
1474
|
|
|
1368
1475
|
}, {
|
|
1369
1476
|
key: "conformTimeBase",
|
|
1370
|
-
value: function conformTimeBase(
|
|
1371
|
-
var conformToTimeBase =
|
|
1372
|
-
|
|
1373
|
-
if (!(conformTo instanceof TimeBase)) {
|
|
1374
|
-
conformToTimeBase = createTimeBase(conformTo);
|
|
1375
|
-
}
|
|
1376
|
-
|
|
1477
|
+
value: function conformTimeBase(timeBase) {
|
|
1478
|
+
var conformToTimeBase = timeBase instanceof TimeBase ? timeBase : createTimeBase(timeBase);
|
|
1377
1479
|
var samples = Math.floor(this.samples / (this.timeBase.toRate({
|
|
1378
1480
|
fixed: false
|
|
1379
1481
|
}) / conformToTimeBase.toRate({
|
|
@@ -1388,20 +1490,19 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1388
1490
|
/**
|
|
1389
1491
|
* Get TimeCode as a text representation
|
|
1390
1492
|
*
|
|
1493
|
+
* @remarks
|
|
1391
1494
|
* Default format: samples@denominator(:numerator if > 1)
|
|
1392
1495
|
* `constant` has precedence over `fraction` if both are true
|
|
1393
1496
|
*
|
|
1394
|
-
* @param
|
|
1395
|
-
* @param {boolean} [options.includeTimeBaseForSeconds=false] include time base even if seconds
|
|
1396
|
-
* @param {boolean} [options.constant=false] show as constant (e.g. @PAL)
|
|
1397
|
-
* @param {boolean} [options.fraction=false] show as fraction (@25:1)
|
|
1497
|
+
* @param options Options for how to format text
|
|
1398
1498
|
* @returns Text representation of TimeCode
|
|
1499
|
+
*
|
|
1500
|
+
* @category Time
|
|
1399
1501
|
*/
|
|
1400
1502
|
|
|
1401
1503
|
}, {
|
|
1402
1504
|
key: "toText",
|
|
1403
|
-
value: function toText() {
|
|
1404
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1505
|
+
value: function toText(options) {
|
|
1405
1506
|
var timeCodeText = "".concat(this.samples);
|
|
1406
1507
|
var timeBaseText = this.timeBase.toText(options);
|
|
1407
1508
|
|
|
@@ -1414,7 +1515,7 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1414
1515
|
/**
|
|
1415
1516
|
* Get TimeCode in a units object representation
|
|
1416
1517
|
*
|
|
1417
|
-
* @returns
|
|
1518
|
+
* @returns Units (time and frames) for the time code
|
|
1418
1519
|
*/
|
|
1419
1520
|
|
|
1420
1521
|
}, {
|
|
@@ -1446,7 +1547,7 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1446
1547
|
* Get TimeCode in a time object representation
|
|
1447
1548
|
* "milliseconds" is rounded down, if you want another representation use "partialSeconds"
|
|
1448
1549
|
*
|
|
1449
|
-
* @returns
|
|
1550
|
+
* @returns Time for the time code
|
|
1450
1551
|
*/
|
|
1451
1552
|
|
|
1452
1553
|
}, {
|
|
@@ -1476,7 +1577,7 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1476
1577
|
/**
|
|
1477
1578
|
* Get TimeCode in a seconds representation
|
|
1478
1579
|
*
|
|
1479
|
-
* @returns
|
|
1580
|
+
* @returns Total seconds for the time code
|
|
1480
1581
|
*/
|
|
1481
1582
|
|
|
1482
1583
|
}, {
|
|
@@ -1502,20 +1603,19 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1502
1603
|
* - uses colon delimiter (e.g. for format "hhmmss")
|
|
1503
1604
|
* - shows "m:ss" or "h:mm:ss" if format is undefined
|
|
1504
1605
|
*
|
|
1505
|
-
* @param
|
|
1506
|
-
* @
|
|
1507
|
-
* @returns {string} Duration representation of the TimeCode
|
|
1606
|
+
* @param options Options for how to display duration
|
|
1607
|
+
* @returns Duration representation of the TimeCode
|
|
1508
1608
|
*/
|
|
1509
1609
|
|
|
1510
1610
|
}, {
|
|
1511
1611
|
key: "toDuration",
|
|
1512
|
-
value: function toDuration() {
|
|
1513
|
-
var
|
|
1514
|
-
|
|
1612
|
+
value: function toDuration(options) {
|
|
1613
|
+
var _ref3 = options || {},
|
|
1614
|
+
format = _ref3.format;
|
|
1515
1615
|
|
|
1516
1616
|
var _this$toTime = this.toTime(),
|
|
1517
1617
|
hours = _this$toTime.hours,
|
|
1518
|
-
rest = _objectWithoutProperties__default["default"](_this$toTime, _excluded$
|
|
1618
|
+
rest = _objectWithoutProperties__default["default"](_this$toTime, _excluded$6);
|
|
1519
1619
|
|
|
1520
1620
|
var minutes = rest.minutes,
|
|
1521
1621
|
seconds = rest.seconds,
|
|
@@ -1579,7 +1679,7 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1579
1679
|
var _amount = countConsecutiveChars(i, arr);
|
|
1580
1680
|
|
|
1581
1681
|
if (!format.includes('h')) {
|
|
1582
|
-
minutes
|
|
1682
|
+
minutes += hours * 60;
|
|
1583
1683
|
}
|
|
1584
1684
|
|
|
1585
1685
|
output.push("".concat(minutes).padStart(_amount, '0'));
|
|
@@ -1600,7 +1700,7 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1600
1700
|
var _amount2 = countConsecutiveChars(i, arr);
|
|
1601
1701
|
|
|
1602
1702
|
if (!format.includes('m')) {
|
|
1603
|
-
seconds
|
|
1703
|
+
seconds += minutes * 60;
|
|
1604
1704
|
}
|
|
1605
1705
|
|
|
1606
1706
|
output.push("".concat(seconds).padStart(_amount2, '0'));
|
|
@@ -1621,7 +1721,7 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1621
1721
|
var _amount3 = countConsecutiveChars(i, arr);
|
|
1622
1722
|
|
|
1623
1723
|
if (!format.includes('s')) {
|
|
1624
|
-
milliseconds
|
|
1724
|
+
milliseconds += seconds * 1000;
|
|
1625
1725
|
}
|
|
1626
1726
|
|
|
1627
1727
|
output.push("".concat(Math.round(milliseconds / Math.pow(10, 3 - _amount3))).padStart(_amount3, '0'));
|
|
@@ -1638,7 +1738,7 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1638
1738
|
/**
|
|
1639
1739
|
* Get TimeCode in a smpte representation
|
|
1640
1740
|
*
|
|
1641
|
-
* @returns
|
|
1741
|
+
* @returns Smpte representation of the TimeCode
|
|
1642
1742
|
*/
|
|
1643
1743
|
|
|
1644
1744
|
}, {
|
|
@@ -1658,7 +1758,7 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1658
1758
|
/**
|
|
1659
1759
|
* Get TimeCode as a VidiCore TimeCodeType object
|
|
1660
1760
|
*
|
|
1661
|
-
* @returns
|
|
1761
|
+
* @returns TimeCode as `{ samples, timeBase }`
|
|
1662
1762
|
*/
|
|
1663
1763
|
|
|
1664
1764
|
}, {
|
|
@@ -1670,9 +1770,9 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1670
1770
|
};
|
|
1671
1771
|
}
|
|
1672
1772
|
/**
|
|
1673
|
-
* @deprecated Use {@link TimeCode#toObject|toObject} instead
|
|
1773
|
+
* @deprecated Use {@link TimeCode#toObject | toObject} instead
|
|
1674
1774
|
*
|
|
1675
|
-
* @returns
|
|
1775
|
+
* @returns TimeCode as `{ samples, timeBase }`
|
|
1676
1776
|
*/
|
|
1677
1777
|
|
|
1678
1778
|
}, {
|
|
@@ -1694,9 +1794,9 @@ var TimeCode = /*#__PURE__*/function () {
|
|
|
1694
1794
|
*
|
|
1695
1795
|
* Using Euclid's algorithm
|
|
1696
1796
|
*
|
|
1697
|
-
* @param
|
|
1698
|
-
* @param
|
|
1699
|
-
* @returns
|
|
1797
|
+
* @param num1 a number
|
|
1798
|
+
* @param num2 another number
|
|
1799
|
+
* @returns The greatest common divisor of num1 and num2
|
|
1700
1800
|
*/
|
|
1701
1801
|
var getGreatestCommonDivisor = function getGreatestCommonDivisor(num1, num2) {
|
|
1702
1802
|
var a = Math.abs(num1);
|
|
@@ -1717,7 +1817,8 @@ var getGreatestCommonDivisor = function getGreatestCommonDivisor(num1, num2) {
|
|
|
1717
1817
|
return a || b;
|
|
1718
1818
|
};
|
|
1719
1819
|
|
|
1720
|
-
var _excluded$
|
|
1820
|
+
var _excluded$5 = ["timeBase", "useGCD"];
|
|
1821
|
+
|
|
1721
1822
|
/**
|
|
1722
1823
|
* Format seconds to TimeCode object
|
|
1723
1824
|
* Input time base is always 1:1 since it expects seconds as input
|
|
@@ -1727,20 +1828,18 @@ var _excluded$4 = ["timeBase", "useGCD"];
|
|
|
1727
1828
|
* - 10^9 seconds can have 10^6 decimals (microsecond) precision
|
|
1728
1829
|
* - 10^12 seconds can have 10^3 decimals (millisecond) precision
|
|
1729
1830
|
*
|
|
1730
|
-
* @param
|
|
1731
|
-
* @param
|
|
1732
|
-
* @
|
|
1733
|
-
*
|
|
1734
|
-
* @
|
|
1831
|
+
* @param seconds With or without decimals ("." and "," are both interpreted as decimal)
|
|
1832
|
+
* @param options Options for how to format the seconds to a TimeCode
|
|
1833
|
+
* @returns A TimeCode instance
|
|
1834
|
+
*
|
|
1835
|
+
* @category Time
|
|
1735
1836
|
*/
|
|
1736
|
-
|
|
1737
|
-
var
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
useGCD = _options$useGCD === void 0 ? false : _options$useGCD,
|
|
1743
|
-
timeCodeOptions = _objectWithoutProperties__default["default"](options, _excluded$4);
|
|
1837
|
+
var formatTimeCodeSeconds = function formatTimeCodeSeconds(seconds, options) {
|
|
1838
|
+
var _ref = options || {},
|
|
1839
|
+
timeBase = _ref.timeBase,
|
|
1840
|
+
_ref$useGCD = _ref.useGCD,
|
|
1841
|
+
useGCD = _ref$useGCD === void 0 ? false : _ref$useGCD,
|
|
1842
|
+
timeCodeOptions = _objectWithoutProperties__default["default"](_ref, _excluded$5);
|
|
1744
1843
|
|
|
1745
1844
|
var secondsWithDot = "".concat(seconds).replace(/,/g, '.');
|
|
1746
1845
|
|
|
@@ -1762,10 +1861,10 @@ var formatTimeCodeSeconds = function formatTimeCodeSeconds(seconds) {
|
|
|
1762
1861
|
|
|
1763
1862
|
var decimalPlaces = Math.min((_ms$length = ms === null || ms === void 0 ? void 0 : ms.length) !== null && _ms$length !== void 0 ? _ms$length : 0, 16);
|
|
1764
1863
|
denominator *= Math.pow(10, decimalPlaces);
|
|
1765
|
-
samples = Math.round(secondsWithDot * denominator);
|
|
1864
|
+
samples = Math.round(Number(secondsWithDot) * denominator);
|
|
1766
1865
|
}
|
|
1767
1866
|
|
|
1768
|
-
if (
|
|
1867
|
+
if (timeBase === undefined && useGCD) {
|
|
1769
1868
|
var gcd = getGreatestCommonDivisor(denominator, samples);
|
|
1770
1869
|
samples /= gcd;
|
|
1771
1870
|
denominator /= gcd;
|
|
@@ -1778,32 +1877,9 @@ var formatTimeCodeSeconds = function formatTimeCodeSeconds(seconds) {
|
|
|
1778
1877
|
numerator: 1
|
|
1779
1878
|
}
|
|
1780
1879
|
}, timeCodeOptions);
|
|
1781
|
-
return timeBase ? timeCode.conformTimeBase(createTimeBase(timeBase === true ? 1 : timeBase)) : timeCode;
|
|
1880
|
+
return timeBase !== undefined ? timeCode.conformTimeBase(createTimeBase(timeBase === true ? 1 : timeBase)) : timeCode;
|
|
1782
1881
|
};
|
|
1783
1882
|
|
|
1784
|
-
var _excluded$3 = ["exceedingMode", "timeBase"];
|
|
1785
|
-
|
|
1786
|
-
function ownKeys$7(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; }
|
|
1787
|
-
|
|
1788
|
-
function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
1789
|
-
var MAP_SEPARATOR_TO_OPTIONS = {
|
|
1790
|
-
':': {
|
|
1791
|
-
dropFrame: false,
|
|
1792
|
-
frameSeparator: ':'
|
|
1793
|
-
},
|
|
1794
|
-
'.': {
|
|
1795
|
-
dropFrame: false,
|
|
1796
|
-
frameSeparator: '.'
|
|
1797
|
-
},
|
|
1798
|
-
';': {
|
|
1799
|
-
dropFrame: true,
|
|
1800
|
-
frameSeparator: ';'
|
|
1801
|
-
},
|
|
1802
|
-
',': {
|
|
1803
|
-
dropFrame: true,
|
|
1804
|
-
frameSeparator: ','
|
|
1805
|
-
}
|
|
1806
|
-
};
|
|
1807
1883
|
var getDroppedFramesFromSmpte = function getDroppedFramesFromSmpte(_ref, samples, timeBase) {
|
|
1808
1884
|
var _ref2 = _slicedToArray__default["default"](_ref, 4),
|
|
1809
1885
|
hh = _ref2[0],
|
|
@@ -1816,7 +1892,7 @@ var getDroppedFramesFromSmpte = function getDroppedFramesFromSmpte(_ref, samples
|
|
|
1816
1892
|
});
|
|
1817
1893
|
var dropFrames = getAmountOfFrameDrops(timeBase);
|
|
1818
1894
|
|
|
1819
|
-
if (samples === 0 || dropFrames
|
|
1895
|
+
if (samples === 0 || !dropFrames) {
|
|
1820
1896
|
return 0;
|
|
1821
1897
|
}
|
|
1822
1898
|
|
|
@@ -1827,9 +1903,7 @@ var getDroppedFramesFromSmpte = function getDroppedFramesFromSmpte(_ref, samples
|
|
|
1827
1903
|
var secondFrames = ss * roundedFrameRate - (shouldDropMinute && ss > 1 ? dropFrames : 0);
|
|
1828
1904
|
|
|
1829
1905
|
if (shouldDropSecond && ff < dropFrames) {
|
|
1830
|
-
throw new Error("Frame does not exist for ".concat(timeBase.toRate(
|
|
1831
|
-
constant: true
|
|
1832
|
-
}), " drop-frame"));
|
|
1906
|
+
throw new Error("Frame does not exist for ".concat(timeBase.toConstant() || timeBase.toRate(), " drop-frame"));
|
|
1833
1907
|
}
|
|
1834
1908
|
|
|
1835
1909
|
var frameFrames = shouldDropSecond ? ff - dropFrames : ff;
|
|
@@ -1837,16 +1911,26 @@ var getDroppedFramesFromSmpte = function getDroppedFramesFromSmpte(_ref, samples
|
|
|
1837
1911
|
return samples - samplesWithoutDroppedFrames;
|
|
1838
1912
|
};
|
|
1839
1913
|
|
|
1914
|
+
var getSamplesFromSmpte = function getSamplesFromSmpte(smpteValues, timeBase, dropFrame) {
|
|
1915
|
+
var _smpteValues = _slicedToArray__default["default"](smpteValues, 4),
|
|
1916
|
+
hh = _smpteValues[0],
|
|
1917
|
+
mm = _smpteValues[1],
|
|
1918
|
+
ss = _smpteValues[2],
|
|
1919
|
+
ff = _smpteValues[3];
|
|
1920
|
+
|
|
1921
|
+
var roundedFrameRate = timeBase.toRate({
|
|
1922
|
+
rounded: true
|
|
1923
|
+
});
|
|
1924
|
+
var samples = hh * 3600 * roundedFrameRate + mm * 60 * roundedFrameRate + ss * roundedFrameRate + ff;
|
|
1925
|
+
return samples - (dropFrame ? getDroppedFramesFromSmpte(smpteValues, samples, timeBase) : 0);
|
|
1926
|
+
};
|
|
1927
|
+
|
|
1840
1928
|
var splitSmpte = function splitSmpte(smpte) {
|
|
1841
|
-
var
|
|
1842
|
-
|
|
1843
|
-
nonColonFrameSeparator =
|
|
1929
|
+
var _ref = (smpte === null || smpte === void 0 ? void 0 : smpte.match(/[^0-9:\-_]/)) || [],
|
|
1930
|
+
_ref2 = _slicedToArray__default["default"](_ref, 1),
|
|
1931
|
+
nonColonFrameSeparator = _ref2[0];
|
|
1844
1932
|
|
|
1845
1933
|
var smpteValues = [];
|
|
1846
|
-
var options = {
|
|
1847
|
-
frameSeparator: ':',
|
|
1848
|
-
dropFrame: false
|
|
1849
|
-
};
|
|
1850
1934
|
|
|
1851
1935
|
if (nonColonFrameSeparator) {
|
|
1852
1936
|
var _smpte$split = smpte.split(nonColonFrameSeparator),
|
|
@@ -1855,13 +1939,10 @@ var splitSmpte = function splitSmpte(smpte) {
|
|
|
1855
1939
|
ff = _smpte$split2[1];
|
|
1856
1940
|
|
|
1857
1941
|
smpteValues = [].concat(_toConsumableArray__default["default"](hhmmss.split(':')), [ff]);
|
|
1858
|
-
options = MAP_SEPARATOR_TO_OPTIONS[nonColonFrameSeparator] || {};
|
|
1859
1942
|
} else {
|
|
1860
1943
|
smpteValues = smpte.split(':');
|
|
1861
1944
|
}
|
|
1862
1945
|
|
|
1863
|
-
smpteValues = smpteValues.map(Number);
|
|
1864
|
-
|
|
1865
1946
|
if (smpteValues.length !== 4) {
|
|
1866
1947
|
throw new Error('Invalid format, must be "##:##:##:##');
|
|
1867
1948
|
}
|
|
@@ -1872,25 +1953,20 @@ var splitSmpte = function splitSmpte(smpte) {
|
|
|
1872
1953
|
throw new Error('Invalid format, values must be numbers');
|
|
1873
1954
|
}
|
|
1874
1955
|
|
|
1875
|
-
|
|
1956
|
+
var smpteFrameSeparator = nonColonFrameSeparator || ':';
|
|
1957
|
+
return {
|
|
1958
|
+
smpteValues: smpteValues.map(Number),
|
|
1959
|
+
smpteFrameSeparator: smpteFrameSeparator
|
|
1960
|
+
};
|
|
1876
1961
|
};
|
|
1877
1962
|
|
|
1878
|
-
var
|
|
1879
|
-
var _smpteValues = _slicedToArray__default["default"](smpteValues, 4),
|
|
1880
|
-
hh = _smpteValues[0],
|
|
1881
|
-
mm = _smpteValues[1],
|
|
1882
|
-
ss = _smpteValues[2],
|
|
1883
|
-
ff = _smpteValues[3];
|
|
1884
|
-
|
|
1885
|
-
var roundedFrameRate = timeBase.toRate({
|
|
1886
|
-
rounded: true
|
|
1887
|
-
});
|
|
1888
|
-
var samples = hh * 3600 * roundedFrameRate + mm * 60 * roundedFrameRate + ss * roundedFrameRate + ff;
|
|
1889
|
-
return samples - (dropFrame ? getDroppedFramesFromSmpte(smpteValues, samples, timeBase) : 0);
|
|
1890
|
-
}; // Better naming than "useValueExcess" and "useValueTruncate" must exist
|
|
1963
|
+
var _excluded$4 = ["exceedingMode", "timeBase"];
|
|
1891
1964
|
|
|
1965
|
+
function ownKeys$9(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; }
|
|
1892
1966
|
|
|
1967
|
+
function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$9(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
1893
1968
|
var EXCEEDING_OPTIONS = ['error', 'add', 'ignore'];
|
|
1969
|
+
|
|
1894
1970
|
/**
|
|
1895
1971
|
* Format smpte text to a TimeCode Instance
|
|
1896
1972
|
*
|
|
@@ -1899,22 +1975,18 @@ var EXCEEDING_OPTIONS = ['error', 'add', 'ignore'];
|
|
|
1899
1975
|
* - "truncate" exceeding values will be truncated (e.g. PAL and 00:00:00:25 => 00:00:00:24)
|
|
1900
1976
|
* - "error" exceeding values will throw error (e.g. PAL and 00:00:00:25 => Error)
|
|
1901
1977
|
*
|
|
1902
|
-
* @param
|
|
1903
|
-
* @param
|
|
1904
|
-
* @
|
|
1905
|
-
*
|
|
1906
|
-
* @
|
|
1907
|
-
* @param {string} options.frameSeparator What frame separator the TimeCode should store (defaults to what the smpte has)
|
|
1908
|
-
* @returns {TimeCode} A TimeCode instance
|
|
1978
|
+
* @param smpte String representation of smpte
|
|
1979
|
+
* @param options Options for creating the time code from smpte
|
|
1980
|
+
* @returns TimeCode instance created from smpte string
|
|
1981
|
+
*
|
|
1982
|
+
* @category Time
|
|
1909
1983
|
*/
|
|
1910
|
-
|
|
1911
|
-
var
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
timeBase = options.timeBase,
|
|
1917
|
-
timeCodeOptions = _objectWithoutProperties__default["default"](options, _excluded$3);
|
|
1984
|
+
var formatTimeCodeSmpte = function formatTimeCodeSmpte(smpte, options) {
|
|
1985
|
+
var _ref = options || {},
|
|
1986
|
+
_ref$exceedingMode = _ref.exceedingMode,
|
|
1987
|
+
exceedingMode = _ref$exceedingMode === void 0 ? 'error' : _ref$exceedingMode,
|
|
1988
|
+
timeBase = _ref.timeBase,
|
|
1989
|
+
timeCodeOptions = _objectWithoutProperties__default["default"](_ref, _excluded$4);
|
|
1918
1990
|
|
|
1919
1991
|
if ([null, undefined].includes(smpte)) {
|
|
1920
1992
|
throw new Error("smpte cannot be undefined or null");
|
|
@@ -1925,15 +1997,16 @@ var formatTimeCodeSmpte = function formatTimeCodeSmpte(smpte) {
|
|
|
1925
1997
|
}
|
|
1926
1998
|
|
|
1927
1999
|
var _splitSmpte = splitSmpte(smpte),
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
timeCodeOptionsFromSmpte = _splitSmpte2[1];
|
|
2000
|
+
smpteValues = _splitSmpte.smpteValues,
|
|
2001
|
+
smpteFrameSeparator = _splitSmpte.smpteFrameSeparator;
|
|
1931
2002
|
|
|
1932
2003
|
var timeBaseInstance = createTimeBase(timeBase);
|
|
1933
2004
|
|
|
1934
|
-
var mergedOptions = _objectSpread$
|
|
1935
|
-
|
|
1936
|
-
}, timeCodeOptions)
|
|
2005
|
+
var mergedOptions = _objectSpread$9(_objectSpread$9({}, timeCodeOptions), {}, {
|
|
2006
|
+
frameSeparator: (timeCodeOptions === null || timeCodeOptions === void 0 ? void 0 : timeCodeOptions.frameSeparator) || smpteFrameSeparator
|
|
2007
|
+
}, (timeCodeOptions === null || timeCodeOptions === void 0 ? void 0 : timeCodeOptions.dropFrame) === undefined ? {
|
|
2008
|
+
dropFrame: timeBase !== undefined ? isDropFrameTimeBase(timeBaseInstance) : [';', ','].includes(smpteFrameSeparator)
|
|
2009
|
+
} : {});
|
|
1937
2010
|
|
|
1938
2011
|
var roundedFrameRate = timeBaseInstance.toRate({
|
|
1939
2012
|
rounded: true
|
|
@@ -1951,11 +2024,11 @@ var formatTimeCodeSmpte = function formatTimeCodeSmpte(smpte) {
|
|
|
1951
2024
|
switch (exceedingMode) {
|
|
1952
2025
|
case 'error':
|
|
1953
2026
|
{
|
|
1954
|
-
var
|
|
1955
|
-
hours =
|
|
1956
|
-
minutes =
|
|
1957
|
-
seconds =
|
|
1958
|
-
frames =
|
|
2027
|
+
var _smpteValues = _slicedToArray__default["default"](smpteValues, 4),
|
|
2028
|
+
hours = _smpteValues[0],
|
|
2029
|
+
minutes = _smpteValues[1],
|
|
2030
|
+
seconds = _smpteValues[2],
|
|
2031
|
+
frames = _smpteValues[3];
|
|
1959
2032
|
|
|
1960
2033
|
if (hours >= 100) {
|
|
1961
2034
|
throw Error('Minutes has to be less than 60');
|
|
@@ -1979,11 +2052,11 @@ var formatTimeCodeSmpte = function formatTimeCodeSmpte(smpte) {
|
|
|
1979
2052
|
|
|
1980
2053
|
case 'ignore':
|
|
1981
2054
|
{
|
|
1982
|
-
var
|
|
1983
|
-
_hours =
|
|
1984
|
-
_minutes =
|
|
1985
|
-
_seconds =
|
|
1986
|
-
_frames =
|
|
2055
|
+
var _smpteValues2 = _slicedToArray__default["default"](smpteValues, 4),
|
|
2056
|
+
_hours = _smpteValues2[0],
|
|
2057
|
+
_minutes = _smpteValues2[1],
|
|
2058
|
+
_seconds = _smpteValues2[2],
|
|
2059
|
+
_frames = _smpteValues2[3];
|
|
1987
2060
|
|
|
1988
2061
|
var truncatedSmpteValues = [Math.min(100, _hours), Math.min(59, _minutes), Math.min(59, _seconds), Math.min(maxFrame, _frames)];
|
|
1989
2062
|
samples = getSamplesFromSmpte(truncatedSmpteValues, timeBaseInstance, mergedOptions === null || mergedOptions === void 0 ? void 0 : mergedOptions.dropFrame);
|
|
@@ -2008,22 +2081,21 @@ var formatTimeCodeSmpte = function formatTimeCodeSmpte(smpte) {
|
|
|
2008
2081
|
}, mergedOptions);
|
|
2009
2082
|
};
|
|
2010
2083
|
|
|
2011
|
-
var _excluded$
|
|
2084
|
+
var _excluded$3 = ["timeBase"];
|
|
2085
|
+
|
|
2012
2086
|
/**
|
|
2013
2087
|
* Format text to a TimeCode instance
|
|
2014
2088
|
*
|
|
2015
|
-
* @
|
|
2016
|
-
*
|
|
2017
|
-
* @
|
|
2018
|
-
* @returns {TimeCode} A TimeCode instance
|
|
2089
|
+
* @returns A TimeCode instance
|
|
2090
|
+
*
|
|
2091
|
+
* @category Time
|
|
2019
2092
|
*/
|
|
2020
|
-
|
|
2021
2093
|
var formatTimeCodeText = function formatTimeCodeText(timeCodeText, options) {
|
|
2022
2094
|
var _timeCodeObject;
|
|
2023
2095
|
|
|
2024
2096
|
var _ref = options || {},
|
|
2025
2097
|
timeBase = _ref.timeBase,
|
|
2026
|
-
timeCodeOptions = _objectWithoutProperties__default["default"](_ref, _excluded$
|
|
2098
|
+
timeCodeOptions = _objectWithoutProperties__default["default"](_ref, _excluded$3);
|
|
2027
2099
|
|
|
2028
2100
|
var timeCodeObject;
|
|
2029
2101
|
|
|
@@ -2071,46 +2143,51 @@ var formatTimeCodeText = function formatTimeCodeText(timeCodeText, options) {
|
|
|
2071
2143
|
/**
|
|
2072
2144
|
* Format an object to a TimeCode instance
|
|
2073
2145
|
*
|
|
2074
|
-
* @param
|
|
2075
|
-
* @param
|
|
2076
|
-
* @returns
|
|
2146
|
+
* @param timeCode To create TimeCode instance of
|
|
2147
|
+
* @param options For the TimeCode constructor
|
|
2148
|
+
* @returns A TimeCode instance
|
|
2149
|
+
*
|
|
2150
|
+
* @category Time
|
|
2077
2151
|
*/
|
|
2078
|
-
|
|
2079
2152
|
var formatTimeCodeType = function formatTimeCodeType(timeCode, options) {
|
|
2080
2153
|
return new TimeCode(timeCode, options);
|
|
2081
2154
|
};
|
|
2082
2155
|
|
|
2083
|
-
var isObject = function isObject(o) {
|
|
2084
|
-
return Object.prototype.toString.call(o) === '[object Object]';
|
|
2085
|
-
};
|
|
2086
|
-
|
|
2087
|
-
var isString = function isString(s) {
|
|
2088
|
-
return typeof s === 'string';
|
|
2089
|
-
};
|
|
2090
|
-
|
|
2091
2156
|
var hasSmpteFormat = function hasSmpteFormat(s) {
|
|
2092
|
-
return
|
|
2157
|
+
return !!s.match(/^(\d\d+):(\d\d+):(\d\d+)(:|;|\.|,)(\d\d+)$/);
|
|
2093
2158
|
};
|
|
2094
2159
|
|
|
2095
2160
|
var isNumber = function isNumber(s) {
|
|
2096
2161
|
return !Number.isNaN(Number(s));
|
|
2097
2162
|
};
|
|
2163
|
+
|
|
2098
2164
|
/**
|
|
2099
2165
|
* Create a TimeCode instance from smpte, seconds/samples, timeCode object or string
|
|
2100
2166
|
*
|
|
2101
|
-
* @param
|
|
2102
|
-
* @param
|
|
2103
|
-
* @returns
|
|
2167
|
+
* @param timeCode Smpte, seconds/samples, timeCode object or string
|
|
2168
|
+
* @param options For the format functions
|
|
2169
|
+
* @returns A TimeCode instance
|
|
2170
|
+
*
|
|
2171
|
+
* @category Time
|
|
2104
2172
|
*/
|
|
2173
|
+
var createTimeCode = function createTimeCode(timeCode, options) {
|
|
2174
|
+
// TimeCode
|
|
2175
|
+
if (typeof timeCode !== 'string' && typeof timeCode !== 'number') return formatTimeCodeType(timeCode, options); // SMPTE
|
|
2105
2176
|
|
|
2177
|
+
if (typeof timeCode === 'string' && hasSmpteFormat(timeCode)) return formatTimeCodeSmpte(timeCode, options);
|
|
2178
|
+
if (['string', 'number'].includes(_typeof__default["default"](timeCode)) && isNumber(timeCode)) return formatTimeCodeSeconds(timeCode, options);
|
|
2106
2179
|
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
return
|
|
2180
|
+
if (typeof timeCode === 'string') {
|
|
2181
|
+
return formatTimeCodeText(timeCode, options);
|
|
2182
|
+
}
|
|
2183
|
+
|
|
2184
|
+
return undefined;
|
|
2112
2185
|
};
|
|
2113
2186
|
|
|
2187
|
+
function ownKeys$8(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; }
|
|
2188
|
+
|
|
2189
|
+
function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$8(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2190
|
+
|
|
2114
2191
|
function timeToCueTime(_ref) {
|
|
2115
2192
|
var _ref$hours = _ref.hours,
|
|
2116
2193
|
hours = _ref$hours === void 0 ? 0 : _ref$hours,
|
|
@@ -2126,129 +2203,150 @@ function timeToCueTime(_ref) {
|
|
|
2126
2203
|
var partialStr = (partialSeconds * 10).toFixed().padStart(3, '0');
|
|
2127
2204
|
return "".concat(hourStr, ":").concat(minStr, ":").concat(secondsStr, ".").concat(partialStr);
|
|
2128
2205
|
}
|
|
2206
|
+
|
|
2207
|
+
var defaultOptions$2 = {
|
|
2208
|
+
subtitleGroup: 'stl_subtitle',
|
|
2209
|
+
subtitleField: 'stl_text'
|
|
2210
|
+
};
|
|
2129
2211
|
/**
|
|
2130
|
-
* Convert subtitle groups to WebVtt
|
|
2131
|
-
*
|
|
2132
|
-
* @param
|
|
2133
|
-
* @param
|
|
2134
|
-
* @
|
|
2135
|
-
*
|
|
2212
|
+
* Convert metadata subtitle groups to WebVtt subtitles
|
|
2213
|
+
*
|
|
2214
|
+
* @param metadataType - Vidicore metadata object (should include subtitleGroup and subtitleField)
|
|
2215
|
+
* @param options - options for how to map subtitle group
|
|
2216
|
+
* @returns WebVtt subtitles
|
|
2217
|
+
*
|
|
2218
|
+
* @category Metadata
|
|
2136
2219
|
*/
|
|
2137
2220
|
|
|
2221
|
+
var metadataTypeToWebVtt = function metadataTypeToWebVtt(metadataType, options) {
|
|
2222
|
+
var _defaultOptions = _objectSpread$8(_objectSpread$8({}, defaultOptions$2), options || {}),
|
|
2223
|
+
subtitleGroup = _defaultOptions.subtitleGroup,
|
|
2224
|
+
subtitleField = _defaultOptions.subtitleField;
|
|
2138
2225
|
|
|
2139
|
-
var
|
|
2140
|
-
|
|
2141
|
-
_ref2$
|
|
2142
|
-
subtitleGroup = _ref2$subtitleGroup === void 0 ? 'stl_subtitle' : _ref2$subtitleGroup,
|
|
2143
|
-
_ref2$subtitleField = _ref2.subtitleField,
|
|
2144
|
-
subtitleField = _ref2$subtitleField === void 0 ? 'stl_text' : _ref2$subtitleField;
|
|
2145
|
-
var parseOptions = {
|
|
2146
|
-
includeTimespanAttributes: true,
|
|
2147
|
-
flatTimespan: true,
|
|
2148
|
-
flatGroup: true,
|
|
2149
|
-
joinValue: ','
|
|
2150
|
-
};
|
|
2151
|
-
|
|
2152
|
-
var _ref3 = metadataType || {},
|
|
2153
|
-
_ref3$timespan = _ref3.timespan,
|
|
2154
|
-
timespanList = _ref3$timespan === void 0 ? [] : _ref3$timespan;
|
|
2226
|
+
var _ref2 = metadataType || {},
|
|
2227
|
+
_ref2$timespan = _ref2.timespan,
|
|
2228
|
+
timespanList = _ref2$timespan === void 0 ? [] : _ref2$timespan;
|
|
2155
2229
|
|
|
2156
2230
|
if (timespanList.length === 0) return '';
|
|
2157
|
-
var
|
|
2158
|
-
|
|
2159
|
-
|
|
2231
|
+
var parsedTimespans = parseTimespanList(timespanList, {
|
|
2232
|
+
includeTimespanAttributes: true,
|
|
2233
|
+
sortTimespan: true,
|
|
2234
|
+
timespanAsList: true,
|
|
2235
|
+
overrideGroup: true,
|
|
2236
|
+
joinValue: ','
|
|
2160
2237
|
});
|
|
2161
|
-
var vttCues = parsedTimespans.map(function (
|
|
2162
|
-
var
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2238
|
+
var vttCues = parsedTimespans.map(function (timespan) {
|
|
2239
|
+
var _ref3 = (Array.isArray(timespan) ? timespan[0] : timespan) || {},
|
|
2240
|
+
startText = _ref3.start,
|
|
2241
|
+
endText = _ref3.end,
|
|
2242
|
+
_ref3$subtitleGroup = _ref3[subtitleGroup];
|
|
2243
|
+
|
|
2244
|
+
_ref3$subtitleGroup = _ref3$subtitleGroup === void 0 ? {} : _ref3$subtitleGroup;
|
|
2245
|
+
var text = _ref3$subtitleGroup[subtitleField];
|
|
2167
2246
|
if (!text) return '';
|
|
2168
|
-
var
|
|
2169
|
-
var
|
|
2170
|
-
var endTime = formatTimeCodeText(endText).toTime();
|
|
2171
|
-
var end = timeToCueTime(endTime);
|
|
2247
|
+
var start = timeToCueTime(formatTimeCodeText(startText).toTime());
|
|
2248
|
+
var end = timeToCueTime(formatTimeCodeText(endText).toTime());
|
|
2172
2249
|
return "".concat(start, " --> ").concat(end, " line:0%\r").concat(text, "\r");
|
|
2173
2250
|
});
|
|
2174
2251
|
return "WEBVTT\n\n\n".concat(vttCues.join('\n'));
|
|
2175
2252
|
};
|
|
2176
2253
|
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2254
|
+
/**
|
|
2255
|
+
* Create a Vidicore facet list
|
|
2256
|
+
*
|
|
2257
|
+
* @param fieldList Input to create facet of
|
|
2258
|
+
* @param options Options for creating the facet
|
|
2259
|
+
* @returns A VidiCore facet list
|
|
2260
|
+
*
|
|
2261
|
+
* @category Search
|
|
2262
|
+
*/
|
|
2180
2263
|
var createFacetType = function createFacetType() {
|
|
2181
2264
|
var fieldList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
2182
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
2265
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
2266
|
+
count: true
|
|
2267
|
+
};
|
|
2183
2268
|
return fieldList.map(function (field) {
|
|
2184
2269
|
return {
|
|
2185
2270
|
field: field,
|
|
2186
2271
|
name: field,
|
|
2187
|
-
count: options.count || true,
|
|
2272
|
+
count: options.count !== undefined ? options === null || options === void 0 ? void 0 : options.count : true,
|
|
2188
2273
|
exclude: fieldList
|
|
2189
2274
|
};
|
|
2190
2275
|
});
|
|
2191
2276
|
};
|
|
2192
2277
|
|
|
2193
|
-
function ownKeys$
|
|
2278
|
+
function ownKeys$7(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; }
|
|
2194
2279
|
|
|
2195
|
-
function _objectSpread$
|
|
2280
|
+
function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2196
2281
|
|
|
2282
|
+
/** Parsed facet type */
|
|
2283
|
+
|
|
2284
|
+
/**
|
|
2285
|
+
* Parse a VidiCore facet type list
|
|
2286
|
+
*
|
|
2287
|
+
* @param facetType A facet type list to parse
|
|
2288
|
+
* @returns A parsed facet type list
|
|
2289
|
+
*
|
|
2290
|
+
* @category Search
|
|
2291
|
+
*/
|
|
2197
2292
|
var parseFacetType = function parseFacetType() {
|
|
2198
2293
|
var facetType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
2199
2294
|
var output = {};
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
field = _ref2.field,
|
|
2210
|
-
count = _ref2.count;
|
|
2211
|
-
output[name || field] = count.reduce(facetFieldReducer, {});
|
|
2295
|
+
facetType.forEach(function (_ref) {
|
|
2296
|
+
var name = _ref.name,
|
|
2297
|
+
field = _ref.field,
|
|
2298
|
+
count = _ref.count;
|
|
2299
|
+
output[name || field] = count.reduce(function (acc, _ref2) {
|
|
2300
|
+
var fieldValue = _ref2.fieldValue,
|
|
2301
|
+
value = _ref2.value;
|
|
2302
|
+
return _objectSpread$7(_objectSpread$7({}, acc), {}, _defineProperty__default["default"]({}, fieldValue, value));
|
|
2303
|
+
}, {});
|
|
2212
2304
|
});
|
|
2213
2305
|
return output;
|
|
2214
2306
|
};
|
|
2215
2307
|
|
|
2216
|
-
function ownKeys$
|
|
2308
|
+
function ownKeys$6(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; }
|
|
2217
2309
|
|
|
2218
|
-
function _objectSpread$
|
|
2310
|
+
function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2219
2311
|
|
|
2312
|
+
var defaultOptions$1 = {
|
|
2313
|
+
arrayOnSingle: true,
|
|
2314
|
+
joinValue: undefined,
|
|
2315
|
+
timespanAsList: false
|
|
2316
|
+
};
|
|
2220
2317
|
/**
|
|
2221
2318
|
* Parses highlight timespan in VidiCore into key/value object.
|
|
2222
2319
|
* The attributes can be targeted for each sub-type.
|
|
2223
|
-
* @param
|
|
2224
|
-
* @param
|
|
2225
|
-
*
|
|
2226
|
-
* @
|
|
2227
|
-
* @param {string} options.joinValue - String to join the values, eg ','.
|
|
2320
|
+
* @param timespan - A VidiCore search timespan
|
|
2321
|
+
* @param options - Options which change how the timespans are parsed
|
|
2322
|
+
*
|
|
2323
|
+
* @category Search
|
|
2228
2324
|
*/
|
|
2229
|
-
|
|
2230
|
-
|
|
2325
|
+
|
|
2326
|
+
var parseHighlightTimespan = function parseHighlightTimespan(timespan, options) {
|
|
2327
|
+
var _defaultOptions = _objectSpread$6(_objectSpread$6({}, defaultOptions$1), options || {}),
|
|
2328
|
+
_defaultOptions$array = _defaultOptions.arrayOnSingle,
|
|
2329
|
+
arrayOnSingle = _defaultOptions$array === void 0 ? true : _defaultOptions$array,
|
|
2330
|
+
_defaultOptions$joinV = _defaultOptions.joinValue,
|
|
2331
|
+
joinValue = _defaultOptions$joinV === void 0 ? undefined : _defaultOptions$joinV,
|
|
2332
|
+
_defaultOptions$times = _defaultOptions.timespanAsList,
|
|
2333
|
+
timespanAsList = _defaultOptions$times === void 0 ? false : _defaultOptions$times;
|
|
2334
|
+
|
|
2335
|
+
var _ref = timespan || {},
|
|
2231
2336
|
_ref$field = _ref.field,
|
|
2232
2337
|
field = _ref$field === void 0 ? [] : _ref$field,
|
|
2233
2338
|
start = _ref.start,
|
|
2234
2339
|
end = _ref.end;
|
|
2235
2340
|
|
|
2236
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
2237
|
-
var _options$arrayOnSingl = options.arrayOnSingle,
|
|
2238
|
-
arrayOnSingle = _options$arrayOnSingl === void 0 ? true : _options$arrayOnSingl,
|
|
2239
|
-
_options$joinValue = options.joinValue,
|
|
2240
|
-
joinValue = _options$joinValue === void 0 ? undefined : _options$joinValue,
|
|
2241
|
-
_options$timespanAsLi = options.timespanAsList,
|
|
2242
|
-
timespanAsList = _options$timespanAsLi === void 0 ? undefined : _options$timespanAsLi;
|
|
2243
2341
|
var initialValue = timespanAsList ? {
|
|
2244
2342
|
start: start,
|
|
2245
2343
|
end: end
|
|
2246
2344
|
} : {};
|
|
2247
|
-
var fieldList = field.reduce(function (
|
|
2248
|
-
var name =
|
|
2249
|
-
|
|
2250
|
-
valueList =
|
|
2251
|
-
if (valueList.length === 0) return
|
|
2345
|
+
var fieldList = field.reduce(function (acc, curr) {
|
|
2346
|
+
var name = curr.name,
|
|
2347
|
+
_curr$value = curr.value,
|
|
2348
|
+
valueList = _curr$value === void 0 ? [] : _curr$value;
|
|
2349
|
+
if (valueList.length === 0) return acc;
|
|
2252
2350
|
var fieldValue;
|
|
2253
2351
|
|
|
2254
2352
|
if (arrayOnSingle === false && valueList.length === 1) {
|
|
@@ -2257,59 +2355,123 @@ var parseHighlightTimespan = function parseHighlightTimespan() {
|
|
|
2257
2355
|
fieldValue = _valueList[0];
|
|
2258
2356
|
} else if (joinValue) fieldValue = valueList.join(joinValue);else fieldValue = valueList;
|
|
2259
2357
|
|
|
2260
|
-
return _objectSpread$
|
|
2358
|
+
return _objectSpread$6(_objectSpread$6({}, acc), {}, _defineProperty__default["default"]({}, name, fieldValue));
|
|
2261
2359
|
}, initialValue);
|
|
2262
2360
|
return fieldList;
|
|
2263
2361
|
};
|
|
2264
2362
|
|
|
2265
|
-
|
|
2363
|
+
var _excluded$2 = ["timespanAsList", "joinTimespan", "flat", "flatTimespan"];
|
|
2266
2364
|
|
|
2267
|
-
function
|
|
2365
|
+
function ownKeys$5(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; }
|
|
2366
|
+
|
|
2367
|
+
function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2368
|
+
var defaultOptions = _objectSpread$5(_objectSpread$5({}, defaultOptions$1), {}, {
|
|
2369
|
+
timespanAsList: false,
|
|
2370
|
+
joinTimespan: '_',
|
|
2371
|
+
flat: false,
|
|
2372
|
+
flatTimespan: false
|
|
2373
|
+
});
|
|
2268
2374
|
/**
|
|
2269
2375
|
* Parses highlight timespans from VidiCore into key/value object.
|
|
2270
2376
|
* The attributes can be targeted for each sub-type.
|
|
2271
|
-
*
|
|
2272
|
-
* @param
|
|
2273
|
-
* @param
|
|
2274
|
-
*
|
|
2275
|
-
* @
|
|
2276
|
-
* @param {boolean} [options.flat=false] - Flatten to field-name/field-value (Note: field-values may be overwritten).
|
|
2277
|
-
* @param {boolean} [options.flatTimespan=false] - Flatten timespan to object with start/end as key.
|
|
2278
|
-
* @param {string} [options.joinTimespan=_] - Character to join the start/end timecodes.
|
|
2377
|
+
*
|
|
2378
|
+
* @param highlightTimespanList - A list of timespans from VidiCore.
|
|
2379
|
+
* @param options - Options to change how the timespans are parsed
|
|
2380
|
+
*
|
|
2381
|
+
* @category Search
|
|
2279
2382
|
*/
|
|
2280
2383
|
|
|
2281
2384
|
var parseHighlightTimespanList = function parseHighlightTimespanList() {
|
|
2282
2385
|
var highlightTimespanList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
2283
|
-
var options = arguments.length > 1
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2386
|
+
var options = arguments.length > 1 ? arguments[1] : undefined;
|
|
2387
|
+
|
|
2388
|
+
var _defaultOptions = _objectSpread$5(_objectSpread$5({}, defaultOptions), options || {}),
|
|
2389
|
+
timespanAsList = _defaultOptions.timespanAsList,
|
|
2390
|
+
_defaultOptions$joinT = _defaultOptions.joinTimespan,
|
|
2391
|
+
joinTimespan = _defaultOptions$joinT === void 0 ? '_' : _defaultOptions$joinT,
|
|
2392
|
+
flat = _defaultOptions.flat,
|
|
2393
|
+
flatTimespan = _defaultOptions.flatTimespan,
|
|
2394
|
+
parseHighlightTimespanOptions = _objectWithoutProperties__default["default"](_defaultOptions, _excluded$2);
|
|
2395
|
+
|
|
2289
2396
|
if (timespanAsList === true) return highlightTimespanList.map(function (timespan) {
|
|
2290
|
-
return parseHighlightTimespan(timespan,
|
|
2397
|
+
return parseHighlightTimespan(timespan, _objectSpread$5(_objectSpread$5({}, parseHighlightTimespanOptions), {}, {
|
|
2398
|
+
timespanAsList: timespanAsList
|
|
2399
|
+
}));
|
|
2291
2400
|
});
|
|
2292
2401
|
if (flat === true || flatTimespan === true) return highlightTimespanList.reduce(function (a, timespan) {
|
|
2293
|
-
return _objectSpread$
|
|
2402
|
+
return _objectSpread$5(_objectSpread$5({}, a), parseHighlightTimespan(timespan, options));
|
|
2294
2403
|
}, {});
|
|
2295
2404
|
return highlightTimespanList.reduce(function (a, timespan) {
|
|
2296
|
-
return _objectSpread$
|
|
2405
|
+
return _objectSpread$5(_objectSpread$5({}, a), {}, _defineProperty__default["default"]({}, [timespan.start, timespan.end].join(joinTimespan), parseHighlightTimespan(timespan, options)));
|
|
2297
2406
|
}, {});
|
|
2298
2407
|
};
|
|
2299
2408
|
|
|
2300
|
-
var
|
|
2409
|
+
var parseNowDate = function parseNowDate() {
|
|
2410
|
+
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'NOW';
|
|
2301
2411
|
|
|
2302
|
-
|
|
2412
|
+
if (value.startsWith('NOW')) {
|
|
2413
|
+
if (value === 'NOW') return new Date();
|
|
2414
|
+
var sign = value[3];
|
|
2415
|
+
var number = Number(value.match(/(\d+)/)[0]);
|
|
2416
|
+
var unit = value.match(/(\d.*)/)[0].replace(/\d/g, '');
|
|
2417
|
+
var nowDiff = new Date();
|
|
2303
2418
|
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2419
|
+
switch (unit) {
|
|
2420
|
+
case 'TODAY':
|
|
2421
|
+
if (sign === '+') nowDiff.setHours(23, 59, 59, 999);
|
|
2422
|
+
if (sign === '-') nowDiff.setHours(0, 0, 0, 0);
|
|
2423
|
+
break;
|
|
2424
|
+
|
|
2425
|
+
case 'HOUR':
|
|
2426
|
+
case 'HOURS':
|
|
2427
|
+
if (sign === '+') nowDiff.setHours(nowDiff.getHours() + number);
|
|
2428
|
+
if (sign === '-') nowDiff.setHours(nowDiff.getHours() - number);
|
|
2429
|
+
break;
|
|
2430
|
+
|
|
2431
|
+
case 'DAY':
|
|
2432
|
+
case 'DAYS':
|
|
2433
|
+
if (sign === '+') nowDiff.setDate(nowDiff.getDate() + number);
|
|
2434
|
+
if (sign === '-') nowDiff.setDate(nowDiff.getDate() - number);
|
|
2435
|
+
break;
|
|
2436
|
+
|
|
2437
|
+
case 'MONTH':
|
|
2438
|
+
case 'MONTHS':
|
|
2439
|
+
if (sign === '+') nowDiff.setMonth(nowDiff.getMonth() + number);
|
|
2440
|
+
if (sign === '-') nowDiff.setMonth(nowDiff.getMonth() - number);
|
|
2441
|
+
break;
|
|
2442
|
+
|
|
2443
|
+
case 'YEAR':
|
|
2444
|
+
case 'YEARS':
|
|
2445
|
+
if (sign === '+') nowDiff.setFullYear(nowDiff.getFullYear() + number);
|
|
2446
|
+
if (sign === '-') nowDiff.setFullYear(nowDiff.getFullYear() - number);
|
|
2447
|
+
break;
|
|
2448
|
+
}
|
|
2449
|
+
|
|
2450
|
+
return nowDiff;
|
|
2451
|
+
}
|
|
2452
|
+
|
|
2453
|
+
return new Date(value);
|
|
2454
|
+
};
|
|
2455
|
+
|
|
2456
|
+
var _excluded$1 = ["property"];
|
|
2457
|
+
|
|
2458
|
+
function ownKeys$4(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; }
|
|
2307
2459
|
|
|
2308
|
-
|
|
2309
|
-
|
|
2460
|
+
function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2461
|
+
var parseBaseMediaInfoType = function parseBaseMediaInfoType(baseMediaInfoType) {
|
|
2462
|
+
var _ref = baseMediaInfoType || {},
|
|
2463
|
+
_ref$property = _ref.property,
|
|
2464
|
+
keyValuePairTypes = _ref$property === void 0 ? [] : _ref$property,
|
|
2465
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$1);
|
|
2310
2466
|
|
|
2311
|
-
var parsedKeyValuePairType =
|
|
2312
|
-
return _objectSpread$
|
|
2467
|
+
var parsedKeyValuePairType = parseKeyValuePairTypes(keyValuePairTypes);
|
|
2468
|
+
return _objectSpread$4(_objectSpread$4({}, parsedKeyValuePairType), props);
|
|
2469
|
+
};
|
|
2470
|
+
var parseAudioMediaInfoType = function parseAudioMediaInfoType(mediaInfoType) {
|
|
2471
|
+
return parseBaseMediaInfoType(mediaInfoType);
|
|
2472
|
+
};
|
|
2473
|
+
var parseVideoMediaInfoType = function parseVideoMediaInfoType(mediaInfoType) {
|
|
2474
|
+
return parseBaseMediaInfoType(mediaInfoType);
|
|
2313
2475
|
};
|
|
2314
2476
|
|
|
2315
2477
|
var sampleRateSymbols = {
|
|
@@ -2322,35 +2484,33 @@ var bitRateSymbols = {
|
|
|
2322
2484
|
B: 'bps',
|
|
2323
2485
|
MB: 'mbps'
|
|
2324
2486
|
};
|
|
2487
|
+
|
|
2325
2488
|
/**
|
|
2326
2489
|
* Parses the technical information of a AudioComponentType.
|
|
2327
|
-
* @param
|
|
2328
|
-
* @returns
|
|
2490
|
+
* @param audioComponentType - A AudioComponentType from VidiCore.
|
|
2491
|
+
* @returns Parsed component object.
|
|
2492
|
+
*
|
|
2493
|
+
* @category Shape
|
|
2329
2494
|
*/
|
|
2330
|
-
|
|
2331
|
-
var
|
|
2332
|
-
var audioComponentType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2333
|
-
var _audioComponentType$t = audioComponentType.timeBase,
|
|
2334
|
-
timeBase = _audioComponentType$t === void 0 ? {} : _audioComponentType$t,
|
|
2495
|
+
var parseAudioComponent = function parseAudioComponent(audioComponentType) {
|
|
2496
|
+
var timeBase = audioComponentType.timeBase,
|
|
2335
2497
|
audioChannels = audioComponentType.channelCount,
|
|
2336
2498
|
audioCodec = audioComponentType.codec,
|
|
2337
|
-
|
|
2338
|
-
mediaInfo = _audioComponentType$m === void 0 ? {} : _audioComponentType$m,
|
|
2499
|
+
mediaInfo = audioComponentType.mediaInfo,
|
|
2339
2500
|
bitrate = audioComponentType.bitrate,
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
var audioMediaInfo = parseBaseMediaInfoType(mediaInfo);
|
|
2343
|
-
var audioMetadata = parseKeyValuePairType(metadata);
|
|
2501
|
+
metadata = audioComponentType.metadata;
|
|
2502
|
+
var audioMediaInfo = parseAudioMediaInfoType(mediaInfo);
|
|
2344
2503
|
var audioFormat = audioMediaInfo.Format,
|
|
2345
2504
|
audioBitDepth = audioMediaInfo.Resolution,
|
|
2346
2505
|
audioBitRateMode = audioMediaInfo.Bit_rate_mode;
|
|
2347
|
-
var
|
|
2348
|
-
var
|
|
2506
|
+
var audioMetadata = parseKeyValuePairTypes(metadata || []);
|
|
2507
|
+
var audioSamplerateSamples = timeBase !== null && timeBase !== void 0 && timeBase.denominator ? ((timeBase === null || timeBase === void 0 ? void 0 : timeBase.denominator) || 1) / ((timeBase === null || timeBase === void 0 ? void 0 : timeBase.numerator) || 1) : undefined;
|
|
2508
|
+
var audioSamplerate = audioSamplerateSamples !== undefined ? parseFileSize__default["default"](audioSamplerateSamples, {
|
|
2349
2509
|
base: 10,
|
|
2350
2510
|
round: 1,
|
|
2351
2511
|
symbols: sampleRateSymbols
|
|
2352
2512
|
}) : undefined;
|
|
2353
|
-
var audioBitrate = bitrate ? parseFileSize__default["default"](bitrate, {
|
|
2513
|
+
var audioBitrate = bitrate !== undefined ? parseFileSize__default["default"](bitrate, {
|
|
2354
2514
|
base: 10,
|
|
2355
2515
|
round: 2,
|
|
2356
2516
|
symbols: bitRateSymbols
|
|
@@ -2369,6 +2529,14 @@ var parseAudioComponentType = function parseAudioComponentType() {
|
|
|
2369
2529
|
};
|
|
2370
2530
|
};
|
|
2371
2531
|
|
|
2532
|
+
/**
|
|
2533
|
+
* Parses a VidiCore file object
|
|
2534
|
+
*
|
|
2535
|
+
* @param fileType VidiCore file object
|
|
2536
|
+
* @returns A parsed file object
|
|
2537
|
+
*
|
|
2538
|
+
* @category File
|
|
2539
|
+
*/
|
|
2372
2540
|
var parseFileType = function parseFileType(fileType) {
|
|
2373
2541
|
var _fileType$uri = fileType.uri,
|
|
2374
2542
|
uriList = _fileType$uri === void 0 ? [] : _fileType$uri,
|
|
@@ -2393,23 +2561,24 @@ var parseFileType = function parseFileType(fileType) {
|
|
|
2393
2561
|
};
|
|
2394
2562
|
};
|
|
2395
2563
|
|
|
2396
|
-
function ownKeys$
|
|
2564
|
+
function ownKeys$3(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; }
|
|
2565
|
+
|
|
2566
|
+
function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2397
2567
|
|
|
2398
|
-
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2399
2568
|
/**
|
|
2400
2569
|
* Parses the technical information of a BinaryComponentType.
|
|
2401
|
-
* @param
|
|
2402
|
-
* @returns
|
|
2570
|
+
* @param binaryComponentType - A BinaryComponentType from VidiCore.
|
|
2571
|
+
* @returns Parsed component object.
|
|
2572
|
+
*
|
|
2573
|
+
* @category Shape
|
|
2403
2574
|
*/
|
|
2404
|
-
|
|
2405
|
-
var parseBinaryComponentType = function parseBinaryComponentType() {
|
|
2575
|
+
var parseBinaryComponent = function parseBinaryComponent() {
|
|
2406
2576
|
var binaryComponentType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2407
2577
|
var fileList = binaryComponentType.file,
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
_binaryComponentType$
|
|
2411
|
-
|
|
2412
|
-
var binaryMetadata = parseKeyValuePairType(metadata);
|
|
2578
|
+
mediaInfo = binaryComponentType.mediaInfo,
|
|
2579
|
+
_binaryComponentType$ = binaryComponentType.metadata,
|
|
2580
|
+
metadata = _binaryComponentType$ === void 0 ? [] : _binaryComponentType$;
|
|
2581
|
+
var binaryMetadata = parseKeyValuePairTypes(metadata);
|
|
2413
2582
|
var binaryMediaInfo = parseBaseMediaInfoType(mediaInfo);
|
|
2414
2583
|
var parsedBinaryComponent = {
|
|
2415
2584
|
binaryMetadata: binaryMetadata,
|
|
@@ -2421,33 +2590,36 @@ var parseBinaryComponentType = function parseBinaryComponentType() {
|
|
|
2421
2590
|
fileType = _fileList[0];
|
|
2422
2591
|
|
|
2423
2592
|
var parsedFileType = parseFileType(fileType);
|
|
2424
|
-
parsedBinaryComponent = _objectSpread$
|
|
2593
|
+
parsedBinaryComponent = _objectSpread$3(_objectSpread$3({}, parsedBinaryComponent), parsedFileType);
|
|
2425
2594
|
}
|
|
2426
2595
|
|
|
2427
2596
|
return parsedBinaryComponent;
|
|
2428
2597
|
};
|
|
2429
2598
|
|
|
2430
|
-
function ownKeys$
|
|
2599
|
+
function ownKeys$2(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; }
|
|
2431
2600
|
|
|
2432
|
-
function _objectSpread$
|
|
2601
|
+
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2433
2602
|
/**
|
|
2434
|
-
*
|
|
2435
|
-
* @param {Object} containerComponentType - A ContainerComponentType from VidiCore.
|
|
2436
|
-
* @returns {Object} Parsed component object.
|
|
2603
|
+
* Parsed container component
|
|
2437
2604
|
*/
|
|
2438
2605
|
|
|
2439
|
-
|
|
2606
|
+
/**
|
|
2607
|
+
* Parses the technical information of a ContainerComponentType.
|
|
2608
|
+
* @param containerComponentType - A ContainerComponentType from VidiCore.
|
|
2609
|
+
* @returns Parsed component object.
|
|
2610
|
+
*
|
|
2611
|
+
* @category Shape
|
|
2612
|
+
*/
|
|
2613
|
+
var parseContainerComponent = function parseContainerComponent() {
|
|
2440
2614
|
var containerComponentType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2441
|
-
var
|
|
2442
|
-
|
|
2443
|
-
_containerComponentTy2 = containerComponentType.metadata,
|
|
2444
|
-
metadata = _containerComponentTy2 === void 0 ? [] : _containerComponentTy2,
|
|
2615
|
+
var mediaInfo = containerComponentType.mediaInfo,
|
|
2616
|
+
metadata = containerComponentType.metadata,
|
|
2445
2617
|
fileList = containerComponentType.file,
|
|
2446
2618
|
durationTimeCode = containerComponentType.duration,
|
|
2447
2619
|
startTimestamp = containerComponentType.startTimestamp,
|
|
2448
2620
|
startTimecode = containerComponentType.startTimecode,
|
|
2449
2621
|
timeCodeTimeBase = containerComponentType.timeCodeTimeBase;
|
|
2450
|
-
var containerMetadata =
|
|
2622
|
+
var containerMetadata = parseKeyValuePairTypes(metadata || []);
|
|
2451
2623
|
var containerMediaInfo = parseBaseMediaInfoType(mediaInfo);
|
|
2452
2624
|
var containerFormat = containerMediaInfo.Format;
|
|
2453
2625
|
var videoFormat = containerMediaInfo.Video_Format_List,
|
|
@@ -2502,7 +2674,7 @@ var parseContainerComponentType = function parseContainerComponentType() {
|
|
|
2502
2674
|
fileType = _fileList[0];
|
|
2503
2675
|
|
|
2504
2676
|
var parsedFileType = parseFileType(fileType);
|
|
2505
|
-
parsedContainerComponentType = _objectSpread$
|
|
2677
|
+
parsedContainerComponentType = _objectSpread$2(_objectSpread$2({}, parsedContainerComponentType), parsedFileType);
|
|
2506
2678
|
}
|
|
2507
2679
|
|
|
2508
2680
|
return parsedContainerComponentType;
|
|
@@ -2512,21 +2684,20 @@ var parseContainerComponentType = function parseContainerComponentType() {
|
|
|
2512
2684
|
* Parses the technical information of a VideoComponentType.
|
|
2513
2685
|
* @param {Object} videoComponentType - A VideoComponentType from VidiCore.
|
|
2514
2686
|
* @returns {Object} Parsed component object.
|
|
2687
|
+
*
|
|
2688
|
+
* @category Shape
|
|
2515
2689
|
*/
|
|
2516
|
-
|
|
2517
|
-
var parseVideoComponentType = function parseVideoComponentType() {
|
|
2690
|
+
var parseVideoComponent = function parseVideoComponent() {
|
|
2518
2691
|
var videoComponentType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2519
2692
|
var videoCodec = videoComponentType.codec,
|
|
2520
2693
|
bitrate = videoComponentType.bitrate,
|
|
2521
2694
|
fieldOrder = videoComponentType.fieldOrder,
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
_videoComponentType$m = videoComponentType.
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
var videoMediaInfo = parseBaseMediaInfoType(mediaInfo);
|
|
2529
|
-
var videoMetadata = parseKeyValuePairType(metadata);
|
|
2695
|
+
resolution = videoComponentType.resolution,
|
|
2696
|
+
mediaInfo = videoComponentType.mediaInfo,
|
|
2697
|
+
_videoComponentType$m = videoComponentType.metadata,
|
|
2698
|
+
metadata = _videoComponentType$m === void 0 ? [] : _videoComponentType$m;
|
|
2699
|
+
var videoMediaInfo = parseVideoMediaInfoType(mediaInfo);
|
|
2700
|
+
var videoMetadata = parseKeyValuePairTypes(metadata);
|
|
2530
2701
|
var videoFormat = videoMediaInfo.Format,
|
|
2531
2702
|
timeBaseText = videoMediaInfo['Frame rate'],
|
|
2532
2703
|
colorSpace = videoMediaInfo['Color space'],
|
|
@@ -2537,24 +2708,24 @@ var parseVideoComponentType = function parseVideoComponentType() {
|
|
|
2537
2708
|
realBaseFrameRate = videoComponentType.realBaseFrameRate;
|
|
2538
2709
|
|
|
2539
2710
|
if (realBaseFrameRate !== undefined) {
|
|
2540
|
-
timeBase = {
|
|
2711
|
+
timeBase = formatTimeBaseType({
|
|
2541
2712
|
numerator: realBaseFrameRate.denominator,
|
|
2542
2713
|
denominator: realBaseFrameRate.numerator
|
|
2543
|
-
};
|
|
2714
|
+
});
|
|
2544
2715
|
} else if (timeBaseText !== undefined) {
|
|
2545
2716
|
timeBase = formatTimeBaseText(timeBaseText);
|
|
2546
2717
|
} else if (averageFrameRate !== undefined) {
|
|
2547
|
-
timeBase = {
|
|
2718
|
+
timeBase = formatTimeBaseType({
|
|
2548
2719
|
numerator: averageFrameRate.denominator,
|
|
2549
2720
|
denominator: averageFrameRate.numerator
|
|
2550
|
-
};
|
|
2721
|
+
});
|
|
2551
2722
|
}
|
|
2552
2723
|
|
|
2553
2724
|
var samples = videoMediaInfo['Frame count'];
|
|
2554
2725
|
|
|
2555
2726
|
if (samples === undefined) {
|
|
2556
2727
|
var numberOfPackets = videoComponentType.numberOfPackets;
|
|
2557
|
-
if (numberOfPackets !== undefined) samples = numberOfPackets;
|
|
2728
|
+
if (numberOfPackets !== undefined) samples = numberOfPackets.toString();
|
|
2558
2729
|
}
|
|
2559
2730
|
|
|
2560
2731
|
var timeCode;
|
|
@@ -2566,14 +2737,14 @@ var parseVideoComponentType = function parseVideoComponentType() {
|
|
|
2566
2737
|
samples: samples,
|
|
2567
2738
|
timeBase: timeBase
|
|
2568
2739
|
});
|
|
2569
|
-
frameRate = timeCode.timeBase.toRate(
|
|
2570
|
-
constant: true
|
|
2571
|
-
});
|
|
2740
|
+
frameRate = timeCode.timeBase.toConstant() || timeCode.timeBase.toRate();
|
|
2572
2741
|
smpte = timeCode.toSmpte();
|
|
2573
2742
|
}
|
|
2574
2743
|
|
|
2575
|
-
var
|
|
2576
|
-
|
|
2744
|
+
var _ref = resolution || {},
|
|
2745
|
+
height = _ref.height,
|
|
2746
|
+
width = _ref.width;
|
|
2747
|
+
|
|
2577
2748
|
var aspectRatio = parseAspectRatio(resolution);
|
|
2578
2749
|
var dimension = "".concat(width, "x").concat(height);
|
|
2579
2750
|
var videoBitrate = bitrate ? parseFileSize__default["default"](bitrate, {
|
|
@@ -2600,22 +2771,24 @@ var parseVideoComponentType = function parseVideoComponentType() {
|
|
|
2600
2771
|
};
|
|
2601
2772
|
};
|
|
2602
2773
|
|
|
2603
|
-
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; }
|
|
2774
|
+
function ownKeys$1(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; }
|
|
2775
|
+
|
|
2776
|
+
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2604
2777
|
|
|
2605
|
-
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) { _defineProperty__default["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; }
|
|
2606
2778
|
/**
|
|
2607
2779
|
* Parses the technical information of a ShapeType and its various components.
|
|
2608
2780
|
*
|
|
2609
2781
|
* Will only parse the first videoComponent, audioComponent, binaryComponent in the corresponding array.
|
|
2610
2782
|
* To parse a selected component see:
|
|
2611
|
-
* - {@link
|
|
2612
|
-
* - {@link
|
|
2613
|
-
* - {@link
|
|
2614
|
-
* - {@link
|
|
2615
|
-
* @param
|
|
2616
|
-
* @returns
|
|
2783
|
+
* - {@link parseContainerComponent}
|
|
2784
|
+
* - {@link parseVideoComponent}
|
|
2785
|
+
* - {@link parseAudioComponent}
|
|
2786
|
+
* - {@link parseBinaryComponent}
|
|
2787
|
+
* @param shapeType - A ShapeType from VidiCore.
|
|
2788
|
+
* @returns Parsed shape object.
|
|
2789
|
+
*
|
|
2790
|
+
* @category Shape
|
|
2617
2791
|
*/
|
|
2618
|
-
|
|
2619
2792
|
var parseShapeType = function parseShapeType() {
|
|
2620
2793
|
var shapeType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2621
2794
|
var parsedShape = {};
|
|
@@ -2637,69 +2810,65 @@ var parseShapeType = function parseShapeType() {
|
|
|
2637
2810
|
parsedShape.mimeType = _mimeTypeList[0];
|
|
2638
2811
|
|
|
2639
2812
|
if (containerComponent) {
|
|
2640
|
-
var parsedContainerComponent =
|
|
2641
|
-
parsedShape = _objectSpread(_objectSpread({}, parsedShape), parsedContainerComponent);
|
|
2813
|
+
var parsedContainerComponent = parseContainerComponent(containerComponent);
|
|
2814
|
+
parsedShape = _objectSpread$1(_objectSpread$1({}, parsedShape), parsedContainerComponent);
|
|
2642
2815
|
}
|
|
2643
2816
|
|
|
2644
2817
|
if (videoComponentList) {
|
|
2645
2818
|
var _videoComponentList = _slicedToArray__default["default"](videoComponentList, 1),
|
|
2646
2819
|
videoComponent = _videoComponentList[0];
|
|
2647
2820
|
|
|
2648
|
-
var parsedVideoComponent =
|
|
2649
|
-
parsedShape = _objectSpread(_objectSpread({}, parsedShape), parsedVideoComponent);
|
|
2821
|
+
var parsedVideoComponent = parseVideoComponent(videoComponent);
|
|
2822
|
+
parsedShape = _objectSpread$1(_objectSpread$1({}, parsedShape), parsedVideoComponent);
|
|
2650
2823
|
}
|
|
2651
2824
|
|
|
2652
2825
|
if (audioComponentList) {
|
|
2653
2826
|
var _audioComponentList = _slicedToArray__default["default"](audioComponentList, 1),
|
|
2654
2827
|
audioComponent = _audioComponentList[0];
|
|
2655
2828
|
|
|
2656
|
-
var parsedAudioComponent =
|
|
2657
|
-
parsedShape = _objectSpread(_objectSpread({}, parsedShape), parsedAudioComponent);
|
|
2829
|
+
var parsedAudioComponent = parseAudioComponent(audioComponent);
|
|
2830
|
+
parsedShape = _objectSpread$1(_objectSpread$1({}, parsedShape), parsedAudioComponent);
|
|
2658
2831
|
}
|
|
2659
2832
|
|
|
2660
2833
|
if (binaryComponentList) {
|
|
2661
2834
|
var _binaryComponentList = _slicedToArray__default["default"](binaryComponentList, 1),
|
|
2662
2835
|
binaryComponent = _binaryComponentList[0];
|
|
2663
2836
|
|
|
2664
|
-
var parsedBinaryComponent =
|
|
2665
|
-
parsedShape = _objectSpread(_objectSpread({}, parsedShape), parsedBinaryComponent);
|
|
2837
|
+
var parsedBinaryComponent = parseBinaryComponent(binaryComponent);
|
|
2838
|
+
parsedShape = _objectSpread$1(_objectSpread$1({}, parsedShape), parsedBinaryComponent);
|
|
2666
2839
|
}
|
|
2667
2840
|
|
|
2668
2841
|
return parsedShape;
|
|
2669
2842
|
};
|
|
2670
2843
|
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
console.warn('parseAudioComponent is deprecated, please use parseAudioComponentType');
|
|
2678
|
-
return parseAudioComponentType(audioComponent);
|
|
2679
|
-
};
|
|
2680
|
-
/**
|
|
2681
|
-
* @deprecated please use {@link parseBinaryComponentType}
|
|
2682
|
-
*/
|
|
2683
|
-
|
|
2684
|
-
var parseBinaryComponent = function parseBinaryComponent(binaryComponent) {
|
|
2685
|
-
console.warn('parseBinaryComponent is deprecated, please use parseBinaryComponentType');
|
|
2686
|
-
return parseBinaryComponentType(binaryComponent);
|
|
2844
|
+
var DOCUMENT_TYPES = {
|
|
2845
|
+
PDF: 'PDF',
|
|
2846
|
+
TEXT: 'TEXT',
|
|
2847
|
+
MSWORD: 'MSWORD',
|
|
2848
|
+
JSON: 'JSON',
|
|
2849
|
+
XML: 'XML'
|
|
2687
2850
|
};
|
|
2688
|
-
/**
|
|
2689
|
-
* @deprecated please use {@link parseContainerComponentType}
|
|
2690
|
-
*/
|
|
2691
2851
|
|
|
2692
|
-
var parseContainerComponent = function parseContainerComponent(containerComponent) {
|
|
2693
|
-
console.warn('parseContainerComponent is deprecated, please use parseContainerComponentType');
|
|
2694
|
-
return parseContainerComponentType(containerComponent);
|
|
2695
|
-
};
|
|
2696
2852
|
/**
|
|
2697
|
-
*
|
|
2853
|
+
* Return a const for the document type of a shape (looks at mimeType)
|
|
2854
|
+
*
|
|
2855
|
+
* @param shape
|
|
2856
|
+
* @returns The document type for a shape
|
|
2857
|
+
*
|
|
2858
|
+
* @category Shape
|
|
2698
2859
|
*/
|
|
2860
|
+
var getDocumentType = function getDocumentType(shape) {
|
|
2861
|
+
var _ref = shape || {},
|
|
2862
|
+
mimeTypeArrayOrString = _ref.mimeType;
|
|
2699
2863
|
|
|
2700
|
-
var
|
|
2701
|
-
|
|
2702
|
-
|
|
2864
|
+
var mimeType = Array.isArray(mimeTypeArrayOrString) ? mimeTypeArrayOrString[0] : mimeTypeArrayOrString;
|
|
2865
|
+
if (!mimeType) return undefined;
|
|
2866
|
+
if (mimeType.endsWith('/pdf')) return DOCUMENT_TYPES.PDF;
|
|
2867
|
+
if (mimeType.startsWith('text/')) return DOCUMENT_TYPES.TEXT;
|
|
2868
|
+
if (mimeType.endsWith('/msword')) return DOCUMENT_TYPES.MSWORD;
|
|
2869
|
+
if (mimeType.endsWith('/json')) return DOCUMENT_TYPES.JSON;
|
|
2870
|
+
if (mimeType.endsWith('/xml')) return DOCUMENT_TYPES.XML;
|
|
2871
|
+
return undefined;
|
|
2703
2872
|
};
|
|
2704
2873
|
|
|
2705
2874
|
var IMAGE_MIME_TYPES = ['image/apng', 'image/bmp', 'image/gif', 'image/jpeg', 'image/x-icon', 'image/png', 'image/svg+xml'];
|
|
@@ -2727,24 +2896,36 @@ var defaultSortPriority = function defaultSortPriority(_ref, _ref2) {
|
|
|
2727
2896
|
|
|
2728
2897
|
return firstEl.toLowerCase().localeCompare(secondEl.toLowerCase());
|
|
2729
2898
|
};
|
|
2899
|
+
/**
|
|
2900
|
+
* Filter a shape type list to get shapes that are playable in a browser
|
|
2901
|
+
*
|
|
2902
|
+
* @param itemType
|
|
2903
|
+
* @param options
|
|
2904
|
+
* @returns
|
|
2905
|
+
*
|
|
2906
|
+
* @category Shape
|
|
2907
|
+
*/
|
|
2908
|
+
|
|
2909
|
+
|
|
2910
|
+
var filterShapeSource = function filterShapeSource(itemType, options) {
|
|
2911
|
+
var _ref3 = options || {},
|
|
2912
|
+
_ref3$allowedMimeType = _ref3.allowedMimeTypes,
|
|
2913
|
+
allowedMimeTypes = _ref3$allowedMimeType === void 0 ? DEFAULT_ALLOWED_MIME_TYPES : _ref3$allowedMimeType,
|
|
2914
|
+
_ref3$sortPriority = _ref3.sortPriority,
|
|
2915
|
+
sortPriority = _ref3$sortPriority === void 0 ? defaultSortPriority : _ref3$sortPriority,
|
|
2916
|
+
_ref3$allowedMethods = _ref3.allowedMethods,
|
|
2917
|
+
allowedMethods = _ref3$allowedMethods === void 0 ? DEFAULT_ALLOWED_METHODS : _ref3$allowedMethods,
|
|
2918
|
+
_ref3$sourceKey = _ref3.sourceKey,
|
|
2919
|
+
sourceKey = _ref3$sourceKey === void 0 ? 'src' : _ref3$sourceKey,
|
|
2920
|
+
_ref3$mimeTypeKey = _ref3.mimeTypeKey,
|
|
2921
|
+
mimeTypeKey = _ref3$mimeTypeKey === void 0 ? 'type' : _ref3$mimeTypeKey,
|
|
2922
|
+
_ref3$shapeKey = _ref3.shapeKey,
|
|
2923
|
+
shapeKey = _ref3$shapeKey === void 0 ? 'shape' : _ref3$shapeKey;
|
|
2924
|
+
|
|
2925
|
+
var _ref4 = itemType || {},
|
|
2926
|
+
_ref4$shape = _ref4.shape,
|
|
2927
|
+
shapeList = _ref4$shape === void 0 ? [] : _ref4$shape;
|
|
2730
2928
|
|
|
2731
|
-
var filterShapeSource = function filterShapeSource() {
|
|
2732
|
-
var itemType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2733
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
2734
|
-
var _options$allowedMimeT = options.allowedMimeTypes,
|
|
2735
|
-
allowedMimeTypes = _options$allowedMimeT === void 0 ? DEFAULT_ALLOWED_MIME_TYPES : _options$allowedMimeT,
|
|
2736
|
-
_options$sortPriority = options.sortPriority,
|
|
2737
|
-
sortPriority = _options$sortPriority === void 0 ? defaultSortPriority : _options$sortPriority,
|
|
2738
|
-
_options$allowedMetho = options.allowedMethods,
|
|
2739
|
-
allowedMethods = _options$allowedMetho === void 0 ? DEFAULT_ALLOWED_METHODS : _options$allowedMetho,
|
|
2740
|
-
_options$sourceKey = options.sourceKey,
|
|
2741
|
-
sourceKey = _options$sourceKey === void 0 ? 'src' : _options$sourceKey,
|
|
2742
|
-
_options$mimeTypeKey = options.mimeTypeKey,
|
|
2743
|
-
mimeTypeKey = _options$mimeTypeKey === void 0 ? 'type' : _options$mimeTypeKey,
|
|
2744
|
-
_options$shapeKey = options.shapeKey,
|
|
2745
|
-
shapeKey = _options$shapeKey === void 0 ? 'shape' : _options$shapeKey;
|
|
2746
|
-
var _itemType$shape = itemType.shape,
|
|
2747
|
-
shapeList = _itemType$shape === void 0 ? [] : _itemType$shape;
|
|
2748
2929
|
var parsedShapeList = shapeList.reduce(function (acc, shapeType) {
|
|
2749
2930
|
var type;
|
|
2750
2931
|
var src;
|
|
@@ -2783,39 +2964,65 @@ var filterShapeSource = function filterShapeSource() {
|
|
|
2783
2964
|
return parsedShapeList;
|
|
2784
2965
|
};
|
|
2785
2966
|
|
|
2786
|
-
var
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2967
|
+
var SHAPE_MEDIA_TYPES = {
|
|
2968
|
+
IMAGE: 'IMAGE',
|
|
2969
|
+
AUDIO: 'AUDIO',
|
|
2970
|
+
VIDEO: 'VIDEO',
|
|
2971
|
+
DOCUMENT: 'DOCUMENT',
|
|
2972
|
+
BINARY: 'BINARY'
|
|
2973
|
+
};
|
|
2974
|
+
// TODO: For consistency, replace input with an actual ShapeType not a parsed shape
|
|
2975
|
+
// (parse it internally if needed)
|
|
2976
|
+
|
|
2977
|
+
/**
|
|
2978
|
+
* Returns a const for which media type a shape has
|
|
2979
|
+
*
|
|
2980
|
+
* @param parsedShape
|
|
2981
|
+
* @returns
|
|
2982
|
+
*
|
|
2983
|
+
* @category Shape
|
|
2984
|
+
*/
|
|
2985
|
+
var getShapeMediaType = function getShapeMediaType(parsedShape) {
|
|
2986
|
+
var _ref = parsedShape || {},
|
|
2987
|
+
mimeType = _ref.mimeType,
|
|
2988
|
+
videoCodec = _ref.videoCodec,
|
|
2989
|
+
audioCodec = _ref.audioCodec;
|
|
2990
|
+
|
|
2796
2991
|
if (!mimeType) return undefined;
|
|
2797
2992
|
|
|
2798
2993
|
if (mimeType.startsWith('audio/')) {
|
|
2799
|
-
if (audioCodec !== undefined) return AUDIO;
|
|
2994
|
+
if (audioCodec !== undefined) return SHAPE_MEDIA_TYPES.AUDIO;
|
|
2800
2995
|
}
|
|
2801
2996
|
|
|
2802
2997
|
if (mimeType.startsWith('video/')) {
|
|
2803
|
-
if (videoCodec !== undefined) return VIDEO;
|
|
2804
|
-
if (audioCodec !== undefined) return AUDIO;
|
|
2998
|
+
if (videoCodec !== undefined) return SHAPE_MEDIA_TYPES.VIDEO;
|
|
2999
|
+
if (audioCodec !== undefined) return SHAPE_MEDIA_TYPES.AUDIO;
|
|
2805
3000
|
}
|
|
2806
3001
|
|
|
2807
|
-
if (mimeType.startsWith('image/')) return IMAGE;
|
|
2808
|
-
if (mimeType.endsWith('/pdf')) return DOCUMENT;
|
|
2809
|
-
if (mimeType.startsWith('text/')) return DOCUMENT;
|
|
2810
|
-
if (mimeType.endsWith('/msword')) return DOCUMENT;
|
|
2811
|
-
if (mimeType.endsWith('/json')) return DOCUMENT;
|
|
2812
|
-
if (mimeType.endsWith('/xml')) return DOCUMENT;
|
|
2813
|
-
if (mimeType.endsWith('/octet-stream')) return BINARY;
|
|
3002
|
+
if (mimeType.startsWith('image/')) return SHAPE_MEDIA_TYPES.IMAGE;
|
|
3003
|
+
if (mimeType.endsWith('/pdf')) return SHAPE_MEDIA_TYPES.DOCUMENT;
|
|
3004
|
+
if (mimeType.startsWith('text/')) return SHAPE_MEDIA_TYPES.DOCUMENT;
|
|
3005
|
+
if (mimeType.endsWith('/msword')) return SHAPE_MEDIA_TYPES.DOCUMENT;
|
|
3006
|
+
if (mimeType.endsWith('/json')) return SHAPE_MEDIA_TYPES.DOCUMENT;
|
|
3007
|
+
if (mimeType.endsWith('/xml')) return SHAPE_MEDIA_TYPES.DOCUMENT;
|
|
3008
|
+
if (mimeType.endsWith('/octet-stream')) return SHAPE_MEDIA_TYPES.BINARY;
|
|
2814
3009
|
return undefined;
|
|
2815
3010
|
};
|
|
2816
3011
|
|
|
2817
|
-
|
|
2818
|
-
|
|
3012
|
+
/**
|
|
3013
|
+
* Find the thumbnail uri in a VidiCore item object that's nearest a timeCode
|
|
3014
|
+
*
|
|
3015
|
+
* @remarks
|
|
3016
|
+
* Time code is included in path of VidiCore thumbnail uris
|
|
3017
|
+
*
|
|
3018
|
+
* @param itemType A VidiCore item object
|
|
3019
|
+
* @param timeCode A timeCode to find nearest thumbnail to
|
|
3020
|
+
* @returns A URI of a thumbnail, `undefined` if item has no thumbnails
|
|
3021
|
+
*
|
|
3022
|
+
* @category Thumbnail
|
|
3023
|
+
*/
|
|
3024
|
+
var findNearestThumbnail = function findNearestThumbnail(itemType, timeCode) {
|
|
3025
|
+
var tcSeconds = createTimeCode(timeCode).toSeconds();
|
|
2819
3026
|
|
|
2820
3027
|
var _ref = itemType || {},
|
|
2821
3028
|
_ref$thumbnails = _ref.thumbnails,
|
|
@@ -2833,59 +3040,27 @@ var findNearestThumbnail = function findNearestThumbnail(itemType, timeCodeText)
|
|
|
2833
3040
|
return srcList[nearestSrcIndex];
|
|
2834
3041
|
};
|
|
2835
3042
|
|
|
2836
|
-
var parseNowDate = function parseNowDate() {
|
|
2837
|
-
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'NOW';
|
|
2838
|
-
|
|
2839
|
-
if (value.startsWith('NOW')) {
|
|
2840
|
-
if (value === 'NOW') return new Date();
|
|
2841
|
-
var sign = value[3];
|
|
2842
|
-
var number = Number(value.match(/(\d+)/)[0]);
|
|
2843
|
-
var unit = value.match(/(\d.*)/)[0].replace(/\d/g, '');
|
|
2844
|
-
var nowDiff = new Date();
|
|
2845
|
-
|
|
2846
|
-
switch (unit) {
|
|
2847
|
-
case 'HOUR':
|
|
2848
|
-
case 'HOURS':
|
|
2849
|
-
if (sign === '+') nowDiff.setHours(nowDiff.getHours() + number);
|
|
2850
|
-
if (sign === '-') nowDiff.setHours(nowDiff.getHours() - number);
|
|
2851
|
-
break;
|
|
2852
|
-
|
|
2853
|
-
case 'DAY':
|
|
2854
|
-
case 'DAYS':
|
|
2855
|
-
if (sign === '+') nowDiff.setDate(nowDiff.getDate() + number);
|
|
2856
|
-
if (sign === '-') nowDiff.setDate(nowDiff.getDate() - number);
|
|
2857
|
-
break;
|
|
2858
|
-
|
|
2859
|
-
case 'MONTH':
|
|
2860
|
-
case 'MONTHS':
|
|
2861
|
-
if (sign === '+') nowDiff.setMonth(nowDiff.getMonth() + number);
|
|
2862
|
-
if (sign === '-') nowDiff.setMonth(nowDiff.getMonth() - number);
|
|
2863
|
-
break;
|
|
2864
|
-
|
|
2865
|
-
case 'YEAR':
|
|
2866
|
-
case 'YEARS':
|
|
2867
|
-
if (sign === '+') nowDiff.setFullYear(nowDiff.getFullYear() + number);
|
|
2868
|
-
if (sign === '-') nowDiff.setFullYear(nowDiff.getFullYear() - number);
|
|
2869
|
-
break;
|
|
2870
|
-
}
|
|
2871
|
-
|
|
2872
|
-
return nowDiff;
|
|
2873
|
-
}
|
|
2874
|
-
|
|
2875
|
-
return new Date(value);
|
|
2876
|
-
};
|
|
2877
|
-
|
|
2878
3043
|
var _excluded = ["Codec"],
|
|
2879
3044
|
_excluded2 = ["Codec"];
|
|
3045
|
+
/**
|
|
3046
|
+
* TODO
|
|
3047
|
+
*/
|
|
2880
3048
|
|
|
2881
|
-
|
|
3049
|
+
/**
|
|
3050
|
+
* TODO
|
|
3051
|
+
*
|
|
3052
|
+
* @param mediaconvert
|
|
3053
|
+
* @returns
|
|
3054
|
+
*
|
|
3055
|
+
* @category Transcode
|
|
3056
|
+
*/
|
|
3057
|
+
var parseMediaConvertPreset = function parseMediaConvertPreset(mediaconvert) {
|
|
2882
3058
|
var output = {};
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
output.description = description;
|
|
3059
|
+
|
|
3060
|
+
var _ref = mediaconvert || {},
|
|
3061
|
+
_ref$outputSetting = _ref.outputSetting,
|
|
3062
|
+
outputSetting = _ref$outputSetting === void 0 ? [] : _ref$outputSetting;
|
|
3063
|
+
|
|
2889
3064
|
if (outputSetting.length === 0) return output;
|
|
2890
3065
|
var mc = JSON.parse(outputSetting[0]);
|
|
2891
3066
|
var _mc$Settings = mc.Settings;
|
|
@@ -2893,7 +3068,6 @@ var parseMediaConvertPreset = function parseMediaConvertPreset(transcodePresetTy
|
|
|
2893
3068
|
var ContainerSettings = _mc$Settings.ContainerSettings,
|
|
2894
3069
|
VideoDescription = _mc$Settings.VideoDescription,
|
|
2895
3070
|
AudioDescriptions = _mc$Settings.AudioDescriptions;
|
|
2896
|
-
output.containerFormat = ContainerSettings.Container;
|
|
2897
3071
|
|
|
2898
3072
|
if (ContainerSettings) {
|
|
2899
3073
|
output.containerFormat = ContainerSettings.Container;
|
|
@@ -2936,9 +3110,7 @@ var parseMediaConvertPreset = function parseMediaConvertPreset(transcodePresetTy
|
|
|
2936
3110
|
numerator: numerator
|
|
2937
3111
|
});
|
|
2938
3112
|
output.timeBase = timeBase;
|
|
2939
|
-
output.frameRate = timeBase.toRate(
|
|
2940
|
-
constant: true
|
|
2941
|
-
});
|
|
3113
|
+
output.frameRate = timeBase.toConstant() || timeBase.toRate();
|
|
2942
3114
|
}
|
|
2943
3115
|
}
|
|
2944
3116
|
|
|
@@ -2965,14 +3137,34 @@ var parseMediaConvertPreset = function parseMediaConvertPreset(transcodePresetTy
|
|
|
2965
3137
|
return output;
|
|
2966
3138
|
};
|
|
2967
3139
|
|
|
3140
|
+
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; }
|
|
3141
|
+
|
|
3142
|
+
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) { _defineProperty__default["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; }
|
|
3143
|
+
/**
|
|
3144
|
+
* TODO
|
|
3145
|
+
*/
|
|
3146
|
+
|
|
3147
|
+
/**
|
|
3148
|
+
* TODO
|
|
3149
|
+
*
|
|
3150
|
+
* @param transcodePresetType
|
|
3151
|
+
* @returns
|
|
3152
|
+
*
|
|
3153
|
+
* @category Transcode
|
|
3154
|
+
*/
|
|
2968
3155
|
var parseTranscodePreset = function parseTranscodePreset(transcodePresetType) {
|
|
2969
3156
|
var output = {};
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
2975
|
-
|
|
3157
|
+
|
|
3158
|
+
var _ref = transcodePresetType || {},
|
|
3159
|
+
description = _ref.description,
|
|
3160
|
+
format = _ref.format,
|
|
3161
|
+
audio = _ref.audio,
|
|
3162
|
+
video = _ref.video,
|
|
3163
|
+
mediaconvert = _ref.mediaconvert;
|
|
3164
|
+
|
|
3165
|
+
if (mediaconvert) return _objectSpread({
|
|
3166
|
+
description: description
|
|
3167
|
+
}, parseMediaConvertPreset(mediaconvert));
|
|
2976
3168
|
output.description = description;
|
|
2977
3169
|
output.containerFormat = format;
|
|
2978
3170
|
|
|
@@ -2983,9 +3175,7 @@ var parseTranscodePreset = function parseTranscodePreset(transcodePresetType) {
|
|
|
2983
3175
|
if (video.framerate) {
|
|
2984
3176
|
var timeBase = formatTimeBaseType(video.framerate);
|
|
2985
3177
|
output.timeBase = timeBase;
|
|
2986
|
-
output.frameRate = timeBase.toRate(
|
|
2987
|
-
constant: true
|
|
2988
|
-
});
|
|
3178
|
+
output.frameRate = timeBase.toConstant() || timeBase.toRate();
|
|
2989
3179
|
}
|
|
2990
3180
|
|
|
2991
3181
|
if (video.scaling) {
|
|
@@ -3015,23 +3205,10 @@ var parseTranscodePreset = function parseTranscodePreset(transcodePresetType) {
|
|
|
3015
3205
|
return output;
|
|
3016
3206
|
};
|
|
3017
3207
|
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
var XML = 'XML';
|
|
3023
|
-
var getDocumentType = function getDocumentType() {
|
|
3024
|
-
var shape = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
3025
|
-
var mimeType = shape.mimeType;
|
|
3026
|
-
if (!mimeType) return undefined;
|
|
3027
|
-
if (mimeType.endsWith('/pdf')) return PDF;
|
|
3028
|
-
if (mimeType.startsWith('text/')) return TEXT;
|
|
3029
|
-
if (mimeType.endsWith('/msword')) return MSWORD;
|
|
3030
|
-
if (mimeType.endsWith('/json')) return JSON$1;
|
|
3031
|
-
if (mimeType.endsWith('/xml')) return XML;
|
|
3032
|
-
return undefined;
|
|
3033
|
-
};
|
|
3034
|
-
|
|
3208
|
+
exports.FIELD_ATTRIBUTE_KEYS = FIELD_ATTRIBUTE_KEYS;
|
|
3209
|
+
exports.FIELD_VALUE_ATTRIBUTE_KEYS = FIELD_VALUE_ATTRIBUTE_KEYS;
|
|
3210
|
+
exports.GROUP_ATTRIBUTE_KEYS = GROUP_ATTRIBUTE_KEYS;
|
|
3211
|
+
exports.ROLE_NAMES = ROLE_NAMES;
|
|
3035
3212
|
exports.SYSTEM_FIELDGROUPS = SYSTEM_FIELDGROUPS;
|
|
3036
3213
|
exports.SYSTEM_FIELDS = SYSTEM_FIELDS;
|
|
3037
3214
|
exports.TimeBase = TimeBase;
|
|
@@ -3052,16 +3229,15 @@ exports.getDocumentType = getDocumentType;
|
|
|
3052
3229
|
exports.getShapeMediaType = getShapeMediaType;
|
|
3053
3230
|
exports.metadataTypeToWebVtt = metadataTypeToWebVtt;
|
|
3054
3231
|
exports.parseAudioComponent = parseAudioComponent;
|
|
3055
|
-
exports.parseAudioComponentType = parseAudioComponentType;
|
|
3056
3232
|
exports.parseBinaryComponent = parseBinaryComponent;
|
|
3057
|
-
exports.parseBinaryComponentType = parseBinaryComponentType;
|
|
3058
3233
|
exports.parseContainerComponent = parseContainerComponent;
|
|
3059
|
-
exports.parseContainerComponentType = parseContainerComponentType;
|
|
3060
3234
|
exports.parseFacetType = parseFacetType;
|
|
3235
|
+
exports.parseFieldList = parseFieldList;
|
|
3061
3236
|
exports.parseFileType = parseFileType;
|
|
3237
|
+
exports.parseGroupList = parseGroupList;
|
|
3062
3238
|
exports.parseHighlightTimespan = parseHighlightTimespan;
|
|
3063
3239
|
exports.parseHighlightTimespanList = parseHighlightTimespanList;
|
|
3064
|
-
exports.parseKeyValuePairType =
|
|
3240
|
+
exports.parseKeyValuePairType = parseKeyValuePairTypes;
|
|
3065
3241
|
exports.parseMediaConvertPreset = parseMediaConvertPreset;
|
|
3066
3242
|
exports.parseMetadataType = parseMetadataType;
|
|
3067
3243
|
exports.parseNowDate = parseNowDate;
|
|
@@ -3071,6 +3247,4 @@ exports.parseTimespan = parseTimespan;
|
|
|
3071
3247
|
exports.parseTimespanList = parseTimespanList;
|
|
3072
3248
|
exports.parseTranscodePreset = parseTranscodePreset;
|
|
3073
3249
|
exports.parseVideoComponent = parseVideoComponent;
|
|
3074
|
-
exports.parseVideoComponentType = parseVideoComponentType;
|
|
3075
|
-
exports.roles = roles;
|
|
3076
3250
|
//# sourceMappingURL=index.js.map
|