<!--
  ~ Copyright (C) 2025 Xibo Signage Ltd
  ~
  ~ Xibo - Digital Signage - https://xibosignage.com
  ~
  ~ This file is part of Xibo.
  ~
  ~ Xibo is free software: you can redistribute it and/or modify
  ~ it under the terms of the GNU Affero General Public License as published by
  ~ the Free Software Foundation, either version 3 of the License, or
  ~ any later version.
  ~
  ~ Xibo is distributed in the hope that it will be useful,
  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  ~ GNU Affero General Public License for more details.
  ~
  ~ You should have received a copy of the GNU Affero General Public License
  ~ along with Xibo.  If not, see <http://www.gnu.org/licenses/>.
  -->
<module>
    <id>core-national-weather-service</id>
    <name>National Weather Service</name>
    <author>Core</author>
    <description>A module for displaying weather alert elements based on National Weather Service's Atom feed</description>
    <icon>fa fa-exclamation-circle</icon>
    <class></class>
    <dataCacheKey>%area%_%status%_%msgType%_%urgency%_%severity%_%certainty%_%displayId%</dataCacheKey>
    <type>national-weather-service</type>
    <dataType>emergency-alert</dataType>
    <schemaVersion>1</schemaVersion>
    <assignable>1</assignable>
    <regionSpecific>1</regionSpecific>
    <renderAs>html</renderAs>
    <defaultDuration>60</defaultDuration>
    <settings></settings>
    <properties>
        <property id="area" type="dropdown" mode="single">
            <title>Filter by Area</title>
            <helpText>Only show Emergency Alerts in this layout if the status matches the selected option.</helpText>
            <default></default>
            <options>
                <option name="">All</option>
                <option name="AL">Alabama</option>
                <option name="AK">Alaska</option>
                <option name="AZ">Arizona</option>
                <option name="AR">Arkansas</option>
                <option name="AS">American Samoa</option>
                <option name="CA">California</option>
                <option name="CO">Colorado</option>
                <option name="CT">Connecticut</option>
                <option name="DE">Delaware</option>
                <option name="DC">District of Columbia</option>
                <option name="FL">Florida</option>
                <option name="GA">Georgia</option>
                <option name="GU">Guam</option>
                <option name="HI">Hawaii</option>
                <option name="ID">Idaho</option>
                <option name="IL">Illinois</option>
                <option name="IN">Indiana</option>
                <option name="IA">Iowa</option>
                <option name="KS">Kansas</option>
                <option name="KY">Kentucky</option>
                <option name="LA">Louisiana</option>
                <option name="ME">Maine</option>
                <option name="MD">Maryland</option>
                <option name="MA">Massachusetts</option>
                <option name="MI">Michigan</option>
                <option name="MN">Minnesota</option>
                <option name="MS">Mississippi</option>
                <option name="MO">Missouri</option>
                <option name="MT">Montana</option>
                <option name="NE">Nebraska</option>
                <option name="NV">Nevada</option>
                <option name="NH">New Hampshire</option>
                <option name="NJ">New Jersey</option>
                <option name="NM">New Mexico</option>
                <option name="NY">New York</option>
                <option name="NC">North Carolina</option>
                <option name="ND">North Dakota</option>
                <option name="MP">Northern Mariana Islands</option>
                <option name="OH">Ohio</option>
                <option name="OK">Oklahoma</option>
                <option name="OR">Oregon</option>
                <option name="PA">Pennsylvania</option>
                <option name="PR">Puerto Rico</option>
                <option name="RI">Rhode Island</option>
                <option name="SC">South Carolina</option>
                <option name="SD">South Dakota</option>
                <option name="TN">Tennessee</option>
                <option name="TX">Texas</option>
                <option name="TT">Trust Territories</option>
                <option name="UT">Utah</option>
                <option name="VT">Vermont</option>
                <option name="VA">Virginia</option>
                <option name="VI">Virgin Islands</option>
                <option name="WA">Washington</option>
                <option name="WV">West Virginia</option>
                <option name="WI">Wisconsin</option>
                <option name="WY">Wyoming</option>
            </options>
        </property>
        <property id="status" type="dropdown" mode="single">
            <title>Filter by Status</title>
            <helpText>Only show Emergency Alerts in this layout if the status matches the selected option.</helpText>
            <default></default>
            <options>
                <option name="">Any</option>
                <option name="Actual">Actual</option>
                <option name="Exercise">Exercise</option>
                <option name="System">System</option>
                <option name="Test">Test</option>
                <option name="Draft">Draft</option>
            </options>
        </property>
        <property id="msgType" type="dropdown" mode="single">
            <title>Filter by Message Type</title>
            <helpText>Only show Emergency Alerts in this layout if the message type matches the selected option.</helpText>
            <default></default>
            <options>
                <option name="">Any</option>
                <option name="Alert">Alert</option>
                <option name="Update">Update</option>
                <option name="Cancel">Cancel</option>
                <option name="Ack">Ack</option>
                <option name="Error">Error</option>
            </options>
        </property>
        <property id="urgency" type="dropdown" mode="single">
            <title>Filter by Urgency</title>
            <helpText>Only show Emergency Alerts in this layout if the urgency matches the selected option.</helpText>
            <default></default>
            <options>
                <option name="">Any</option>
                <option name="Immediate">Immediate</option>
                <option name="Expected">Expected</option>
                <option name="Future">Future</option>
                <option name="Past">Past</option>
                <option name="Unknown">Unknown</option>
            </options>
        </property>
        <property id="severity" type="dropdown" mode="single">
            <title>Filter by Severity</title>
            <helpText>Only show Emergency Alerts in this layout if the severity matches the selected option.</helpText>
            <default></default>
            <options>
                <option name="">Any</option>
                <option name="Extreme">Extreme</option>
                <option name="Severe">Severe</option>
                <option name="Moderate">Moderate</option>
                <option name="Minor">Minor</option>
                <option name="Unknown">Unknown</option>
            </options>
        </property>
        <property id="certainty" type="dropdown" mode="single">
            <title>Filter by certainty</title>
            <helpText>Only show Emergency Alerts in this layout if the certainty matches the selected option.</helpText>
            <default></default>
            <options>
                <option name="">Any</option>
                <option name="Observed">Observed</option>
                <option name="Likely">Likely</option>
                <option name="Possible">Possible</option>
                <option name="Unlikely">Unlikely</option>
                <option name="Unknown">Unknown</option>
            </options>
        </property>
        <property id="updateInterval" type="number">
            <title>Update Interval (mins)</title>
            <helpText>Please enter the update interval in minutes. This should be kept as high as possible. For example, if the data will only change once per hour this could be set to 60.</helpText>
            <default>1</default>
            <rule>
                <test type="and">
                    <condition type="required"></condition>
                </test>
            </rule>
        </property>
    </properties>
    <preview></preview>
    <stencil>
        <twig></twig>
    </stencil>
    <onRender><![CDATA[
// Scale the element every time
$(target).xiboLayoutScaler(properties);
    ]]></onRender>
</module>
