{
  "id": "note",
  "name": {
    "en": "OpenStreetMap notes"
  },
  "description": "This layer shows notes on OpenStreetMap. Having this layer in your theme will trigger the 'add new note' functionality in the 'addNewPoint'-popup (or if your theme has no presets, it'll enable adding notes)",
  "source": {
    "osmTags": "id~*",
    "geoJson": "https://api.openstreetmap.org/api/0.6/notes.json?limit=10000&closed=7&bbox={x_min},{y_min},{x_max},{y_max}",
    "geoJsonZoomLevel": 12,
    "maxCacheAge": 0
  },
  "minzoom": 10,
  "title": {
    "render": {
      "en": "Note"
    },
    "mappings": [
      {
        "if": "closed_at~*",
        "then": {
          "en": "Closed note"
        }
      }
    ]
  },
  "calculatedTags": [
    "_first_comment:=feat.get('comments')[0].text.toLowerCase()",
    "_opened_by_anonymous_user:=feat.get('comments')[0].user === undefined",
    "_first_user:=feat.get('comments')[0].user",
    "_first_user_lc:=feat.get('comments')[0].user?.toLowerCase()",
    "_first_user_id:=feat.get('comments')[0].uid",
    "_is_import_note:=(() => {const lines = feat.properties['_first_comment'].split('\\n'); const matchesMapCompleteURL = lines.map(l => l.match(\".*https://mapcomplete.osm.be/\\([a-zA-Z_-]+\\)\\(.html\\).*#import\")); const matchedIndexes = matchesMapCompleteURL.map((doesMatch, i) => [doesMatch !== null, i]).filter(v => v[0]).map(v => v[1]); return matchedIndexes[0] })()"
  ],
  "titleIcons": [
    {
      "render": "<a href='https://openstreetmap.org/note/{id}' target='_blank'><img src='./assets/svg/osm-logo-us.svg'></a>"
    }
  ],
  "tagRenderings": [
    {
      "id": "conversation",
      "render": "{visualize_note_comments()}"
    },
    {
      "id": "add_image",
      "render": "{add_image_to_note()}"
    },
    {
      "id": "comment",
      "render": "{add_note_comment()}"
    },
    {
      "id": "report-contributor",
      "render": {
        "en": "<a href='https://www.openstreetmap.org/reports/new?reportable_id={_first_user_id}&reportable_type=User' target='_blank' class='subtle'>Report {_first_user} as spam</a>"
      },
      "condition": "_opened_by_anonymous_user=false"
    },
    {
      "id": "report-note",
      "render": {
        "en": "<a href='https://www.openstreetmap.org/reports/new?reportable_id={id}&reportable_type=Note' target='_blank'>Report this note as spam or inappropriate</a>"
      }
    }
  ],
  "mapRendering": [
    {
      "location": [
        "point",
        "centroid"
      ],
      "icon": {
        "render": "./assets/svg/note.svg",
        "mappings": [
          {
            "if": "closed_at~*",
            "then": "./assets/svg/resolved.svg"
          }
        ]
      },
      "iconSize": "40,40,bottom"
    }
  ],
  "filter": [
    {
      "id": "search",
      "options": [
        {
          "osmTags": "_first_comment~.*{search}.*",
          "fields": [
            {
              "name": "search"
            }
          ],
          "question": {
            "en": "Should mention {search} in the first comment"
          }
        }
      ]
    },
    {
      "id": "not",
      "options": [
        {
          "osmTags": "_first_comment!~.*{search}.*",
          "fields": [
            {
              "name": "search"
            }
          ],
          "question": {
            "en": "Should <b>not</b> mention {search} in the first comment"
          }
        }
      ]
    },
    {
      "id": "opened_by",
      "options": [
        {
          "osmTags": "_first_user_lc~.*{search}.*",
          "fields": [
            {
              "name": "search"
            }
          ],
          "question": {
            "en": "Opened by {search}"
          }
        }
      ]
    },
    {
      "id": "not_opened_by",
      "options": [
        {
          "osmTags": "_first_user_lc!~.*{search}.*",
          "fields": [
            {
              "name": "search"
            }
          ],
          "question": {
            "en": "<b>Not</b> opened by {search}"
          }
        }
      ]
    },
    {
      "id": "opened_before",
      "options": [
        {
          "osmTags": "date_created<{search}",
          "fields": [
            {
              "name": "search",
              "type": "date"
            }
          ],
          "question": {
            "en": "Opened before {search}"
          }
        }
      ]
    },
    {
      "id": "opened_after",
      "options": [
        {
          "osmTags": "date_created>{search}",
          "fields": [
            {
              "name": "search",
              "type": "date"
            }
          ],
          "question": {
            "en": "Opened after {search}"
          }
        }
      ]
    },
    {
      "id": "anonymous",
      "options": [
        {
          "osmTags": "_opened_by_anonymous_user=true",
          "question": {
            "en": "Opened by anonymous user"
          }
        }
      ]
    },
    {
      "id": "is_open",
      "options": [
        {
          "osmTags": "closed_at=",
          "question": {
            "en": "Only show open notes"
          }
        }
      ]
    },
    {
      "id": "no_imports",
      "options": [
        {
          "osmTags": "_is_import_note=",
          "question": {
            "en": "Hide import notes"
          }
        }
      ]
    }
  ]
}