moment_timezone-rails 0.5.25 → 0.5.47

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,5 +1,5 @@
1
1
  //! moment-timezone.js
2
- //! version : 0.5.25
2
+ //! version : 0.5.47
3
3
  //! Copyright (c) JS Foundation and other contributors
4
4
  //! license : MIT
5
5
  //! github.com/moment/moment-timezone
@@ -18,15 +18,21 @@
18
18
  }(this, function (moment) {
19
19
  "use strict";
20
20
 
21
+ // Resolves es6 module loading issue
22
+ if (moment.version === undefined && moment.default) {
23
+ moment = moment.default;
24
+ }
25
+
21
26
  // Do not load moment-timezone a second time.
22
27
  // if (moment.tz !== undefined) {
23
28
  // logError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);
24
29
  // return moment;
25
30
  // }
26
31
 
27
- var VERSION = "0.5.25",
32
+ var VERSION = "0.5.47",
28
33
  zones = {},
29
34
  links = {},
35
+ countries = {},
30
36
  names = {},
31
37
  guesses = {},
32
38
  cachedGuess;
@@ -144,6 +150,30 @@
144
150
  }
145
151
  }
146
152
 
153
+ function closest (num, arr) {
154
+ var len = arr.length;
155
+ if (num < arr[0]) {
156
+ return 0;
157
+ } else if (len > 1 && arr[len - 1] === Infinity && num >= arr[len - 2]) {
158
+ return len - 1;
159
+ } else if (num >= arr[len - 1]) {
160
+ return -1;
161
+ }
162
+
163
+ var mid;
164
+ var lo = 0;
165
+ var hi = len - 1;
166
+ while (hi - lo > 1) {
167
+ mid = Math.floor((lo + hi) / 2);
168
+ if (arr[mid] <= num) {
169
+ lo = mid;
170
+ } else {
171
+ hi = mid;
172
+ }
173
+ }
174
+ return hi;
175
+ }
176
+
147
177
  Zone.prototype = {
148
178
  _set : function (unpacked) {
149
179
  this.name = unpacked.name;
@@ -158,13 +188,19 @@
158
188
  untils = this.untils,
159
189
  i;
160
190
 
161
- for (i = 0; i < untils.length; i++) {
162
- if (target < untils[i]) {
163
- return i;
164
- }
191
+ i = closest(target, untils);
192
+ if (i >= 0) {
193
+ return i;
165
194
  }
166
195
  },
167
196
 
197
+ countries : function () {
198
+ var zone_name = this.name;
199
+ return Object.keys(countries).filter(function (country_code) {
200
+ return countries[country_code].zones.indexOf(zone_name) !== -1;
201
+ });
202
+ },
203
+
168
204
  parse : function (timestamp) {
169
205
  var target = +timestamp,
170
206
  offsets = this.offsets,
@@ -205,6 +241,15 @@
205
241
  }
206
242
  };
207
243
 
244
+ /************************************
245
+ Country object
246
+ ************************************/
247
+
248
+ function Country (country_name, zone_names) {
249
+ this.name = country_name;
250
+ this.zones = zone_names;
251
+ }
252
+
208
253
  /************************************
209
254
  Current Timezone
210
255
  ************************************/
@@ -264,17 +309,21 @@
264
309
  function userOffsets() {
265
310
  var startYear = new Date().getFullYear() - 2,
266
311
  last = new OffsetAt(new Date(startYear, 0, 1)),
312
+ lastOffset = last.offset,
267
313
  offsets = [last],
268
- change, next, i;
314
+ change, next, nextOffset, i;
269
315
 
270
316
  for (i = 1; i < 48; i++) {
271
- next = new OffsetAt(new Date(startYear, i, 1));
272
- if (next.offset !== last.offset) {
317
+ nextOffset = new Date(startYear, i, 1).getTimezoneOffset();
318
+ if (nextOffset !== lastOffset) {
319
+ // Create OffsetAt here to avoid unnecessary abbr parsing before checking offsets
320
+ next = new OffsetAt(new Date(startYear, i, 1));
273
321
  change = findChange(last, next);
274
322
  offsets.push(change);
275
323
  offsets.push(new OffsetAt(new Date(change.at + 6e4)));
324
+ last = next;
325
+ lastOffset = nextOffset;
276
326
  }
277
- last = next;
278
327
  }
279
328
 
280
329
  for (i = 0; i < 4; i++) {
@@ -292,7 +341,10 @@
292
341
  if (a.abbrScore !== b.abbrScore) {
293
342
  return a.abbrScore - b.abbrScore;
294
343
  }
295
- return b.zone.population - a.zone.population;
344
+ if (a.zone.population !== b.zone.population) {
345
+ return b.zone.population - a.zone.population;
346
+ }
347
+ return b.zone.name.localeCompare(a.zone.name);
296
348
  }
297
349
 
298
350
  function addToGuesses (name, offsets) {
@@ -309,15 +361,21 @@
309
361
  var offsetsLength = offsets.length,
310
362
  filteredGuesses = {},
311
363
  out = [],
312
- i, j, guessesOffset;
364
+ checkedOffsets = {},
365
+ i, j, offset, guessesOffset;
313
366
 
314
367
  for (i = 0; i < offsetsLength; i++) {
315
- guessesOffset = guesses[offsets[i].offset] || {};
368
+ offset = offsets[i].offset;
369
+ if (checkedOffsets.hasOwnProperty(offset)) {
370
+ continue;
371
+ }
372
+ guessesOffset = guesses[offset] || {};
316
373
  for (j in guessesOffset) {
317
374
  if (guessesOffset.hasOwnProperty(j)) {
318
375
  filteredGuesses[j] = true;
319
376
  }
320
377
  }
378
+ checkedOffsets[offset] = true;
321
379
  }
322
380
 
323
381
  for (i in filteredGuesses) {
@@ -397,7 +455,7 @@
397
455
  }
398
456
 
399
457
  function getZone (name, caller) {
400
-
458
+
401
459
  name = normalizeName(name);
402
460
 
403
461
  var zone = zones[name];
@@ -436,6 +494,10 @@
436
494
  return out.sort();
437
495
  }
438
496
 
497
+ function getCountryNames () {
498
+ return Object.keys(countries);
499
+ }
500
+
439
501
  function addLink (aliases) {
440
502
  var i, alias, normal0, normal1;
441
503
 
@@ -457,9 +519,49 @@
457
519
  }
458
520
  }
459
521
 
522
+ function addCountries (data) {
523
+ var i, country_code, country_zones, split;
524
+ if (!data || !data.length) return;
525
+ for (i = 0; i < data.length; i++) {
526
+ split = data[i].split('|');
527
+ country_code = split[0].toUpperCase();
528
+ country_zones = split[1].split(' ');
529
+ countries[country_code] = new Country(
530
+ country_code,
531
+ country_zones
532
+ );
533
+ }
534
+ }
535
+
536
+ function getCountry (name) {
537
+ name = name.toUpperCase();
538
+ return countries[name] || null;
539
+ }
540
+
541
+ function zonesForCountry(country, with_offset) {
542
+ country = getCountry(country);
543
+
544
+ if (!country) return null;
545
+
546
+ var zones = country.zones.sort();
547
+
548
+ if (with_offset) {
549
+ return zones.map(function (zone_name) {
550
+ var zone = getZone(zone_name);
551
+ return {
552
+ name: zone_name,
553
+ offset: zone.utcOffset(new Date())
554
+ };
555
+ });
556
+ }
557
+
558
+ return zones;
559
+ }
560
+
460
561
  function loadData (data) {
461
562
  addZone(data.zones);
462
563
  addLink(data.links);
564
+ addCountries(data.countries);
463
565
  tz.dataVersion = data.version;
464
566
  }
465
567
 
@@ -489,10 +591,10 @@
489
591
  function tz (input) {
490
592
  var args = Array.prototype.slice.call(arguments, 0, -1),
491
593
  name = arguments[arguments.length - 1],
492
- zone = getZone(name),
493
- out = moment.utc.apply(null, args);
594
+ out = moment.utc.apply(null, args),
595
+ zone;
494
596
 
495
- if (zone && !moment.isMoment(input) && needsOffset(out)) {
597
+ if (!moment.isMoment(input) && needsOffset(out) && (zone = getZone(name))) {
496
598
  out.add(zone.parse(out), 'minutes');
497
599
  }
498
600
 
@@ -506,6 +608,7 @@
506
608
  tz._zones = zones;
507
609
  tz._links = links;
508
610
  tz._names = names;
611
+ tz._countries = countries;
509
612
  tz.add = addZone;
510
613
  tz.link = addLink;
511
614
  tz.load = loadData;
@@ -519,6 +622,8 @@
519
622
  tz.needsOffset = needsOffset;
520
623
  tz.moveInvalidForward = true;
521
624
  tz.moveAmbiguousForward = false;
625
+ tz.countries = getCountryNames;
626
+ tz.zonesForCountry = zonesForCountry;
522
627
 
523
628
  /************************************
524
629
  Interface with Moment.js
@@ -535,7 +640,7 @@
535
640
  offset;
536
641
 
537
642
  if (mom._z === undefined) {
538
- if (zone && needsOffset(mom) && !mom._isUTC) {
643
+ if (zone && needsOffset(mom) && !mom._isUTC && mom.isValid()) {
539
644
  mom._d = moment.utc(mom._a)._d;
540
645
  mom.utc().add(zone.parse(mom), 'minutes');
541
646
  }
@@ -598,7 +703,7 @@
598
703
  fn.utc = resetZoneWrap(fn.utc);
599
704
  fn.local = resetZoneWrap(fn.local);
600
705
  fn.utcOffset = resetZoneWrap2(fn.utcOffset);
601
-
706
+
602
707
  moment.tz.setDefault = function(name) {
603
708
  if (major < 2 || (major === 2 && minor < 9)) {
604
709
  logError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');
@@ -1 +1 @@
1
- !function(t,e){"use strict";"object"==typeof module&&module.exports?module.exports=e(require("moment")):"function"==typeof define&&define.amd?define(["moment"],e):e(t.moment)}(this,function(s){"use strict";var e,i={},f={},u={},c={};s&&"string"==typeof s.version||A("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/");var t=s.version.split("."),n=+t[0],o=+t[1];function a(t){return 96<t?t-87:64<t?t-29:t-48}function r(t){var e=0,n=t.split("."),o=n[0],r=n[1]||"",s=1,i=0,f=1;for(45===t.charCodeAt(0)&&(f=-(e=1));e<o.length;e++)i=60*i+a(o.charCodeAt(e));for(e=0;e<r.length;e++)s/=60,i+=a(r.charCodeAt(e))*s;return i*f}function l(t){for(var e=0;e<t.length;e++)t[e]=r(t[e])}function h(t,e){var n,o=[];for(n=0;n<e.length;n++)o[n]=t[e[n]];return o}function m(t){var e=t.split("|"),n=e[2].split(" "),o=e[3].split(""),r=e[4].split(" ");return l(n),l(o),l(r),function(t,e){for(var n=0;n<e;n++)t[n]=Math.round((t[n-1]||0)+6e4*t[n]);t[e-1]=1/0}(r,o.length),{name:e[0],abbrs:h(e[1].split(" "),o),offsets:h(n,o),untils:r,population:0|e[5]}}function p(t){t&&this._set(m(t))}function d(t){var e=t.toTimeString(),n=e.match(/\([a-z ]+\)/i);"GMT"===(n=n&&n[0]?(n=n[0].match(/[A-Z]/g))?n.join(""):void 0:(n=e.match(/[A-Z]{3,5}/g))?n[0]:void 0)&&(n=void 0),this.at=+t,this.abbr=n,this.offset=t.getTimezoneOffset()}function z(t){this.zone=t,this.offsetScore=0,this.abbrScore=0}function v(t,e){for(var n,o;o=6e4*((e.at-t.at)/12e4|0);)(n=new d(new Date(t.at+o))).offset===t.offset?t=n:e=n;return t}function b(t,e){return t.offsetScore!==e.offsetScore?t.offsetScore-e.offsetScore:t.abbrScore!==e.abbrScore?t.abbrScore-e.abbrScore:e.zone.population-t.zone.population}function g(t,e){var n,o;for(l(e),n=0;n<e.length;n++)o=e[n],c[o]=c[o]||{},c[o][t]=!0}function _(){try{var t=Intl.DateTimeFormat().resolvedOptions().timeZone;if(t&&3<t.length){var e=u[w(t)];if(e)return e;A("Moment Timezone found "+t+" from the Intl api, but did not have that data loaded.")}}catch(t){}var n,o,r,s=function(){var t,e,n,o=(new Date).getFullYear()-2,r=new d(new Date(o,0,1)),s=[r];for(n=1;n<48;n++)(e=new d(new Date(o,n,1))).offset!==r.offset&&(t=v(r,e),s.push(t),s.push(new d(new Date(t.at+6e4)))),r=e;for(n=0;n<4;n++)s.push(new d(new Date(o+n,0,1))),s.push(new d(new Date(o+n,6,1)));return s}(),i=s.length,f=function(t){var e,n,o,r=t.length,s={},i=[];for(e=0;e<r;e++)for(n in o=c[t[e].offset]||{})o.hasOwnProperty(n)&&(s[n]=!0);for(e in s)s.hasOwnProperty(e)&&i.push(u[e]);return i}(s),a=[];for(o=0;o<f.length;o++){for(n=new z(O(f[o]),i),r=0;r<i;r++)n.scoreOffsetAt(s[r]);a.push(n)}return a.sort(b),0<a.length?a[0].zone.name:void 0}function w(t){return(t||"").toLowerCase().replace(/\//g,"_")}function y(t){var e,n,o,r;for("string"==typeof t&&(t=[t]),e=0;e<t.length;e++)r=w(n=(o=t[e].split("|"))[0]),i[r]=t[e],u[r]=n,g(r,o[2].split(" "))}function O(t,e){t=w(t);var n,o=i[t];return o instanceof p?o:"string"==typeof o?(o=new p(o),i[t]=o):f[t]&&e!==O&&(n=O(f[t],O))?((o=i[t]=new p)._set(n),o.name=u[t],o):null}function S(t){var e,n,o,r;for("string"==typeof t&&(t=[t]),e=0;e<t.length;e++)o=w((n=t[e].split("|"))[0]),r=w(n[1]),f[o]=r,u[o]=n[0],f[r]=o,u[r]=n[1]}function M(t){var e="X"===t._f||"x"===t._f;return!(!t._a||void 0!==t._tzm||e)}function A(t){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(t)}function j(t){var e=Array.prototype.slice.call(arguments,0,-1),n=arguments[arguments.length-1],o=O(n),r=s.utc.apply(null,e);return o&&!s.isMoment(t)&&M(r)&&r.add(o.parse(r),"minutes"),r.tz(n),r}(n<2||2==n&&o<6)&&A("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js "+s.version+". See momentjs.com"),p.prototype={_set:function(t){this.name=t.name,this.abbrs=t.abbrs,this.untils=t.untils,this.offsets=t.offsets,this.population=t.population},_index:function(t){var e,n=+t,o=this.untils;for(e=0;e<o.length;e++)if(n<o[e])return e},parse:function(t){var e,n,o,r,s=+t,i=this.offsets,f=this.untils,a=f.length-1;for(r=0;r<a;r++)if(e=i[r],n=i[r+1],o=i[r?r-1:r],e<n&&j.moveAmbiguousForward?e=n:o<e&&j.moveInvalidForward&&(e=o),s<f[r]-6e4*e)return i[r];return i[a]},abbr:function(t){return this.abbrs[this._index(t)]},offset:function(t){return A("zone.offset has been deprecated in favor of zone.utcOffset"),this.offsets[this._index(t)]},utcOffset:function(t){return this.offsets[this._index(t)]}},z.prototype.scoreOffsetAt=function(t){this.offsetScore+=Math.abs(this.zone.utcOffset(t.at)-t.offset),this.zone.abbr(t.at).replace(/[^A-Z]/g,"")!==t.abbr&&this.abbrScore++},j.version="0.5.25",j.dataVersion="",j._zones=i,j._links=f,j._names=u,j.add=y,j.link=S,j.load=function(t){y(t.zones),S(t.links),j.dataVersion=t.version},j.zone=O,j.zoneExists=function t(e){return t.didShowError||(t.didShowError=!0,A("moment.tz.zoneExists('"+e+"') has been deprecated in favor of !moment.tz.zone('"+e+"')")),!!O(e)},j.guess=function(t){return e&&!t||(e=_()),e},j.names=function(){var t,e=[];for(t in u)u.hasOwnProperty(t)&&(i[t]||i[f[t]])&&u[t]&&e.push(u[t]);return e.sort()},j.Zone=p,j.unpack=m,j.unpackBase60=r,j.needsOffset=M,j.moveInvalidForward=!0,j.moveAmbiguousForward=!1;var T,D=s.fn;function x(t){return function(){return this._z?this._z.abbr(this):t.call(this)}}function Z(t){return function(){return this._z=null,t.apply(this,arguments)}}s.tz=j,s.defaultZone=null,s.updateOffset=function(t,e){var n,o=s.defaultZone;if(void 0===t._z&&(o&&M(t)&&!t._isUTC&&(t._d=s.utc(t._a)._d,t.utc().add(o.parse(t),"minutes")),t._z=o),t._z)if(n=t._z.utcOffset(t),Math.abs(n)<16&&(n/=60),void 0!==t.utcOffset){var r=t._z;t.utcOffset(-n,e),t._z=r}else t.zone(n,e)},D.tz=function(t,e){if(t){if("string"!=typeof t)throw new Error("Time zone name must be a string, got "+t+" ["+typeof t+"]");return this._z=O(t),this._z?s.updateOffset(this,e):A("Moment Timezone has no data for "+t+". See http://momentjs.com/timezone/docs/#/data-loading/."),this}if(this._z)return this._z.name},D.zoneName=x(D.zoneName),D.zoneAbbr=x(D.zoneAbbr),D.utc=Z(D.utc),D.local=Z(D.local),D.utcOffset=(T=D.utcOffset,function(){return 0<arguments.length&&(this._z=null),T.apply(this,arguments)}),s.tz.setDefault=function(t){return(n<2||2==n&&o<9)&&A("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js "+s.version+"."),s.defaultZone=t?O(t):null,s};var F=s.momentProperties;return"[object Array]"===Object.prototype.toString.call(F)?(F.push("_z"),F.push("_a")):F&&(F._z=null),s});
1
+ !function(t,e){"use strict";"object"==typeof module&&module.exports?module.exports=e(require("moment")):"function"==typeof define&&define.amd?define(["moment"],e):e(t.moment)}(this,function(r){"use strict";void 0===r.version&&r.default&&(r=r.default);var e,a={},i={},s={},c={},l={},t=(r&&"string"==typeof r.version||D("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/"),r.version.split(".")),n=+t[0],o=+t[1];function f(t){return 96<t?t-87:64<t?t-29:t-48}function u(t){var e=0,n=t.split("."),o=n[0],r=n[1]||"",i=1,s=0,n=1;for(45===t.charCodeAt(0)&&(n=-(e=1));e<o.length;e++)s=60*s+f(o.charCodeAt(e));for(e=0;e<r.length;e++)i/=60,s+=f(r.charCodeAt(e))*i;return s*n}function h(t){for(var e=0;e<t.length;e++)t[e]=u(t[e])}function p(t,e){for(var n=[],o=0;o<e.length;o++)n[o]=t[e[o]];return n}function m(t){for(var t=t.split("|"),e=t[2].split(" "),n=t[3].split(""),o=t[4].split(" "),r=(h(e),h(n),h(o),o),i=n.length,s=0;s<i;s++)r[s]=Math.round((r[s-1]||0)+6e4*r[s]);return r[i-1]=1/0,{name:t[0],abbrs:p(t[1].split(" "),n),offsets:p(e,n),untils:o,population:0|t[5]}}function d(t){t&&this._set(m(t))}function z(t,e){this.name=t,this.zones=e}function v(t){var e=t.toTimeString(),n=e.match(/\([a-z ]+\)/i);"GMT"===(n=n&&n[0]?(n=n[0].match(/[A-Z]/g))?n.join(""):void 0:(n=e.match(/[A-Z]{3,5}/g))?n[0]:void 0)&&(n=void 0),this.at=+t,this.abbr=n,this.offset=t.getTimezoneOffset()}function b(t){this.zone=t,this.offsetScore=0,this.abbrScore=0}function g(){for(var t,e,n,o=(new Date).getFullYear()-2,r=new v(new Date(o,0,1)),i=r.offset,s=[r],f=1;f<48;f++)(n=new Date(o,f,1).getTimezoneOffset())!==i&&(t=function(t,e){for(var n;n=6e4*((e.at-t.at)/12e4|0);)(n=new v(new Date(t.at+n))).offset===t.offset?t=n:e=n;return t}(r,e=new v(new Date(o,f,1))),s.push(t),s.push(new v(new Date(t.at+6e4))),r=e,i=n);for(f=0;f<4;f++)s.push(new v(new Date(o+f,0,1))),s.push(new v(new Date(o+f,6,1)));return s}function _(t,e){return t.offsetScore!==e.offsetScore?t.offsetScore-e.offsetScore:t.abbrScore!==e.abbrScore?t.abbrScore-e.abbrScore:t.zone.population!==e.zone.population?e.zone.population-t.zone.population:e.zone.name.localeCompare(t.zone.name)}function w(){try{var t=Intl.DateTimeFormat().resolvedOptions().timeZone;if(t&&3<t.length){var e=c[y(t)];if(e)return e;D("Moment Timezone found "+t+" from the Intl api, but did not have that data loaded.")}}catch(t){}for(var n,o,r=g(),i=r.length,s=function(t){for(var e,n,o,r=t.length,i={},s=[],f={},u=0;u<r;u++)if(n=t[u].offset,!f.hasOwnProperty(n)){for(e in o=l[n]||{})o.hasOwnProperty(e)&&(i[e]=!0);f[n]=!0}for(u in i)i.hasOwnProperty(u)&&s.push(c[u]);return s}(r),f=[],u=0;u<s.length;u++){for(n=new b(S(s[u])),o=0;o<i;o++)n.scoreOffsetAt(r[o]);f.push(n)}return f.sort(_),0<f.length?f[0].zone.name:void 0}function y(t){return(t||"").toLowerCase().replace(/\//g,"_")}function O(t){var e,n,o,r;for("string"==typeof t&&(t=[t]),e=0;e<t.length;e++){r=y(n=(o=t[e].split("|"))[0]),a[r]=t[e],c[r]=n,s=i=u=f=void 0;var i,s,f=r,u=o[2].split(" ");for(h(u),i=0;i<u.length;i++)s=u[i],l[s]=l[s]||{},l[s][f]=!0}}function S(t,e){t=y(t);var n=a[t];return n instanceof d?n:"string"==typeof n?(n=new d(n),a[t]=n):i[t]&&e!==S&&(e=S(i[t],S))?((n=a[t]=new d)._set(e),n.name=c[t],n):null}function M(t){var e,n,o,r;for("string"==typeof t&&(t=[t]),e=0;e<t.length;e++)o=y((n=t[e].split("|"))[0]),r=y(n[1]),i[o]=r,c[o]=n[0],i[r]=o,c[r]=n[1]}function j(t){return j.didShowError||(j.didShowError=!0,D("moment.tz.zoneExists('"+t+"') has been deprecated in favor of !moment.tz.zone('"+t+"')")),!!S(t)}function A(t){var e="X"===t._f||"x"===t._f;return!(!t._a||void 0!==t._tzm||e)}function D(t){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(t)}function T(t){var e=Array.prototype.slice.call(arguments,0,-1),n=arguments[arguments.length-1],e=r.utc.apply(null,e);return!r.isMoment(t)&&A(e)&&(t=S(n))&&e.add(t.parse(e),"minutes"),e.tz(n),e}(n<2||2==n&&o<6)&&D("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js "+r.version+". See momentjs.com"),d.prototype={_set:function(t){this.name=t.name,this.abbrs=t.abbrs,this.untils=t.untils,this.offsets=t.offsets,this.population=t.population},_index:function(t){t=function(t,e){var n,o=e.length;if(t<e[0])return 0;if(1<o&&e[o-1]===1/0&&t>=e[o-2])return o-1;if(t>=e[o-1])return-1;for(var r=0,i=o-1;1<i-r;)e[n=Math.floor((r+i)/2)]<=t?r=n:i=n;return i}(+t,this.untils);if(0<=t)return t},countries:function(){var e=this.name;return Object.keys(s).filter(function(t){return-1!==s[t].zones.indexOf(e)})},parse:function(t){for(var e,n,o,r=+t,i=this.offsets,s=this.untils,f=s.length-1,u=0;u<f;u++)if(e=i[u],n=i[u+1],o=i[u&&u-1],e<n&&T.moveAmbiguousForward?e=n:o<e&&T.moveInvalidForward&&(e=o),r<s[u]-6e4*e)return i[u];return i[f]},abbr:function(t){return this.abbrs[this._index(t)]},offset:function(t){return D("zone.offset has been deprecated in favor of zone.utcOffset"),this.offsets[this._index(t)]},utcOffset:function(t){return this.offsets[this._index(t)]}},b.prototype.scoreOffsetAt=function(t){this.offsetScore+=Math.abs(this.zone.utcOffset(t.at)-t.offset),this.zone.abbr(t.at).replace(/[^A-Z]/g,"")!==t.abbr&&this.abbrScore++},T.version="0.5.47",T.dataVersion="",T._zones=a,T._links=i,T._names=c,T._countries=s,T.add=O,T.link=M,T.load=function(t){O(t.zones),M(t.links);var e,n,o,r=t.countries;if(r&&r.length)for(e=0;e<r.length;e++)n=(o=r[e].split("|"))[0].toUpperCase(),o=o[1].split(" "),s[n]=new z(n,o);T.dataVersion=t.version},T.zone=S,T.zoneExists=j,T.guess=function(t){return e=e&&!t?e:w()},T.names=function(){var t,e=[];for(t in c)c.hasOwnProperty(t)&&(a[t]||a[i[t]])&&c[t]&&e.push(c[t]);return e.sort()},T.Zone=d,T.unpack=m,T.unpackBase60=u,T.needsOffset=A,T.moveInvalidForward=!0,T.moveAmbiguousForward=!1,T.countries=function(){return Object.keys(s)},T.zonesForCountry=function(t,e){var n;return n=(n=t).toUpperCase(),(t=s[n]||null)?(n=t.zones.sort(),e?n.map(function(t){return{name:t,offset:S(t).utcOffset(new Date)}}):n):null};var x,t=r.fn;function C(t){return function(){return this._z?this._z.abbr(this):t.call(this)}}function Z(t){return function(){return this._z=null,t.apply(this,arguments)}}r.tz=T,r.defaultZone=null,r.updateOffset=function(t,e){var n,o=r.defaultZone;void 0===t._z&&(o&&A(t)&&!t._isUTC&&t.isValid()&&(t._d=r.utc(t._a)._d,t.utc().add(o.parse(t),"minutes")),t._z=o),t._z&&(o=t._z.utcOffset(t),Math.abs(o)<16&&(o/=60),void 0!==t.utcOffset?(n=t._z,t.utcOffset(-o,e),t._z=n):t.zone(o,e))},t.tz=function(t,e){if(t){if("string"!=typeof t)throw new Error("Time zone name must be a string, got "+t+" ["+typeof t+"]");return this._z=S(t),this._z?r.updateOffset(this,e):D("Moment Timezone has no data for "+t+". See http://momentjs.com/timezone/docs/#/data-loading/."),this}if(this._z)return this._z.name},t.zoneName=C(t.zoneName),t.zoneAbbr=C(t.zoneAbbr),t.utc=Z(t.utc),t.local=Z(t.local),t.utcOffset=(x=t.utcOffset,function(){return 0<arguments.length&&(this._z=null),x.apply(this,arguments)}),r.tz.setDefault=function(t){return(n<2||2==n&&o<9)&&D("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js "+r.version+"."),r.defaultZone=t?S(t):null,r};t=r.momentProperties;return"[object Array]"===Object.prototype.toString.call(t)?(t.push("_z"),t.push("_a")):t&&(t._z=null),r});
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moment_timezone-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.25
4
+ version: 0.5.47
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lim Victor
@@ -90,5 +90,5 @@ requirements: []
90
90
  rubygems_version: 3.5.22
91
91
  signing_key:
92
92
  specification_version: 4
93
- summary: moment-timezone-0.5.25
93
+ summary: moment-timezone-0.5.47
94
94
  test_files: []