geojs 1.9.2 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/geo.lean.js CHANGED
@@ -31,11 +31,9 @@ var geo_action = {
31
31
  zoom: 'geo_action_zoom',
32
32
  zoomrotate: 'geo_action_zoom_rotate',
33
33
  zoomselect: 'geo_action_zoomselect',
34
- // annotation actions
35
- annotation_line: 'geo_annotation_line',
36
- annotation_polygon: 'geo_annotation_polygon',
37
- annotation_rectangle: 'geo_annotation_rectangle',
38
- annotation_edit_handle: 'geo_annotation_edit_handle'
34
+ // annotation actions -- some are also added by the registry
35
+ annotation_edit_handle: 'geo_annotation_edit_handle',
36
+ annotation_cursor: 'geo_annotation_cursor'
39
37
  };
40
38
  module.exports = geo_action;
41
39
 
@@ -66,7 +64,8 @@ var annotationState = {
66
64
  create: 'create',
67
65
  done: 'done',
68
66
  highlight: 'highlight',
69
- edit: 'edit'
67
+ edit: 'edit',
68
+ cursor: 'cursor'
70
69
  };
71
70
  var annotationActionOwner = 'annotationAction';
72
71
  /**
@@ -221,6 +220,18 @@ var annotation = function annotation(type, args) {
221
220
  this.id = function () {
222
221
  return m_id;
223
222
  };
223
+ /**
224
+ * Assign a new id to this annotation.
225
+ *
226
+ * @returns {this}
227
+ */
228
+
229
+
230
+ this.newId = function () {
231
+ annotationId += 1;
232
+ m_id = annotationId;
233
+ return m_this;
234
+ };
224
235
  /**
225
236
  * Get or set the name of this annotation.
226
237
  *
@@ -399,6 +410,36 @@ var annotation = function annotation(type, args) {
399
410
  m_layer = arg;
400
411
  return m_this;
401
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
+ };
402
443
  /**
403
444
  * Get or set the state of this annotation.
404
445
  *
@@ -423,6 +464,21 @@ var annotation = function annotation(type, args) {
423
464
  annotation: m_this
424
465
  });
425
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
+ }
426
482
  }
427
483
 
428
484
  return m_this;
@@ -455,6 +511,19 @@ var annotation = function annotation(type, args) {
455
511
  input: 'pan'
456
512
  }];
457
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
+
458
527
  default:
459
528
  return [];
460
529
  }
@@ -598,7 +667,7 @@ var annotation = function annotation(type, args) {
598
667
  /* For style objects, re-extend them without recursion. This allows
599
668
  * setting colors without an opacity field, for instance. */
600
669
 
