/*
 * SPDX-License-Identifier: Apache-2.0
 *
 * Copyright 2015-2023 Andres Almiray
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.kordamp.ikonli.materialdesign2;

import org.kordamp.ikonli.Ikon;

/**
 * @author Andres Almiray
 */
public enum MaterialDesignN implements Ikon {
    NAIL("mdi2n-nail", "F0DDF"),
    NAS("mdi2n-nas", "F08F3"),
    NATIVESCRIPT("mdi2n-nativescript", "F0880"),
    NATURE("mdi2n-nature", "F038E"),
    NATURE_PEOPLE("mdi2n-nature-people", "F038F"),
    NAVIGATION("mdi2n-navigation", "F0390"),
    NAVIGATION_OUTLINE("mdi2n-navigation-outline", "F1607"),
    NEAR_ME("mdi2n-near-me", "F05CD"),
    NECKLACE("mdi2n-necklace", "F0F0B"),
    NEEDLE("mdi2n-needle", "F0391"),
    NETFLIX("mdi2n-netflix", "F0746"),
    NETWORK("mdi2n-network", "F06F3"),
    NETWORK_OFF("mdi2n-network-off", "F0C9B"),
    NETWORK_OFF_OUTLINE("mdi2n-network-off-outline", "F0C9C"),
    NETWORK_OUTLINE("mdi2n-network-outline", "F0C9D"),
    NETWORK_STRENGTH_1("mdi2n-network-strength-1", "F08F4"),
    NETWORK_STRENGTH_1_ALERT("mdi2n-network-strength-1-alert", "F08F5"),
    NETWORK_STRENGTH_2("mdi2n-network-strength-2", "F08F6"),
    NETWORK_STRENGTH_2_ALERT("mdi2n-network-strength-2-alert", "F08F7"),
    NETWORK_STRENGTH_3("mdi2n-network-strength-3", "F08F8"),
    NETWORK_STRENGTH_3_ALERT("mdi2n-network-strength-3-alert", "F08F9"),
    NETWORK_STRENGTH_4("mdi2n-network-strength-4", "F08FA"),
    NETWORK_STRENGTH_4_ALERT("mdi2n-network-strength-4-alert", "F08FB"),
    NETWORK_STRENGTH_OFF("mdi2n-network-strength-off", "F08FC"),
    NETWORK_STRENGTH_OFF_OUTLINE("mdi2n-network-strength-off-outline", "F08FD"),
    NETWORK_STRENGTH_OUTLINE("mdi2n-network-strength-outline", "F08FE"),
    NEW_BOX("mdi2n-new-box", "F0394"),
    NEWSPAPER("mdi2n-newspaper", "F0395"),
    NEWSPAPER_MINUS("mdi2n-newspaper-minus", "F0F0C"),
    NEWSPAPER_PLUS("mdi2n-newspaper-plus", "F0F0D"),
    NEWSPAPER_VARIANT("mdi2n-newspaper-variant", "F1001"),
    NEWSPAPER_VARIANT_MULTIPLE("mdi2n-newspaper-variant-multiple", "F1002"),
    NEWSPAPER_VARIANT_MULTIPLE_OUTLINE("mdi2n-newspaper-variant-multiple-outline", "F1003"),
    NEWSPAPER_VARIANT_OUTLINE("mdi2n-newspaper-variant-outline", "F1004"),
    NFC("mdi2n-nfc", "F0396"),
    NFC_SEARCH_VARIANT("mdi2n-nfc-search-variant", "F0E53"),
    NFC_TAP("mdi2n-nfc-tap", "F0397"),
    NFC_VARIANT("mdi2n-nfc-variant", "F0398"),
    NFC_VARIANT_OFF("mdi2n-nfc-variant-off", "F0E54"),
    NINJA("mdi2n-ninja", "F0774"),
    NINTENDO_GAME_BOY("mdi2n-nintendo-game-boy", "F1393"),
    NINTENDO_SWITCH("mdi2n-nintendo-switch", "F07E1"),
    NINTENDO_WII("mdi2n-nintendo-wii", "F05AB"),
    NINTENDO_WIIU("mdi2n-nintendo-wiiu", "F072D"),
    NIX("mdi2n-nix", "F1105"),
    NODEJS("mdi2n-nodejs", "F0399"),
    NOODLES("mdi2n-noodles", "F117E"),
    NOT_EQUAL("mdi2n-not-equal", "F098D"),
    NOT_EQUAL_VARIANT("mdi2n-not-equal-variant", "F098E"),
    NOTE("mdi2n-note", "F039A"),
    NOTE_MINUS("mdi2n-note-minus", "F164F"),
    NOTE_MINUS_OUTLINE("mdi2n-note-minus-outline", "F1650"),
    NOTE_MULTIPLE("mdi2n-note-multiple", "F06B8"),
    NOTE_MULTIPLE_OUTLINE("mdi2n-note-multiple-outline", "F06B9"),
    NOTE_OUTLINE("mdi2n-note-outline", "F039B"),
    NOTE_PLUS("mdi2n-note-plus", "F039C"),
    NOTE_PLUS_OUTLINE("mdi2n-note-plus-outline", "F039D"),
    NOTE_REMOVE("mdi2n-note-remove", "F1651"),
    NOTE_REMOVE_OUTLINE("mdi2n-note-remove-outline", "F1652"),
    NOTE_SEARCH("mdi2n-note-search", "F1653"),
    NOTE_SEARCH_OUTLINE("mdi2n-note-search-outline", "F1654"),
    NOTE_TEXT("mdi2n-note-text", "F039E"),
    NOTE_TEXT_OUTLINE("mdi2n-note-text-outline", "F11D7"),
    NOTEBOOK("mdi2n-notebook", "F082E"),
    NOTEBOOK_CHECK("mdi2n-notebook-check", "F14F5"),
    NOTEBOOK_CHECK_OUTLINE("mdi2n-notebook-check-outline", "F14F6"),
    NOTEBOOK_EDIT("mdi2n-notebook-edit", "F14E7"),
    NOTEBOOK_EDIT_OUTLINE("mdi2n-notebook-edit-outline", "F14E9"),
    NOTEBOOK_MINUS("mdi2n-notebook-minus", "F1610"),
    NOTEBOOK_MINUS_OUTLINE("mdi2n-notebook-minus-outline", "F1611"),
    NOTEBOOK_MULTIPLE("mdi2n-notebook-multiple", "F0E55"),
    NOTEBOOK_OUTLINE("mdi2n-notebook-outline", "F0EBF"),
    NOTEBOOK_PLUS("mdi2n-notebook-plus", "F1612"),
    NOTEBOOK_PLUS_OUTLINE("mdi2n-notebook-plus-outline", "F1613"),
    NOTEBOOK_REMOVE("mdi2n-notebook-remove", "F1614"),
    NOTEBOOK_REMOVE_OUTLINE("mdi2n-notebook-remove-outline", "F1615"),
    NOTIFICATION_CLEAR_ALL("mdi2n-notification-clear-all", "F039F"),
    NPM("mdi2n-npm", "F06F7"),
    NUKE("mdi2n-nuke", "F06A4"),
    NULL("mdi2n-null", "F07E2"),
    NUMERIC("mdi2n-numeric", "F03A0"),
    NUMERIC_0("mdi2n-numeric-0", "F0B39"),
    NUMERIC_0_BOX("mdi2n-numeric-0-box", "F03A1"),
    NUMERIC_0_BOX_MULTIPLE("mdi2n-numeric-0-box-multiple", "F0F0E"),
    NUMERIC_0_BOX_MULTIPLE_OUTLINE("mdi2n-numeric-0-box-multiple-outline", "F03A2"),
    NUMERIC_0_BOX_OUTLINE("mdi2n-numeric-0-box-outline", "F03A3"),
    NUMERIC_0_CIRCLE("mdi2n-numeric-0-circle", "F0C9E"),
    NUMERIC_0_CIRCLE_OUTLINE("mdi2n-numeric-0-circle-outline", "F0C9F"),
    NUMERIC_1("mdi2n-numeric-1", "F0B3A"),
    NUMERIC_1_BOX("mdi2n-numeric-1-box", "F03A4"),
    NUMERIC_1_BOX_MULTIPLE("mdi2n-numeric-1-box-multiple", "F0F0F"),
    NUMERIC_1_BOX_MULTIPLE_OUTLINE("mdi2n-numeric-1-box-multiple-outline", "F03A5"),
    NUMERIC_1_BOX_OUTLINE("mdi2n-numeric-1-box-outline", "F03A6"),
    NUMERIC_1_CIRCLE("mdi2n-numeric-1-circle", "F0CA0"),
    NUMERIC_1_CIRCLE_OUTLINE("mdi2n-numeric-1-circle-outline", "F0CA1"),
    NUMERIC_10("mdi2n-numeric-10", "F0FE9"),
    NUMERIC_10_BOX("mdi2n-numeric-10-box", "F0F7D"),
    NUMERIC_10_BOX_MULTIPLE("mdi2n-numeric-10-box-multiple", "F0FEA"),
    NUMERIC_10_BOX_MULTIPLE_OUTLINE("mdi2n-numeric-10-box-multiple-outline", "F0FEB"),
    NUMERIC_10_BOX_OUTLINE("mdi2n-numeric-10-box-outline", "F0F7E"),
    NUMERIC_10_CIRCLE("mdi2n-numeric-10-circle", "F0FEC"),
    NUMERIC_10_CIRCLE_OUTLINE("mdi2n-numeric-10-circle-outline", "F0FED"),
    NUMERIC_2("mdi2n-numeric-2", "F0B3B"),
    NUMERIC_2_BOX("mdi2n-numeric-2-box", "F03A7"),
    NUMERIC_2_BOX_MULTIPLE("mdi2n-numeric-2-box-multiple", "F0F10"),
    NUMERIC_2_BOX_MULTIPLE_OUTLINE("mdi2n-numeric-2-box-multiple-outline", "F03A8"),
    NUMERIC_2_BOX_OUTLINE("mdi2n-numeric-2-box-outline", "F03A9"),
    NUMERIC_2_CIRCLE("mdi2n-numeric-2-circle", "F0CA2"),
    NUMERIC_2_CIRCLE_OUTLINE("mdi2n-numeric-2-circle-outline", "F0CA3"),
    NUMERIC_3("mdi2n-numeric-3", "F0B3C"),
    NUMERIC_3_BOX("mdi2n-numeric-3-box", "F03AA"),
    NUMERIC_3_BOX_MULTIPLE("mdi2n-numeric-3-box-multiple", "F0F11"),
    NUMERIC_3_BOX_MULTIPLE_OUTLINE("mdi2n-numeric-3-box-multiple-outline", "F03AB"),
    NUMERIC_3_BOX_OUTLINE("mdi2n-numeric-3-box-outline", "F03AC"),
    NUMERIC_3_CIRCLE("mdi2n-numeric-3-circle", "F0CA4"),
    NUMERIC_3_CIRCLE_OUTLINE("mdi2n-numeric-3-circle-outline", "F0CA5"),
    NUMERIC_4("mdi2n-numeric-4", "F0B3D"),
    NUMERIC_4_BOX("mdi2n-numeric-4-box", "F03AD"),
    NUMERIC_4_BOX_MULTIPLE("mdi2n-numeric-4-box-multiple", "F0F12"),
    NUMERIC_4_BOX_MULTIPLE_OUTLINE("mdi2n-numeric-4-box-multiple-outline", "F03B2"),
    NUMERIC_4_BOX_OUTLINE("mdi2n-numeric-4-box-outline", "F03AE"),
    NUMERIC_4_CIRCLE("mdi2n-numeric-4-circle", "F0CA6"),
    NUMERIC_4_CIRCLE_OUTLINE("mdi2n-numeric-4-circle-outline", "F0CA7"),
    NUMERIC_5("mdi2n-numeric-5", "F0B3E"),
    NUMERIC_5_BOX("mdi2n-numeric-5-box", "F03B1"),
    NUMERIC_5_BOX_MULTIPLE("mdi2n-numeric-5-box-multiple", "F0F13"),
    NUMERIC_5_BOX_MULTIPLE_OUTLINE("mdi2n-numeric-5-box-multiple-outline", "F03AF"),
    NUMERIC_5_BOX_OUTLINE("mdi2n-numeric-5-box-outline", "F03B0"),
    NUMERIC_5_CIRCLE("mdi2n-numeric-5-circle", "F0CA8"),
    NUMERIC_5_CIRCLE_OUTLINE("mdi2n-numeric-5-circle-outline", "F0CA9"),
    NUMERIC_6("mdi2n-numeric-6", "F0B3F"),
    NUMERIC_6_BOX("mdi2n-numeric-6-box", "F03B3"),
    NUMERIC_6_BOX_MULTIPLE("mdi2n-numeric-6-box-multiple", "F0F14"),
    NUMERIC_6_BOX_MULTIPLE_OUTLINE("mdi2n-numeric-6-box-multiple-outline", "F03B4"),
    NUMERIC_6_BOX_OUTLINE("mdi2n-numeric-6-box-outline", "F03B5"),
    NUMERIC_6_CIRCLE("mdi2n-numeric-6-circle", "F0CAA"),
    NUMERIC_6_CIRCLE_OUTLINE("mdi2n-numeric-6-circle-outline", "F0CAB"),
    NUMERIC_7("mdi2n-numeric-7", "F0B40"),
    NUMERIC_7_BOX("mdi2n-numeric-7-box", "F03B6"),
    NUMERIC_7_BOX_MULTIPLE("mdi2n-numeric-7-box-multiple", "F0F15"),
    NUMERIC_7_BOX_MULTIPLE_OUTLINE("mdi2n-numeric-7-box-multiple-outline", "F03B7"),
    NUMERIC_7_BOX_OUTLINE("mdi2n-numeric-7-box-outline", "F03B8"),
    NUMERIC_7_CIRCLE("mdi2n-numeric-7-circle", "F0CAC"),
    NUMERIC_7_CIRCLE_OUTLINE("mdi2n-numeric-7-circle-outline", "F0CAD"),
    NUMERIC_8("mdi2n-numeric-8", "F0B41"),
    NUMERIC_8_BOX("mdi2n-numeric-8-box", "F03B9"),
    NUMERIC_8_BOX_MULTIPLE("mdi2n-numeric-8-box-multiple", "F0F16"),
    NUMERIC_8_BOX_MULTIPLE_OUTLINE("mdi2n-numeric-8-box-multiple-outline", "F03BA"),
    NUMERIC_8_BOX_OUTLINE("mdi2n-numeric-8-box-outline", "F03BB"),
    NUMERIC_8_CIRCLE("mdi2n-numeric-8-circle", "F0CAE"),
    NUMERIC_8_CIRCLE_OUTLINE("mdi2n-numeric-8-circle-outline", "F0CAF"),
    NUMERIC_9("mdi2n-numeric-9", "F0B42"),
    NUMERIC_9_BOX("mdi2n-numeric-9-box", "F03BC"),
    NUMERIC_9_BOX_MULTIPLE("mdi2n-numeric-9-box-multiple", "F0F17"),
    NUMERIC_9_BOX_MULTIPLE_OUTLINE("mdi2n-numeric-9-box-multiple-outline", "F03BD"),
    NUMERIC_9_BOX_OUTLINE("mdi2n-numeric-9-box-outline", "F03BE"),
    NUMERIC_9_CIRCLE("mdi2n-numeric-9-circle", "F0CB0"),
    NUMERIC_9_CIRCLE_OUTLINE("mdi2n-numeric-9-circle-outline", "F0CB1"),
    NUMERIC_9_PLUS("mdi2n-numeric-9-plus", "F0FEE"),
    NUMERIC_9_PLUS_BOX("mdi2n-numeric-9-plus-box", "F03BF"),
    NUMERIC_9_PLUS_BOX_MULTIPLE("mdi2n-numeric-9-plus-box-multiple", "F0F18"),
    NUMERIC_9_PLUS_BOX_MULTIPLE_OUTLINE("mdi2n-numeric-9-plus-box-multiple-outline", "F03C0"),
    NUMERIC_9_PLUS_BOX_OUTLINE("mdi2n-numeric-9-plus-box-outline", "F03C1"),
    NUMERIC_9_PLUS_CIRCLE("mdi2n-numeric-9-plus-circle", "F0CB2"),
    NUMERIC_9_PLUS_CIRCLE_OUTLINE("mdi2n-numeric-9-plus-circle-outline", "F0CB3"),
    NUMERIC_NEGATIVE_1("mdi2n-numeric-negative-1", "F1052"),
    NUMERIC_POSITIVE_1("mdi2n-numeric-positive-1", "F15CB"),
    NUT("mdi2n-nut", "F06F8"),
    NUTRITION("mdi2n-nutrition", "F03C2"),
    NUXT("mdi2n-nuxt", "F1106");

    public static MaterialDesignN findByDescription(String description) {
        for (MaterialDesignN font : values()) {
            if (font.getDescription().equals(description)) {
                return font;
            }
        }
        throw new IllegalArgumentException("Icon description '" + description + "' is invalid!");
    }

    private String description;
    private int code;

    MaterialDesignN(String description, String code) {
        this.description = description;
        this.code = Integer.parseInt(code, 16);
    }

    @Override
    public String getDescription() {
        return description;
    }

    @Override
    public int getCode() {
        return code;
    }
}
