@spscommerce/utils 3.12.4 → 3.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
- export * from "./flatten";
2
- export * from "./is-subset";
3
- export * from "./range";
1
+ export * from './flatten';
2
+ export * from './is-subset';
3
+ export * from './range';
@@ -1 +1 @@
1
- export * from "./custom-event";
1
+ export * from './custom-event';
@@ -1 +1 @@
1
- export * from "./doctypes";
1
+ export * from './doctypes';
@@ -1,4 +1,11 @@
1
1
  /**
2
2
  * Decorator that applies `debounce`
3
3
  */
4
- export declare function debounced(ms: number): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
4
+ export declare function debounced(ms: number): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
5
+ configurable?: boolean;
6
+ enumerable?: boolean;
7
+ value?: any;
8
+ writable?: boolean;
9
+ get?(): any;
10
+ set?(v: any): void;
11
+ };
@@ -1,5 +1,5 @@
1
- export * from "./cast-to-number";
2
- export * from "./debounced";
3
- export * from "./locked-to-animation-frames";
4
- export * from "./simple-metadata-decorator-applicator";
5
- export * from "./tick-delay";
1
+ export * from './cast-to-number';
2
+ export * from './debounced';
3
+ export * from './locked-to-animation-frames';
4
+ export * from './simple-metadata-decorator-applicator';
5
+ export * from './tick-delay';
@@ -1,4 +1,11 @@
1
1
  /**
2
2
  * Decorator that applies `lockToAnimationFrames`
3
3
  */
