diff --git a/public/data/heraldry/dk/filters.json b/public/data/heraldry/dk/filters.json index 075a3bbbb..ef9f039d2 100644 --- a/public/data/heraldry/dk/filters.json +++ b/public/data/heraldry/dk/filters.json @@ -1,877 +1,878 @@ { - "animals": [ - { - "name": "shell", - "include": [ - { - "imageHash": "39088620", - "note": "Ballerup Kommune" - }, - { - "imageHash": "4c4656f2", - "note": "Århus Amt" - } - ], - "exclude": [] - }, - { - "name": "bird", - "include": [ - { - "imageHash": "58871dee", - "note": "Vordingborg Kommune" - }, - { - "imageHash": "9a5aa65", - "note": "Lolland Kommune" - }, - { - "imageHash": "751f40fb", - "note": "Gladsaxe Kommune" - }, - { - "imageHash": "6cb530e8", - "note": "Morsø Kommune" - }, - { - "imageHash": "4586f70f", - "note": "Jammerbugt Kommune" - }, - { - "imageHash": "2d948bc5", - "note": "Herning Kommune" - }, - { - "imageHash": "7c98f409", - "note": "Præstø Amt" - }, - { - "imageHash": "38f544cd", - "note": "Kolding Kommune" - }, - { - "imageHash": "9e69e7e", - "note": "Viborg Amt" - }, - { - "imageHash": "6cdfabd7", - "note": "Viborg Amt" - }, - { - "imageHash": "2682e547", - "note": "Furesø Kommune" - }, - { - "imageHash": "34ebfeb2", - "note": "Frederiksberg Kommune" - }, - { - "imageHash": "2f3d7b84", - "note": "Frederiksberg Kommune" - } - ], - "exclude": [] - }, - { - "name": "swan", - "include": [ - { - "imageHash": "62b1f2e4", - "note": "Fredensborg Kommune" - }, - { - "imageHash": "8bad573", - "note": "Assens" - } - ], - "exclude": [] - }, - { - "name": "fish", - "include": [ - { - "imageHash": "211be114", - "note": "Skive Kommune" - }, - { - "imageHash": "509dec85", - "note": "Ringkøbing-Skjern Kommune" - }, - { - "imageHash": "4069bdc6", - "note": "Aabenraa Kommune" - }, - { - "imageHash": "58e0c633", - "note": "Middelfart Kommune" - } - ], - "exclude": [] - }, - { - "name": "bullBison", - "include": [ - { - "imageHash": "7c3484cd", - "note": "Rødovre Kommune" - }, - { - "imageHash": "3cc1f647", - "note": "Aalborg Amt" - } - ] - }, - { - "name": "eagle", - "include": [ - { - "imageHash": "7688f5", - "note": "Roskilde Kommune" - } - ] - }, - { - "name": "dragon", - "include": [ - { - "imageHash": "1224f24", - "note": "Bornholms Amt" - }, - { - "imageHash": "3d7bdaa4", - "note": "Bornholms Amt" - }, - { - "imageHash": "1224f24", - "note": "Bornholms Regionskommune" - }, - { - "imageHash": "78d2236c", - "note": "Storstrøms Amt" - }, - { - "imageHash": "270457c0", - "note": "Storstrøms Amt" - } - ] - }, - { - "name": "rooster", - "include": [ - { - "imageHash": "76b1987f", - "note": "Albertslund Kommune" - } - ] - }, - { - "name": "goose", - "include": [ - { - "imageHash": "23a65f72", - "note": "Vallensbæk Kommune" - }, - { - "imageHash": "270457c0", - "note": "Storstrøms Amt" - } - ], - "exclude": [] - }, - { - "name": "seahorse", - "include": [ - { - "imageHash": "5bf9d8c2", - "note": "Fanø Kommune" - } - ] - }, - { - "name": "horse", - "include": [ - { - "imageHash": "8118c8e", - "note": "Holstebro Kommune" - }, - { - "imageHash": "29ae0449", - "note": "Horsens Kommune" - }, - { - "imageHash": "601fd73d", - "note": "Odsherred Kommune" - }, - { - "imageHash": "1ce895d0", - "note": "Faxe Kommune" - } - ] - }, - { - "name": "snake", - "include": [ - { - "imageHash": "3d64fac", - "note": "Vestsjællands Amt" - } - ] - }, - { - "name": "deer", - "include": [ - { - "imageHash": "3d77dd27", - "note": "Hørsholm Kommune" - }, - { - "imageHash": "71b422c3", - "note": "Herlev Kommune" - }, - { - "imageHash": "4c4656f2", - "note": "Århus Amt" - }, - { - "imageHash": "1a3f1035", - "note": "Ringkjøbing Amt" - }, - { - "imageHash": "29072363", - "note": "Vestjylland" - } - ] - }, - { - "name": "lion", - "include": [ - { - "imageHash": "7a183462", - "note": "Nordjyllands Amt" - }, - { - "imageHash": "3fce7b8", - "note": "Nordjyllands Amt" - }, - { - "imageHash": "7e50ced", - "note": "Varde Kommune" - }, - { - "imageHash": "53b98035", - "note": "Ribe Amt" - }, - { - "imageHash": "24c21728", - "note": "Ribe Amt" - }, - { - "imageHash": "14172d38", - "note": "Fredericia Kommune" - }, - { - "imageHash": "76bb1e9a", - "note": "Sønderjyllands Amt" - } - ] - } - ], - "items": [ - { - "name": "bucket", - "include": [ - { - "imageHash": "33b5236c", - "note": "Brøndby Kommune" - } - ] - }, - { - "name": "key", - "include": [ - { - "imageHash": "10d934a", - "note": "Næstved Kommune" - } - ] - }, - { - "name": "horn", - "include": [ - { - "imageHash": "61f1f6d7", - "note": "Ishøj Kommune" - } - ] - }, - { - "name": "heart", - "include": [ - { - "imageHash": "3fce7b8", - "note": "Nordjyllands Amt" - } - ] - }, - { - "name": "crown", - "include": [ - { - "imageHash": "51a02953", - "note": "Brønderslev Kommune" - }, - { - "imageHash": "5e94e0b5", - "note": "Hjørring Kommune" - }, - { - "imageHash": "193fe82b", - "note": "Thisted Kommune" - }, - { - "imageHash": "9e69e7e", - "note": "Viborg Amt" - }, - { - "imageHash": "24c21728", - "note": "Ribe Amt" - }, - { - "imageHash": "53b98035", - "note": "Ribe Amt" - }, - { - "imageHash": "7d9d60a", - "note": "Odense Amt" - }, - { - "imageHash": "10d934a", - "note": "Næstved Kommune" - }, - { - "imageHash": "614319fc", - "note": "Stevns Kommune" - }, - { - "imageHash": "35196927", - "note": "Orø Sogn" - }, - { - "imageHash": "3d77dd27", - "note": "Hørsholm Kommune" - }, - { - "imageHash": "199cd45d", - "note": "Frederiksborg Amt" - }, - { - "imageHash": "3d71891c", - "note": "Frederiksborg Amt" - }, - { - "imageHash": "7350ee6f", - "note": "Hillerød Kommune" - }, - { - "imageHash": "62b1f2e4", - "note": "Fredensborg Kommune" - }, - { - "imageHash": "2fd11556", - "note": "Halsnæs Kommune" - }, - { - "imageHash": "3a195ca0", - "note": "Aabenraa Amt" - }, - { - "imageHash": "2f3d7b84", - "note": "Frederiksberg Kommune" - }, - { - "imageHash": "34ebfeb2", - "note": "Frederiksberg Kommune" - }, - { - "imageHash": "43c81e43", - "note": "Københavns Amt" - }, - { - "imageHash": "d3b7ac1", - "note": "Københavns Amt" - }, - { - "imageHash": "7bda85f5", - "note": "Odense Kommune" - }, - { - "imageHash": "7ba136af", - "note": "Nyborg Kommune" - }, - { - "imageHash": "411943cf", - "note": "Køge Kommune" - }, - { - "imageHash": "6e6e7e17", - "note": "Ringsted Kommune" - }, - { - "imageHash": "14172d38", - "note": "Fredericia Kommune" - } - ], - "exclude": [] - }, - { - "name": "bell", - "include": [ - { - "imageHash": "3cc227ab", - "note": "Tårnby Kommune" - }, - { - "imageHash": "bfe2931", - "note": "Gentofte Kommune" - } - ] - }, - { - "name": "windmill", - "include": [ - { - "imageHash": "4ba3758e", - "note": "Sønderjyllands Amt" - } - ] - }, - { - "name": "hammer", - "include": [ - { - "imageHash": "2d948bc5", - "note": "Herning Kommune" - } - ] - }, - { - "name": "cross", - "include": [ - { - "imageHash": "46c24827", - "note": "Lemvig Kommune" - }, - { - "imageHash": "4b17de3c", - "note": "Vejle Amt" - }, - { - "imageHash": "2cc8ed4c", - "note": "Vejle Amt" - }, - { - "imageHash": "411943cf", - "note": "Køge Kommune" - }, - { - "imageHash": "61f1f6d7", - "note": "Ishøj Kommune" - }, - { - "imageHash": "2b8c3f7c", - "note": "Kalundborg Kommune" - }, - { - "imageHash": "7bda85f5", - "note": "Odense Kommune" - }, - { - "imageHash": "7ba136af", - "note": "Nyborg Kommune" - }, - { - "imageHash": "f5b97da", - "note": "Faaborg-Midtfyn Kommune" - } - ], - "exclude": [] - }, - { - "name": "walls", - "include": [ - { - "imageHash": "33c1d1d1", - "note": "Aalborg Kommune" - }, - { - "imageHash": "3fce7b8", - "note": "Nordjyllands Amt" - }, - { - "imageHash": "7150f9fa", - "note": "Viborg Kommune" - }, - { - "imageHash": "46c24827", - "note": "Lemvig Kommune" - }, - { - "imageHash": "72e61a54", - "note": "Silkeborg Kommune" - }, - { - "imageHash": "5b70756f", - "note": "Skanderborg Kommune" - }, - { - "imageHash": "6112eeb8", - "note": "Aarhus Kommune" - }, - { - "imageHash": "7bda85f5", - "note": "Odense Kommune" - }, - { - "imageHash": "7ba136af", - "note": "Nyborg Kommune" - }, - { - "imageHash": "f5b97da", - "note": "Faaborg-Midtfyn Kommune" - }, - { - "imageHash": "6d4df606", - "note": "Sønderborg Kommune" - }, - { - "imageHash": "626e1dfc", - "note": "Hvidovre Kommune" - }, - { - "imageHash": "512f1faf", - "note": "Københavns Kommune" - }, - { - "imageHash": "2f3d7b84", - "note": "Frederiksberg Kommune" - }, - { - "imageHash": "34ebfeb2", - "note": "Frederiksberg Kommune" - }, - { - "imageHash": "7cebe545", - "note": "Høje-Taastrup Kommune" - }, - { - "imageHash": "7688f5", - "note": "Roskilde Kommune" - }, - { - "imageHash": "3cc227ab", - "note": "Tårnby Kommune" - }, - { - "imageHash": "24c21728", - "note": "Ribe Amt" - }, - { - "imageHash": "53b98035", - "note": "Ribe Amt" - }, - { - "imageHash": "411943cf", - "note": "Køge Kommune" - }, - { - "imageHash": "2b8c3f7c", - "note": "Kalundborg Kommune" - }, - { - "imageHash": "7c98f409", - "note": "Præstø Amt" - }, - { - "imageHash": "2d948bc5", - "note": "Herning Kommune" - }, - { - "imageHash": "3bac3ee7", - "note": "Svendborg Kommune" - } - ], - "exclude": [] - }, - { - "name": "sword", - "include": [ - { - "imageHash": "5e94e0b5", - "note": "Hjørring Kommune" - }, - { - "imageHash": "6112eeb8", - "note": "Aarhus Kommune" - }, - { - "imageHash": "14172d38", - "note": "Fredericia Kommune" - }, - { - "imageHash": "3a195ca0", - "note": "Aabenraa Amt" - }, - { - "imageHash": "512f1faf", - "note": "Københavns Kommune" - } - ], - "exclude": [] - }, - { - "name": "earOfGrain", - "include": [ - { - "imageHash": "4ba3758e", - "note": "Sønderjyllands Amt" - } - ] - }, - { - "name": "wheel", - "include": [ - { - "imageHash": "5e94e0b5", - "note": "Hjørring Kommune" - }, - { - "imageHash": "601fd73d", - "note": "Odsherred Kommune" - } - ] - }, - { - "name": "anchor", - "include": [ - { - "imageHash": "19f0dc00", - "note": "Struer Kommune" - }, - { - "imageHash": "7a7c344e", - "note": "Esbjerg Kommune" - }, - { - "imageHash": "373eded5", - "note": "Dragør Kommune" - }, - { - "imageHash": "62b2b5ae", - "note": "Århus Amt" - }, - { - "imageHash": "6112eeb8", - "note": "Aarhus Kommune" - }, - { - "imageHash": "adbd40e", - "note": "Århus Amt" - } - ], - "exclude": [] - }, - { - "name": "axeSaw", - "include": [ - { - "imageHash": "4b17de3c", - "note": "Vejle Amt" - }, - { - "imageHash": "2cc8ed4c", - "note": "Vejle Amt" - } - ] - }, - { - "name": "lily", - "include": [ - { - "imageHash": "7bda85f5", - "note": "Odense Kommune" - }, - { - "imageHash": "330dd8b", - "note": "Glostrup Kommune" - } - ], - "exclude": [] - }, - { - "name": "boat", - "include": [ - { - "imageHash": "760ace11", - "note": "Thisted" - }, - { - "imageHash": "693dd7e0", - "note": "Tønder Kommune" - }, - { - "imageHash": "6ecc09d", - "note": "Odense Amt" - }, - { - "imageHash": "625c65ba", - "note": "Nordfyns Kommune" - }, - { - "imageHash": "35196927", - "note": "Orø Sogn" - }, - { - "imageHash": "1b11a187", - "note": "Helsingør Kommune" - }, - { - "imageHash": "177b2e59", - "note": "Guldborgsund Kommune" - }, - { - "imageHash": "58d2c656", - "note": "Frederikssund Kommune" - } - ], - "exclude": [] - }, - { - "name": "flower", - "include": [ - { - "imageHash": "38f544cd", - "note": "Kolding Kommune" - }, - { - "imageHash": "fb21f2", - "note": "Assens Kommune" - }, - { - "imageHash": "2fd11556", - "note": "Halsnæs Kommune" - }, - { - "imageHash": "758fc42f", - "note": "Roskilde Amt" - }, - { - "imageHash": "76cbd795", - "note": "Roskilde Amt" - }, - { - "imageHash": "7688f5", - "note": "Roskilde Kommune" - }, - { - "imageHash": "6e6e7e17", - "note": "Ringsted Kommune" - }, - { - "imageHash": "7d9d60a", - "note": "Odense Amt" - }, - { - "imageHash": "487ebffc", - "note": "Langeland Kommune" - } - ], - "exclude": [] - }, - { - "name": "tree", - "include": [ - { - "imageHash": "7a803ebf", - "note": "Odder Kommune" - }, - { - "imageHash": "29ae0449", - "note": "Horsens Kommune" - }, - { - "imageHash": "6a1ba53c", - "note": "Vejle Kommune" - }, - { - "imageHash": "1d5d540a", - "note": "Fyns Amt" - }, - { - "imageHash": "8bad573", - "note": "Assens" - }, - { - "imageHash": "5160cca", - "note": "Ærø Kommune" - }, - { - "imageHash": "1409da95", - "note": "Egedal Kommune" - }, - { - "imageHash": "4457e8bc", - "note": "Holbæk Kommune" - }, - { - "imageHash": "34ebfeb2", - "note": "Frederiksberg Kommune" - }, - { - "imageHash": "2f3d7b84", - "note": "Frederiksberg Kommune" - }, - { - "imageHash": "762ab259", - "note": "Rudersdal Kommune" - }, - { - "imageHash": "199cd45d", - "note": "Frederiksborg Amt" - }, - { - "imageHash": "3d71891c", - "note": "Frederiksborg Amt" - }, - { - "imageHash": "bfe2931", - "note": "Gentofte Kommune" - }, - { - "imageHash": "7a7c344e", - "note": "Esbjerg Kommune" - }, - { - "imageHash": "6cb530e8", - "note": "Morsø Kommune" - }, - { - "imageHash": "62b2b5ae", - "note": "Århus Amt" - }, - { - "imageHash": "43c81e43", - "note": "Københavns Amt" - }, - { - "imageHash": "d3b7ac1", - "note": "Københavns Amt" - }, - { - "imageHash": "7a183462", - "note": "Nordjyllands Amt" - } - ], - "exclude": [] - } - ] -} + "types": [], + "animals": [ + { + "name": "bullBison", + "include": [ + { + "imageHash": "7c3484cd", + "note": "Rødovre Kommune" + }, + { + "imageHash": "3cc1f647", + "note": "Aalborg Amt" + } + ] + }, + { + "name": "goose", + "include": [ + { + "imageHash": "23a65f72", + "note": "Vallensbæk Kommune" + }, + { + "imageHash": "270457c0", + "note": "Storstrøms Amt" + } + ], + "exclude": [] + }, + { + "name": "deer", + "include": [ + { + "imageHash": "3d77dd27", + "note": "Hørsholm Kommune" + }, + { + "imageHash": "71b422c3", + "note": "Herlev Kommune" + }, + { + "imageHash": "4c4656f2", + "note": "Århus Amt" + }, + { + "imageHash": "1a3f1035", + "note": "Ringkjøbing Amt" + }, + { + "imageHash": "29072363", + "note": "Vestjylland" + } + ] + }, + { + "name": "rooster", + "include": [ + { + "imageHash": "76b1987f", + "note": "Albertslund Kommune" + } + ] + }, + { + "name": "seahorse", + "include": [ + { + "imageHash": "5bf9d8c2", + "note": "Fanø Kommune" + } + ] + }, + { + "name": "horse", + "include": [ + { + "imageHash": "8118c8e", + "note": "Holstebro Kommune" + }, + { + "imageHash": "29ae0449", + "note": "Horsens Kommune" + }, + { + "imageHash": "601fd73d", + "note": "Odsherred Kommune" + }, + { + "imageHash": "1ce895d0", + "note": "Faxe Kommune" + } + ] + }, + { + "name": "lion", + "include": [ + { + "imageHash": "7a183462", + "note": "Nordjyllands Amt" + }, + { + "imageHash": "3fce7b8", + "note": "Nordjyllands Amt" + }, + { + "imageHash": "7e50ced", + "note": "Varde Kommune" + }, + { + "imageHash": "53b98035", + "note": "Ribe Amt" + }, + { + "imageHash": "24c21728", + "note": "Ribe Amt" + }, + { + "imageHash": "14172d38", + "note": "Fredericia Kommune" + }, + { + "imageHash": "76bb1e9a", + "note": "Sønderjyllands Amt" + } + ] + }, + { + "name": "swan", + "include": [ + { + "imageHash": "62b1f2e4", + "note": "Fredensborg Kommune" + }, + { + "imageHash": "8bad573", + "note": "Assens" + } + ], + "exclude": [] + }, + { + "name": "shell", + "include": [ + { + "imageHash": "39088620", + "note": "Ballerup Kommune" + }, + { + "imageHash": "4c4656f2", + "note": "Århus Amt" + } + ], + "exclude": [] + }, + { + "name": "eagle", + "include": [ + { + "imageHash": "7688f5", + "note": "Roskilde Kommune" + } + ] + }, + { + "name": "bird", + "include": [ + { + "imageHash": "58871dee", + "note": "Vordingborg Kommune" + }, + { + "imageHash": "9a5aa65", + "note": "Lolland Kommune" + }, + { + "imageHash": "751f40fb", + "note": "Gladsaxe Kommune" + }, + { + "imageHash": "6cb530e8", + "note": "Morsø Kommune" + }, + { + "imageHash": "4586f70f", + "note": "Jammerbugt Kommune" + }, + { + "imageHash": "2d948bc5", + "note": "Herning Kommune" + }, + { + "imageHash": "7c98f409", + "note": "Præstø Amt" + }, + { + "imageHash": "38f544cd", + "note": "Kolding Kommune" + }, + { + "imageHash": "9e69e7e", + "note": "Viborg Amt" + }, + { + "imageHash": "6cdfabd7", + "note": "Viborg Amt" + }, + { + "imageHash": "2682e547", + "note": "Furesø Kommune" + }, + { + "imageHash": "34ebfeb2", + "note": "Frederiksberg Kommune" + }, + { + "imageHash": "2f3d7b84", + "note": "Frederiksberg Kommune" + } + ], + "exclude": [] + }, + { + "name": "fish", + "include": [ + { + "imageHash": "211be114", + "note": "Skive Kommune" + }, + { + "imageHash": "509dec85", + "note": "Ringkøbing-Skjern Kommune" + }, + { + "imageHash": "4069bdc6", + "note": "Aabenraa Kommune" + }, + { + "imageHash": "58e0c633", + "note": "Middelfart Kommune" + } + ], + "exclude": [] + }, + { + "name": "dragon", + "include": [ + { + "imageHash": "1224f24", + "note": "Bornholms Amt" + }, + { + "imageHash": "3d7bdaa4", + "note": "Bornholms Amt" + }, + { + "imageHash": "1224f24", + "note": "Bornholms Regionskommune" + }, + { + "imageHash": "78d2236c", + "note": "Storstrøms Amt" + }, + { + "imageHash": "270457c0", + "note": "Storstrøms Amt" + } + ] + }, + { + "name": "snake", + "include": [ + { + "imageHash": "3d64fac", + "note": "Vestsjællands Amt" + } + ] + } + ], + "items": [ + { + "name": "tree", + "include": [ + { + "imageHash": "7a803ebf", + "note": "Odder Kommune" + }, + { + "imageHash": "29ae0449", + "note": "Horsens Kommune" + }, + { + "imageHash": "6a1ba53c", + "note": "Vejle Kommune" + }, + { + "imageHash": "1d5d540a", + "note": "Fyns Amt" + }, + { + "imageHash": "8bad573", + "note": "Assens" + }, + { + "imageHash": "5160cca", + "note": "Ærø Kommune" + }, + { + "imageHash": "1409da95", + "note": "Egedal Kommune" + }, + { + "imageHash": "4457e8bc", + "note": "Holbæk Kommune" + }, + { + "imageHash": "34ebfeb2", + "note": "Frederiksberg Kommune" + }, + { + "imageHash": "2f3d7b84", + "note": "Frederiksberg Kommune" + }, + { + "imageHash": "762ab259", + "note": "Rudersdal Kommune" + }, + { + "imageHash": "199cd45d", + "note": "Frederiksborg Amt" + }, + { + "imageHash": "3d71891c", + "note": "Frederiksborg Amt" + }, + { + "imageHash": "bfe2931", + "note": "Gentofte Kommune" + }, + { + "imageHash": "7a7c344e", + "note": "Esbjerg Kommune" + }, + { + "imageHash": "6cb530e8", + "note": "Morsø Kommune" + }, + { + "imageHash": "62b2b5ae", + "note": "Århus Amt" + }, + { + "imageHash": "43c81e43", + "note": "Københavns Amt" + }, + { + "imageHash": "d3b7ac1", + "note": "Københavns Amt" + }, + { + "imageHash": "7a183462", + "note": "Nordjyllands Amt" + } + ], + "exclude": [] + }, + { + "name": "bell", + "include": [ + { + "imageHash": "3cc227ab", + "note": "Tårnby Kommune" + }, + { + "imageHash": "bfe2931", + "note": "Gentofte Kommune" + } + ] + }, + { + "name": "key", + "include": [ + { + "imageHash": "10d934a", + "note": "Næstved Kommune" + } + ] + }, + { + "name": "earOfGrain", + "include": [ + { + "imageHash": "4ba3758e", + "note": "Sønderjyllands Amt" + } + ] + }, + { + "name": "wheel", + "include": [ + { + "imageHash": "5e94e0b5", + "note": "Hjørring Kommune" + }, + { + "imageHash": "601fd73d", + "note": "Odsherred Kommune" + } + ] + }, + { + "name": "crown", + "include": [ + { + "imageHash": "51a02953", + "note": "Brønderslev Kommune" + }, + { + "imageHash": "5e94e0b5", + "note": "Hjørring Kommune" + }, + { + "imageHash": "193fe82b", + "note": "Thisted Kommune" + }, + { + "imageHash": "9e69e7e", + "note": "Viborg Amt" + }, + { + "imageHash": "24c21728", + "note": "Ribe Amt" + }, + { + "imageHash": "53b98035", + "note": "Ribe Amt" + }, + { + "imageHash": "7d9d60a", + "note": "Odense Amt" + }, + { + "imageHash": "10d934a", + "note": "Næstved Kommune" + }, + { + "imageHash": "614319fc", + "note": "Stevns Kommune" + }, + { + "imageHash": "35196927", + "note": "Orø Sogn" + }, + { + "imageHash": "3d77dd27", + "note": "Hørsholm Kommune" + }, + { + "imageHash": "199cd45d", + "note": "Frederiksborg Amt" + }, + { + "imageHash": "3d71891c", + "note": "Frederiksborg Amt" + }, + { + "imageHash": "7350ee6f", + "note": "Hillerød Kommune" + }, + { + "imageHash": "62b1f2e4", + "note": "Fredensborg Kommune" + }, + { + "imageHash": "2fd11556", + "note": "Halsnæs Kommune" + }, + { + "imageHash": "3a195ca0", + "note": "Aabenraa Amt" + }, + { + "imageHash": "2f3d7b84", + "note": "Frederiksberg Kommune" + }, + { + "imageHash": "34ebfeb2", + "note": "Frederiksberg Kommune" + }, + { + "imageHash": "43c81e43", + "note": "Københavns Amt" + }, + { + "imageHash": "d3b7ac1", + "note": "Københavns Amt" + }, + { + "imageHash": "7bda85f5", + "note": "Odense Kommune" + }, + { + "imageHash": "7ba136af", + "note": "Nyborg Kommune" + }, + { + "imageHash": "411943cf", + "note": "Køge Kommune" + }, + { + "imageHash": "6e6e7e17", + "note": "Ringsted Kommune" + }, + { + "imageHash": "14172d38", + "note": "Fredericia Kommune" + } + ], + "exclude": [] + }, + { + "name": "anchor", + "include": [ + { + "imageHash": "19f0dc00", + "note": "Struer Kommune" + }, + { + "imageHash": "7a7c344e", + "note": "Esbjerg Kommune" + }, + { + "imageHash": "373eded5", + "note": "Dragør Kommune" + }, + { + "imageHash": "62b2b5ae", + "note": "Århus Amt" + }, + { + "imageHash": "6112eeb8", + "note": "Aarhus Kommune" + }, + { + "imageHash": "adbd40e", + "note": "Århus Amt" + } + ], + "exclude": [] + }, + { + "name": "cross", + "include": [ + { + "imageHash": "46c24827", + "note": "Lemvig Kommune" + }, + { + "imageHash": "4b17de3c", + "note": "Vejle Amt" + }, + { + "imageHash": "2cc8ed4c", + "note": "Vejle Amt" + }, + { + "imageHash": "411943cf", + "note": "Køge Kommune" + }, + { + "imageHash": "61f1f6d7", + "note": "Ishøj Kommune" + }, + { + "imageHash": "2b8c3f7c", + "note": "Kalundborg Kommune" + }, + { + "imageHash": "7bda85f5", + "note": "Odense Kommune" + }, + { + "imageHash": "7ba136af", + "note": "Nyborg Kommune" + }, + { + "imageHash": "f5b97da", + "note": "Faaborg-Midtfyn Kommune" + } + ], + "exclude": [] + }, + { + "name": "flower", + "include": [ + { + "imageHash": "38f544cd", + "note": "Kolding Kommune" + }, + { + "imageHash": "fb21f2", + "note": "Assens Kommune" + }, + { + "imageHash": "2fd11556", + "note": "Halsnæs Kommune" + }, + { + "imageHash": "758fc42f", + "note": "Roskilde Amt" + }, + { + "imageHash": "76cbd795", + "note": "Roskilde Amt" + }, + { + "imageHash": "7688f5", + "note": "Roskilde Kommune" + }, + { + "imageHash": "6e6e7e17", + "note": "Ringsted Kommune" + }, + { + "imageHash": "7d9d60a", + "note": "Odense Amt" + }, + { + "imageHash": "487ebffc", + "note": "Langeland Kommune" + } + ], + "exclude": [] + }, + { + "name": "lily", + "include": [ + { + "imageHash": "7bda85f5", + "note": "Odense Kommune" + }, + { + "imageHash": "330dd8b", + "note": "Glostrup Kommune" + } + ], + "exclude": [] + }, + { + "name": "boat", + "include": [ + { + "imageHash": "760ace11", + "note": "Thisted" + }, + { + "imageHash": "693dd7e0", + "note": "Tønder Kommune" + }, + { + "imageHash": "6ecc09d", + "note": "Odense Amt" + }, + { + "imageHash": "625c65ba", + "note": "Nordfyns Kommune" + }, + { + "imageHash": "35196927", + "note": "Orø Sogn" + }, + { + "imageHash": "1b11a187", + "note": "Helsingør Kommune" + }, + { + "imageHash": "177b2e59", + "note": "Guldborgsund Kommune" + }, + { + "imageHash": "58d2c656", + "note": "Frederikssund Kommune" + } + ], + "exclude": [] + }, + { + "name": "sword", + "include": [ + { + "imageHash": "5e94e0b5", + "note": "Hjørring Kommune" + }, + { + "imageHash": "6112eeb8", + "note": "Aarhus Kommune" + }, + { + "imageHash": "14172d38", + "note": "Fredericia Kommune" + }, + { + "imageHash": "3a195ca0", + "note": "Aabenraa Amt" + }, + { + "imageHash": "512f1faf", + "note": "Københavns Kommune" + } + ], + "exclude": [] + }, + { + "name": "hammer", + "include": [ + { + "imageHash": "2d948bc5", + "note": "Herning Kommune" + } + ] + }, + { + "name": "horn", + "include": [ + { + "imageHash": "61f1f6d7", + "note": "Ishøj Kommune" + } + ] + }, + { + "name": "heart", + "include": [ + { + "imageHash": "3fce7b8", + "note": "Nordjyllands Amt" + } + ] + }, + { + "name": "axeSaw", + "include": [ + { + "imageHash": "4b17de3c", + "note": "Vejle Amt" + }, + { + "imageHash": "2cc8ed4c", + "note": "Vejle Amt" + } + ] + }, + { + "name": "bucket", + "include": [ + { + "imageHash": "33b5236c", + "note": "Brøndby Kommune" + } + ] + }, + { + "name": "windmill", + "include": [ + { + "imageHash": "4ba3758e", + "note": "Sønderjyllands Amt" + } + ] + }, + { + "name": "walls", + "include": [ + { + "imageHash": "33c1d1d1", + "note": "Aalborg Kommune" + }, + { + "imageHash": "3fce7b8", + "note": "Nordjyllands Amt" + }, + { + "imageHash": "7150f9fa", + "note": "Viborg Kommune" + }, + { + "imageHash": "46c24827", + "note": "Lemvig Kommune" + }, + { + "imageHash": "72e61a54", + "note": "Silkeborg Kommune" + }, + { + "imageHash": "5b70756f", + "note": "Skanderborg Kommune" + }, + { + "imageHash": "6112eeb8", + "note": "Aarhus Kommune" + }, + { + "imageHash": "7bda85f5", + "note": "Odense Kommune" + }, + { + "imageHash": "7ba136af", + "note": "Nyborg Kommune" + }, + { + "imageHash": "f5b97da", + "note": "Faaborg-Midtfyn Kommune" + }, + { + "imageHash": "6d4df606", + "note": "Sønderborg Kommune" + }, + { + "imageHash": "626e1dfc", + "note": "Hvidovre Kommune" + }, + { + "imageHash": "512f1faf", + "note": "Københavns Kommune" + }, + { + "imageHash": "2f3d7b84", + "note": "Frederiksberg Kommune" + }, + { + "imageHash": "34ebfeb2", + "note": "Frederiksberg Kommune" + }, + { + "imageHash": "7cebe545", + "note": "Høje-Taastrup Kommune" + }, + { + "imageHash": "7688f5", + "note": "Roskilde Kommune" + }, + { + "imageHash": "3cc227ab", + "note": "Tårnby Kommune" + }, + { + "imageHash": "24c21728", + "note": "Ribe Amt" + }, + { + "imageHash": "53b98035", + "note": "Ribe Amt" + }, + { + "imageHash": "411943cf", + "note": "Køge Kommune" + }, + { + "imageHash": "2b8c3f7c", + "note": "Kalundborg Kommune" + }, + { + "imageHash": "7c98f409", + "note": "Præstø Amt" + }, + { + "imageHash": "2d948bc5", + "note": "Herning Kommune" + }, + { + "imageHash": "3bac3ee7", + "note": "Svendborg Kommune" + } + ], + "exclude": [] + } + ] +} \ No newline at end of file diff --git a/public/data/heraldry/nl/filters.json b/public/data/heraldry/nl/filters.json index e6f86e1d9..53434af71 100644 --- a/public/data/heraldry/nl/filters.json +++ b/public/data/heraldry/nl/filters.json @@ -1,336 +1,494 @@ { + "types": [], "animals": [ { - "name": "lion", - "phrases": ["halfleeuw", "leeuw", "leeuwen", "leeuwenkoppen"] + "name": "bat", + "phrases": [ + "vleermuis", + "vleermuizen" + ], + "include": [], + "exclude": [ + { + "imageHash": "56d44e53", + "note": "Wapen van Bath (Nederland)" + } + ] }, { - "name": "leopard", - "phrases": ["luipaarden"] + "name": "bear", + "phrases": [ + "beer", + "beren", + "berenklaauwen" + ] }, { - "name": "otter", - "phrases": ["otter"] + "name": "beaver", + "phrases": [ + "bever", + "bevers" + ] }, { - "name": "deer", + "name": "bee", "phrases": [ - "gewei", - "hert", - "herten", - "hinde", - "reebokje", - "reebokjes", - "ree", - "reeën", - "hertshoornen" + "bijen" ] }, { - "name": "cat", - "phrases": ["kat"] + "name": "bird", + "phrases": [ + "fazant", + "kauwen", + "kievit", + "kieviten", + "maarlen", + "meerlen", + "merlet", + "patrijs", + "vink", + "vogels", + "zwaluw", + "zwaluwen" + ] }, { - "name": "horse", - "phrases": ["paard", "paarden", "zeepaarden"] + "name": "boar", + "phrases": [ + "everzwijn", + "everzwijnen", + "zwijn", + "zwijnen", + "zwijnskoppen" + ] }, { - "name": "unusualHybrid", - "phrases": ["zeepaarden"] + "name": "bullBison", + "phrases": [ + "halfstier", + "koe", + "koeien", + "os", + "ossenkop", + "stier", + "stiertje", + "vaarskalf", + "waterbuffel", + "wisent" + ] }, { - "name": "griffin", - "phrases": ["griffioen", "halffgriffioen"] + "name": "butterfly", + "phrases": [ + "vlinder" + ] }, { - "name": "rabbit", - "phrases": ["haas", "konijn", "konijnen"] + "name": "cat", + "phrases": [ + "kat" + ] }, { - "name": "raven", - "phrases": ["raaf", "raven"] + "name": "centaur", + "phrases": [ + "centaur", + "centauren" + ] }, { - "name": "eagle", - "phrases": ["adelaar", "adelaars", "arend", "arenden", "adelaarspoot"] + "name": "crab", + "phrases": [ + "krabben" + ] }, { - "name": "falcon", - "phrases": ["valk", "valken"] + "name": "crane", + "phrases": [ + "kraanvogel", + "kraanvogels" + ] }, { - "name": "heron", - "phrases": ["reiger", "reigers"] + "name": "crayfish", + "phrases": [ + "kreeft", + "kreeften" + ] }, { - "name": "crane", - "phrases": ["kraanvogel", "kraanvogels"] + "name": "deer", + "phrases": [ + "gewei", + "hert", + "herten", + "hertshoornen", + "hinde", + "ree", + "reebokje", + "reebokjes", + "reeën" + ] }, { - "name": "raven", - "phrases": ["kraai", "kraaien"] + "name": "dog", + "phrases": [ + "brakkenkoppen", + "hazewindhonden", + "hond", + "honden", + "hondenkoppen", + "windhond" + ] }, { - "name": "hawk", - "phrases": ["havik", "haviken"] + "name": "donkey", + "phrases": [ + "ezel", + "ezels" + ] }, { - "name": "owl", - "phrases": ["uil", "uilen"] + "name": "dragon", + "phrases": [ + "draak", + "draken" + ] }, { - "name": "vulture", - "phrases": ["gier", "gieren"] + "name": "duck", + "phrases": [ + "eend", + "eenden" + ] }, { - "name": "pelican", - "phrases": ["pelikaan", "pelikaanen"] + "name": "eagle", + "phrases": [ + "adelaar", + "adelaars", + "adelaarspoot", + "arend", + "arenden" + ] }, { - "name": "stork", - "phrases": ["ooievaar", "ooievaars"] + "name": "falcon", + "phrases": [ + "valk", + "valken" + ] }, { - "name": "duck", - "phrases": ["eend", "eenden"] + "name": "fish", + "phrases": [ + "baars", + "baarsen", + "bot", + "brasem", + "brasems", + "halfvis", + "haringen", + "karper", + "karpers", + "meerval", + "rog", + "snoek", + "vis", + "visachtig", + "visgraaf", + "vissen", + "zalm" + ] }, { - "name": "goose", - "phrases": ["gans", "ganzen"] + "name": "fox", + "phrases": [ + "vos", + "vossen" + ] }, { - "name": "pigeon", - "phrases": ["duif", "duiven"] + "name": "goat", + "phrases": [ + "bok", + "geit", + "geiten" + ] }, { - "name": "swan", - "phrases": ["zwaan", "zwaanen"] + "name": "goose", + "phrases": [ + "gans", + "ganzen" + ] }, { - "name": "rooster", - "phrases": ["haan", "hanen"] + "name": "griffin", + "phrases": [ + "griffioen", + "halffgriffioen" + ] }, { - "name": "snake", - "phrases": ["slang", "slangen"] + "name": "hawk", + "phrases": [ + "havik", + "haviken" + ] }, { - "name": "bat", - "phrases": ["vleermuis", "vleermuizen"] + "name": "heron", + "phrases": [ + "reiger", + "reigers" + ] }, { - "name": "boar", + "name": "horse", "phrases": [ - "everzwijn", - "everzwijnen", - "zwijn", - "zwijnen", - "zwijnskoppen" + "paard", + "paarden", + "zeepaarden" ] }, { - "name": "whale", - "phrases": ["walvis"] + "name": "leopard", + "phrases": [ + "luipaarden" + ] }, { - "name": "mole", - "phrases": ["mol"] + "name": "lion", + "phrases": [ + "halfleeuw", + "leeuw", + "leeuwen", + "leeuwenkoppen" + ] }, { - "name": "stork", - "phrases": ["lepelaar"] + "name": "lizard", + "phrases": [ + "hagedis", + "hagedissen" + ] }, { - "name": "crab", - "phrases": ["krabben"] + "name": "mermaid", + "phrases": [ + "zeemeermin", + "zeemeerminnen" + ] }, { - "name": "bird", + "name": "mole", "phrases": [ - "vogels", - "kauwen", - "merlet", - "maarlen", - "meerlen", - "fazant", - "vink" + "mol" ] }, { "name": "moose", - "phrases": ["eland", "elanden"] + "phrases": [ + "eland", + "elanden" + ] }, { - "name": "bullBison", + "name": "otter", "phrases": [ - "halfstier", - "os", - "stier", - "stiertje", - "vaarskalf", - "waterbuffel", - "wisent", - "koe", - "koeien", - "ossenkop" + "otter" ] }, { - "name": "dragon", - "phrases": ["draak", "draken"] + "name": "owl", + "phrases": [ + "uil", + "uilen" + ] }, { "name": "parrot", - "phrases": ["papegaaien", "papegaaijen"] + "phrases": [ + "papegaaien", + "papegaaijen" + ] }, { - "name": "fish", + "name": "pelican", "phrases": [ - "brasem", - "brasems", - "halfvis", - "karper", - "karpers", - "meerval", - "snoek", - "vis", - "visachtig", - "visgraaf", - "vissen", - "zalm", - "baars", - "baarsen", - "haringen", - "rog" + "pelikaan", + "pelikaanen" ] }, { - "name": "bee", - "phrases": ["bijen"] + "name": "pigeon", + "phrases": [ + "duif", + "duiven" + ] }, { - "name": "mermaid", - "phrases": ["zeemeermin", "zeemeerminnen"] + "name": "rabbit", + "phrases": [ + "haas", + "konijn", + "konijnen" + ] }, { - "name": "fox", - "phrases": ["vos", "vossen"] + "name": "ram", + "phrases": [ + "lam", + "lammetje", + "ram", + "ramskoppen", + "schaap", + "schaapskop", + "schapen" + ] }, { - "name": "lizard", - "phrases": ["hagedis", "hagedissen"] + "name": "raven", + "phrases": [ + "raaf", + "raven" + ] }, { - "name": "salmon", - "phrases": ["zalmen", "zalm"] + "name": "raven", + "phrases": [ + "kraai", + "kraaien" + ] }, { - "name": "dog", + "name": "rooster", "phrases": [ - "hond", - "honden", - "hondenkoppen", - "hazewindhonden", - "brakkenkoppen" + "haan", + "hanen" ] }, { - "name": "crayfish", - "phrases": ["kreeft", "kreeften"] + "name": "salmon", + "phrases": [ + "zalm", + "zalmen" + ] }, { - "name": "unicorn", - "phrases": ["eenhoorn", "eenhoorns"] + "name": "shell", + "phrases": [ + "jacobsschelpen", + "schelp", + "schelpen", + "schelpje", + "schelpjes", + "st.jacobsschelpen", + "zeehorens" + ] }, { - "name": "goat", - "phrases": ["geit", "geiten", "bok"] + "name": "snake", + "phrases": [ + "slang", + "slangen" + ] }, { - "name": "ram", + "name": "squirrel", "phrases": [ - "lammetje", - "lam", - "ram", - "schaap", - "schapen", - "schaapskop", - "ramskoppen" + "eekhoorn", + "eekhoorns" ] }, { - "name": "wolf", - "phrases": ["halfwolf", "wolf", "wolven"] + "name": "stork", + "phrases": [ + "ooievaar", + "ooievaars" + ] }, { - "name": "squirrel", - "phrases": ["eekhoorn", "eekhoorns"] + "name": "stork", + "phrases": [ + "lepelaar" + ] }, { - "name": "donkey", - "phrases": ["ezel", "ezels"] + "name": "swan", + "phrases": [ + "zwaan", + "zwaanen" + ] }, { - "name": "centaur", - "phrases": ["centaur", "centauren"] + "name": "unicorn", + "phrases": [ + "eenhoorn", + "eenhoorns" + ] }, { - "name": "bear", - "phrases": ["beer", "beren", "berenklaauwen"] + "name": "unusualHybrid", + "phrases": [ + "zeepaarden" + ] }, { - "name": "beaver", - "phrases": ["bever", "bevers"] + "name": "vulture", + "phrases": [ + "gier", + "gieren" + ] }, { - "name": "butterfly", - "phrases": ["vlinder"] + "name": "whale", + "phrases": [ + "walvis" + ] }, { - "name": "shell", + "name": "wolf", "phrases": [ - "jacobsschelpen", - "st.jacobsschelpen", - "schelp", - "schelpen", - "schelpje", - "schelpjes", - "zeehorens" + "halfwolf", + "wolf", + "wolven" ] } ], "items": [ { - "name": "hops", - "phrases": ["hop", "hopachtig"] - }, - { - "name": "grape", - "phrases": ["druif", "druivenrank", "druivenranken"] - }, - { - "name": "windmill", - "phrases": ["windmolen", "windmolens", "molen", "molens", "wipmolen"] + "name": "anchor", + "phrases": [ + "anker", + "scheepsanker" + ] }, { - "name": "horseshoe", - "phrases": ["hoefijzer", "hoefijzers"] + "name": "angel", + "phrases": [ + "aartsengel", + "engel", + "engelen" + ] }, { - "name": "key", - "phrases": ["sleutel", "sleutels"] + "name": "apple", + "phrases": [ + "appel", + "appelboom", + "appels", + "appeltje" + ] }, { "name": "arrow", - "phrases": ["pijl", "pijlen"] - }, - { - "name": "heart", - "phrases": ["hart", "harten"] - }, - { - "name": "earOfGrain", - "phrases": ["aar", "aren", "schoof"] + "phrases": [ + "pijl", + "pijlen" + ] }, { "name": "axeSaw", @@ -345,98 +503,227 @@ ] }, { - "name": "apple", - "phrases": ["appel", "appelboom", "appels", "appeltje"] + "name": "bell", + "phrases": [ + "klok", + "klokjes" + ] }, { - "name": "hammer", + "name": "boat", "phrases": [ - "hamer", - "hamers", - "hamertje", - "hamertjes", - "knuppel", - "mijninsignes", - "mijnwapen" + "boot", + "boten", + "schepen", + "schip" ] }, { - "name": "pickaxe", + "name": "cross", "phrases": [ - "houweel", - "houweels", - "mijnwapen", - "pikhouweel", - "pikhouweels" + "kruis", + "kruisen" ] }, { - "name": "tree", - "phrases": ["boom", "boomen"] + "name": "crown", + "phrases": [ + "kronen", + "kroon" + ], + "include": [], + "exclude": [ + { + "imageHash": "140f5a8c", + "note": "Wapen van Brabant" + } + ] }, { - "name": "lily", - "phrases": ["lelie", "lelies", "lelietje"] + "name": "crozier", + "phrases": [ + "bisschopsstaf", + "herdersstaf", + "herdersstaffen" + ] }, { - "name": "rose", - "phrases": ["roos", "rozen"] + "name": "earOfGrain", + "phrases": [ + "aar", + "aren", + "hooischelf", + "korenschoof", + "korenschoven", + "schoof" + ] }, { "name": "flower", - "phrases": ["bloem", "bloemen", "tulp", "tulpen"] + "phrases": [ + "bloem", + "bloemen", + "boekweitbloemen", + "boekweitplant", + "distel", + "krullelie", + "rijsttakken", + "tulp", + "tulpen" + ] }, { - "name": "walls", - "phrases": ["bakstenen", "kaseel", "muur", "poort", "poorten", "toren"] + "name": "grape", + "phrases": [ + "druif", + "druivenrank", + "druivenranken", + "wijngaardranken", + "wijnstok" + ] }, { - "name": "boat", - "phrases": ["boot", "boten", "schepen", "schip"] + "name": "hammer", + "phrases": [ + "hamer", + "hamers", + "hamertje", + "hamertjes", + "knuppel", + "mijninsignes", + "mijnwapen" + ] }, { - "name": "cross", - "phrases": ["kruis", "kruisen"] + "name": "heart", + "phrases": [ + "hart", + "harten" + ] }, { - "name": "jewelry", - "phrases": ["oorbel", "ring", "ringen"] + "name": "hops", + "phrases": [ + "hop", + "hopachtig" + ] }, { - "name": "angel", - "phrases": ["aartsengel", "engel", "engelen"] + "name": "horn", + "phrases": [ + "hoorn", + "hoorns", + "trompet", + "trompetten", + "waldhoorn", + "waldhoorns" + ] }, { - "name": "crozier", - "phrases": ["bisschopsstaf", "herdersstaf", "herdersstaffen"] + "name": "horseshoe", + "phrases": [ + "hoefijzer", + "hoefijzers" + ] }, { - "name": "wheel", - "phrases": ["wiel", "wielen"] + "name": "jewelry", + "phrases": [ + "oorbel", + "ring", + "ringen" + ] }, { - "name": "crown", - "phrases": ["kronen", "kroon"] + "name": "key", + "phrases": [ + "sleutel", + "sleutels" + ] }, { - "name": "horn", - "phrases": ["hoorn", "hoorns", "trompet", "trompetten", "waldhoorn", "waldhoorns"] + "name": "lily", + "phrases": [ + "lelie", + "lelies", + "lelietje" + ] }, { - "name": "bell", - "phrases": ["klok", "klokjes"] + "name": "pickaxe", + "phrases": [ + "houweel", + "houweels", + "mijnwapen", + "pikhouweel", + "pikhouweels" + ] + }, + { + "name": "rose", + "phrases": [ + "roos", + "rozen" + ] }, { "name": "saint", - "phrases": ["heilige"] + "phrases": [ + "heilige" + ] }, { "name": "sword", - "phrases": ["zwaard", "zwaarden", "degen", "gevest"] + "phrases": [ + "degen", + "gevest", + "zwaard", + "zwaarden" + ] }, { - "name": "anchor", - "phrases": ["scheepsanker", "anker"] + "name": "tree", + "phrases": [ + "bladen", + "boom", + "boomen", + "eikenboom", + "elzen", + "lindeboom", + "rijssen tak" + ] + }, + { + "name": "walls", + "phrases": [ + "bakstenen", + "burcht", + "burgt", + "burgten", + "kaseel", + "muur", + "poort", + "poorten", + "toren", + "wachttoren" + ] + }, + { + "name": "wheel", + "phrases": [ + "wiel", + "wielen" + ] + }, + { + "name": "windmill", + "phrases": [ + "molen", + "molens", + "windmolen", + "windmolens", + "wipmolen" + ] } ] -} +} \ No newline at end of file diff --git a/public/data/heraldry/nl/formerGemeente-details-data.json b/public/data/heraldry/nl/formerGemeente-details-data.json index 1877508ba..d8532d63e 100644 --- a/public/data/heraldry/nl/formerGemeente-details-data.json +++ b/public/data/heraldry/nl/formerGemeente-details-data.json @@ -16,9 +16,9 @@ }, "markers": { "items": [ - "key", "cross", - "crown" + "crown", + "key" ] } }, @@ -39,14 +39,14 @@ }, "markers": { "animals": [ - "falcon", "bear", - "bird" + "bird", + "falcon" ], "items": [ "axeSaw", - "hammer", - "crown" + "crown", + "hammer" ] } }, @@ -86,8 +86,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown" @@ -131,9 +131,9 @@ }, "markers": { "items": [ - "heart", "cross", - "crown" + "crown", + "heart" ] } }, @@ -153,8 +153,8 @@ }, "markers": { "animals": [ - "raven", - "bird" + "bird", + "raven" ], "items": [ "crown" @@ -224,10 +224,10 @@ }, "markers": { "items": [ - "key", "arrow", "cross", - "crown" + "crown", + "key" ] } }, @@ -313,9 +313,9 @@ }, "markers": { "animals": [ + "bird", "eagle", - "ram", - "bird" + "ram" ], "items": [ "cross", @@ -400,9 +400,9 @@ }, "markers": { "items": [ - "rose", "crown", - "flower" + "flower", + "rose" ] } }, @@ -422,9 +422,9 @@ }, "markers": { "items": [ - "rose", "crown", - "flower" + "flower", + "rose" ] } }, @@ -444,8 +444,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown" @@ -492,8 +492,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown" @@ -515,13 +515,13 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "jewelry", + "anchor", "crown", - "anchor" + "jewelry" ] } }, @@ -541,8 +541,8 @@ }, "markers": { "items": [ - "heart", - "crown" + "crown", + "heart" ] } }, @@ -562,13 +562,14 @@ }, "markers": { "animals": [ - "horse", + "bird", "falcon", - "snake", - "bird" + "horse", + "snake" ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -634,8 +635,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown" @@ -658,8 +659,8 @@ }, "markers": { "items": [ - "jewelry", - "crown" + "crown", + "jewelry" ] } }, @@ -680,8 +681,8 @@ }, "markers": { "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -701,8 +702,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown" @@ -721,6 +722,11 @@ "blue": 0.5981, "grey": 0.0041 } + }, + "markers": { + "items": [ + "earOfGrain" + ] } }, { @@ -739,9 +745,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown" @@ -764,8 +770,8 @@ }, "markers": { "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -784,8 +790,8 @@ }, "markers": { "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -864,9 +870,9 @@ }, "markers": { "items": [ - "walls", + "bell", "crown", - "bell" + "walls" ] } }, @@ -885,10 +891,11 @@ }, "markers": { "items": [ - "rose", - "crown", "bell", - "flower" + "crown", + "earOfGrain", + "flower", + "rose" ] } }, @@ -911,8 +918,8 @@ "rabbit" ], "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -935,8 +942,8 @@ "rabbit" ], "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -1000,9 +1007,9 @@ }, "markers": { "items": [ - "rose", "crown", - "flower" + "flower", + "rose" ] } }, @@ -1024,8 +1031,8 @@ "shell" ], "items": [ - "earOfGrain", "crown", + "earOfGrain", "horn", "musicalInstrument" ] @@ -1050,8 +1057,8 @@ "deer" ], "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -1172,13 +1179,13 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "rose", "crown", - "flower" + "flower", + "rose" ] } }, @@ -1197,8 +1204,8 @@ }, "markers": { "animals": [ - "unicorn", - "shell" + "shell", + "unicorn" ], "items": [ "horn", @@ -1255,8 +1262,8 @@ }, "markers": { "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -1275,12 +1282,12 @@ }, "markers": { "items": [ - "lily", - "wheel", "crown", + "flower", + "lily", "saint", "sword", - "flower" + "wheel" ] } }, @@ -1325,9 +1332,9 @@ }, "markers": { "items": [ + "crown", "key", - "walls", - "crown" + "walls" ] } }, @@ -1346,9 +1353,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown", @@ -1389,9 +1396,9 @@ }, "markers": { "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -1451,14 +1458,14 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "lily", "crown", - "saint", - "flower" + "flower", + "lily", + "saint" ] } }, @@ -1479,14 +1486,14 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "lily", "boat", "crown", - "flower" + "flower", + "lily" ] } }, @@ -1523,9 +1530,9 @@ }, "markers": { "animals": [ + "bird", "lion", - "parrot", - "bird" + "parrot" ], "items": [ "crown" @@ -1545,7 +1552,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "walls" ] } }, @@ -1598,6 +1606,11 @@ "white": 0.0042, "grey": 0.145 } + }, + "markers": { + "items": [ + "walls" + ] } }, { @@ -1633,8 +1646,8 @@ "dog" ], "items": [ - "jewelry", - "crown" + "crown", + "jewelry" ] } }, @@ -1658,7 +1671,8 @@ "lion" ], "items": [ - "crown" + "crown", + "tree" ] } }, @@ -1676,8 +1690,8 @@ }, "markers": { "items": [ - "tree", - "cross" + "cross", + "tree" ] } }, @@ -1736,8 +1750,8 @@ }, "markers": { "animals": [ - "lion", "fish", + "lion", "salmon" ], "items": [ @@ -1773,8 +1787,8 @@ }, "markers": { "animals": [ - "horse", - "bullBison" + "bullBison", + "horse" ] } }, @@ -1881,8 +1895,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ] } }, @@ -2012,9 +2026,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown" @@ -2037,8 +2051,8 @@ }, "markers": { "animals": [ - "parrot", - "bird" + "bird", + "parrot" ] } }, @@ -2075,9 +2089,9 @@ "horse" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -2097,13 +2111,13 @@ }, "markers": { "animals": [ + "bird", "goose", - "swan", - "bird" + "swan" ], "items": [ - "jewelry", - "crown" + "crown", + "jewelry" ] } }, @@ -2119,6 +2133,11 @@ "grey": 0.0001, "white": 0.0019 } + }, + "markers": { + "items": [ + "walls" + ] } }, { @@ -2131,6 +2150,11 @@ "grey": 0.0013, "blue": 0.4054 } + }, + "markers": { + "items": [ + "walls" + ] } }, { @@ -2149,8 +2173,8 @@ "lion" ], "items": [ - "tree", - "cross" + "cross", + "tree" ] } }, @@ -2218,12 +2242,12 @@ }, "markers": { "animals": [ - "rooster", - "bird" + "bird", + "rooster" ], "items": [ - "walls", - "boat" + "boat", + "walls" ] } }, @@ -2275,14 +2299,14 @@ }, "markers": { "animals": [ + "bird", "lion", - "parrot", - "bird" + "parrot" ], "items": [ - "walls", "cross", - "crown" + "crown", + "walls" ] } }, @@ -2314,8 +2338,8 @@ }, "markers": { "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -2392,12 +2416,12 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ], "items": [ - "walls", - "saint" + "saint", + "walls" ] } }, @@ -2488,9 +2512,9 @@ }, "markers": { "animals": [ + "bird", "lion", - "swan", - "bird" + "swan" ], "items": [ "crown" @@ -2533,9 +2557,9 @@ }, "markers": { "animals": [ - "swan", + "bird", "bullBison", - "bird" + "swan" ], "items": [ "tree" @@ -2561,8 +2585,8 @@ "lion" ], "items": [ - "walls", - "cross" + "cross", + "walls" ] } }, @@ -2603,12 +2627,12 @@ }, "markers": { "animals": [ - "lion", - "bird" + "bird", + "lion" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -2627,8 +2651,9 @@ }, "markers": { "items": [ - "windmill", - "crown" + "crown", + "walls", + "windmill" ] } }, @@ -2651,10 +2676,10 @@ "lion" ], "items": [ - "lily", "cross", "crown", - "flower" + "flower", + "lily" ] } }, @@ -2717,8 +2742,8 @@ }, "markers": { "animals": [ - "lion", "fish", + "lion", "salmon" ], "items": [ @@ -2844,13 +2869,13 @@ }, "markers": { "animals": [ + "bird", "lion", - "parrot", - "bird" + "parrot" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -2868,8 +2893,8 @@ }, "markers": { "animals": [ - "parrot", - "bird" + "bird", + "parrot" ] } }, @@ -2961,8 +2986,9 @@ }, "markers": { "items": [ + "flower", "rose", - "flower" + "tree" ] } }, @@ -3144,8 +3170,8 @@ }, "markers": { "items": [ - "lily", - "flower" + "flower", + "lily" ] } }, @@ -3186,10 +3212,10 @@ }, "markers": { "items": [ - "tree", "crown", "horn", - "musicalInstrument" + "musicalInstrument", + "tree" ] } }, @@ -3250,8 +3276,8 @@ }, "markers": { "animals": [ - "lion", - "dragon" + "dragon", + "lion" ], "items": [ "crown" @@ -3274,13 +3300,13 @@ }, "markers": { "animals": [ - "lion", - "griffin" + "griffin", + "lion" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -3301,8 +3327,8 @@ }, "markers": { "animals": [ - "pelican", - "bird" + "bird", + "pelican" ], "items": [ "cross", @@ -3404,10 +3430,10 @@ }, "markers": { "items": [ - "lily", - "walls", "crown", - "flower" + "flower", + "lily", + "walls" ] } }, @@ -3465,8 +3491,8 @@ }, "markers": { "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -3489,11 +3515,12 @@ "lion" ], "items": [ - "rose", - "walls", - "horn", + "earOfGrain", "flower", - "musicalInstrument" + "horn", + "musicalInstrument", + "rose", + "walls" ] } }, @@ -3516,11 +3543,11 @@ "mermaid" ], "items": [ - "lily", "cross", "crown", - "saint", - "flower" + "flower", + "lily", + "saint" ] } }, @@ -3540,9 +3567,9 @@ }, "markers": { "items": [ - "walls", "crown", - "saint" + "saint", + "walls" ] } }, @@ -3563,9 +3590,9 @@ }, "markers": { "items": [ - "walls", "boat", - "crown" + "crown", + "walls" ] } }, @@ -3607,8 +3634,8 @@ "griffin" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -3629,8 +3656,8 @@ }, "markers": { "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -3651,12 +3678,12 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "crown", - "bell" + "bell", + "crown" ] } }, @@ -3679,9 +3706,9 @@ "mermaid" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -3700,8 +3727,9 @@ }, "markers": { "items": [ + "crown", "hammer", - "crown" + "tree" ] } }, @@ -3742,8 +3770,9 @@ }, "markers": { "items": [ + "bell", "crown", - "bell" + "flower" ] } }, @@ -3807,8 +3836,8 @@ }, "markers": { "animals": [ - "horse", - "dragon" + "dragon", + "horse" ], "items": [ "crown" @@ -3849,12 +3878,12 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "key", "crown", + "key", "saint", "sword" ] @@ -3876,7 +3905,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "earOfGrain" ] } }, @@ -3897,12 +3927,12 @@ }, "markers": { "animals": [ - "lion", - "bird" + "bird", + "lion" ], "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -3926,9 +3956,9 @@ "bird" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -3993,8 +4023,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown" @@ -4017,9 +4047,9 @@ }, "markers": { "items": [ + "bell", "boat", - "crown", - "bell" + "crown" ] } }, @@ -4060,9 +4090,9 @@ }, "markers": { "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -4082,8 +4112,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "saint", @@ -4107,8 +4137,8 @@ }, "markers": { "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -4129,13 +4159,13 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "walls", "cross", - "crown" + "crown", + "walls" ] } }, @@ -4156,8 +4186,9 @@ }, "markers": { "items": [ + "crown", "jewelry", - "crown" + "walls" ] } }, @@ -4198,8 +4229,8 @@ "lion" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -4233,9 +4264,9 @@ "bear" ], "items": [ - "walls", "crown", - "sword" + "sword", + "walls" ] } }, @@ -4259,9 +4290,9 @@ "dragon" ], "items": [ - "rose", "crown", - "flower" + "flower", + "rose" ] } }, @@ -4280,8 +4311,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "sword" @@ -4304,8 +4335,8 @@ }, "markers": { "animals": [ - "goose", - "bird" + "bird", + "goose" ], "items": [ "crown" @@ -4329,9 +4360,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown" @@ -4354,9 +4385,10 @@ }, "markers": { "items": [ - "lily", "crown", - "flower" + "earOfGrain", + "flower", + "lily" ] } }, @@ -4447,7 +4479,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "earOfGrain" ] } }, @@ -4488,6 +4521,7 @@ }, "markers": { "items": [ + "earOfGrain", "walls" ] } @@ -4566,12 +4600,12 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "walls", - "bell" + "bell", + "walls" ] } }, @@ -4592,8 +4626,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ] } }, @@ -4612,13 +4646,13 @@ }, "markers": { "animals": [ - "lion", - "griffin" + "griffin", + "lion" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -4755,8 +4789,8 @@ }, "markers": { "animals": [ - "lion", - "horse" + "horse", + "lion" ], "items": [ "cross", @@ -4785,8 +4819,8 @@ "lion" ], "items": [ - "cross", - "bell" + "bell", + "cross" ] } }, @@ -4826,8 +4860,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "key", @@ -4977,9 +5011,9 @@ }, "markers": { "animals": [ + "bird", "lion", - "pigeon", - "bird" + "pigeon" ], "items": [ "crown", @@ -5067,17 +5101,17 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "snake", - "bird" + "lion", + "snake" ], "items": [ "arrow", - "rose", - "flower", "cross", "crown", + "flower", + "rose", "sword" ] } @@ -5207,8 +5241,8 @@ }, "markers": { "items": [ - "walls", - "cross" + "cross", + "walls" ] } }, @@ -5251,16 +5285,16 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ + "crown", + "flower", "key", "lily", - "crown", - "saint", - "flower" + "saint" ] } }, @@ -5304,8 +5338,8 @@ "items": [ "crown", "horn", - "saint", - "musicalInstrument" + "musicalInstrument", + "saint" ] } }, @@ -5344,8 +5378,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "key", @@ -5394,11 +5428,11 @@ "dragon" ], "items": [ - "lily", "angel", + "flower", + "lily", "saint", - "sword", - "flower" + "sword" ] } }, @@ -5417,11 +5451,11 @@ }, "markers": { "items": [ - "rose", "crown", - "horn", "flower", - "musicalInstrument" + "horn", + "musicalInstrument", + "rose" ] } }, @@ -5498,8 +5532,8 @@ }, "markers": { "animals": [ - "lion", - "horse" + "horse", + "lion" ], "items": [ "saint", @@ -5521,8 +5555,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "saint" @@ -5546,8 +5580,8 @@ }, "markers": { "animals": [ - "lion", - "horse" + "horse", + "lion" ], "items": [ "saint", @@ -5612,15 +5646,15 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "pigeon", - "bird" + "lion", + "pigeon" ], "items": [ "cross", - "crozier", - "crown" + "crown", + "crozier" ] } }, @@ -5638,8 +5672,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ] } }, @@ -5660,8 +5694,8 @@ }, "markers": { "animals": [ - "lion", - "horse" + "horse", + "lion" ], "items": [ "sword" @@ -5709,9 +5743,9 @@ }, "markers": { "animals": [ + "bird", "deer", - "eagle", - "bird" + "eagle" ], "items": [ "cross", @@ -5738,9 +5772,9 @@ "deer" ], "items": [ + "flower", "lily", - "saint", - "flower" + "saint" ] } }, @@ -5860,8 +5894,8 @@ }, "markers": { "items": [ - "saint", - "anchor" + "anchor", + "saint" ] } }, @@ -5903,8 +5937,8 @@ }, "markers": { "items": [ - "walls", - "cross" + "cross", + "walls" ] } }, @@ -5942,9 +5976,9 @@ }, "markers": { "items": [ - "walls", "horn", - "musicalInstrument" + "musicalInstrument", + "walls" ] } }, @@ -5966,8 +6000,8 @@ "items": [ "crozier", "horn", - "saint", - "musicalInstrument" + "musicalInstrument", + "saint" ] } }, @@ -6007,8 +6041,8 @@ }, "markers": { "animals": [ - "lion", - "bird" + "bird", + "lion" ] } }, @@ -6028,9 +6062,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown" @@ -6053,8 +6087,8 @@ }, "markers": { "animals": [ - "falcon", - "bird" + "bird", + "falcon" ], "items": [ "key", @@ -6213,9 +6247,9 @@ "lion" ], "items": [ - "heart", + "crown", "flower", - "crown" + "heart" ] } }, @@ -6253,9 +6287,9 @@ }, "markers": { "items": [ - "key", "crown", "horn", + "key", "musicalInstrument" ] } @@ -6320,14 +6354,14 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "pigeon", - "bird" + "lion", + "pigeon" ], "items": [ - "crozier", - "crown" + "crown", + "crozier" ] } }, @@ -6348,9 +6382,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "falcon", - "bird" + "lion" ], "items": [ "crown" @@ -6396,9 +6430,9 @@ "markers": { "items": [ "arrow", - "tree", "crown", - "saint" + "saint", + "tree" ] } }, @@ -6417,8 +6451,8 @@ "markers": { "items": [ "axeSaw", - "crozier", - "crown" + "crown", + "crozier" ] } }, @@ -6437,14 +6471,14 @@ }, "markers": { "animals": [ - "lion", - "dog" + "dog", + "lion" ], "items": [ - "key", - "heart", + "crown", "flower", - "crown" + "heart", + "key" ] } }, @@ -6464,8 +6498,8 @@ "markers": { "items": [ "key", - "walls", - "saint" + "saint", + "walls" ] } }, @@ -6485,8 +6519,8 @@ }, "markers": { "items": [ - "crozier", - "crown" + "crown", + "crozier" ] } }, @@ -6529,14 +6563,14 @@ }, "markers": { "animals": [ + "bird", "eagle", - "pigeon", - "bird" + "pigeon" ], "items": [ "cross", - "crozier", "crown", + "crozier", "saint" ] } @@ -6596,12 +6630,12 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "walls", - "saint" + "saint", + "walls" ] } }, @@ -6622,14 +6656,14 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", "falcon", - "bird" + "lion" ], "items": [ - "rose", - "flower" + "flower", + "rose" ] } }, @@ -6673,10 +6707,10 @@ }, "markers": { "animals": [ - "lion", - "horse", + "bird", "eagle", - "bird" + "horse", + "lion" ], "items": [ "saint", @@ -6700,16 +6734,16 @@ }, "markers": { "animals": [ - "eagle", + "bird", "dragon", - "bird" + "eagle" ], "items": [ - "arrow", - "walls", "angel", + "arrow", "saint", - "sword" + "sword", + "walls" ] } }, @@ -6795,12 +6829,13 @@ }, "markers": { "animals": [ - "lion", + "bird", "falcon", - "bird" + "lion" ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -6823,9 +6858,9 @@ "lion" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -6885,14 +6920,14 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "lily", "crown", - "saint", - "flower" + "flower", + "lily", + "saint" ] } }, @@ -6961,8 +6996,8 @@ "lion" ], "items": [ - "wheel", - "crown" + "crown", + "wheel" ] } }, @@ -7065,8 +7100,8 @@ }, "markers": { "animals": [ - "salmon", - "fish" + "fish", + "salmon" ] } }, @@ -7105,8 +7140,8 @@ }, "markers": { "animals": [ - "salmon", - "fish" + "fish", + "salmon" ] } }, @@ -7160,8 +7195,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "sword" @@ -7340,8 +7375,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "horn", @@ -7364,13 +7399,14 @@ }, "markers": { "animals": [ - "lion", - "raven", "bird", - "goat" + "goat", + "lion", + "raven" ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -7487,6 +7523,9 @@ "markers": { "animals": [ "fish" + ], + "items": [ + "earOfGrain" ] } }, @@ -7588,8 +7627,8 @@ }, "markers": { "items": [ - "cross", "angel", + "cross", "horn", "musicalInstrument" ] @@ -7714,10 +7753,10 @@ "lion" ], "items": [ - "lily", - "walls", "crown", - "flower" + "flower", + "lily", + "walls" ] } }, @@ -7741,8 +7780,8 @@ ], "items": [ "cross", - "wheel", - "crown" + "crown", + "wheel" ] } }, @@ -7761,8 +7800,8 @@ }, "markers": { "animals": [ - "salmon", - "fish" + "fish", + "salmon" ] } }, @@ -7821,12 +7860,12 @@ }, "markers": { "animals": [ - "lion", - "dragon" + "dragon", + "lion" ], "items": [ - "key", "crozier", + "key", "saint" ] } @@ -7920,10 +7959,10 @@ }, "markers": { "items": [ - "rose", "crown", - "saint", - "flower" + "flower", + "rose", + "saint" ] } }, @@ -7959,8 +7998,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "cross", @@ -8016,8 +8055,8 @@ }, "markers": { "animals": [ - "salmon", - "fish" + "fish", + "salmon" ] } }, @@ -8038,8 +8077,8 @@ }, "markers": { "animals": [ - "lion", - "bullBison" + "bullBison", + "lion" ], "items": [ "cross" @@ -8065,8 +8104,8 @@ "bird" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -8110,8 +8149,8 @@ "ram" ], "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -8132,8 +8171,8 @@ }, "markers": { "animals": [ - "lion", - "horse" + "horse", + "lion" ], "items": [ "sword" @@ -8264,9 +8303,9 @@ }, "markers": { "items": [ - "tree", "horn", - "musicalInstrument" + "musicalInstrument", + "tree" ] } }, @@ -8313,6 +8352,11 @@ "grey": 0.0001, "white": 0.0008 } + }, + "markers": { + "items": [ + "walls" + ] } }, { @@ -8345,6 +8389,11 @@ "grey": 0.0005, "green": 0.0002 } + }, + "markers": { + "animals": [ + "bird" + ] } }, { @@ -8405,6 +8454,11 @@ "blue": 0.0001, "black": 0.0074 } + }, + "markers": { + "items": [ + "tree" + ] } }, { @@ -8442,8 +8496,8 @@ }, "markers": { "items": [ - "flower", - "crown" + "crown", + "flower" ] } }, @@ -8462,9 +8516,9 @@ }, "markers": { "items": [ - "tree", "horn", - "musicalInstrument" + "musicalInstrument", + "tree" ] } }, @@ -8520,13 +8574,13 @@ }, "markers": { "animals": [ - "eagle", + "bird", "dragon", - "bird" + "eagle" ], "items": [ - "key", - "cross" + "cross", + "key" ] } }, @@ -8557,9 +8611,9 @@ }, "markers": { "items": [ - "walls", "cross", - "crown" + "crown", + "walls" ] } }, @@ -8579,8 +8633,8 @@ }, "markers": { "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -8598,8 +8652,8 @@ }, "markers": { "animals": [ - "crane", - "bird" + "bird", + "crane" ] } }, @@ -8617,8 +8671,8 @@ }, "markers": { "items": [ - "rose", - "flower" + "flower", + "rose" ] } }, @@ -8658,6 +8712,9 @@ "markers": { "animals": [ "lion" + ], + "items": [ + "tree" ] } }, @@ -8788,8 +8845,8 @@ }, "markers": { "animals": [ - "lion", - "bullBison" + "bullBison", + "lion" ], "items": [ "cross" @@ -8811,8 +8868,8 @@ }, "markers": { "animals": [ - "lion", - "fox" + "fox", + "lion" ] } }, @@ -8871,9 +8928,9 @@ "lion" ], "items": [ - "rose", "cross", - "flower" + "flower", + "rose" ] } }, @@ -8890,8 +8947,8 @@ }, "markers": { "animals": [ - "rooster", - "bird" + "bird", + "rooster" ], "items": [ "walls" @@ -8969,8 +9026,8 @@ }, "markers": { "animals": [ - "lion", - "fish" + "fish", + "lion" ] } }, @@ -9037,8 +9094,11 @@ }, "markers": { "animals": [ - "duck", - "bird" + "bird", + "duck" + ], + "items": [ + "walls" ] } }, @@ -9166,8 +9226,8 @@ }, "markers": { "animals": [ - "raven", - "bird" + "bird", + "raven" ], "items": [ "angel", @@ -9205,6 +9265,10 @@ "markers": { "animals": [ "ram" + ], + "items": [ + "earOfGrain", + "tree" ] } }, @@ -9244,9 +9308,9 @@ "lion" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -9263,8 +9327,8 @@ }, "markers": { "animals": [ - "salmon", - "fish" + "fish", + "salmon" ] } }, @@ -9286,10 +9350,10 @@ "lion" ], "items": [ - "rose", "crown", - "saint", - "flower" + "flower", + "rose", + "saint" ] } }, @@ -9324,8 +9388,8 @@ }, "markers": { "animals": [ - "lion", - "bird" + "bird", + "lion" ] } }, @@ -9342,8 +9406,8 @@ }, "markers": { "animals": [ - "raven", - "bird" + "bird", + "raven" ], "items": [ "crown" @@ -9367,9 +9431,10 @@ }, "markers": { "items": [ - "key", "crown", - "saint" + "key", + "saint", + "tree" ] } }, @@ -9411,8 +9476,8 @@ }, "markers": { "items": [ - "cross", "angel", + "cross", "crown", "sword" ] @@ -9428,6 +9493,11 @@ "grey": 0.0052, "gold": 0.1615 } + }, + "markers": { + "items": [ + "walls" + ] } }, { @@ -9445,8 +9515,8 @@ }, "markers": { "animals": [ - "crane", - "bird" + "bird", + "crane" ] } }, @@ -9619,15 +9689,15 @@ }, "markers": { "animals": [ - "lion", - "horse", + "bird", "eagle", - "bird" + "horse", + "lion" ], "items": [ + "flower", "lily", - "sword", - "flower" + "sword" ] } }, @@ -9642,6 +9712,11 @@ "grey": 0.0161, "green": 0 } + }, + "markers": { + "items": [ + "tree" + ] } }, { @@ -9718,9 +9793,9 @@ }, "markers": { "items": [ + "flower", "rose", - "saint", - "flower" + "saint" ] } }, @@ -9859,11 +9934,11 @@ }, "markers": { "items": [ - "crozier", "crown", + "crozier", "horn", - "saint", - "musicalInstrument" + "musicalInstrument", + "saint" ] } }, @@ -9881,8 +9956,8 @@ }, "markers": { "animals": [ - "raven", - "bird" + "bird", + "raven" ] } }, @@ -9901,13 +9976,14 @@ }, "markers": { "animals": [ + "bird", "duck", "fish", - "salmon", - "bird" + "salmon" ], "items": [ - "crown" + "crown", + "earOfGrain" ] } }, @@ -9928,10 +10004,10 @@ "shell" ], "items": [ + "flower", "key", "lily", - "saint", - "flower" + "saint" ] } }, @@ -10017,8 +10093,8 @@ "salmon" ], "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -10079,9 +10155,9 @@ }, "markers": { "items": [ - "tree", "horn", - "musicalInstrument" + "musicalInstrument", + "tree" ] } }, @@ -10147,8 +10223,8 @@ }, "markers": { "animals": [ - "stork", - "bird" + "bird", + "stork" ] } }, @@ -10169,9 +10245,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ] } }, @@ -10192,8 +10268,8 @@ }, "markers": { "animals": [ - "lion", - "horse" + "horse", + "lion" ] } }, @@ -10233,9 +10309,9 @@ }, "markers": { "animals": [ + "bird", "lion", - "swan", - "bird" + "swan" ], "items": [ "cross", @@ -10259,8 +10335,8 @@ }, "markers": { "animals": [ - "lion", - "bullBison" + "bullBison", + "lion" ] } }, @@ -10279,8 +10355,8 @@ }, "markers": { "items": [ - "hammer", - "cross" + "cross", + "hammer" ] } }, @@ -10345,8 +10421,8 @@ }, "markers": { "animals": [ - "horse", - "dragon" + "dragon", + "horse" ], "items": [ "saint" @@ -10367,8 +10443,8 @@ }, "markers": { "animals": [ - "heron", - "bird" + "bird", + "heron" ], "items": [ "horn", @@ -10391,8 +10467,8 @@ }, "markers": { "animals": [ - "raven", - "bird" + "bird", + "raven" ], "items": [ "tree" @@ -10435,8 +10511,8 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ], "items": [ "arrow" @@ -10479,8 +10555,8 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ], "items": [ "arrow" @@ -10631,8 +10707,8 @@ }, "markers": { "animals": [ - "whale", - "fish" + "fish", + "whale" ], "items": [ "crown" @@ -10655,16 +10731,16 @@ }, "markers": { "animals": [ + "bird", + "fish", + "goose", "heron", "pelican", - "stork", - "goose", - "fish", - "bird" + "stork" ], "items": [ - "horseshoe", - "crown" + "crown", + "horseshoe" ] } }, @@ -10701,8 +10777,8 @@ }, "markers": { "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -10811,12 +10887,12 @@ }, "markers": { "animals": [ - "heron", - "bird" + "bird", + "heron" ], "items": [ - "earOfGrain", - "crown" + "crown", + "earOfGrain" ] } }, @@ -10873,9 +10949,9 @@ }, "markers": { "animals": [ + "bird", "eagle", - "pelican", - "bird" + "pelican" ], "items": [ "tree" @@ -10896,9 +10972,9 @@ }, "markers": { "animals": [ + "bird", "lion", - "stork", - "bird" + "stork" ], "items": [ "crown" @@ -10919,8 +10995,8 @@ }, "markers": { "animals": [ - "stork", - "bird" + "bird", + "stork" ] } }, @@ -10938,8 +11014,8 @@ }, "markers": { "animals": [ - "duck", - "bird" + "bird", + "duck" ] } }, @@ -11012,9 +11088,9 @@ }, "markers": { "animals": [ - "pelican", + "bird", "fish", - "bird" + "pelican" ], "items": [ "horseshoe" @@ -11056,13 +11132,13 @@ }, "markers": { "animals": [ - "lion", - "bird" + "bird", + "lion" ], "items": [ - "tree", "boat", - "crown" + "crown", + "tree" ] } }, @@ -11161,9 +11237,10 @@ "bullBison" ], "items": [ - "walls", + "earOfGrain", "horn", - "musicalInstrument" + "musicalInstrument", + "walls" ] } }, @@ -11204,10 +11281,10 @@ }, "markers": { "animals": [ - "griffin", - "swan", + "bird", "bullBison", - "bird" + "griffin", + "swan" ], "items": [ "horn", @@ -11249,8 +11326,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ] } }, @@ -11355,8 +11432,8 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ], "items": [ "crown" @@ -11413,8 +11490,8 @@ "bird" ], "items": [ - "tree", - "angel" + "angel", + "tree" ] } }, @@ -11452,9 +11529,9 @@ }, "markers": { "animals": [ - "falcon", + "bird", "bullBison", - "bird" + "falcon" ], "items": [ "horn", @@ -11522,8 +11599,8 @@ }, "markers": { "animals": [ - "goose", - "bird" + "bird", + "goose" ] } }, @@ -11561,8 +11638,8 @@ }, "markers": { "items": [ - "rose", - "flower" + "flower", + "rose" ] } }, @@ -11595,8 +11672,8 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ], "items": [ "arrow", @@ -11641,8 +11718,8 @@ }, "markers": { "animals": [ - "raven", - "bird" + "bird", + "raven" ], "items": [ "tree" @@ -11664,8 +11741,8 @@ }, "markers": { "animals": [ - "lion", - "bird" + "bird", + "lion" ], "items": [ "tree" @@ -11689,13 +11766,13 @@ }, "markers": { "animals": [ - "lion", - "fish" + "fish", + "lion" ], "items": [ - "windmill", "cross", - "crown" + "crown", + "windmill" ] } }, @@ -11715,12 +11792,12 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ], "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -11967,8 +12044,8 @@ }, "markers": { "animals": [ - "lion", - "bear" + "bear", + "lion" ] } }, @@ -11989,8 +12066,8 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ] } }, @@ -12008,12 +12085,13 @@ }, "markers": { "animals": [ - "raven", - "bird" + "bird", + "raven" ], "items": [ + "crown", "tree", - "crown" + "walls" ] } }, @@ -12031,9 +12109,9 @@ }, "markers": { "animals": [ + "bird", "lion", - "swan", - "bird" + "swan" ], "items": [ "crown" @@ -12118,8 +12196,8 @@ }, "markers": { "animals": [ - "heron", - "bird" + "bird", + "heron" ], "items": [ "crown" @@ -12164,11 +12242,11 @@ }, "markers": { "animals": [ - "lion", - "horse", - "goose", + "bird", "dragon", - "bird" + "goose", + "horse", + "lion" ], "items": [ "crown", @@ -12229,9 +12307,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "goose", - "bird" + "lion" ] } }, @@ -12254,10 +12332,10 @@ "mermaid" ], "items": [ - "lily", "crown", - "saint", - "flower" + "flower", + "lily", + "saint" ] } }, @@ -12280,7 +12358,8 @@ "lion" ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -12297,8 +12376,8 @@ }, "markers": { "animals": [ - "snake", - "ram" + "ram", + "snake" ], "items": [ "crown" @@ -12320,8 +12399,8 @@ }, "markers": { "items": [ - "lily", - "flower" + "flower", + "lily" ] } }, @@ -12374,8 +12453,8 @@ "lion" ], "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -12433,9 +12512,9 @@ }, "markers": { "animals": [ + "bird", "lion", - "rooster", - "bird" + "rooster" ], "items": [ "boat", @@ -12504,9 +12583,9 @@ }, "markers": { "animals": [ + "bird", "lion", - "swan", - "bird" + "swan" ], "items": [ "crown" @@ -12566,9 +12645,9 @@ }, "markers": { "animals": [ + "bird", "heron", - "stork", - "bird" + "stork" ], "items": [ "horn", @@ -12604,7 +12683,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "tree" ] } }, @@ -12624,8 +12704,8 @@ }, "markers": { "animals": [ - "pelican", - "bird" + "bird", + "pelican" ], "items": [ "crown" @@ -12646,9 +12726,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ] } }, @@ -12663,6 +12743,11 @@ "gold": 0.0908, "red": 0.0026 } + }, + "markers": { + "items": [ + "earOfGrain" + ] } }, { @@ -12681,8 +12766,8 @@ }, "markers": { "animals": [ - "pigeon", - "bird" + "bird", + "pigeon" ], "items": [ "cross", @@ -12705,8 +12790,8 @@ }, "markers": { "items": [ - "boat", - "anchor" + "anchor", + "boat" ] } }, @@ -12743,7 +12828,8 @@ ], "items": [ "cross", - "crown" + "crown", + "walls" ] } }, @@ -12762,9 +12848,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ] } }, @@ -12828,8 +12914,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown", @@ -12857,10 +12943,10 @@ "salmon" ], "items": [ - "lily", "boat", "crown", - "flower" + "flower", + "lily" ] } }, @@ -12897,10 +12983,10 @@ }, "markers": { "items": [ - "rose", - "flower", "cross", - "crown" + "crown", + "flower", + "rose" ] } }, @@ -12998,8 +13084,8 @@ }, "markers": { "animals": [ - "pigeon", - "bird" + "bird", + "pigeon" ], "items": [ "saint" @@ -13021,8 +13107,8 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ], "items": [ "crown" @@ -13087,9 +13173,9 @@ }, "markers": { "animals": [ + "bird", "crane", - "swan", - "bird" + "swan" ], "items": [ "boat" @@ -13167,11 +13253,12 @@ }, "markers": { "items": [ + "crown", + "flower", "heart", "lily", - "crown", "saint", - "flower" + "walls" ] } }, @@ -13236,7 +13323,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "tree" ] } }, @@ -13273,8 +13361,8 @@ }, "markers": { "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -13312,9 +13400,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown", @@ -13400,8 +13488,8 @@ ], "items": [ "cross", - "jewelry", - "crown" + "crown", + "jewelry" ] } }, @@ -13416,6 +13504,11 @@ "blue": 0.0481, "green": 0.3544 } + }, + "markers": { + "items": [ + "tree" + ] } }, { @@ -13449,9 +13542,9 @@ }, "markers": { "items": [ - "walls", "cross", - "crown" + "crown", + "walls" ] } }, @@ -13468,8 +13561,8 @@ }, "markers": { "animals": [ - "pigeon", - "bird" + "bird", + "pigeon" ], "items": [ "tree" @@ -13492,8 +13585,8 @@ }, "markers": { "animals": [ - "pelican", - "bird" + "bird", + "pelican" ], "items": [ "crown" @@ -13564,8 +13657,8 @@ }, "markers": { "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -13604,8 +13697,8 @@ }, "markers": { "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -13734,9 +13827,9 @@ }, "markers": { "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -13802,8 +13895,8 @@ "lion" ], "items": [ - "lily", - "flower" + "flower", + "lily" ] } }, @@ -13826,9 +13919,9 @@ "lion" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -13918,10 +14011,10 @@ }, "markers": { "items": [ - "lily", "cross", "crown", - "flower" + "flower", + "lily" ] } }, @@ -14019,8 +14112,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown" @@ -14149,9 +14242,9 @@ "lion" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -14222,8 +14315,8 @@ }, "markers": { "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -14387,8 +14480,9 @@ }, "markers": { "items": [ + "flower", "lily", - "flower" + "walls" ] } }, @@ -14519,13 +14613,14 @@ }, "markers": { "animals": [ - "horse", - "dragon" + "dragon", + "horse" ], "items": [ - "cross", "bell", - "sword" + "cross", + "sword", + "walls" ] } }, @@ -14556,8 +14651,8 @@ }, "markers": { "animals": [ - "duck", - "bird" + "bird", + "duck" ] } }, @@ -14623,8 +14718,8 @@ }, "markers": { "items": [ - "hammer", - "crown" + "crown", + "hammer" ] } }, @@ -14721,8 +14816,8 @@ }, "markers": { "items": [ - "hammer", - "crown" + "crown", + "hammer" ] } }, @@ -14759,9 +14854,9 @@ "lion" ], "items": [ - "walls", "cross", - "crown" + "crown", + "walls" ] } }, @@ -14782,12 +14877,12 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -14811,9 +14906,9 @@ "shell" ], "items": [ - "key", "cross", "crown", + "key", "saint" ] } @@ -14854,9 +14949,8 @@ }, "markers": { "animals": [ - "pigeon", - "bat", - "bird" + "bird", + "pigeon" ], "items": [ "tree" @@ -14958,7 +15052,8 @@ "unicorn" ], "items": [ - "crown" + "crown", + "tree" ] } }, @@ -14985,6 +15080,11 @@ "grey": 0.6804, "black": 0.0061 } + }, + "markers": { + "animals": [ + "fish" + ] } }, { @@ -15003,8 +15103,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown" @@ -15026,9 +15126,9 @@ }, "markers": { "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -15063,9 +15163,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown" @@ -15119,8 +15219,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ] } }, @@ -15169,6 +15269,11 @@ "green": 0.0183, "blue": 0.0002 } + }, + "markers": { + "animals": [ + "bird" + ] } }, { @@ -15186,7 +15291,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "walls" ] } }, @@ -15264,8 +15370,8 @@ }, "markers": { "animals": [ - "pigeon", - "bird" + "bird", + "pigeon" ] } }, @@ -15282,8 +15388,8 @@ }, "markers": { "animals": [ - "duck", - "bird" + "bird", + "duck" ] } }, @@ -15300,8 +15406,8 @@ }, "markers": { "animals": [ - "duck", - "bird" + "bird", + "duck" ] } }, @@ -15386,8 +15492,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ] } }, @@ -15420,6 +15526,7 @@ "markers": { "items": [ "crown", + "flower", "sword" ] } @@ -15476,8 +15583,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ] } }, @@ -15490,6 +15597,11 @@ "grey": 0.9811, "black": 0.0189 } + }, + "markers": { + "items": [ + "grape" + ] } }, { @@ -15532,9 +15644,9 @@ }, "markers": { "animals": [ + "bird", "heron", - "rooster", - "bird" + "rooster" ] } }, @@ -15607,12 +15719,13 @@ }, "markers": { "animals": [ + "bird", "dog" ], "items": [ "apple", - "tree", - "crown" + "crown", + "tree" ] } }, @@ -15702,8 +15815,8 @@ "boar" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -15786,8 +15899,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ] } }, @@ -15804,8 +15917,8 @@ }, "markers": { "items": [ - "lily", - "flower" + "flower", + "lily" ] } }, @@ -15941,10 +16054,10 @@ }, "markers": { "items": [ - "lily", "crown", - "saint", - "flower" + "flower", + "lily", + "saint" ] } }, @@ -15977,8 +16090,8 @@ }, "markers": { "animals": [ - "pigeon", - "bird" + "bird", + "pigeon" ], "items": [ "crown" @@ -16077,8 +16190,8 @@ }, "markers": { "items": [ - "lily", - "flower" + "flower", + "lily" ] } }, @@ -16126,6 +16239,11 @@ "black": 0.0056, "red": 0.1571 } + }, + "markers": { + "items": [ + "walls" + ] } }, { @@ -16138,6 +16256,11 @@ "black": 0.0242, "gold": 0.2551 } + }, + "markers": { + "items": [ + "walls" + ] } }, { @@ -16157,10 +16280,10 @@ }, "markers": { "items": [ - "walls", "cross", "crown", - "sword" + "sword", + "walls" ] } }, @@ -16310,10 +16433,10 @@ "lion" ], "items": [ - "key", - "walls", "crown", - "sword" + "key", + "sword", + "walls" ] } }, @@ -16415,13 +16538,13 @@ }, "markers": { "animals": [ + "bird", "pigeon", - "shell", - "bird" + "shell" ], "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -16574,8 +16697,8 @@ "griffin" ], "items": [ - "crown", - "anchor" + "anchor", + "crown" ] } }, @@ -16718,8 +16841,8 @@ ], "items": [ "boat", - "crozier", - "crown" + "crown", + "crozier" ] } }, @@ -16741,7 +16864,8 @@ "lion" ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -16770,6 +16894,11 @@ "white": 0.0021, "black": 0.0001 } + }, + "markers": { + "items": [ + "earOfGrain" + ] } }, { @@ -16807,8 +16936,8 @@ }, "markers": { "items": [ - "lily", - "flower" + "flower", + "lily" ] } }, @@ -16827,6 +16956,9 @@ } }, "markers": { + "animals": [ + "bird" + ], "items": [ "crown" ] @@ -16922,6 +17054,11 @@ "gold": 0.5353, "red": 0.3201 } + }, + "markers": { + "items": [ + "walls" + ] } }, { @@ -16938,8 +17075,8 @@ }, "markers": { "items": [ - "windmill", - "tree" + "tree", + "windmill" ] } }, @@ -16972,11 +17109,12 @@ }, "markers": { "animals": [ - "lion", - "dog" + "dog", + "lion" ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -16996,7 +17134,8 @@ "markers": { "items": [ "cross", - "crown" + "crown", + "walls" ] } }, @@ -17043,6 +17182,11 @@ "blue": 0.0399, "green": 0.025 } + }, + "markers": { + "items": [ + "grape" + ] } }, { @@ -17103,6 +17247,11 @@ "white": 0.001, "black": 0.0117 } + }, + "markers": { + "animals": [ + "bird" + ] } }, { @@ -17174,6 +17323,7 @@ }, "markers": { "items": [ + "flower", "saint" ] } @@ -17229,8 +17379,8 @@ "fox" ], "items": [ - "earOfGrain", - "crown" + "crown", + "earOfGrain" ] } }, @@ -17250,8 +17400,8 @@ "markers": { "items": [ "horn", - "sword", - "musicalInstrument" + "musicalInstrument", + "sword" ] } }, @@ -17346,8 +17496,8 @@ }, "markers": { "animals": [ - "lion", "fish", + "lion", "salmon" ] } @@ -17368,9 +17518,9 @@ }, "markers": { "animals": [ + "bird", "lion", - "swan", - "bird" + "swan" ], "items": [ "crown" @@ -17411,8 +17561,8 @@ }, "markers": { "items": [ - "tree", - "flower" + "flower", + "tree" ] } }, @@ -17432,10 +17582,10 @@ }, "markers": { "animals": [ + "bird", "eagle", "fish", - "salmon", - "bird" + "salmon" ], "items": [ "crown" @@ -17457,9 +17607,9 @@ }, "markers": { "items": [ - "rose", "crown", - "flower" + "flower", + "rose" ] } }, @@ -17566,10 +17716,10 @@ "shell" ], "items": [ - "lily", - "cross", "angel", - "flower" + "cross", + "flower", + "lily" ] } }, @@ -17588,8 +17738,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown" @@ -17612,8 +17762,8 @@ }, "markers": { "animals": [ - "lion", - "horse" + "horse", + "lion" ] } }, @@ -17636,9 +17786,9 @@ "lion" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -17678,7 +17828,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "walls" ] } }, @@ -17715,14 +17866,15 @@ }, "markers": { "animals": [ - "lion", - "horse", - "fish", + "centaur", "dog", - "centaur" + "fish", + "horse", + "lion" ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -17906,8 +18058,8 @@ }, "markers": { "items": [ - "horseshoe", - "crown" + "crown", + "horseshoe" ] } }, @@ -18049,9 +18201,9 @@ "lion" ], "items": [ - "walls", + "anchor", "crown", - "anchor" + "walls" ] } }, @@ -18131,9 +18283,9 @@ }, "markers": { "items": [ - "tree", "angel", - "crown" + "crown", + "tree" ] } }, @@ -18294,6 +18446,9 @@ } }, "markers": { + "animals": [ + "dog" + ], "items": [ "tree" ] @@ -18332,6 +18487,11 @@ "grey": 0.2589, "black": 0.0001 } + }, + "markers": { + "items": [ + "earOfGrain" + ] } }, { @@ -18388,14 +18548,14 @@ }, "markers": { "animals": [ - "stork", - "bird" + "bird", + "stork" ], "items": [ "boat", - "jewelry", "crown", "horn", + "jewelry", "musicalInstrument" ] } @@ -18497,8 +18657,8 @@ }, "markers": { "animals": [ - "pigeon", - "bird" + "bird", + "pigeon" ] } }, @@ -18593,8 +18753,8 @@ }, "markers": { "items": [ - "rose", - "flower" + "flower", + "rose" ] } }, @@ -18682,9 +18842,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown" @@ -18781,8 +18941,8 @@ "lion" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -18803,8 +18963,8 @@ }, "markers": { "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -18846,8 +19006,8 @@ }, "markers": { "animals": [ - "lion", - "boar" + "boar", + "lion" ] } }, @@ -18867,8 +19027,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown" @@ -18892,9 +19052,9 @@ }, "markers": { "items": [ + "crown", "earOfGrain", - "walls", - "crown" + "walls" ] } }, @@ -18951,6 +19111,11 @@ "red": 0.0187, "black": 0.0103 } + }, + "markers": { + "items": [ + "tree" + ] } }, { @@ -18988,8 +19153,8 @@ }, "markers": { "animals": [ - "lion", - "dragon" + "dragon", + "lion" ], "items": [ "angel", @@ -19030,9 +19195,9 @@ }, "markers": { "animals": [ + "bird", "duck", - "fox", - "bird" + "fox" ] } }, @@ -19072,9 +19237,9 @@ }, "markers": { "items": [ - "windmill", + "crown", "earOfGrain", - "crown" + "windmill" ] } }, @@ -19673,9 +19838,9 @@ "lion" ], "items": [ + "crown", "flower", - "walls", - "crown" + "walls" ] } }, @@ -19711,6 +19876,11 @@ "green": 0.0001, "blue": 0.0015 } + }, + "markers": { + "items": [ + "walls" + ] } }, { @@ -19837,8 +20007,8 @@ }, "markers": { "items": [ - "lily", - "flower" + "flower", + "lily" ] } }, @@ -19858,10 +20028,10 @@ }, "markers": { "animals": [ + "bird", "deer", - "owl", "duck", - "bird" + "owl" ], "items": [ "crown" @@ -19928,8 +20098,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown" @@ -19945,6 +20115,11 @@ "grey": 0.9582, "black": 0.0418 } + }, + "markers": { + "items": [ + "flower" + ] } }, { @@ -19979,10 +20154,10 @@ }, "markers": { "items": [ - "rose", - "walls", "crown", - "flower" + "flower", + "rose", + "walls" ] } }, @@ -20000,8 +20175,8 @@ }, "markers": { "animals": [ - "rooster", - "bird" + "bird", + "rooster" ] } }, @@ -20091,6 +20266,9 @@ "markers": { "animals": [ "lion" + ], + "items": [ + "walls" ] } }, @@ -20179,10 +20357,10 @@ }, "markers": { "animals": [ + "bird", "deer", - "raven", "owl", - "bird" + "raven" ], "items": [ "angel" @@ -20218,8 +20396,8 @@ }, "markers": { "items": [ - "flower", - "crown" + "crown", + "flower" ] } }, @@ -20250,8 +20428,8 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ] } }, @@ -20399,12 +20577,12 @@ }, "markers": { "animals": [ - "falcon", - "bird" + "bird", + "falcon" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -20499,10 +20677,10 @@ }, "markers": { "items": [ + "crown", "heart", "tree", - "walls", - "crown" + "walls" ] } }, @@ -20518,6 +20696,11 @@ "red": 0.1456, "blue": 0 } + }, + "markers": { + "items": [ + "walls" + ] } }, { @@ -20556,6 +20739,9 @@ "markers": { "animals": [ "lion" + ], + "items": [ + "walls" ] } }, @@ -20574,8 +20760,8 @@ }, "markers": { "animals": [ - "duck", - "bird" + "bird", + "duck" ] } }, @@ -20659,8 +20845,9 @@ "lion" ], "items": [ + "crown", "flower", - "crown" + "walls" ] } }, @@ -20773,9 +20960,9 @@ }, "markers": { "items": [ - "rose", "crown", - "flower" + "flower", + "rose" ] } }, @@ -20816,8 +21003,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "earOfGrain" @@ -20949,8 +21136,8 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ], "items": [ "walls" diff --git a/public/data/heraldry/nl/gemeente-details-data.json b/public/data/heraldry/nl/gemeente-details-data.json index 8e294fa27..0d0ceb1d6 100644 --- a/public/data/heraldry/nl/gemeente-details-data.json +++ b/public/data/heraldry/nl/gemeente-details-data.json @@ -18,11 +18,11 @@ "deer" ], "items": [ - "lily", "cross", "crown", - "saint", - "flower" + "flower", + "lily", + "saint" ] } }, @@ -88,8 +88,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "cross", @@ -114,13 +114,13 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "rose", "crown", - "flower" + "flower", + "rose" ] } }, @@ -208,14 +208,14 @@ }, "markers": { "animals": [ - "horse", + "bird", "eagle", - "bird" + "horse" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -257,9 +257,9 @@ }, "markers": { "animals": [ + "bird", "horse", - "raven", - "bird" + "raven" ], "items": [ "crown" @@ -307,10 +307,10 @@ "unusualHybrid" ], "items": [ - "lily", "boat", "crown", - "flower" + "flower", + "lily" ] } }, @@ -334,10 +334,10 @@ "horse" ], "items": [ - "lily", - "jewelry", "crown", - "flower" + "flower", + "jewelry", + "lily" ] } }, @@ -360,11 +360,11 @@ "lion" ], "items": [ + "crown", + "flower", "heart", "lily", - "crown", - "saint", - "flower" + "saint" ] } }, @@ -385,11 +385,12 @@ }, "markers": { "items": [ + "crown", + "flower", "heart", "lily", - "crown", "saint", - "flower" + "walls" ] } }, @@ -430,10 +431,10 @@ "deer" ], "items": [ - "lily", "crown", - "saint", - "flower" + "flower", + "lily", + "saint" ] } }, @@ -498,7 +499,8 @@ "fox" ], "items": [ - "crown" + "crown", + "tree" ] } }, @@ -539,10 +541,10 @@ }, "markers": { "items": [ - "lily", "cross", "crown", - "flower" + "flower", + "lily" ] } }, @@ -563,8 +565,8 @@ }, "markers": { "items": [ - "tree", - "sword" + "sword", + "tree" ] } }, @@ -583,8 +585,8 @@ }, "markers": { "animals": [ - "lion", - "deer" + "deer", + "lion" ], "items": [ "crown" @@ -650,8 +652,8 @@ }, "markers": { "animals": [ - "rabbit", - "dog" + "dog", + "rabbit" ], "items": [ "crown" @@ -675,9 +677,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown" @@ -703,8 +705,8 @@ "deer" ], "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -724,9 +726,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown" @@ -749,14 +751,14 @@ }, "markers": { "animals": [ - "lion", "bird", + "dog", "dragon", - "dog" + "lion" ], "items": [ - "tree", - "boat" + "boat", + "tree" ] } }, @@ -776,10 +778,10 @@ }, "markers": { "items": [ - "tree", "crown", "horn", - "musicalInstrument" + "musicalInstrument", + "tree" ] } }, @@ -799,8 +801,8 @@ }, "markers": { "items": [ - "tree", - "boat" + "boat", + "tree" ] } }, @@ -823,9 +825,9 @@ "unicorn" ], "items": [ - "rose", "crown", - "flower" + "flower", + "rose" ] } }, @@ -868,9 +870,9 @@ }, "markers": { "items": [ - "tree", "crown", - "sword" + "sword", + "tree" ] } }, @@ -888,8 +890,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "key" @@ -912,9 +914,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown" @@ -941,8 +943,8 @@ "insect" ], "items": [ - "flower", - "crown" + "crown", + "flower" ] } }, @@ -965,9 +967,9 @@ "lion" ], "items": [ - "rose", "crown", - "flower" + "flower", + "rose" ] } }, @@ -1012,13 +1014,13 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -1112,7 +1114,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "walls" ] } }, @@ -1178,8 +1181,8 @@ }, "markers": { "animals": [ - "pigeon", - "bird" + "bird", + "pigeon" ] } }, @@ -1217,9 +1220,9 @@ "lion" ], "items": [ + "crown", "flower", - "walls", - "crown" + "walls" ] } }, @@ -1239,10 +1242,10 @@ }, "markers": { "animals": [ - "lion", + "bird", "deer", "eagle", - "bird" + "lion" ] } }, @@ -1283,9 +1286,9 @@ "lion" ], "items": [ - "rose", "crown", - "flower" + "flower", + "rose" ] } }, @@ -1366,12 +1369,12 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -1394,7 +1397,8 @@ "lion" ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -1414,12 +1418,12 @@ }, "markers": { "animals": [ - "parrot", - "bird" + "bird", + "parrot" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -1486,11 +1490,11 @@ "lion" ], "items": [ - "lily", "cross", "crown", - "sword", - "flower" + "flower", + "lily", + "sword" ] } }, @@ -1510,13 +1514,13 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -1554,6 +1558,11 @@ "white": 0.0048, "blue": 0.0013 } + }, + "markers": { + "items": [ + "tree" + ] } }, { @@ -1573,6 +1582,9 @@ "markers": { "animals": [ "lion" + ], + "items": [ + "walls" ] } }, @@ -1594,8 +1606,8 @@ "lion" ], "items": [ - "jewelry", - "crown" + "crown", + "jewelry" ] } }, @@ -1619,10 +1631,10 @@ "lion" ], "items": [ - "walls", "boat", "cross", - "crown" + "crown", + "walls" ] } }, @@ -1661,8 +1673,8 @@ }, "markers": { "animals": [ - "lion", - "horse" + "horse", + "lion" ], "items": [ "crown" @@ -1698,8 +1710,8 @@ }, "markers": { "items": [ - "rose", - "flower" + "flower", + "rose" ] } }, @@ -1719,10 +1731,10 @@ }, "markers": { "items": [ - "lily", "boat", "crown", - "flower" + "flower", + "lily" ] } }, @@ -1741,9 +1753,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown", @@ -1790,8 +1802,8 @@ ], "items": [ "cross", - "wheel", - "crown" + "crown", + "wheel" ] } }, @@ -1815,8 +1827,8 @@ "lion" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -1837,8 +1849,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown" @@ -1860,8 +1872,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ] } }, @@ -1880,9 +1892,9 @@ "bullBison" ], "items": [ - "tree", "cross", - "crown" + "crown", + "tree" ] } }, @@ -1928,10 +1940,12 @@ "lion" ], "items": [ - "rose", "crown", + "flower", + "rose", "sword", - "flower" + "tree", + "walls" ] } }, @@ -1951,8 +1965,8 @@ }, "markers": { "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -1997,14 +2011,14 @@ }, "markers": { "animals": [ + "bird", "eagle", - "pelican", - "bird" + "pelican" ], "items": [ - "key", + "anchor", "crown", - "anchor" + "key" ] } }, @@ -2025,8 +2039,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "cross", @@ -2114,9 +2128,9 @@ }, "markers": { "items": [ + "bell", "boat", - "crown", - "bell" + "crown" ] } }, @@ -2136,11 +2150,12 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ - "crown" + "crown", + "earOfGrain" ] } }, @@ -2163,9 +2178,9 @@ "snake" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -2185,7 +2200,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "earOfGrain" ] } }, @@ -2205,12 +2221,13 @@ }, "markers": { "animals": [ - "lion", + "griffin", "horse", - "griffin" + "lion" ], "items": [ - "crown" + "crown", + "earOfGrain" ] } }, @@ -2230,8 +2247,8 @@ }, "markers": { "animals": [ - "lion", - "horse" + "horse", + "lion" ], "items": [ "cross", @@ -2300,10 +2317,10 @@ "markers": { "items": [ "arrow", - "walls", "cross", "crown", - "sword" + "sword", + "walls" ] } }, @@ -2323,8 +2340,8 @@ }, "markers": { "animals": [ - "pigeon", - "bird" + "bird", + "pigeon" ], "items": [ "saint" @@ -2347,12 +2364,13 @@ }, "markers": { "animals": [ - "falcon", - "bird" + "bird", + "falcon" ], "items": [ "cross", - "crown" + "crown", + "tree" ] } }, @@ -2394,8 +2412,12 @@ } }, "markers": { + "animals": [ + "fish" + ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -2415,15 +2437,15 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ - "lily", "cross", "crown", - "flower" + "flower", + "lily" ] } }, @@ -2467,8 +2489,8 @@ }, "markers": { "items": [ - "flower", - "crown" + "crown", + "flower" ] } }, @@ -2491,8 +2513,8 @@ "lion" ], "items": [ - "hammer", "crozier", + "hammer", "saint", "sword" ] @@ -2538,8 +2560,8 @@ "items": [ "crown", "horn", - "sword", - "musicalInstrument" + "musicalInstrument", + "sword" ] } }, @@ -2601,13 +2623,13 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ - "lily", - "flower" + "flower", + "lily" ] } }, @@ -2693,8 +2715,8 @@ "lion" ], "items": [ - "lily", - "flower" + "flower", + "lily" ] } }, @@ -2713,13 +2735,13 @@ }, "markers": { "animals": [ - "lion", - "deer" + "deer", + "lion" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -2739,13 +2761,13 @@ }, "markers": { "animals": [ + "bird", "pigeon", - "shell", - "bird" + "shell" ], "items": [ - "crozier", "crown", + "crozier", "saint" ] } @@ -2807,17 +2829,17 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", "falcon", - "bird" + "lion" ], "items": [ + "crown", + "flower", "key", "lily", - "walls", - "crown", - "flower" + "walls" ] } }, @@ -2861,13 +2883,13 @@ }, "markers": { "animals": [ - "lion", "bee", - "insect" + "insect", + "lion" ], "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -2888,14 +2910,14 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ + "flower", "key", - "lily", - "flower" + "lily" ] } }, @@ -2960,8 +2982,8 @@ }, "markers": { "animals": [ - "salmon", - "fish" + "fish", + "salmon" ], "items": [ "crown" @@ -3023,12 +3045,12 @@ "lion" ], "items": [ - "tree", - "lily", "cross", "crown", + "flower", + "lily", "saint", - "flower" + "tree" ] } }, @@ -3063,10 +3085,10 @@ }, "markers": { "items": [ - "earOfGrain", - "lily", "crown", - "flower" + "earOfGrain", + "flower", + "lily" ] } }, @@ -3108,8 +3130,8 @@ }, "markers": { "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -3139,8 +3161,8 @@ }, "markers": { "animals": [ - "duck", - "bird" + "bird", + "duck" ], "items": [ "key" @@ -3166,9 +3188,10 @@ "lion" ], "items": [ - "cross", "angel", - "crown" + "cross", + "crown", + "walls" ] } }, @@ -3187,9 +3210,9 @@ }, "markers": { "animals": [ - "eagle", + "bird", "crane", - "bird" + "eagle" ], "items": [ "horn", @@ -3213,9 +3236,9 @@ }, "markers": { "items": [ - "walls", "cross", - "saint" + "saint", + "walls" ] } }, @@ -3278,10 +3301,10 @@ "lion" ], "items": [ - "lily", - "walls", "crown", - "flower" + "flower", + "lily", + "walls" ] } }, @@ -3325,7 +3348,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "walls" ] } }, @@ -3344,9 +3368,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ "crown", @@ -3369,8 +3393,8 @@ }, "markers": { "items": [ - "heart", - "crown" + "crown", + "heart" ] } }, @@ -3390,8 +3414,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "cross", @@ -3447,11 +3471,12 @@ }, "markers": { "animals": [ - "duck", - "bird" + "bird", + "duck" ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -3470,9 +3495,9 @@ }, "markers": { "items": [ - "tree", "horn", - "musicalInstrument" + "musicalInstrument", + "tree" ] } }, @@ -3511,13 +3536,13 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -3539,8 +3564,8 @@ "lion" ], "items": [ - "wheel", - "crown" + "crown", + "wheel" ] } }, @@ -3560,13 +3585,13 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ - "key", - "jewelry" + "jewelry", + "key" ] } }, @@ -3585,9 +3610,9 @@ }, "markers": { "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -3607,8 +3632,9 @@ }, "markers": { "items": [ + "crown", "heart", - "crown" + "walls" ] } }, @@ -3664,7 +3690,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "walls" ] } }, @@ -3708,10 +3735,10 @@ "lion" ], "items": [ - "rose", "cross", "crown", - "flower" + "flower", + "rose" ] } }, @@ -3735,8 +3762,8 @@ "lion" ], "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -3801,11 +3828,11 @@ "bullBison" ], "items": [ - "tree", - "rose", "cross", "crown", - "flower" + "flower", + "rose", + "tree" ] } }, @@ -3821,6 +3848,11 @@ "white": 0.0013, "green": 0.0001 } + }, + "markers": { + "items": [ + "earOfGrain" + ] } }, { @@ -3842,9 +3874,9 @@ "lion" ], "items": [ - "rose", "crown", - "flower" + "flower", + "rose" ] } }, @@ -3890,8 +3922,8 @@ "dragon" ], "items": [ - "cross", "angel", + "cross", "crown", "sword" ] @@ -3995,14 +4027,14 @@ }, "markers": { "animals": [ - "falcon", - "bird" + "bird", + "falcon" ], "items": [ - "lily", "crown", - "horn", "flower", + "horn", + "lily", "musicalInstrument" ] } @@ -4072,10 +4104,10 @@ "lion" ], "items": [ - "lily", "crown", - "saint", - "flower" + "flower", + "lily", + "saint" ] } }, @@ -4145,10 +4177,10 @@ "lion" ], "items": [ - "lily", "cross", "crown", - "flower" + "flower", + "lily" ] } }, @@ -4188,6 +4220,9 @@ "markers": { "animals": [ "lion" + ], + "items": [ + "walls" ] } }, @@ -4266,14 +4301,14 @@ }, "markers": { "animals": [ + "bird", "lion", - "rooster", - "bird" + "rooster" ], "items": [ - "lily", "angel", - "flower" + "flower", + "lily" ] } }, @@ -4293,8 +4328,8 @@ }, "markers": { "items": [ - "flower", - "crown" + "crown", + "flower" ] } }, @@ -4376,8 +4411,8 @@ }, "markers": { "animals": [ - "duck", - "bird" + "bird", + "duck" ], "items": [ "crown" @@ -4401,9 +4436,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "heron", - "bird" + "lion" ], "items": [ "crown" @@ -4425,10 +4460,10 @@ }, "markers": { "items": [ - "rose", "crown", - "sword", - "flower" + "flower", + "rose", + "sword" ] } }, @@ -4447,9 +4482,9 @@ }, "markers": { "animals": [ - "lion", + "bear", "bullBison", - "bear" + "lion" ] } }, @@ -4489,8 +4524,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ] } }, @@ -4511,15 +4546,15 @@ }, "markers": { "animals": [ - "lion", - "deer" + "deer", + "lion" ], "items": [ - "tree", + "bell", "cross", "crown", - "bell", - "sword" + "sword", + "tree" ] } }, @@ -4601,8 +4636,8 @@ }, "markers": { "animals": [ - "lion", - "griffin" + "griffin", + "lion" ], "items": [ "cross", @@ -4648,9 +4683,9 @@ "animals": [ "lion" ], - "items": [ - "jewelry", - "crown" + "items": [ + "crown", + "jewelry" ] } }, @@ -4670,10 +4705,10 @@ }, "markers": { "animals": [ - "eagle", + "bird", "bullBison", - "unicorn", - "bird" + "eagle", + "unicorn" ], "items": [ "horn", @@ -4714,9 +4749,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "goose", - "bird" + "lion" ], "items": [ "crown" @@ -4739,8 +4774,8 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ], "items": [ "arrow" @@ -4760,14 +4795,14 @@ }, "markers": { "animals": [ + "bird", "eagle", - "ram", - "bird" + "ram" ], "items": [ "cross", - "jewelry", "crown", + "jewelry", "saint" ] } @@ -4837,9 +4872,10 @@ "lion" ], "items": [ + "crown", + "earOfGrain", "tree", - "walls", - "crown" + "walls" ] } }, @@ -4883,7 +4919,8 @@ ], "items": [ "boat", - "crown" + "crown", + "tree" ] } }, @@ -4906,11 +4943,11 @@ "lion" ], "items": [ - "lily", - "rose", - "jewelry", "crown", - "flower" + "flower", + "jewelry", + "lily", + "rose" ] } }, @@ -4930,8 +4967,8 @@ }, "markers": { "items": [ - "tree", - "crown" + "crown", + "tree" ] } }, @@ -4994,12 +5031,12 @@ }, "markers": { "items": [ - "rose", "boat", "crown", - "horn", "flower", - "musicalInstrument" + "horn", + "musicalInstrument", + "rose" ] } }, @@ -5040,12 +5077,13 @@ }, "markers": { "animals": [ - "swan", - "bird" + "bird", + "swan" ], "items": [ "arrow", - "crown" + "crown", + "walls" ] } }, @@ -5065,8 +5103,8 @@ }, "markers": { "animals": [ - "goose", - "bird" + "bird", + "goose" ], "items": [ "crown" @@ -5089,8 +5127,8 @@ }, "markers": { "animals": [ - "stork", - "bird" + "bird", + "stork" ], "items": [ "crown" @@ -5174,9 +5212,9 @@ }, "markers": { "animals": [ - "lion", "bee", - "insect" + "insect", + "lion" ], "items": [ "crown" @@ -5220,8 +5258,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "crown", @@ -5248,9 +5286,9 @@ "lion" ], "items": [ - "walls", "cross", - "crown" + "crown", + "walls" ] } }, @@ -5311,10 +5349,11 @@ }, "markers": { "items": [ - "rose", "crown", + "flower", + "rose", "saint", - "flower" + "tree" ] } }, @@ -5357,6 +5396,9 @@ "animals": [ "bee", "insect" + ], + "items": [ + "earOfGrain" ] } }, @@ -5399,8 +5441,8 @@ "lion" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -5459,11 +5501,12 @@ }, "markers": { "animals": [ - "pigeon", - "bird" + "bird", + "pigeon" ], "items": [ - "crown" + "crown", + "tree" ] } }, @@ -5483,14 +5526,14 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ - "tree", "crown", - "saint" + "saint", + "tree" ] } }, @@ -5510,9 +5553,9 @@ }, "markers": { "items": [ - "earOfGrain", "cross", - "crown" + "crown", + "earOfGrain" ] } }, @@ -5534,9 +5577,9 @@ "boar" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -5568,9 +5611,9 @@ }, "markers": { "items": [ + "anchor", "cross", - "crown", - "anchor" + "crown" ] } }, @@ -5617,7 +5660,8 @@ "lion" ], "items": [ - "crown" + "crown", + "tree" ] } }, @@ -5658,10 +5702,10 @@ "salmon" ], "items": [ - "lily", "cross", "crown", - "flower" + "flower", + "lily" ] } }, @@ -5683,8 +5727,8 @@ "lion" ], "items": [ - "cross", "angel", + "cross", "crown", "saint" ] @@ -5706,9 +5750,9 @@ }, "markers": { "animals": [ - "lion", + "dragon", "horse", - "dragon" + "lion" ], "items": [ "cross", @@ -5731,8 +5775,8 @@ }, "markers": { "animals": [ - "lion", - "horse" + "horse", + "lion" ], "items": [ "crozier" @@ -5756,16 +5800,16 @@ }, "markers": { "animals": [ - "lion", - "horse", + "bird", "eagle", - "rooster", - "bird" + "horse", + "lion", + "rooster" ], "items": [ - "lily", "crown", - "flower" + "flower", + "lily" ] } }, @@ -5785,8 +5829,8 @@ }, "markers": { "animals": [ - "eagle", - "bird" + "bird", + "eagle" ], "items": [ "cross", @@ -5832,13 +5876,14 @@ }, "markers": { "animals": [ - "snake", "bird", - "ram" + "ram", + "snake" ], "items": [ + "crown", "key", - "crown" + "tree" ] } }, @@ -5912,10 +5957,11 @@ }, "markers": { "items": [ - "lily", "cross", "crown", - "flower" + "flower", + "lily", + "walls" ] } }, @@ -5938,7 +5984,8 @@ "lion" ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -5959,7 +6006,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "walls" ] } }, @@ -5982,9 +6030,9 @@ "lion" ], "items": [ + "crown", "flower", - "walls", - "crown" + "walls" ] } }, @@ -6027,8 +6075,8 @@ "lion" ], "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -6092,12 +6140,13 @@ }, "markers": { "animals": [ - "lion", - "horse" + "horse", + "lion" ], "items": [ "crown", - "saint" + "saint", + "walls" ] } }, @@ -6119,10 +6168,10 @@ "lion" ], "items": [ - "lily", "cross", "crown", - "flower" + "flower", + "lily" ] } }, @@ -6162,10 +6211,10 @@ "lion" ], "items": [ - "heart", - "rose", "crown", - "flower" + "flower", + "heart", + "rose" ] } }, @@ -6228,8 +6277,8 @@ }, "markers": { "animals": [ - "rooster", - "bird" + "bird", + "rooster" ], "items": [ "crown" @@ -6271,7 +6320,8 @@ "unicorn" ], "items": [ - "crown" + "crown", + "tree" ] } }, @@ -6292,9 +6342,9 @@ }, "markers": { "animals": [ - "lion", + "bird", "goose", - "bird" + "lion" ], "items": [ "crown" @@ -6317,8 +6367,8 @@ }, "markers": { "animals": [ - "lion", - "dragon" + "dragon", + "lion" ], "items": [ "cross", @@ -6346,8 +6396,8 @@ "boar" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -6366,16 +6416,16 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ - "walls", "crown", "horn", + "musicalInstrument", "saint", - "musicalInstrument" + "walls" ] } }, @@ -6466,10 +6516,10 @@ "lion" ], "items": [ - "walls", "crown", "horn", - "musicalInstrument" + "musicalInstrument", + "walls" ] } }, @@ -6488,12 +6538,14 @@ }, "markers": { "animals": [ + "bird", "lion" ], "items": [ - "key", "cross", - "crown" + "crown", + "key", + "walls" ] } }, @@ -6539,8 +6591,8 @@ }, "markers": { "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -6620,7 +6672,8 @@ "lion" ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -6660,8 +6713,8 @@ }, "markers": { "animals": [ - "duck", - "bird" + "bird", + "duck" ], "items": [ "crown" @@ -6704,8 +6757,8 @@ "lion" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -6726,11 +6779,11 @@ }, "markers": { "animals": [ - "lion", - "stork", "bee", "bird", - "insect" + "insect", + "lion", + "stork" ], "items": [ "flower" @@ -6756,7 +6809,8 @@ "griffin" ], "items": [ - "crown" + "crown", + "walls" ] } }, @@ -6775,7 +6829,8 @@ }, "markers": { "items": [ - "crown" + "crown", + "earOfGrain" ] } }, @@ -6797,8 +6852,8 @@ "lion" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -6841,8 +6896,8 @@ }, "markers": { "animals": [ - "raven", - "bird" + "bird", + "raven" ], "items": [ "crown" @@ -6948,8 +7003,8 @@ }, "markers": { "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -7001,8 +7056,8 @@ "lion" ], "items": [ - "key", "crown", + "key", "sword" ] } @@ -7049,8 +7104,9 @@ "deer" ], "items": [ + "crown", "key", - "crown" + "walls" ] } }, @@ -7128,9 +7184,9 @@ }, "markers": { "items": [ - "windmill", + "crown", "earOfGrain", - "crown" + "windmill" ] } }, @@ -7147,9 +7203,9 @@ }, "markers": { "animals": [ + "bird", "eagle", - "fox", - "bird" + "fox" ], "items": [ "cross", @@ -7270,9 +7326,9 @@ }, "markers": { "animals": [ - "lion", + "dragon", "horse", - "dragon" + "lion" ], "items": [ "crown", @@ -7315,15 +7371,15 @@ }, "markers": { "animals": [ - "lion", - "eagle", "bee", "bird", - "insect" + "eagle", + "insect", + "lion" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -7343,13 +7399,13 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ - "walls", - "crown" + "crown", + "walls" ] } }, @@ -7451,8 +7507,8 @@ }, "markers": { "items": [ - "key", - "crown" + "crown", + "key" ] } }, @@ -7516,8 +7572,8 @@ "lion" ], "items": [ - "flower", - "crown" + "crown", + "flower" ] } }, diff --git a/public/data/heraldry/nl/province-details-data.json b/public/data/heraldry/nl/province-details-data.json index 52b7eb6d6..f7c8f12d5 100644 --- a/public/data/heraldry/nl/province-details-data.json +++ b/public/data/heraldry/nl/province-details-data.json @@ -14,9 +14,6 @@ "markers": { "animals": [ "lion" - ], - "items": [ - "crown" ] } }, @@ -38,10 +35,10 @@ "lion" ], "items": [ - "lily", "crown", - "saint", - "flower" + "flower", + "lily", + "saint" ] } }, @@ -64,10 +61,10 @@ "lion" ], "items": [ - "lily", "crown", - "saint", - "flower" + "flower", + "lily", + "saint" ] } }, @@ -87,13 +84,13 @@ }, "markers": { "animals": [ - "lion", - "griffin" + "griffin", + "lion" ], "items": [ + "crown", "heart", - "tree", - "crown" + "tree" ] } }, @@ -112,14 +109,14 @@ }, "markers": { "animals": [ - "lion", - "dragon" + "dragon", + "lion" ], "items": [ - "rose", - "flower", "cross", - "crown" + "crown", + "flower", + "rose" ] } }, @@ -139,13 +136,13 @@ }, "markers": { "animals": [ - "lion", - "griffin" + "griffin", + "lion" ], "items": [ + "crown", "heart", - "tree", - "crown" + "tree" ] } }, @@ -166,13 +163,13 @@ }, "markers": { "animals": [ - "lion", + "bird", "eagle", - "bird" + "lion" ], "items": [ - "heart", - "crown" + "crown", + "heart" ] } }, diff --git a/scripts/heraldry/nl/overrides.ts b/scripts/heraldry/nl/overrides.ts index d023b150f..63149265e 100644 --- a/scripts/heraldry/nl/overrides.ts +++ b/scripts/heraldry/nl/overrides.ts @@ -22,6 +22,14 @@ export const overrides: CountryOverridesInput = { }, }, locationPageByTitle: { + "Wapen van Herwen en Aerdt": "Zevenaar (gemeente)", + "Wapen van Zegwaart": "Zoetermeer", + "Wapen van Valkenisse (Zuid-Beveland)": "Reimerswaal (gemeente)", + "Wapen van Jabeek": "Beekdaelen", + "Wapen van Heille": "Sluis (gemeente)", + "Wapen van Limburg (Nederland)": "Limburg (Nederlandse provincie)", + "Wapen van Broeksittard": "Sittard-Geleen", + "Wapen van Oosterbroek": "Menterwolde", "Wapen van Sloten (Friesland)": "Sloten (Friesland)", "Wapen van Melick en Herkenbosch": "Herkenbosch", "Wapen van Kessel (Limburg)": "Kessel (Limburg)", diff --git a/src/topic/Heraldry/components/Panes/DevelopmentPane/DevelopmentPaneSidebarListOfFilters.tsx b/src/topic/Heraldry/components/Panes/DevelopmentPane/DevelopmentPaneSidebarListOfFilters.tsx index 5d4b96067..8ad234bab 100644 --- a/src/topic/Heraldry/components/Panes/DevelopmentPane/DevelopmentPaneSidebarListOfFilters.tsx +++ b/src/topic/Heraldry/components/Panes/DevelopmentPane/DevelopmentPaneSidebarListOfFilters.tsx @@ -1,88 +1,98 @@ -import { memo, useState, useCallback, useMemo, Dispatch, SetStateAction } from 'react'; -import { useTranslation } from 'react-i18next'; +import { + memo, + useState, + useCallback, + useMemo, + Dispatch, + SetStateAction, +} from "react"; +import { useTranslation } from "react-i18next"; -import IconCopy from '@/components/Icons/IconCopy'; -import IconEraser from '@/components/Icons/IconEraser'; -import IconSelected from '@/components/Icons/IconSelected'; -import IconSelectNew from '@/components/Icons/IconSelectNew'; -import IconAnimal from '@/components/Icons/IconAnimal'; -import IconCrown from '@/components/Icons/IconCrown'; +import IconCopy from "@/components/Icons/IconCopy"; +import IconSelected from "@/components/Icons/IconSelected"; +import IconSelectNew from "@/components/Icons/IconSelectNew"; -import Space from '@/components/UI/Space'; -import ButtonText from '@/components/UI/ButtonText'; +import Space from "@/components/UI/Space"; +import ButtonText from "@/components/UI/ButtonText"; -import useQueryFiltersSeeds from '@/topic/Heraldry/features/modify/hooks/useQueryFiltersSeeds'; +import useQueryFiltersSeeds from "@/topic/Heraldry/features/modify/hooks/useQueryFiltersSeeds"; -import { copyText } from '@/utils/text'; +import { copyText } from "@/utils/text"; -import { MarkerParamsWithResult } from '@/topic/Heraldry/types'; +import { MarkerParamsWithResult } from "@/topic/Heraldry/types"; -import FilterModifications from '@/topic/Heraldry/features/modifyMarkers/components/DevelopmentPaneSidebarListOfFilters/FilterModifications'; -import { useFilterModificationStore, selectShortcuts, resetModifications } from '@/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore'; +import FilterModifications from "@/topic/Heraldry/features/modifyMarkers/components/DevelopmentPaneSidebarListOfFilters/FilterModifications"; -import DevelopmentPaneSnippet from './DevelopmentPaneSnippet'; +import DevelopmentPaneSnippet from "./DevelopmentPaneSnippet"; +import FilterSelect from "./ListOfFilters/FilterSelect"; +import ShortcutsSelect from "./ListOfFilters/ShortcutsSelect"; +import FilterSeeds from "./ListOfFilters/FilterSeeds"; type Props = { - country: string, - setDraftFilter: Dispatch>, - onUse: () => void, + country: string; + setDraftFilter: Dispatch>; + onUse: () => void; }; +export type SelectState = + | { type: "type" | "animal" | "item"; name: string } + | undefined; + const DevelopmentPaneSidebarListOfFilters = ({ country, setDraftFilter, onUse, }: Props) => { - const shortcuts = useFilterModificationStore(state => selectShortcuts(state, 100)); - const [selected, setSelected] = useState<{ type: 'type' | 'animal' | 'item', name: string } | undefined>(); + const [selected, setSelected] = useState(); const { t } = useTranslation(); - const handleDraftUpdate = useCallback((filter: MarkerParamsWithResult) => { - setDraftFilter(filter); - onUse(); - }, [onUse, setDraftFilter]) - - const { - isLoading, - isError, - error, - data, - } = useQueryFiltersSeeds({ country }); - - const handleChange = useCallback((event: React.ChangeEvent) => { - if (!data) { - return; - } + const handleDraftUpdate = useCallback( + (filter: MarkerParamsWithResult) => { + setDraftFilter(filter); + onUse(); + }, + [onUse, setDraftFilter] + ); - const value = (event.target.value || ''); - const [type, name] = value.split('-'); + const { isError, error, data } = useQueryFiltersSeeds({ country }); - if (['type', 'animal', 'item'].includes(type)) { - setSelected({ - type: type as 'type' | 'animal' | 'item', - name, - }); + const handleChange = useCallback( + (event: React.ChangeEvent) => { + if (!data) { + return; + } - return; - } + const value = event.target.value || ""; + const [type, name] = value.split("-"); - setSelected(undefined); - }, [data]); + if (["type", "animal", "item"].includes(type)) { + setSelected({ + type: type as "type" | "animal" | "item", + name, + }); + + return; + } + + setSelected(undefined); + }, + [data] + ); const selectedFilter = useMemo(() => { - if (data && selected?.type === 'type') { + if (data && selected?.type === "type") { const filter = data.types.find(({ name }) => selected?.name === name); return filter; - } + } - if (data && selected?.type === 'animal') { + if (data && selected?.type === "animal") { const filter = data.animals.find(({ name }) => selected?.name === name); return filter; - } - - if (data && selected?.type === 'item') { + } + + if (data && selected?.type === "item") { const filter = data.items.find(({ name }) => selected?.name === name); return filter; @@ -92,7 +102,7 @@ const DevelopmentPaneSidebarListOfFilters = ({ }, [handleChange, selected]); if (isError) { - console.log('error', error); + console.log("error", error); } return ( @@ -101,92 +111,36 @@ const DevelopmentPaneSidebarListOfFilters = ({

- - App filters - + App filters

- You can read about the filters - {' '} + You can read about the filters{" "} here - {'. '} + {". "}

- {shortcuts.length > 0 &&
- - - {t('heraldry.list.clear')} - - {shortcuts.map(({ name, type, total }) => setSelected({ name, type })} - isActive={selected?.name === name && selected?.type === type} - isDisabled={!data} - > - {type === 'animal' ? : } - {t(`heraldry.${type}.${name}`)} ({total}) - )} -
} - + +
- {selectedFilter && copyText(`${JSON.stringify(selectedFilter, null, 4)},`)} - > - {t('main.copy')} - - } + {selectedFilter && ( + + copyText(`${JSON.stringify(selectedFilter, null, 4)},`) + } + > + {t("main.copy")} + + + )} selectedFilter ? handleDraftUpdate(selectedFilter) : {}} + onClick={() => + selectedFilter ? handleDraftUpdate(selectedFilter) : {} + } wrapperClassName="ml-auto" isActive={Boolean(selectedFilter)} isDisabled={!selectedFilter} @@ -195,22 +149,29 @@ const DevelopmentPaneSidebarListOfFilters = ({
- {selectedFilter && } - {selectedFilter && selected && ['animal', 'item'].includes(selected.type) && } + {selectedFilter && ( + + )} + {selectedFilter && + selected && + ["animal", "item"].includes(selected.type) && ( + + )} +
); -} +}; export default memo(DevelopmentPaneSidebarListOfFilters); diff --git a/src/topic/Heraldry/components/Panes/DevelopmentPane/ListOfFilters/FilterSeeds.tsx b/src/topic/Heraldry/components/Panes/DevelopmentPane/ListOfFilters/FilterSeeds.tsx new file mode 100644 index 000000000..484226f7d --- /dev/null +++ b/src/topic/Heraldry/components/Panes/DevelopmentPane/ListOfFilters/FilterSeeds.tsx @@ -0,0 +1,120 @@ +import { memo } from "react"; + +import IconCopy from "@/components/Icons/IconCopy"; +import IconSelected from "@/components/Icons/IconSelected"; +import { + useFilterModificationStore, + selectShortcuts, +} from "@/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore"; +import ButtonText from "@/components/UI/ButtonText"; +import { copyText } from "@/utils/text"; +import useQueryFiltersSeeds from "@/topic/Heraldry/features/modify/hooks/useQueryFiltersSeeds"; +import { MarkerParams } from "@/topic/Heraldry/types"; +import { getMergedFilterData } from "@/topic/Heraldry/features/modifyMarkers/utils/get-merged-filter-data"; + +type Props = { + country: string; +}; + +const FilterSeeds = ({ country }: Props) => { + const shortcuts = useFilterModificationStore((state) => + selectShortcuts(state, 500) + ); + const { data } = useQueryFiltersSeeds({ country }); + + const handleClickCopy = () => { + if (!data) { + return; + } + + const modifications = useFilterModificationStore.getState(); + + const newData: { + types: MarkerParams[]; + animals: MarkerParams[]; + items: MarkerParams[]; + } = JSON.parse(JSON.stringify(data)); + + shortcuts.forEach(({ type, name }) => { + let typeKey: "animals" | "items" | undefined; + if (type === "animal") { + typeKey = "animals"; + } else if (type === "item") { + typeKey = "items"; + } + + if (typeKey) { + const { include = [], exclude = [] } = modifications[type][name] || {}; + + if (newData[typeKey].some((filter) => filter.name === name)) { + newData[typeKey] = newData[typeKey].map((filter) => { + if (filter.name === name) { + return getMergedFilterData({ + initFilter: filter, + include, + exclude, + }); + } + + return filter; + }); + } else { + newData[typeKey].push({ + name, + phrases: [], + include, + exclude, + }); + } + } + }); + + newData.types = newData.types + .map((filter) => { + return { + ...filter, + phrases: filter.phrases?.sort((a, b) => a.localeCompare(b)), + }; + }) + .sort((a, b) => a.name.localeCompare(b.name)); + + newData.animals = newData.animals + .map((filter) => { + return { + ...filter, + phrases: filter.phrases?.sort((a, b) => a.localeCompare(b)), + }; + }) + .sort((a, b) => a.name.localeCompare(b.name)); + + newData.items = newData.items + .map((filter) => { + return { + ...filter, + phrases: filter.phrases?.sort((a, b) => a.localeCompare(b)), + }; + }) + .sort((a, b) => a.name.localeCompare(b.name)); + copyText(JSON.stringify(newData, null, 2)); + }; + + return ( +
+

+ + Filters seeds +

+ + Copy seed + + +
+ ); +}; + +export default memo(FilterSeeds); diff --git a/src/topic/Heraldry/components/Panes/DevelopmentPane/ListOfFilters/FilterSelect.tsx b/src/topic/Heraldry/components/Panes/DevelopmentPane/ListOfFilters/FilterSelect.tsx new file mode 100644 index 000000000..c16ce58a9 --- /dev/null +++ b/src/topic/Heraldry/components/Panes/DevelopmentPane/ListOfFilters/FilterSelect.tsx @@ -0,0 +1,97 @@ +import { memo, useCallback } from "react"; +import { useTranslation } from "react-i18next"; + +import useQueryFiltersSeeds from "@/topic/Heraldry/features/modify/hooks/useQueryFiltersSeeds"; + +type Props = { + country: string; + setSelected: ( + selected: + | { + type: "type" | "animal" | "item"; + name: string; + } + | undefined + ) => void; +}; + +const FilterSelect = ({ country, setSelected }: Props) => { + const { t } = useTranslation(); + const { isLoading, data } = useQueryFiltersSeeds({ country }); + + const handleChange = useCallback( + (event: React.ChangeEvent) => { + if (!data) { + setSelected(undefined); + + return; + } + + const value = event.target.value || ""; + const [type, name] = value.split("-"); + + if (["type", "animal", "item"].includes(type)) { + setSelected({ + type: type as "type" | "animal" | "item", + name, + }); + + return; + } + + setSelected(undefined); + }, + [data] + ); + + return ( + + ); +}; + +export default memo(FilterSelect); diff --git a/src/topic/Heraldry/components/Panes/DevelopmentPane/ListOfFilters/ShortcutsSelect.tsx b/src/topic/Heraldry/components/Panes/DevelopmentPane/ListOfFilters/ShortcutsSelect.tsx new file mode 100644 index 000000000..4db86c8c9 --- /dev/null +++ b/src/topic/Heraldry/components/Panes/DevelopmentPane/ListOfFilters/ShortcutsSelect.tsx @@ -0,0 +1,55 @@ +import { memo } from "react"; +import { useTranslation } from "react-i18next"; + +import IconEraser from "@/components/Icons/IconEraser"; +import IconAnimal from "@/components/Icons/IconAnimal"; +import IconCrown from "@/components/Icons/IconCrown"; + +import ButtonText from "@/components/UI/ButtonText"; +import { + useFilterModificationStore, + selectShortcuts, + resetModifications, +} from "@/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore"; + +import { SelectState } from "../DevelopmentPaneSidebarListOfFilters"; + +type Props = { + selected: SelectState, + setSelected: (selected: SelectState) => void; +}; + +const ShortcutsSelect = ({ selected, setSelected }: Props) => { + const { t } = useTranslation(); + const shortcuts = useFilterModificationStore((state) => + selectShortcuts(state, 100) + ); + + if (shortcuts.length === 0) { + return null; + } + + return ( +
+ + + {t("heraldry.list.clear")} + + {shortcuts.map(({ name, type, total }) => ( + setSelected({ name, type })} + isActive={selected?.name === name && selected?.type === type} + > + {type === "animal" ? : } + + {t(`heraldry.${type}.${name}`)} ({total}) + + + ))} +
+ ); +}; + +export default memo(ShortcutsSelect); diff --git a/src/topic/Heraldry/components/Panes/FiltersPane/FiltersPaneSubPanelSettings.tsx b/src/topic/Heraldry/components/Panes/FiltersPane/FiltersPaneSubPanelSettings.tsx index a59ba6ec3..afa3bc872 100644 --- a/src/topic/Heraldry/components/Panes/FiltersPane/FiltersPaneSubPanelSettings.tsx +++ b/src/topic/Heraldry/components/Panes/FiltersPane/FiltersPaneSubPanelSettings.tsx @@ -16,7 +16,7 @@ import ButtonIcon from '@/components/UI/ButtonIcon'; import useFiltersStore, { toggleFilterOperator, toggleShouldReverseFilters, toggleShouldHideMissingImages } from '@/topic/Heraldry/stores/filtersStore'; import { useFiltersDevelopmentStore, - toggleFilterDevlopmentMode, + toggleFilterDevelopmentMode, } from '@/topic/Heraldry/stores/filtersDevelopmentStore'; type Props = { @@ -69,7 +69,7 @@ const FiltersPaneSubPanelColors = ({ diff --git a/src/topic/Heraldry/features/modify/hooks/useQueryFiltersSeeds.ts b/src/topic/Heraldry/features/modify/hooks/useQueryFiltersSeeds.ts index 7ceedf7ab..1cfee2111 100644 --- a/src/topic/Heraldry/features/modify/hooks/useQueryFiltersSeeds.ts +++ b/src/topic/Heraldry/features/modify/hooks/useQueryFiltersSeeds.ts @@ -1,12 +1,14 @@ -import { useQuery } from '@tanstack/react-query'; -import { MarkerParams } from '@/topic/Heraldry/types'; +import { useQuery } from "@tanstack/react-query"; +import { MarkerParams } from "@/topic/Heraldry/types"; -type FetchParmas = { - country: string, -} +type FetchParams = { + country: string; +}; -const fetchData = async ({ country }: FetchParmas) => { - const response = await fetch(`/maps/data/heraldry/${country}/filters.json`).then((response) => response.json()); +const fetchData = async ({ country }: FetchParams) => { + const response = await fetch( + `/maps/data/heraldry/${country}/filters.json` + ).then((response) => response.json()); const types = (response.types || []) as MarkerParams[]; const animals = (response.animals || []) as MarkerParams[]; @@ -19,12 +21,12 @@ const fetchData = async ({ country }: FetchParmas) => { }; }; -export default function useQueryFiltersSeeds({ country }: FetchParmas) { +export default function useQueryFiltersSeeds({ country }: FetchParams) { const response = useQuery({ queryFn: () => fetchData({ country }), - queryKey: ['filter', country], + queryKey: ["filter", country], staleTime: 5 * 60 * 1000, }); return response; -}; +} diff --git a/src/topic/Heraldry/features/modifyMarkers/components/AddOrRemoveMarkers/AddMarkers/AddOrRemoveMarkersAddShortcuts.tsx b/src/topic/Heraldry/features/modifyMarkers/components/AddOrRemoveMarkers/AddMarkers/AddOrRemoveMarkersAddShortcuts.tsx index 43b83bd8a..5b39ecac0 100644 --- a/src/topic/Heraldry/features/modifyMarkers/components/AddOrRemoveMarkers/AddMarkers/AddOrRemoveMarkersAddShortcuts.tsx +++ b/src/topic/Heraldry/features/modifyMarkers/components/AddOrRemoveMarkers/AddMarkers/AddOrRemoveMarkersAddShortcuts.tsx @@ -5,7 +5,7 @@ import { CoatOfArmsMapData } from '@/topic/Heraldry/types'; import { useFilterModificationStore, includeUnitInMarker, - selectUnitIncludeModifictions, + selectUnitIncludeModifications, selectShortcuts, } from '@/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore'; import useGetUnitMarkersFromCache from '@/topic/Heraldry/features/modify/hooks/useGetUnitMarkersFromCache'; @@ -20,8 +20,8 @@ type Props = { } const AddOrRemoveMarkersSection = ({ unit }: Props) => { - const includeAnimal = useFilterModificationStore(selectUnitIncludeModifictions(unit, 'animal')); - const includeItem = useFilterModificationStore(selectUnitIncludeModifictions(unit, 'item')); + const includeAnimal = useFilterModificationStore(selectUnitIncludeModifications(unit, 'animal')); + const includeItem = useFilterModificationStore(selectUnitIncludeModifications(unit, 'item')); const { animals, items, diff --git a/src/topic/Heraldry/features/modifyMarkers/components/AddOrRemoveMarkers/RemoveMarkers/RemoveMarkers.tsx b/src/topic/Heraldry/features/modifyMarkers/components/AddOrRemoveMarkers/RemoveMarkers/RemoveMarkers.tsx index 56eaa2c00..7fe6b8873 100644 --- a/src/topic/Heraldry/features/modifyMarkers/components/AddOrRemoveMarkers/RemoveMarkers/RemoveMarkers.tsx +++ b/src/topic/Heraldry/features/modifyMarkers/components/AddOrRemoveMarkers/RemoveMarkers/RemoveMarkers.tsx @@ -12,7 +12,7 @@ import IconCrown from '@/components/Icons/IconCrown'; import ButtonText from '@/components/UI/ButtonText'; -import { useFilterModificationStore, excludeUnitFromMarker, selectUnitExcludeModifictions } from '@/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore'; +import { useFilterModificationStore, excludeUnitFromMarker, selectUnitExcludeModifications } from '@/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore'; import useGetUnitMarkersFromCache from '@/topic/Heraldry/features/modify/hooks/useGetUnitMarkersFromCache'; @@ -22,8 +22,8 @@ type Props = { } const RemoveMarkers = ({ unit }: Props) => { - const excludedAnimal = useFilterModificationStore(selectUnitExcludeModifictions(unit, 'animal')); - const excludeItem = useFilterModificationStore(selectUnitExcludeModifictions(unit, 'item')); + const excludedAnimal = useFilterModificationStore(selectUnitExcludeModifications(unit, 'animal')); + const excludeItem = useFilterModificationStore(selectUnitExcludeModifications(unit, 'item')); const { t } = useTranslation(); diff --git a/src/topic/Heraldry/features/modifyMarkers/components/AddOrRemoveMarkers/RemoveModifications/RemoveModifications.tsx b/src/topic/Heraldry/features/modifyMarkers/components/AddOrRemoveMarkers/RemoveModifications/RemoveModifications.tsx index aca9fe441..fbee50810 100644 --- a/src/topic/Heraldry/features/modifyMarkers/components/AddOrRemoveMarkers/RemoveModifications/RemoveModifications.tsx +++ b/src/topic/Heraldry/features/modifyMarkers/components/AddOrRemoveMarkers/RemoveModifications/RemoveModifications.tsx @@ -12,8 +12,8 @@ import ButtonText from '@/components/UI/ButtonText'; import { useFilterModificationStore, - selectUnitExcludeModifictions, - selectUnitIncludeModifictions, + selectUnitExcludeModifications, + selectUnitIncludeModifications, removeFromIncludeAndExcludeInMarker, } from '@/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore'; @@ -24,10 +24,10 @@ type Props = { const buttonClassName = 'hover:!bg-[#ff00004f]'; const RemoveModifications = ({ unit }: Props) => { - const includeAnimal = useFilterModificationStore(selectUnitIncludeModifictions(unit, 'animal')); - const includeItem = useFilterModificationStore(selectUnitIncludeModifictions(unit, 'item')); - const excludedAnimal = useFilterModificationStore(selectUnitExcludeModifictions(unit, 'animal')); - const excludeItem = useFilterModificationStore(selectUnitExcludeModifictions(unit, 'item')); + const includeAnimal = useFilterModificationStore(selectUnitIncludeModifications(unit, 'animal')); + const includeItem = useFilterModificationStore(selectUnitIncludeModifications(unit, 'item')); + const excludedAnimal = useFilterModificationStore(selectUnitExcludeModifications(unit, 'animal')); + const excludeItem = useFilterModificationStore(selectUnitExcludeModifications(unit, 'item')); const { t } = useTranslation(); diff --git a/src/topic/Heraldry/features/modifyMarkers/components/DevelopmentPaneSidebarListOfFilters/FilterModifications.tsx b/src/topic/Heraldry/features/modifyMarkers/components/DevelopmentPaneSidebarListOfFilters/FilterModifications.tsx index 24968d79b..8ad537ea8 100644 --- a/src/topic/Heraldry/features/modifyMarkers/components/DevelopmentPaneSidebarListOfFilters/FilterModifications.tsx +++ b/src/topic/Heraldry/features/modifyMarkers/components/DevelopmentPaneSidebarListOfFilters/FilterModifications.tsx @@ -1,26 +1,31 @@ -import { MarkerParams } from '@/topic/Heraldry/types'; +import { MarkerParams } from "@/topic/Heraldry/types"; +import { useFilterModificationStore } from "@/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore"; -import { useFilterModificationStore } from '@/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore'; +import DevelopmentPaneSnippet from "@/topic/Heraldry/components/Panes/DevelopmentPane/DevelopmentPaneSnippet"; -import DevelopmentPaneSnippet from '@/topic/Heraldry/components/Panes/DevelopmentPane/DevelopmentPaneSnippet'; - -import MergeMofificationButton from './MergeMofificationButton'; +import MergeModificationButton from "./MergeModificationButton"; type Props = { - className?: string, - snippetClassName?: string, - type: 'animal' | 'item', - name: string, - filter: MarkerParams, - setDraftFilter: (v: MarkerParams) => void, -} - -const FilterModifications = ({ className, snippetClassName, type, name, filter, setDraftFilter }: Props) => { - const { - include = [], - exclude = [], - } = useFilterModificationStore(state => state[type][name] || {}); + className?: string; + snippetClassName?: string; + type: "animal" | "item"; + name: string; + filter: MarkerParams; + setDraftFilter: (v: MarkerParams) => void; +}; + +const FilterModifications = ({ + className, + snippetClassName, + type, + name, + filter, + setDraftFilter, +}: Props) => { + const { include = [], exclude = [] } = useFilterModificationStore( + (state) => state[type][name] || {} + ); if (include.length === 0 && exclude.length === 0) { return null; @@ -30,7 +35,7 @@ const FilterModifications = ({ className, snippetClassName, type, name, filter,
Modifications
- void; +}; + +const MergeModificationButton = ({ + filter: initFilter, + include, + exclude, + setDraftFilter, +}: Props) => { + const { t } = useTranslation(); + + const handleClick = () => { + const mergedFilter = getMergedFilterData({ + initFilter, + include, + exclude, + }); + + setDraftFilter(mergedFilter); + }; + + const handleCopyFiler = () => { + const mergedFilter = getMergedFilterData({ + initFilter, + include, + exclude, + }); + + copyText(`${JSON.stringify(mergedFilter, null, 4)},`); + }; + + return ( + <> + + {t("main.copy")} + + + + Use + + + + ); +}; + +export default MergeModificationButton; diff --git a/src/topic/Heraldry/features/modifyMarkers/components/DevelopmentPaneSidebarListOfFilters/MergeMofificationButton.tsx b/src/topic/Heraldry/features/modifyMarkers/components/DevelopmentPaneSidebarListOfFilters/MergeMofificationButton.tsx deleted file mode 100644 index cd4f8a5e3..000000000 --- a/src/topic/Heraldry/features/modifyMarkers/components/DevelopmentPaneSidebarListOfFilters/MergeMofificationButton.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import { MarkerParams, ComplexManualMarker } from '@/topic/Heraldry/types'; -import { useTranslation } from 'react-i18next'; - -import { copyText } from '@/utils/text'; - -import IconCopy from '@/components/Icons/IconCopy'; -import IconSelectNew from '@/components/Icons/IconSelectNew'; - - -import ButtonText from '@/components/UI/ButtonText'; - -type Props = { - filter: MarkerParams, - include: ComplexManualMarker[], - exclude: ComplexManualMarker[], - setDraftFilter: (v: MarkerParams) => void, -} - -const MergeMofificationButton = ({ filter: initFliter, include, exclude, setDraftFilter }: Props) => { - const { t } = useTranslation(); - - const mergeData = () => { - const hashesIncluded = (initFliter.include || []).map((ruleToCheck) => typeof ruleToCheck === 'string' ? '' : ruleToCheck.imageHash).filter(Boolean) - const hashesExcluded = (initFliter.exclude || []).map((ruleToCheck) => typeof ruleToCheck === 'string' ? '' : ruleToCheck.imageHash).filter(Boolean) - - const hashesToRemove = [...include, ...exclude].map(({ imageHash }) => imageHash); - const titlesToRemove = [...include, ...exclude].map(({ note }) => note); - - const rulesToInclude = include.filter(({ imageHash }) => !hashesExcluded.includes(imageHash)); - const rulesToExclude = exclude.filter(({ imageHash }) => !hashesIncluded.includes(imageHash)); - - const includeWithRemoved = (initFliter.include || []).filter((ruleToCheck) => - typeof ruleToCheck === 'string' - ? !titlesToRemove.includes(ruleToCheck) - : !hashesToRemove.includes(ruleToCheck.imageHash) - ); - - const excludeWithRemoved = (initFliter.exclude || []).filter((ruleToCheck) => - typeof ruleToCheck === 'string' - ? !titlesToRemove.includes(ruleToCheck) - : !hashesToRemove.includes(ruleToCheck.imageHash) - ); - - return { - ...initFliter, - include: [...includeWithRemoved, ...rulesToInclude], - exclude: [...excludeWithRemoved, ...rulesToExclude], - } - } - - const handleClick = () => { - const mergedFilter = mergeData(); - - setDraftFilter(mergedFilter); - } - - const handleCopyFiler = () => { - const mergedFilter = mergeData(); - - copyText(`${JSON.stringify(mergedFilter, null, 4)},`) - } - - return ( - <> - - {t('main.copy')} - - - - Use - - - - ); -}; - -export default MergeMofificationButton; diff --git a/src/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore.ts b/src/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore.ts index acd930f6f..dde3de58a 100644 --- a/src/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore.ts +++ b/src/topic/Heraldry/features/modifyMarkers/stores/filtersModificationStore.ts @@ -1,124 +1,162 @@ -import { create } from 'zustand'; -import { devtools, persist } from 'zustand/middleware'; -import { CoatOfArmsMapData, ComplexManualMarker, MarkerType } from '@/topic/Heraldry/types'; +import { create } from "zustand"; +import { devtools, persist } from "zustand/middleware"; +import { + CoatOfArmsMapData, + ComplexManualMarker, + MarkerType, +} from "@/topic/Heraldry/types"; type FiltersModificationStoreState = { animal: { [name: string]: { - include?: ComplexManualMarker[], - exclude?: ComplexManualMarker[], - } - }, + include?: ComplexManualMarker[]; + exclude?: ComplexManualMarker[]; + }; + }; item: { [name: string]: { - include?: ComplexManualMarker[], - exclude?: ComplexManualMarker[], - } - }, -} + include?: ComplexManualMarker[]; + exclude?: ComplexManualMarker[]; + }; + }; +}; const emptyState: FiltersModificationStoreState = { animal: {}, item: {}, }; -export const useFilterModificationStore = create()( - devtools( - persist( - () => (emptyState as FiltersModificationStoreState), - { name: 'filtersModificationStore' }, +export const useFilterModificationStore = + create()( + devtools( + persist(() => emptyState as FiltersModificationStoreState, { + name: "filtersModificationStore", + }), + { name: "filtersModificationStore" } ) - ) -) - -export const resetModifications = () => useFilterModificationStore.setState(emptyState); - -const getListModifier = (action: 'reset' | 'include' | 'exclude') => (unit: CoatOfArmsMapData, markerType: MarkerType, item: string) => { - const imageHashToChange = unit.imageHash; - - if (!imageHashToChange) { - console.error('Unit without image hash'); - - return; - } - - const ruleToAdd: ComplexManualMarker = { imageHash: imageHashToChange, note: unit.title }; - - useFilterModificationStore.setState((state) => { - const filter = state[markerType][item]; + ); - let include = filter?.include || []; - let exclude = filter?.exclude || []; +export const resetModifications = () => + useFilterModificationStore.setState(emptyState); - // Removed from both to deal with duplicates - const includeWithRemoved = include.filter(({ imageHash }) => imageHash !== imageHashToChange); - const excludeWithRemoved = exclude.filter(({ imageHash }) => imageHash !== imageHashToChange); - - let newInclude = includeWithRemoved; - let newExclude = excludeWithRemoved; +const getListModifier = + (action: "reset" | "include" | "exclude") => + (unit: CoatOfArmsMapData, markerType: MarkerType, item: string) => { + const imageHashToChange = unit.imageHash; - if (action === 'include') { - newInclude = [...newInclude, ruleToAdd]; - } + if (!imageHashToChange) { + console.error("Unit without image hash"); - if (action === 'exclude') { - newExclude = [...newExclude, ruleToAdd]; + return; } - const newFilter = { - include: newInclude, - exclude: newExclude, - }; - - // Backup - const country = document.documentElement.getAttribute('country'); - localStorage.setItem(`${country}_maps_${markerType}_${item}`, JSON.stringify(newFilter)); - - return { - ...state, - [markerType]: { - ...state[markerType], - [item]: newFilter, - }, + const ruleToAdd: ComplexManualMarker = { + imageHash: imageHashToChange, + note: unit.title, }; - }); -}; -export const removeFromIncludeAndExcludeInMarker = getListModifier('reset'); + useFilterModificationStore.setState((state) => { + const filter = state[markerType][item]; + + let include = filter?.include || []; + let exclude = filter?.exclude || []; + + // Removed from both to deal with duplicates + const includeWithRemoved = include.filter( + ({ imageHash }) => imageHash !== imageHashToChange + ); + const excludeWithRemoved = exclude.filter( + ({ imageHash }) => imageHash !== imageHashToChange + ); + + let newInclude = includeWithRemoved; + let newExclude = excludeWithRemoved; + + if (action === "include") { + newInclude = [...newInclude, ruleToAdd]; + } + + if (action === "exclude") { + newExclude = [...newExclude, ruleToAdd]; + } + + const newFilter = { + include: newInclude, + exclude: newExclude, + }; + + // Backup + const country = document.documentElement.getAttribute("country"); + localStorage.setItem( + `${country}_maps_${markerType}_${item}`, + JSON.stringify(newFilter) + ); + + return { + ...state, + [markerType]: { + ...state[markerType], + [item]: newFilter, + }, + }; + }); + }; + +export const removeFromIncludeAndExcludeInMarker = getListModifier("reset"); + +export const excludeUnitFromMarker = getListModifier("exclude"); + +export const includeUnitInMarker = getListModifier("include"); + +const getListForUnit = + (action: "include" | "exclude") => + (unit: CoatOfArmsMapData, markerType: MarkerType) => + (state: FiltersModificationStoreState) => { + const imageHashToChange = unit.imageHash; + + if (!imageHashToChange) { + console.error("Unit without image hash"); + + return []; + } -export const excludeUnitFromMarker = getListModifier('exclude'); + const markerTypeList = state[markerType]; -export const includeUnitInMarker = getListModifier('include'); + const list = Object.entries(markerTypeList) + .filter(([_item, rules]) => + (rules[action] || []).some( + ({ imageHash }) => imageHash === imageHashToChange + ) + ) + .map(([item]) => item); -const getListForUnit = (action: 'include' | 'exclude') => (unit: CoatOfArmsMapData, markerType: MarkerType) => (state: FiltersModificationStoreState) => { - const imageHashToChange = unit.imageHash; + return list; + }; - if (!imageHashToChange) { - console.error('Unit without image hash'); +export const selectUnitExcludeModifications = getListForUnit("exclude"); - return []; - } +export const selectUnitIncludeModifications = getListForUnit("include"); - const markerTypeList = state[markerType]; +type Shortcut = { name: string; type: "animal" | "item"; total: number }; - const list = Object.entries(markerTypeList).filter( - ([_item, rules]) => (rules[action] || []).some(({ imageHash }) => imageHash === imageHashToChange) - ).map( - ([item]) => item +export const selectShortcuts = ( + state: FiltersModificationStoreState, + max: number = 15 +): Shortcut[] => { + const animal: Shortcut[] = Object.entries(state.animal).map( + ([name, { include = [] } = {}]) => ({ + name, + type: "animal", + total: include.length, + }) + ); + const item: Shortcut[] = Object.entries(state.item).map( + ([name, { include = [] } = {}]) => ({ + name, + type: "item", + total: include.length, + }) ); - - return list; -} - -export const selectUnitExcludeModifictions = getListForUnit('exclude'); - -export const selectUnitIncludeModifictions = getListForUnit('include'); - -type Shortcut = { name: string, type: 'animal' | 'item', total: number }; - -export const selectShortcuts = (state: FiltersModificationStoreState, max: number = 15): Shortcut[] => { - const animal: Shortcut[] = Object.entries(state.animal).map(([name, { include = [] } = {}]) => ({ name, type: 'animal', total: include.length })); - const item: Shortcut[] = Object.entries(state.item).map(([name, { include = [] } = {}]) => ({ name, type: 'item', total: include.length })); return [...animal, ...item].sort((a, b) => b.total - a.total).slice(0, max); }; diff --git a/src/topic/Heraldry/features/modifyMarkers/utils/get-merged-filter-data.ts b/src/topic/Heraldry/features/modifyMarkers/utils/get-merged-filter-data.ts new file mode 100644 index 000000000..9fdc4dbd9 --- /dev/null +++ b/src/topic/Heraldry/features/modifyMarkers/utils/get-merged-filter-data.ts @@ -0,0 +1,81 @@ +import { + ComplexManualMarker, + ManualMarker, + MarkerParams, +} from "@/topic/Heraldry/types"; + +type Params = { + initFilter: MarkerParams; + include: ComplexManualMarker[]; + exclude: ComplexManualMarker[]; +}; + +const sortRules = (a?: ManualMarker, b?: ManualMarker) => { + if (typeof a === "string" && typeof b === "string") { + return a.localeCompare(b); + } + + if ( + typeof (a as ComplexManualMarker)?.imageHash === "string" && + typeof (b as ComplexManualMarker)?.imageHash === "string" + ) { + return (a as ComplexManualMarker).imageHash.localeCompare( + (b as ComplexManualMarker).imageHash + ); + } + + return 0; +}; + +export const getMergedFilterData = ({ + initFilter, + include, + exclude, +}: Params): MarkerParams => { + const hashesIncluded = (initFilter.include || []) + .map((ruleToCheck) => + typeof ruleToCheck === "string" ? "" : ruleToCheck.imageHash + ) + .filter(Boolean); + const hashesExcluded = (initFilter.exclude || []) + .map((ruleToCheck) => + typeof ruleToCheck === "string" ? "" : ruleToCheck.imageHash + ) + .filter(Boolean); + + const hashesToRemove = [...include, ...exclude].map( + ({ imageHash }) => imageHash + ); + const titlesToRemove = [...include, ...exclude].map(({ note }) => note); + + const rulesToInclude = include.filter( + ({ imageHash }) => !hashesExcluded.includes(imageHash) + ); + const rulesToExclude = exclude.filter( + ({ imageHash }) => !hashesIncluded.includes(imageHash) + ); + + const includeWithRemoved = (initFilter.include || []).filter((ruleToCheck) => + typeof ruleToCheck === "string" + ? !titlesToRemove.includes(ruleToCheck) + : !hashesToRemove.includes(ruleToCheck.imageHash) + ); + + const excludeWithRemoved = (initFilter.exclude || []).filter((ruleToCheck) => + typeof ruleToCheck === "string" + ? !titlesToRemove.includes(ruleToCheck) + : !hashesToRemove.includes(ruleToCheck.imageHash) + ); + + console.log({ + rulesToInclude, + rulesToExclude, + }) + + return { + ...initFilter, + phrases: initFilter.phrases?.sort((a, b) => a.localeCompare(b)), + include: [...includeWithRemoved, ...rulesToInclude].sort(sortRules), + exclude: [...excludeWithRemoved, ...rulesToExclude].sort(sortRules), + }; +}; diff --git a/src/topic/Heraldry/features/tracking/stores/trackingStore.ts b/src/topic/Heraldry/features/tracking/stores/trackingStore.ts index bc42dc6be..75dfcd8ed 100644 --- a/src/topic/Heraldry/features/tracking/stores/trackingStore.ts +++ b/src/topic/Heraldry/features/tracking/stores/trackingStore.ts @@ -32,7 +32,7 @@ export const useTrackingStore = create()( wasPopupClosed: initial.wasPopupClosed || emptyState.wasPopupClosed, didAgreeToGA: initial.didAgreeToGA || emptyState.didAgreeToGA, } as TrackingStoreState), - { name: 'trackinStore' }, + { name: 'trackingStore' }, ) ) diff --git a/src/topic/Heraldry/stores/cursorStore.ts b/src/topic/Heraldry/stores/cursorStore.ts index 1104e47a6..ca2350cd6 100644 --- a/src/topic/Heraldry/stores/cursorStore.ts +++ b/src/topic/Heraldry/stores/cursorStore.ts @@ -21,7 +21,7 @@ export const useCursorStore = create()( idToShow: '', lastClick: undefined, } as FiltersDevelopmentStoreState), - { name: 'filterDevelopmentStore' }, + { name: 'cursorStore' }, ) ) ) diff --git a/src/topic/Heraldry/stores/filtersDevelopmentStore.ts b/src/topic/Heraldry/stores/filtersDevelopmentStore.ts index d4ba4612a..8e443b8e1 100644 --- a/src/topic/Heraldry/stores/filtersDevelopmentStore.ts +++ b/src/topic/Heraldry/stores/filtersDevelopmentStore.ts @@ -34,7 +34,7 @@ export const useFiltersDevelopmentStore = create() ) ) -export const toggleFilterDevlopmentMode = () => { +export const toggleFilterDevelopmentMode = () => { useFiltersDevelopmentStore.setState((state) => ({ ...state, isModeActive: !state.isModeActive, diff --git a/src/topic/Heraldry/stores/unitsPaneStore.ts b/src/topic/Heraldry/stores/unitsPaneStore.ts index 6b124ca9e..f851c9f00 100644 --- a/src/topic/Heraldry/stores/unitsPaneStore.ts +++ b/src/topic/Heraldry/stores/unitsPaneStore.ts @@ -1,23 +1,23 @@ -import { create } from 'zustand'; -import { devtools } from 'zustand/middleware' - -import { CoatOfArmsMapData } from '@/topic/Heraldry/types'; +import { create } from "zustand"; +import { devtools } from "zustand/middleware"; +import { CoatOfArmsMapData } from "@/topic/Heraldry/types"; type UnitPaneStoreState = { - searchPhrase: string, - selected: CoatOfArmsMapData[], - details?: CoatOfArmsMapData, -} + searchPhrase: string; + selected: CoatOfArmsMapData[]; + details?: CoatOfArmsMapData; +}; export const useUnitsPaneStore = create()( devtools( - () => ({ - searchPhrase: '', - selected: [], - details: undefined, - } as UnitPaneStoreState), - { name: 'filterDevelopmentStore' }, + () => + ({ + searchPhrase: "", + selected: [], + details: undefined, + } as UnitPaneStoreState), + { name: "unitsPaneStore" } ) ); @@ -42,16 +42,18 @@ export const toggleSelected = (unit: CoatOfArmsMapData) => { return { ...state, - selected: isSelected ? state.selected.filter(({ id }) => id !== unit.id) : [...state.selected, unit], - } + selected: isSelected + ? state.selected.filter(({ id }) => id !== unit.id) + : [...state.selected, unit], + }; }); }; export const setSelected = (units: CoatOfArmsMapData[]) => { useUnitsPaneStore.setState((state) => ({ - ...state, - selected: units, + ...state, + selected: units, })); -} +}; -export default useUnitsPaneStore; \ No newline at end of file +export default useUnitsPaneStore; diff --git a/src/topic/Heraldry/utils/markers/getMarkers.ts b/src/topic/Heraldry/utils/markers/getMarkers.ts index b4dc9613d..42f88176f 100644 --- a/src/topic/Heraldry/utils/markers/getMarkers.ts +++ b/src/topic/Heraldry/utils/markers/getMarkers.ts @@ -154,8 +154,8 @@ export const getMarkers = ({ } return { - types, - animals, - items, + types: types.sort((a, b) => a.localeCompare(b)), + animals: animals.sort((a, b) => a.localeCompare(b)), + items: items.sort((a, b) => a.localeCompare(b)), }; }; diff --git a/yarn.lock b/yarn.lock index 1a4e0b2a7..8178e974e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1403,9 +1403,9 @@ camelcase@^4.1.0: integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== caniuse-lite@^1.0.30001646: - version "1.0.30001651" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz#52de59529e8b02b1aedcaaf5c05d9e23c0c28138" - integrity sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg== + version "1.0.30001754" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz" + integrity sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg== chalk@^2.4.2: version "2.4.2"