/*
 * 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 MaterialDesignD implements Ikon {
    DANCE_BALLROOM("mdi2d-dance-ballroom", "F15FB"),
    DANCE_POLE("mdi2d-dance-pole", "F1578"),
    DATA_MATRIX("mdi2d-data-matrix", "F153C"),
    DATA_MATRIX_EDIT("mdi2d-data-matrix-edit", "F153D"),
    DATA_MATRIX_MINUS("mdi2d-data-matrix-minus", "F153E"),
    DATA_MATRIX_PLUS("mdi2d-data-matrix-plus", "F153F"),
    DATA_MATRIX_REMOVE("mdi2d-data-matrix-remove", "F1540"),
    DATA_MATRIX_SCAN("mdi2d-data-matrix-scan", "F1541"),
    DATABASE("mdi2d-database", "F01BC"),
    DATABASE_ALERT("mdi2d-database-alert", "F163A"),
    DATABASE_ALERT_OUTLINE("mdi2d-database-alert-outline", "F1624"),
    DATABASE_ARROW_DOWN("mdi2d-database-arrow-down", "F163B"),
    DATABASE_ARROW_DOWN_OUTLINE("mdi2d-database-arrow-down-outline", "F1625"),
    DATABASE_ARROW_LEFT("mdi2d-database-arrow-left", "F163C"),
    DATABASE_ARROW_LEFT_OUTLINE("mdi2d-database-arrow-left-outline", "F1626"),
    DATABASE_ARROW_RIGHT("mdi2d-database-arrow-right", "F163D"),
    DATABASE_ARROW_RIGHT_OUTLINE("mdi2d-database-arrow-right-outline", "F1627"),
    DATABASE_ARROW_UP("mdi2d-database-arrow-up", "F163E"),
    DATABASE_ARROW_UP_OUTLINE("mdi2d-database-arrow-up-outline", "F1628"),
    DATABASE_CHECK("mdi2d-database-check", "F0AA9"),
    DATABASE_CHECK_OUTLINE("mdi2d-database-check-outline", "F1629"),
    DATABASE_CLOCK("mdi2d-database-clock", "F163F"),
    DATABASE_CLOCK_OUTLINE("mdi2d-database-clock-outline", "F162A"),
    DATABASE_COG("mdi2d-database-cog", "F164B"),
    DATABASE_COG_OUTLINE("mdi2d-database-cog-outline", "F164C"),
    DATABASE_EDIT("mdi2d-database-edit", "F0B86"),
    DATABASE_EDIT_OUTLINE("mdi2d-database-edit-outline", "F162B"),
    DATABASE_EXPORT("mdi2d-database-export", "F095E"),
    DATABASE_EXPORT_OUTLINE("mdi2d-database-export-outline", "F162C"),
    DATABASE_IMPORT("mdi2d-database-import", "F095D"),
    DATABASE_IMPORT_OUTLINE("mdi2d-database-import-outline", "F162D"),
    DATABASE_LOCK("mdi2d-database-lock", "F0AAA"),
    DATABASE_LOCK_OUTLINE("mdi2d-database-lock-outline", "F162E"),
    DATABASE_MARKER("mdi2d-database-marker", "F12F6"),
    DATABASE_MARKER_OUTLINE("mdi2d-database-marker-outline", "F162F"),
    DATABASE_MINUS("mdi2d-database-minus", "F01BB"),
    DATABASE_MINUS_OUTLINE("mdi2d-database-minus-outline", "F1630"),
    DATABASE_OFF("mdi2d-database-off", "F1640"),
    DATABASE_OFF_OUTLINE("mdi2d-database-off-outline", "F1631"),
    DATABASE_OUTLINE("mdi2d-database-outline", "F1632"),
    DATABASE_PLUS("mdi2d-database-plus", "F01BA"),
    DATABASE_PLUS_OUTLINE("mdi2d-database-plus-outline", "F1633"),
    DATABASE_REFRESH("mdi2d-database-refresh", "F05C2"),
    DATABASE_REFRESH_OUTLINE("mdi2d-database-refresh-outline", "F1634"),
    DATABASE_REMOVE("mdi2d-database-remove", "F0D00"),
    DATABASE_REMOVE_OUTLINE("mdi2d-database-remove-outline", "F1635"),
    DATABASE_SEARCH("mdi2d-database-search", "F0866"),
    DATABASE_SEARCH_OUTLINE("mdi2d-database-search-outline", "F1636"),
    DATABASE_SETTINGS("mdi2d-database-settings", "F0D01"),
    DATABASE_SETTINGS_OUTLINE("mdi2d-database-settings-outline", "F1637"),
    DATABASE_SYNC("mdi2d-database-sync", "F0CFF"),
    DATABASE_SYNC_OUTLINE("mdi2d-database-sync-outline", "F1638"),
    DEATH_STAR("mdi2d-death-star", "F08D8"),
    DEATH_STAR_VARIANT("mdi2d-death-star-variant", "F08D9"),
    DEATHLY_HALLOWS("mdi2d-deathly-hallows", "F0B87"),
    DEBIAN("mdi2d-debian", "F08DA"),
    DEBUG_STEP_INTO("mdi2d-debug-step-into", "F01B9"),
    DEBUG_STEP_OUT("mdi2d-debug-step-out", "F01B8"),
    DEBUG_STEP_OVER("mdi2d-debug-step-over", "F01B7"),
    DECAGRAM("mdi2d-decagram", "F076C"),
    DECAGRAM_OUTLINE("mdi2d-decagram-outline", "F076D"),
    DECIMAL("mdi2d-decimal", "F10A1"),
    DECIMAL_COMMA("mdi2d-decimal-comma", "F10A2"),
    DECIMAL_COMMA_DECREASE("mdi2d-decimal-comma-decrease", "F10A3"),
    DECIMAL_COMMA_INCREASE("mdi2d-decimal-comma-increase", "F10A4"),
    DECIMAL_DECREASE("mdi2d-decimal-decrease", "F01B6"),
    DECIMAL_INCREASE("mdi2d-decimal-increase", "F01B5"),
    DELETE("mdi2d-delete", "F01B4"),
    DELETE_ALERT("mdi2d-delete-alert", "F10A5"),
    DELETE_ALERT_OUTLINE("mdi2d-delete-alert-outline", "F10A6"),
    DELETE_CIRCLE("mdi2d-delete-circle", "F0683"),
    DELETE_CIRCLE_OUTLINE("mdi2d-delete-circle-outline", "F0B88"),
    DELETE_CLOCK("mdi2d-delete-clock", "F1556"),
    DELETE_CLOCK_OUTLINE("mdi2d-delete-clock-outline", "F1557"),
    DELETE_EMPTY("mdi2d-delete-empty", "F06CC"),
    DELETE_EMPTY_OUTLINE("mdi2d-delete-empty-outline", "F0E9D"),
    DELETE_FOREVER("mdi2d-delete-forever", "F05E8"),
    DELETE_FOREVER_OUTLINE("mdi2d-delete-forever-outline", "F0B89"),
    DELETE_OFF("mdi2d-delete-off", "F10A7"),
    DELETE_OFF_OUTLINE("mdi2d-delete-off-outline", "F10A8"),
    DELETE_OUTLINE("mdi2d-delete-outline", "F09E7"),
    DELETE_RESTORE("mdi2d-delete-restore", "F0819"),
    DELETE_SWEEP("mdi2d-delete-sweep", "F05E9"),
    DELETE_SWEEP_OUTLINE("mdi2d-delete-sweep-outline", "F0C62"),
    DELETE_VARIANT("mdi2d-delete-variant", "F01B3"),
    DELTA("mdi2d-delta", "F01C2"),
    DESK("mdi2d-desk", "F1239"),
    DESK_LAMP("mdi2d-desk-lamp", "F095F"),
    DESKPHONE("mdi2d-deskphone", "F01C3"),
    DESKTOP_CLASSIC("mdi2d-desktop-classic", "F07C0"),
    DESKTOP_MAC("mdi2d-desktop-mac", "F01C4"),
    DESKTOP_MAC_DASHBOARD("mdi2d-desktop-mac-dashboard", "F09E8"),
    DESKTOP_TOWER("mdi2d-desktop-tower", "F01C5"),
    DESKTOP_TOWER_MONITOR("mdi2d-desktop-tower-monitor", "F0AAB"),
    DETAILS("mdi2d-details", "F01C6"),
    DEV_TO("mdi2d-dev-to", "F0D6E"),
    DEVELOPER_BOARD("mdi2d-developer-board", "F0697"),
    DEVIANTART("mdi2d-deviantart", "F01C7"),
    DEVICES("mdi2d-devices", "F0FB0"),
    DIABETES("mdi2d-diabetes", "F1126"),
    DIALPAD("mdi2d-dialpad", "F061C"),
    DIAMETER("mdi2d-diameter", "F0C63"),
    DIAMETER_OUTLINE("mdi2d-diameter-outline", "F0C64"),
    DIAMETER_VARIANT("mdi2d-diameter-variant", "F0C65"),
    DIAMOND("mdi2d-diamond", "F0B8A"),
    DIAMOND_OUTLINE("mdi2d-diamond-outline", "F0B8B"),
    DIAMOND_STONE("mdi2d-diamond-stone", "F01C8"),
    DICE_1("mdi2d-dice-1", "F01CA"),
    DICE_1_OUTLINE("mdi2d-dice-1-outline", "F114A"),
    DICE_2("mdi2d-dice-2", "F01CB"),
    DICE_2_OUTLINE("mdi2d-dice-2-outline", "F114B"),
    DICE_3("mdi2d-dice-3", "F01CC"),
    DICE_3_OUTLINE("mdi2d-dice-3-outline", "F114C"),
    DICE_4("mdi2d-dice-4", "F01CD"),
    DICE_4_OUTLINE("mdi2d-dice-4-outline", "F114D"),
    DICE_5("mdi2d-dice-5", "F01CE"),
    DICE_5_OUTLINE("mdi2d-dice-5-outline", "F114E"),
    DICE_6("mdi2d-dice-6", "F01CF"),
    DICE_6_OUTLINE("mdi2d-dice-6-outline", "F114F"),
    DICE_D10("mdi2d-dice-d10", "F1153"),
    DICE_D10_OUTLINE("mdi2d-dice-d10-outline", "F076F"),
    DICE_D12("mdi2d-dice-d12", "F1154"),
    DICE_D12_OUTLINE("mdi2d-dice-d12-outline", "F0867"),
    DICE_D20("mdi2d-dice-d20", "F1155"),
    DICE_D20_OUTLINE("mdi2d-dice-d20-outline", "F05EA"),
    DICE_D4("mdi2d-dice-d4", "F1150"),
    DICE_D4_OUTLINE("mdi2d-dice-d4-outline", "F05EB"),
    DICE_D6("mdi2d-dice-d6", "F1151"),
    DICE_D6_OUTLINE("mdi2d-dice-d6-outline", "F05ED"),
    DICE_D8("mdi2d-dice-d8", "F1152"),
    DICE_D8_OUTLINE("mdi2d-dice-d8-outline", "F05EC"),
    DICE_MULTIPLE("mdi2d-dice-multiple", "F076E"),
    DICE_MULTIPLE_OUTLINE("mdi2d-dice-multiple-outline", "F1156"),
    DIGITAL_OCEAN("mdi2d-digital-ocean", "F1237"),
    DIP_SWITCH("mdi2d-dip-switch", "F07C1"),
    DIRECTIONS("mdi2d-directions", "F01D0"),
    DIRECTIONS_FORK("mdi2d-directions-fork", "F0641"),
    DISC("mdi2d-disc", "F05EE"),
    DISC_ALERT("mdi2d-disc-alert", "F01D1"),
    DISC_PLAYER("mdi2d-disc-player", "F0960"),
    DISCORD("mdi2d-discord", "F066F"),
    DISHWASHER("mdi2d-dishwasher", "F0AAC"),
    DISHWASHER_ALERT("mdi2d-dishwasher-alert", "F11B8"),
    DISHWASHER_OFF("mdi2d-dishwasher-off", "F11B9"),
    DISQUS("mdi2d-disqus", "F01D2"),
    DISTRIBUTE_HORIZONTAL_CENTER("mdi2d-distribute-horizontal-center", "F11C9"),
    DISTRIBUTE_HORIZONTAL_LEFT("mdi2d-distribute-horizontal-left", "F11C8"),
    DISTRIBUTE_HORIZONTAL_RIGHT("mdi2d-distribute-horizontal-right", "F11CA"),
    DISTRIBUTE_VERTICAL_BOTTOM("mdi2d-distribute-vertical-bottom", "F11CB"),
    DISTRIBUTE_VERTICAL_CENTER("mdi2d-distribute-vertical-center", "F11CC"),
    DISTRIBUTE_VERTICAL_TOP("mdi2d-distribute-vertical-top", "F11CD"),
    DIVING_FLIPPERS("mdi2d-diving-flippers", "F0DBF"),
    DIVING_HELMET("mdi2d-diving-helmet", "F0DC0"),
    DIVING_SCUBA("mdi2d-diving-scuba", "F0DC1"),
    DIVING_SCUBA_FLAG("mdi2d-diving-scuba-flag", "F0DC2"),
    DIVING_SCUBA_TANK("mdi2d-diving-scuba-tank", "F0DC3"),
    DIVING_SCUBA_TANK_MULTIPLE("mdi2d-diving-scuba-tank-multiple", "F0DC4"),
    DIVING_SNORKEL("mdi2d-diving-snorkel", "F0DC5"),
    DIVISION("mdi2d-division", "F01D4"),
    DIVISION_BOX("mdi2d-division-box", "F01D5"),
    DLNA("mdi2d-dlna", "F0A41"),
    DNA("mdi2d-dna", "F0684"),
    DNS("mdi2d-dns", "F01D6"),
    DNS_OUTLINE("mdi2d-dns-outline", "F0B8C"),
    DO_NOT_DISTURB("mdi2d-do-not-disturb", "F0698"),
    DO_NOT_DISTURB_OFF("mdi2d-do-not-disturb-off", "F0699"),
    DOCK_BOTTOM("mdi2d-dock-bottom", "F10A9"),
    DOCK_LEFT("mdi2d-dock-left", "F10AA"),
    DOCK_RIGHT("mdi2d-dock-right", "F10AB"),
    DOCK_TOP("mdi2d-dock-top", "F1513"),
    DOCK_WINDOW("mdi2d-dock-window", "F10AC"),
    DOCKER("mdi2d-docker", "F0868"),
    DOCTOR("mdi2d-doctor", "F0A42"),
    DOG("mdi2d-dog", "F0A43"),
    DOG_SERVICE("mdi2d-dog-service", "F0AAD"),
    DOG_SIDE("mdi2d-dog-side", "F0A44"),
    DOLBY("mdi2d-dolby", "F06B3"),
    DOLLY("mdi2d-dolly", "F0E9E"),
    DOMAIN("mdi2d-domain", "F01D7"),
    DOMAIN_OFF("mdi2d-domain-off", "F0D6F"),
    DOMAIN_PLUS("mdi2d-domain-plus", "F10AD"),
    DOMAIN_REMOVE("mdi2d-domain-remove", "F10AE"),
    DOME_LIGHT("mdi2d-dome-light", "F141E"),
    DOMINO_MASK("mdi2d-domino-mask", "F1023"),
    DONKEY("mdi2d-donkey", "F07C2"),
    DOOR("mdi2d-door", "F081A"),
    DOOR_CLOSED("mdi2d-door-closed", "F081B"),
    DOOR_CLOSED_LOCK("mdi2d-door-closed-lock", "F10AF"),
    DOOR_OPEN("mdi2d-door-open", "F081C"),
    DOORBELL("mdi2d-doorbell", "F12E6"),
    DOORBELL_VIDEO("mdi2d-doorbell-video", "F0869"),
    DOT_NET("mdi2d-dot-net", "F0AAE"),
    DOTS_GRID("mdi2d-dots-grid", "F15FC"),
    DOTS_HEXAGON("mdi2d-dots-hexagon", "F15FF"),
    DOTS_HORIZONTAL("mdi2d-dots-horizontal", "F01D8"),
    DOTS_HORIZONTAL_CIRCLE("mdi2d-dots-horizontal-circle", "F07C3"),
    DOTS_HORIZONTAL_CIRCLE_OUTLINE("mdi2d-dots-horizontal-circle-outline", "F0B8D"),
    DOTS_SQUARE("mdi2d-dots-square", "F15FD"),
    DOTS_TRIANGLE("mdi2d-dots-triangle", "F15FE"),
    DOTS_VERTICAL("mdi2d-dots-vertical", "F01D9"),
    DOTS_VERTICAL_CIRCLE("mdi2d-dots-vertical-circle", "F07C4"),
    DOTS_VERTICAL_CIRCLE_OUTLINE("mdi2d-dots-vertical-circle-outline", "F0B8E"),
    DOUBAN("mdi2d-douban", "F069A"),
    DOWNLOAD("mdi2d-download", "F01DA"),
    DOWNLOAD_BOX("mdi2d-download-box", "F1462"),
    DOWNLOAD_BOX_OUTLINE("mdi2d-download-box-outline", "F1463"),
    DOWNLOAD_CIRCLE("mdi2d-download-circle", "F1464"),
    DOWNLOAD_CIRCLE_OUTLINE("mdi2d-download-circle-outline", "F1465"),
    DOWNLOAD_LOCK("mdi2d-download-lock", "F1320"),
    DOWNLOAD_LOCK_OUTLINE("mdi2d-download-lock-outline", "F1321"),
    DOWNLOAD_MULTIPLE("mdi2d-download-multiple", "F09E9"),
    DOWNLOAD_NETWORK("mdi2d-download-network", "F06F4"),
    DOWNLOAD_NETWORK_OUTLINE("mdi2d-download-network-outline", "F0C66"),
    DOWNLOAD_OFF("mdi2d-download-off", "F10B0"),
    DOWNLOAD_OFF_OUTLINE("mdi2d-download-off-outline", "F10B1"),
    DOWNLOAD_OUTLINE("mdi2d-download-outline", "F0B8F"),
    DRAG("mdi2d-drag", "F01DB"),
    DRAG_HORIZONTAL("mdi2d-drag-horizontal", "F01DC"),
    DRAG_HORIZONTAL_VARIANT("mdi2d-drag-horizontal-variant", "F12F0"),
    DRAG_VARIANT("mdi2d-drag-variant", "F0B90"),
    DRAG_VERTICAL("mdi2d-drag-vertical", "F01DD"),
    DRAG_VERTICAL_VARIANT("mdi2d-drag-vertical-variant", "F12F1"),
    DRAMA_MASKS("mdi2d-drama-masks", "F0D02"),
    DRAW("mdi2d-draw", "F0F49"),
    DRAWING("mdi2d-drawing", "F01DE"),
    DRAWING_BOX("mdi2d-drawing-box", "F01DF"),
    DRESSER("mdi2d-dresser", "F0F4A"),
    DRESSER_OUTLINE("mdi2d-dresser-outline", "F0F4B"),
    DRONE("mdi2d-drone", "F01E2"),
    DROPBOX("mdi2d-dropbox", "F01E3"),
    DRUPAL("mdi2d-drupal", "F01E4"),
    DUCK("mdi2d-duck", "F01E5"),
    DUMBBELL("mdi2d-dumbbell", "F01E6"),
    DUMP_TRUCK("mdi2d-dump-truck", "F0C67");

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

    private String description;
    private int code;

    MaterialDesignD(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;
    }
}
