<widget xmlns="http://openajax.org/metadata" spec="1.0" id="http://microsoft.com/appmagic/dropdown" name="dropdown" jsClass="AppMagic.Controls.Dropdown.DropdownControl" version="2.3.1" styleable="true" runtimeCost="1" xmlns:appMagic="http://schemas.microsoft.com/appMagic"> <author name="Microsoft AppMagic" /> <license type="text/html"><![CDATA[<p>TODO: Need license text here.</p>]]></license> <description><![CDATA[DROPDOWN Control description here.]]></description> <requires> <require type="css" src="css/dropdown.css" /> <require type="javascript" src="js/dropdown.js" /> <require type="other" src="data/DropdownSample.xlsx" authoringOnly="true" /> <require type="other" src="images/dropdownarrow_blackicon.svg" /> </requires> <appMagic:capabilities contextualViewsEnabled="true" autoBorders="true" autoFocusedBorders="true" screenActiveAware="true" autoDisabledViewState="true" autoPointerViewState="true" isVersionFlexible="true" /> <appMagic:accessibilityChecks controlIsInteractive="true" /> <content><![CDATA[ <div class="appmagic-dropdown no-focus-outline" data-bind=" shortcut: { provider: shortcutProvider, capture: false } "> <div data-bind=" style: { fontFamily: properties.Font, fontSize: properties.Size, color: autoProperties.Color, backgroundColor: autoProperties.Fill, fontWeight: properties.FontWeight, fontStyle: properties.Italic, textAlign: properties.Align }, attr: { class: id + ' appmagic-dropdownLabel', }, event: { click: onClickLabel, }, css: { disabled: isDisabled, underline: properties.Underline, readonly: isReadOnly, strikethrough: properties.Strikethrough }, controlFlyout: { contentSelector: '.appmagic-dropdownFlyout', position: 'bottom left', openOn: null, matchWidth: true, beforeOpen: beforeOpenFlyout.bind($data), showEvent: openFlyoutEvent, closeEvent: closeFlyoutEvent, onShow: onShow.bind($data), onClose: onClose.bind($data) } " > <div class="appmagic-dropdownLabelText no-focus-outline" touch-action="pan-x pan-y" role="button" aria-haspopup="listbox" data-bind=" attr: { title: properties.Tooltip() || null, 'aria-label': (properties.AccessibleLabel() || '') + '. ' + selectedValue, 'aria-disabled': isDisabled || isReadOnly }, text: selectedValue, style: { paddingTop: properties.PaddingTop, paddingRight: properties.PaddingRight, paddingBottom: properties.PaddingBottom, paddingLeft: properties.PaddingLeft } " > </div> <div class="appmagic-dropdownLabelArrow" data-bind="style: { width: properties.ChevronWidth }"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36" focusable="false" aria-hidden="true" data-bind="style: { width: properties.ChevronWidth, height: AppMagic.Controls.converters.pxVerticalConverter.view(properties.Height()) }"> <polygon class="chevron-svg" points="18,24.5 7,13.6 9.1,11.5 18,20.3 26.9,11.5 29,13.6" /> </svg> </div> </div> <!-- ko stopBinding: true --> <div class="appmagic-dropdownFlyout" data-bind=" shortcut: { provider: shortcutProvider, capture: false }, attr: { id: 'appmagic-dropdownFlyout' + id, } " > <div role="listbox" data-bind=" style: { fontFamily: properties.Font, fontSize: properties.Size, fontWeight: properties.FontWeight, maxHeight: flyoutMaximumHeight, fontStyle: properties.Italic, textAlign: properties.Align, borderWidth: properties.BorderThickness, borderColor: properties.HoverBorderColor, borderStyle: properties.BorderStyle, backgroundColor: properties.Fill, }, attr: { class: id + ' appmagic-dropdownList', 'aria-label': Core.Utility.formatString(AppMagic.Strings.ListBoxItemsLabel || '', properties.AccessibleLabel()) }, css: { underline: properties.Underline, strikethrough: properties.Strikethrough }, foreach: currentItems " > <div touch-action="pan-y" role="option" tabindex="-1" data-bind=" attr: { class: 'item' + $index() + ' appmagic-dropdownListItem', id: 'appmagic-dropdownFlyout' + $parent.id + '_' + $index(), 'aria-selected': selected }, style: { minHeight: 'calc(1.333em + ' + $parent.properties.PaddingTop() + ' + ' + $parent.properties.PaddingBottom() + ')', paddingTop: $parent.properties.PaddingTop, paddingRight: $parent.properties.PaddingRight, paddingBottom: $parent.properties.PaddingBottom, paddingLeft: $parent.properties.PaddingLeft}, css: { selected: selected }, event: { click: $parent.onClickItem.bind($parent), mouseover: onMouseEvent, pointerout: onMouseEvent, mousedown: onMouseEvent, pointerdown: onMouseEvent, pointerup: onMouseEvent }, text: value " ></div> </div> </div> <!-- /ko --> </div> <style data-bind="text: dropdownStyles"></style> ]]></content> <properties> <property name="Items" localizedName="##dropdown_Items##" datatype="Array" direction="in" isPrimaryInputProperty="true" hasEditableNameMap="true" errorCapability="recordErrors"> <title>dropdown items</title> <appMagic:category>data</appMagic:category> <appMagic:displayName>##dropdown_Items_DisplayName##</appMagic:displayName> <appMagic:sampleDataSource name="DropDownSample" location="data/DropdownSample.xlsx" /> <properties> <property name="Value" localizedName="##dropdown_Value##" datatype="String"></property> </properties> <appMagic:tooltip>##dropdown_Items_Tooltip##</appMagic:tooltip> </property> <property name="Selected" localizedName="##dropdown_Selected##" datatype="object" direction="out" supportsAutomation="true"> <title>Value of the selected item</title> <appMagic:passThroughReference>Items</appMagic:passThroughReference> <appMagic:category>data</appMagic:category> </property> <property name="SelectedText" localizedName="##dropdown_SelectedText##" datatype="object" direction="out" isPrimaryOutputProperty="true" supportsAutomation="true"> <title>Text value of the selected item</title> <appMagic:category>data</appMagic:category> <appMagic:passThroughReference>Items</appMagic:passThroughReference> <properties> <property name="Value" localizedName="##dropdown_Value##" datatype="String"></property> </properties> </property> <property name="Default" localizedName="##dropdown_Default##" datatype="String" defaultValue="1" editable="true" direction="in"> <title>Selected item</title> <appMagic:category>data</appMagic:category> <appMagic:displayName>##dropdown_Default_DisplayName##</appMagic:displayName> <appMagic:tooltip>##dropdown_Default_Tooltip##</appMagic:tooltip> </property> <property name="Reset" localizedName="##commonProperties_Reset##" datatype="Boolean" defaultValue="false" direction="in"> <title>Reset</title> <appMagic:category>data</appMagic:category> <appMagic:displayName>##commonProperties_Reset_DisplayName##</appMagic:displayName> <appMagic:tooltip>##commonProperties_Reset_Tooltip##</appMagic:tooltip> </property> <property name="AllowEmptySelection" localizedName="##dropdown_AllowEmptySelection##" datatype="Boolean" defaultValue="false" direction="in"> <title>AllowEmptySelection</title> <appMagic:category>data</appMagic:category> <appMagic:displayName>##dropdown_AllowEmptySelection_DisplayName##</appMagic:displayName> <appMagic:tooltip>##dropdown_AllowEmptySelection_Tooltip##</appMagic:tooltip> </property> <property name="SelectionColor" localizedName="##dropdown_SelectionColor##" datatype="Color" defaultValue="RGBA(255, 255, 255, 1)" isExpr="true" converter="argbConverter"> <title>Selected Text color</title> <appMagic:category>design</appMagic:category> <appMagic:helperUI>color</appMagic:helperUI> <appMagic:displayName>##dropdown_SelectionColor_DisplayName##</appMagic:displayName> <appMagic:tooltip>##dropdown_SelectionColor_Tooltip##</appMagic:tooltip> </property> <property name="ChevronWidth" localizedName="##Dropdown_Chevron_Width##" datatype="Number" defaultValue="34" phoneDefaultValue="50" webDefaultValue="32" converter="pxHorizontalConverter" hidden="true" styleable="true"> <title>Dropdown Chevron Width</title> <appMagic:category>design</appMagic:category> <appMagic:displayName>##Dropdown_Chevron_Width_DisplayName##</appMagic:displayName> </property> <property name="FlyoutMaximumHeight" localizedName="##Dropdown_Flyout_MaximumHeight##" datatype="Number" defaultValue="400" converter="pxVerticalConverter" phoneDefaultValue="700" hidden="true" styleable="true"> <title>Dropdown Flyout Maximum Height</title> <appMagic:category>design</appMagic:category> <appMagic:displayName>##Dropdown_Flyout_MaximumHeight_DisplayName##</appMagic:displayName> </property> <property name="ChevronFill" localizedName="##Dropdown_Chevron_Fill##" datatype="Color" isExpr="true" defaultValue="RGBA(255, 255, 255, 1)" converter="argbConverter"> <title>Dropdown Chevron Fill</title> <appMagic:category>design</appMagic:category> <appMagic:helperUI>color</appMagic:helperUI> <appMagic:displayName>##Dropdown_Chevron_Fill_DisplayName##</appMagic:displayName> <appMagic:tooltip>##Dropdown_Chevron_Fill_Tooltip##</appMagic:tooltip> </property> <property name="ChevronHoverFill" localizedName="##Dropdown_Chevron_HoverFill##" datatype="Color" isExpr="true" defaultValue="Self.ChevronFill" converter="argbConverter" styleable="true"> <title>Dropdown Chevron Hover Fill</title> <appMagic:category>design</appMagic:category> <appMagic:helperUI>color</appMagic:helperUI> <appMagic:displayName>##Dropdown_Chevron_HoverFill_DisplayName##</appMagic:displayName> </property> <property name="ChevronDisabledFill" localizedName="##Dropdown_Chevron_DisabledFill##" datatype="Color" isExpr="true" defaultValue="RGBA(235, 233, 229, 1)" converter="argbConverter" styleable="true"> <title>Dropdown Chevron Disabled Fill</title> <appMagic:category>design</appMagic:category> <appMagic:helperUI>color</appMagic:helperUI> <appMagic:displayName>##Dropdown_Chevron_DisabledFill_DisplayName##</appMagic:displayName> </property> <property name="ChevronBackground" localizedName="##Dropdown_Chevron_Background##" datatype="Color" isExpr="true" defaultValue="RGBA(35, 31, 32, 1)" converter="argbConverter"> <title>Dropdown Chevron Fill</title> <appMagic:category>design</appMagic:category> <appMagic:helperUI>color</appMagic:helperUI> <appMagic:displayName>##Dropdown_Chevron_Background_DisplayName##</appMagic:displayName> <appMagic:tooltip>##Dropdown_Chevron_Background_Tooltip##</appMagic:tooltip> </property> <property name="ChevronHoverBackground" localizedName="##Dropdown_Chevron_HoverBackground##" datatype="Color" isExpr="true" defaultValue="ColorFade(Self.ChevronBackground, 20%)" converter="argbConverter" styleable="true"> <title>Dropdown Chevron Hover Fill</title> <appMagic:category>design</appMagic:category> <appMagic:helperUI>color</appMagic:helperUI> <appMagic:displayName>##Dropdown_Chevron_HoverBackground_DisplayName##</appMagic:displayName> </property> <property name="ChevronDisabledBackground" localizedName="##Dropdown_Chevron_DisabledBackground##" datatype="Color" isExpr="true" defaultValue="RGBA(215, 210, 204, 1)" converter="argbConverter" styleable="true"> <title>Dropdown Chevron Disabled Fill</title> <appMagic:category>design</appMagic:category> <appMagic:helperUI>color</appMagic:helperUI> <appMagic:displayName>##Dropdown_Chevron_DisabledBackground_DisplayName##</appMagic:displayName> </property> <property name="SelectionFill" localizedName="##dropdown_SelectionFill##" datatype="Color" defaultValue="RGBA(0, 176, 240, 1)" isExpr="true" converter="argbConverter"> <title>Selected Fill color</title> <appMagic:category>design</appMagic:category> <appMagic:helperUI>color</appMagic:helperUI> <appMagic:displayName>##dropdown_SelectionFill_DisplayName##</appMagic:displayName> <appMagic:tooltip>##dropdown_SelectionFill_Tooltip##</appMagic:tooltip> </property> </properties> <appMagic:includeProperties> <!-- Data --> <appMagic:includeProperty name="AccessibleLabel" /> <appMagic:includeProperty name="Tooltip" /> <appMagic:includeProperty name="ContentLanguage" /> <!-- Design --> <appMagic:includeProperty name="Color" defaultValue="RGBA(0, 0, 0, 1)" isExpr="true" /> <appMagic:includeProperty name="HoverColor" defaultValue="Self.Color" /> <appMagic:includeProperty name="PressedColor" defaultValue="Self.Color" /> <appMagic:includeProperty name="DisabledColor" defaultValue="RGBA(186, 186, 186, 1)" /> <appMagic:includeProperty name="BorderColor" defaultValue="RGBA(69, 69, 69, 1)" /> <appMagic:includeProperty name="DisabledBorderColor" defaultValue="RGBA(186, 186, 186, 1)" /> <appMagic:includeProperty name="HoverBorderColor" defaultValue="ColorFade(Self.BorderColor, 15%)" /> <appMagic:includeProperty name="PressedBorderColor" defaultValue="Self.HoverBorderColor" /> <appMagic:includeProperty name="BorderStyle" /> <appMagic:includeProperty name="BorderThickness" defaultValue="2" /> <appMagic:includeProperty name="FocusedBorderColor" defaultValue="Self.BorderColor" isExpr="true" /> <appMagic:includeProperty name="FocusedBorderThickness" defaultValue="4" /> <appMagic:includeProperty name="Fill" defaultValue="RGBA(255, 255, 255, 1)" /> <appMagic:includeProperty name="DisabledFill" defaultValue="RGBA(242, 242, 242, 1)" /> <appMagic:includeProperty name="PressedFill" defaultValue="ColorFade(Self.SelectionFill, -30%)" /> <appMagic:includeProperty name="HoverFill" defaultValue="RGBA(186, 186, 186, 1)" /> <appMagic:includeProperty name="Font" /> <appMagic:includeProperty name="Size" phoneDefaultValue="30" /> <appMagic:includeProperty name="FontWeight" /> <appMagic:includeProperty name="Italic" /> <appMagic:includeProperty name="Underline" /> <appMagic:includeProperty name="Strikethrough" /> <appMagic:includeProperty name="PaddingTop" defaultValue="10" /> <appMagic:includeProperty name="PaddingRight" defaultValue="10" /> <appMagic:includeProperty name="PaddingBottom" defaultValue="10" /> <appMagic:includeProperty name="PaddingLeft" defaultValue="10" /> <appMagic:includeProperty name="X" /> <appMagic:includeProperty name="Y" /> <appMagic:includeProperty name="Width" defaultValue="328" phoneDefaultValue="575" webDefaultValue="180" /> <appMagic:includeProperty name="Height" defaultValue="40" phoneDefaultValue="70" webDefaultValue="32" /> <appMagic:includeProperty name="Visible" /> <appMagic:includeProperty name="TabIndex" /> <appMagic:includeProperty name="DisplayMode" /> <!-- Behavior --> <appMagic:includeProperty name="OnSelect" direction="in" /> <appMagic:includeProperty name="OnChange" direction="in" isPrimaryBehaviorProperty="true" /> <!-- Hidden properties --> <appMagic:includeProperty name="minimumWidth" defaultValue="80" /> <appMagic:includeProperty name="minimumHeight" defaultValue="35" /> <appMagic:includeProperty name="maximumWidth" defaultValue="1366" /> <appMagic:includeProperty name="maximumHeight" defaultValue="768" /> </appMagic:includeProperties> <!--Property Dependencies --> <appMagic:propertyDependencies> <appMagic:propertyDependency input="Items" output="Selected" /> <appMagic:propertyDependency input="Default" output="Selected" /> <appMagic:propertyDependency input="Reset" output="Selected" /> <appMagic:propertyDependency input="Items" output="SelectedText" /> <appMagic:propertyDependency input="Default" output="SelectedText" /> </appMagic:propertyDependencies> <appMagic:insertMetadata> <appMagic:category name="Input" priority="40" /> <appMagic:category name="ClassicControls" priority="40" /> </appMagic:insertMetadata> <!-- Display metadata providing property visibility, order, sections, and grouping in UI (e.g. properties panel) --> <appMagic:displayMetadata> <appMagic:section> <appMagic:property name="Items" serverProvidesValue="true" hasNameMaps="true" computedValueType="ItemsWithNameMaps" /> <appMagic:configureProperty propertyInvariantName="DependentItems" ruleToSet="Items" hasNameMaps="true" computedValueType="ItemsWithNameMaps" /> </appMagic:section> <appMagic:section> <appMagic:property name="Default" /> <appMagic:property name="DisplayMode" /> </appMagic:section> <appMagic:section> <appMagic:property name="Visible" /> <appMagic:propertyGroup name="Position"> <appMagic:property name="X" /> <appMagic:property name="Y" /> </appMagic:propertyGroup> <appMagic:propertyGroup name="Size"> <appMagic:property name="Width" /> <appMagic:property name="Height" /> </appMagic:propertyGroup> <appMagic:propertyGroup name="Padding"> <appMagic:property name="PaddingTop" labelOverride="##Padding_Top_Title##" /> <appMagic:property name="PaddingBottom" labelOverride="##Padding_Bottom_Title##" /> <appMagic:property name="PaddingLeft" labelOverride="##Padding_Left_Title##" /> <appMagic:property name="PaddingRight" labelOverride="##Padding_Right_Title##" /> </appMagic:propertyGroup> </appMagic:section> <appMagic:section> <appMagic:propertyGroup name="Color"> <appMagic:property name="Color" showInFloatie="true" /> <appMagic:property name="Fill" showInFloatie="true" /> </appMagic:propertyGroup> <appMagic:propertyGroup name="SelectionColor"> <appMagic:property name="SelectionColor" /> <appMagic:property name="SelectionFill" /> </appMagic:propertyGroup> <appMagic:propertyGroup name="ChevronColor"> <appMagic:property name="ChevronFill" /> <appMagic:property name="ChevronBackground" /> </appMagic:propertyGroup> <appMagic:property name="Font" displayType="FontEnum" showInFloatie="true" /> <appMagic:property name="Size" labelOverride="##FontSize_Property##" showInFloatie="true" /> <appMagic:property name="FontWeight" displayType="EnumIcon" itemsOrder="Bold;Semibold;Normal;Lighter" /> <appMagic:propertyGroup name="Style"> <appMagic:property name="Italic" displayType="ToggleButton" /> <appMagic:property name="Underline" displayType="ToggleButton" /> <appMagic:property name="Strikethrough" displayType="ToggleButton" /> </appMagic:propertyGroup> <appMagic:propertyGroup name="Border"> <appMagic:property name="BorderStyle" /> <appMagic:property name="BorderThickness" /> <appMagic:property name="BorderColor" /> </appMagic:propertyGroup> </appMagic:section> <appMagic:section> <appMagic:propertyGroup name="DisabledColor"> <appMagic:property name="DisabledColor" /> <appMagic:property name="DisabledFill" /> <appMagic:property name="DisabledBorderColor" /> </appMagic:propertyGroup> <appMagic:property name="ChevronDisabledFill" /> <appMagic:property name="ChevronDisabledBackground" /> <appMagic:propertyGroup name="HoverColor"> <appMagic:property name="HoverColor" /> <appMagic:property name="HoverFill" /> <appMagic:property name="HoverBorderColor" /> </appMagic:propertyGroup> <appMagic:property name="ChevronHoverFill" /> <appMagic:property name="ChevronHoverBackground" /> <appMagic:propertyGroup name="PressedColor"> <appMagic:property name="PressedColor" /> <appMagic:property name="PressedFill" /> <appMagic:property name="PressedBorderColor" /> </appMagic:propertyGroup> <appMagic:property name="TabIndex" /> <appMagic:property name="Tooltip" /> </appMagic:section> </appMagic:displayMetadata> <appMagic:conversion from="2.0.0" to="2.1.0"> <appMagic:conversionAction type="add" name="AllowUnsetValue" /> </appMagic:conversion> <appMagic:conversion from="2.1.0" to="2.2.0"> <appMagic:conversionAction type="rename" name="Selected" newName="SelectedText" /> <appMagic:conversionAction type="add" name="Selected" /> </appMagic:conversion> <appMagic:conversion from="2.2.0" to="2.2.1"> <appMagic:conversionAction type="rename" name="AllowUnsetValue" newName="AllowEmptySelection" /> </appMagic:conversion> <appMagic:conversion from="2.2.1" to="2.2.2"> <!-- KO template changes for accessibility fixes --> </appMagic:conversion> <appMagic:conversion from="2.2.2" to="2.2.3"> <!-- KO template changes for undefined string fix --> </appMagic:conversion> <appMagic:conversion from="2.2.3" to="2.2.4"> <!-- Defined Items property as able to receive record errors --> </appMagic:conversion> <appMagic:conversion from="2.2.4" to="2.3.0"> <appMagic:conversionAction type="add" name="ContentLanguage" /> </appMagic:conversion> <appMagic:conversion from="2.3.0" to="2.3.1"> <!-- KO template changes for fixing min height issue --> </appMagic:conversion> </widget>