新しいバージョンに対応したJS

formbridgeのフォームを開くとオープンストリートマップまたは国土地理院の地図が表示され、緯度と経度を取得できるJSを作成しました。Leaflet JS及びLeaflet CSSも設定しているのですが、地図が表示されません。
どこに問題があるのか教えていただけますと幸いです。

(function() {
  "use strict";

  // パラメータ設定
  var useOpenStreetMap = true; // trueでOpenStreetMapを使用、falseで国土地理院の地図を使用
  var defaultLat = 35.681236; // デフォルトの緯度 東京駅:35.681236
  var defaultLng = 139.767125; // デフォルトの経度 東京駅:139.767125
  var initialZoomLevel = 17; // 初期ズームレベル
  var mapHeight = '400px'; // 地図の高さ
  var mapWidth = '100%'; // 地図の横幅
  var tileLayerURL = useOpenStreetMap
                      ? 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png' // OpenStreetMapのタイルレイヤーURL
                      : 'https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png'; // 国土地理院のタイルレイヤーURL
  var maxZoomLevel = 19; // 最大ズームレベル
  var attribution = useOpenStreetMap
                      ? 'Map data c <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap contributors</a>'
                      : 'c <a href="https://maps.gsi.go.jp/development/ichiran.html" target="_blank">国土地理院</a>'; // 地図データの帰属表示

  // 地図のコンテナ要素を作成する関数
  function createMapContainer() {
    var mapDiv = document.createElement('div');
    mapDiv.id = 'map';
    mapDiv.style.height = mapHeight;
    mapDiv.style.width = mapWidth;
    return mapDiv;
  }

  // 地図を設定する関数
  function setupMap(mapDiv, initialLat, initialLng) {
    var map = L.map(mapDiv.id).setView([initialLat, initialLng], initialZoomLevel);
    L.tileLayer(tileLayerURL, {
      maxZoom: maxZoomLevel,
      attribution: attribution
    }).addTo(map);

    var marker = L.marker([initialLat, initialLng], {draggable: true}).addTo(map);
    marker.on('dragend', function(event) {
      var position = marker.getLatLng();
      updateFormFields(position.lat, position.lng);
    });

    updateFormFields(initialLat, initialLng);
  }

  // フォームが表示された後の処理
  fb.events.form.show = [function(state) {
    var mapDiv = createMapContainer();
    var formContent = document.getElementsByClassName('fb-content')[0];
    formContent.insertBefore(mapDiv, formContent.firstChild);

    // ユーザーの現在位置を取得して地図を設定
    navigator.geolocation.getCurrentPosition(function(position) {
      setupMap(mapDiv, position.coords.latitude, position.coords.longitude);
    }, function(error) {
      console.error("Geolocation error: " + error.message);
      setupMap(mapDiv, defaultLat, defaultLng);
    });

    return state;
  }];

  // フォームが送信される前の処理
  fb.events.form.submit = [function(state) {
    var mapElement = document.getElementById('map');
    if (mapElement) {
      mapElement.style.display = 'none';
    }
    return state;
  }];

  // 緯度と経度をフォームに設定し、changeイベントを発火させる関数
  function updateFormFields(lat, lng) {
    var latitudeField = fb.getElementByCode('latitude');
    var longitudeField = fb.getElementByCode('longitude');

    if (latitudeField && longitudeField) {
      var latitudeInput = latitudeField.getElementsByTagName('input')[0];
      var longitudeInput = longitudeField.getElementsByTagName('input')[0];

      latitudeInput.value = lat.toFixed(6);
      longitudeInput.value = lng.toFixed(6);

      var event = new Event('change', { bubbles: true });
      latitudeInput.dispatchEvent(event);
      longitudeInput.dispatchEvent(event);
    }
  }
})();

参考にしたJSは以下のものです。※旧バージョンに対応しています。