@foodmarketmaker/mapag 0.0.20 → 0.0.22

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.
@@ -14625,6 +14625,168 @@ class CensusTractMapper {
14625
14625
  };
14626
14626
  }
14627
14627
 
14628
+ class CropSequenceMapper {
14629
+ static PMTILES = 'pmtiles://https://foodmarketmaker-upload-data.s3.us-west-2.amazonaws.com/tiles/NationalCSB_2017_2024_rev23.pmtiles';
14630
+ FILL_LAYER_ID = 'cropsequence-layer';
14631
+ LINE_LAYER_ID = 'cropsequence-layer-line';
14632
+ LABEL_LAYER_ID = 'cropsequence-layer-label';
14633
+ SOURCE_ID = 'cropsequence-source';
14634
+ SOURCE_LAYER = 'NationalCSB_2017_2024_rev23';
14635
+ settings = signal(new CropSequenceSettings(), ...(ngDevMode ? [{ debugName: "settings" }] : []));
14636
+ current = null;
14637
+ currentFeatureID = undefined;
14638
+ over = signal(null, ...(ngDevMode ? [{ debugName: "over" }] : []));
14639
+ constructor(settings) {
14640
+ if (settings) {
14641
+ this.settings.set({
14642
+ ...this.settings(),
14643
+ ...settings
14644
+ });
14645
+ }
14646
+ const _ = effect(() => {
14647
+ const settings = this.settings();
14648
+ this._update(settings);
14649
+ }, ...(ngDevMode ? [{ debugName: "_" }] : []));
14650
+ }
14651
+ update(settings) {
14652
+ this.settings.set({ ...this.settings(), ...settings });
14653
+ }
14654
+ _update(settings) {
14655
+ if (!this.map) {
14656
+ return;
14657
+ }
14658
+ const map = this.map;
14659
+ if (settings.visible) {
14660
+ map.setLayoutProperty(this.FILL_LAYER_ID, 'visibility', 'visible');
14661
+ map.setLayoutProperty(this.LINE_LAYER_ID, 'visibility', 'visible');
14662
+ }
14663
+ else {
14664
+ map.setLayoutProperty(this.FILL_LAYER_ID, 'visibility', 'none');
14665
+ map.setLayoutProperty(this.LINE_LAYER_ID, 'visibility', 'none');
14666
+ }
14667
+ map.setPaintProperty(this.FILL_LAYER_ID, 'fill-color', settings.fillColor);
14668
+ map.setPaintProperty(this.FILL_LAYER_ID, 'fill-opacity', settings.fillOpacity);
14669
+ map.setPaintProperty(this.LINE_LAYER_ID, 'line-color', settings.borderColor);
14670
+ map.setPaintProperty(this.LINE_LAYER_ID, 'line-width', settings.borderWidth);
14671
+ map.setPaintProperty(this.LINE_LAYER_ID, 'line-opacity', settings.borderOpacity);
14672
+ const labelsVisible = settings.visible && settings.labelsVisible;
14673
+ map.setLayoutProperty(this.LABEL_LAYER_ID, 'visibility', labelsVisible ? 'visible' : 'none');
14674
+ map.setPaintProperty(this.LABEL_LAYER_ID, 'text-color', settings.labelsColor);
14675
+ map.setPaintProperty(this.LABEL_LAYER_ID, 'text-halo-color', settings.labelsHaloColor);
14676
+ map.setPaintProperty(this.LABEL_LAYER_ID, 'text-halo-width', settings.labelsHaloWidth);
14677
+ map.setPaintProperty(this.LABEL_LAYER_ID, 'text-opacity', settings.labelsOpacity);
14678
+ map.setLayoutProperty(this.LABEL_LAYER_ID, 'text-size', settings.labelsSize);
14679
+ map.setLayoutProperty(this.LABEL_LAYER_ID, 'text-allow-overlap', settings.labelOverlap);
14680
+ }
14681
+ create() {
14682
+ if (!this.map) {
14683
+ return;
14684
+ }
14685
+ const map = this.map;
14686
+ let PMTILES_URL = CropSequenceMapper.PMTILES;
14687
+ AddSource(map, this.SOURCE_ID, {
14688
+ type: 'vector',
14689
+ url: PMTILES_URL,
14690
+ });
14691
+ const addedFill = AddLayer(map, {
14692
+ id: this.FILL_LAYER_ID,
14693
+ source: this.SOURCE_ID,
14694
+ "source-layer": this.SOURCE_LAYER,
14695
+ type: 'fill',
14696
+ }, StandardLayersMapper.POLYGONS_BACKGROUND);
14697
+ map.showTileBoundaries = true;
14698
+ AddLayer(map, {
14699
+ id: this.LINE_LAYER_ID,
14700
+ source: this.SOURCE_ID,
14701
+ "source-layer": this.SOURCE_LAYER,
14702
+ type: 'line',
14703
+ }, StandardLayersMapper.POLYGONS_BACKGROUND);
14704
+ AddLayer(map, {
14705
+ id: this.LABEL_LAYER_ID,
14706
+ source: this.SOURCE_ID,
14707
+ "source-layer": this.SOURCE_LAYER,
14708
+ type: 'symbol',
14709
+ layout: {
14710
+ 'text-field': ['get', 'name'],
14711
+ 'text-font': ['Open Sans Regular'],
14712
+ 'text-size': this.settings().labelsSize,
14713
+ 'text-allow-overlap': this.settings().labelOverlap,
14714
+ },
14715
+ paint: {
14716
+ 'text-color': this.settings().labelsColor,
14717
+ 'text-halo-color': this.settings().labelsHaloColor,
14718
+ 'text-halo-width': this.settings().labelsHaloWidth,
14719
+ },
14720
+ }, StandardLayersMapper.POLYGONS_BACKGROUND);
14721
+ this._update(this.settings());
14722
+ if (!addedFill) {
14723
+ return;
14724
+ }
14725
+ map.on('mousemove', this.FILL_LAYER_ID, (e) => {
14726
+ this.over.set(e.features && e.features.length > 0 ? e.features[0] : null);
14727
+ });
14728
+ map.on('click', this.FILL_LAYER_ID, (e) => {
14729
+ // Publish
14730
+ this.over.set(e.features && e.features.length > 0 ? e.features[0] : null);
14731
+ if (e.features && e.features.length > 0) {
14732
+ const feature = e.features[0];
14733
+ const coordinates = e.lngLat;
14734
+ console.log('Feature properties:', feature.properties);
14735
+ const name = feature.properties
14736
+ ? feature.properties['name']
14737
+ : 'Unknown';
14738
+ // Ensure that if the popup is already open, we don't create a new one
14739
+ if (this.popup) {
14740
+ this.popup.remove();
14741
+ }
14742
+ const fields = feature.properties
14743
+ ? Object.entries(feature.properties)
14744
+ .map(([key, value]) => `<strong>${key}:</strong> ${value}`)
14745
+ .join('<br/>')
14746
+ : '';
14747
+ this.currentFeatureID = feature?.properties?.['globalid'];
14748
+ this.popup = new Popup({ maxWidth: '400px' })
14749
+ .setLngLat(coordinates)
14750
+ .setHTML(`<strong>Watershed:</strong> ${name}<hr /><br/>${fields}`)
14751
+ .addTo(map);
14752
+ }
14753
+ });
14754
+ }
14755
+ async onReady(map, svc) {
14756
+ this.map = map;
14757
+ this.create();
14758
+ }
14759
+ reset() { }
14760
+ clear() {
14761
+ if (this.map) {
14762
+ this.map.removeLayer(this.FILL_LAYER_ID);
14763
+ this.map.removeLayer(this.LINE_LAYER_ID);
14764
+ this.map.removeLayer(this.LABEL_LAYER_ID);
14765
+ this.map.removeSource(this.SOURCE_ID);
14766
+ }
14767
+ }
14768
+ legends;
14769
+ count = 0;
14770
+ total = 0;
14771
+ map;
14772
+ popup = null;
14773
+ }
14774
+ class CropSequenceSettings {
14775
+ visible = true;
14776
+ fillColor = '#0000ff';
14777
+ fillOpacity = 0.1;
14778
+ borderColor = '#01018b';
14779
+ borderWidth = 1;
14780
+ borderOpacity = 1.0;
14781
+ labelsVisible = true;
14782
+ labelsSize = 10;
14783
+ labelsColor = '#000000';
14784
+ labelsHaloColor = '#ffffff';
14785
+ labelsHaloWidth = 1;
14786
+ labelsOpacity = 1.0;
14787
+ labelOverlap = false;
14788
+ }
14789
+
14628
14790
  class CroplandDataLayerMapper {
14629
14791
  static PMTILES = 'pmtiles://https://foodmarketmaker-upload-data.s3.us-west-2.amazonaws.com/tiles/cdl_2024_30m.pmtiles';
14630
14792
  LAYER_ID = 'cropland-data-layer';
@@ -15574,18 +15736,36 @@ class NAASSettings {
15574
15736
  }
15575
15737
 
15576
15738
  class NaicsMapperSettings {
15739
+ naicsCode;
15577
15740
  type = 'circle';
15578
15741
  visible = true;
15579
- radius = 8;
15580
- color = '#1f77b4';
15742
+ color = '#1f77b4'; // Both Icon and Circle color
15581
15743
  opacity = 0.8;
15582
- strokeWidth = 1;
15744
+ radius = 7;
15745
+ strokeWidth = 0;
15583
15746
  strokeColor = '#ffffff';
15584
15747
  iconUrl = '';
15585
15748
  iconName = 'naics-icon';
15586
15749
  iconSize = 0.8;
15587
15750
  iconAllowOverlap = true;
15588
15751
  iconSdf = false;
15752
+ iconHaloWidth = 0;
15753
+ iconHaloColor = '#000000';
15754
+ iconOpacity = 1;
15755
+ heatColor = [
15756
+ 'interpolate',
15757
+ ['linear'],
15758
+ ['heatmap-density'],
15759
+ 0, 'rgba(0, 0, 255, 0)',
15760
+ 0.1, 'royalblue',
15761
+ 0.3, 'cyan',
15762
+ 0.5, 'lime',
15763
+ 0.7, 'yellow',
15764
+ 1, 'red',
15765
+ ];
15766
+ heatWeight = 1;
15767
+ heatIntensity = 1;
15768
+ heatRadius = 1;
15589
15769
  }
15590
15770
  class NaicsMapper {
15591
15771
  legends = [];
@@ -15602,7 +15782,6 @@ class NaicsMapper {
15602
15782
  CIRCLE_LAYER_ID;
15603
15783
  ICON_LAYER_ID;
15604
15784
  HEATMAP_LAYER_ID;
15605
- currentFilter;
15606
15785
  settings = signal(new NaicsMapperSettings(), ...(ngDevMode ? [{ debugName: "settings" }] : []));
15607
15786
  constructor(settings, id = 'naics-' + Math.random().toString(36)) {
15608
15787
  this.id = id;
@@ -15651,6 +15830,9 @@ class NaicsMapper {
15651
15830
  map.setLayoutProperty(this.ICON_LAYER_ID, 'icon-size', settings.iconSize);
15652
15831
  map.setPaintProperty(this.ICON_LAYER_ID, 'icon-color', settings.color);
15653
15832
  map.setLayoutProperty(this.ICON_LAYER_ID, 'icon-allow-overlap', settings.iconAllowOverlap);
15833
+ map.setPaintProperty(this.ICON_LAYER_ID, 'icon-opacity', settings.iconOpacity);
15834
+ map.setPaintProperty(this.ICON_LAYER_ID, 'icon-halo-width', settings.iconHaloWidth);
15835
+ map.setPaintProperty(this.ICON_LAYER_ID, 'icon-halo-color', settings.iconHaloColor);
15654
15836
  }
15655
15837
  break;
15656
15838
  case 'heatmap':
@@ -15658,6 +15840,9 @@ class NaicsMapper {
15658
15840
  map.setLayoutProperty(this.HEATMAP_LAYER_ID, 'visibility', settings.visible ? 'visible' : 'none');
15659
15841
  map.setPaintProperty(this.HEATMAP_LAYER_ID, 'heatmap-radius', settings.radius);
15660
15842
  map.setPaintProperty(this.HEATMAP_LAYER_ID, 'heatmap-opacity', settings.opacity);
15843
+ map.setPaintProperty(this.HEATMAP_LAYER_ID, 'heatmap-color', settings.heatColor);
15844
+ map.setPaintProperty(this.HEATMAP_LAYER_ID, 'heatmap-weight', settings.heatWeight);
15845
+ map.setPaintProperty(this.HEATMAP_LAYER_ID, 'heatmap-intensity', settings.heatIntensity);
15661
15846
  }
15662
15847
  break;
15663
15848
  }
@@ -15671,7 +15856,6 @@ class NaicsMapper {
15671
15856
  this.count = 0;
15672
15857
  this.total = 0;
15673
15858
  this.legends = [];
15674
- this.currentFilter = undefined;
15675
15859
  }
15676
15860
  clear() {
15677
15861
  if (!this.map) {
@@ -15686,7 +15870,6 @@ class NaicsMapper {
15686
15870
  this.map.off('touchend', this.CIRCLE_LAYER_ID, this.onClick);
15687
15871
  this.map.off('touchend', this.ICON_LAYER_ID, this.onClick);
15688
15872
  this.count = 0;
15689
- this.currentFilter = undefined;
15690
15873
  }
15691
15874
  updateLegends() { }
15692
15875
  // Method to create PMTiles layers
@@ -15784,6 +15967,9 @@ class NaicsMapper {
15784
15967
  paint: {
15785
15968
  // Additional paint properties can be added here if needed
15786
15969
  'icon-color': settings.color,
15970
+ 'icon-opacity': settings.iconOpacity,
15971
+ 'icon-halo-width': settings.iconHaloWidth,
15972
+ 'icon-halo-color': settings.iconHaloColor,
15787
15973
  }
15788
15974
  }, StandardLayersMapper.POINTS);
15789
15975
  break;
@@ -15797,19 +15983,9 @@ class NaicsMapper {
15797
15983
  visibility: settings.visible ? 'visible' : 'none',
15798
15984
  },
15799
15985
  paint: {
15800
- 'heatmap-weight': 1,
15801
- 'heatmap-intensity': 1,
15802
- 'heatmap-color': [
15803
- 'interpolate',
15804
- ['linear'],
15805
- ['heatmap-density'],
15806
- 0, 'rgba(0, 0, 255, 0)',
15807
- 0.1, 'royalblue',
15808
- 0.3, 'cyan',
15809
- 0.5, 'lime',
15810
- 0.7, 'yellow',
15811
- 1, 'red',
15812
- ],
15986
+ 'heatmap-weight': settings.heatWeight,
15987
+ 'heatmap-intensity': settings.heatIntensity,
15988
+ 'heatmap-color': settings.heatColor,
15813
15989
  'heatmap-radius': settings.radius,
15814
15990
  'heatmap-opacity': settings.opacity,
15815
15991
  },
@@ -15817,13 +15993,12 @@ class NaicsMapper {
15817
15993
  break;
15818
15994
  }
15819
15995
  // Reapply filter if exists
15820
- if (this.currentFilter) {
15821
- this.filterByNaicsCode(map, this.currentFilter);
15996
+ if (settings.naicsCode) {
15997
+ this.filterByNaicsCode(map, settings.naicsCode);
15822
15998
  }
15823
15999
  }
15824
16000
  // Method to filter by NAICS code (startsWith match)
15825
16001
  filterByNaicsCode(map, naicsCode) {
15826
- this.currentFilter = naicsCode;
15827
16002
  const filter = naicsCode ? ['==', ['slice', ['get', 'NAICS_CODE'], 0, naicsCode.length], naicsCode] : null;
15828
16003
  const layerId = this.getActiveLayerId();
15829
16004
  if (map.getLayer(layerId)) {
@@ -15900,6 +16075,128 @@ class NaicsMapper {
15900
16075
  return html;
15901
16076
  }
15902
16077
  }
16078
+ const Codes = [
16079
+ { ID: '111219', Category: 'Farmers and Ranchers', Name: 'Other Vegetable (Except Potato) & Melon Farming' },
16080
+ { ID: '111310', Category: 'Farmers and Ranchers', Name: 'Orange Groves' },
16081
+ { ID: '111320', Category: 'Farmers and Ranchers', Name: 'Citrus (Except Orange) Groves' },
16082
+ { ID: '111331', Category: 'Farmers and Ranchers', Name: 'Apple Orchards' },
16083
+ { ID: '111332', Category: 'Farmers and Ranchers', Name: 'Grape Vineyards' },
16084
+ { ID: '111334', Category: 'Farmers and Ranchers', Name: 'Berry (Except Strawberry) Farming' },
16085
+ { ID: '111335', Category: 'Farmers and Ranchers', Name: 'Tree Nut Farming' },
16086
+ { ID: '111336', Category: 'Farmers and Ranchers', Name: 'Fruit & Tree Nut Combination Farming' },
16087
+ { ID: '111339', Category: 'Farmers and Ranchers', Name: 'Other Noncitrus Fruit Farming' },
16088
+ { ID: '111411', Category: 'Farmers and Ranchers', Name: 'Mushroom Production' },
16089
+ { ID: '111419', Category: 'Farmers and Ranchers', Name: 'Other Food Crops Grown Under Cover' },
16090
+ { ID: '112111', Category: 'Farmers and Ranchers', Name: 'Beef Cattle Ranching & Farming' },
16091
+ { ID: '112112', Category: 'Farmers and Ranchers', Name: 'Cattle Feedlots' },
16092
+ { ID: '112910', Category: 'Farmers and Ranchers', Name: 'Apiculture' },
16093
+ { ID: '111110', Category: 'Farmers and Ranchers', Name: 'Soybean Farming' },
16094
+ { ID: '111140', Category: 'Farmers and Ranchers', Name: 'Wheat Farming' },
16095
+ { ID: '111150', Category: 'Farmers and Ranchers', Name: 'Corn Farming' },
16096
+ { ID: '111160', Category: 'Farmers and Ranchers', Name: 'Rice Farming' },
16097
+ { ID: '111199', Category: 'Farmers and Ranchers', Name: 'All Other Grain Farming' },
16098
+ { ID: '111211', Category: 'Farmers and Ranchers', Name: 'Potato Farming' },
16099
+ { ID: '111421', Category: 'Farmers and Ranchers', Name: 'Nursery & Tree Production' },
16100
+ { ID: '111422', Category: 'Farmers and Ranchers', Name: 'Floriculture Production' },
16101
+ { ID: '111910', Category: 'Farmers and Ranchers', Name: 'Tobacco Farming' },
16102
+ { ID: '111910', Category: 'Farmers and Ranchers', Name: 'Tobacco Farming' },
16103
+ { ID: '111920', Category: 'Farmers and Ranchers', Name: 'Cotton Farming' },
16104
+ { ID: '111998', Category: 'Farmers and Ranchers', Name: 'All Other Miscellaneous Crop Farming' },
16105
+ { ID: '111998', Category: 'Farmers and Ranchers', Name: 'All Other Miscellaneous Crop Farming' },
16106
+ { ID: '112120', Category: 'Farmers and Ranchers', Name: 'Dairy Cattle & Milk Production' },
16107
+ { ID: '112210', Category: 'Farmers and Ranchers', Name: 'Hog & Pig Farming' },
16108
+ { ID: '112310', Category: 'Farmers and Ranchers', Name: 'Chicken Egg Production' },
16109
+ { ID: '112320', Category: 'Farmers and Ranchers', Name: 'Broilers & Other Meat Type Chicken Production' },
16110
+ { ID: '112330', Category: 'Farmers and Ranchers', Name: 'Turkey Production' },
16111
+ { ID: '112340', Category: 'Farmers and Ranchers', Name: 'Poultry Hatcheries' },
16112
+ { ID: '112390', Category: 'Farmers and Ranchers', Name: 'Other Poultry Production' },
16113
+ { ID: '112410', Category: 'Farmers and Ranchers', Name: 'Sheep Farming' },
16114
+ { ID: '112420', Category: 'Farmers and Ranchers', Name: 'Goat Farming' },
16115
+ { ID: '112930', Category: 'Farmers and Ranchers', Name: 'Fur-Bearing Animal & Rabbit Production' },
16116
+ { ID: '112990', Category: 'Farmers and Ranchers', Name: 'All Other Animal Production' },
16117
+ { ID: '112511', Category: 'Fisheries', Name: 'Finfish Farming & Fish Hatcheries' },
16118
+ { ID: '112512', Category: 'Fisheries', Name: 'Shellfish Farming' },
16119
+ { ID: '112519', Category: 'Fisheries', Name: 'Other Aquaculture' },
16120
+ { ID: '311211', Category: 'Milling, Grain and Oilseed Processors and Manufacturers', Name: 'Flour Milling' },
16121
+ { ID: '311212', Category: 'Milling, Grain and Oilseed Processors and Manufacturers', Name: 'Rice Milling' },
16122
+ { ID: '311213', Category: 'Milling, Grain and Oilseed Processors and Manufacturers', Name: 'Malt Manufacturing' },
16123
+ { ID: '311221', Category: 'Milling, Grain and Oilseed Processors and Manufacturers', Name: 'Wet Corn Milling' },
16124
+ { ID: '311224', Category: 'Milling, Grain and Oilseed Processors and Manufacturers', Name: 'Soybean & Other Oilseed Processing' },
16125
+ { ID: '311225', Category: 'Milling, Grain and Oilseed Processors and Manufacturers', Name: 'Fats & Oils Refining & Blending' },
16126
+ { ID: '311230', Category: 'Milling, Grain and Oilseed Processors and Manufacturers', Name: 'Breakfast Cereal Manufacturing' },
16127
+ { ID: '311313', Category: 'Sugar and Confectionary Processors and Manufacturers', Name: 'Beet Sugar Manufacturing' },
16128
+ { ID: '311314', Category: 'Sugar and Confectionary Processors and Manufacturers', Name: 'Cane Sugar Manufacturing' },
16129
+ { ID: '311340', Category: 'Sugar and Confectionary Processors and Manufacturers', Name: 'Nonchocolate Confectionery Manufacturing' },
16130
+ { ID: '311351', Category: 'Sugar and Confectionary Processors and Manufacturers', Name: 'Chocolate/Confectionery Mfg From Cacao Beans' },
16131
+ { ID: '311352', Category: 'Sugar and Confectionary Processors and Manufacturers', Name: 'Confectionery Mfg From Purchased Chocolate' },
16132
+ { ID: '311411', Category: 'Frozen Food Processors', Name: 'Frozen Fruit Juice & Vegetable Manufacturing' },
16133
+ { ID: '311412', Category: 'Frozen Food Processors', Name: 'Frozen Specialty Food Manufacturing' },
16134
+ { ID: '311421', Category: 'Canneries', Name: 'Fruit & Vegetable Canning' },
16135
+ { ID: '311422', Category: 'Canneries', Name: 'Specialty Canning' },
16136
+ { ID: '311423', Category: 'Canneries', Name: 'Dried & Dehydrated Food Manufacturing' },
16137
+ { ID: '311511', Category: 'Dairy Processors', Name: 'Fluid Milk Manufacturing' },
16138
+ { ID: '311512', Category: 'Dairy Processors', Name: 'Creamery Butter Manufacturing' },
16139
+ { ID: '311513', Category: 'Dairy Processors', Name: 'Cheese Manufacturing' },
16140
+ { ID: '311514', Category: 'Dairy Processors', Name: 'Dry Condensed & Evaporated Dairy Products Mfg' },
16141
+ { ID: '311520', Category: 'Dairy Processors', Name: 'Ice Cream & Frozen Dessert Manufacturing' },
16142
+ { ID: '311611', Category: 'Meat and Seafood Processors', Name: 'Animal (Except Poultry) Slaughtering' },
16143
+ { ID: '311612', Category: 'Meat and Seafood Processors', Name: 'Meat Processed From Carcasses' },
16144
+ { ID: '311613', Category: 'Meat and Seafood Processors', Name: 'Rendering & Meat Byproduct Processing' },
16145
+ { ID: '311615', Category: 'Meat and Seafood Processors', Name: 'Poultry Processing' },
16146
+ { ID: '311710', Category: 'Meat and Seafood Processors', Name: 'Seafood Product Preparation & Packaging' },
16147
+ { ID: '311811', Category: 'Bakeries', Name: 'Retail Bakeries' },
16148
+ { ID: '311812', Category: 'Bakeries', Name: 'Commercial Bakeries' },
16149
+ { ID: '311813', Category: 'Bakeries', Name: 'Frozen Cakes Pies & Other Pastries Manufacturing' },
16150
+ { ID: '311821', Category: 'Bakeries', Name: 'Cookie & Cracker Manufacturing' },
16151
+ { ID: '311824', Category: 'Bakeries', Name: 'Dry Pasta Dough/Flour Mixes Mfg-Purchased Flour' },
16152
+ { ID: '311911', Category: 'Snack Food Processors and Manufacturers', Name: 'Roasted Nuts & Peanut Butter Manufacturing' },
16153
+ { ID: '311919', Category: 'Snack Food Processors and Manufacturers', Name: 'Other Snack Food Manufacturing' },
16154
+ { ID: '311920', Category: 'Snack Food Processors and Manufacturers', Name: 'Coffee & Tea Manufacturing' },
16155
+ { ID: '311930', Category: 'Syrups, Spices and Condiment Manufacturers', Name: 'Flavoring Syrup & Concentrate Manufacturing' },
16156
+ { ID: '311941', Category: 'Syrups, Spices and Condiment Manufacturers', Name: 'Mayonnaise Dressing & Other Prepared Sauce Mfg' },
16157
+ { ID: '311942', Category: 'Syrups, Spices and Condiment Manufacturers', Name: 'Spice & Extract Manufacturing' },
16158
+ { ID: '311991', Category: 'Syrups, Spices and Condiment Manufacturers', Name: 'Perishable Prepared Food Manufacturing' },
16159
+ { ID: '311999', Category: 'Syrups, Spices and Condiment Manufacturers', Name: 'All Other Miscellaneous Food Manufacturing' },
16160
+ { ID: '312111', Category: 'Beverage Manufacturing', Name: 'Soft Drink Manufacturing' },
16161
+ { ID: '312112', Category: 'Beverage Manufacturing', Name: 'Bottled Water Manufacturing' },
16162
+ { ID: '312120', Category: 'Beverage Manufacturing', Name: 'Breweries' },
16163
+ { ID: '312130', Category: 'Beverage Manufacturing', Name: 'Wineries' },
16164
+ { ID: '312140', Category: 'Beverage Manufacturing', Name: 'Distilleries' },
16165
+ { ID: '424420', Category: 'Wholesalers and Distributors', Name: 'Packaged Frozen Food Merchant Wholesalers' },
16166
+ { ID: '424430', Category: 'Wholesalers and Distributors', Name: 'Dairy Product (Exc Dried Or Canned) Mrchnt Whlsrs' },
16167
+ { ID: '424440', Category: 'Wholesalers and Distributors', Name: 'Poultry & Poultry Product Merchant Wholesalers' },
16168
+ { ID: '424450', Category: 'Wholesalers and Distributors', Name: 'Confectionery Merchant Wholesalers' },
16169
+ { ID: '424460', Category: 'Wholesalers and Distributors', Name: 'Fish & Seafood Merchant Wholesalers' },
16170
+ { ID: '424470', Category: 'Wholesalers and Distributors', Name: 'Meat & Meat Product Merchant Wholesalers' },
16171
+ { ID: '424480', Category: 'Wholesalers and Distributors', Name: 'Fresh Fruit & Vegetable Merchant Wholesalers' },
16172
+ { ID: '424520', Category: 'Wholesalers and Distributors', Name: 'Livestock Merchant Wholesalers' },
16173
+ { ID: '424820', Category: 'Wholesalers and Distributors', Name: 'Wine & Distilled Alcoholic Beverage Mrchnt Whlsrs' },
16174
+ { ID: '445110', Category: 'Food and Beverage Retailers', Name: 'Supermarkets/Other Grocery (Exc Convenience) Strs' },
16175
+ { ID: '445210', Category: 'Food and Beverage Retailers', Name: 'Meat Markets' },
16176
+ { ID: '445220', Category: 'Food and Beverage Retailers', Name: 'Fish & Seafood Markets' },
16177
+ { ID: '445230', Category: 'Food and Beverage Retailers', Name: 'Fruit & Vegetable Markets' },
16178
+ { ID: '445291', Category: 'Food and Beverage Retailers', Name: 'Baked Goods Stores' },
16179
+ { ID: '445292', Category: 'Food and Beverage Retailers', Name: 'Confectionery & Nut Stores' },
16180
+ { ID: '445299', Category: 'Food and Beverage Retailers', Name: 'All Other Specialty Food Stores' },
16181
+ { ID: '445310', Category: 'Food and Beverage Retailers', Name: 'Beer, Wine & Liquor Stores' },
16182
+ { ID: '493120', Category: 'Cold Warehouseing and Storage Facilities', Name: 'Refrigerated Warehousing & Storage' },
16183
+ { ID: '722310', Category: 'Food Services', Name: 'Food Service Contractors' },
16184
+ { ID: '722320', Category: 'Food Services', Name: 'Caterers' },
16185
+ { ID: '722330', Category: 'Food Services', Name: 'Mobile Food Services' },
16186
+ { ID: '722511', Category: 'Restaurants and Eating and Drinking Establishments', Name: 'Full-Service Restaurants' },
16187
+ { ID: '722513', Category: 'Restaurants and Eating and Drinking Establishments', Name: 'Limited-Service Restaurants' },
16188
+ { ID: '722514', Category: 'Restaurants and Eating and Drinking Establishments', Name: 'Cafeterias, Grill Buffets & Buffets' },
16189
+ { ID: '722515', Category: 'Restaurants and Eating and Drinking Establishments', Name: 'Snack & Nonalcoholic Beverage Bars' },
16190
+ { ID: '424410', Category: 'Wholesalers', Name: 'General Line Grocery Merchant Wholesalers' },
16191
+ { ID: '424490', Category: 'Wholesalers', Name: 'Other Grocery & Related Products Merchant Whlsrs' },
16192
+ { ID: '424810', Category: 'Wholesalers', Name: 'Beer & Ale Merchant Wholesalers' },
16193
+ { ID: '424930', Category: 'Wholesalers', Name: 'Nursery Stock/Florists Supls Mrchnt Whlsrs' },
16194
+ { ID: '484220', Category: 'Trucking and Freight', Name: 'Specialized Freight (Exc Used Gds) Trucking Local' },
16195
+ { ID: '484230', Category: 'Trucking and Freight', Name: 'Specialized Freight (Exc Used Gds) Trckng Lng-Dist' },
16196
+ { ID: '722410', Category: 'Eating and Drinking Establishments', Name: 'Drinking Places Alcoholic Beverages' },
16197
+ ].sort((a, b) => {
16198
+ return (a.Category + ' - ' + a.Name).localeCompare(b.Category + ' - ' + b.Name);
16199
+ });
15903
16200
 
15904
16201
  class SimpleMapper {
15905
16202
  reset() {
@@ -16438,5 +16735,5 @@ class HttpBoundaryLoader {
16438
16735
  * Generated bundle index. Do not edit.
16439
16736
  */
16440
16737
 
16441
- export { AddLayer, AddSource, AreaMapperMapper, BackgroundMaskMapper, BackgroundMaskSettings, BaseMapLight, BasemapSelect, BasemapSelectMenu, CensusTractMapper, CroplandDataLayerMapper, CroplandDataLayerSettings, CroplandLegend, DEFAULT_GLYPHS, DrawingMapper, EsriMapper, EsriSettings, HardinessMapper, HardinessSettings, HttpBoundaryLoader, MapAreaSelectComponent, MapComponent, MapSelectionService, MapService, MapStyles, MapboxMapperGroup, NAASMapper, NAASSettings, NaicsMapper, NaicsMapperSettings, NoOpMapper, RemoveLayer, RemoveSource, SaveMap, SelectMode, SimpleMapper, StandardLayersMapper, Styles, VectorTileServerMapper, WatershedMapper, WatershedSettings, discoverLayers, isGeoloader, isMultiPolygon, isNumber2DArray, isNumber3DArray, isPolygon, mapboxLoadImages, mapboxloadImage, pmtilesPixelInfo, sampleTilesForLayers, simpleClone, toMultiPolygon, trySync };
16738
+ export { AddLayer, AddSource, AreaMapperMapper, BackgroundMaskMapper, BackgroundMaskSettings, BaseMapLight, BasemapSelect, BasemapSelectMenu, CensusTractMapper, Codes, CropSequenceMapper, CropSequenceSettings, CroplandDataLayerMapper, CroplandDataLayerSettings, CroplandLegend, DEFAULT_GLYPHS, DrawingMapper, EsriMapper, EsriSettings, HardinessMapper, HardinessSettings, HttpBoundaryLoader, MapAreaSelectComponent, MapComponent, MapSelectionService, MapService, MapStyles, MapboxMapperGroup, NAASMapper, NAASSettings, NaicsMapper, NaicsMapperSettings, NoOpMapper, RemoveLayer, RemoveSource, SaveMap, SelectMode, SimpleMapper, StandardLayersMapper, Styles, VectorTileServerMapper, WatershedMapper, WatershedSettings, discoverLayers, isGeoloader, isMultiPolygon, isNumber2DArray, isNumber3DArray, isPolygon, mapboxLoadImages, mapboxloadImage, pmtilesPixelInfo, sampleTilesForLayers, simpleClone, toMultiPolygon, trySync };
16442
16739
  //# sourceMappingURL=foodmarketmaker-mapag.mjs.map