@vidispine/vdt-js 22.4.0-pre.4 → 22.4.0-pre.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.d.ts +1182 -0
- package/dist/index.es.js +1392 -1224
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1399 -1230
- 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
|
-
return new TimeCode(timeCode, options);
|
|
2081
|
-
};
|
|
2082
|
-
|
|
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';
|
|
2153
|
+
return new TimeCode(timeCode, options);
|
|
2089
2154
|
};
|
|
2090
2155
|
|
|
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,118 @@ 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 'HOUR':
|
|
2421
|
+
case 'HOURS':
|
|
2422
|
+
if (sign === '+') nowDiff.setHours(nowDiff.getHours() + number);
|
|
2423
|
+
if (sign === '-') nowDiff.setHours(nowDiff.getHours() - number);
|
|
2424
|
+
break;
|
|
2425
|
+
|
|
2426
|
+
case 'DAY':
|
|
2427
|
+
case 'DAYS':
|
|
2428
|
+
if (sign === '+') nowDiff.setDate(nowDiff.getDate() + number);
|
|
2429
|
+
if (sign === '-') nowDiff.setDate(nowDiff.getDate() - number);
|
|
2430
|
+
break;
|
|
2431
|
+
|
|
2432
|
+
case 'MONTH':
|
|
2433
|
+
case 'MONTHS':
|
|
2434
|
+
if (sign === '+') nowDiff.setMonth(nowDiff.getMonth() + number);
|
|
2435
|
+
if (sign === '-') nowDiff.setMonth(nowDiff.getMonth() - number);
|
|
2436
|
+
break;
|
|
2437
|
+
|
|
2438
|
+
case 'YEAR':
|
|
2439
|
+
case 'YEARS':
|
|
2440
|
+
if (sign === '+') nowDiff.setFullYear(nowDiff.getFullYear() + number);
|
|
2441
|
+
if (sign === '-') nowDiff.setFullYear(nowDiff.getFullYear() - number);
|
|
2442
|
+
break;
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2445
|
+
return nowDiff;
|
|
2446
|
+
}
|
|
2447
|
+
|
|
2448
|
+
return new Date(value);
|
|
2449
|
+
};
|
|
2450
|
+
|
|
2451
|
+
var _excluded$1 = ["property"];
|
|
2452
|
+
|
|
2453
|
+
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
2454
|
|
|
2308
|
-
|
|
2309
|
-
|
|
2455
|
+
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; }
|
|
2456
|
+
var parseBaseMediaInfoType = function parseBaseMediaInfoType(baseMediaInfoType) {
|
|
2457
|
+
var _ref = baseMediaInfoType || {},
|
|
2458
|
+
_ref$property = _ref.property,
|
|
2459
|
+
keyValuePairTypes = _ref$property === void 0 ? [] : _ref$property,
|
|
2460
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$1);
|
|
2310
2461
|
|
|
2311
|
-
var parsedKeyValuePairType =
|
|
2312
|
-
return _objectSpread$
|
|
2462
|
+
var parsedKeyValuePairType = parseKeyValuePairTypes(keyValuePairTypes);
|
|
2463
|
+
return _objectSpread$4(_objectSpread$4({}, parsedKeyValuePairType), props);
|
|
2464
|
+
};
|
|
2465
|
+
var parseAudioMediaInfoType = function parseAudioMediaInfoType(mediaInfoType) {
|
|
2466
|
+
return parseBaseMediaInfoType(mediaInfoType);
|
|
2467
|
+
};
|
|
2468
|
+
var parseVideoMediaInfoType = function parseVideoMediaInfoType(mediaInfoType) {
|
|
2469
|
+
return parseBaseMediaInfoType(mediaInfoType);
|
|
2313
2470
|
};
|
|
2314
2471
|
|
|
2315
2472
|
var sampleRateSymbols = {
|
|
@@ -2322,35 +2479,33 @@ var bitRateSymbols = {
|
|
|
2322
2479
|
B: 'bps',
|
|
2323
2480
|
MB: 'mbps'
|
|
2324
2481
|
};
|
|
2482
|
+
|
|
2325
2483
|
/**
|
|
2326
2484
|
* Parses the technical information of a AudioComponentType.
|
|
2327
|
-
* @param
|
|
2328
|
-
* @returns
|
|
2485
|
+
* @param audioComponentType - A AudioComponentType from VidiCore.
|
|
2486
|
+
* @returns Parsed component object.
|
|
2487
|
+
*
|
|
2488
|
+
* @category Shape
|
|
2329
2489
|
*/
|
|
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,
|
|
2490
|
+
var parseAudioComponent = function parseAudioComponent(audioComponentType) {
|
|
2491
|
+
var timeBase = audioComponentType.timeBase,
|
|
2335
2492
|
audioChannels = audioComponentType.channelCount,
|
|
2336
2493
|
audioCodec = audioComponentType.codec,
|
|
2337
|
-
|
|
2338
|
-
mediaInfo = _audioComponentType$m === void 0 ? {} : _audioComponentType$m,
|
|
2494
|
+
mediaInfo = audioComponentType.mediaInfo,
|
|
2339
2495
|
bitrate = audioComponentType.bitrate,
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
var audioMediaInfo = parseBaseMediaInfoType(mediaInfo);
|
|
2343
|
-
var audioMetadata = parseKeyValuePairType(metadata);
|
|
2496
|
+
metadata = audioComponentType.metadata;
|
|
2497
|
+
var audioMediaInfo = parseAudioMediaInfoType(mediaInfo);
|
|
2344
2498
|
var audioFormat = audioMediaInfo.Format,
|
|
2345
2499
|
audioBitDepth = audioMediaInfo.Resolution,
|
|
2346
2500
|
audioBitRateMode = audioMediaInfo.Bit_rate_mode;
|
|
2347
|
-
var
|
|
2348
|
-
var
|
|
2501
|
+
var audioMetadata = parseKeyValuePairTypes(metadata || []);
|
|
2502
|
+
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;
|
|
2503
|
+
var audioSamplerate = audioSamplerateSamples !== undefined ? parseFileSize__default["default"](audioSamplerateSamples, {
|
|
2349
2504
|
base: 10,
|
|
2350
2505
|
round: 1,
|
|
2351
2506
|
symbols: sampleRateSymbols
|
|
2352
2507
|
}) : undefined;
|
|
2353
|
-
var audioBitrate = bitrate ? parseFileSize__default["default"](bitrate, {
|
|
2508
|
+
var audioBitrate = bitrate !== undefined ? parseFileSize__default["default"](bitrate, {
|
|
2354
2509
|
base: 10,
|
|
2355
2510
|
round: 2,
|
|
2356
2511
|
symbols: bitRateSymbols
|
|
@@ -2369,6 +2524,14 @@ var parseAudioComponentType = function parseAudioComponentType() {
|
|
|
2369
2524
|
};
|
|
2370
2525
|
};
|
|
2371
2526
|
|
|
2527
|
+
/**
|
|
2528
|
+
* Parses a VidiCore file object
|
|
2529
|
+
*
|
|
2530
|
+
* @param fileType VidiCore file object
|
|
2531
|
+
* @returns A parsed file object
|
|
2532
|
+
*
|
|
2533
|
+
* @category File
|
|
2534
|
+
*/
|
|
2372
2535
|
var parseFileType = function parseFileType(fileType) {
|
|
2373
2536
|
var _fileType$uri = fileType.uri,
|
|
2374
2537
|
uriList = _fileType$uri === void 0 ? [] : _fileType$uri,
|
|
@@ -2393,23 +2556,24 @@ var parseFileType = function parseFileType(fileType) {
|
|
|
2393
2556
|
};
|
|
2394
2557
|
};
|
|
2395
2558
|
|
|
2396
|
-
function ownKeys$
|
|
2559
|
+
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; }
|
|
2560
|
+
|
|
2561
|
+
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
2562
|
|
|
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
2563
|
/**
|
|
2400
2564
|
* Parses the technical information of a BinaryComponentType.
|
|
2401
|
-
* @param
|
|
2402
|
-
* @returns
|
|
2565
|
+
* @param binaryComponentType - A BinaryComponentType from VidiCore.
|
|
2566
|
+
* @returns Parsed component object.
|
|
2567
|
+
*
|
|
2568
|
+
* @category Shape
|
|
2403
2569
|
*/
|
|
2404
|
-
|
|
2405
|
-
var parseBinaryComponentType = function parseBinaryComponentType() {
|
|
2570
|
+
var parseBinaryComponent = function parseBinaryComponent() {
|
|
2406
2571
|
var binaryComponentType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2407
2572
|
var fileList = binaryComponentType.file,
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
_binaryComponentType$
|
|
2411
|
-
|
|
2412
|
-
var binaryMetadata = parseKeyValuePairType(metadata);
|
|
2573
|
+
mediaInfo = binaryComponentType.mediaInfo,
|
|
2574
|
+
_binaryComponentType$ = binaryComponentType.metadata,
|
|
2575
|
+
metadata = _binaryComponentType$ === void 0 ? [] : _binaryComponentType$;
|
|
2576
|
+
var binaryMetadata = parseKeyValuePairTypes(metadata);
|
|
2413
2577
|
var binaryMediaInfo = parseBaseMediaInfoType(mediaInfo);
|
|
2414
2578
|
var parsedBinaryComponent = {
|
|
2415
2579
|
binaryMetadata: binaryMetadata,
|
|
@@ -2421,33 +2585,36 @@ var parseBinaryComponentType = function parseBinaryComponentType() {
|
|
|
2421
2585
|
fileType = _fileList[0];
|
|
2422
2586
|
|
|
2423
2587
|
var parsedFileType = parseFileType(fileType);
|
|
2424
|
-
parsedBinaryComponent = _objectSpread$
|
|
2588
|
+
parsedBinaryComponent = _objectSpread$3(_objectSpread$3({}, parsedBinaryComponent), parsedFileType);
|
|
2425
2589
|
}
|
|
2426
2590
|
|
|
2427
2591
|
return parsedBinaryComponent;
|
|
2428
2592
|
};
|
|
2429
2593
|
|
|
2430
|
-
function ownKeys$
|
|
2594
|
+
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
2595
|
|
|
2432
|
-
function _objectSpread$
|
|
2596
|
+
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
2597
|
/**
|
|
2434
|
-
*
|
|
2435
|
-
* @param {Object} containerComponentType - A ContainerComponentType from VidiCore.
|
|
2436
|
-
* @returns {Object} Parsed component object.
|
|
2598
|
+
* Parsed container component
|
|
2437
2599
|
*/
|
|
2438
2600
|
|
|
2439
|
-
|
|
2601
|
+
/**
|
|
2602
|
+
* Parses the technical information of a ContainerComponentType.
|
|
2603
|
+
* @param containerComponentType - A ContainerComponentType from VidiCore.
|
|
2604
|
+
* @returns Parsed component object.
|
|
2605
|
+
*
|
|
2606
|
+
* @category Shape
|
|
2607
|
+
*/
|
|
2608
|
+
var parseContainerComponent = function parseContainerComponent() {
|
|
2440
2609
|
var containerComponentType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2441
|
-
var
|
|
2442
|
-
|
|
2443
|
-
_containerComponentTy2 = containerComponentType.metadata,
|
|
2444
|
-
metadata = _containerComponentTy2 === void 0 ? [] : _containerComponentTy2,
|
|
2610
|
+
var mediaInfo = containerComponentType.mediaInfo,
|
|
2611
|
+
metadata = containerComponentType.metadata,
|
|
2445
2612
|
fileList = containerComponentType.file,
|
|
2446
2613
|
durationTimeCode = containerComponentType.duration,
|
|
2447
2614
|
startTimestamp = containerComponentType.startTimestamp,
|
|
2448
2615
|
startTimecode = containerComponentType.startTimecode,
|
|
2449
2616
|
timeCodeTimeBase = containerComponentType.timeCodeTimeBase;
|
|
2450
|
-
var containerMetadata =
|
|
2617
|
+
var containerMetadata = parseKeyValuePairTypes(metadata || []);
|
|
2451
2618
|
var containerMediaInfo = parseBaseMediaInfoType(mediaInfo);
|
|
2452
2619
|
var containerFormat = containerMediaInfo.Format;
|
|
2453
2620
|
var videoFormat = containerMediaInfo.Video_Format_List,
|
|
@@ -2502,7 +2669,7 @@ var parseContainerComponentType = function parseContainerComponentType() {
|
|
|
2502
2669
|
fileType = _fileList[0];
|
|
2503
2670
|
|
|
2504
2671
|
var parsedFileType = parseFileType(fileType);
|
|
2505
|
-
parsedContainerComponentType = _objectSpread$
|
|
2672
|
+
parsedContainerComponentType = _objectSpread$2(_objectSpread$2({}, parsedContainerComponentType), parsedFileType);
|
|
2506
2673
|
}
|
|
2507
2674
|
|
|
2508
2675
|
return parsedContainerComponentType;
|
|
@@ -2512,21 +2679,20 @@ var parseContainerComponentType = function parseContainerComponentType() {
|
|
|
2512
2679
|
* Parses the technical information of a VideoComponentType.
|
|
2513
2680
|
* @param {Object} videoComponentType - A VideoComponentType from VidiCore.
|
|
2514
2681
|
* @returns {Object} Parsed component object.
|
|
2682
|
+
*
|
|
2683
|
+
* @category Shape
|
|
2515
2684
|
*/
|
|
2516
|
-
|
|
2517
|
-
var parseVideoComponentType = function parseVideoComponentType() {
|
|
2685
|
+
var parseVideoComponent = function parseVideoComponent() {
|
|
2518
2686
|
var videoComponentType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2519
2687
|
var videoCodec = videoComponentType.codec,
|
|
2520
2688
|
bitrate = videoComponentType.bitrate,
|
|
2521
2689
|
fieldOrder = videoComponentType.fieldOrder,
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
_videoComponentType$m = videoComponentType.
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
var videoMediaInfo = parseBaseMediaInfoType(mediaInfo);
|
|
2529
|
-
var videoMetadata = parseKeyValuePairType(metadata);
|
|
2690
|
+
resolution = videoComponentType.resolution,
|
|
2691
|
+
mediaInfo = videoComponentType.mediaInfo,
|
|
2692
|
+
_videoComponentType$m = videoComponentType.metadata,
|
|
2693
|
+
metadata = _videoComponentType$m === void 0 ? [] : _videoComponentType$m;
|
|
2694
|
+
var videoMediaInfo = parseVideoMediaInfoType(mediaInfo);
|
|
2695
|
+
var videoMetadata = parseKeyValuePairTypes(metadata);
|
|
2530
2696
|
var videoFormat = videoMediaInfo.Format,
|
|
2531
2697
|
timeBaseText = videoMediaInfo['Frame rate'],
|
|
2532
2698
|
colorSpace = videoMediaInfo['Color space'],
|
|
@@ -2537,24 +2703,24 @@ var parseVideoComponentType = function parseVideoComponentType() {
|
|
|
2537
2703
|
realBaseFrameRate = videoComponentType.realBaseFrameRate;
|
|
2538
2704
|
|
|
2539
2705
|
if (realBaseFrameRate !== undefined) {
|
|
2540
|
-
timeBase = {
|
|
2706
|
+
timeBase = formatTimeBaseType({
|
|
2541
2707
|
numerator: realBaseFrameRate.denominator,
|
|
2542
2708
|
denominator: realBaseFrameRate.numerator
|
|
2543
|
-
};
|
|
2709
|
+
});
|
|
2544
2710
|
} else if (timeBaseText !== undefined) {
|
|
2545
2711
|
timeBase = formatTimeBaseText(timeBaseText);
|
|
2546
2712
|
} else if (averageFrameRate !== undefined) {
|
|
2547
|
-
timeBase = {
|
|
2713
|
+
timeBase = formatTimeBaseType({
|
|
2548
2714
|
numerator: averageFrameRate.denominator,
|
|
2549
2715
|
denominator: averageFrameRate.numerator
|
|
2550
|
-
};
|
|
2716
|
+
});
|
|
2551
2717
|
}
|
|
2552
2718
|
|
|
2553
2719
|
var samples = videoMediaInfo['Frame count'];
|
|
2554
2720
|
|
|
2555
2721
|
if (samples === undefined) {
|
|
2556
2722
|
var numberOfPackets = videoComponentType.numberOfPackets;
|
|
2557
|
-
if (numberOfPackets !== undefined) samples = numberOfPackets;
|
|
2723
|
+
if (numberOfPackets !== undefined) samples = numberOfPackets.toString();
|
|
2558
2724
|
}
|
|
2559
2725
|
|
|
2560
2726
|
var timeCode;
|
|
@@ -2566,14 +2732,14 @@ var parseVideoComponentType = function parseVideoComponentType() {
|
|
|
2566
2732
|
samples: samples,
|
|
2567
2733
|
timeBase: timeBase
|
|
2568
2734
|
});
|
|
2569
|
-
frameRate = timeCode.timeBase.toRate(
|
|
2570
|
-
constant: true
|
|
2571
|
-
});
|
|
2735
|
+
frameRate = timeCode.timeBase.toConstant() || timeCode.timeBase.toRate();
|
|
2572
2736
|
smpte = timeCode.toSmpte();
|
|
2573
2737
|
}
|
|
2574
2738
|
|
|
2575
|
-
var
|
|
2576
|
-
|
|
2739
|
+
var _ref = resolution || {},
|
|
2740
|
+
height = _ref.height,
|
|
2741
|
+
width = _ref.width;
|
|
2742
|
+
|
|
2577
2743
|
var aspectRatio = parseAspectRatio(resolution);
|
|
2578
2744
|
var dimension = "".concat(width, "x").concat(height);
|
|
2579
2745
|
var videoBitrate = bitrate ? parseFileSize__default["default"](bitrate, {
|
|
@@ -2600,22 +2766,24 @@ var parseVideoComponentType = function parseVideoComponentType() {
|
|
|
2600
2766
|
};
|
|
2601
2767
|
};
|
|
2602
2768
|
|
|
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; }
|
|
2769
|
+
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; }
|
|
2770
|
+
|
|
2771
|
+
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
2772
|
|
|
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
2773
|
/**
|
|
2607
2774
|
* Parses the technical information of a ShapeType and its various components.
|
|
2608
2775
|
*
|
|
2609
2776
|
* Will only parse the first videoComponent, audioComponent, binaryComponent in the corresponding array.
|
|
2610
2777
|
* To parse a selected component see:
|
|
2611
|
-
* - {@link
|
|
2612
|
-
* - {@link
|
|
2613
|
-
* - {@link
|
|
2614
|
-
* - {@link
|
|
2615
|
-
* @param
|
|
2616
|
-
* @returns
|
|
2778
|
+
* - {@link parseContainerComponent}
|
|
2779
|
+
* - {@link parseVideoComponent}
|
|
2780
|
+
* - {@link parseAudioComponent}
|
|
2781
|
+
* - {@link parseBinaryComponent}
|
|
2782
|
+
* @param shapeType - A ShapeType from VidiCore.
|
|
2783
|
+
* @returns Parsed shape object.
|
|
2784
|
+
*
|
|
2785
|
+
* @category Shape
|
|
2617
2786
|
*/
|
|
2618
|
-
|
|
2619
2787
|
var parseShapeType = function parseShapeType() {
|
|
2620
2788
|
var shapeType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2621
2789
|
var parsedShape = {};
|
|
@@ -2637,69 +2805,65 @@ var parseShapeType = function parseShapeType() {
|
|
|
2637
2805
|
parsedShape.mimeType = _mimeTypeList[0];
|
|
2638
2806
|
|
|
2639
2807
|
if (containerComponent) {
|
|
2640
|
-
var parsedContainerComponent =
|
|
2641
|
-
parsedShape = _objectSpread(_objectSpread({}, parsedShape), parsedContainerComponent);
|
|
2808
|
+
var parsedContainerComponent = parseContainerComponent(containerComponent);
|
|
2809
|
+
parsedShape = _objectSpread$1(_objectSpread$1({}, parsedShape), parsedContainerComponent);
|
|
2642
2810
|
}
|
|
2643
2811
|
|
|
2644
2812
|
if (videoComponentList) {
|
|
2645
2813
|
var _videoComponentList = _slicedToArray__default["default"](videoComponentList, 1),
|
|
2646
2814
|
videoComponent = _videoComponentList[0];
|
|
2647
2815
|
|
|
2648
|
-
var parsedVideoComponent =
|
|
2649
|
-
parsedShape = _objectSpread(_objectSpread({}, parsedShape), parsedVideoComponent);
|
|
2816
|
+
var parsedVideoComponent = parseVideoComponent(videoComponent);
|
|
2817
|
+
parsedShape = _objectSpread$1(_objectSpread$1({}, parsedShape), parsedVideoComponent);
|
|
2650
2818
|
}
|
|
2651
2819
|
|
|
2652
2820
|
if (audioComponentList) {
|
|
2653
2821
|
var _audioComponentList = _slicedToArray__default["default"](audioComponentList, 1),
|
|
2654
2822
|
audioComponent = _audioComponentList[0];
|
|
2655
2823
|
|
|
2656
|
-
var parsedAudioComponent =
|
|
2657
|
-
parsedShape = _objectSpread(_objectSpread({}, parsedShape), parsedAudioComponent);
|
|
2824
|
+
var parsedAudioComponent = parseAudioComponent(audioComponent);
|
|
2825
|
+
parsedShape = _objectSpread$1(_objectSpread$1({}, parsedShape), parsedAudioComponent);
|
|
2658
2826
|
}
|
|
2659
2827
|
|
|
2660
2828
|
if (binaryComponentList) {
|
|
2661
2829
|
var _binaryComponentList = _slicedToArray__default["default"](binaryComponentList, 1),
|
|
2662
2830
|
binaryComponent = _binaryComponentList[0];
|
|
2663
2831
|
|
|
2664
|
-
var parsedBinaryComponent =
|
|
2665
|
-
parsedShape = _objectSpread(_objectSpread({}, parsedShape), parsedBinaryComponent);
|
|
2832
|
+
var parsedBinaryComponent = parseBinaryComponent(binaryComponent);
|
|
2833
|
+
parsedShape = _objectSpread$1(_objectSpread$1({}, parsedShape), parsedBinaryComponent);
|
|
2666
2834
|
}
|
|
2667
2835
|
|
|
2668
2836
|
return parsedShape;
|
|
2669
2837
|
};
|
|
2670
2838
|
|
|
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);
|
|
2839
|
+
var DOCUMENT_TYPES = {
|
|
2840
|
+
PDF: 'PDF',
|
|
2841
|
+
TEXT: 'TEXT',
|
|
2842
|
+
MSWORD: 'MSWORD',
|
|
2843
|
+
JSON: 'JSON',
|
|
2844
|
+
XML: 'XML'
|
|
2687
2845
|
};
|
|
2688
|
-
/**
|
|
2689
|
-
* @deprecated please use {@link parseContainerComponentType}
|
|
2690
|
-
*/
|
|
2691
2846
|
|
|
2692
|
-
var parseContainerComponent = function parseContainerComponent(containerComponent) {
|
|
2693
|
-
console.warn('parseContainerComponent is deprecated, please use parseContainerComponentType');
|
|
2694
|
-
return parseContainerComponentType(containerComponent);
|
|
2695
|
-
};
|
|
2696
2847
|
/**
|
|
2697
|
-
*
|
|
2848
|
+
* Return a const for the document type of a shape (looks at mimeType)
|
|
2849
|
+
*
|
|
2850
|
+
* @param shape
|
|
2851
|
+
* @returns The document type for a shape
|
|
2852
|
+
*
|
|
2853
|
+
* @category Shape
|
|
2698
2854
|
*/
|
|
2855
|
+
var getDocumentType = function getDocumentType(shape) {
|
|
2856
|
+
var _ref = shape || {},
|
|
2857
|
+
mimeTypeArrayOrString = _ref.mimeType;
|
|
2699
2858
|
|
|
2700
|
-
var
|
|
2701
|
-
|
|
2702
|
-
|
|
2859
|
+
var mimeType = Array.isArray(mimeTypeArrayOrString) ? mimeTypeArrayOrString[0] : mimeTypeArrayOrString;
|
|
2860
|
+
if (!mimeType) return undefined;
|
|
2861
|
+
if (mimeType.endsWith('/pdf')) return DOCUMENT_TYPES.PDF;
|
|
2862
|
+
if (mimeType.startsWith('text/')) return DOCUMENT_TYPES.TEXT;
|
|
2863
|
+
if (mimeType.endsWith('/msword')) return DOCUMENT_TYPES.MSWORD;
|
|
2864
|
+
if (mimeType.endsWith('/json')) return DOCUMENT_TYPES.JSON;
|
|
2865
|
+
if (mimeType.endsWith('/xml')) return DOCUMENT_TYPES.XML;
|
|
2866
|
+
return undefined;
|
|
2703
2867
|
};
|
|
2704
2868
|
|
|
2705
2869
|
var IMAGE_MIME_TYPES = ['image/apng', 'image/bmp', 'image/gif', 'image/jpeg', 'image/x-icon', 'image/png', 'image/svg+xml'];
|
|
@@ -2727,24 +2891,36 @@ var defaultSortPriority = function defaultSortPriority(_ref, _ref2) {
|
|
|
2727
2891
|
|
|
2728
2892
|
return firstEl.toLowerCase().localeCompare(secondEl.toLowerCase());
|
|
2729
2893
|
};
|
|
2894
|
+
/**
|
|
2895
|
+
* Filter a shape type list to get shapes that are playable in a browser
|
|
2896
|
+
*
|
|
2897
|
+
* @param itemType
|
|
2898
|
+
* @param options
|
|
2899
|
+
* @returns
|
|
2900
|
+
*
|
|
2901
|
+
* @category Shape
|
|
2902
|
+
*/
|
|
2903
|
+
|
|
2904
|
+
|
|
2905
|
+
var filterShapeSource = function filterShapeSource(itemType, options) {
|
|
2906
|
+
var _ref3 = options || {},
|
|
2907
|
+
_ref3$allowedMimeType = _ref3.allowedMimeTypes,
|
|
2908
|
+
allowedMimeTypes = _ref3$allowedMimeType === void 0 ? DEFAULT_ALLOWED_MIME_TYPES : _ref3$allowedMimeType,
|
|
2909
|
+
_ref3$sortPriority = _ref3.sortPriority,
|
|
2910
|
+
sortPriority = _ref3$sortPriority === void 0 ? defaultSortPriority : _ref3$sortPriority,
|
|
2911
|
+
_ref3$allowedMethods = _ref3.allowedMethods,
|
|
2912
|
+
allowedMethods = _ref3$allowedMethods === void 0 ? DEFAULT_ALLOWED_METHODS : _ref3$allowedMethods,
|
|
2913
|
+
_ref3$sourceKey = _ref3.sourceKey,
|
|
2914
|
+
sourceKey = _ref3$sourceKey === void 0 ? 'src' : _ref3$sourceKey,
|
|
2915
|
+
_ref3$mimeTypeKey = _ref3.mimeTypeKey,
|
|
2916
|
+
mimeTypeKey = _ref3$mimeTypeKey === void 0 ? 'type' : _ref3$mimeTypeKey,
|
|
2917
|
+
_ref3$shapeKey = _ref3.shapeKey,
|
|
2918
|
+
shapeKey = _ref3$shapeKey === void 0 ? 'shape' : _ref3$shapeKey;
|
|
2919
|
+
|
|
2920
|
+
var _ref4 = itemType || {},
|
|
2921
|
+
_ref4$shape = _ref4.shape,
|
|
2922
|
+
shapeList = _ref4$shape === void 0 ? [] : _ref4$shape;
|
|
2730
2923
|
|
|
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
2924
|
var parsedShapeList = shapeList.reduce(function (acc, shapeType) {
|
|
2749
2925
|
var type;
|
|
2750
2926
|
var src;
|
|
@@ -2783,39 +2959,65 @@ var filterShapeSource = function filterShapeSource() {
|
|
|
2783
2959
|
return parsedShapeList;
|
|
2784
2960
|
};
|
|
2785
2961
|
|
|
2786
|
-
var
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2962
|
+
var SHAPE_MEDIA_TYPES = {
|
|
2963
|
+
IMAGE: 'IMAGE',
|
|
2964
|
+
AUDIO: 'AUDIO',
|
|
2965
|
+
VIDEO: 'VIDEO',
|
|
2966
|
+
DOCUMENT: 'DOCUMENT',
|
|
2967
|
+
BINARY: 'BINARY'
|
|
2968
|
+
};
|
|
2969
|
+
// TODO: For consistency, replace input with an actual ShapeType not a parsed shape
|
|
2970
|
+
// (parse it internally if needed)
|
|
2971
|
+
|
|
2972
|
+
/**
|
|
2973
|
+
* Returns a const for which media type a shape has
|
|
2974
|
+
*
|
|
2975
|
+
* @param parsedShape
|
|
2976
|
+
* @returns
|
|
2977
|
+
*
|
|
2978
|
+
* @category Shape
|
|
2979
|
+
*/
|
|
2980
|
+
var getShapeMediaType = function getShapeMediaType(parsedShape) {
|
|
2981
|
+
var _ref = parsedShape || {},
|
|
2982
|
+
mimeType = _ref.mimeType,
|
|
2983
|
+
videoCodec = _ref.videoCodec,
|
|
2984
|
+
audioCodec = _ref.audioCodec;
|
|
2985
|
+
|
|
2796
2986
|
if (!mimeType) return undefined;
|
|
2797
2987
|
|
|
2798
2988
|
if (mimeType.startsWith('audio/')) {
|
|
2799
|
-
if (audioCodec !== undefined) return AUDIO;
|
|
2989
|
+
if (audioCodec !== undefined) return SHAPE_MEDIA_TYPES.AUDIO;
|
|
2800
2990
|
}
|
|
2801
2991
|
|
|
2802
2992
|
if (mimeType.startsWith('video/')) {
|
|
2803
|
-
if (videoCodec !== undefined) return VIDEO;
|
|
2804
|
-
if (audioCodec !== undefined) return AUDIO;
|
|
2993
|
+
if (videoCodec !== undefined) return SHAPE_MEDIA_TYPES.VIDEO;
|
|
2994
|
+
if (audioCodec !== undefined) return SHAPE_MEDIA_TYPES.AUDIO;
|
|
2805
2995
|
}
|
|
2806
2996
|
|
|
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;
|
|
2997
|
+
if (mimeType.startsWith('image/')) return SHAPE_MEDIA_TYPES.IMAGE;
|
|
2998
|
+
if (mimeType.endsWith('/pdf')) return SHAPE_MEDIA_TYPES.DOCUMENT;
|
|
2999
|
+
if (mimeType.startsWith('text/')) return SHAPE_MEDIA_TYPES.DOCUMENT;
|
|
3000
|
+
if (mimeType.endsWith('/msword')) return SHAPE_MEDIA_TYPES.DOCUMENT;
|
|
3001
|
+
if (mimeType.endsWith('/json')) return SHAPE_MEDIA_TYPES.DOCUMENT;
|
|
3002
|
+
if (mimeType.endsWith('/xml')) return SHAPE_MEDIA_TYPES.DOCUMENT;
|
|
3003
|
+
if (mimeType.endsWith('/octet-stream')) return SHAPE_MEDIA_TYPES.BINARY;
|
|
2814
3004
|
return undefined;
|
|
2815
3005
|
};
|
|
2816
3006
|
|
|
2817
|
-
|
|
2818
|
-
|
|
3007
|
+
/**
|
|
3008
|
+
* Find the thumbnail uri in a VidiCore item object that's nearest a timeCode
|
|
3009
|
+
*
|
|
3010
|
+
* @remarks
|
|
3011
|
+
* Time code is included in path of VidiCore thumbnail uris
|
|
3012
|
+
*
|
|
3013
|
+
* @param itemType A VidiCore item object
|
|
3014
|
+
* @param timeCode A timeCode to find nearest thumbnail to
|
|
3015
|
+
* @returns A URI of a thumbnail, `undefined` if item has no thumbnails
|
|
3016
|
+
*
|
|
3017
|
+
* @category Thumbnail
|
|
3018
|
+
*/
|
|
3019
|
+
var findNearestThumbnail = function findNearestThumbnail(itemType, timeCode) {
|
|
3020
|
+
var tcSeconds = createTimeCode(timeCode).toSeconds();
|
|
2819
3021
|
|
|
2820
3022
|
var _ref = itemType || {},
|
|
2821
3023
|
_ref$thumbnails = _ref.thumbnails,
|
|
@@ -2833,59 +3035,27 @@ var findNearestThumbnail = function findNearestThumbnail(itemType, timeCodeText)
|
|
|
2833
3035
|
return srcList[nearestSrcIndex];
|
|
2834
3036
|
};
|
|
2835
3037
|
|
|
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
3038
|
var _excluded = ["Codec"],
|
|
2879
3039
|
_excluded2 = ["Codec"];
|
|
3040
|
+
/**
|
|
3041
|
+
* TODO
|
|
3042
|
+
*/
|
|
2880
3043
|
|
|
2881
|
-
|
|
3044
|
+
/**
|
|
3045
|
+
* TODO
|
|
3046
|
+
*
|
|
3047
|
+
* @param mediaconvert
|
|
3048
|
+
* @returns
|
|
3049
|
+
*
|
|
3050
|
+
* @category Transcode
|
|
3051
|
+
*/
|
|
3052
|
+
var parseMediaConvertPreset = function parseMediaConvertPreset(mediaconvert) {
|
|
2882
3053
|
var output = {};
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
output.description = description;
|
|
3054
|
+
|
|
3055
|
+
var _ref = mediaconvert || {},
|
|
3056
|
+
_ref$outputSetting = _ref.outputSetting,
|
|
3057
|
+
outputSetting = _ref$outputSetting === void 0 ? [] : _ref$outputSetting;
|
|
3058
|
+
|
|
2889
3059
|
if (outputSetting.length === 0) return output;
|
|
2890
3060
|
var mc = JSON.parse(outputSetting[0]);
|
|
2891
3061
|
var _mc$Settings = mc.Settings;
|
|
@@ -2893,7 +3063,6 @@ var parseMediaConvertPreset = function parseMediaConvertPreset(transcodePresetTy
|
|
|
2893
3063
|
var ContainerSettings = _mc$Settings.ContainerSettings,
|
|
2894
3064
|
VideoDescription = _mc$Settings.VideoDescription,
|
|
2895
3065
|
AudioDescriptions = _mc$Settings.AudioDescriptions;
|
|
2896
|
-
output.containerFormat = ContainerSettings.Container;
|
|
2897
3066
|
|
|
2898
3067
|
if (ContainerSettings) {
|
|
2899
3068
|
output.containerFormat = ContainerSettings.Container;
|
|
@@ -2936,9 +3105,7 @@ var parseMediaConvertPreset = function parseMediaConvertPreset(transcodePresetTy
|
|
|
2936
3105
|
numerator: numerator
|
|
2937
3106
|
});
|
|
2938
3107
|
output.timeBase = timeBase;
|
|
2939
|
-
output.frameRate = timeBase.toRate(
|
|
2940
|
-
constant: true
|
|
2941
|
-
});
|
|
3108
|
+
output.frameRate = timeBase.toConstant() || timeBase.toRate();
|
|
2942
3109
|
}
|
|
2943
3110
|
}
|
|
2944
3111
|
|
|
@@ -2965,14 +3132,34 @@ var parseMediaConvertPreset = function parseMediaConvertPreset(transcodePresetTy
|
|
|
2965
3132
|
return output;
|
|
2966
3133
|
};
|
|
2967
3134
|
|
|
3135
|
+
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; }
|
|
3136
|
+
|
|
3137
|
+
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; }
|
|
3138
|
+
/**
|
|
3139
|
+
* TODO
|
|
3140
|
+
*/
|
|
3141
|
+
|
|
3142
|
+
/**
|
|
3143
|
+
* TODO
|
|
3144
|
+
*
|
|
3145
|
+
* @param transcodePresetType
|
|
3146
|
+
* @returns
|
|
3147
|
+
*
|
|
3148
|
+
* @category Transcode
|
|
3149
|
+
*/
|
|
2968
3150
|
var parseTranscodePreset = function parseTranscodePreset(transcodePresetType) {
|
|
2969
3151
|
var output = {};
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
2975
|
-
|
|
3152
|
+
|
|
3153
|
+
var _ref = transcodePresetType || {},
|
|
3154
|
+
description = _ref.description,
|
|
3155
|
+
format = _ref.format,
|
|
3156
|
+
audio = _ref.audio,
|
|
3157
|
+
video = _ref.video,
|
|
3158
|
+
mediaconvert = _ref.mediaconvert;
|
|
3159
|
+
|
|
3160
|
+
if (mediaconvert) return _objectSpread({
|
|
3161
|
+
description: description
|
|
3162
|
+
}, parseMediaConvertPreset(mediaconvert));
|
|
2976
3163
|
output.description = description;
|
|
2977
3164
|
output.containerFormat = format;
|
|
2978
3165
|
|
|
@@ -2983,9 +3170,7 @@ var parseTranscodePreset = function parseTranscodePreset(transcodePresetType) {
|
|
|
2983
3170
|
if (video.framerate) {
|
|
2984
3171
|
var timeBase = formatTimeBaseType(video.framerate);
|
|
2985
3172
|
output.timeBase = timeBase;
|
|
2986
|
-
output.frameRate = timeBase.toRate(
|
|
2987
|
-
constant: true
|
|
2988
|
-
});
|
|
3173
|
+
output.frameRate = timeBase.toConstant() || timeBase.toRate();
|
|
2989
3174
|
}
|
|
2990
3175
|
|
|
2991
3176
|
if (video.scaling) {
|
|
@@ -3015,23 +3200,10 @@ var parseTranscodePreset = function parseTranscodePreset(transcodePresetType) {
|
|
|
3015
3200
|
return output;
|
|
3016
3201
|
};
|
|
3017
3202
|
|
|
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
|
-
|
|
3203
|
+
exports.FIELD_ATTRIBUTE_KEYS = FIELD_ATTRIBUTE_KEYS;
|
|
3204
|
+
exports.FIELD_VALUE_ATTRIBUTE_KEYS = FIELD_VALUE_ATTRIBUTE_KEYS;
|
|
3205
|
+
exports.GROUP_ATTRIBUTE_KEYS = GROUP_ATTRIBUTE_KEYS;
|
|
3206
|
+
exports.ROLE_NAMES = ROLE_NAMES;
|
|
3035
3207
|
exports.SYSTEM_FIELDGROUPS = SYSTEM_FIELDGROUPS;
|
|
3036
3208
|
exports.SYSTEM_FIELDS = SYSTEM_FIELDS;
|
|
3037
3209
|
exports.TimeBase = TimeBase;
|
|
@@ -3052,16 +3224,15 @@ exports.getDocumentType = getDocumentType;
|
|
|
3052
3224
|
exports.getShapeMediaType = getShapeMediaType;
|
|
3053
3225
|
exports.metadataTypeToWebVtt = metadataTypeToWebVtt;
|
|
3054
3226
|
exports.parseAudioComponent = parseAudioComponent;
|
|
3055
|
-
exports.parseAudioComponentType = parseAudioComponentType;
|
|
3056
3227
|
exports.parseBinaryComponent = parseBinaryComponent;
|
|
3057
|
-
exports.parseBinaryComponentType = parseBinaryComponentType;
|
|
3058
3228
|
exports.parseContainerComponent = parseContainerComponent;
|
|
3059
|
-
exports.parseContainerComponentType = parseContainerComponentType;
|
|
3060
3229
|
exports.parseFacetType = parseFacetType;
|
|
3230
|
+
exports.parseFieldList = parseFieldList;
|
|
3061
3231
|
exports.parseFileType = parseFileType;
|
|
3232
|
+
exports.parseGroupList = parseGroupList;
|
|
3062
3233
|
exports.parseHighlightTimespan = parseHighlightTimespan;
|
|
3063
3234
|
exports.parseHighlightTimespanList = parseHighlightTimespanList;
|
|
3064
|
-
exports.parseKeyValuePairType =
|
|
3235
|
+
exports.parseKeyValuePairType = parseKeyValuePairTypes;
|
|
3065
3236
|
exports.parseMediaConvertPreset = parseMediaConvertPreset;
|
|
3066
3237
|
exports.parseMetadataType = parseMetadataType;
|
|
3067
3238
|
exports.parseNowDate = parseNowDate;
|
|
@@ -3071,6 +3242,4 @@ exports.parseTimespan = parseTimespan;
|
|
|
3071
3242
|
exports.parseTimespanList = parseTimespanList;
|
|
3072
3243
|
exports.parseTranscodePreset = parseTranscodePreset;
|
|
3073
3244
|
exports.parseVideoComponent = parseVideoComponent;
|
|
3074
|
-
exports.parseVideoComponentType = parseVideoComponentType;
|
|
3075
|
-
exports.roles = roles;
|
|
3076
3245
|
//# sourceMappingURL=index.js.map
|