var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var ConnectionLayerDirection_exports = {};
__export(ConnectionLayerDirection_exports, {
  ConnectionLayerDirection: () => ConnectionLayerDirection
});
module.exports = __toCommonJS(ConnectionLayerDirection_exports);
var import_react = __toESM(require("react"));
var import_react_map_gl = require("react-map-gl");
var import_strato_icons = require("@dynatrace/strato-icons");
var import_parse_direction_data_to_geo_json = require("./functions/parse-direction-data-to-geo-json.js");
var import_constants = require("../../constants.js");
var import_use_load_symbol_into_map = require("../../hooks/use-load-symbol-into-map.js");
const ConnectionLayerDirection = (props) => {
  const { geoJsonData, layerId: connectionLayerId, directionIndicator } = props;
  const layerId = `${connectionLayerId}-direction`;
  const sourceId = `source-${layerId}`;
  const { symbolName } = (0, import_use_load_symbol_into_map.useLoadSymbolIntoMap)(
    /* @__PURE__ */ import_react.default.createElement(import_strato_icons.SorterIcon, null),
    layerId,
    import_constants.DIRECTION_ICON_OUTPUT_SIZE
  );
  const parsedGeoJsonData = (0, import_parse_direction_data_to_geo_json.parseDirectionDataToGeoJSON)({
    geoJsonData,
    directionIndicator
  });
  const iconRotationDegrees = 180;
  return /* @__PURE__ */ import_react.default.createElement(
    import_react_map_gl.Source,
    {
      id: sourceId,
      type: "geojson",
      data: parsedGeoJsonData,
      promoteId: "id"
    },
    /* @__PURE__ */ import_react.default.createElement(
      import_react_map_gl.Layer,
      {
        id: layerId,
        beforeId: connectionLayerId,
        type: "symbol",
        layout: {
          "symbol-placement": "point",
          "icon-image": symbolName,
          "icon-rotate": ["+", ["get", "__angle"], iconRotationDegrees],
          "icon-rotation-alignment": "map",
          "icon-allow-overlap": true,
          "icon-ignore-placement": true,
          "icon-size": [
            "*",
            ["get", "__lineWidth"],
            import_constants.DIRECTION_ICON_SHRINK_RATIO
          ]
        },
        paint: {
          "icon-color": [
            "case",
            ["boolean", ["feature-state", "hover"], false],
            ["get", "__lineHoveredColor"],
            ["get", "__lineColor"]
          ],
          "icon-opacity": ["get", "__lineOpacity"]
        }
      }
    )
  );
};
ConnectionLayerDirection["displayName"] = "ConnectionLayerDirection";
