geojs 1.9.4 → 1.10.2

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/geo.lean.js CHANGED
@@ -32,7 +32,8 @@ var geo_action = {
32
32
  zoomrotate: 'geo_action_zoom_rotate',
33
33
  zoomselect: 'geo_action_zoomselect',
34
34
  // annotation actions -- some are also added by the registry
35
- annotation_edit_handle: 'geo_annotation_edit_handle'
35
+ annotation_edit_handle: 'geo_annotation_edit_handle',
36
+ annotation_cursor: 'geo_annotation_cursor'
36
37
  };
37
38
  module.exports = geo_action;
38
39
 
@@ -63,7 +64,8 @@ var annotationState = {
63
64
  create: 'create',
64
65
  done: 'done',
65
66
  highlight: 'highlight',
66
- edit: 'edit'
67
+ edit: 'edit',
68
+ cursor: 'cursor'
67
69
  };
68
70
  var annotationActionOwner = 'annotationAction';
69
71
  /**
@@ -220,12 +222,15 @@ var annotation = function annotation(type, args) {
220
222
  };
221
223
  /**
222
224
  * Assign a new id to this annotation.
225
+ *
226
+ * @returns {this}
223
227
  */
224
228
 
225
229
 
226
230
  this.newId = function () {
227
231
  annotationId += 1;
228
232
  m_id = annotationId;
233
+ return m_this;
229
234
  };
230
235
  /**
231
236
  * Get or set the name of this annotation.
@@ -405,6 +410,36 @@ var annotation = function annotation(type, args) {
405
410
  m_layer = arg;
406
411
  return m_this;
407
412
  };
413
+
414
+ this._cursorHandleMousemove = function (evt) {
415
+ m_this.layer()._handleMouseMoveModifiers(evt);
416
+
417
+ var center = m_this._cursorCenter;
418
+ var delta = {
419
+ x: evt.mapgcs.x - center.x,
420
+ y: evt.mapgcs.y - center.y
421
+ };
422
+
423
+ if (delta.x || delta.y) {
424
+ var curPts = m_this._coordinates();
425
+
426
+ var pts = m_this._coordinatesMapFunc(curPts, function (elem) {
427
+ return {
428
+ x: elem.x + delta.x,
429
+ y: elem.y + delta.y
430
+ };
431
+ });
432
+
433
+ m_this._coordinates(pts);
434
+
435
+ m_this._cursorCenter = evt.mapgcs;
436
+ m_this.modified();
437
+ m_this.draw();
438
+ return true;
439
+ }
440
+
441
+ return false;
442
+ };
408
443
  /**
409
444
  * Get or set the state of this annotation.
410
445
  *
@@ -429,6 +464,21 @@ var annotation = function annotation(type, args) {
429
464
  annotation: m_this
430
465
  });
431
466
  }
467
+
468
+ if (m_this.layer()) {
469
+ m_this.layer().geoOff(geo_event.mousemove, m_this._cursorHandleMousemove);
470
+ }
471
+
472
+ switch (m_state) {
473
+ case annotationState.cursor:
474
+ m_this._cursorCenter = util.centerFromPerimeter(m_this._coordinates());
475
+
476
+ if (m_this.layer()) {
477
+ m_this.layer().geoOn(geo_event.mousemove, m_this._cursorHandleMousemove);
478
+ }
479
+
480
+ break;
481
+ }
432
482
  }
433
483
 
434
484
  return m_this;
@@ -461,6 +511,19 @@ var annotation = function annotation(type, args) {
461
511
  input: 'pan'
462
512
  }];
463
513
 
514
+ case annotationState.cursor:
515
+ return [{
516
+ action: geo_action.annotation_cursor,
517
+ name: 'annotation cursor',
518
+ owner: annotationActionOwner,
519
+ input: 'pan'
520
+ }, {
521
+ action: geo_action.annotation_cursor,
522
+ name: 'annotation cursor',
523
+ owner: annotationActionOwner,
524
+ input: 'left'
525
+ }];
526
+
464
527
  default:
465
528
  return [];
466
529
  }
@@ -604,7 +667,7 @@ var annotation = function annotation(type, args) {
604
667
  /* For style objects, re-extend them without recursion. This allows
605
668
  * setting colors without an opacity field, for instance. */
606
669
 