4
- export declare function lockedToAnimationFrames(target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor;
4
+ export declare function lockedToAnimationFrames(target: any, propertyKey: string, descriptor: PropertyDescriptor): {
5
+ configurable?: boolean;
6
+ enumerable?: boolean;
7
+ value?: any;
8
+ writable?: boolean;
9
+ get?(): any;
10
+ set?(v: any): void;
11
+ };
@@ -1,2 +1,6 @@
1
+ interface FunctionPropertyDescriptor extends PropertyDescriptor {
2
+ value: (...args: unknown[]) => unknown;
3
+ }
1
4
  /** Method decorator that configures the method to always run the tick after it's invoked */
2
- export declare function tickDelay(target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor;
5
+ export declare function tickDelay(target: any, propertyKey: string, descriptor: FunctionPropertyDescriptor): FunctionPropertyDescriptor;
6
+ export {};
@@ -1,5 +1,5 @@
1
- import { Eventually } from "../typings";
2
- import { DelayedFunction } from "./delayed-function.interface";
1
+ import { Eventually } from '../typings';
2
+ import { DelayedFunction } from './delayed-function.interface';
3
3
  /**
4
4
  * Takes in a function and returns a new function that debounces it.
5
5
  * The returned function returns an observable that can be subscribed to
@@ -1,4 +1,4 @@
1
- import { DelayedFunction } from "./delayed-function.interface";
1
+ import { DelayedFunction } from './delayed-function.interface';
2
2
  /** docs:ignore */
3
3
  export interface DebouncedFunction<T> extends DelayedFunction<Promise<T>> {
4
4
  (...args: any[]): Promise<T>;
@@ -1,6 +1,6 @@
1
- export * from "./debounce";
2
- export * from "./debounced-function.interface";
3
- export * from "./delayed-function.interface";
4
- export * from "./lock-to-animation-frames";
5
- export * from "./on-next-tick";
6
- export * from "./op";
1
+ export * from './debounce';
2
+ export * from './debounced-function.interface';
3
+ export * from './delayed-function.interface';
4
+ export * from './lock-to-animation-frames';
5
+ export * from './on-next-tick';
6
+ export * from './op';
@@ -1,4 +1,4 @@
1
- import { DelayedFunction } from "./delayed-function.interface";
1
+ import { DelayedFunction } from './delayed-function.interface';
2
2
  /**
3
3
  * Return a new function to replace the passed in one which ensures that
4
4
  * the given function will run only in `requestAnimationFrame()` and at
@@ -5,4 +5,4 @@
5
5
  * component class, performing that assignment on the next tick, i.e. when
6
6
  * all of Angular's current cycle is finished, will resolve that error.
7
7
  */
8
- export declare function onNextTick(fn: (...args: any[]) => any, thisArg?: any): void;
8
+ export declare function onNextTick(fn: (...args: unknown[]) => unknown, thisArg?: any): void;
package/lib/index.cjs.js CHANGED
@@ -54,6 +54,17 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
54
54
  PERFORMANCE OF THIS SOFTWARE.
55
55
  ***************************************************************************** */
56
56
 
57
+ var __assign = function() {
58
+ __assign = Object.assign || function __assign(t) {
59
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
60
+ s = arguments[i];
61
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
62
+ }
63
+ return t;
64
+ };
65
+ return __assign.apply(this, arguments);
66
+ };
67
+
57
68
  function __awaiter(thisArg, _arguments, P, generator) {
58
69
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
59
70
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -121,10 +132,14 @@ function __read(o, n) {
121
132
  return ar;
122
133
  }
123
134
 
124
- function __spread() {
125
- for (var ar = [], i = 0; i < arguments.length; i++)
126
- ar = ar.concat(__read(arguments[i]));
127
- return ar;
135
+ function __spreadArray(to, from, pack) {
136
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
137
+ if (ar || !(i in from)) {
138
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
139
+ ar[i] = from[i];
140
+ }
141
+ }
142
+ return to.concat(ar || Array.prototype.slice.call(from));
128
143
  }
129
144
 
130
145
  /**
@@ -163,7 +178,7 @@ function isSubset(candidate, array) {
163
178
  */
164
179
  function resetDebouncedFn() {
165
180
  this.pending = false;
166
- if (typeof this.id === "number") {
181
+ if (typeof this.id === 'number') {
167
182
  clearTimeout(this.id);
168
183
  delete this.id;
169
184
  return true;
@@ -177,16 +192,16 @@ function resetDebouncedFn() {
177
192
  * finally gets called and returns a value.
178
193
  */
179
194
  function debounce(functionToDebounce, milliseconds, thisArg) {
180
- var debouncedFn = function () {
195
+ var debFn = function debouncedFn() {
181
196
  var _this = this;
182
197
  var args = [];
183
198
  for (var _i = 0; _i < arguments.length; _i++) {
184
199
  args[_i] = arguments[_i];
185
200
  }
186
201
  return new Promise(function (resolve, reject) {
187
- debouncedFn.reset();
188
- debouncedFn.pending = true;
189
- debouncedFn.id = window.setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
202
+ debFn.reset();
203
+ debFn.pending = true;
204
+ debFn.id = window.setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
190
205
  var output, err_1;
191
206
  return __generator(this, function (_a) {
192
207
  switch (_a.label) {
@@ -206,7 +221,7 @@ function debounce(functionToDebounce, milliseconds, thisArg) {
206
221
  reject(err_1);
207
222
  return [3 /*break*/, 5];
208
223
  case 4:
209
- debouncedFn.reset();
224
+ debFn.reset();
210
225
  return [7 /*endfinally*/];
211
226
  case 5: return [2 /*return*/];
212
227
  }
@@ -214,8 +229,8 @@ function debounce(functionToDebounce, milliseconds, thisArg) {
214
229
  }); }, milliseconds);
215
230
  });
216
231
  };
217
- debouncedFn.reset = resetDebouncedFn.bind(debouncedFn);
218
- return debouncedFn;
232
+ debFn.reset = resetDebouncedFn.bind(debFn);
233
+ return debFn;
219
234
  }
220
235
 
221
236
  /**
@@ -226,7 +241,7 @@ function debounce(functionToDebounce, milliseconds, thisArg) {
226
241
  */
227
242
  function resetLockedFn() {
228
243
  this.pending = false;
229
- if (typeof this.id === "number") {
244
+ if (typeof this.id === 'number') {
230
245
  window.cancelAnimationFrame(this.id);
231
246
  delete this.id;
232
247
  return true;
@@ -239,7 +254,7 @@ function resetLockedFn() {
239
254
  * most once per frame.
240
255
  */
241
256
  function lockToAnimationFrames(functionToLock, thisArg) {
242
- var lockFn = function () {
257
+ var lockFn = function lockedFn() {
243
258
  var _this = this;
244
259
  var args = [];
245
260
  for (var _i = 0; _i < arguments.length; _i++) {
@@ -249,7 +264,9 @@ function lockToAnimationFrames(functionToLock, thisArg) {
249
264
  lockFn.reset();
250
265
  }
251
266
  lockFn.id = window.requestAnimationFrame(function () {
252
- functionToLock.apply(thisArg || _this, args);
267
+ if (functionToLock) {
268
+ functionToLock.apply(thisArg || _this, args);
269
+ }
253
270
  lockFn.reset();
254
271
  });
255
272
  lockFn.pending = true;
@@ -267,11 +284,11 @@ function lockToAnimationFrames(functionToLock, thisArg) {
267
284
  * all of Angular's current cycle is finished, will resolve that error.
268
285
  */
269
286
  function onNextTick(fn, thisArg) {
270
- fn = thisArg ? fn.bind(thisArg) : fn;
271
- setTimeout(fn, 0);
287
+ var boundFn = thisArg ? fn.bind(thisArg) : fn;
288
+ setTimeout(boundFn, 0);
272
289
  }
273
290
 
274
- /* tslint:disable:no-bitwise */
291
+ /* eslint-disable */
275
292
  // @dynamic
276
293
  /** Functions for various operators, most useful in combination
277
294
  * with functional programming tools like map, filter, and reduce.
@@ -314,10 +331,10 @@ var Op = /** @class */ (function () {
314
331
  */
315
332
  function range(start, end) {
316
333
  if (!Number.isInteger(start)) {
317
- throw new Error("start must be an integer");
334
+ throw new Error('start must be an integer');
318
335
  }
319
336
  if (!Number.isInteger(end)) {
320
- throw new Error("end must be an integer");
337
+ throw new Error('end must be an integer');
321
338
  }
322
339
  return new Array(Math.abs(end - start) + 1).fill(start).map(start > end ? Op.SUB : Op.ADD);
323
340
  }
@@ -330,17 +347,17 @@ var CustomEvent = /** @class */ (function () {
330
347
  var e_1, _a, e_2, _b, e_3, _c;
331
348
  if (initDict === void 0) { initDict = {}; }
332
349
  var event;
333
- if (typeof Event === "function") {
350
+ if (typeof Event === 'function') {
334
351
  event = new Event(eventName, initDict);
335
352
  }
336
353
  else {
337
354
  // IE11
338
- event = document.createEvent("Event");
355
+ event = document.createEvent('Event');
339
356
  event.initEvent(eventName, initDict.bubbles, initDict.cancelable);
340
357
  try {
341
358
  for (var _d = __values(Object.keys(initDict)), _e = _d.next(); !_e.done; _e = _d.next()) {
342
359
  var key = _e.value;
343
- if (key !== "bubbles" && key !== "cancelable") {
360
+ if (key !== 'bubbles' && key !== 'cancelable') {
344
361
  event[key] = initDict[key];
345
362
  }
346
363
  }
@@ -365,7 +382,7 @@ var CustomEvent = /** @class */ (function () {
365
382
  try {
366
383
  for (var _h = (e_3 = void 0, __values(Object.keys(descriptor))), _j = _h.next(); !_j.done; _j = _h.next()) {
367
384
  var key = _j.value;
368
- if (typeof descriptor[key] === "function") {
385
+ if (typeof descriptor[key] === 'function') {
369
386
  descriptor[key] = descriptor[key].bind(event);
370
387
  }
371
388
  }
@@ -392,305 +409,305 @@ var CustomEvent = /** @class */ (function () {
392
409
  }());
393
410
 
394
411
  var EDI_DOCUMENT_TYPE = Object.freeze({
395
- 100: { name: "Insurance Plan Description" },
396
- 101: { name: "Name and Address Lists" },
397
- 104: { name: "Air Shipment Information" },
398
- 106: { name: "Motor Carrier Rate Proposal" },
399
- 107: { name: "Request for Motor Carrier Rate Proposal" },
400
- 108: { name: "Response to a Motor Carrier Rate Proposal" },
401
- 109: { name: "Vessel Content Details" },
402
- 110: { name: "Air Freight Details and Invoice" },
403
- 112: { name: "Property Damage Report" },
404
- 120: { name: "Vehicle Shipping Order" },
405
- 121: { name: "Vehicle Service" },
406
- 124: { name: "Vehicle Damage" },
407
- 125: { name: "Multilevel Railcar Load Details" },
408
- 126: { name: "Vehicle Application Advice" },
409
- 127: { name: "Vehicle Baying Order" },
410
- 128: { name: "Dealer Information" },
411
- 129: { name: "Vehicle Carrier Rate Update" },
412
- 130: { name: "Student Educational Record (Transcript)" },
413
- 131: { name: "Student Educational Record (Transcript) Acknowledgment" },
414
- 135: { name: "Student Loan Application" },
415
- 138: { name: "Testing Results Request and Report" },
416
- 139: { name: "Student Loan Guarantee Result" },
417
- 140: { name: "Product Registration" },
418
- 141: { name: "Product Service Claim Response" },
419
- 142: { name: "Product Service Claim" },
420
- 143: { name: "Product Service Notification" },
421
- 144: { name: "Student Loan Transfer and Status Verification" },
422
- 146: { name: "Request for Student Educational Record (Transcript)" },
423
- 147: { name: "Response to Request for Student Educational Record (Transcript)" },
424
- 148: { name: "Report of Injury, Illness or Incident" },
425
- 149: { name: "Notice of Tax Adjustment or Assessment" },
426
- 150: { name: "Tax Rate Notification" },
427
- 151: { name: "Electronic Filing of Tax Return Data Acknowledgment" },
428
- 152: { name: "Statistical Government Information" },
429
- 153: { name: "Unemployment Insurance Tax Claim or Charge Information" },
430
- 154: { name: "Uniform Commercial Code Filing" },
431
- 155: { name: "Business Credit Report" },
432
- 157: { name: "Notice of Power of Attorney" },
433
- 159: { name: "Motion Picture Booking Confirmation" },
434
- 160: { name: "Transportation Automatic Equipment Identification" },
435
- 161: { name: "Train Sheet" },
436
- 169: { name: "Transportation Appointment Schedule Information" },
437
- 170: { name: "Revenue Receipts Statement" },
438
- 175: { name: "Court and Law Enforcement Notice" },
439
- 176: { name: "Court Submission TYPE" },
440
- 180: { name: "Return Merchandise Authorization and Notification" },
441
- 185: { name: "Royalty Regulatory Report" },
442
- 186: { name: "Insurance Underwriting Requirements Reporting" },
443
- 188: { name: "Educational Course Inventory" },
444
- 189: { name: "Application for Admission to Educational Institutions" },
445
- 190: { name: "Student Enrollment Verification" },
446
- 191: { name: "Student Loan Pre-Claims and Claims" },
447
- 194: { name: "Grant or Assistance Application" },
448
- 195: { name: "Federal Communications Commission (FCC) License Application" },
449
- 196: { name: "Contractor Cost Data Reporting" },
450
- 197: { name: "Real Estate Title Evidence" },
451
- 198: { name: "Loan Verification Information" },
452
- 199: { name: "Real Estate Settlement Information" },
453
- 200: { name: "Mortgage Credit Report" },
454
- 201: { name: "Residential Loan Application" },
455
- 202: { name: "Secondary Mortgage Market Loan Delivery" },
456
- 203: { name: "Secondary Mortgage Market Investor Report" },
457
- 204: { name: "Motor Carrier Load Tender" },
458
- 205: { name: "Mortgage Note" },
459
- 206: { name: "Real Estate Inspection" },
460
- 210: { name: "Motor Carrier Freight Details and Invoice" },
461
- 211: { name: "Motor Carrier Bill of Lading", edifactId: "IFTMCE" },
462
- 212: { name: "Motor Carrier Delivery Trailer Manifest" },
463
- 213: { name: "Motor Carrier Shipment Status Inquiry" },
464
- 214: { name: "Transportation Carrier Shipment Status Message" },
465
- 215: { name: "Motor Carrier Pick-up Manifest" },
466
- 216: { name: "Motor Carrier Shipment Pick-up Notification" },
467
- 217: { name: "Motor Carrier Loading and Route Guide" },
468
- 218: { name: "Motor Carrier Tariff Information" },
469
- 219: { name: "Logistics Service Request" },
470
- 220: { name: "Logistics Service Response" },
471
- 222: { name: "Cartage Work Assignment" },
472
- 223: { name: "Consolidators Freight Bill and Invoice" },
473
- 224: { name: "Motor Carrier Summary Freight Bill Manifest" },
474
- 225: { name: "Response to a Cartage Work Assignment" },
475
- 240: { name: "Motor Carrier Package Status" },
476
- 242: { name: "Data Status Tracking" },
477
- 244: { name: "Product Source Information" },
478
- 248: { name: "Account Assignment/Inquiry and Service/Status" },
479
- 249: { name: "Animal Toxicological Data" },
480
- 250: { name: "Purchase Order Shipment Management Document" },
481
- 251: { name: "Pricing Support" },
482
- 252: { name: "Insurance Producer Administration" },
483
- 255: { name: "Underwriting Information Services" },
484
- 256: { name: "Periodic Compensation" },
485
- 260: { name: "Application for Mortgage Insurance Benefits" },
486
- 261: { name: "Real Estate Information Request" },
487
- 262: { name: "Real Estate Information Report" },
488
- 263: { name: "Residential Mortgage Insurance Application Response" },
489
- 264: { name: "Mortgage Loan Default Status" },
490
- 265: { name: "Real Estate Title Insurance Services Order" },
491
- 266: { name: "Mortgage or Property Record Change Notification" },
492
- 267: { name: "Individual Life, Annuity and Disability Application" },
493
- 268: { name: "Annuity Activity" },
494
- 270: { name: "Eligibility, Coverage or Benefit Inquiry" },
495
- 271: { name: "Eligibility, Coverage or Benefit Information" },
496
- 272: { name: "Property and Casualty Loss Notification" },
497
- 273: { name: "Insurance/Annuity Application Status" },
498
- 274: { name: "Health Care Provider Information" },
499
- 275: { name: "Patient Information" },
500
- 276: { name: "Health Care Claim Status Request" },
501
- 277: { name: "Health Care Claim Status Notification" },
502
- 278: { name: "Health Care Services Insurance/Benefit Review Information" },
503
- 280: { name: "Voter Registration Information" },
504
- 285: { name: "Commercial Vehicle Safety and Credentials Information Exchange" },
505
- 286: { name: "Commercial Vehicle Credentials" },
506
- 288: { name: "Wage Determination" },
507
- 290: { name: "Cooperative Advertising Agreements" },
508
- 300: { name: "Reservation (Booking Request) (Ocean)" },
509
- 301: { name: "Confirmation (Ocean)", edifactId: "IFTMBC" },
510
- 303: { name: "Booking Cancellation (Ocean)" },
511
- 304: { name: "Shipping Instructions" },
512
- 309: { name: "U.S. Customs Manifest" },
513
- 310: { name: "Freight Receipt and Invoice (Ocean)" },
514
- 311: { name: "Canadian Customs Information" },
515
- 312: { name: "Arrival Notice (Ocean)" },
516
- 313: { name: "Shipment Status Inquiry (Ocean)" },
517
- 315: { name: "Status Details (Ocean)" },
518
- 317: { name: "Delivery/Pickup Order" },
519
- 319: { name: "Terminal Information" },
520
- 322: { name: "Terminal Operations and Intermodal Ramp Activity" },
521
- 323: { name: "Vessel Schedule and Itinerary (Ocean)" },
522
- 324: { name: "Vessel Stow Plan (Ocean)" },
523
- 325: { name: "Consolidation of Goods In Container" },
524
- 326: { name: "Consignment Summary List" },
525
- 350: { name: "U.S. Customs Status Information" },
526
- 352: { name: "U.S. Customs Carrier General Order Status" },
527
- 353: { name: "U.S. Customs Events Advisory Details" },
528
- 354: { name: "U.S. Customs Automated Manifest Archive Status" },
529
- 355: { name: "U.S. Customs Acceptance/Rejection" },
530
- 356: { name: "U.S. Customs Permit to Transfer Request" },
531
- 357: { name: "U.S. Customs In-Bond Information" },
532
- 358: { name: "U.S. Customs Consist Information" },
533
- 361: { name: "Carrier Interchange Agreement (Ocean)" },
534
- 362: { name: "Cargo Insurance Advice of Shipment" },
535
- 404: { name: "Rail Carrier Shipment Information" },
536
- 410: { name: "Rail Carrier Freight Details and Invoice" },
537
- 411: { name: "Rail Carrier Freight Details and Invoice Summary" },
538
- 412: { name: "Trailer or Container Repair Billing" },
539
- 414: { name: "Rail Carhire Settlements" },
540
- 417: { name: "Rail Carrier Waybill Interchange" },
541
- 418: { name: "Rail Advance Interchange Consist" },
542
- 419: { name: "Advance Car Disposition" },
543
- 420: { name: "Car Handling Information" },
544
- 421: { name: "Estimated Time of Arrival and Car Scheduling" },
412
+ 100: { name: 'Insurance Plan Description' },
413
+ 101: { name: 'Name and Address Lists' },
414
+ 104: { name: 'Air Shipment Information' },
415
+ 106: { name: 'Motor Carrier Rate Proposal' },
416
+ 107: { name: 'Request for Motor Carrier Rate Proposal' },
417
+ 108: { name: 'Response to a Motor Carrier Rate Proposal' },
418
+ 109: { name: 'Vessel Content Details' },
419
+ 110: { name: 'Air Freight Details and Invoice' },
420
+ 112: { name: 'Property Damage Report' },
421
+ 120: { name: 'Vehicle Shipping Order' },
422
+ 121: { name: 'Vehicle Service' },
423
+ 124: { name: 'Vehicle Damage' },
424
+ 125: { name: 'Multilevel Railcar Load Details' },
425
+ 126: { name: 'Vehicle Application Advice' },
426
+ 127: { name: 'Vehicle Baying Order' },
427
+ 128: { name: 'Dealer Information' },
428
+ 129: { name: 'Vehicle Carrier Rate Update' },
429
+ 130: { name: 'Student Educational Record (Transcript)' },
430
+ 131: { name: 'Student Educational Record (Transcript) Acknowledgment' },
431
+ 135: { name: 'Student Loan Application' },
432
+ 138: { name: 'Testing Results Request and Report' },
433
+ 139: { name: 'Student Loan Guarantee Result' },
434
+ 140: { name: 'Product Registration' },
435
+ 141: { name: 'Product Service Claim Response' },
436
+ 142: { name: 'Product Service Claim' },
437
+ 143: { name: 'Product Service Notification' },
438
+ 144: { name: 'Student Loan Transfer and Status Verification' },
439
+ 146: { name: 'Request for Student Educational Record (Transcript)' },
440
+ 147: { name: 'Response to Request for Student Educational Record (Transcript)' },
441
+ 148: { name: 'Report of Injury, Illness or Incident' },
442
+ 149: { name: 'Notice of Tax Adjustment or Assessment' },
443
+ 150: { name: 'Tax Rate Notification' },
444
+ 151: { name: 'Electronic Filing of Tax Return Data Acknowledgment' },
445
+ 152: { name: 'Statistical Government Information' },
446
+ 153: { name: 'Unemployment Insurance Tax Claim or Charge Information' },
447
+ 154: { name: 'Uniform Commercial Code Filing' },
448
+ 155: { name: 'Business Credit Report' },
449
+ 157: { name: 'Notice of Power of Attorney' },
450
+ 159: { name: 'Motion Picture Booking Confirmation' },
451
+ 160: { name: 'Transportation Automatic Equipment Identification' },
452
+ 161: { name: 'Train Sheet' },
453
+ 169: { name: 'Transportation Appointment Schedule Information' },
454
+ 170: { name: 'Revenue Receipts Statement' },
455
+ 175: { name: 'Court and Law Enforcement Notice' },
456
+ 176: { name: 'Court Submission TYPE' },
457
+ 180: { name: 'Return Merchandise Authorization and Notification' },
458
+ 185: { name: 'Royalty Regulatory Report' },
459
+ 186: { name: 'Insurance Underwriting Requirements Reporting' },
460
+ 188: { name: 'Educational Course Inventory' },
461
+ 189: { name: 'Application for Admission to Educational Institutions' },
462
+ 190: { name: 'Student Enrollment Verification' },
463
+ 191: { name: 'Student Loan Pre-Claims and Claims' },
464
+ 194: { name: 'Grant or Assistance Application' },
465
+ 195: { name: 'Federal Communications Commission (FCC) License Application' },
466
+ 196: { name: 'Contractor Cost Data Reporting' },
467
+ 197: { name: 'Real Estate Title Evidence' },
468
+ 198: { name: 'Loan Verification Information' },
469
+ 199: { name: 'Real Estate Settlement Information' },
470
+ 200: { name: 'Mortgage Credit Report' },
471
+ 201: { name: 'Residential Loan Application' },
472
+ 202: { name: 'Secondary Mortgage Market Loan Delivery' },
473
+ 203: { name: 'Secondary Mortgage Market Investor Report' },
474
+ 204: { name: 'Motor Carrier Load Tender' },
475
+ 205: { name: 'Mortgage Note' },
476
+ 206: { name: 'Real Estate Inspection' },
477
+ 210: { name: 'Motor Carrier Freight Details and Invoice' },
478
+ 211: { name: 'Motor Carrier Bill of Lading', edifactId: 'IFTMCE' },
479
+ 212: { name: 'Motor Carrier Delivery Trailer Manifest' },
480
+ 213: { name: 'Motor Carrier Shipment Status Inquiry' },
481
+ 214: { name: 'Transportation Carrier Shipment Status Message' },
482
+ 215: { name: 'Motor Carrier Pick-up Manifest' },
483
+ 216: { name: 'Motor Carrier Shipment Pick-up Notification' },
484
+ 217: { name: 'Motor Carrier Loading and Route Guide' },
485
+ 218: { name: 'Motor Carrier Tariff Information' },
486
+ 219: { name: 'Logistics Service Request' },
487
+ 220: { name: 'Logistics Service Response' },
488
+ 222: { name: 'Cartage Work Assignment' },
489
+ 223: { name: 'Consolidators Freight Bill and Invoice' },
490
+ 224: { name: 'Motor Carrier Summary Freight Bill Manifest' },
491
+ 225: { name: 'Response to a Cartage Work Assignment' },
492
+ 240: { name: 'Motor Carrier Package Status' },
493
+ 242: { name: 'Data Status Tracking' },
494
+ 244: { name: 'Product Source Information' },
495
+ 248: { name: 'Account Assignment/Inquiry and Service/Status' },
496
+ 249: { name: 'Animal Toxicological Data' },
497
+ 250: { name: 'Purchase Order Shipment Management Document' },
498
+ 251: { name: 'Pricing Support' },
499
+ 252: { name: 'Insurance Producer Administration' },
500
+ 255: { name: 'Underwriting Information Services' },
501
+ 256: { name: 'Periodic Compensation' },
502
+ 260: { name: 'Application for Mortgage Insurance Benefits' },
503
+ 261: { name: 'Real Estate Information Request' },
504
+ 262: { name: 'Real Estate Information Report' },
505
+ 263: { name: 'Residential Mortgage Insurance Application Response' },
506
+ 264: { name: 'Mortgage Loan Default Status' },
507
+ 265: { name: 'Real Estate Title Insurance Services Order' },
508
+ 266: { name: 'Mortgage or Property Record Change Notification' },
509
+ 267: { name: 'Individual Life, Annuity and Disability Application' },
510
+ 268: { name: 'Annuity Activity' },
511
+ 270: { name: 'Eligibility, Coverage or Benefit Inquiry' },
512
+ 271: { name: 'Eligibility, Coverage or Benefit Information' },
513
+ 272: { name: 'Property and Casualty Loss Notification' },
514
+ 273: { name: 'Insurance/Annuity Application Status' },
515
+ 274: { name: 'Health Care Provider Information' },
516
+ 275: { name: 'Patient Information' },
517
+ 276: { name: 'Health Care Claim Status Request' },
518
+ 277: { name: 'Health Care Claim Status Notification' },
519
+ 278: { name: 'Health Care Services Insurance/Benefit Review Information' },
520
+ 280: { name: 'Voter Registration Information' },
521
+ 285: { name: 'Commercial Vehicle Safety and Credentials Information Exchange' },
522
+ 286: { name: 'Commercial Vehicle Credentials' },
523
+ 288: { name: 'Wage Determination' },
524
+ 290: { name: 'Cooperative Advertising Agreements' },
525
+ 300: { name: 'Reservation (Booking Request) (Ocean)' },
526
+ 301: { name: 'Confirmation (Ocean)', edifactId: 'IFTMBC' },
527
+ 303: { name: 'Booking Cancellation (Ocean)' },
528
+ 304: { name: 'Shipping Instructions' },
529
+ 309: { name: 'U.S. Customs Manifest' },
530
+ 310: { name: 'Freight Receipt and Invoice (Ocean)' },
531
+ 311: { name: 'Canadian Customs Information' },
532
+ 312: { name: 'Arrival Notice (Ocean)' },
533
+ 313: { name: 'Shipment Status Inquiry (Ocean)' },
534
+ 315: { name: 'Status Details (Ocean)' },
535
+ 317: { name: 'Delivery/Pickup Order' },
536
+ 319: { name: 'Terminal Information' },
537
+ 322: { name: 'Terminal Operations and Intermodal Ramp Activity' },
538
+ 323: { name: 'Vessel Schedule and Itinerary (Ocean)' },
539
+ 324: { name: 'Vessel Stow Plan (Ocean)' },
540
+ 325: { name: 'Consolidation of Goods In Container' },
541
+ 326: { name: 'Consignment Summary List' },
542
+ 350: { name: 'U.S. Customs Status Information' },
543
+ 352: { name: 'U.S. Customs Carrier General Order Status' },
544
+ 353: { name: 'U.S. Customs Events Advisory Details' },
545
+ 354: { name: 'U.S. Customs Automated Manifest Archive Status' },
546
+ 355: { name: 'U.S. Customs Acceptance/Rejection' },
547
+ 356: { name: 'U.S. Customs Permit to Transfer Request' },
548
+ 357: { name: 'U.S. Customs In-Bond Information' },
549
+ 358: { name: 'U.S. Customs Consist Information' },
550
+ 361: { name: 'Carrier Interchange Agreement (Ocean)' },
551
+ 362: { name: 'Cargo Insurance Advice of Shipment' },
552
+ 404: { name: 'Rail Carrier Shipment Information' },
553
+ 410: { name: 'Rail Carrier Freight Details and Invoice' },
554
+ 411: { name: 'Rail Carrier Freight Details and Invoice Summary' },
555
+ 412: { name: 'Trailer or Container Repair Billing' },
556
+ 414: { name: 'Rail Carhire Settlements' },
557
+ 417: { name: 'Rail Carrier Waybill Interchange' },
558
+ 418: { name: 'Rail Advance Interchange Consist' },
559
+ 419: { name: 'Advance Car Disposition' },
560
+ 420: { name: 'Car Handling Information' },
561
+ 421: { name: 'Estimated Time of Arrival and Car Scheduling' },
545
562
  422: { name: "Shipper's Car Order" },
546
- 423: { name: "Rail Industrial Switch List" },
547
- 424: { name: "Rail Carrier Services Settlement" },
548
- 425: { name: "Rail Waybill Request" },
549
- 426: { name: "Rail Revenue Waybill" },
550
- 427: { name: "Rail Waybill Response" },
551
- 429: { name: "Railroad Retirement Activity" },
552
- 431: { name: "Railroad Station Master File" },
553
- 432: { name: "Rail Deprescription" },
554
- 433: { name: "Railroad Reciprocal Switch File" },
555
- 434: { name: "Railroad Mark Register Update Activity" },
556
- 435: { name: "Standard Transportation Commodity Code (STCC) Master" },
557
- 436: { name: "Locomotive Information" },
558
- 437: { name: "Railroad Junctions and Interchanges Activity" },
559
- 440: { name: "Shipment Weights" },
560
- 451: { name: "Railroad Event Report" },
561
- 452: { name: "Railroad Problem Log Inquiry or Advice" },
562
- 453: { name: "Railroad Service Commitment Advice" },
563
- 455: { name: "Railroad Parameter Trace Registration" },
564
- 456: { name: "Railroad Equipment Inquiry or Advice" },
565
- 460: { name: "Railroad Price Distribution Request or Response" },
566
- 463: { name: "Rail Rate Reply" },
567
- 466: { name: "Rate Request" },
568
- 468: { name: "Rate Docket Journal Log" },
569
- 470: { name: "Railroad Clearance" },
570
- 475: { name: "Rail Route File Maintenance" },
571
- 485: { name: "Ratemaking Action" },
572
- 486: { name: "Rate Docket Expiration" },
573
- 490: { name: "Rate Group Definition" },
574
- 492: { name: "Miscellaneous Rates" },
575
- 494: { name: "Rail Scale Rates" },
576
- 500: { name: "Medical Event Reporting" },
577
- 501: { name: "Vendor Performance Review" },
578
- 503: { name: "Pricing History" },
579
- 504: { name: "Clauses and Provisions" },
580
- 511: { name: "Requisition" },
581
- 517: { name: "Material Obligation Validation" },
582
- 521: { name: "Income or Asset Offset" },
583
- 527: { name: "Material Due-In and Receipt" },
584
- 536: { name: "Logistics Reassignment" },
585
- 540: { name: "Notice of Employment Status" },
586
- 561: { name: "Contract Abstract" },
587
- 567: { name: "Contract Completion Status" },
588
- 568: { name: "Contract Payment Management Report" },
589
- 601: { name: "U.S. Customs Export Shipment Information" },
590
- 602: { name: "Transportation Services Tender" },
591
- 620: { name: "Excavation Communication" },
592
- 625: { name: "Well Information" },
593
- 650: { name: "Maintenance Service Order" },
594
- 715: { name: "Intermodal Group Loading Plan" },
595
- 805: { name: "Contract Pricing Proposal" },
596
- 806: { name: "Project Schedule Reporting" },
597
- 810: { name: "Invoice", edifactId: "INVOIC" },
598
- 811: { name: "Consolidated Service Invoice/Statement" },
599
- 812: { name: "Credit/Debit Adjustment" },
600
- 813: { name: "Electronic Filing of Tax Return Data" },
601
- 814: { name: "General Request, Response or Confirmation" },
602
- 815: { name: "Cryptographic Service Message" },
603
- 816: { name: "Organizational Relationships" },
604
- 818: { name: "Commission Sales Report" },
605
- 819: { name: "Operating Expense Statement" },
606
- 820: { name: "Payment Order/Remittance Advice", edifactId: "REMADV" },
607
- 821: { name: "Financial Information Reporting" },
608
- 822: { name: "Account Analysis" },
609
- 823: { name: "Lockbox" },
610
- 824: { name: "Application Advice", edifactId: "APERAK" },
611
- 826: { name: "Tax Information Exchange" },
612
- 827: { name: "Financial Return Notice" },
613
- 828: { name: "Debit Authorization" },
614
- 829: { name: "Payment Cancellation Request" },
615
- 830: { name: "Planning Schedule with Release Capability", edifactId: "DELFOR" },
616
- 831: { name: "Application Control Totals" },
617
- 832: { name: "Price/Sales Catalog", edifactId: "PRICAT" },
618
- 833: { name: "Mortgage Credit Report Order" },
619
- 834: { name: "Benefit Enrollment and Maintenance" },
620
- 835: { name: "Health Care Claim Payment/Advice" },
621
- 836: { name: "Procurement Notices" },
622
- 837: { name: "Health Care Claim" },
623
- 838: { name: "Trading Partner Profile" },
624
- 839: { name: "Project Cost Reporting" },
625
- 840: { name: "Request for Quotation", edifactId: "REQUOTE" },
626
- 841: { name: "Specifications/Technical Information" },
627
- 842: { name: "Nonconformance Report" },
628
- 843: { name: "Response to Request for Quotation", edifactId: "QUOTES" },
629
- 844: { name: "Product Transfer Account Adjustment", edifactId: "SSDCLM" },
630
- 845: { name: "Price Authorization Acknowledgment/Status", edifactId: "ATHSTS" },
631
- 846: { name: "Inventory Inquiry/Advice", edifactId: "INVRPT" },
632
- 847: { name: "Material Claim" },
633
- 848: { name: "Material Safety Data Sheet" },
634
- 849: { name: "Response to Product Transfer Account Adjustment" },
635
- 850: { name: "Purchase Order", edifactId: "ORDERS" },
636
- 851: { name: "Asset Schedule" },
637
- 852: { name: "Product Activity Data", edifactId: "SLSRPT" },
638
- 853: { name: "Routing and Carrier Instruction" },
639
- 854: { name: "Shipment Delivery Discrepancy Information" },
640
- 855: { name: "Purchase Order Acknowledgment", edifactId: "ORDRSP" },
641
- 856: { name: "Advance Ship Notice/Manifest", edifactId: "DESADV" },
642
- 857: { name: "Shipment and Billing Notice" },
643
- 858: { name: "Shipment Information" },
644
- 859: { name: "Freight Invoice" },
645
- 860: { name: "Purchase Order Change", edifactId: "ORDCHG" },
646
- 861: { name: "Receiving Advice/Acceptance Certificate", edifactId: "RECADV" },
647
- 862: { name: "Shipping Schedule", edifactId: "DELJIT" },
648
- 863: { name: "Report of Test Results" },
649
- 864: { name: "Text Message" },
650
- 865: { name: "Purchase Order Change", edifactId: "ORDRSP" },
651
- 866: { name: "Production Sequence" },
652
- 867: { name: "Product Transfer and Resale Report", edifactId: "SLSRPT" },
653
- 868: { name: "Electronic Form Structure" },
654
- 869: { name: "Order Status Inquiry", edifactId: "ORSSTA" },
655
- 870: { name: "Order Status Report", edifactId: "ORDREP" },
656
- 871: { name: "Component Parts Content" },
657
- 872: { name: "Residential Mortgage Insurance Application" },
658
- 875: { name: "Grocery Products Purchase Order" },
659
- 876: { name: "Grocery Products Purchase Order Change" },
660
- 877: { name: "Manufacturer Coupon Family Code Structure" },
661
- 878: { name: "Product Authorization/De-authorization" },
662
- 879: { name: "Price Information" },
663
- 880: { name: "Grocery Products Invoice" },
664
- 881: { name: "Manufacturer Coupon Redemption Detail" },
665
- 882: { name: "Direct Store Delivery Summary Information" },
666
- 883: { name: "Market Development Fund Allocation" },
667
- 884: { name: "Market Development Fund Settlement" },
668
- 885: { name: "Retail Account Characteristics" },
669
- 886: { name: "Customer Call Reporting" },
670
- 887: { name: "Coupon Notification" },
671
- 888: { name: "Item Maintenance" },
672
- 889: { name: "Promotion Announcement" },
673
- 891: { name: "Deduction Research Report" },
674
- 893: { name: "Item Information Request" },
675
- 894: { name: "Delivery/Return Base Record" },
676
- 895: { name: "Delivery/Return Acknowledgment or Adjustment" },
677
- 896: { name: "Product Dimension Maintenance" },
678
- 920: { name: "Loss or Damage Claim - General Commodities" },
679
- 924: { name: "Loss or Damage Claim - Motor Vehicle" },
680
- 925: { name: "Claim Tracer" },
681
- 926: { name: "Claim Status Report and Tracer Reply" },
682
- 928: { name: "Automotive Inspection Detail" },
683
- 940: { name: "Warehouse Shipping Order" },
684
- 943: { name: "Warehouse Stock Transfer Shipment Advice" },
685
- 944: { name: "Warehouse Stock Transfer Receipt Advice" },
686
- 945: { name: "Warehouse Shipping Advice" },
687
- 947: { name: "Warehouse Inventory Adjustment Advice" },
688
- 980: { name: "Functional Group Totals" },
689
- 990: { name: "Response to a Load Tender" },
690
- 996: { name: "File Transfer" },
691
- 997: { name: "Functional Acknowledgment", edifactId: "CONTROL" },
692
- 998: { name: "Set Cancellation" },
693
- 999: { name: "Implementation Acknowledgment" },
563
+ 423: { name: 'Rail Industrial Switch List' },
564
+ 424: { name: 'Rail Carrier Services Settlement' },
565
+ 425: { name: 'Rail Waybill Request' },
566
+ 426: { name: 'Rail Revenue Waybill' },
567
+ 427: { name: 'Rail Waybill Response' },
568
+ 429: { name: 'Railroad Retirement Activity' },
569
+ 431: { name: 'Railroad Station Master File' },
570
+ 432: { name: 'Rail Deprescription' },
571
+ 433: { name: 'Railroad Reciprocal Switch File' },
572
+ 434: { name: 'Railroad Mark Register Update Activity' },
573
+ 435: { name: 'Standard Transportation Commodity Code (STCC) Master' },
574
+ 436: { name: 'Locomotive Information' },
575
+ 437: { name: 'Railroad Junctions and Interchanges Activity' },
576
+ 440: { name: 'Shipment Weights' },
577
+ 451: { name: 'Railroad Event Report' },
578
+ 452: { name: 'Railroad Problem Log Inquiry or Advice' },
579
+ 453: { name: 'Railroad Service Commitment Advice' },
580
+ 455: { name: 'Railroad Parameter Trace Registration' },
581
+ 456: { name: 'Railroad Equipment Inquiry or Advice' },
582
+ 460: { name: 'Railroad Price Distribution Request or Response' },
583
+ 463: { name: 'Rail Rate Reply' },
584
+ 466: { name: 'Rate Request' },
585
+ 468: { name: 'Rate Docket Journal Log' },
586
+ 470: { name: 'Railroad Clearance' },
587
+ 475: { name: 'Rail Route File Maintenance' },
588
+ 485: { name: 'Ratemaking Action' },
589
+ 486: { name: 'Rate Docket Expiration' },
590
+ 490: { name: 'Rate Group Definition' },
591
+ 492: { name: 'Miscellaneous Rates' },
592
+ 494: { name: 'Rail Scale Rates' },
593
+ 500: { name: 'Medical Event Reporting' },
594
+ 501: { name: 'Vendor Performance Review' },
595
+ 503: { name: 'Pricing History' },
596
+ 504: { name: 'Clauses and Provisions' },
597
+ 511: { name: 'Requisition' },
598
+ 517: { name: 'Material Obligation Validation' },
599
+ 521: { name: 'Income or Asset Offset' },
600
+ 527: { name: 'Material Due-In and Receipt' },
601
+ 536: { name: 'Logistics Reassignment' },
602
+ 540: { name: 'Notice of Employment Status' },
603
+ 561: { name: 'Contract Abstract' },
604
+ 567: { name: 'Contract Completion Status' },
605
+ 568: { name: 'Contract Payment Management Report' },
606
+ 601: { name: 'U.S. Customs Export Shipment Information' },
607
+ 602: { name: 'Transportation Services Tender' },
608
+ 620: { name: 'Excavation Communication' },
609
+ 625: { name: 'Well Information' },
610
+ 650: { name: 'Maintenance Service Order' },
611
+ 715: { name: 'Intermodal Group Loading Plan' },
612
+ 805: { name: 'Contract Pricing Proposal' },
613
+ 806: { name: 'Project Schedule Reporting' },
614
+ 810: { name: 'Invoice', edifactId: 'INVOIC' },
615
+ 811: { name: 'Consolidated Service Invoice/Statement' },
616
+ 812: { name: 'Credit/Debit Adjustment' },
617
+ 813: { name: 'Electronic Filing of Tax Return Data' },
618
+ 814: { name: 'General Request, Response or Confirmation' },
619
+ 815: { name: 'Cryptographic Service Message' },
620
+ 816: { name: 'Organizational Relationships' },
621
+ 818: { name: 'Commission Sales Report' },
622
+ 819: { name: 'Operating Expense Statement' },
623
+ 820: { name: 'Payment Order/Remittance Advice', edifactId: 'REMADV' },
624
+ 821: { name: 'Financial Information Reporting' },
625
+ 822: { name: 'Account Analysis' },
626
+ 823: { name: 'Lockbox' },
627
+ 824: { name: 'Application Advice', edifactId: 'APERAK' },
628
+ 826: { name: 'Tax Information Exchange' },
629
+ 827: { name: 'Financial Return Notice' },
630
+ 828: { name: 'Debit Authorization' },
631
+ 829: { name: 'Payment Cancellation Request' },
632
+ 830: { name: 'Planning Schedule with Release Capability', edifactId: 'DELFOR' },
633
+ 831: { name: 'Application Control Totals' },
634
+ 832: { name: 'Price/Sales Catalog', edifactId: 'PRICAT' },
635
+ 833: { name: 'Mortgage Credit Report Order' },
636
+ 834: { name: 'Benefit Enrollment and Maintenance' },
637
+ 835: { name: 'Health Care Claim Payment/Advice' },
638
+ 836: { name: 'Procurement Notices' },
639
+ 837: { name: 'Health Care Claim' },
640
+ 838: { name: 'Trading Partner Profile' },
641
+ 839: { name: 'Project Cost Reporting' },
642
+ 840: { name: 'Request for Quotation', edifactId: 'REQUOTE' },
643
+ 841: { name: 'Specifications/Technical Information' },
644
+ 842: { name: 'Nonconformance Report' },
645
+ 843: { name: 'Response to Request for Quotation', edifactId: 'QUOTES' },
646
+ 844: { name: 'Product Transfer Account Adjustment', edifactId: 'SSDCLM' },
647
+ 845: { name: 'Price Authorization Acknowledgment/Status', edifactId: 'ATHSTS' },
648
+ 846: { name: 'Inventory Inquiry/Advice', edifactId: 'INVRPT' },
649
+ 847: { name: 'Material Claim' },
650
+ 848: { name: 'Material Safety Data Sheet' },
651
+ 849: { name: 'Response to Product Transfer Account Adjustment' },
652
+ 850: { name: 'Purchase Order', edifactId: 'ORDERS' },
653
+ 851: { name: 'Asset Schedule' },
654
+ 852: { name: 'Product Activity Data', edifactId: 'SLSRPT' },
655
+ 853: { name: 'Routing and Carrier Instruction' },
656
+ 854: { name: 'Shipment Delivery Discrepancy Information' },
657
+ 855: { name: 'Purchase Order Acknowledgment', edifactId: 'ORDRSP' },
658
+ 856: { name: 'Advance Ship Notice/Manifest', edifactId: 'DESADV' },
659
+ 857: { name: 'Shipment and Billing Notice' },
660
+ 858: { name: 'Shipment Information' },
661
+ 859: { name: 'Freight Invoice' },
662
+ 860: { name: 'Purchase Order Change', edifactId: 'ORDCHG' },
663
+ 861: { name: 'Receiving Advice/Acceptance Certificate', edifactId: 'RECADV' },
664
+ 862: { name: 'Shipping Schedule', edifactId: 'DELJIT' },
665
+ 863: { name: 'Report of Test Results' },
666
+ 864: { name: 'Text Message' },
667
+ 865: { name: 'Purchase Order Change', edifactId: 'ORDRSP' },
668
+ 866: { name: 'Production Sequence' },
669
+ 867: { name: 'Product Transfer and Resale Report', edifactId: 'SLSRPT' },
670
+ 868: { name: 'Electronic Form Structure' },
671
+ 869: { name: 'Order Status Inquiry', edifactId: 'ORSSTA' },
672
+ 870: { name: 'Order Status Report', edifactId: 'ORDREP' },
673
+ 871: { name: 'Component Parts Content' },
674
+ 872: { name: 'Residential Mortgage Insurance Application' },
675
+ 875: { name: 'Grocery Products Purchase Order' },
676
+ 876: { name: 'Grocery Products Purchase Order Change' },
677
+ 877: { name: 'Manufacturer Coupon Family Code Structure' },
678
+ 878: { name: 'Product Authorization/De-authorization' },
679
+ 879: { name: 'Price Information' },
680
+ 880: { name: 'Grocery Products Invoice' },
681
+ 881: { name: 'Manufacturer Coupon Redemption Detail' },
682
+ 882: { name: 'Direct Store Delivery Summary Information' },
683
+ 883: { name: 'Market Development Fund Allocation' },
684
+ 884: { name: 'Market Development Fund Settlement' },
685
+ 885: { name: 'Retail Account Characteristics' },
686
+ 886: { name: 'Customer Call Reporting' },
687
+ 887: { name: 'Coupon Notification' },
688
+ 888: { name: 'Item Maintenance' },
689
+ 889: { name: 'Promotion Announcement' },
690
+ 891: { name: 'Deduction Research Report' },
691
+ 893: { name: 'Item Information Request' },
692
+ 894: { name: 'Delivery/Return Base Record' },
693
+ 895: { name: 'Delivery/Return Acknowledgment or Adjustment' },
694
+ 896: { name: 'Product Dimension Maintenance' },
695
+ 920: { name: 'Loss or Damage Claim - General Commodities' },
696
+ 924: { name: 'Loss or Damage Claim - Motor Vehicle' },
697
+ 925: { name: 'Claim Tracer' },
698
+ 926: { name: 'Claim Status Report and Tracer Reply' },
699
+ 928: { name: 'Automotive Inspection Detail' },
700
+ 940: { name: 'Warehouse Shipping Order' },
701
+ 943: { name: 'Warehouse Stock Transfer Shipment Advice' },
702
+ 944: { name: 'Warehouse Stock Transfer Receipt Advice' },
703
+ 945: { name: 'Warehouse Shipping Advice' },
704
+ 947: { name: 'Warehouse Inventory Adjustment Advice' },
705
+ 980: { name: 'Functional Group Totals' },
706
+ 990: { name: 'Response to a Load Tender' },
707
+ 996: { name: 'File Transfer' },
708
+ 997: { name: 'Functional Acknowledgment', edifactId: 'CONTROL' },
709
+ 998: { name: 'Set Cancellation' },
710
+ 999: { name: 'Implementation Acknowledgment' },
694
711
  });
695
712
 
696
713
  /** A property decorated with this will have any value assigned
@@ -705,7 +722,7 @@ function castToNumber() {
705
722
  enumerable: false,
706
723
  configurable: true,
707
724
  writable: true,
708
- value: undefined
725
+ value: undefined,
709
726
  },
710
727
  _a[key] = {
711
728
  enumerable: true,
@@ -715,7 +732,7 @@ function castToNumber() {
715
732
  },
716
733
  set: function (newValue) {
717
734
  this[internalKey] = +newValue;
718
- }
735
+ },
719
736
  },
720
737
  _a));
721
738
  };
@@ -726,19 +743,19 @@ function castToNumber() {
726
743
  */
727
744
  function debounced(ms) {
728
745
  return function (target, propertyKey, descriptor) {
729
- var originalDescriptorCopy = Object.assign({}, descriptor);
730
- descriptor.get = function () {
746
+ var originalDescriptorCopy = __assign({}, descriptor);
747
+ originalDescriptorCopy.get = function get() {
731
748
  /* Make a new copy each time; if you don't then every instance after the first
732
749
  * one of the class containing the decorated method will break. */
733
- var newDescriptorWithDebounced = Object.assign({}, originalDescriptorCopy);
750
+ var newDescriptorWithDebounced = __assign({}, originalDescriptorCopy);
734
751
  newDescriptorWithDebounced.value = debounce(originalDescriptorCopy.value, ms, this);
735
752
  Object.defineProperty(this, propertyKey, newDescriptorWithDebounced);
736
753
  return newDescriptorWithDebounced.value;
737
754
  };
738
- descriptor.configurable = true;
739
- delete descriptor.writable;
740
- delete descriptor.value;
741
- return descriptor;
755
+ originalDescriptorCopy.configurable = true;
756
+ delete originalDescriptorCopy.writable;
757
+ delete originalDescriptorCopy.value;
758
+ return originalDescriptorCopy;
742
759
  };
743
760
  }
744
761
 
@@ -746,19 +763,19 @@ function debounced(ms) {
746
763
  * Decorator that applies `lockToAnimationFrames`
747
764
  */
748
765
  function lockedToAnimationFrames(target, propertyKey, descriptor) {
749
- var originalDescriptorCopy = Object.assign({}, descriptor);
750
- descriptor.get = function () {
766
+ var originalDescriptorCopy = __assign({}, descriptor);
767
+ originalDescriptorCopy.get = function get() {
751
768
  /* Make a new copy each time; if you don't then every instance after the first
752
- * one of the class containing the decorated method will break. */
753
- var newDescriptor = Object.assign({}, originalDescriptorCopy);
769
+ * one of the class containing the decorated method will break. */
770
+ var newDescriptor = __assign({}, originalDescriptorCopy);
754
771
  newDescriptor.value = lockToAnimationFrames(originalDescriptorCopy.value, this);
755
772
  Object.defineProperty(this, propertyKey, newDescriptor);
756
773
  return newDescriptor.value;
757
774
  };
758
- descriptor.configurable = true;
759
- delete descriptor.writable;
760
- delete descriptor.value;
761
- return descriptor;
775
+ originalDescriptorCopy.configurable = true;
776
+ delete originalDescriptorCopy.writable;
777
+ delete originalDescriptorCopy.value;
778
+ return originalDescriptorCopy;
762
779
  }
763
780
 
764
781
  /** This would be simpler to understand as a factory that returns a decorator function,
@@ -769,25 +786,25 @@ function lockedToAnimationFrames(target, propertyKey, descriptor) {
769
786
  * needs to do.
770
787
  */
771
788
  function simpleMetadataDecoratorApplicator(metadata, defaults, target, key, descriptor) {
772
- descriptor = descriptor || Object.getOwnPropertyDescriptor(target, key);
773
- var getter = descriptor.get;
774
- var value = descriptor.value;
775
- descriptor.get = function get() {
789
+ var updatedDescriptor = descriptor || Object.getOwnPropertyDescriptor(target, key);
790
+ var getter = updatedDescriptor.get;
791
+ var value = updatedDescriptor.value;
792
+ updatedDescriptor.get = function get() {
776
793
  var e_1, _a;
777
794
  var self = this;
778
795
  var fn = value || getter.call(this);
779
796
  var boundFn = fn.bind(this);
780
- metadata = Object.assign({}, defaults, metadata);
797
+ var updatedMetadata = __assign(__assign({}, defaults), metadata);
781
798
  var _loop_1 = function (prop) {
782
- if (typeof metadata[prop] === "function") {
799
+ if (typeof metadata[prop] === 'function') {
783
800
  Object.defineProperty(boundFn, prop, {
784
801
  get: function () {
785
- return metadata[prop](self);
786
- }
802
+ return updatedMetadata[prop](self);
803
+ },
787
804
  });
788
805
  }
789
806
  else {
790
- boundFn[prop] = metadata[prop];
807
+ boundFn[prop] = updatedMetadata[prop];
791
808
  }
792
809
  };
793
810
  try {
@@ -806,32 +823,32 @@ function simpleMetadataDecoratorApplicator(metadata, defaults, target, key, desc
806
823
  Object.defineProperty(this, key, {
807
824
  writable: true,
808
825
  configurable: true,
809
- enumerable: descriptor.enumerable,
810
- value: boundFn
826
+ enumerable: updatedDescriptor.enumerable,
827
+ value: boundFn,
811
828
  });
812
829
  return boundFn;
813
830
  };
814
- delete descriptor.value;
815
- delete descriptor.writable;
816
- return descriptor;
831
+ delete updatedDescriptor.value;
832
+ delete updatedDescriptor.writable;
833
+ return updatedDescriptor;
817
834
  }
818
835
 
819
836
  /** Method decorator that configures the method to always run the tick after it's invoked */
820
837
  function tickDelay(target, propertyKey, descriptor) {
821
- var originalDescriptorCopy = Object.assign({}, descriptor);
822
- descriptor.get = function () {
823
- var _this = this;
838
+ var originalDescriptorCopy = __assign({}, descriptor);
839
+ originalDescriptorCopy.get = function get() {
824
840
  /* Make a new copy each time; if you don't then every instance after the first
825
- * one of the class containing the decorated method will break. */
826
- var newDescriptor = Object.assign({}, originalDescriptorCopy);
827
- newDescriptor.value = function () { return setTimeout(originalDescriptorCopy.value.bind(_this), 0); };
841
+ * one of the class containing the decorated method will break. */
842
+ var newDescriptor = __assign({}, originalDescriptorCopy);
843
+ var boundFn = originalDescriptorCopy.value.bind(this);
844
+ newDescriptor.value = function () { return setTimeout(boundFn, 0); };
828
845
  Object.defineProperty(this, propertyKey, newDescriptor);
829
846
  return newDescriptor.value;
830
847
  };
831
- descriptor.configurable = true;
832
- delete descriptor.writable;
833
- delete descriptor.value;
834
- return descriptor;
848
+ originalDescriptorCopy.configurable = true;
849
+ delete originalDescriptorCopy.writable;
850
+ delete originalDescriptorCopy.value;
851
+ return originalDescriptorCopy;
835
852
  }
836
853
 
837
854
  /** Constrains a number to the given range. If the number is below the
@@ -857,11 +874,15 @@ function constrain(n, range) {
857
874
  */
858
875
  function decimalRound(num, decimalPlaces) {
859
876
  if (decimalPlaces === void 0) { decimalPlaces = 0; }
860
- var integralAndFractionalSplit = String(num).split("."), allDecimalPlaces = integralAndFractionalSplit.length > 1 ? integralAndFractionalSplit[1].length : 0;
861
- for (var i = allDecimalPlaces - 1; i >= decimalPlaces; --i) {
862
- num = Number(Math.round(Number(num + "e" + i)) + "e-" + i);
877
+ var integralAndFractionalSplit = String(num).split('.');
878
+ var allDecimalPlaces = integralAndFractionalSplit.length > 1
879
+ ? integralAndFractionalSplit[1].length
880
+ : 0;
881
+ var roundedNum = num;
882
+ for (var i = allDecimalPlaces - 1; i >= decimalPlaces; i -= 1) {
883
+ roundedNum = Number(Math.round(Number(roundedNum + "e" + i)) + "e-" + i);
863
884
  }
864
- return num;
885
+ return roundedNum;
865
886
  }
866
887
 
867
888
  /** Converts a file size in bytes to a human-friendly string. For example,
@@ -870,15 +891,15 @@ function decimalRound(num, decimalPlaces) {
870
891
  function toFileSizeString(n, precision) {
871
892
  if (precision === void 0) { precision = 2; }
872
893
  if (n > Number.MAX_SAFE_INTEGER) {
873
- throw new Error("Number is greater than MAX_SAFE_INTEGER; " +
874
- "toFileSizeString does not support orders of magnitude " +
875
- "higher than petabytes for this reason until BigInt " +
876
- "achieves broad browser support.");
894
+ throw new Error('Number is greater than MAX_SAFE_INTEGER; '
895
+ + 'toFileSizeString does not support orders of magnitude '
896
+ + 'higher than petabytes for this reason until BigInt '
897
+ + 'achieves broad browser support.');
877
898
  }
878
899
  var magnitude = Math.min(Math.floor(Math.log(n) / Math.log(1024)), 5);
879
- var unit = ["B", "KB", "MB", "GB", "TB", "PB"][magnitude];
900
+ var unit = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'][magnitude];
880
901
  var decimalPlaces = magnitude ? precision : 0;
881
- return decimalRound(n / Math.pow(1024, magnitude), decimalPlaces).toFixed(decimalPlaces) + unit;
902
+ return decimalRound(n / (Math.pow(1024, magnitude)), decimalPlaces).toFixed(decimalPlaces) + unit;
882
903
  }
883
904
 
884
905
  /** Converts a path to crumbs.
@@ -886,7 +907,7 @@ function toFileSizeString(n, precision) {
886
907
  * "a.b[0].c" -> ["a", "b", "0", "c"]
887
908
  */
888
909
  function crumblePath(path) {
889
- return typeof path === "string" ? path.match(/[^.\[\]]+/g) || [] : [].concat(path);
910
+ return typeof path === 'string' ? path.match(/[^.[\]]+/g) || [] : [].concat(path);
890
911
  }
891
912
 
892
913
  /**
@@ -933,24 +954,34 @@ function diff(o1, o2, parentPath) {
933
954
  if (parentPath === void 0) { parentPath = []; }
934
955
  var d = [];
935
956
  try {
936
- for (var _b = __values(new Set(__spread(Object.keys(o1), Object.keys(o2)))), _c = _b.next(); !_c.done; _c = _b.next()) {
957
+ for (var _b = __values(new Set(__spreadArray(__spreadArray([], __read(Object.keys(o1))), __read(Object.keys(o2))))), _c = _b.next(); !_c.done; _c = _b.next()) {
937
958
  var key = _c.value;
938
- var o1HasKey = o1.hasOwnProperty(key);
939
- var o2HasKey = o2.hasOwnProperty(key);
959
+ var o1HasKey = Object.prototype.hasOwnProperty.call(o1, key);
960
+ var o2HasKey = Object.prototype.hasOwnProperty.call(o2, key);
940
961
  if (o1HasKey && !o2HasKey) {
941
- d.push({ type: exports.DiffChange.DELETION, key: key, parentPath: parentPath, objects: [o1, o2] });
962
+ d.push({
963
+ type: exports.DiffChange.DELETION,
964
+ key: key, parentPath: parentPath,
965
+ objects: [o1, o2],
966
+ });
942
967
  }
943
968
  else if (!o1HasKey && o2HasKey) {
944
- d.push({ type: exports.DiffChange.ADDITION, key: key, parentPath: parentPath, objects: [o1, o2] });
969
+ d.push({
970
+ type: exports.DiffChange.ADDITION,
971
+ key: key, parentPath: parentPath,
972
+ objects: [o1, o2],
973
+ });
945
974
  }
946
- else {
947
- if ((isPlainObject__default['default'](o1[key]) && isPlainObject__default['default'](o2[key]))
948
- || (Array.isArray(o1[key]) && Array.isArray(o2[key]))) {
949
- d = d.concat(diff(o1[key], o2[key], __spread(parentPath, [key])));
950
- }
951
- else if (o1[key] !== o2[key]) {
952
- d.push({ type: exports.DiffChange.ALTERATION, key: key, parentPath: parentPath, objects: [o1, o2] });
953
- }
975
+ else if ((isPlainObject__default['default'](o1[key]) && isPlainObject__default['default'](o2[key]))
976
+ || (Array.isArray(o1[key]) && Array.isArray(o2[key]))) {
977
+ d = d.concat(diff(o1[key], o2[key], __spreadArray(__spreadArray([], __read(parentPath)), [key])));
978
+ }
979
+ else if (o1[key] !== o2[key]) {
980
+ d.push({
981
+ type: exports.DiffChange.ALTERATION,
982
+ key: key, parentPath: parentPath,
983
+ objects: [o1, o2],
984
+ });
954
985
  }
955
986
  }
956
987
  }
@@ -1018,8 +1049,8 @@ function forEachNestedObject(object, fn, path) {
1018
1049
 
1019
1050
  var isNil = isNilImport__namespace.default || isNilImport__namespace;
1020
1051
  var isEmpty$1 = isEmptyImport__namespace.default || isEmptyImport__namespace;
1021
- /**
1022
- * Get the value at `path` starting from `object`. Allows optional chaining, e.g. `get(obj, 'a.b?.c')`
1052
+ /** Get the value at `path` starting from `object`.
1053
+ * Allows optional chaining, e.g. `get(obj, 'a.b?.c')`
1023
1054
  */
1024
1055
  function getPath(object, path, defaultValue, allOptional) {
1025
1056
  var e_1, _a, _b;
@@ -1033,7 +1064,7 @@ function getPath(object, path, defaultValue, allOptional) {
1033
1064
  var crumb = _d.value;
1034
1065
  var key = crumb;
1035
1066
  var optional = void 0;
1036
- if (typeof crumb === "string") {
1067
+ if (typeof crumb === 'string') {
1037
1068
  _b = __read(crumb.match(/^([^?]+)(\?)?$/), 3), key = _b[1], optional = _b[2];
1038
1069
  }
1039
1070
  value = value[key];
@@ -1085,11 +1116,11 @@ var isEmpty = isEmptyImport__namespace.default || isEmptyImport__namespace;
1085
1116
  /** Set the value at `path` on `object`. */
1086
1117
  function setPath(object, path, newValue) {
1087
1118
  var e_1, _a;
1088
- if (typeof object !== "object") {
1089
- throw new Error("object is required");
1119
+ if (typeof object !== 'object') {
1120
+ throw new Error('object is required');
1090
1121
  }
1091
1122
  if (isEmpty(path)) {
1092
- throw new Error("path is required");
1123
+ throw new Error('path is required');
1093
1124
  }
1094
1125
  var crumbs = crumblePath(path);
1095
1126
  var finalCrumb = crumbs.splice(crumbs.length - 1, 1)[0];
@@ -1098,7 +1129,7 @@ function setPath(object, path, newValue) {
1098
1129
  for (var crumbs_1 = __values(crumbs), crumbs_1_1 = crumbs_1.next(); !crumbs_1_1.done; crumbs_1_1 = crumbs_1.next()) {
1099
1130
  var crumb = crumbs_1_1.value;
1100
1131
  current = current[crumb];
1101
- if (typeof current !== "object") {
1132
+ if (typeof current !== 'object') {
1102
1133
  throw new Error("Cannot set value at given path: Path deadends at " + String(crumb));
1103
1134
  }
1104
1135
  }
@@ -1115,13 +1146,14 @@ function setPath(object, path, newValue) {
1115
1146
 
1116
1147
  /** Generator for iterating down a path on an object. */
1117
1148
  function traversePath(object, path) {
1118
- var _a, _b, crumb, e_1_1;
1149
+ var obj, _a, _b, crumb, e_1_1;
1119
1150
  var e_1, _c;
1120
1151
  return __generator(this, function (_d) {
1121
1152
  switch (_d.label) {
1122
1153
  case 0: return [4 /*yield*/, object];
1123
1154
  case 1:
1124
1155
  _d.sent();
1156
+ obj = object;
1125
1157
  _d.label = 2;
1126
1158
  case 2:
1127
1159
  _d.trys.push([2, 7, 8, 9]);
@@ -1130,8 +1162,8 @@ function traversePath(object, path) {
1130
1162
  case 3:
1131
1163
  if (!!_b.done) return [3 /*break*/, 6];
1132
1164
  crumb = _b.value;
1133
- object = object[crumb];
1134
- return [4 /*yield*/, object];
1165
+ obj = obj[crumb];
1166
+ return [4 /*yield*/, obj];
1135
1167
  case 4:
1136
1168
  _d.sent();
1137
1169
  _d.label = 5;
@@ -1170,7 +1202,7 @@ function mergeDeep() {
1170
1202
  try {
1171
1203
  for (var _c = (e_2 = void 0, __values(Object.keys(mergee))), _d = _c.next(); !_d.done; _d = _c.next()) {
1172
1204
  var key = _d.value;
1173
- if (result.hasOwnProperty(key)
1205
+ if (Object.prototype.hasOwnProperty.call(result, key)
1174
1206
  && Object.getOwnPropertyDescriptor(result, key).writable
1175
1207
  && isPlainObject__default['default'](result[key])) {
1176
1208
  result[key] = mergeDeep(result[key], mergee[key]);
@@ -1218,7 +1250,7 @@ function mergePropertiesDeep() {
1218
1250
  try {
1219
1251
  for (var _c = (e_2 = void 0, __values(Object.keys(mergee))), _d = _c.next(); !_d.done; _d = _c.next()) {
1220
1252
  var key = _d.value;
1221
- if (result.hasOwnProperty(key)
1253
+ if (Object.prototype.hasOwnProperty.call(result, key)
1222
1254
  && Object.getOwnPropertyDescriptor(result, key).writable
1223
1255
  && isPlainObject__default['default'](result[key])) {
1224
1256
  result[key] = mergePropertiesDeep(result[key], mergee[key]);
@@ -1276,11 +1308,11 @@ function code(strings) {
1276
1308
  for (var _i = 1; _i < arguments.length; _i++) {
1277
1309
  interpolations[_i - 1] = arguments[_i];
1278
1310
  }
1279
- var s = strings.reduce(function (a, b, i) { return a + (i <= interpolations.length ? interpolations[i - 1] : "") + b; });
1280
- var leadingWhitespace = Math.min.apply(Math, __spread(s.split(/[\r\n]/)
1311
+ var s = strings.reduce(function (a, b, i) { return a + (i <= interpolations.length ? interpolations[i - 1] : '') + b; });
1312
+ var leadingWhitespace = Math.min.apply(Math, __spreadArray([], __read(s.split(/[\r\n]/)
1281
1313
  .filter(function (l) { return l.trim(); })
1282
- .map(function (l) { return l.match(/^ */)[0].length; })));
1283
- return s.replace(new RegExp("^ {" + leadingWhitespace + "}", "gm"), "").trim();
1314
+ .map(function (l) { return l.match(/^ */)[0].length; }))));
1315
+ return s.replace(new RegExp("^ {" + leadingWhitespace + "}", 'gm'), '').trim();
1284
1316
  }
1285
1317
 
1286
1318
  /** Parses a string as a file size and returns the size in bytes. For example,
@@ -1289,24 +1321,24 @@ function code(strings) {
1289
1321
  function parseFileSize(fileSize) {
1290
1322
  var unitMatch = fileSize.match(/[A-Z]?B$/);
1291
1323
  if (!unitMatch) {
1292
- throw new Error("Input to parseFileSize (\"" + fileSize + "\") doesn't seem like a file size; " +
1293
- "cannot identify a unit (e.g. KB, GB)");
1324
+ throw new Error("Input to parseFileSize (\"" + fileSize + "\") doesn't seem like a file size; "
1325
+ + 'cannot identify a unit (e.g. KB, GB)');
1294
1326
  }
1295
1327
  var _a = __read(unitMatch, 1), unit = _a[0];
1296
- var num = +fileSize.replace(unit, "");
1328
+ var num = +fileSize.replace(unit, '');
1297
1329
  if (Number.isNaN(num)) {
1298
1330
  throw new Error("Could not parse a number out of input to parseFileSize (\"" + fileSize + "\")");
1299
1331
  }
1300
- var magnitude = ["B", "KB", "MB", "GB", "TB", "PB"].indexOf(unit);
1332
+ var magnitude = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'].indexOf(unit);
1301
1333
  if (magnitude === -1) {
1302
- throw new Error("parseFileSize does not support units above PB");
1334
+ throw new Error('parseFileSize does not support units above PB');
1303
1335
  }
1304
- return Math.ceil(num * Math.pow(1024, magnitude));
1336
+ return Math.ceil(num * (Math.pow(1024, magnitude)));
1305
1337
  }
1306
1338
 
1307
1339
  var REGEX_REPLACEMENT = /(<%=|{{)(.+?)(%>|}})/g;
1308
1340
  var REGEX_IF = /<%\?(.+?)%>(.+?)<\/%>/g;
1309
- var Symbol_templateSrc = Symbol("sps.utils.templateSrc");
1341
+ var SYMBOL_TEMPLATE_SOURCE = Symbol('sps.utils.templateSrc');
1310
1342
  /**
1311
1343
  * Every string templating thing out there whether lodash, doT, handlebars, etc
1312
1344
  * is extremely complicated to cover a variety of use cases. This just has two
@@ -1318,23 +1350,17 @@ var Symbol_templateSrc = Symbol("sps.utils.templateSrc");
1318
1350
  * You can put interpolations inside a conditional, as you'd expect. That's it.
1319
1351
  */
1320
1352
  function template(string) {
1321
- var fn = function (data) {
1322
- return string
1323
- .replace(REGEX_IF, function (match, pathToCheck, content) {
1324
- return getPath(data, pathToCheck.trim()) ? content : "";
1325
- })
1326
- .replace(REGEX_REPLACEMENT, function (match, _, pathToInterpolate) {
1327
- return getPath(data, pathToInterpolate.trim(), "");
1328
- });
1329
- };
1330
- fn[Symbol_templateSrc] = string;
1353
+ var fn = function (data) { return string
1354
+ .replace(REGEX_IF, function (match, pathToCheck, content) { return (getPath(data, pathToCheck.trim()) ? content : ''); })
1355
+ .replace(REGEX_REPLACEMENT, function (match, _, pathToInterpolate) { return getPath(data, pathToInterpolate.trim(), ''); }); };
1356
+ fn[SYMBOL_TEMPLATE_SOURCE] = string;
1331
1357
  return fn;
1332
1358
  }
1333
1359
  function isTemplate(x) {
1334
- return typeof x === "string" && (REGEX_REPLACEMENT.test(x) || REGEX_IF.test(x));
1360
+ return typeof x === 'string' && (REGEX_REPLACEMENT.test(x) || REGEX_IF.test(x));
1335
1361
  }
1336
1362
  function isTemplateFn(x) {
1337
- return typeof x === "function" && x.hasOwnProperty(Symbol_templateSrc);
1363
+ return typeof x === 'function' && Object.prototype.hasOwnProperty.call(x, SYMBOL_TEMPLATE_SOURCE);
1338
1364
  }
1339
1365
 
1340
1366
  exports.CustomEvent = CustomEvent;