601
- ['style', 'createStyle', 'editStyle', 'editHandleStyle', 'labelStyle', 'highlightStyle'].forEach(function (key) {
670
+ ['style', 'createStyle', 'editStyle', 'editHandleStyle', 'labelStyle', 'highlightStyle', 'cursorStyle'].forEach(function (key) {
602
671
  if (arg1[key] !== undefined) {
603
672
  $.extend(m_options[key], arg1[key]);
604
673
  }
@@ -653,8 +722,8 @@ var annotation = function annotation(type, args) {
653
722
  * current style with the values in the specified object.
654
723
  * @param {*} [arg2] If `arg1` is a string, the new value for that style.
655
724
  * @param {string} [styleType='style'] The name of the style type, such as
656
- * `createStyle`, `editStyle`, `editHandleStyle`, `labelStyle`, or
657
- * `highlightStyle`.
725
+ * `createStyle`, `editStyle`, `editHandleStyle`, `labelStyle`,
726
+ * `highlightStyle`, or `cursorStyle`.
658
727
  * @returns {object|this} Either the entire style object, the value of a
659
728
  * specific style, or the current class instance.
660
729
  */
@@ -713,14 +782,21 @@ var annotation = function annotation(type, args) {
713
782
  */
714
783
 
715
784
  /**
716
- * Calls {@link geo.annotation#style} with `styleType='highlightHandleStyle'`.
717
- * @function highlightHandleStyle
785
+ * Calls {@link geo.annotation#style} with `styleType='highlightStyle'`.
786
+ * @function highlightStyle
718
787
  * @memberof geo.annotation
719
788
  * @instance
720
789
  */
721
790
 
791
+ /**
792
+ * Calls {@link geo.annotation#style} with `styleType='cursorStyle'`.
793
+ * @function cursorStyle
794
+ * @memberof geo.annotation
795
+ * @instance
796
+ */
722
797
 
723
- ['createStyle', 'editStyle', 'editHandleStyle', 'labelStyle', 'highlightStyle'].forEach(function (styleType) {
798
+
799
+ ['createStyle', 'editStyle', 'editHandleStyle', 'labelStyle', 'highlightStyle', 'cursorStyle'].forEach(function (styleType) {
724
800
  m_this[styleType] = function (arg1, arg2) {
725
801
  return m_this.style(arg1, arg2, styleType);
726
802
  };
@@ -746,6 +822,10 @@ var annotation = function annotation(type, args) {
746
822
  return $.extend({}, m_options.style, m_options.editStyle, m_options[state + 'Style']);
747
823
  }
748
824
 
825
+ if (state === annotationState.cursor) {
826
+ return $.extend({}, m_options.style, m_options.editStyle, m_options.createStyle, m_options[state + 'Style']);
827
+ }
828
+
749
829
  return m_options[state + 'Style'] || m_options.style || {};
750
830
  };
751
831
  /**
@@ -2654,6 +2734,8 @@ var lineFeature = __webpack_require__(4708);
2654
2734
 
2655
2735
  var polygonFeature = __webpack_require__(4343);
2656
2736
 
2737
+ var util = __webpack_require__(4634);
2738
+
2657
2739
  var annotation = (__webpack_require__(5784).annotation);
2658
2740
 
2659
2741
  var annotationState = (__webpack_require__(5784).state);
@@ -2722,6 +2804,9 @@ var polygonAnnotation = function polygonAnnotation(args) {
2722
2804
 
2723
2805
  return m_this.options('vertices')[i];
2724
2806
  }
2807
+ },
2808
+ cursorStyle: {
2809
+ position: util.identityFunction
2725
2810
  }
2726
2811
  }, args);
2727
2812
  args.vertices = args.vertices || args.coordinates || [];
@@ -3061,6 +3146,21 @@ polygonAnnotation.defaults = $.extend({}, annotation.defaults, {
3061
3146
  b: 1
3062
3147
  }
3063
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
+ },
3064
3164
  allowBooleanOperations: true
3065
3165
  });
3066
3166
  var polygonRequiredFeatures = {};
@@ -3725,6 +3825,17 @@ var textFeature = __webpack_require__(9757);
3725
3825
  * style object.
3726
3826
  */
3727
3827
 
3828
+ /**
3829
+ * @typedef {geo.util.polyop.spec} geo.util.polyop.annotationLayerSpec
3830
+ * @extends {geo.util.polyop.spec}
3831
+ * @property {string} [keepAnnotations='exact'] Determine which annotations are
3832
+ * present after a boolean operation. `'exact'` replaces modified
3833
+ * annotations with the results; unmodified annotations are left as is.
3834
+ * `'all'` replaces all annotations, so unchanged annotations may be
3835
+ * converted to polygonAnnotations. `'none'` discards all existing
3836
+ * annotations and only keeps modified results.
3837
+ */
3838
+
3728
3839
  /**
3729
3840
  * Layer to handle direct interactions with different features. Annotations
3730
3841
  * (features) can be created by calling mode(<name of feature>) or cancelled
@@ -3892,6 +4003,17 @@ var annotationLayer = function annotationLayer(arg) {
3892
4003
 
3893
4004
  break;
3894
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
+
3895
4017
  default:
3896
4018
  update = m_this.currentAnnotation.processAction(evt);
3897
4019
  break;
@@ -3987,7 +4109,7 @@ var annotationLayer = function annotationLayer(arg) {
3987
4109
 
3988
4110
 
3989
4111
  this._handleMouseMoveModifiers = function (evt) {
3990
- 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)) {
3991
4113
  if (evt.modifiers) {
3992
4114
  var mod = (evt.modifiers.shift ? 's' : '') + (evt.modifiers.ctrl ? 'c' : '') + (evt.modifiers.meta || evt.modifiers.alt ? 'a' : '');
3993
4115
 
@@ -4144,6 +4266,14 @@ var annotationLayer = function annotationLayer(arg) {
4144
4266
  m_this._updateFromEvent(update);
4145
4267
 
4146
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
+ }
4147
4277
  } else if (!m_this.mode() && !m_this.currentAnnotation && m_this.options('clickToEdit')) {
4148
4278
  var highlighted = m_this.annotations().filter(function (ann) {
4149
4279
  return ann.state() === geo_annotation.state.highlight;
@@ -4243,6 +4373,10 @@ var annotationLayer = function annotationLayer(arg) {
4243
4373
  var pos = $.inArray(annotation, m_annotations);
4244
4374
 
4245
4375
  if (pos < 0) {
4376
+ while (m_this.annotationById(annotation.id())) {
4377
+ annotation.newId();
4378
+ }
4379
+
4246
4380
  m_this.geoTrigger(geo_event.annotation.add_before, {
4247
4381
  annotation: annotation
4248
4382
  });
@@ -4374,7 +4508,8 @@ var annotationLayer = function annotationLayer(arg) {
4374
4508
 
4375
4509
 
4376
4510
  this.modes = {
4377
- edit: 'edit'
4511
+ edit: 'edit',
4512
+ cursor: 'cursor'
4378
4513
  };
4379
4514
  /* Keys are short-hand for preferred event modifiers. Values are classes to
4380
4515
  * apply to the map node. */
@@ -4390,11 +4525,13 @@ var annotationLayer = function annotationLayer(arg) {
4390
4525
  *
4391
4526
  * @param {string|null} [arg] `undefined` to get the current mode, `null` to
4392
4527
  * stop creating/editing, `this.modes.edit` (`'edit'`) plus an annotation
4393
- * to switch to edit mode, or the name of the type of annotation to
4394
- * 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
4395
4531
  * {@link geo.listAnnotations}.
4396
- * @param {geo.annotation} [editAnnotation] If `arg === this.modes.edit`,
4397
- * 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.
4398
4535
  * @param {object} [options] Additional options to pass when creating an
4399
4536
  * annotation.
4400
4537
  * @returns {string|null|this} The current mode or the layer.
@@ -4406,13 +4543,13 @@ var annotationLayer = function annotationLayer(arg) {
4406
4543
  return m_mode;
4407
4544
  }
4408
4545
 
4409
- 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) {
4410
4547
  var createAnnotation,
4411
4548
  actions,
4412
4549
  mapNode = m_this.map().node(),
4413
4550
  oldMode = m_mode;
4414
4551
  m_mode = arg;
4415
- 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));
4416
4553
 
4417
4554
  if (!m_mode || m_mode === m_this.modes.edit) {
4418
4555
  Object.values(m_this._booleanClasses).forEach(function (c) {
@@ -4444,6 +4581,13 @@ var annotationLayer = function annotationLayer(arg) {
4444
4581
  m_this.modified();
4445
4582
  m_this.draw();
4446
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;
4447
4591
  }
4448
4592
 
4449
4593
  m_this.currentAnnotation = null;
@@ -4453,6 +4597,12 @@ var annotationLayer = function annotationLayer(arg) {
4453
4597
  m_this.currentAnnotation = editAnnotation;
4454
4598
  m_this.currentAnnotation.state(geo_annotation.state.edit);
4455
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);
4456
4606
  } else if (registry.registries.annotations[m_mode]) {
4457
4607
  createAnnotation = registry.registries.annotations[m_mode].func;
4458
4608
  }
@@ -4467,6 +4617,9 @@ var annotationLayer = function annotationLayer(arg) {
4467
4617
  m_this.currentAnnotation = createAnnotation(options);
4468
4618
  m_this.addAnnotation(m_this.currentAnnotation, null);
4469
4619
  actions = m_this.currentAnnotation.actions(geo_annotation.state.create);
4620
+ }
4621
+
4622
+ if (actions) {
4470
4623
  $.each(actions, function (idx, action) {
4471
4624
  m_this.map().interactor().addAction(action);
4472
4625
  });
@@ -4477,7 +4630,7 @@ var annotationLayer = function annotationLayer(arg) {
4477
4630
  oldMode: oldMode
4478
4631
  });
4479
4632
 
4480
- if (oldMode === m_this.modes.edit) {
4633
+ if (oldMode === m_this.modes.edit || oldMode === m_this.modes.cursor) {
4481
4634
  m_this.modified();
4482
4635
  }
4483
4636
  }
@@ -5177,13 +5330,19 @@ var annotationLayer = function annotationLayer(arg) {
5177
5330
  this.toPolygonList = function (opts) {
5178
5331
  var poly = [];
5179
5332
  opts = opts || {};
5180
- opts.annotationIndices = [];
5333
+ var indices = [];
5334
+
5335
+ if (!opts.annotationIndices) {
5336
+ opts.annotationIndices = {};
5337
+ }
5338
+
5339
+ opts.annotationIndices[m_this.id()] = indices;
5181
5340
  m_annotations.forEach(function (annotation, idx) {
5182
5341
  if (annotation.toPolygonList) {
5183
5342
  annotation.toPolygonList(opts).forEach(function (p) {
5184
5343
  return poly.push(p);
5185
5344
  });
5186
- opts.annotationIndices.push(idx);
5345
+ indices.push(idx);
5187
5346
  }
5188
5347
  });
5189
5348
  return poly;
@@ -5192,8 +5351,8 @@ var annotationLayer = function annotationLayer(arg) {
5192
5351
  * Replace appropriate annotations with a list of polygons.
5193
5352
  *
5194
5353
  * @param {geo.polygonList} poly A list of polygons.
5195
- * @param {geo.util.polyop.spec} [opts] This contains annotationIndices and
5196
- * correspondence used to track annotations.
5354
+ * @param {geo.util.polyop.annotationLayerSpec} [opts] This contains
5355
+ * annotationIndices and correspondence used to track annotations.
5197
5356
  * @returns {this}
5198
5357
  */
5199
5358
 
@@ -5209,16 +5368,17 @@ var annotationLayer = function annotationLayer(arg) {
5209
5368
  var keepIds = {};
5210
5369
  var reusedIds = {};
5211
5370
  var correspond, exact, annot;
5371
+ var indices = (opts.annotationIndices || {})[m_this.id()];
5212
5372
 
5213
- if (opts.annotationIndices && opts.correspond && opts.correspond.poly1 && opts.annotationIndices.length === opts.correspond.poly1.length) {
5373
+ if (indices && opts.correspond && opts.correspond.poly1 && indices.length === opts.correspond.poly1.length) {
5214
5374
  correspond = opts.correspond.poly1;
5215
5375
  exact = opts.correspond.exact1;
5216
5376
  annot = m_this.annotations();
5217
5377
  }
5218
5378
 
5219
- if (keep !== 'all' && keep !== 'none') {
5379
+ if (keep !== 'all' && keep !== 'none' && annot) {
5220
5380
  annot.forEach(function (oldAnnot, idx) {
5221
- if (opts.annotationIndices.indexOf(idx) < 0) {
5381
+ if (indices.indexOf(idx) < 0) {
5222
5382
  keepIds[oldAnnot.id()] = true;
5223
5383
  }
5224
5384
  });
@@ -5245,7 +5405,7 @@ var annotationLayer = function annotationLayer(arg) {
5245
5405
  for (var i = 0; i < correspond.length; i += 1) {
5246
5406
  if (correspond[i] && correspond[i].indexOf(idx) >= 0) {
5247
5407
  var _ret = function () {
5248
- var orig = annot[opts.annotationIndices[i]];
5408
+ var orig = annot[indices[i]];
5249
5409
 
5250
5410
  if (keep !== 'all' && keep !== 'none' && exact && exact[i] && exact[i].indexOf(idx) >= 0) {
5251
5411
  keepIds[orig.id()] = true;
@@ -5297,7 +5457,7 @@ var annotationLayer = function annotationLayer(arg) {
5297
5457
 
5298
5458
 
5299
5459
  polyAnnot.forEach(function (p) {
5300
- m_this.addAnnotation(registry.createAnnotation('polygon', p), m_this.gcs(), false);
5460
+ m_this.addAnnotation(registry.createAnnotation('polygon', p), m_this.map().gcs(), false);
5301
5461
  update = true;
5302
5462
  });
5303
5463
 
@@ -9853,6 +10013,34 @@ geo_event.annotation.mode = 'geo_annotation_mode';
9853
10013
  */
9854
10014
 
9855
10015
  geo_event.annotation.boolean = 'geo_annotation_boolean';
10016
+ /**
10017
+ * Triggered when an annotation is in cursor mode and the mouse is clicked.
10018
+ *
10019
+ * @event geo.event.annotation.cursor_click
10020
+ * @type {geo.event.base}
10021
+ * @property {geo.annotation} annotation The annotation that is being operated
10022
+ * on.
10023
+ * @property {string} operation The operation being performed.
10024
+ * @property {boolean} [cancel] If the handle sets this to false, don't apply
10025
+ * the operation to the annotation layer.
10026
+ * @property {object} event The triggering event.
10027
+ */
10028
+
10029
+ geo_event.annotation.cursor_click = 'geo_annotation_cursor_click';
10030
+ /**
10031
+ * Triggered when an annotation is in cursor mode and an action occurs.
10032
+ *
10033
+ * @event geo.event.annotation.cursor_action
10034
+ * @type {geo.event.base}
10035
+ * @property {geo.annotation} annotation The annotation that is being operated
10036
+ * on.
10037
+ * @property {string} operation The operation being performed.
10038
+ * @property {boolean} [cancel] If the handle sets this to false, don't apply
10039
+ * the operation to the annotation layer.
10040
+ * @property {object} event The triggering event.
10041
+ */
10042
+
10043
+ geo_event.annotation.cursor_action = 'geo_annotation_cursor_action';
9856
10044
  module.exports = geo_event;
9857
10045
 
9858
10046
  /***/ }),
@@ -15578,9 +15766,12 @@ var util = __webpack_require__(4634);
15578
15766
  * divided by the sine of half the angle between segments, then a bevel join
15579
15767
  * is used instead. This is a single value that applies to all lines. If a
15580
15768
  * function, it is called with `(data)`.
15581
- * @property {boolean|function} [uniformLine=false] Boolean indicating if each
15582
- * line has a uniform style (uniform stroke color, opacity, and width). Can
15583
- * vary by line.
15769
+ * @property {boolean|string|function} [uniformLine=false] Boolean indicating
15770
+ * if each line has a uniform style (uniform stroke color, opacity, and
15771
+ * width). Can vary by line. A value of `'drop'` will modify rendered
15772
+ * vertex order by dropping duplicates and setting later values to zero
15773
+ * opacity. This can be faster but makes it so updating the style array
15774
+ * can no longer be used.
15584
15775
  * @property {number|function} [antialiasing] Antialiasing distance in pixels.
15585
15776
  * Values must be non-negative. A value greater than 1 will produce a
15586
15777
  * visible gradient. This is a single value that applies to all lines.
@@ -19014,8 +19205,8 @@ var Mousetrap = __webpack_require__(3345);
19014
19205
  * event must occur within this time in milliseconds of the mouse down
19015
19206
  * event for it to be considered a click.
19016
19207
  * @property {boolean|number} [click.cancelOnMove=true] If true, don't generate
19017
- * click events if the mouse moved at all. If a positive number, the distance
19018
- * at which to cancel click events when the mouse moves.
19208
+ * click events if the mouse moved at all. If a positive number, the
19209
+ * distance at which to cancel click events when the mouse moves.
19019
19210
  * @property {object} [keyboard] An object describing which keyboard events are
19020
19211
  * handled.
19021
19212
  * @property {object} [keyboard.actions] An object with different actions that
@@ -19028,6 +19219,9 @@ var Mousetrap = __webpack_require__(3345);
19028
19219
  * an object with keys of the meta keys that are required to be down or
19029
19220
  * up for that scale action to trigger. If the value of the meta key is
19030
19221
  * truthy, it must be down. If `false`, it must be up.
19222
+ * @property {string[]} [keyboard.metakeyMouseEvents] A list of meta keys
19223
+ * * that, when typed singly, trigger a repeat of the last mousemove or
19224
+ * actionmove event so that listeners can update metakey information.
19031
19225
  * @property {boolean} [keyboard.focusHighlight=true] If truthy, when the map
19032
19226
  * gains focus, a highlight style is shown around it. This gives an
19033
19227
  * indicator that keyboard events will affect the map, but may not be
@@ -19130,6 +19324,7 @@ var mapInteractor = function mapInteractor(args) {
19130
19324
  m_boundKeys,
19131
19325
  m_touchHandler,
19132
19326
  m_state,
19327
+ m_nextStateId = 0,
19133
19328
  m_queue,
19134
19329
  $node,
19135
19330
  m_selectionLayer = null,
@@ -19327,6 +19522,11 @@ var mapInteractor = function mapInteractor(args) {
19327
19522
  }
19328
19523
  },
19329
19524
 
19525
+ /* This is a list of meta keys that when typed singly trigger a repeat
19526
+ * of the last mousemove or actionmove event so that listeners can
19527
+ * update metakey information. */
19528
+ metakeyMouseEvents: ['shift', 'ctrl', 'shift+ctrl', 'shift+alt', 'shift+meta'],
19529
+
19330
19530
  /* if focusHighlight is truthy, then a class is added to the map such
19331
19531
  * that when the map gets focus, it is indicated inside the border of
19332
19532
  * the map -- browsers usually show focus on the outside, which isn't
@@ -19754,6 +19954,43 @@ var mapInteractor = function mapInteractor(args) {
19754
19954
  m_touchHandler.lastEventType = evtType[2];
19755
19955
  }
19756
19956
  };
19957
+ /**
19958
+ * Repeat a mousemove or actionmove event with new metakey information.
19959
+ *
19960
+ * @param {event} [evt] A Mousetrap event with the key change.
19961
+ * @fires geo.event.mousemove
19962
+ * @fires geo.event.actionmove
19963
+ */
19964
+
19965
+
19966
+ this._repeatMouseMoveEvent = function (evt) {
19967
+ if (!m_mouse || !m_mouse.modifiers) {
19968
+ return;
19969
+ }
19970
+
19971
+ var old = {
19972
+ alt: m_mouse.modifiers.alt,
19973
+ ctrl: m_mouse.modifiers.ctrl,
19974
+ meta: m_mouse.modifiers.meta,
19975
+ shift: m_mouse.modifiers.shift
19976
+ };
19977
+
19978
+ m_this._getMouseModifiers(evt);
19979
+
19980
+ if (m_mouse.modifiers.alt === old.alt && m_mouse.modifiers.ctrl === old.ctrl && m_mouse.modifiers.meta === old.meta && m_mouse.modifiers.shift === old.shift) {
19981
+ return;
19982
+ }
19983
+
19984
+ if (m_state.boundDocumentHandlers) {
19985
+ m_this.map().geoTrigger(geo_event.actionmove, {
19986
+ state: m_this.state(),
19987
+ mouse: m_this.mouse(),
19988
+ event: evt
19989
+ });
19990
+ } else {
19991
+ m_this.map().geoTrigger(geo_event.mousemove, m_this.mouse());
19992
+ }
19993
+ };
19757
19994
  /**
19758
19995
  * Retrigger a mouse movement with the current mouse state.
19759
19996
  * @fires geo.event.mousemove
@@ -19822,6 +20059,14 @@ var mapInteractor = function mapInteractor(args) {
19822
20059
  }
19823
20060
  }
19824
20061
 
20062
+ if (m_options.keyboard.metakeyMouseEvents) {
20063
+ m_options.keyboard.metakeyMouseEvents.forEach(function (meta) {
20064
+ m_keyHandler.bind(meta, m_this._repeatMouseMoveEvent, 'keydown');
20065
+ m_keyHandler.bind(meta, m_this._repeatMouseMoveEvent, 'keyup');
20066
+ bound.push(meta);
20067
+ });
20068
+ }
20069
+
19825
20070
  m_boundKeys = bound;
19826
20071
  }
19827
20072
 
@@ -20236,6 +20481,7 @@ var mapInteractor = function mapInteractor(args) {
20236
20481
  kind: 'move'
20237
20482
  }; // store the state object
20238
20483
 
20484
+ m_nextStateId += 1;
20239
20485
  m_state = {
20240
20486
  action: action,
20241
20487
  actionRecord: actionRecord,
@@ -20243,6 +20489,7 @@ var mapInteractor = function mapInteractor(args) {
20243
20489
  initialZoom: map.zoom(),
20244
20490
  initialRotation: map.rotation(),
20245
20491
  initialEventRotation: evt.rotation,
20492
+ stateId: m_nextStateId,
20246
20493
  delta: {
20247
20494
  x: 0,
20248
20495
  y: 0
@@ -21370,7 +21617,7 @@ var mapInteractor = function mapInteractor(args) {
21370
21617
  preventDefault: function preventDefault() {},
21371
21618
  simulated: true
21372
21619
  };
21373
- m_keyHandler.trigger(keys);
21620
+ m_keyHandler.trigger(keys, options.event);
21374
21621
  return;
21375
21622
  }
21376
21623
 
@@ -26589,6 +26836,8 @@ module.exports = quadFeature;
26589
26836
 
26590
26837
  var $ = __webpack_require__(5638);
26591
26838
 
26839
+ var geo_action = __webpack_require__(7839);
26840
+
26592
26841
  var widgets = {
26593
26842
  dom: {}
26594
26843
  };
@@ -27047,6 +27296,7 @@ util.registerAnnotation = function (name, func, features) {
27047
27296
  func: func,
27048
27297
  features: features || {}
27049
27298
  };
27299
+ geo_action['annotation_' + name] = 'geo_annotation_' + name;
27050
27300
  return old;
27051
27301
  };
27052
27302
  /**
@@ -27563,7 +27813,7 @@ module.exports = sceneObject;
27563
27813
  * @constant
27564
27814
  * @type {string}
27565
27815
  */
27566
- module.exports = "c77ab7869ca682dfc42f6a12a7ad2121687e94b8";
27816
+ module.exports = "4deaf9194bd7164462cae2b89ec30e85ead7ff6e";
27567
27817
 
27568
27818
  /***/ }),
27569
27819
 
@@ -33441,7 +33691,9 @@ var trackFeature = function trackFeature(arg) {
33441
33691
  position: util.identityFunction,
33442
33692
  time: function time(d, i) {
33443
33693
  return d.t !== undefined ? d.t : i;
33444
- }
33694
+ },
33695
+ uniformLine: 'drop',
33696
+ closed: false
33445
33697
  }, arg.style === undefined ? {} : arg.style);
33446
33698
  var markerStyle = $.extend(true, {}, {
33447
33699
  rotateWithMap: true,
@@ -40155,6 +40407,7 @@ function generateCorrespondence(poly1, poly2, newpoly, results) {
40155
40407
  results[ekey] = Array(poly.length);
40156
40408
  poly.forEach(function (p, idx) {
40157
40409
  var found = {};
40410
+ var missed = 0;
40158
40411
  p.forEach(function (h) {
40159
40412
  return h.forEach(function (pt) {
40160
40413
  var key = '_' + pt[0] + '_' + pt[1];
@@ -40163,11 +40416,13 @@ function generateCorrespondence(poly1, poly2, newpoly, results) {
40163
40416
  pts[key].forEach(function (val) {
40164
40417
  found[val] = (found[val] || 0) + 1;
40165
40418
  });
40419
+ } else {
40420
+ missed += 1;
40166
40421
  }
40167
40422
  });
40168
40423
  });
40169
40424
  Object.keys(found).forEach(function (nidx) {
40170
- if (found[nidx] === counts[+nidx]) {
40425
+ if (found[nidx] === counts[+nidx] && !missed && p.length === newpoly[+nidx].length) {
40171
40426
  if (!results[ekey][idx]) {
40172
40427
  results[ekey][idx] = [];
40173
40428
  }
@@ -40683,7 +40938,7 @@ module.exports = vectorFeature;
40683
40938
  * @constant
40684
40939
  * @type {string}
40685
40940
  */
40686
- module.exports = "1.9.2";
40941
+ module.exports = "1.10.0";
40687
40942
 
40688
40943
  /***/ }),
40689
40944
 
@@ -42082,6 +42337,7 @@ var webgl_lineFeature = function webgl_lineFeature(arg) {
42082
42337
  closedVal = closed[i];
42083
42338
  firstPosIdx3 = posIdx3;
42084
42339
  maxj = lineItem.length + (closedVal === 2 ? 1 : 0);
42340
+ var skipped = 0;
42085
42341
 
42086
42342
  for (j = 0; j < maxj; j += 1, posIdx3 += 3) {
42087
42343
  lidx = j;
@@ -42148,9 +42404,20 @@ var webgl_lineFeature = function webgl_lineFeature(arg) {
42148
42404
  }
42149
42405
 
42150
42406
  if (j) {
42407
+ if (uniform === 'drop' && j > 1 && position[vert[0].pos] === position[vert[1].pos] && position[vert[0].pos + 1] === position[vert[1].pos + 1]) {
42408
+ skipped += 1;
42409
+ continue;
42410
+ }
42151
42411
  /* zero out the z position. This can be changed if we handle it in
42152
42412
  * the shader. */
42413
+
42414
+
42153
42415
  for (k = 0; k < orderLen; k += 1, dest += 1, dest3 += 3) {
42416
+ if (uniform === 'drop' && vert[0].strokeOpacity <= 0 && vert[1].strokeOpacity <= 0) {
42417
+ strokeOpacityBuf[dest] = -1;
42418
+ continue;
42419
+ }
42420
+
42154
42421
  orderk0 = order[k][0];
42155
42422
  v1 = vert[orderk0];
42156
42423
  v2 = vert[1 - orderk0];
@@ -42193,6 +42460,12 @@ var webgl_lineFeature = function webgl_lineFeature(arg) {
42193
42460
  }
42194
42461
  }
42195
42462
  }
42463
+
42464
+ if (skipped) {
42465
+ for (k = 0; k < skipped * orderLen; k += 1, dest += 1, dest3 += 3) {
42466
+ strokeOpacityBuf[dest] = -1;
42467
+ }
42468
+ }
42196
42469
  }
42197
42470
 
42198
42471
  if (!onlyStyle) {
@@ -46432,7 +46705,7 @@ var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_g
46432
46705
  var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___);
46433
46706
  var ___CSS_LOADER_URL_REPLACEMENT_3___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_3___);
46434
46707
  // Module
46435
- ___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":""}]);
46708
+ ___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":""}]);
46436
46709
  // Exports
46437
46710
  /* harmony default export */ __webpack_exports__["Z"] = (___CSS_LOADER_EXPORT___);
46438
46711