607
- ['style', 'createStyle', 'editStyle', 'editHandleStyle', 'labelStyle', 'highlightStyle'].forEach(function (key) {
670
+ ['style', 'createStyle', 'editStyle', 'editHandleStyle', 'labelStyle', 'highlightStyle', 'cursorStyle'].forEach(function (key) {
608
671
  if (arg1[key] !== undefined) {
609
672
  $.extend(m_options[key], arg1[key]);
610
673
  }
@@ -659,8 +722,8 @@ var annotation = function annotation(type, args) {
659
722
  * current style with the values in the specified object.
660
723
  * @param {*} [arg2] If `arg1` is a string, the new value for that style.
661
724
  * @param {string} [styleType='style'] The name of the style type, such as
662
- * `createStyle`, `editStyle`, `editHandleStyle`, `labelStyle`, or
663
- * `highlightStyle`.
725
+ * `createStyle`, `editStyle`, `editHandleStyle`, `labelStyle`,
726
+ * `highlightStyle`, or `cursorStyle`.
664
727
  * @returns {object|this} Either the entire style object, the value of a
665
728
  * specific style, or the current class instance.
666
729
  */
@@ -719,14 +782,21 @@ var annotation = function annotation(type, args) {
719
782
  */
720
783
 
721
784
  /**
722
- * Calls {@link geo.annotation#style} with `styleType='highlightHandleStyle'`.
723
- * @function highlightHandleStyle
785
+ * Calls {@link geo.annotation#style} with `styleType='highlightStyle'`.
786
+ * @function highlightStyle
787
+ * @memberof geo.annotation
788
+ * @instance
789
+ */
790
+
791
+ /**
792
+ * Calls {@link geo.annotation#style} with `styleType='cursorStyle'`.
793
+ * @function cursorStyle
724
794
  * @memberof geo.annotation
725
795
  * @instance
726
796
  */
727
797
 
728
798
 
729
- ['createStyle', 'editStyle', 'editHandleStyle', 'labelStyle', 'highlightStyle'].forEach(function (styleType) {
799
+ ['createStyle', 'editStyle', 'editHandleStyle', 'labelStyle', 'highlightStyle', 'cursorStyle'].forEach(function (styleType) {
730
800
  m_this[styleType] = function (arg1, arg2) {
731
801
  return m_this.style(arg1, arg2, styleType);
732
802
  };
@@ -752,6 +822,10 @@ var annotation = function annotation(type, args) {
752
822
  return $.extend({}, m_options.style, m_options.editStyle, m_options[state + 'Style']);
753
823
  }
754
824
 
825
+ if (state === annotationState.cursor) {
826
+ return $.extend({}, m_options.style, m_options.editStyle, m_options.createStyle, m_options[state + 'Style']);
827
+ }
828
+
755
829
  return m_options[state + 'Style'] || m_options.style || {};
756
830
  };
757
831
  /**
@@ -2660,6 +2734,8 @@ var lineFeature = __webpack_require__(4708);
2660
2734
 
2661
2735
  var polygonFeature = __webpack_require__(4343);
2662
2736
 
2737
+ var util = __webpack_require__(4634);
2738
+
2663
2739
  var annotation = (__webpack_require__(5784).annotation);
2664
2740
 
2665
2741
  var annotationState = (__webpack_require__(5784).state);
@@ -2728,6 +2804,9 @@ var polygonAnnotation = function polygonAnnotation(args) {
2728
2804
 
2729
2805
  return m_this.options('vertices')[i];
2730
2806
  }
2807
+ },
2808
+ cursorStyle: {
2809
+ position: util.identityFunction
2731
2810
  }
2732
2811
  }, args);
2733
2812
  args.vertices = args.vertices || args.coordinates || [];
@@ -3067,6 +3146,21 @@ polygonAnnotation.defaults = $.extend({}, annotation.defaults, {
3067
3146
  b: 1
3068
3147
  }
3069
3148
  },
3149
+ cursorStyle: {
3150
+ closed: true,
3151
+ fillColor: {
3152
+ r: 0.3,
3153
+ g: 0.3,
3154
+ b: 0.3
3155
+ },
3156
+ fillOpacity: 0.25,
3157
+ stroke: true,
3158
+ strokeColor: {
3159
+ r: 0,
3160
+ g: 0,
3161
+ b: 1
3162
+ }
3163
+ },
3070
3164
  allowBooleanOperations: true
3071
3165
  });
3072
3166
  var polygonRequiredFeatures = {};
@@ -3909,6 +4003,17 @@ var annotationLayer = function annotationLayer(arg) {
3909
4003
 
3910
4004
  break;
3911
4005
 
4006
+ case m_this.modes.cursor:
4007
+ m_this.currentAnnotation._cursorHandleMousemove(evt.mouse);
4008
+
4009
+ update = m_this.currentAnnotation.processAction(evt);
4010
+ m_this.geoTrigger(geo_event.annotation.cursor_action, {
4011
+ annotation: m_this.currentAnnotation,
4012
+ operation: m_this.currentBooleanOperation(),
4013
+ evt: evt
4014
+ });
4015
+ break;
4016
+
3912
4017
  default:
3913
4018
  update = m_this.currentAnnotation.processAction(evt);
3914
4019
  break;
@@ -4004,7 +4109,7 @@ var annotationLayer = function annotationLayer(arg) {
4004
4109
 
4005
4110
 
4006
4111
  this._handleMouseMoveModifiers = function (evt) {
4007
- if (m_this.mode() !== m_this.modes.edit && m_this.currentAnnotation.options('allowBooleanOperations') && m_this.currentAnnotation._coordinates().length < 2) {
4112
+ if (m_this.mode() !== m_this.modes.edit && m_this.currentAnnotation.options('allowBooleanOperations') && (m_this.currentAnnotation._coordinates().length < 2 || m_this.mode() === m_this.modes.cursor)) {
4008
4113
  if (evt.modifiers) {
4009
4114
  var mod = (evt.modifiers.shift ? 's' : '') + (evt.modifiers.ctrl ? 'c' : '') + (evt.modifiers.meta || evt.modifiers.alt ? 'a' : '');
4010
4115
 
@@ -4161,6 +4266,14 @@ var annotationLayer = function annotationLayer(arg) {
4161
4266
  m_this._updateFromEvent(update);
4162
4267
 
4163
4268
  retrigger = !m_this.mode();
4269
+
4270
+ if (m_this.mode() === m_this.modes.cursor) {
4271
+ m_this.geoTrigger(geo_event.annotation.cursor_click, {
4272
+ annotation: m_this.currentAnnotation,
4273
+ operation: m_this.currentBooleanOperation(),
4274
+ evt: evt
4275
+ });
4276
+ }
4164
4277
  } else if (!m_this.mode() && !m_this.currentAnnotation && m_this.options('clickToEdit')) {
4165
4278
  var highlighted = m_this.annotations().filter(function (ann) {
4166
4279
  return ann.state() === geo_annotation.state.highlight;
@@ -4395,7 +4508,8 @@ var annotationLayer = function annotationLayer(arg) {
4395
4508
 
4396
4509
 
4397
4510
  this.modes = {
4398
- edit: 'edit'
4511
+ edit: 'edit',
4512
+ cursor: 'cursor'
4399
4513
  };
4400
4514
  /* Keys are short-hand for preferred event modifiers. Values are classes to
4401
4515
  * apply to the map node. */
@@ -4411,11 +4525,13 @@ var annotationLayer = function annotationLayer(arg) {
4411
4525
  *
4412
4526
  * @param {string|null} [arg] `undefined` to get the current mode, `null` to
4413
4527
  * stop creating/editing, `this.modes.edit` (`'edit'`) plus an annotation
4414
- * to switch to edit mode, or the name of the type of annotation to
4415
- * create. Available annotations can listed via
4528
+ * to switch to edit mode, `this.modes.cursor` plus an annotation to
4529
+ * switch to using the annotation as a cursor, or the name of the type of
4530
+ * annotation to create. Available annotations can listed via
4416
4531
  * {@link geo.listAnnotations}.
4417
- * @param {geo.annotation} [editAnnotation] If `arg === this.modes.edit`,
4418
- * this is the annotation that should be edited.
4532
+ * @param {geo.annotation} [editAnnotation] If `arg === this.modes.edit` or
4533
+ * `arg === this.modes.cursor`, this is the annotation that should be
4534
+ * edited or used.
4419
4535
  * @param {object} [options] Additional options to pass when creating an
4420
4536
  * annotation.
4421
4537
  * @returns {string|null|this} The current mode or the layer.
@@ -4427,13 +4543,13 @@ var annotationLayer = function annotationLayer(arg) {
4427
4543
  return m_mode;
4428
4544
  }
4429
4545
 
4430
- if (arg !== m_mode || arg === m_this.modes.edit && editAnnotation !== m_this.editAnnotation || arg !== m_this.modes.edit && arg && !m_this.currentAnnotation) {
4546
+ if (arg !== m_mode || (arg === m_this.modes.edit || arg === m_this.modes.cursor) && editAnnotation !== m_this.editAnnotation || arg !== m_this.modes.edit && arg !== m_this.modes.cursor && arg && !m_this.currentAnnotation) {
4431
4547
  var createAnnotation,
4432
4548
  actions,
4433
4549
  mapNode = m_this.map().node(),
4434
4550
  oldMode = m_mode;
4435
4551
  m_mode = arg;
4436
- mapNode.toggleClass('annotation-input', !!(m_mode && m_mode !== m_this.modes.edit));
4552
+ mapNode.toggleClass('annotation-input', !!(m_mode && m_mode !== m_this.modes.edit && m_mode !== m_this.modes.cursor));
4437
4553
 
4438
4554
  if (!m_mode || m_mode === m_this.modes.edit) {
4439
4555
  Object.values(m_this._booleanClasses).forEach(function (c) {
@@ -4465,6 +4581,13 @@ var annotationLayer = function annotationLayer(arg) {
4465
4581
  m_this.modified();
4466
4582
  m_this.draw();
4467
4583
  break;
4584
+
4585
+ case geo_annotation.state.cursor:
4586
+ m_this.currentAnnotation.state(geo_annotation.state.done);
4587
+ m_this.modified();
4588
+ m_this.draw();
4589
+ m_this.map().node().toggleClass('annotation-cursor', false);
4590
+ break;
4468
4591
  }
4469
4592
 
4470
4593
  m_this.currentAnnotation = null;
@@ -4474,6 +4597,12 @@ var annotationLayer = function annotationLayer(arg) {
4474
4597
  m_this.currentAnnotation = editAnnotation;
4475
4598
  m_this.currentAnnotation.state(geo_annotation.state.edit);
4476
4599
  m_this.modified();
4600
+ } else if (m_mode === m_this.modes.cursor) {
4601
+ m_this.currentAnnotation = editAnnotation;
4602
+ m_this.currentAnnotation.state(geo_annotation.state.cursor);
4603
+ m_this.modified();
4604
+ m_this.map().node().toggleClass('annotation-cursor', true);
4605
+ actions = m_this.currentAnnotation.actions(geo_annotation.state.cursor);
4477
4606
  } else if (registry.registries.annotations[m_mode]) {
4478
4607
  createAnnotation = registry.registries.annotations[m_mode].func;
4479
4608
  }
@@ -4488,6 +4617,9 @@ var annotationLayer = function annotationLayer(arg) {
4488
4617
  m_this.currentAnnotation = createAnnotation(options);
4489
4618
  m_this.addAnnotation(m_this.currentAnnotation, null);
4490
4619
  actions = m_this.currentAnnotation.actions(geo_annotation.state.create);
4620
+ }
4621
+
4622
+ if (actions) {
4491
4623
  $.each(actions, function (idx, action) {
4492
4624
  m_this.map().interactor().addAction(action);
4493
4625
  });
@@ -4498,7 +4630,7 @@ var annotationLayer = function annotationLayer(arg) {
4498
4630
  oldMode: oldMode
4499
4631
  });
4500
4632
 
4501
- if (oldMode === m_this.modes.edit) {
4633
+ if (oldMode === m_this.modes.edit || oldMode === m_this.modes.cursor) {
4502
4634
  m_this.modified();
4503
4635
  }
4504
4636
  }
@@ -7885,6 +8017,17 @@ var canvas_quadFeature = function canvas_quadFeature(arg) {
7885
8017
 
7886
8018
  var oldAlpha = context2d.globalAlpha;
7887
8019
  var opacity = oldAlpha;
8020
+ var nearestPixel = m_this.nearestPixel();
8021
+
8022
+ if (nearestPixel !== undefined) {
8023
+ if (nearestPixel !== true && util.isNonNullFinite(nearestPixel)) {
8024
+ var curZoom = m_this.layer().map().zoom();
8025
+ nearestPixel = curZoom >= nearestPixel;
8026
+ }
8027
+
8028
+ context2d.imageSmoothingEnabled = !nearestPixel;
8029
+ }
8030
+
7888
8031
  $.each([m_quads.imgQuads, m_quads.vidQuads], function (listidx, quadlist) {
7889
8032
  if (!quadlist) {
7890
8033
  return;
@@ -7954,6 +8097,7 @@ var canvas_quadFeature = function canvas_quadFeature(arg) {
7954
8097
  }
7955
8098
 
7956
8099
  context2d.setTransform(1, 0, 0, 1, 0, 0);
8100
+ context2d.imageSmoothingEnabled = true;
7957
8101
  };
7958
8102
  /**
7959
8103
  * If this returns true, the render will be skipped and tried again on the
@@ -8411,6 +8555,7 @@ var canvas_tileLayer = function canvas_tileLayer() {
8411
8555
 
8412
8556
  this._update = function (request) {
8413
8557
  s_update.call(m_this, request);
8558
+ m_quadFeature.nearestPixel(m_this.nearestPixel());
8414
8559
 
8415
8560
  m_this._addBaseQuadToTiles(m_quadFeature, m_tiles);
8416
8561
 
@@ -9881,6 +10026,34 @@ geo_event.annotation.mode = 'geo_annotation_mode';
9881
10026
  */
9882
10027
 
9883
10028
  geo_event.annotation.boolean = 'geo_annotation_boolean';
10029
+ /**
10030
+ * Triggered when an annotation is in cursor mode and the mouse is clicked.
10031
+ *
10032
+ * @event geo.event.annotation.cursor_click
10033
+ * @type {geo.event.base}
10034
+ * @property {geo.annotation} annotation The annotation that is being operated
10035
+ * on.
10036
+ * @property {string} operation The operation being performed.
10037
+ * @property {boolean} [cancel] If the handle sets this to false, don't apply
10038
+ * the operation to the annotation layer.
10039
+ * @property {object} event The triggering event.
10040
+ */
10041
+
10042
+ geo_event.annotation.cursor_click = 'geo_annotation_cursor_click';
10043
+ /**
10044
+ * Triggered when an annotation is in cursor mode and an action occurs.
10045
+ *
10046
+ * @event geo.event.annotation.cursor_action
10047
+ * @type {geo.event.base}
10048
+ * @property {geo.annotation} annotation The annotation that is being operated
10049
+ * on.
10050
+ * @property {string} operation The operation being performed.
10051
+ * @property {boolean} [cancel] If the handle sets this to false, don't apply
10052
+ * the operation to the annotation layer.
10053
+ * @property {object} event The triggering event.
10054
+ */
10055
+
10056
+ geo_event.annotation.cursor_action = 'geo_annotation_cursor_action';
9884
10057
  module.exports = geo_event;
9885
10058
 
9886
10059
  /***/ }),
@@ -16719,13 +16892,15 @@ var map = function map(arg) {
16719
16892
  * center.
16720
16893
  * @param {boolean} [ignoreDiscreteZoom] If `true`, ignore the discreteZoom
16721
16894
  * option when determining the new view.
16895
+ * @param {boolean} [ignoreClampBounds] If `true`, ignore the clampBounds
16896
+ * option when determining the new view.
16722
16897
  * @returns {number|this}
16723
16898
  * @fires geo.event.zoom
16724
16899
  * @fires geo.event.pan
16725
16900
  */
16726
16901
 
16727
16902
 
16728
- this.zoom = function (val, origin, ignoreDiscreteZoom) {
16903
+ this.zoom = function (val, origin, ignoreDiscreteZoom, ignoreClampBounds) {
16729
16904
  if (val === undefined) {
16730
16905
  return m_zoom;
16731
16906
  }
@@ -16734,10 +16909,14 @@ var map = function map(arg) {
16734
16909
  /* If we are zooming around a point, ignore the clamp bounds */
16735
16910
 
16736
16911
  var aroundPoint = origin && (origin.mapgcs || origin.geo) && origin.map;
16737
- var ignoreClampBounds = aroundPoint;
16912
+
16913
+ if (aroundPoint) {
16914
+ ignoreClampBounds = true;
16915
+ }
16738
16916
  /* The ignoreDiscreteZoom flag is intended to allow non-integer zoom values
16739
16917
  * during animation. */
16740
16918
 
16919
+
16741
16920
  val = m_this._fix_zoom(val, ignoreDiscreteZoom);
16742
16921
 
16743
16922
  if (val === m_zoom) {
@@ -16764,7 +16943,7 @@ var map = function map(arg) {
16764
16943
  m_this.pan({
16765
16944
  x: 0,
16766
16945
  y: 0
16767
- }, ignoreDiscreteZoom);
16946
+ }, ignoreDiscreteZoom, ignoreClampBounds);
16768
16947
  }
16769
16948
 
16770
16949
  return m_this;
@@ -17510,6 +17689,8 @@ var map = function map(arg) {
17510
17689
  * a value based on what canceled a transition, `transition`: the current
17511
17690
  * transition that just completed, `next`: a boolean if another transition
17512
17691
  * follows immediately.
17692
+ * @param {boolean} [opts.endClamp=true] If `false`, the last center change
17693
+ * will not clamp to the bounds and zoom values.
17513
17694
  * @param {string|geo.transform|null} [gcs] Input gcs. `undefined` to use
17514
17695
  * the interface gcs, `null` to use the map gcs, or any other transform.
17515
17696
  * Applies only to `opts.center` and to converting zoom values to height,
@@ -17619,7 +17800,8 @@ var map = function map(arg) {
17619
17800
  zCoord: opts.zCoord,
17620
17801
  done: opts.done,
17621
17802
  duration: opts.duration,
17622
- zoomOrigin: opts.zoomOrigin
17803
+ zoomOrigin: opts.zoomOrigin,
17804
+ endClamp: opts.endClamp
17623
17805
  };
17624
17806
  m_transition.interp = opts.interp([m_transition.start.center.x, m_transition.start.center.y, opts.zCoord ? zoom2z(m_transition.start.zoom) : m_transition.start.zoom, m_transition.start.rotation], [m_transition.end.center ? m_transition.end.center.x : m_transition.start.center.x, m_transition.end.center ? m_transition.end.center.y : m_transition.start.center.y, opts.zCoord ? zoom2z(m_transition.end.zoom) : m_transition.end.zoom, m_transition.end.rotation]);
17625
17807
  /**
@@ -17671,10 +17853,11 @@ var map = function map(arg) {
17671
17853
  if (m_transition.end.center) {
17672
17854
  var needZoom = m_zoom !== m_this._fix_zoom(m_transition.end.zoom);
17673
17855
 
17674
- m_this.center(m_transition.end.center, null, needZoom, needZoom);
17856
+ var noEndClamp = needZoom || opts.endClamp === false;
17857
+ m_this.center(m_transition.end.center, null, noEndClamp, noEndClamp);
17675
17858
  }
17676
17859
 
17677
- m_this.zoom(m_transition.end.zoom, m_transition.zoomOrigin);
17860
+ m_this.zoom(m_transition.end.zoom, m_transition.zoomOrigin, opts.endClamp === false, opts.endClamp === false);
17678
17861
  m_this.rotation(fix_rotation(m_transition.end.rotation));
17679
17862
  }
17680
17863
 
@@ -17714,7 +17897,7 @@ var map = function map(arg) {
17714
17897
  x: p[0],
17715
17898
  y: p[1]
17716
17899
  }, null);
17717
- m_this.zoom(p[2], m_transition.zoomOrigin, true);
17900
+ m_this.zoom(p[2], m_transition.zoomOrigin, true, true);
17718
17901
  }
17719
17902
 
17720
17903
  m_this.rotation(p[3], undefined, true);
@@ -18458,6 +18641,10 @@ var map = function map(arg) {
18458
18641
  m_autoshareRenderer = arg === null ? undefined : arg;
18459
18642
  return m_this;
18460
18643
  };
18644
+ /* Report the current version on the map object. */
18645
+
18646
+
18647
+ this._version = __webpack_require__(2978);
18461
18648
  /**
18462
18649
  * Draw a layer image to a canvas context. The layer's opacity and transform
18463
18650
  * are applied. This is used as part of making a screenshot.
@@ -18471,7 +18658,6 @@ var map = function map(arg) {
18471
18658
  * @private
18472
18659
  */
18473
18660
 
18474
-
18475
18661
  function drawLayerImageToContext(context, opacity, elem, img, mixBlendMode) {
18476
18662
  context.globalAlpha = opacity;
18477
18663
 
@@ -19164,6 +19350,7 @@ var mapInteractor = function mapInteractor(args) {
19164
19350
  m_boundKeys,
19165
19351
  m_touchHandler,
19166
19352
  m_state,
19353
+ m_nextStateId = 0,
19167
19354
  m_queue,
19168
19355
  $node,
19169
19356
  m_selectionLayer = null,
@@ -20320,6 +20507,7 @@ var mapInteractor = function mapInteractor(args) {
20320
20507
  kind: 'move'
20321
20508
  }; // store the state object
20322
20509
 
20510
+ m_nextStateId += 1;
20323
20511
  m_state = {
20324
20512
  action: action,
20325
20513
  actionRecord: actionRecord,
@@ -20327,6 +20515,7 @@ var mapInteractor = function mapInteractor(args) {
20327
20515
  initialZoom: map.zoom(),
20328
20516
  initialRotation: map.rotation(),
20329
20517
  initialEventRotation: evt.rotation,
20518
+ stateId: m_nextStateId,
20330
20519
  delta: {
20331
20520
  x: 0,
20332
20521
  y: 0
@@ -24027,6 +24216,7 @@ var pixelmapLayer = function pixelmapLayer(arg) {
24027
24216
  this._init = function () {
24028
24217
  // Call super class init
24029
24218
  s_init.apply(m_this, arguments);
24219
+ m_this.nearestPixel(true, true);
24030
24220
  var pixelmapArgs = {
24031
24221
  quadFeature: m_this.features()[0]
24032
24222
  };
@@ -25837,6 +26027,10 @@ var feature = __webpack_require__(6837);
25837
26027
  * call `cacheUpdate` on the data item or for all data.
25838
26028
  * @property {geo.quadFeature.styleSpec} [style] Style object with default
25839
26029
  * style options.
26030
+ * @property {boolean|number} [nearestPixel] If true, image quads are
26031
+ * rendered with near-neighbor sampling. If false, with interpolated
26032
+ * sampling. If a number, interpolate at that zoom level or below and
26033
+ * nearest neighbor at that zoom level or above.
25840
26034
  */
25841
26035
 
25842
26036
  /**
@@ -25900,6 +26094,7 @@ var quadFeature = function quadFeature(arg) {
25900
26094
  var m_this = this,
25901
26095
  s_init = this._init,
25902
26096
  m_cacheQuads,
26097
+ m_nearestPixel = arg.nearestPixel,
25903
26098
  m_nextQuadId = 0,
25904
26099
  m_images = [],
25905
26100
  m_videos = [],
@@ -26582,6 +26777,27 @@ var quadFeature = function quadFeature(arg) {
26582
26777
 
26583
26778
  return null;
26584
26779
  };
26780
+ /**
26781
+ * Get/Set nearestPixel value.
26782
+ *
26783
+ * @param {boolean|number} [val] If not specified, return the current value.
26784
+ * If true, image quads are rendered with near-neighbor sampling. If
26785
+ * false, with interpolated sampling. If a number, interpolate at that
26786
+ * zoom level or below and nearest neighbor at that zoom level or above.
26787
+ * @returns {boolean|number|this}
26788
+ */
26789
+
26790
+
26791
+ this.nearestPixel = function (val) {
26792
+ if (val === undefined) {
26793
+ return m_nearestPixel;
26794
+ } else {
26795
+ m_nearestPixel = val;
26796
+ m_this.modified();
26797
+ }
26798
+
26799
+ return m_this;
26800
+ };
26585
26801
  /**
26586
26802
  * Initialize.
26587
26803
  *
@@ -27650,7 +27866,7 @@ module.exports = sceneObject;
27650
27866
  * @constant
27651
27867
  * @type {string}
27652
27868
  */
27653
- module.exports = "f6ebaf74f3f8b523860d8b780cbd38782bdd81ca";
27869
+ module.exports = "8a83afdb7516115b52119da8bfe845e7def699dd";
27654
27870
 
27655
27871
  /***/ }),
27656
27872
 
@@ -30558,6 +30774,10 @@ var featureLayer = __webpack_require__(3715);
30558
30774
  * any tile layers. If specified, this uses the quad defaults, so this is a
30559
30775
  * ``geo.quadFeature.position`` object with, typically, an ``image`` property
30560
30776
  * added to it. The quad positions are in the map gcs coordinates.
30777
+ * @property {boolean|number} [nearestPixel] If true, image quads are
30778
+ * rendered with near-neighbor sampling. If false, with interpolated
30779
+ * sampling. If a number, interpolate at that zoom level or below and
30780
+ * nearest neighbor at that zoom level or above.
30561
30781
  */
30562
30782
 
30563
30783
  /**
@@ -30721,6 +30941,7 @@ var tileLayer = function tileLayer(arg) {
30721
30941
  m_reference,
30722
30942
  m_exited,
30723
30943
  m_lastBaseQuad,
30944
+ m_nearestPixel = arg.nearestPixel,
30724
30945
  m_this = this; // copy the options into a private variable
30725
30946
 
30726
30947
  this._options = $.extend(true, {}, arg); // set the layer attribution text
@@ -32362,6 +32583,36 @@ var tileLayer = function tileLayer(arg) {
32362
32583
 
32363
32584
  return m_this;
32364
32585
  };
32586
+ /**
32587
+ * Get/Set nearestPixel value.
32588
+ *
32589
+ * @param {boolean|number} [val] If not specified, return the current value.
32590
+ * If true, image quads are rendered with near-neighbor sampling. If
32591
+ * false, with interpolated sampling. If a number, interpolate at that
32592
+ * zoom level or below and nearest neighbor at that zoom level or above.
32593
+ * @param {boolean} [skipUpdate] If specifying val and this value is truthy,
32594
+ * don't update the layer or mark it as modified.
32595
+ * @returns {boolean|number|this}
32596
+ */
32597
+
32598
+
32599
+ this.nearestPixel = function (val, skipUpdate) {
32600
+ if (val === undefined) {
32601
+ return m_nearestPixel;
32602
+ }
32603
+
32604
+ if (m_nearestPixel !== val) {
32605
+ m_nearestPixel = val;
32606
+
32607
+ if (!skipUpdate) {
32608
+ m_this.modified();
32609
+
32610
+ m_this._update();
32611
+ }
32612
+ }
32613
+
32614
+ return m_this;
32615
+ };
32365
32616
  /**
32366
32617
  * Get/set the baseQuad.
32367
32618
  *
@@ -40775,7 +41026,7 @@ module.exports = vectorFeature;
40775
41026
  * @constant
40776
41027
  * @type {string}
40777
41028
  */
40778
- module.exports = "1.9.4";
41029
+ module.exports = "1.10.2";
40779
41030
 
40780
41031
  /***/ }),
40781
41032
 
@@ -43769,7 +44020,8 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
43769
44020
  m_quadFeature = m_this.layer().createFeature('quad', {
43770
44021
  selectionAPI: false,
43771
44022
  gcs: m_this.gcs(),
43772
- visible: m_this.visible(undefined, true)
44023
+ visible: m_this.visible(undefined, true),
44024
+ nearestPixel: true
43773
44025
  });
43774
44026
  m_quadFeatureInit = false;
43775
44027
  }
@@ -43791,11 +44043,6 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
43791
44043
  };
43792
44044
 
43793
44045
  m_quadFeature._hookRenderImageQuads = function (renderState, quads) {
43794
- quads.forEach(function (quad) {
43795
- if (quad.image && quad.texture && !quad.texture.nearestPixel()) {
43796
- quad.texture.setNearestPixel(true);
43797
- }
43798
- });
43799
44046
  m_lookupTable.bind(renderState, quads);
43800
44047
  };
43801
44048
 
@@ -43829,6 +44076,7 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
43829
44076
 
43830
44077
  if (arg.quadFeature) {
43831
44078
  m_quadFeature = arg.quadFeature;
44079
+ m_quadFeature.nearestPixel(true);
43832
44080
  }
43833
44081
 
43834
44082
  this._init(arg);
@@ -45031,6 +45279,8 @@ var quadFeature = __webpack_require__(5017);
45031
45279
 
45032
45280
  var timestamp = __webpack_require__(6618);
45033
45281
 
45282
+ var util = __webpack_require__(4634);
45283
+
45034
45284
  var _memoryCheckLargestTested = 4096 * 4096;
45035
45285
  /**
45036
45286
  * Create a new instance of class quadFeature.
@@ -45435,6 +45685,20 @@ var webgl_quadFeature = function webgl_quadFeature(arg) {
45435
45685
  h,
45436
45686
  quadw,
45437
45687
  quadh;
45688
+ var nearestPixel = m_this.nearestPixel();
45689
+
45690
+ if (nearestPixel !== undefined) {
45691
+ if (nearestPixel !== true && util.isNonNullFinite(nearestPixel)) {
45692
+ var curZoom = m_this.layer().map().zoom();
45693
+ nearestPixel = curZoom >= nearestPixel;
45694
+ }
45695
+
45696
+ m_quads.imgQuads.forEach(function (quad) {
45697
+ if (quad.image && quad.texture && quad.texture.nearestPixel() !== nearestPixel) {
45698
+ quad.texture.setNearestPixel(nearestPixel);
45699
+ }
45700
+ });
45701
+ }
45438
45702
 
45439
45703
  if (m_this._hookRenderImageQuads) {
45440
45704
  m_this._hookRenderImageQuads(renderState, m_quads.imgQuads);
@@ -45828,6 +46092,7 @@ var webgl_tileLayer = function webgl_tileLayer() {
45828
46092
 
45829
46093
  this._update = function (request) {
45830
46094
  s_update.call(m_this, request);
46095
+ m_quadFeature.nearestPixel(m_this.nearestPixel());
45831
46096
 
45832
46097
  m_this._addBaseQuadToTiles(m_quadFeature, m_tiles);
45833
46098
 
@@ -46542,7 +46807,7 @@ var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_g
46542
46807
  var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___);
46543
46808
  var ___CSS_LOADER_URL_REPLACEMENT_3___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_3___);
46544
46809
  // Module
46545
- ___CSS_LOADER_EXPORT___.push([module.id, ".geojs-map{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden}.geojs-map .geo-attribution{position:absolute;right:0;bottom:0;padding-right:5px;cursor:auto;font:11px/1.5 \"Helvetica Neue\",Arial,Helvetica,sans-serif;z-index:1001;background:rgba(255,255,255,0.7);clear:both;display:block;pointer-events:auto}.geojs-map .geo-attribution .geo-attribution-layer{padding-left:5px}.geojs-map .canvas-canvas{display:block;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-o-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}.geojs-map .webgl-canvas{display:block}.geojs-map .geojs-layer{position:absolute;width:100%;height:100%;left:0;top:0;pointer-events:none}.geojs-map .geojs-layer.active:not(.hidden) > *{pointer-events:auto}.geojs-map .geojs-layer.hidden{display:none}.geojs-map .geojs-layer.hidden[renderer=\"webgl\"]{display:inherit}.geojs-map .geo-tile-layer{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-o-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;line-height:0;font-size:0}.geojs-map.annotation-input{cursor:crosshair}.geojs-map.annotation-input.annotation-intersect{cursor:url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ") 12 12,crosshair}.geojs-map.annotation-input.annotation-difference{cursor:url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ") 12 12,crosshair}.geojs-map.annotation-input.annotation-union{cursor:url(" + ___CSS_LOADER_URL_REPLACEMENT_2___ + ") 12 12,crosshair}.geojs-map.annotation-input.annotation-xor{cursor:url(" + ___CSS_LOADER_URL_REPLACEMENT_3___ + ") 12 12,crosshair}.geojs-map.highlight-focus:after{content:\"\";display:block;position:absolute;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;left:0;top:0;right:0;bottom:0;border:3px solid Highlight;opacity:1;-ms-filter:none;filter:none;-webkit-transition:opacity 0s;-moz-transition:opacity 0s;-o-transition:opacity 0s;-ms-transition:opacity 0s;transition:opacity 0s;visibility:hidden}.geojs-map.highlight-focus:focus:after{visibility:visible;-webkit-transition:opacity 2.5s ease-in;-moz-transition:opacity 2.5s ease-in;-o-transition:opacity 2.5s ease-in;-ms-transition:opacity 2.5s ease-in;transition:opacity 2.5s ease-in;opacity:0;-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";filter:alpha(opacity=0)}.geo-tile-container{position:absolute}.geo-tile-container.crop{overflow:hidden}", "",{"version":3,"sources":["webpack://./main.styl","webpack://./../node_modules/nib/lib/nib/vendor.styl","webpack://./../node_modules/nib/lib/nib/overflow.styl","webpack://./../node_modules/nib/lib/nib/flex.styl","webpack://./../node_modules/nib/lib/nib/border.styl"],"names":[],"mappings":"AAEA,WACE,iBAAS,CCwCO,wBAAG,CAAH,qBAAG,CAAH,oBAAG,CARN,gBAAG,CChBd,eAAU,CFZZ,4BACE,iBAAS,CACT,OAAM,CACN,QAAO,CACP,iBAAc,CC4ed,WAAO,CD1eP,yDAA8B,CAC9B,YAAQ,CC6dR,gCAAW,CD3dX,UAAM,CGMN,aAAS,CHJT,mBAAe,CAEf,mDACE,gBAAa,CAEjB,0BGDE,aAAS,CFqBK,4BAAG,CAAH,yBAAG,CAAH,uBAAG,CAAH,wBAAG,CARN,oBAAG,CDThB,yBGJE,aAAS,CHOX,wBACE,iBAAS,CACT,UAAM,CACN,WAAO,CACP,MAAK,CACL,KAAI,CACJ,mBAAe,CAEb,gDACE,mBAAe,CACnB,+BGjBA,YAAS,CHmBT,iDGnBA,eAAS,CHsBX,2BCDgB,4BAAG,CAAH,yBAAG,CAAH,uBAAG,CAAH,wBAAG,CARN,oBAAG,CDWd,aAAY,CACZ,WAAU,CAEZ,4BCscE,gBAAO,CDpcP,iDCocA,8DAAO,CDlcP,kDCkcA,8DAAO,CDhcP,6CCgcA,8DAAO,CD9bP,2CC8bA,8DAAO,CD1bP,iCACE,UAAQ,CGxCV,aAAS,CH0CP,iBAAS,CCrBG,6BAAG,CAAH,0BAAG,CARN,qBAAG,CD+BZ,MAAK,CACL,KAAI,CACJ,OAAM,CACN,QAAO,CI5DT,0BAAQ,CH4PV,SAAS,CAQH,eAAY,CACZ,WAAQ,CArOE,6BAAG,CAAH,0BAAG,CAAH,wBAAG,CAAH,yBAAG,CARN,qBAAG,CD0CZ,iBAAW,CACb,uCACE,kBAAW,CCpCC,uCAAG,CAAH,oCAAG,CAAH,kCAAG,CAAH,mCAAG,CARN,+BAAG,CAoOhB,SAAS,CAWH,+DAAyE,CACzE,uBAAiC,CDhMzC,oBACE,iBAAS,CACT,yBEhEE,eAAU","sourcesContent":["@import '~nib/index.styl'\n\n.geojs-map\n position relative\n user-select none\n overflow hidden\n\n .geo-attribution\n position absolute\n right 0\n bottom 0\n padding-right 5px\n cursor auto\n font 11px/1.5 \"Helvetica Neue\", Arial, Helvetica, sans-serif\n z-index 1001\n background rgba(255,255,255,0.7)\n clear both\n display block\n pointer-events auto\n\n .geo-attribution-layer\n padding-left 5px\n\n .canvas-canvas\n display block\n transform-origin 0px 0px\n .webgl-canvas\n display block\n\n .geojs-layer\n position absolute\n width 100%\n height 100%\n left 0\n top 0\n pointer-events none\n &.active:not(.hidden)\n > *\n pointer-events auto\n &.hidden\n display none\n &.hidden[renderer=\"webgl\"]\n display inherit\n\n .geo-tile-layer\n transform-origin 0px 0px\n line-height 0\n font-size 0\n\n &.annotation-input\n cursor crosshair\n &.annotation-intersect\n cursor embedurl(\"./css/cursor-crosshair-intersect.svg\") 12 12,crosshair\n &.annotation-difference\n cursor embedurl(\"./css/cursor-crosshair-difference.svg\") 12 12,crosshair\n &.annotation-union\n cursor embedurl(\"./css/cursor-crosshair-union.svg\") 12 12,crosshair\n &.annotation-xor\n cursor embedurl(\"./css/cursor-crosshair-xor.svg\") 12 12,crosshair\n\n &.highlight-focus\n &:after\n content \"\"\n display block\n position absolute\n box-sizing border-box\n left 0px\n top 0px\n right 0px\n bottom 0px\n // Highlight is technically a css2 color. We may need to specify it\n // explicitly. #3B66A6 seems close\n border 3px solid Highlight\n opacity 1\n transition opacity 0s\n visibility hidden\n &:focus:after\n visibility visible\n transition opacity 2.5s ease-in\n opacity 0\n\n.geo-tile-container\n position absolute\n &.crop\n overflow hidden\n","use('../nodes/vendor-helpers.js')\n@import 'config'\n\n/*\n * Alias \"nowrap\" as \"no-wrap\".\n */\n\nno-wrap = unquote('nowrap')\n\n/*\n * Helper to find out if a given value is a width\n */\n\nis-width(val)\n if auto == val\n return true\n else if val && 'unit' == type(val)\n // Stylus does not short circuit so we need to perform this as a distinct\n // operation to prevent errors\n return '' != unit(val)\n return false\n\n/*\n * Vendor support for the given prop / arguments, optionally specifying the\n * only prefixes to utilize, or those which should be ignored.\n */\n\nvendor(prop, args, only = null, ignore = null, vendor-property = true)\n need_normalize = !vendor-property or prop in ('transition' 'transition-property' 'border-image' 'border-image-slice')\n for prefix in vendor-prefixes\n unless (only and !(prefix in only)) or (ignore and prefix in ignore)\n if official == prefix\n if need_normalize\n {prop}: normalize(prop,('%s' % args))\n else\n {prop}: args\n else\n newprop = prop\n newprop = '-' + prefix + '-' + prop if vendor-property\n\n if need_normalize\n {newprop}: normalize(prop,('%s' % args),prefix)\n else\n {newprop}: args\n/*\n * Vendorize the given value.\n */\n\nvendor-value(arg, only = null, ignore = null)\n prop = current-property[0]\n for prefix in vendor-prefixes\n unless (only and !(prefix in only)) or (ignore and prefix in ignore) or official == prefix\n add-property(prop, '-%s-%s' % (prefix arg))\n arg\n\n/*\n * Vendor \"box-shadow\" support.\n */\n\nbox-shadow()\n vendor('box-shadow', arguments, only: webkit official)\n\n/*\n * Vendor \"user-select\" support.\n */\n\nuser-select()\n vendor('user-select', arguments, only: webkit moz ms official)\n\n/*\n * Vendor \"column-count\" support.\n */\n\ncolumn-count()\n vendor('column-count', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-gap\" support.\n */\n\ncolumn-gap()\n vendor('column-gap', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-rule\" support.\n */\n\ncolumn-rule()\n vendor('column-rule', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-rule-color\" support.\n */\n\ncolumn-rule-color()\n vendor('column-rule-color', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-rule-width\" support.\n */\n\ncolumn-rule-width()\n vendor('column-rule-width', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-rule-style\" support.\n */\n\ncolumn-rule-style()\n vendor('column-rule-style', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-width\" support.\n */\n\ncolumn-width()\n vendor('column-width', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-span\" support.\n */\n\ncolumn-span()\n vendor('column-span', arguments, only: webkit official)\n\n/*\n * Vendor \"column-fill\" support.\n */\n\ncolumn-fill()\n vendor('column-fill', arguments, only: moz official)\n\n/*\n * Legacy syntax support for background-clip and background-origin\n */\n\nlegacy-bg-values(property, args)\n legacy_args = ()\n importance = unquote('')\n for subargs in args\n for arg in subargs\n if arg in (border-box padding-box content-box)\n arg = unquote('border') if arg == border-box\n arg = unquote('padding') if arg == padding-box\n arg = unquote('content') if arg == content-box\n if arg != '!important'\n push(legacy_args,arg)\n else\n importance = !important\n vendor(property, unquote(join(', ',legacy_args)) importance, only: moz webkit)\n\n/*\n * Vendor \"background-clip\" support.\n */\n\nbackground-clip()\n if arguments[0] == text\n vendor('background-clip', arguments, only: webkit)\n else\n legacy-bg-values('background-clip', arguments)\n background-clip: arguments\n\n/*\n * Vendor \"background-origin\" support.\n */\n\nbackground-origin()\n legacy-bg-values('background-origin', arguments)\n background-origin: arguments\n\n/*\n * Vendor \"transform\" support.\n */\n\ntransform()\n vendor('transform', arguments)\n\n/*\n * Vendor \"transform-origin\" support.\n */\ntransform-origin()\n vendor('transform-origin', arguments)\n\n/*\n * Vendor \"transform-style\" support.\n */\n\ntransform-style()\n vendor('transform-style', arguments)\n\n/*\n * Vendor \"border-image\" support.\n */\n\nborder-image()\n vendor('border-image', arguments, only: webkit moz o official)\n\n/*\n * Vendor \"transition\" support.\n */\n\ntransition()\n vendor('transition', arguments)\n\n/*\n * Vendor \"transition-property\" support.\n */\n\ntransition-property()\n vendor('transition-property', arguments)\n\n/*\n * Vendor \"transition-duration\" support.\n */\n\ntransition-duration()\n vendor('transition-duration', arguments)\n\n/*\n * Vendor \"transition-timing-function\" support.\n */\n\ntransition-timing-function()\n vendor('transition-timing-function', arguments)\n\n/*\n * Vendor \"transition-delay\" support.\n */\n\ntransition-delay()\n vendor('transition-delay', arguments)\n\n/*\n * Vendor \"backface-visibility\" support.\n */\n\nbackface-visibility()\n vendor('backface-visibility', arguments, only: webkit moz ms official)\n\n/*\n * Vendor \"perspective\" support.\n */\n\nperspective()\n if mixin\n vendor('perspective', arguments, only: webkit moz ms official)\n else\n 'perspective(%s)' % arguments\n\n/*\n * Vendor \"perspective-origin\" support.\n */\n\nperspective-origin()\n vendor('perspective-origin', arguments, only: webkit moz ms official)\n\n/*\n * Opacity with conditional IE support.\n */\n\nopacity(n, args...)\n opacity: n args\n if support-for-ie\n if n == inherit or n == initial\n -ms-filter: n args\n filter: n args\n else\n val = round(n * 100)\n if val == 100\n -ms-filter: none args\n filter: none args\n else\n -ms-filter: '\"progid:DXImageTransform.Microsoft.Alpha(Opacity=%s)\"' % val args\n filter: 'alpha(opacity=%s)' % val args\n\n/*\n * Vendor \"text-size-adjust\"\n */\n\ntext-size-adjust()\n vendor('text-size-adjust', arguments)\n\n/*\n * Alias the \"white-space\" property.\n */\n\nwhitespace()\n white-space: arguments\n\n/*\n * Vendor \"box-sizing\" support.\n */\n\nbox-sizing()\n vendor('box-sizing', arguments, only: webkit moz official)\n\n/*\n * Vendor \"box-orient\" support.\n */\n\nbox-orient()\n vendor('box-orient', arguments, only: webkit moz official)\n\n/*\n * Vendor \"box-flex-group\" support.\n */\n\nbox-flex-group()\n vendor('box-flex-group', arguments, only: webkit moz official)\n\n/*\n * Vendor \"box-ordinal-group\" support.\n */\n\nbox-ordinal-group()\n vendor('box-ordinal-group', arguments, only: webkit moz ms official)\n\n\n/*\n * Vendor \"box-align\" support.\n */\n\nbox-align()\n vendor('box-align', arguments, only: webkit moz ms official)\n\n/*\n * Vendor \"box-pack\" support.\n */\n\nbox-pack()\n vendor('box-pack', arguments, only: webkit moz ms official)\n\n/*\n * Vendor \"box-direction\" support.\n */\n\nbox-direction()\n vendor('box-direction', arguments, only: webkit moz ms official)\n\n/*\n * Vendor \"animation\" support.\n */\n\nanimation()\n vendor('animation', arguments)\n\n\n/*\n * Vendor \"animation-name\" support.\n */\n\nanimation-name()\n vendor('animation-name', arguments)\n\n/*\n * Vendor \"animation-duration\" support.\n */\n\nanimation-duration()\n vendor('animation-duration', arguments)\n\n/*\n * Vendor \"animation-delay\" support.\n */\n\nanimation-delay()\n vendor('animation-delay', arguments)\n\n/*\n * Vendor \"animation-direction\" support.\n */\n\nanimation-direction()\n vendor('animation-direction', arguments)\n\n/*\n * Vendor \"animation-iteration-count\" support.\n */\n\nanimation-iteration-count()\n vendor('animation-iteration-count', arguments)\n\n/*\n * Vendor \"animation-timing-function\" support.\n */\n\nanimation-timing-function()\n vendor('animation-timing-function', arguments)\n\n/*\n * Vendor \"animation-play-state\" support.\n */\n\nanimation-play-state()\n vendor('animation-play-state', arguments)\n\n/*\n * Vendor \"animation-fill-mode\" support.\n */\n\nanimation-fill-mode()\n vendor('animation-fill-mode', arguments)\n\n/*\n * Vendor \"hyphens\" support.\n */\n\nhyphens()\n vendor('hyphens', arguments, only: webkit moz ms official)\n\n/*\n * Vendor \"appearance\" support.\n */\n\nappearance()\n vendor('appearance', arguments, only: webkit moz official)\n\n/*\n * Vendor \"tab-size\" support.\n */\n\ntab-size()\n vendor('tab-size', arguments, only: moz o official)\n\n/*\n * Vendor \"overflow-scrolling\" support.\n */\n\noverflow-scrolling()\n vendor('overflow-scrolling', arguments, only: webkit official)\n\n/*\n * Vendor \"text-overflow\" support, , -o- for opera 9.* - 10.*\n */\n\ntext-overflow()\n vendor('text-overflow', arguments, only: official o)\n\n/*\n * Vendor \"text-size-adjust\" support.\n */\ntext-size-adjust()\n vendor('text-size-adjust', arguments, only: official webkit ms)\n\n/*\n * Vendor \"font-smoothing\" support, webkit only.\n */\nfont-smoothing()\n vendor('font-smoothing', arguments, only: webkit)\n\n\n/**\n * Vendor input-placeholder/placeholder support.\n *\n * Examples:\n * // Default syntax\n * body\n * placeholder(color #333, font-weight normal)\n *\n * // The comma is important\n * .placeholder-red\n * placeholder(color red,)\n *\n * // We can pass a function\n * green-placeholder()\n * color green\n * .placeholder-green\n * placeholder(green-placeholder)\n *\n * // We can pass a hash\n * textarea\n * placeholder((font-style italic) (font-weight bold) (padding '4px 10px'))\n */\nplaceholder()\n for v in ':-webkit-input' '-moz' ':-moz' '-ms-input'\n &:{v}-placeholder\n for pair in arguments\n if typeof(pair) == 'function'\n pair()\n else if pair is not null && pair[0] is not null\n {pair[0]}: type(pair[1]) == 'string' ? s(pair[1]) : pair[1]\ninput-placeholder = placeholder\n\n/*\n * Vendor background support (gradients).\n */\n\nbackground()\n if match('-gradient\\(', ''+arguments)\n vendor('background', arguments, vendor-property: false)\n else\n background arguments\n\nbackground-image()\n if match('-gradient\\(', ''+arguments)\n vendor('background-image', arguments, vendor-property: false)\n else\n background-image arguments\n\ncursor()\n if match('-gradient\\(', ''+arguments)\n vendor('cursor', arguments, vendor-property: false)\n else\n cursor arguments\n\nlist-style()\n if match('-gradient\\(', ''+arguments)\n vendor('list-style', arguments, vendor-property: false)\n else\n list-style arguments\n\nlist-style-image()\n if match('-gradient\\(', ''+arguments)\n vendor('list-style-image', arguments, vendor-property: false)\n else\n list-style-image arguments\n","/*\n * Overflow utility. Maps to regular overflow, and adds an ellipsis value.\n *\n * Synopsis:\n *\n * overflow: <type>\n *\n * Examples:\n *\n * overflow: auto\n * overflow: hidden\n * overflow: ellipsis\n *\n */\n\noverflow()\n if arguments[0] == ellipsis\n ellipsis()\n else\n overflow: arguments\n","/*\n * Vendor \"display: flex\" support with fallback to obsolete versions.\n */\n\nflex-version ?= box flex\n\n//\n// 1. Display values\n// - http://www.w3.org/TR/css3-flexbox/#flex-containers\n//\ndisplay(type, args...)\n if flex == type || inline-flex == type\n if box in flex-version\n if flex == type\n display: -ms-flexbox args\n display: vendor-value(box args, only: moz webkit)\n else\n display: -ms-inline-flexbox args\n display: vendor-value(inline-box args, only: moz webkit)\n if flex in flex-version\n display: vendor-value(arguments, only: webkit official) // overwrites old webkit\n else\n display: arguments\n\n/*\n * New syntax for browsers like Google Chrome.\n * Plus a translation to the old syntax, if possible.\n */\n\n\n//\n// 5. Ordering and Orientation\n// - http://www.w3.org/TR/css3-flexbox/#ordering-and-orientation\n//\n-flex-obsolete-direction(direction)\n if box in flex-version\n if row-reverse == direction || column-reverse == direction\n vendor('box-direction', reverse, ignore: ms official)\n\n if row == direction || row-reverse == direction\n vendor('box-orient', horizontal, ignore: ms official)\n else if column == direction || column-reverse == direction\n vendor('box-orient', vertical, ignore: ms official)\n\n-flex-obsolete-wrap(value)\n if box in flex-version\n // WARN: wrap-reverse does not have a box equivalent. This will render in different manners\n // on box vs. flex values.\n if 'wrap' == value || wrap-reverse == value\n vendor('box-lines', multiple, ignore: ms official)\n else if nowrap == value\n vendor('box-lines', single, ignore: ms official)\n\nflex-direction(direction)\n // obsolete\n -flex-obsolete-direction(direction)\n\n // new\n if flex in flex-version\n vendor('flex-direction', arguments, only: webkit ms official)\n\nflex-wrap(value)\n // obsolete\n -flex-obsolete-wrap(value)\n\n if flex in flex-version\n vendor('flex-wrap', arguments, only: webkit ms official)\n\nflex-flow()\n // obsolete\n -flex-obsolete-direction(arguments[0])\n -flex-obsolete-direction(arguments[1])\n -flex-obsolete-wrap(arguments[0])\n -flex-obsolete-wrap(arguments[1])\n\n // new\n if flex in flex-version\n vendor('flex-flow', arguments, only: webkit ms official)\n\n\norder()\n // obsolete\n if box in flex-version\n vendor('box-ordinal-group', arguments, ignore: ms official)\n\n // new\n if flex in flex-version\n vendor('flex-order', arguments, only: ms)\n vendor('order', arguments, only: webkit official)\n\n\n//\n// 7. Flexibility\n// - http://www.w3.org/TR/css3-flexbox/#flexibility\n//\nflex-grow(growth)\n // obsolete\n if box in flex-version\n vendor('box-flex', growth)\n\n // new\n if flex in flex-version\n vendor('flex-grow', arguments, only: webkit official)\n\nflex-basis()\n if flex in flex-version\n vendor('flex-basis', arguments, only: webkit official)\n\nflex-shrink()\n if flex in flex-version\n vendor('flex-shrink', arguments, only: webkit official)\n\nflex(growth)\n\n // obsolete\n if box in flex-version\n shrink = 1\n\n if none == growth || initial == growth\n // Well known values\n shrink = 0 if none == growth\n growth = 0\n else if is-width(growth) == true\n // Basis is defined as the first parameter\n growth = arguments[1] || 0\n shrink = arguments[2] if 3 <= length(arguments)\n else if arguments[1] && is-width(arguments[1]) == false\n // Growth is first and shrink is second\n shrink = arguments[1]\n\n // Since we can't make the distinction between growing and shrinking in the box model, take\n // the one that provides the most flexibility.\n vendor('box-flex', max(growth, shrink), ignore: ms)\n\n // new\n if flex in flex-version\n vendor('flex', arguments, only: webkit ms official)\n\n\n// converts the justification alignment\n-convert-justify(align)\n if flex-start == align\n return start\n else if flex-end == align\n return end\n else if space-around == align\n return distribute\n else if space-between == align\n return justify\n else\n return align\n\n//\n// 8. Alignment\n// - http://www.w3.org/TR/css3-flexbox/#alignment\n//\njustify-content(align)\n // obsolete\n if box in flex-version\n vendor('box-pack', -convert-justify(align), ignore: ms official)\n\n // new\n if flex in flex-version\n vendor('flex-pack', -convert-justify(align), only: ms)\n vendor('justify-content', align, only: webkit official)\n\nalign-content(align)\n // WARN: Obsolete spec does not allow for adjustment here\n if flex in flex-version\n vendor('flex-line-pack', -convert-justify(align), only: ms)\n vendor('align-content', align, only: webkit official)\n\n// converts alignment from 'flex' to normal value\n-convert-alignment(align)\n if flex-start == align\n return start\n else if flex-end == align\n return end\n else\n return align\n\nalign-items(align)\n // obsolete\n if box in flex-version\n vendor('box-align', -convert-alignment(align), ignore: ms official)\n\n // new\n if flex in flex-version\n vendor('flex-align', -convert-alignment(align), only: ms)\n vendor('align-items', arguments, only: webkit official)\n\nalign-self(align)\n // WARN: Obsolete spec does not allow for overriding alignment on individual items.\n if flex in flex-version\n vendor('align-self', align, only: webkit official)\n vendor('flex-item-align', -convert-alignment(align), only: ms)\n","/*\n * border: <color>\n * border: ...\n */\n\nborder(color, args...)\n if color is a 'color'\n border: 1px solid color args\n else\n border: arguments\n"],"sourceRoot":""}]);
46810
+ ___CSS_LOADER_EXPORT___.push([module.id, ".geojs-map{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden}.geojs-map .geo-attribution{position:absolute;right:0;bottom:0;padding-right:5px;cursor:auto;font:11px/1.5 \"Helvetica Neue\",Arial,Helvetica,sans-serif;z-index:1001;background:rgba(255,255,255,0.7);clear:both;display:block;pointer-events:auto}.geojs-map .geo-attribution .geo-attribution-layer{padding-left:5px}.geojs-map .canvas-canvas{display:block;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-o-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}.geojs-map .webgl-canvas{display:block}.geojs-map .geojs-layer{position:absolute;width:100%;height:100%;left:0;top:0;pointer-events:none}.geojs-map .geojs-layer.active:not(.hidden) > *{pointer-events:auto}.geojs-map .geojs-layer.hidden{display:none}.geojs-map .geojs-layer.hidden[renderer=\"webgl\"]{display:inherit}.geojs-map .geo-tile-layer{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-o-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;line-height:0;font-size:0}.geojs-map.annotation-input{cursor:crosshair}.geojs-map.annotation-input.annotation-intersect{cursor:url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ") 12 12,crosshair}.geojs-map.annotation-input.annotation-difference{cursor:url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ") 12 12,crosshair}.geojs-map.annotation-input.annotation-union{cursor:url(" + ___CSS_LOADER_URL_REPLACEMENT_2___ + ") 12 12,crosshair}.geojs-map.annotation-input.annotation-xor{cursor:url(" + ___CSS_LOADER_URL_REPLACEMENT_3___ + ") 12 12,crosshair}.geojs-map.annotation-cursor{cursor:crosshair}.geojs-map.annotation-cursor.annotation-intersect{cursor:url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ") 12 12,crosshair}.geojs-map.annotation-cursor.annotation-difference{cursor:url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ") 12 12,crosshair}.geojs-map.annotation-cursor.annotation-union{cursor:url(" + ___CSS_LOADER_URL_REPLACEMENT_2___ + ") 12 12,crosshair}.geojs-map.annotation-cursor.annotation-xor{cursor:url(" + ___CSS_LOADER_URL_REPLACEMENT_3___ + ") 12 12,crosshair}.geojs-map.highlight-focus:after{content:\"\";display:block;position:absolute;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;left:0;top:0;right:0;bottom:0;border:3px solid Highlight;opacity:1;-ms-filter:none;filter:none;-webkit-transition:opacity 0s;-moz-transition:opacity 0s;-o-transition:opacity 0s;-ms-transition:opacity 0s;transition:opacity 0s;visibility:hidden}.geojs-map.highlight-focus:focus:after{visibility:visible;-webkit-transition:opacity 2.5s ease-in;-moz-transition:opacity 2.5s ease-in;-o-transition:opacity 2.5s ease-in;-ms-transition:opacity 2.5s ease-in;transition:opacity 2.5s ease-in;opacity:0;-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";filter:alpha(opacity=0)}.geo-tile-container{position:absolute}.geo-tile-container.crop{overflow:hidden}", "",{"version":3,"sources":["webpack://./main.styl","webpack://./../node_modules/nib/lib/nib/vendor.styl","webpack://./../node_modules/nib/lib/nib/overflow.styl","webpack://./../node_modules/nib/lib/nib/flex.styl","webpack://./../node_modules/nib/lib/nib/border.styl"],"names":[],"mappings":"AAEA,WACE,iBAAS,CCwCO,wBAAG,CAAH,qBAAG,CAAH,oBAAG,CARN,gBAAG,CChBd,eAAU,CFZZ,4BACE,iBAAS,CACT,OAAM,CACN,QAAO,CACP,iBAAc,CC4ed,WAAO,CD1eP,yDAA8B,CAC9B,YAAQ,CC6dR,gCAAW,CD3dX,UAAM,CGMN,aAAS,CHJT,mBAAe,CAEf,mDACE,gBAAa,CAEjB,0BGDE,aAAS,CFqBK,4BAAG,CAAH,yBAAG,CAAH,uBAAG,CAAH,wBAAG,CARN,oBAAG,CDThB,yBGJE,aAAS,CHOX,wBACE,iBAAS,CACT,UAAM,CACN,WAAO,CACP,MAAK,CACL,KAAI,CACJ,mBAAe,CAEb,gDACE,mBAAe,CACnB,+BGjBA,YAAS,CHmBT,iDGnBA,eAAS,CHsBX,2BCDgB,4BAAG,CAAH,yBAAG,CAAH,uBAAG,CAAH,wBAAG,CARN,oBAAG,CDWd,aAAY,CACZ,WAAU,CAEZ,4BCscE,gBAAO,CDpcP,iDCocA,8DAAO,CDlcP,kDCkcA,8DAAO,CDhcP,6CCgcA,8DAAO,CD9bP,2CC8bA,8DAAO,CD3bT,6BC2bE,gBAAO,CDzbP,kDCybA,8DAAO,CDvbP,mDCubA,8DAAO,CDrbP,8CCqbA,8DAAO,CDnbP,4CCmbA,8DAAO,CD/aP,iCACE,UAAQ,CGnDV,aAAS,CHqDP,iBAAS,CChCG,6BAAG,CAAH,0BAAG,CARN,qBAAG,CD0CZ,MAAK,CACL,KAAI,CACJ,OAAM,CACN,QAAO,CIvET,0BAAQ,CH4PV,SAAS,CAQH,eAAY,CACZ,WAAQ,CArOE,6BAAG,CAAH,0BAAG,CAAH,wBAAG,CAAH,yBAAG,CARN,qBAAG,CDqDZ,iBAAW,CACb,uCACE,kBAAW,CC/CC,uCAAG,CAAH,oCAAG,CAAH,kCAAG,CAAH,mCAAG,CARN,+BAAG,CAoOhB,SAAS,CAWH,+DAAyE,CACzE,uBAAiC,CDrLzC,oBACE,iBAAS,CACT,yBE3EE,eAAU","sourcesContent":["@import '~nib/index.styl'\n\n.geojs-map\n position relative\n user-select none\n overflow hidden\n\n .geo-attribution\n position absolute\n right 0\n bottom 0\n padding-right 5px\n cursor auto\n font 11px/1.5 \"Helvetica Neue\", Arial, Helvetica, sans-serif\n z-index 1001\n background rgba(255,255,255,0.7)\n clear both\n display block\n pointer-events auto\n\n .geo-attribution-layer\n padding-left 5px\n\n .canvas-canvas\n display block\n transform-origin 0px 0px\n .webgl-canvas\n display block\n\n .geojs-layer\n position absolute\n width 100%\n height 100%\n left 0\n top 0\n pointer-events none\n &.active:not(.hidden)\n > *\n pointer-events auto\n &.hidden\n display none\n &.hidden[renderer=\"webgl\"]\n display inherit\n\n .geo-tile-layer\n transform-origin 0px 0px\n line-height 0\n font-size 0\n\n &.annotation-input\n cursor crosshair\n &.annotation-intersect\n cursor embedurl(\"./css/cursor-crosshair-intersect.svg\") 12 12,crosshair\n &.annotation-difference\n cursor embedurl(\"./css/cursor-crosshair-difference.svg\") 12 12,crosshair\n &.annotation-union\n cursor embedurl(\"./css/cursor-crosshair-union.svg\") 12 12,crosshair\n &.annotation-xor\n cursor embedurl(\"./css/cursor-crosshair-xor.svg\") 12 12,crosshair\n\n &.annotation-cursor\n cursor crosshair\n &.annotation-intersect\n cursor embedurl(\"./css/cursor-crosshair-intersect.svg\") 12 12,crosshair\n &.annotation-difference\n cursor embedurl(\"./css/cursor-crosshair-difference.svg\") 12 12,crosshair\n &.annotation-union\n cursor embedurl(\"./css/cursor-crosshair-union.svg\") 12 12,crosshair\n &.annotation-xor\n cursor embedurl(\"./css/cursor-crosshair-xor.svg\") 12 12,crosshair\n\n &.highlight-focus\n &:after\n content \"\"\n display block\n position absolute\n box-sizing border-box\n left 0px\n top 0px\n right 0px\n bottom 0px\n // Highlight is technically a css2 color. We may need to specify it\n // explicitly. #3B66A6 seems close\n border 3px solid Highlight\n opacity 1\n transition opacity 0s\n visibility hidden\n &:focus:after\n visibility visible\n transition opacity 2.5s ease-in\n opacity 0\n\n.geo-tile-container\n position absolute\n &.crop\n overflow hidden\n","use('../nodes/vendor-helpers.js')\n@import 'config'\n\n/*\n * Alias \"nowrap\" as \"no-wrap\".\n */\n\nno-wrap = unquote('nowrap')\n\n/*\n * Helper to find out if a given value is a width\n */\n\nis-width(val)\n if auto == val\n return true\n else if val && 'unit' == type(val)\n // Stylus does not short circuit so we need to perform this as a distinct\n // operation to prevent errors\n return '' != unit(val)\n return false\n\n/*\n * Vendor support for the given prop / arguments, optionally specifying the\n * only prefixes to utilize, or those which should be ignored.\n */\n\nvendor(prop, args, only = null, ignore = null, vendor-property = true)\n need_normalize = !vendor-property or prop in ('transition' 'transition-property' 'border-image' 'border-image-slice')\n for prefix in vendor-prefixes\n unless (only and !(prefix in only)) or (ignore and prefix in ignore)\n if official == prefix\n if need_normalize\n {prop}: normalize(prop,('%s' % args))\n else\n {prop}: args\n else\n newprop = prop\n newprop = '-' + prefix + '-' + prop if vendor-property\n\n if need_normalize\n {newprop}: normalize(prop,('%s' % args),prefix)\n else\n {newprop}: args\n/*\n * Vendorize the given value.\n */\n\nvendor-value(arg, only = null, ignore = null)\n prop = current-property[0]\n for prefix in vendor-prefixes\n unless (only and !(prefix in only)) or (ignore and prefix in ignore) or official == prefix\n add-property(prop, '-%s-%s' % (prefix arg))\n arg\n\n/*\n * Vendor \"box-shadow\" support.\n */\n\nbox-shadow()\n vendor('box-shadow', arguments, only: webkit official)\n\n/*\n * Vendor \"user-select\" support.\n */\n\nuser-select()\n vendor('user-select', arguments, only: webkit moz ms official)\n\n/*\n * Vendor \"column-count\" support.\n */\n\ncolumn-count()\n vendor('column-count', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-gap\" support.\n */\n\ncolumn-gap()\n vendor('column-gap', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-rule\" support.\n */\n\ncolumn-rule()\n vendor('column-rule', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-rule-color\" support.\n */\n\ncolumn-rule-color()\n vendor('column-rule-color', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-rule-width\" support.\n */\n\ncolumn-rule-width()\n vendor('column-rule-width', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-rule-style\" support.\n */\n\ncolumn-rule-style()\n vendor('column-rule-style', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-width\" support.\n */\n\ncolumn-width()\n vendor('column-width', arguments, only: webkit moz official)\n\n/*\n * Vendor \"column-span\" support.\n */\n\ncolumn-span()\n vendor('column-span', arguments, only: webkit official)\n\n/*\n * Vendor \"column-fill\" support.\n */\n\ncolumn-fill()\n vendor('column-fill', arguments, only: moz official)\n\n/*\n * Legacy syntax support for background-clip and background-origin\n */\n\nlegacy-bg-values(property, args)\n legacy_args = ()\n importance = unquote('')\n for subargs in args\n for arg in subargs\n if arg in (border-box padding-box content-box)\n arg = unquote('border') if arg == border-box\n arg = unquote('padding') if arg == padding-box\n arg = unquote('content') if arg == content-box\n if arg != '!important'\n push(legacy_args,arg)\n else\n importance = !important\n vendor(property, unquote(join(', ',legacy_args)) importance, only: moz webkit)\n\n/*\n * Vendor \"background-clip\" support.\n */\n\nbackground-clip()\n if arguments[0] == text\n vendor('background-clip', arguments, only: webkit)\n else\n legacy-bg-values('background-clip', arguments)\n background-clip: arguments\n\n/*\n * Vendor \"background-origin\" support.\n */\n\nbackground-origin()\n legacy-bg-values('background-origin', arguments)\n background-origin: arguments\n\n/*\n * Vendor \"transform\" support.\n */\n\ntransform()\n vendor('transform', arguments)\n\n/*\n * Vendor \"transform-origin\" support.\n */\ntransform-origin()\n vendor('transform-origin', arguments)\n\n/*\n * Vendor \"transform-style\" support.\n */\n\ntransform-style()\n vendor('transform-style', arguments)\n\n/*\n * Vendor \"border-image\" support.\n */\n\nborder-image()\n vendor('border-image', arguments, only: webkit moz o official)\n\n/*\n * Vendor \"transition\" support.\n */\n\ntransition()\n vendor('transition', arguments)\n\n/*\n * Vendor \"transition-property\" support.\n */\n\ntransition-property()\n vendor('transition-property', arguments)\n\n/*\n * Vendor \"transition-duration\" support.\n */\n\ntransition-duration()\n vendor('transition-duration', arguments)\n\n/*\n * Vendor \"transition-timing-function\" support.\n */\n\ntransition-timing-function()\n vendor('transition-timing-function', arguments)\n\n/*\n * Vendor \"transition-delay\" support.\n */\n\ntransition-delay()\n vendor('transition-delay', arguments)\n\n/*\n * Vendor \"backface-visibility\" support.\n */\n\nbackface-visibility()\n vendor('backface-visibility', arguments, only: webkit moz ms official)\n\n/*\n * Vendor \"perspective\" support.\n */\n\nperspective()\n if mixin\n vendor('perspective', arguments, only: webkit moz ms official)\n else\n 'perspective(%s)' % arguments\n\n/*\n * Vendor \"perspective-origin\" support.\n */\n\nperspective-origin()\n vendor('perspective-origin', arguments, only: webkit moz ms official)\n\n/*\n * Opacity with conditional IE support.\n */\n\nopacity(n, args...)\n opacity: n args\n if support-for-ie\n if n == inherit or n == initial\n -ms-filter: n args\n filter: n args\n else\n val = round(n * 100)\n if val == 100\n -ms-filter: none args\n filter: none args\n else\n -ms-filter: '\"progid:DXImageTransform.Microsoft.Alpha(Opacity=%s)\"' % val args\n filter: 'alpha(opacity=%s)' % val args\n\n/*\n * Vendor \"text-size-adjust\"\n */\n\ntext-size-adjust()\n vendor('text-size-adjust', arguments)\n\n/*\n * Alias the \"white-space\" property.\n */\n\nwhitespace()\n white-space: arguments\n\n/*\n * Vendor \"box-sizing\" support.\n */\n\nbox-sizing()\n vendor('box-sizing', arguments, only: webkit moz official)\n\n/*\n * Vendor \"box-orient\" support.\n */\n\nbox-orient()\n vendor('box-orient', arguments, only: webkit moz official)\n\n/*\n * Vendor \"box-flex-group\" support.\n */\n\nbox-flex-group()\n vendor('box-flex-group', arguments, only: webkit moz official)\n\n/*\n * Vendor \"box-ordinal-group\" support.\n */\n\nbox-ordinal-group()\n vendor('box-ordinal-group', arguments, only: webkit moz ms official)\n\n\n/*\n * Vendor \"box-align\" support.\n */\n\nbox-align()\n vendor('box-align', arguments, only: webkit moz ms official)\n\n/*\n * Vendor \"box-pack\" support.\n */\n\nbox-pack()\n vendor('box-pack', arguments, only: webkit moz ms official)\n\n/*\n * Vendor \"box-direction\" support.\n */\n\nbox-direction()\n vendor('box-direction', arguments, only: webkit moz ms official)\n\n/*\n * Vendor \"animation\" support.\n */\n\nanimation()\n vendor('animation', arguments)\n\n\n/*\n * Vendor \"animation-name\" support.\n */\n\nanimation-name()\n vendor('animation-name', arguments)\n\n/*\n * Vendor \"animation-duration\" support.\n */\n\nanimation-duration()\n vendor('animation-duration', arguments)\n\n/*\n * Vendor \"animation-delay\" support.\n */\n\nanimation-delay()\n vendor('animation-delay', arguments)\n\n/*\n * Vendor \"animation-direction\" support.\n */\n\nanimation-direction()\n vendor('animation-direction', arguments)\n\n/*\n * Vendor \"animation-iteration-count\" support.\n */\n\nanimation-iteration-count()\n vendor('animation-iteration-count', arguments)\n\n/*\n * Vendor \"animation-timing-function\" support.\n */\n\nanimation-timing-function()\n vendor('animation-timing-function', arguments)\n\n/*\n * Vendor \"animation-play-state\" support.\n */\n\nanimation-play-state()\n vendor('animation-play-state', arguments)\n\n/*\n * Vendor \"animation-fill-mode\" support.\n */\n\nanimation-fill-mode()\n vendor('animation-fill-mode', arguments)\n\n/*\n * Vendor \"hyphens\" support.\n */\n\nhyphens()\n vendor('hyphens', arguments, only: webkit moz ms official)\n\n/*\n * Vendor \"appearance\" support.\n */\n\nappearance()\n vendor('appearance', arguments, only: webkit moz official)\n\n/*\n * Vendor \"tab-size\" support.\n */\n\ntab-size()\n vendor('tab-size', arguments, only: moz o official)\n\n/*\n * Vendor \"overflow-scrolling\" support.\n */\n\noverflow-scrolling()\n vendor('overflow-scrolling', arguments, only: webkit official)\n\n/*\n * Vendor \"text-overflow\" support, , -o- for opera 9.* - 10.*\n */\n\ntext-overflow()\n vendor('text-overflow', arguments, only: official o)\n\n/*\n * Vendor \"text-size-adjust\" support.\n */\ntext-size-adjust()\n vendor('text-size-adjust', arguments, only: official webkit ms)\n\n/*\n * Vendor \"font-smoothing\" support, webkit only.\n */\nfont-smoothing()\n vendor('font-smoothing', arguments, only: webkit)\n\n\n/**\n * Vendor input-placeholder/placeholder support.\n *\n * Examples:\n * // Default syntax\n * body\n * placeholder(color #333, font-weight normal)\n *\n * // The comma is important\n * .placeholder-red\n * placeholder(color red,)\n *\n * // We can pass a function\n * green-placeholder()\n * color green\n * .placeholder-green\n * placeholder(green-placeholder)\n *\n * // We can pass a hash\n * textarea\n * placeholder((font-style italic) (font-weight bold) (padding '4px 10px'))\n */\nplaceholder()\n for v in ':-webkit-input' '-moz' ':-moz' '-ms-input'\n &:{v}-placeholder\n for pair in arguments\n if typeof(pair) == 'function'\n pair()\n else if pair is not null && pair[0] is not null\n {pair[0]}: type(pair[1]) == 'string' ? s(pair[1]) : pair[1]\ninput-placeholder = placeholder\n\n/*\n * Vendor background support (gradients).\n */\n\nbackground()\n if match('-gradient\\(', ''+arguments)\n vendor('background', arguments, vendor-property: false)\n else\n background arguments\n\nbackground-image()\n if match('-gradient\\(', ''+arguments)\n vendor('background-image', arguments, vendor-property: false)\n else\n background-image arguments\n\ncursor()\n if match('-gradient\\(', ''+arguments)\n vendor('cursor', arguments, vendor-property: false)\n else\n cursor arguments\n\nlist-style()\n if match('-gradient\\(', ''+arguments)\n vendor('list-style', arguments, vendor-property: false)\n else\n list-style arguments\n\nlist-style-image()\n if match('-gradient\\(', ''+arguments)\n vendor('list-style-image', arguments, vendor-property: false)\n else\n list-style-image arguments\n","/*\n * Overflow utility. Maps to regular overflow, and adds an ellipsis value.\n *\n * Synopsis:\n *\n * overflow: <type>\n *\n * Examples:\n *\n * overflow: auto\n * overflow: hidden\n * overflow: ellipsis\n *\n */\n\noverflow()\n if arguments[0] == ellipsis\n ellipsis()\n else\n overflow: arguments\n","/*\n * Vendor \"display: flex\" support with fallback to obsolete versions.\n */\n\nflex-version ?= box flex\n\n//\n// 1. Display values\n// - http://www.w3.org/TR/css3-flexbox/#flex-containers\n//\ndisplay(type, args...)\n if flex == type || inline-flex == type\n if box in flex-version\n if flex == type\n display: -ms-flexbox args\n display: vendor-value(box args, only: moz webkit)\n else\n display: -ms-inline-flexbox args\n display: vendor-value(inline-box args, only: moz webkit)\n if flex in flex-version\n display: vendor-value(arguments, only: webkit official) // overwrites old webkit\n else\n display: arguments\n\n/*\n * New syntax for browsers like Google Chrome.\n * Plus a translation to the old syntax, if possible.\n */\n\n\n//\n// 5. Ordering and Orientation\n// - http://www.w3.org/TR/css3-flexbox/#ordering-and-orientation\n//\n-flex-obsolete-direction(direction)\n if box in flex-version\n if row-reverse == direction || column-reverse == direction\n vendor('box-direction', reverse, ignore: ms official)\n\n if row == direction || row-reverse == direction\n vendor('box-orient', horizontal, ignore: ms official)\n else if column == direction || column-reverse == direction\n vendor('box-orient', vertical, ignore: ms official)\n\n-flex-obsolete-wrap(value)\n if box in flex-version\n // WARN: wrap-reverse does not have a box equivalent. This will render in different manners\n // on box vs. flex values.\n if 'wrap' == value || wrap-reverse == value\n vendor('box-lines', multiple, ignore: ms official)\n else if nowrap == value\n vendor('box-lines', single, ignore: ms official)\n\nflex-direction(direction)\n // obsolete\n -flex-obsolete-direction(direction)\n\n // new\n if flex in flex-version\n vendor('flex-direction', arguments, only: webkit ms official)\n\nflex-wrap(value)\n // obsolete\n -flex-obsolete-wrap(value)\n\n if flex in flex-version\n vendor('flex-wrap', arguments, only: webkit ms official)\n\nflex-flow()\n // obsolete\n -flex-obsolete-direction(arguments[0])\n -flex-obsolete-direction(arguments[1])\n -flex-obsolete-wrap(arguments[0])\n -flex-obsolete-wrap(arguments[1])\n\n // new\n if flex in flex-version\n vendor('flex-flow', arguments, only: webkit ms official)\n\n\norder()\n // obsolete\n if box in flex-version\n vendor('box-ordinal-group', arguments, ignore: ms official)\n\n // new\n if flex in flex-version\n vendor('flex-order', arguments, only: ms)\n vendor('order', arguments, only: webkit official)\n\n\n//\n// 7. Flexibility\n// - http://www.w3.org/TR/css3-flexbox/#flexibility\n//\nflex-grow(growth)\n // obsolete\n if box in flex-version\n vendor('box-flex', growth)\n\n // new\n if flex in flex-version\n vendor('flex-grow', arguments, only: webkit official)\n\nflex-basis()\n if flex in flex-version\n vendor('flex-basis', arguments, only: webkit official)\n\nflex-shrink()\n if flex in flex-version\n vendor('flex-shrink', arguments, only: webkit official)\n\nflex(growth)\n\n // obsolete\n if box in flex-version\n shrink = 1\n\n if none == growth || initial == growth\n // Well known values\n shrink = 0 if none == growth\n growth = 0\n else if is-width(growth) == true\n // Basis is defined as the first parameter\n growth = arguments[1] || 0\n shrink = arguments[2] if 3 <= length(arguments)\n else if arguments[1] && is-width(arguments[1]) == false\n // Growth is first and shrink is second\n shrink = arguments[1]\n\n // Since we can't make the distinction between growing and shrinking in the box model, take\n // the one that provides the most flexibility.\n vendor('box-flex', max(growth, shrink), ignore: ms)\n\n // new\n if flex in flex-version\n vendor('flex', arguments, only: webkit ms official)\n\n\n// converts the justification alignment\n-convert-justify(align)\n if flex-start == align\n return start\n else if flex-end == align\n return end\n else if space-around == align\n return distribute\n else if space-between == align\n return justify\n else\n return align\n\n//\n// 8. Alignment\n// - http://www.w3.org/TR/css3-flexbox/#alignment\n//\njustify-content(align)\n // obsolete\n if box in flex-version\n vendor('box-pack', -convert-justify(align), ignore: ms official)\n\n // new\n if flex in flex-version\n vendor('flex-pack', -convert-justify(align), only: ms)\n vendor('justify-content', align, only: webkit official)\n\nalign-content(align)\n // WARN: Obsolete spec does not allow for adjustment here\n if flex in flex-version\n vendor('flex-line-pack', -convert-justify(align), only: ms)\n vendor('align-content', align, only: webkit official)\n\n// converts alignment from 'flex' to normal value\n-convert-alignment(align)\n if flex-start == align\n return start\n else if flex-end == align\n return end\n else\n return align\n\nalign-items(align)\n // obsolete\n if box in flex-version\n vendor('box-align', -convert-alignment(align), ignore: ms official)\n\n // new\n if flex in flex-version\n vendor('flex-align', -convert-alignment(align), only: ms)\n vendor('align-items', arguments, only: webkit official)\n\nalign-self(align)\n // WARN: Obsolete spec does not allow for overriding alignment on individual items.\n if flex in flex-version\n vendor('align-self', align, only: webkit official)\n vendor('flex-item-align', -convert-alignment(align), only: ms)\n","/*\n * border: <color>\n * border: ...\n */\n\nborder(color, args...)\n if color is a 'color'\n border: 1px solid color args\n else\n border: arguments\n"],"sourceRoot":""}]);
46546
46811
  // Exports
46547
46812
  /* harmony default export */ __webpack_exports__["Z"] = (___CSS_LOADER_EXPORT___);
46548
46813