Update Shell.
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" GeneratedByTileIconifier="true">
|
||||
<VisualElements ShowNameOnSquare150x150Logo="on" Square150x150Logo="VisualElements\150x150.png" Square70x70Logo="VisualElements\70x70.png" ForegroundText="light" BackgroundColor="#0078d7" TileIconifierColorSelection="Default" TileIconifierCreatedWithUpgrade="true" />
|
||||
</Application>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
<ShortcutItemImage xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<OriginalBytes>iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAA3kSURBVHhe7d2NkR3HkUVhmkSTaJJMkCkyQSbQElCVqjOIB2AG815O/9TtPl8EYyUIyOnMrLxL7m7E/qH7+Oeff/797du3v8d//YtfknQHdfzjr+8MAukmxqH/cPyPDALpwsZxf3j8jwwCXUo9Zh71v/ml26nex18vMQgUrR4vj/jR7UKgep6t9xgEilKP9Z3Df3SbEKheZ8tfZxBoafU4Pzn8R5cPgepxtrotg0BLqcf4wuE/umwIVG+zxf0YBDpVPb7m4T+6XAhUT7O1YxgEOlQ9tg0O/9FlQqB6mS0dzyDQrupxbXz4j+JDoHqYrZzLINCm6jHtePiPYkOgvn22sA6DQF9Sj+egw38UFwL1zfPT12QQ6CX1WE44/EcxIVDfOj95fQaBfqsex8mH/2j5EKhvnJ+axSDQD+oxLHT4j5YNgfq2+Ym5DIKbq+UveviPlguB+qb5addgENxMLTvg8B8tEwL1LfOTrscguLhabtjhPzo9BOob5qdcm0FwMbXM4MN/dFoI1M+en3AfBkG4Wt5FDv/R4SFQP3P+6HsyCMLUsi54+I8OC4H6WfNHyiBYXC3n4of/aPcQqJ8xf5QeGQSLqWXc6PAf7RYCVXv+CH3EIDhZDf+mh/9o8xComrO0nmEQHKyG7eH/YLMQqFqzpF5lEOyshuvhf+jLIVA1Zil9hUGwsRqmh/+UdgjUn50ltBWD4ItqeB7+y14Ogfoz849qDwbBi2pYHv6XPB0C9XvnH9HeDIJP1HA8/M18GgL1e+Zv1ZEMgg+Mofggt/VhCNR/Nn+LzmIQvGMMxIe5rV9CoH5t/kdagUHwkzEMH+i2vodA/ev5S1qNQfBgDMKHuq2apzMNYBBgDMEHu4G3B1V/8a8VwCAYxgAMgaaPHlD9mkGQ4/ZBMJo3BF7w7IOp32MQ5Lh1EIzGDYFPdB9I/RmDIMdtg2A0bQi8Y6sHUTUMghy3DILRsCGAvR5A1TQIctwuCEaztw6BoxZeP8MgyHGrIBiN3i4Ezlpw/UyDIMdtgmA0eYsQWGWh9Q0GQY5bBMFo8LIhsOoC65sMghyXD4LR3KVCIGVh9Y0GQY5LB8FoLD4EUhdU32wQ5LhsEIymIkPgKgupHgyCHJcMgtFQTAhcNYmrJ4Mgx+Xe4Whm6RC46uH/rHo0CHJc6l2ORpYLgbsc/s+qZ4Mgx2Xe6WhiiRC46+H/rGZgEOS4xLsdDZwWAh7++2omBkGO+Hc8Pv7QEPDwn1MzMghyRL/r8eG7h4CH31MzMwhyxL7z8dG7hICHv42aoUGQI/Ldjw/eLAQ8/H3UTA2CHHF3MD72SyHg4R+jZmwQ5Ii6i/GhL4eAh3+OmrlBkCPmTsZHPhUCHv4aagcGQYyn/z9Un6o+dH7vrzz8NdVODIKlZRz/m/rg+d2Th5+hdmQQLCfr+N/Uh3v4mWpnBsESMo//jQGQrXZnEJwm+/gLjfiPAOFqdwbBofKPv9DMdwZBttqdQbC7axx/oaFfGATZancGwS6uc/yFpj5kEGSr3RkEm7nW8Rca+5RBkK12ZxB8yfWOv9Dc0wyCbLU7g+Bl1zz+QoMvMwiy1e4Mgqdc9/gLTbYZBNlqdwbBh659/IVGv8wgyFa7Mwh+cP3jLzS7GYMgW+3OILjJ8Rca3pxBkK12d9MguM/xF5rejUGQrXZ3oyC41/EXGt+dQZCtdnfxILjf8ReaP4xBkK12d8EguOfxFwZwOIMgW+3uIkFw3+MvDOE0BkG22l1wENz7+AuDOJ1BkK12FxYEHn9hGMswCLLV7gKCwON/w0CWYxBkq90tGgQe/yOGsiyDIFvtbqEg8Ph/xmCWZxBkq92dHAQe/3sYTgyDIFvt7oQg8Pg/woDiGATZancHBYHH/zsMKZZBkK12t2MQePyfYVDxDIJstbuNg8DjfwbDugyDIFvtboMg8PifxcAuxyDIVrtrBoHH/wqGdlkGQbba3QtB4PG/isFdnkGQrXb3SRB4/B0M7zYMgmy1u3eCwOPvYoC3YxBkq92xQ4//K+oY7swgyFQ7e+fvBGIs8+7m58ggyFA78vA3ND9LbwyCNdVOPPwdzM/TzwyCNdQOPPwdzc/URwyCc9TMPfwDzM/VZwyCY9SMPfwDzc/WswyCfdRMPfwTzM/XqwyCbdQMPfwTzTbUZRD01Mw8/AXMdvRVBsFzakYe/kJmW9qKQfC+momHv6DZnrZmEEw1Aw9/YbNN7eWuQVA9e/gBZrva210eVPXo4QeZbesoV31g1ZOHH2i2r6Nd5cFVDx5+sDkGnSX1AdY3e/gXMMehs6U8yPpGD/9C5li0ilUfaH2Th39BczxazSoPtr7Bw7+wOSat6qwHXD/Tw7+BOS6t7qgHXT/Dw7+ROTal2OuBV00P/4bm+JRmqwdfNTz8G5tjVCrW2EaZOB7+RuY4lYo1tlEmhoe/sTlWpWKNbZRZnoe/kzlepWKNbZRZloe/szlmpWKNbZRZjod/kDlupWKNbZRZhod/sDl2pWKNbZQ5nYd/kjl+pWKNbZQ5jYd/srkGpWKNUg/vSKFYo9TDO1Io1ij18I4UijVKPbwjhWKNUg/vSKFYo9TDO1Io1ij18I4UijVKPbwjhWKNbf4f4tzcfEZKxRrbKOP/Rd5dzfUrFWtso8x3BsHNzLUrFWtso8wvDIKbmOtWKtbYRpkPGQQXN9esVKyxjTKfMgguaq5XqVhjG2WeZhBczFyrUrHGNsq8zCC4iLlOpWKNbZRpOysI6mfWz+bfquv/W1Qs1thGmS87KgjqZ/Cz/o9fVhdzVCjW2EaZzewVBFXz8fDf8B+rizkqFGtso8zmtgqCqvHe4b/ht6mLOSoUa2yjzG66QVB/5neH/4bfri7mqFCssY0yu3s2COr3PHP4b/hj6mKOCsUa2yhzmI+CoH7tlcN/wx9XF3NUKNbYRpnDvQVB/dU5/De0oS7mqFCssY0ysWhDXcxRoVhjG2Vi0Ya6mKNCscY2ysSiDXUxR4VijW2UiUUb6mKOCsUa2ygTizbUxRwVijW2USYWbaiLOSoUa2yjTCzaUBdzVCjW2EaZWLShLuaoUKyxjTKxaENdzFGhWGMbZWLRhrqYo0KxxjbKxKINdTFHhWKNbZSJRRvqYo4KxRrbKBOLNtTFHBWKNbZRJhZtqIs5KhRrbKNMLNpQF3NUKNbYRplYtKEu5qhQrLGNMrFoQ13MUaFYYxtlYtGGupijQrHGNsrEog11MUeFYo1tlIlFG+pijgrFGtsoE4s21MUcFYo1tlEmFm2oizkqFGtso0ws2lAXc1Qo1thGmVi0oS7mqFCssY0ysWhDXcxRoVhjG2Vi0Ya6mKNCscY2ysSiDXUxR4VijW2UiUUb6mKOCsUa2ygTizbUxRwVijW2USYWbaiLOSoUa2yjTCzaUBdzVCjW2EaZWLShLuaoUKyxjTKxaENdzFGhWGMbZWLRhrqYo0KxxjbKxKINdTFHhWKNbZSJRRvqYo4KxRrbKBOLNtTFHBWKNbZRJhZtqIs5KhRrbKNMLNpQF3NUKNbYRplYtKEu5qhQrLGNMrFoQ11jhv+Zo1Qi1thGmVi0oa5v3779i1kqEGtso0ws2lDXmOGfc5RKxBrbKBOLNvQV4+8C/maeCsMK2ygTizb0FWOOf81xKg0rbKNMLNrQV42/C/gvM1UQ1tdGmVi0oa8as/R/FhCI9bVRJhZtaAtjnv6jQBhW10aZWLShrYyZGgJBWFsbZWLRhrY05moIhGBlbZSJRRva2pjtn/6vB9fHutooE4s2tJcx478MgnWxpjbKxKIN7W3M2iBYEOtpo0ws2tBRxswNgoWwljbKxKINHW3M3iBYAOtoo0ws2tBZxg4MghOxhjbKxKINnW3swiA4AeNvo0ws2tAqxk4MggMx9jbKxKINrWbsxiA4AONuo0ws2tCqxo4Mgh0x5jbKxKINrW7syiDYAeNto0ws2lCKsTODYEOMtY0ysWhDacbuDIINMM42ysSiDaUaOzQIvoAxtlEmFm0o3dilQdDA+NooE4s2dBVjpwbBCxhbG2Vi0YauZuzWIHgC42qjTCza0FWNHRsEv8GY2igTizZ0dWPXBsE7GE8bZWLRhu5i7NwgeMBY2igTizZ0N2P3BsHAONooE4s2dFfjDdw6CBhDG2Vi0YbubryFWwYB7bdRJtV/aEOaxqO4VRDQdhtlIo09/4s2pB+N93GLIKDdNsqk+pM2pPeNR3LpIKDNNsrEqZ3SgvS58WYuGQS010aZRH/RgvS8ejhXCgLaaqNMlLG///L5Us94R5cIAtppo0wa/9lf2xiPKToIaKONMkn8W39trx5WYhDw+W2USeHxa1/1yJKCgM9uo0wCj1/HqQeXEAR8bhtllsUO/Gd+nWM8vqWDgM9so8xymLn/XV9rqMe4YhDweW2UWYaHr6XV41wpCPisNsqczsNXlHqsKwQBn9NGmdN4+IpWj/fMIOAz2ihzOA9fl1KP+Ywg4Me3UeYwHr4urR73kUHAj22jzO48fN1KPfYjgoAf10aZ3Xj4urV6/HsGAT+mjTKb8/ClB3UMewQB5dsosxkPX/qNOo4tg4CybZT5Mg9fekEdyxZBQLk2yrR5+NIX1PF8JQgo00aZl3n40obqmDpBwB9vo8zTPHxpR3VcrwQBf6yNMp/y8KUD1bE9EwT89jbKfMjDl05Ux/e7IOC3tVHmFx6+tJA6xveCgP+4jTLfefjSwuo4H4OAX26jjIcvJaljraPl37Z5+Gf644//AZoB5wgfxM0FAAAAAElFTkSuQmCC</OriginalBytes>
|
||||
<OriginalPath>E:\Profiles\Bruce\Desktop\新建文件夹\Microsoft.DesktopAppInstaller_1.22.11261.0_x64__8wekyb3d8bbwe\Assets\AppPackageAppList.targetsize-256_altform-unplated.png</OriginalPath>
|
||||
<Height>48</Height>
|
||||
<Width>48</Width>
|
||||
<X>26</X>
|
||||
<Y>20</Y>
|
||||
</ShortcutItemImage>
|
||||
|
After Width: | Height: | Size: 467 B |
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
<ShortcutItemImage xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<OriginalBytes>iVBORw0KGgoAAAANSUhEUgAAAEIAAABCCAYAAADjVADoAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAJ8SURBVHhe7drhceJADIZhSkgpKSklXAn3L38pgdKuhFQAJ2lfM8bYgrWFd5fsM8MEhNDKX2Amk+HQdV3XdV3XVeRyuXxy9ynS/yW3H7n9ldsH5XbpBZ3P53/yU31Rdmlfar9qNxBZehzAmBuGPp/aZrUTiCy5FMDYbBhaT08/VG8gstQzAYzdhKGPUzlLPYHIErkBjFkY+jM9XK18IHL4STdZS0L85m6EsoHIwdlh8C66viM2vKvmlAtEDn0qjHEAU1p/i0DkwMUwvACmtK/5QOSwmzByApjS1zUdiBx02hLAlM6JDERmHRn9epFBDHReQCAnxu2DQzd9NJbovJWB7BuC4uCrCgLZPwTF4XcKBVImBMUCi3YMpFwIiiUeenEgZUNQepE5IgPROTPvjBuv+AXMSsfl27Kgvq6aAAbp2PVyFta+6gIYpOO38y5A69UGMEhrxNELYrSpPoBBWicWow2lO9UEMEhrxWJ0W9g9FKONPKznt+5Jq8ditNHH1X0M5uii0RhtKJlpIHpfazwsyzYMxmhD6YZePKEYWstil1CMNpRctJbFLqEYbSi5aC2LXUIx2lBy0VoWu4RitKHkorUsdgnFaEPJRWtZ7BKK0YaSi9ay2CUUow0lF61lsUsoRhtKLlrLkj9sjuwThtGGkovW8mSXh/84ycFYQ8lFaz1kp5BAGGcouWitj+y2KRDGGEouWuslO64KhJcbSi5a6ye7ZgXCywwlF63tkJ2fCoR2Q2mRzNvvOxDRZH83ENoMpTu8vo1/4z2iFzIXCE8bSldvFcCUXNwfuTj93pOhbCi9dwBjcpEfctMvgP1QMr8mgK7ruq7ruvYdDv8B85b251lfl2cAAAAASUVORK5CYII=</OriginalBytes>
|
||||
<OriginalPath>E:\Profiles\Bruce\Desktop\新建文件夹\Microsoft.DesktopAppInstaller_1.22.11261.0_x64__8wekyb3d8bbwe\Assets\AppPackageAppList.scale-150.png</OriginalPath>
|
||||
<Height>44</Height>
|
||||
<Width>44</Width>
|
||||
<X>3</X>
|
||||
<Y>3</Y>
|
||||
</ShortcutItemImage>
|
||||
|
After Width: | Height: | Size: 271 B |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<resource id="splash">
|
||||
<scale dpi="100">splash\SplashScreen.scale-100.png</scale>
|
||||
<scale dpi="125">splash\SplashScreen.scale-125.png</scale>
|
||||
<scale dpi="150">splash\SplashScreen.scale-150.png</scale>
|
||||
<scale dpi="200">splash\SplashScreen.scale-200.png</scale>
|
||||
<scale dpi="default">SplashScreen.png</scale>
|
||||
</resource>
|
||||
<resource id="splashlarge">
|
||||
<scale dpi="100">SplashLarge.png</scale>
|
||||
<scale dpi="default">SplashLarge.png</scale>
|
||||
</resource>
|
||||
</resources>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
@@ -0,0 +1,12 @@
|
||||
<Application>
|
||||
<VisualElements
|
||||
DisplayName='App Installer'
|
||||
Logo='VisualElements\150x150.png'
|
||||
SmallLogo='VisualElements\70x70.png'
|
||||
ForegroundText='light'
|
||||
Lnk32x32Logo="Icons\Main.ico"
|
||||
BackgroundColor='#0078D7'>
|
||||
<DefaultTile ShowName='allLogos'/>
|
||||
<SplashScreen Image="VisualElements\SplashLarge.png" BackgroundColor="#0078d7" />
|
||||
</VisualElements>
|
||||
</Application>
|
||||
@@ -0,0 +1,357 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>App Launch List</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" type="text/css" href="libs/winjs/2.0/css/ui-light.css">
|
||||
<script src="js/bridge.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div [role=template] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", "Ebrima", "Nirmala", "Gadugi", "Segoe UI Emoji", "Segoe UI Symbol", "Meiryo", "Leelawadee", "Microsoft JhengHei", "Malgun Gothic", "Estrangelo Edessa", "Microsoft Himalaya", "Microsoft New Tai Lue", "Microsoft PhagsPa", "Microsoft Tai Le", "Microsoft Yi Baiti", "Mongolian Baiti", "MV Boli", "Myanmar Text", "Javanese Text", "Cambria Math", "Segoe UI Symbol";
|
||||
}
|
||||
|
||||
.applist-font-title {
|
||||
color: black;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
.applist-font-text {
|
||||
color: black;
|
||||
font-size: 11pt;
|
||||
word-wrap: break-word;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.applist-window {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
border: 2px solid rgb(42, 42, 42);
|
||||
background-color: white;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.applist-title {
|
||||
position: absolute;
|
||||
height: 65px;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
padding: 0 23px;
|
||||
box-sizing: border-box;
|
||||
background: white;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.applist-control {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 118px;
|
||||
box-sizing: border-box;
|
||||
background: white;
|
||||
z-index: 1;
|
||||
padding-bottom: 24px;
|
||||
padding-top: 11px;
|
||||
padding-left: 24px;
|
||||
padding-right: 24px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.applist-listview {
|
||||
position: absolute;
|
||||
top: 56px;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
overflow-y: auto;
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
}
|
||||
|
||||
.applist-list-item {
|
||||
height: 60px;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
background-color: rgba(0, 255, 255, 0);
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
-ms-flex-wrap: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-ms-flex-pack: start;
|
||||
justify-content: flex-start;
|
||||
-ms-transition: all 0.1s cubic-bezier(0.22, 0.61, 0.36, 1);
|
||||
transition: all 0.1s cubic-bezier(0.22, 0.61, 0.36, 1);
|
||||
}
|
||||
|
||||
.applist-list-item:hover {
|
||||
background-color: rgb(222, 222, 222);
|
||||
}
|
||||
|
||||
.applist-list-item:active {
|
||||
-ms-transform: scale(0.9696);
|
||||
transform: scale(0.9696);
|
||||
-ms-transform-origin: center;
|
||||
transform-origin: center;
|
||||
}
|
||||
|
||||
.applist-item-divide {
|
||||
width: 12px;
|
||||
height: 100%;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.applist-item-picbox {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
min-width: 40px;
|
||||
min-height: 40px;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
background-color: #001020;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.applist-item-pic {
|
||||
min-width: 32px;
|
||||
min-height: 32px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.applist-item-title {
|
||||
padding-top: 11pt;
|
||||
padding-bottom: 0pt;
|
||||
height: 100%;
|
||||
width: auto;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-height: 3.9em;
|
||||
line-height: 1.3em;
|
||||
}
|
||||
|
||||
.applist-btn-cancel {
|
||||
position: absolute;
|
||||
right: 24px;
|
||||
bottom: 24px;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.applist-item-img-border {
|
||||
background: transparent;
|
||||
border: 1px solid rgba(254, 254, 254, 0.1);
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 2;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.win10 .applist-font-title {
|
||||
font-size: 13pt;
|
||||
}
|
||||
|
||||
.win10.applist-window {
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.win10 .applist-title {
|
||||
height: 56px;
|
||||
padding: 0 24px;
|
||||
}
|
||||
|
||||
.win10 .applist-control {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.win10 .applist-listview {
|
||||
bottom: 118px;
|
||||
}
|
||||
|
||||
.win10 .applist-list-item {
|
||||
height: 50px;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
padding-left: 24px;
|
||||
padding-right: 24px;
|
||||
}
|
||||
|
||||
.win10 .applist-list-item:active {
|
||||
transform: scale(0.9709);
|
||||
}
|
||||
|
||||
.win10 .applist-item-divide {
|
||||
width: 12px;
|
||||
}
|
||||
|
||||
.win10 .applist-item-title {
|
||||
padding-top: 5pt;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div role="template" id="applist-item-template">
|
||||
<div class="applist-list-item">
|
||||
<div class="applist-item-picbox" style="background-color: rgb(0,0,0);">
|
||||
<img class="applist-item-pic" src="./Images/AppLogoDefault.png" width="32" height="32">
|
||||
<div class="applist-item-img-border"></div>
|
||||
</div>
|
||||
<div class="applist-item-divide"></div>
|
||||
<div class="applist-item-title">
|
||||
<span class="applist-font-text">My Application0</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="applist-window win10">
|
||||
<div class="applist-title">
|
||||
<span class="applist-font-title">你要如何打开这个文件?</span>
|
||||
</div>
|
||||
<div class="applist-listview">
|
||||
</div>
|
||||
<div class="applist-control">
|
||||
<button class="applist-btn-cancel win-commandbutton div-button-size div-std-button-center" onclick="EventCancelWindow()" tabindex="0">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
(function(global) {
|
||||
"use strict";
|
||||
"App Select List, For Internet Explorer 10 and above.";
|
||||
var AppListElements = new function() {
|
||||
Object.defineProperty(this, "template", {
|
||||
get: function() {
|
||||
return document.getElementById("applist-item-template").querySelector(".applist-list-item").cloneNode(true);
|
||||
}
|
||||
});
|
||||
Object.defineProperty(this, "listview", {
|
||||
get: function() {
|
||||
return document.querySelector(".applist-listview");
|
||||
}
|
||||
});
|
||||
}();
|
||||
|
||||
function AppListNodeElement(node) {
|
||||
var _node = node;
|
||||
var _appid = "";
|
||||
var _title = "";
|
||||
var _logo = "";
|
||||
var _color = "";
|
||||
Object.defineProperty(this, "node", {
|
||||
get: function() {
|
||||
return _node;
|
||||
},
|
||||
set: function(value) {
|
||||
_node = value;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(this, "appid", {
|
||||
get: function() {
|
||||
if (this.node) return this.node.getAttribute("data-appid");
|
||||
else return _appid;
|
||||
},
|
||||
set: function(value) {
|
||||
_appid = value;
|
||||
if (this.node) this.node.setAttribute("data-appid", value);
|
||||
}
|
||||
})
|
||||
Object.defineProperty(this, "title", {
|
||||
get: function() {
|
||||
if (this.node) return this.node.querySelector(".applist-item-title").textContent;
|
||||
else return _title;
|
||||
},
|
||||
set: function(value) {
|
||||
_title = value;
|
||||
if (this.node) this.node.querySelector(".applist-item-title").textContent = value;
|
||||
}
|
||||
})
|
||||
Object.defineProperty(this, "logo", {
|
||||
get: function() {
|
||||
if (this.node) return this.node.querySelector(".applist-item-pic").getAttribute("src");
|
||||
else return _logo;
|
||||
},
|
||||
set: function(value) {
|
||||
_logo = value;
|
||||
if (this.node) this.node.querySelector(".applist-item-pic").setAttribute("src", value);
|
||||
}
|
||||
});
|
||||
Object.defineProperty(this, "color", {
|
||||
get: function() {
|
||||
if (this.node) return this.node.querySelector(".applist-item-picbox").style.backgroundColor;
|
||||
else return _color;
|
||||
},
|
||||
set: function(value) {
|
||||
_color = value;
|
||||
if (this.node) this.node.querySelector(".applist-item-picbox").style.backgroundColor = value;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function createItem(title, logo, appid, color) {
|
||||
var item = AppListElements.template.cloneNode(true);
|
||||
var inode = new AppListNodeElement(item);
|
||||
inode.title = title;
|
||||
inode.logo = logo;
|
||||
inode.appid = appid;
|
||||
inode.color = color;
|
||||
return item;
|
||||
}
|
||||
|
||||
function addItem(node) {
|
||||
AppListElements.listview.appendChild(node);
|
||||
}
|
||||
global.AppList = {
|
||||
Item: {
|
||||
create: createItem
|
||||
},
|
||||
List: {
|
||||
add: addItem
|
||||
}
|
||||
};
|
||||
})(this);
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,447 @@
|
||||
body {
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
user-select: none;
|
||||
-ms-user-select: none;
|
||||
}
|
||||
|
||||
body * {
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
}
|
||||
|
||||
.pagecontainer {
|
||||
padding: 0px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow-x: hidden;
|
||||
overflow-y: hidden;
|
||||
box-sizing: border-box;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.pagecontainer.full {
|
||||
padding: 0px;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.pagecontainer>.page {
|
||||
position: relative;
|
||||
overflow-x: hidden;
|
||||
overflow-y: hidden;
|
||||
box-sizing: border-box;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.page.padding {
|
||||
padding: 24px;
|
||||
}
|
||||
|
||||
.page.splash {
|
||||
padding: 0px;
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.page.splash>img {
|
||||
width: 620px;
|
||||
height: 300px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.page.splash progress.win-ring {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
margin-top: 32px;
|
||||
border-style: none;
|
||||
background-color: transparent;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.page.splash>.content {
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
top: calc(50% + 300px / 2);
|
||||
left: 50%;
|
||||
width: 100%;
|
||||
transform: translateX(-50%);
|
||||
color: white;
|
||||
}
|
||||
|
||||
progress.win-ring:indeterminate::-ms-fill {
|
||||
animation-delay: 1.5s;
|
||||
}
|
||||
|
||||
.page.preinstall .content.preinstall,
|
||||
.page.installsuccess .content.installsuccess,
|
||||
.page.installfailed .content.installfailed {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
height: calc(100% - 100px);
|
||||
bottom: auto;
|
||||
box-sizing: border-box;
|
||||
padding: 24px 24px 0px 24px;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
word-break: break-all;
|
||||
max-width: 100%;
|
||||
max-height: calc(100% - 100px);
|
||||
}
|
||||
|
||||
.page>.controls {
|
||||
position: absolute;
|
||||
top: auto;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
height: 100px;
|
||||
max-height: 100px;
|
||||
padding: 10px 24px 24px 24px;
|
||||
box-sizing: border-box;
|
||||
overflow-y: hidden;
|
||||
overflow-x: auto;
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
/* display: flex; */
|
||||
flex-direction: row-reverse;
|
||||
flex-wrap: nowrap;
|
||||
align-content: center;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.page>.controls .command {
|
||||
float: right;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
align-content: center;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.page>.controls .command button {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.page>.controls .checkbox {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
align-content: center;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
-ms-flex-direction: row;
|
||||
-ms-flex-wrap: nowrap;
|
||||
-ms-flex-line-pack: center;
|
||||
-ms-flex-pack: start;
|
||||
-ms-flex-align: center;
|
||||
}
|
||||
|
||||
.page>.controls .checkbox input[type="checkbox"] {
|
||||
min-width: 21px;
|
||||
min-height: 21px;
|
||||
}
|
||||
|
||||
.page>.controls .checkbox label {
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.page>.content p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.page>.content ul {
|
||||
margin: 0;
|
||||
padding-left: 16px;
|
||||
}
|
||||
|
||||
.page>.content ul li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.storelogo {
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
position: relative;
|
||||
background-color: #464646;
|
||||
float: right;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
-ms-flex-wrap: nowrap;
|
||||
align-content: center;
|
||||
-ms-flex-line-pack: center;
|
||||
justify-content: center;
|
||||
-ms-flex-pack: center;
|
||||
align-items: center;
|
||||
-ms-flex-align: center;
|
||||
min-width: 90px;
|
||||
min-height: 90px;
|
||||
max-width: 90px;
|
||||
max-height: 90px;
|
||||
}
|
||||
|
||||
.storelogo .filter img {
|
||||
max-width: 90px;
|
||||
max-height: 90px;
|
||||
aspect-ratio: auto;
|
||||
}
|
||||
|
||||
.storelogo .filter {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(254, 0.1);
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
-ms-flex-wrap: nowrap;
|
||||
align-content: center;
|
||||
-ms-flex-line-pack: center;
|
||||
justify-content: center;
|
||||
-ms-flex-pack: center;
|
||||
align-items: center;
|
||||
-ms-flex-align: center;
|
||||
}
|
||||
|
||||
.storelogo::after {
|
||||
border: 1px solid rgba(254, 254, 254, 0.1);
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.page>.content .functions {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
min-height: 10%;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
max-height: calc(100% - 10.5em);
|
||||
user-select: all;
|
||||
-ms-user-select: element;
|
||||
box-sizing: border-box;
|
||||
transition: width 0.5s cubic-bezier(0.1, 0.9, 0.2, 1), height 0.5s cubic-bezier(0.1, 0.9, 0.2, 1), top 0.5s cubic-bezier(0.1, 0.9, 0.2, 1), left 0.5s cubic-bezier(0.1, 0.9, 0.2, 1), right 0.5s cubic-bezier(0.1, 0.9, 0.2, 1), bottom 0.5s cubic-bezier(0.1, 0.9, 0.2, 1), margin 0.5s cubic-bezier(0.1, 0.9, 0.2, 1), padding 0.5s cubic-bezier(0.1, 0.9, 0.2, 1);
|
||||
list-style-position: outside;
|
||||
/*test*/
|
||||
border: 1px solid black;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.page>.progress {
|
||||
position: absolute;
|
||||
top: auto;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 100px;
|
||||
height: auto;
|
||||
padding: 0 24px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.progress * {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.page>.reason {
|
||||
position: absolute;
|
||||
top: auto;
|
||||
left: 0;
|
||||
bottom: 100px;
|
||||
height: auto;
|
||||
min-height: 10%;
|
||||
padding: 0 24px;
|
||||
box-sizing: border-box;
|
||||
max-height: calc(100% - 10.5em);
|
||||
width: 100%;
|
||||
transition: all 0.5s cubic-bezier(0.1, 0.9, 0.2, 1);
|
||||
}
|
||||
|
||||
.page>.reason p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.page>.reason textarea {
|
||||
width: 100%;
|
||||
height: calc(100% - 1.3em);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.moreinfo-content p {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.moreinfo-content table tbody tr td {
|
||||
border-bottom: 1px solid #ccc;
|
||||
border-left: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.page>* {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page.splash>.splash {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.page.loading,
|
||||
.page.select,
|
||||
.page.preinstall,
|
||||
.page.installing,
|
||||
.page.installsuccess,
|
||||
.page.installfailed {}
|
||||
|
||||
.page.loading>.content.loading {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
align-content: center;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 16pt;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.ring-loading {
|
||||
font-family: Setup, "Segoe Boot Semilight", "Segoe Boot Semilight";
|
||||
}
|
||||
|
||||
.page.select>.select {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.page.select>.controls.select,
|
||||
.page.installsuccess>.controls.installsuccess,
|
||||
.page.installfailed>.controls.installfailed {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.page.preinstall>.controls.preinstall,
|
||||
.page.installing>.controls.installing {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.page.select>.controls.select>.checkbox {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page.select>.controls.select>.command button:nth-of-type(2) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page.select>.content.select,
|
||||
.page.preinstall>.content.preinstall,
|
||||
.page.installing>.content.installing,
|
||||
.page.installsuccess>.content.installsuccess,
|
||||
.page.installfailed>.content.installfailed {
|
||||
padding: 24px 24px 0 24px;
|
||||
}
|
||||
|
||||
.page:not(.multiple) .multiple {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page.select>.content.select .multiple {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page.select>.content.select .storelogo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page.select>.content.select p,
|
||||
.page.select>.content.select br,
|
||||
.page.select>.content.select .functions,
|
||||
.page.select>.content.select .moreinfo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page.preinstall>.content.preinstall,
|
||||
.page.installing>.content.installing,
|
||||
.page.installsuccess>.content.installsuccess,
|
||||
.page.installfailed>.content.installfailed {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.page.installing>.progress.installing {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.page.installing>.content.installing {
|
||||
height: calc(100% - 200px);
|
||||
max-height: calc(100% - 24px);
|
||||
}
|
||||
|
||||
.page.installing>.content.installing .pkgfunctions-label,
|
||||
.page.installing>.content.installing .functions,
|
||||
.page.installing>.content.installing .moreinfo,
|
||||
.page.installsuccess>.content.installsuccess .pkgfunctions-label,
|
||||
.page.installsuccess>.content.installsuccess .functions,
|
||||
.page.installsuccess>.content.installsuccess .moreinfo,
|
||||
.page.installfailed>.content.installfailed .pkgfunctions-label,
|
||||
.page.installfailed>.content.installfailed .functions,
|
||||
.page.installfailed>.content.installfailed .moreinfo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page.installing>.controls.installing .command {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page.installsuccess>.content.installsuccess {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.page.installsuccess>.controls.installsuccess .checkbox,
|
||||
.page.installfailed>.controls.installfailed .checkbox {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page.installfailed>.reason {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.page.preinstall.multiple>.content.preinstall h1.pkgtitle,
|
||||
.page.installing.multiple>.content.installing h1.pkgtitle,
|
||||
.page.installsuccess.multiple>.content.installsuccess h1.pkgtitle,
|
||||
.page.installfailed.multiple>.content.installfailed h1.pkgtitle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page.installing.multiple>.content .currentfile label,
|
||||
.page.installing.multiple>.content .currentfile select,
|
||||
.page.installing.multiple>.content .currentfile br {
|
||||
display: none;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
.popup {
|
||||
width: 288px;
|
||||
height: 252px;
|
||||
position: absolute;
|
||||
box-sizing: border-box;
|
||||
max-width: 50%;
|
||||
max-height: 50%;
|
||||
padding: 20px;
|
||||
margin: 5px;
|
||||
background-color: white;
|
||||
overflow-x: auto;
|
||||
overflow-y: auto;
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
border: 2px solid black;
|
||||
}
|
||||
|
||||
.popup .content {
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.popup .content.with-ctrls {
|
||||
max-height: calc(100% - 40px);
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
@font-face
|
||||
{
|
||||
font-family: "Segoe UI Symbol";
|
||||
src: url('seguisym.eot') format('embedded-opentype'),
|
||||
url('seguisym.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face
|
||||
{
|
||||
font-family: "Segoe MDL2 Assets";
|
||||
src: url('segmdl2.eot') format('embedded-opentype'),
|
||||
url('segmdl2.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face
|
||||
{
|
||||
font-family: "Segoe Fluent Icons";
|
||||
src: url('SegoeIcons.eot') format('embedded-opentype'),
|
||||
url('SegoeIcons.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Setup";
|
||||
src: url('SETUP.EOT') format('embedded-opentype'),
|
||||
url('SETUP.TTF') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 429 B |
@@ -0,0 +1,112 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>App Installer</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="js/module.js"></script>
|
||||
<script type="text/javascript" src="js/polyfill-ie.js"></script>
|
||||
<link rel="stylesheet" href="libs/winjs/2.0/css/ui-light.css">
|
||||
<script type="text/javascript" src="libs/winjs/2.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="libs/winjs/2.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="js/color.js"></script>
|
||||
<script type="text/javascript" src="js/promise.js"></script>
|
||||
<script type="text/javascript" src="js/bridge.js"></script>
|
||||
<script type="text/javascript" src="js/dpimodes.js"></script>
|
||||
<script type="text/javascript" src="js/animation.js"></script>
|
||||
<link rel="stylesheet" href="fonts/fonts.css">
|
||||
<link rel="stylesheet" href="css/pages.css">
|
||||
<script type="text/javascript" src="js/event.js"></script>
|
||||
<script type="text/javascript" src="js/pages.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="page-container" class="pagecontainer full">
|
||||
<div class="page preinstall">
|
||||
<!-- Splash Screen -->
|
||||
<img class="splash" src="images/splash.default.png" alt="Splash Screen">
|
||||
<div class="content splash">
|
||||
<progress class="win-ring"></progress>
|
||||
</div>
|
||||
<!-- Loading... -->
|
||||
<div class="content loading">
|
||||
<span class="ring-loading"></span>
|
||||
<span>请稍候...</span>
|
||||
</div>
|
||||
<!-- Main Page -->
|
||||
<div class="content select preinstall installing installsuccess installfailed">
|
||||
<div style="width: 100%; box-sizing: border-box;" class="currentfile multiple">
|
||||
<h1 class="win-type-x-large">有多个包将要安装</h1><br />
|
||||
<label for="select-package" class="win-label">在这里请选择一个包查看信息。</label><br />
|
||||
<select id="select-package"></select><br />
|
||||
</div>
|
||||
<div class="storelogo">
|
||||
<div class="filter">
|
||||
<img src="images/splash.default.png" alt="App Store Logo">
|
||||
</div>
|
||||
</div>
|
||||
<h1 class="win-type-x-large pkgtitle">Install {Package Title}?</h1>
|
||||
<p class="pkgtitle multiple">{Package Title}</p>
|
||||
<p>Microsoft Store Application</p>
|
||||
<p class="pkgpublisher">Publisher: {Package Publisher}</p>
|
||||
<p class="pkgversion"> Version: {Package Version}</p><br />
|
||||
<p class="pkgfunctions-label"><span>Functions</span>: </p>
|
||||
<div class="functions">
|
||||
<ul>
|
||||
<li>使用全部的系统资源</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a class="moreinfo">更多信息</a>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var monitor = Windows.UI.Event.Monitor;
|
||||
var page = document.querySelector(".page");
|
||||
var content = page.querySelector(".content.preinstall");
|
||||
var functions = page.querySelector(".functions");
|
||||
var funculist = functions.querySelector("ul");
|
||||
|
||||
function sizeChangeEvent(e) {
|
||||
var height = content.getBoundingClientRect().height;
|
||||
var top = functions.getBoundingClientRect().top;
|
||||
var newheight = parseInt((height - top - 10));
|
||||
var listheight = (funculist.scrollHeight || funculist.offsetHeight || funculist.clientHeight || funculist.getBoundingClientRect().height || 10) + 20;
|
||||
console.log(newheight, listheight);
|
||||
if (newheight > listheight) newheight = listheight;
|
||||
functions.style.height = newheight + "px";
|
||||
}
|
||||
var deb_sizechange = debounce(sizeChangeEvent, 500);
|
||||
monitor.observe(content, Windows.UI.Event.Monitor.EventType.resize, deb_sizechange);
|
||||
monitor.observe(content, Windows.UI.Event.Monitor.EventType.position, deb_sizechange);
|
||||
monitor.observe(funculist, Windows.UI.Event.Monitor.EventType.child, deb_sizechange);
|
||||
setTimeout(sizeChangeEvent, 0);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div class="progress installing">
|
||||
<div>
|
||||
<span class="ring-loading"></span> <span class="status">Installing... 0%</span>
|
||||
</div>
|
||||
<progress min="0" max="100" value="50" class="win-progress-bar"></progress>
|
||||
</div>
|
||||
<div class="reason installfailed">
|
||||
<p><span>Reason</span>: </p>
|
||||
<textarea class="win-textarea" readonly></textarea>
|
||||
</div>
|
||||
<div class="controls select preinstall installing installsuccess installfailed">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" id="preinst-enablelaunch" class="win-checkbox">
|
||||
<label for="preinst-enablelaunch">Launch app after installation</label>
|
||||
</div>
|
||||
<div class="command">
|
||||
<button>Install</button>
|
||||
<button>Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,188 @@
|
||||
(function() {
|
||||
"use strict";
|
||||
|
||||
var AnimationKeyFrames = {
|
||||
// 弹出(从边缘)
|
||||
Flyout: new(function Flyout() {
|
||||
if (this._instance) { return this._instance; }
|
||||
this._instance = this;
|
||||
// 向顶端
|
||||
this.toTop = "WinJS-showFlyoutTop";
|
||||
// 向底端
|
||||
this.toBottom = "WinJS-showFlyoutBottom";
|
||||
// 向左
|
||||
this.toLeft = "WinJS-showFlyoutLeft";
|
||||
// 向右
|
||||
this.toRight = "WinJS-showFlyoutRight";
|
||||
// 从底端(别名,向顶端)
|
||||
this.fromBottom = this.toTop;
|
||||
// 从顶端(别名,向底端)
|
||||
this.fromTop = this.toBottom;
|
||||
// 从左侧
|
||||
this.fromLeft = this.toRight;
|
||||
// 从右侧
|
||||
this.fromRight = this.toLeft;
|
||||
})(),
|
||||
// WinJS 内部使用,建议不用这个
|
||||
Progress: {
|
||||
fadeOut: "win-progress-fade-out"
|
||||
},
|
||||
// WinJS 内部使用,对于搜索框弹出搜索推荐
|
||||
SearchBox: {
|
||||
// 显示搜索推荐
|
||||
showPopup: {
|
||||
flyoutBelow: "WinJS-flyoutBelowSearchBox-showPopup",
|
||||
flyoutAbove: "WinJS-flyoutAboveSearchBox-showPopup"
|
||||
}
|
||||
},
|
||||
// 渐变
|
||||
Opacity: {
|
||||
// 显示
|
||||
visible: "WinJS-opacity-in",
|
||||
// 消失
|
||||
hidden: "WinJS-opacity-out"
|
||||
},
|
||||
// 缩放
|
||||
Scale: {
|
||||
// 放大一点
|
||||
up: "WinJS-scale-up",
|
||||
// 缩小一点
|
||||
down: "WinJS-scale-down"
|
||||
},
|
||||
// 默认分类
|
||||
Default: {
|
||||
// 从右返回
|
||||
remove: "WinJS-default-remove",
|
||||
// 从左返回
|
||||
removertl: "WinJS-default-remove-rtl",
|
||||
// 向右移动
|
||||
apply: "WinJS-default-apply",
|
||||
// 向左移动
|
||||
applyrtl: "WinJS-default-apply-rtl"
|
||||
},
|
||||
// 从边缘
|
||||
Edge: {
|
||||
// 从顶部
|
||||
show: "WinJS-showEdgeUI",
|
||||
// 到顶部
|
||||
hide: "WinJS-hideEdgeUI"
|
||||
},
|
||||
Panel: {
|
||||
// 从右侧
|
||||
show: "WinJS-showPanel",
|
||||
// 从左侧
|
||||
showrtl: "WinJS-showPanel-rtl",
|
||||
// 到右侧
|
||||
hide: "WinJS-hidePanel",
|
||||
// 到左侧
|
||||
hidertl: "WinJS-hidePanel-rtl"
|
||||
},
|
||||
Popup: {
|
||||
show: "WinJS-showPopup"
|
||||
},
|
||||
// 对元素的拖放
|
||||
Drag: {
|
||||
// 从右复位
|
||||
sourceEnd: "WinJS-dragSourceEnd",
|
||||
// 从左复位
|
||||
sourceEndRtl: "WinJS-dragSourceEnd-rtl"
|
||||
},
|
||||
// 进入内容
|
||||
Content: {
|
||||
// 从右进入
|
||||
enter: "WinJS-enterContent",
|
||||
// 从左进入
|
||||
enterrtl: "WinJS-enterContent-rtl"
|
||||
},
|
||||
Page: {
|
||||
// 从右进入
|
||||
enter: "WinJS-enterPage",
|
||||
// 从左进入
|
||||
enterrtl: "WinJS-enterPage-rtl"
|
||||
},
|
||||
Exit: "WinJS-exit",
|
||||
UpdateBadge: "WinJS-updateBadge"
|
||||
};
|
||||
Object.freeze(AnimationKeyFrames);
|
||||
/**
|
||||
* 生成用于 element.style.animation 的字符串
|
||||
* @param {string} swKeyFrames - 动画关键帧名称
|
||||
* @param {number} uMillisecond - 动画持续时间(毫秒)
|
||||
* @param {string} [swTimingFunc] - 缓动函数,默认 cubic-bezier(0.1, 0.9, 0.2, 1)
|
||||
* @param {number} [uDelayMs] - 延迟时间(毫秒),默认 0
|
||||
* @param {string} [swIteration] - 播放次数,默认 "1"
|
||||
* @param {string} [swDirection] - 播放方向,默认 "normal"
|
||||
* @param {string} [swFillMode] - 填充模式,默认 "forwards"
|
||||
* @param {string} [swPlayState] - 播放状态,默认 ""
|
||||
* @returns {string} 可直接赋给 element.style.animation
|
||||
*/
|
||||
function generateAnimeString(swKeyFrames, uMillisecond, swTimingFunc, uDelayMs, swIteration, swDirection, swFillMode, swPlayState) {
|
||||
// 默认参数
|
||||
if (!swTimingFunc) { swTimingFunc = "cubic-bezier(0.1, 0.9, 0.2, 1)"; }
|
||||
if (!uDelayMs) { uDelayMs = 0; }
|
||||
if (!swIteration) { swIteration = "1"; }
|
||||
if (!swDirection) { swDirection = "normal"; }
|
||||
if (!swFillMode) { swFillMode = "forwards"; }
|
||||
if (!swPlayState) { swPlayState = ""; }
|
||||
if (!uMillisecond) { uMillisecond = 500; }
|
||||
if (!swKeyFrames) { swKeyFrames = AnimationKeyFrames.Flyout.toLeft; }
|
||||
// 毫秒转秒
|
||||
var swDuration = (uMillisecond * 0.001) + "s";
|
||||
var swDelay = (uDelayMs * 0.001) + "s";
|
||||
// 拼接函数
|
||||
function buildOne(name) {
|
||||
return name + " " +
|
||||
swDuration + " " +
|
||||
swTimingFunc + " " +
|
||||
swDelay + " " +
|
||||
swIteration + " " +
|
||||
swDirection + " " +
|
||||
swFillMode +
|
||||
(swPlayState ? (" " + swPlayState) : "");
|
||||
}
|
||||
var swResult = "";
|
||||
if (typeof swKeyFrames === "string") {
|
||||
swResult = buildOne(swKeyFrames);
|
||||
} else if (swKeyFrames instanceof Array) {
|
||||
var parts = [];
|
||||
for (var i = 0; i < swKeyFrames.length; i++) {
|
||||
parts.push(buildOne(swKeyFrames[i]));
|
||||
}
|
||||
swResult = parts.join(", ");
|
||||
}
|
||||
return swResult;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
Windows: {
|
||||
UI: {
|
||||
Animation: {
|
||||
Keyframes: AnimationKeyFrames,
|
||||
Animation: generateAnimeString,
|
||||
/**
|
||||
* 异步设置动画,返回一个 Promise 对象,动画结束后会执行
|
||||
* @param {HTMLElement} element 元素节点
|
||||
* @param {string|Array <string>} swKeyFrames 动画关键帧名称
|
||||
* @param {number} uMillisecond 动画持续时间(毫秒)
|
||||
* @param {string} [swTimingFunc] 缓动函数,默认 cubic-bezier(0.1, 0.9, 0.2, 1)
|
||||
* @param {number} [uDelayMs] 延迟时间(毫秒),默认 0
|
||||
* @param {string} [swIteration] 播放次数,默认 "1"
|
||||
* @param {string} [swDirection] 播放方向,默认 "normal"
|
||||
* @param {string} [swFillMode] 填充模式,默认 "forwards"
|
||||
* @param {string} [swPlayState] 播放状态,默认 ""
|
||||
* @returns {Promise}
|
||||
*/
|
||||
RunAsync: function(element, swKeyFrames, uMillisecond, swTimingFunc, uDelayMs, swIteration, swDirection, swFillMode, swPlayState) {
|
||||
return new WinJS.Promise(function(complete) {
|
||||
element.style.animation = generateAnimeString(swKeyFrames, uMillisecond, swTimingFunc, uDelayMs, swIteration, swDirection, swFillMode, swPlayState);
|
||||
element.addEventListener("animationend", function() {
|
||||
element.style.animation = "";
|
||||
complete();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
})();
|
||||
@@ -0,0 +1,41 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
var ext = global.external;
|
||||
|
||||
function blankFunc(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) {
|
||||
console.log("blankFunc called with arguments: " + arg1 + ", " + arg2 + ", " + arg3 + ", " + arg4 + ", " + arg5 + ", " + arg6 + ", " + arg7 + ", " + arg8 + ", " + arg9 + ", " + arg10);
|
||||
}
|
||||
|
||||
global.Bridge = {
|
||||
External: ext,
|
||||
Frame: {
|
||||
isIe10: function() { return ext.IEFrame.Version === 10; },
|
||||
isIe11: function() { return ext.IEFrame.Version === 11; }
|
||||
},
|
||||
UI: {},
|
||||
String: {
|
||||
trim: function(str) { return ext.String.Trim(str); },
|
||||
tolower: function(str) { return ext.String.ToLower(str); },
|
||||
toupper: function(str) { return ext.String.ToUpper(str); },
|
||||
},
|
||||
NString: {
|
||||
equals: function(str1, str2) { return ext.String.NString.NEquals(str1, str2); },
|
||||
compare: function(str1, str2) { return ext.String.NString.Compare(str1, str2); },
|
||||
empty: function(str) { return ext.String.NString.Empty(str); },
|
||||
length: function(str) { return ext.String.NString.Length(str); },
|
||||
}
|
||||
}
|
||||
Object.defineProperty(global.Bridge.Frame, "scale", {
|
||||
get: function() { return ext.IEFrame.Scale; },
|
||||
set: function(value) { ext.IEFrame.Scale = value; return ext.IEFrame.Scale; }
|
||||
});
|
||||
Object.defineProperty(global.Bridge.Frame, "version", {
|
||||
get: function() { return ext.IEFrame.Version; },
|
||||
});
|
||||
Object.defineProperty(global.Bridge.UI, "dpiPercent", {
|
||||
get: function() { return ext.System.UI.DPIPercent; }
|
||||
});
|
||||
Object.defineProperty(global.Bridge.UI, "dpi", {
|
||||
get: function() { return ext.System.UI.DPI; }
|
||||
});
|
||||
})(this);
|
||||
@@ -0,0 +1,463 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
function RGB(parent) {
|
||||
Object.defineProperty(this, "red", {
|
||||
get: function() { return parent.red; },
|
||||
set: function(value) { parent.red = value; }
|
||||
});
|
||||
Object.defineProperty(this, "green", {
|
||||
get: function() { return parent.green; },
|
||||
set: function(value) { parent.green = value; }
|
||||
});
|
||||
Object.defineProperty(this, "blue", {
|
||||
get: function() { return parent.blue; },
|
||||
set: function(value) { parent.blue = value; }
|
||||
});
|
||||
this.toString = function() { return "rgb(" + parent.red + "," + parent.green + "," + parent.blue + ")"; };
|
||||
this.valueOf = function() { return parent.valueOf(); };
|
||||
this.convert = function(type) { return new type(parent); };
|
||||
Object.defineProperty(this, "hex", {
|
||||
get: function() { return parent.hex; },
|
||||
set: function(value) { parent.hex = value; }
|
||||
});
|
||||
Object.defineProperty(this, "color", {
|
||||
get: function() { return parent; }
|
||||
});
|
||||
}
|
||||
|
||||
function RGBA(parent) {
|
||||
parent.RGB.constructor.call(this, parent);
|
||||
Object.defineProperty(this, "alpha", {
|
||||
get: function() { return parent.alpha; },
|
||||
set: function(value) { parent.alpha = value; }
|
||||
});
|
||||
this.toString = function() { return "rgba(" + parent.red + "," + parent.green + "," + parent.blue + "," + (parent.alpha / 255).toFixed(2) + ")"; };
|
||||
this.valueOf = function() { return parent.valueOf(); };
|
||||
}
|
||||
|
||||
function HSL(parent) {
|
||||
parent.RGB.constructor.call(this, parent);
|
||||
/**
|
||||
* @type {number} 色调 0 - 360
|
||||
*/
|
||||
Object.defineProperty(this, "hue", {
|
||||
get: function() {
|
||||
var r = parent.red / 255,
|
||||
g = parent.green / 255,
|
||||
b = parent.blue / 255;
|
||||
var max = Math.max(r, g, b),
|
||||
min = Math.min(r, g, b);
|
||||
var h, s, l = (max + min) / 2;
|
||||
if (max == min) {
|
||||
h = s = 0; // achromatic
|
||||
} else {
|
||||
var d = max - min;
|
||||
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
||||
switch (max) {
|
||||
case r:
|
||||
h = (g - b) / d + (g < b ? 6 : 0);
|
||||
break;
|
||||
case g:
|
||||
h = (b - r) / d + 2;
|
||||
break;
|
||||
case b:
|
||||
h = (r - g) / d + 4;
|
||||
break;
|
||||
}
|
||||
h /= 6;
|
||||
}
|
||||
return h * 360;
|
||||
},
|
||||
set: function(value) {
|
||||
var r = parent.red / 255,
|
||||
g = parent.green / 255,
|
||||
b = parent.blue / 255;
|
||||
var max = Math.max(r, g, b),
|
||||
min = Math.min(r, g, b);
|
||||
var h = value / 360,
|
||||
s = (max == 0 ? 0 : (max - min) / (max + min)),
|
||||
l = (max + min) / 2;
|
||||
if (s == 0) {
|
||||
r = g = b = l; // achromatic
|
||||
} else {
|
||||
var hue2rgb = function hue2rgb(p, q, t) {
|
||||
if (t < 0) t += 1;
|
||||
if (t > 1) t -= 1;
|
||||
if (t < 1 / 6) return p + (q - p) * 6 * t;
|
||||
if (t < 1 / 2) return q;
|
||||
if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
|
||||
return p;
|
||||
};
|
||||
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
||||
var p = 2 * l - q;
|
||||
r = hue2rgb(p, q, h + 1 / 3);
|
||||
g = hue2rgb(p, q, h);
|
||||
b = hue2rgb(p, q, h - 1 / 3);
|
||||
}
|
||||
parent.red = Math.round(r * 255);
|
||||
parent.green = Math.round(g * 255);
|
||||
parent.blue = Math.round(b * 255);
|
||||
}
|
||||
});
|
||||
/**
|
||||
* @type {number} 饱和度 0 - 1
|
||||
*/
|
||||
Object.defineProperty(this, "saturation", {
|
||||
get: function() {
|
||||
var r = parent.red / 255,
|
||||
g = parent.green / 255,
|
||||
b = parent.blue / 255;
|
||||
var max = Math.max(r, g, b),
|
||||
min = Math.min(r, g, b);
|
||||
var h, s, l = (max + min) / 2;
|
||||
if (max == min) {
|
||||
s = 0; // achromatic
|
||||
} else {
|
||||
var d = max - min;
|
||||
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
||||
}
|
||||
return s;
|
||||
},
|
||||
set: function(value) {
|
||||
var r = parent.red / 255,
|
||||
g = parent.green / 255,
|
||||
b = parent.blue / 255;
|
||||
var max = Math.max(r, g, b),
|
||||
min = Math.min(r, g, b);
|
||||
var h = parent.hue / 360,
|
||||
s = value,
|
||||
l = (max + min) / 2;
|
||||
if (s == 0) {
|
||||
r = g = b = l; // achromatic
|
||||
} else {
|
||||
var hue2rgb = function hue2rgb(p, q, t) {
|
||||
if (t < 0) t += 1;
|
||||
if (t > 1) t -= 1;
|
||||
if (t < 1 / 6) return p + (q - p) * 6 * t;
|
||||
if (t < 1 / 2) return q;
|
||||
if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
|
||||
return p;
|
||||
};
|
||||
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
||||
var p = 2 * l - q;
|
||||
r = hue2rgb(p, q, h + 1 / 3);
|
||||
g = hue2rgb(p, q, h);
|
||||
b = hue2rgb(p, q, h - 1 / 3);
|
||||
}
|
||||
parent.red = Math.round(r * 255);
|
||||
parent.green = Math.round(g * 255);
|
||||
parent.blue = Math.round(b * 255);
|
||||
}
|
||||
});
|
||||
/**
|
||||
* @type {number} 亮度 0 - 1
|
||||
*/
|
||||
Object.defineProperty(this, "lightness", {
|
||||
get: function() {
|
||||
var r = parent.red / 255,
|
||||
g = parent.green / 255,
|
||||
b = parent.blue / 255;
|
||||
var max = Math.max(r, g, b),
|
||||
min = Math.min(r, g, b);
|
||||
var h, s, l = (max + min) / 2;
|
||||
return l;
|
||||
},
|
||||
set: function(value) {
|
||||
var r = parent.red / 255,
|
||||
g = parent.green / 255,
|
||||
b = parent.blue / 255;
|
||||
var max = Math.max(r, g, b),
|
||||
min = Math.min(r, g, b);
|
||||
var h = parent.hue / 360,
|
||||
s = parent.saturation,
|
||||
l = value;
|
||||
if (s == 0) {
|
||||
r = g = b = l; // achromatic
|
||||
} else {
|
||||
var hue2rgb = function hue2rgb(p, q, t) {
|
||||
if (t < 0) t += 1;
|
||||
if (t > 1) t -= 1;
|
||||
if (t < 1 / 6) return p + (q - p) * 6 * t;
|
||||
if (t < 1 / 2) return q;
|
||||
if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
|
||||
return p;
|
||||
};
|
||||
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
||||
var p = 2 * l - q;
|
||||
r = hue2rgb(p, q, h + 1 / 3);
|
||||
g = hue2rgb(p, q, h);
|
||||
b = hue2rgb(p, q, h - 1 / 3);
|
||||
}
|
||||
parent.red = Math.round(r * 255);
|
||||
parent.green = Math.round(g * 255);
|
||||
parent.blue = Math.round(b * 255);
|
||||
}
|
||||
});
|
||||
this.toString = function() { return "hsl(" + this.hue + "," + (this.saturation * 100).toFixed(2) + "%," + (this.lightness * 100).toFixed(2) + "%)"; };
|
||||
this.valueOf = function() { return parent.valueOf(); };
|
||||
}
|
||||
|
||||
function HSLA(parent) {
|
||||
parent.HSL.constructor.call(this, parent);
|
||||
Object.defineProperty(this, "alpha", {
|
||||
get: function() { return parent.alpha; },
|
||||
set: function(value) { parent.alpha = value; }
|
||||
});
|
||||
this.toString = function() { return "hsla(" + this.hue + "," + (this.saturation * 100).toFixed(2) + "%," + (this.lightness * 100).toFixed(2) + "%," + (parent.alpha / 255).toFixed(2) + ")"; };
|
||||
this.valueOf = function() { return parent.valueOf(); };
|
||||
}
|
||||
|
||||
function HWB(parent) {
|
||||
parent.RGB.constructor.call(this, parent);
|
||||
/**
|
||||
* @type {number} 色调 0 - 360
|
||||
*/
|
||||
Object.defineProperty(this, "hue", {
|
||||
get: function() {
|
||||
var r = parent.red / 255,
|
||||
g = parent.green / 255,
|
||||
b = parent.blue / 255;
|
||||
var max = Math.max(r, g, b),
|
||||
min = Math.min(r, g, b);
|
||||
var h, w, b = (max + min) / 2;
|
||||
if (max == min) {
|
||||
h = w = 0; // achromatic
|
||||
} else {
|
||||
var d = max - min;
|
||||
w = (max == 0 ? 0 : d / max);
|
||||
switch (max) {
|
||||
case r:
|
||||
h = (g - b) / d + (g < b ? 6 : 0);
|
||||
break;
|
||||
case g:
|
||||
h = (b - r) / d + 2;
|
||||
break;
|
||||
case b:
|
||||
h = (r - g) / d + 4;
|
||||
break;
|
||||
}
|
||||
h /= 6;
|
||||
}
|
||||
return h * 360;
|
||||
},
|
||||
set: function(value) {
|
||||
var r = parent.red / 255,
|
||||
g = parent.green / 255,
|
||||
b = parent.blue / 255;
|
||||
var max = Math.max(r, g, b),
|
||||
min = Math.min(r, g, b);
|
||||
var h = value / 360,
|
||||
w = parent.white,
|
||||
b = (1 - w) * max;
|
||||
if (max == min) {
|
||||
r = g = b = max; // achromatic
|
||||
} else {
|
||||
var hue2rgb = function hue2rgb(p, q, t) {
|
||||
if (t < 0) t += 1;
|
||||
if (t > 1) t -= 1;
|
||||
if (t < 1 / 6) return p + (q - p) * 6 * t;
|
||||
if (t < 1 / 2) return q;
|
||||
if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
|
||||
return p;
|
||||
};
|
||||
var q = b < 0.5 ? b * (1 + w) : b + w - b * w;
|
||||
var p = 2 * b - q;
|
||||
r = hue2rgb(p, q, h + 1 / 3);
|
||||
g = hue2rgb(p, q, h);
|
||||
b = hue2rgb(p, q, h - 1 / 3);
|
||||
}
|
||||
parent.red = Math.round(r * 255);
|
||||
parent.green = Math.round(g * 255);
|
||||
parent.blue = Math.round(b * 255);
|
||||
}
|
||||
});
|
||||
/**
|
||||
* @type {number} 白色分量 0 - 1
|
||||
*/
|
||||
Object.defineProperty(this, "white", {
|
||||
get: function() {
|
||||
var r = parent.red / 255,
|
||||
g = parent.green / 255,
|
||||
b = parent.blue / 255;
|
||||
var max = Math.max(r, g, b),
|
||||
min = Math.min(r, g, b);
|
||||
var h, w, b = (max + min) / 2;
|
||||
if (max == min) {
|
||||
w = 0; // achromatic
|
||||
} else {
|
||||
var d = max - min;
|
||||
w = (max == 0 ? 0 : d / max);
|
||||
}
|
||||
return w;
|
||||
},
|
||||
set: function(value) {
|
||||
var r = parent.red / 255,
|
||||
g = parent.green / 255,
|
||||
b = parent.blue / 255;
|
||||
var max = Math.max(r, g, b),
|
||||
min = Math.min(r, g, b);
|
||||
var h = parent.hue / 360,
|
||||
w = value,
|
||||
b = (1 - w) * max;
|
||||
if (max == min) {
|
||||
r = g = b = max; // achromatic
|
||||
} else {
|
||||
var hue2rgb = function hue2rgb(p, q, t) {
|
||||
if (t < 0) t += 1;
|
||||
if (t > 1) t -= 1;
|
||||
if (t < 1 / 6) return p + (q - p) * 6 * t;
|
||||
if (t < 1 / 2) return q;
|
||||
if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
|
||||
return p;
|
||||
};
|
||||
var q = b < 0.5 ? b * (1 + w) : b + w - b * w;
|
||||
var p = 2 * b - q;
|
||||
r = hue2rgb(p, q, h + 1 / 3);
|
||||
g = hue2rgb(p, q, h);
|
||||
b = hue2rgb(p, q, h - 1 / 3);
|
||||
}
|
||||
parent.red = Math.round(r * 255);
|
||||
parent.green = Math.round(g * 255);
|
||||
parent.blue = Math.round(b * 255);
|
||||
}
|
||||
});
|
||||
Object.defineProperty(this, "black", {
|
||||
get: function() {
|
||||
var r = parent.red / 255,
|
||||
g = parent.green / 255,
|
||||
b = parent.blue / 255;
|
||||
var max = Math.max(r, g, b),
|
||||
min = Math.min(r, g, b);
|
||||
var h, w, b = (max + min) / 2;
|
||||
if (max == min) {
|
||||
w = 0; // achromatic
|
||||
} else {
|
||||
var d = max - min;
|
||||
w = (max == 0 ? 0 : d / max);
|
||||
}
|
||||
return 1 - w;
|
||||
},
|
||||
set: function(value) {
|
||||
var r = parent.red / 255,
|
||||
g = parent.green / 255,
|
||||
b = parent.blue / 255;
|
||||
var max = Math.max(r, g, b),
|
||||
min = Math.min(r, g, b);
|
||||
var h = parent.hue / 360,
|
||||
w = 1 - value,
|
||||
b = (1 - w) * max;
|
||||
if (max == min) {
|
||||
r = g = b = max; // achromatic
|
||||
} else {
|
||||
var hue2rgb = function hue2rgb(p, q, t) {
|
||||
if (t < 0) t += 1;
|
||||
if (t > 1) t -= 1;
|
||||
if (t < 1 / 6) return p + (q - p) * 6 * t;
|
||||
if (t < 1 / 2) return q;
|
||||
if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
|
||||
return p;
|
||||
};
|
||||
var q = b < 0.5 ? b * (1 + w) : b + w - b * w;
|
||||
var p = 2 * b - q;
|
||||
r = hue2rgb(p, q, h + 1 / 3);
|
||||
g = hue2rgb(p, q, h);
|
||||
b = hue2rgb(p, q, h - 1 / 3);
|
||||
}
|
||||
parent.red = Math.round(r * 255);
|
||||
parent.green = Math.round(g * 255);
|
||||
parent.blue = Math.round(b * 255);
|
||||
}
|
||||
});
|
||||
Object.defineProperty(this, "alpha", {
|
||||
get: function() { return parent.alpha; },
|
||||
set: function(value) { parent.alpha = value; }
|
||||
});
|
||||
this.toString = function() {
|
||||
if (parent.alpha == 255) {
|
||||
return "hwb(" + this.hue + "," + (this.white * 100).toFixed(2) + "%," + (this.black * 100).toFixed(2) + "%)";
|
||||
} else {
|
||||
return "hwb(" + this.hue + "," + (this.white * 100).toFixed(2) + "%," + (this.black * 100).toFixed(2) + "% / " + (parent.alpha / 255).toFixed(2) + ")";
|
||||
}
|
||||
};
|
||||
this.valueOf = function() { return parent.valueOf(); };
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param {number} red 红色通道值 0-255
|
||||
* @param {number} green 绿色通道值 0-255
|
||||
* @param {number} blue 蓝色通道值 0-255
|
||||
* @param {number} alpha 透明度通道值 0-255
|
||||
*/
|
||||
function Color(red, green, blue, alpha) {
|
||||
red = red & 0xFF;
|
||||
green = green & 0xFF;
|
||||
blue = blue & 0xFF;
|
||||
alpha = (typeof alpha === "undefined") ? 255 : (alpha & 0xFF);
|
||||
this.rgbData = (red << 16) | (green << 8) | blue;
|
||||
this.alpha = alpha;
|
||||
// 红色通道
|
||||
Object.defineProperty(this, "red", {
|
||||
get: function() { return (this.rgbData >>> 16) & 0xFF; },
|
||||
set: function(value) { this.rgbData = ((value & 0xFF) << 16) | (this.rgbData & 0x00FFFF); }
|
||||
});
|
||||
// 绿色通道
|
||||
Object.defineProperty(this, "green", {
|
||||
get: function() { return (this.rgbData >>> 8) & 0xFF; },
|
||||
set: function(value) { this.rgbData = (this.rgbData & 0xFF00FF) | ((value & 0xFF) << 8); }
|
||||
});
|
||||
// 蓝色通道
|
||||
Object.defineProperty(this, "blue", {
|
||||
get: function() { return this.rgbData & 0xFF; },
|
||||
set: function(value) { this.rgbData = (this.rgbData & 0xFFFF00) | (value & 0xFF); }
|
||||
});
|
||||
// Alpha 通道单独存储
|
||||
Object.defineProperty(this, "alpha", {
|
||||
get: function() { return this._alpha; },
|
||||
set: function(value) { this._alpha = value & 0xFF; }
|
||||
});
|
||||
// hex 属性
|
||||
Object.defineProperty(this, "hex", {
|
||||
get: function() {
|
||||
function padZero(str, length) {
|
||||
while (str.length < length) str = "0" + str;
|
||||
return str;
|
||||
}
|
||||
var r = padZero(this.red.toString(16), 2),
|
||||
g = padZero(this.green.toString(16), 2),
|
||||
b = padZero(this.blue.toString(16), 2),
|
||||
a = padZero(this.alpha.toString(16), 2);
|
||||
return this.alpha === 255 ? "#" + r + g + b : "#" + r + g + b + a;
|
||||
},
|
||||
set: function(value) {
|
||||
var hex = value.replace(/^#/, "");
|
||||
if (hex.length === 3) hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
|
||||
if (hex.length === 6) hex = hex + "ff";
|
||||
if (hex.length === 8) {
|
||||
this.red = parseInt(hex.substr(0, 2), 16);
|
||||
this.green = parseInt(hex.substr(2, 2), 16);
|
||||
this.blue = parseInt(hex.substr(4, 2), 16);
|
||||
this.alpha = parseInt(hex.substr(6, 2), 16);
|
||||
}
|
||||
}
|
||||
});
|
||||
this.toString = function() { return this.hex; };
|
||||
this.valueOf = function() {
|
||||
function padZero(str, length) {
|
||||
while (str.length < length) str = "0" + str;
|
||||
return str;
|
||||
}
|
||||
var r = padZero(this.red.toString(16), 2),
|
||||
g = padZero(this.green.toString(16), 2),
|
||||
b = padZero(this.blue.toString(16), 2),
|
||||
a = padZero(this.alpha.toString(16), 2);
|
||||
return "#" + r + g + b + a;
|
||||
};
|
||||
this.RGB = new RGB(this);
|
||||
this.RGBA = new RGBA(this);
|
||||
this.HSL = new HSL(this);
|
||||
this.HSLA = new HSLA(this);
|
||||
this.HWB = new HWB(this);
|
||||
}
|
||||
module.exports = { Color: Color };
|
||||
})(this);
|
||||
@@ -0,0 +1,178 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
var highDpiMode = 0; // 默认不进行转换
|
||||
var dpiValue = 1.0; // 默认 100%
|
||||
|
||||
function IsIeVersionElder() {
|
||||
return Bridge.Frame.version < 11;
|
||||
}
|
||||
// 0 - 不使用
|
||||
// 1 - 转换为 px
|
||||
// 2 - 转换为 pt
|
||||
function setHighDpiMode(modeType) {
|
||||
highDpiMode = modeType;
|
||||
refreshModeDisplay();
|
||||
}
|
||||
|
||||
function refreshModeDisplay() {
|
||||
switch (highDpiMode) {
|
||||
case 1:
|
||||
convertAllPtToPx();
|
||||
break;
|
||||
case 2:
|
||||
convertAllPxToPt();
|
||||
break;
|
||||
}
|
||||
var images = document.getElementsByTagName('img');
|
||||
for (var i = 0; i < images.length; i++) {
|
||||
var img = images[i];
|
||||
var parent = img.parentElement;
|
||||
if (!parent) continue;
|
||||
var parentWidth = parent.offsetWidth;
|
||||
var parentHeight = parent.offsetHeight;
|
||||
var scaledWidth = img.naturalWidth * dpiValue;
|
||||
var scaledHeight = img.naturalHeight * dpiValue;
|
||||
if (scaledWidth > parentWidth || scaledHeight > parentHeight) {
|
||||
img.style.transform = 'none';
|
||||
} else {
|
||||
img.style.transform = 'scale(' + dpiValue + ')';
|
||||
}
|
||||
// console.log('Image:', img, 'Parent Size:', parentWidth, parentHeight, 'Scaled:', scaledWidth, scaledHeight, 'Transform:', img.style.transform);
|
||||
}
|
||||
if (IsIeVersionElder && IsIeVersionElder()) {
|
||||
var contentElements = document.getElementsByClassName('content');
|
||||
var controlElements = document.getElementsByClassName('control-column-bottom');
|
||||
if (controlElements.length === 0 || contentElements.length === 0) {
|
||||
console.error('未找到相应元素');
|
||||
} else {
|
||||
var controlElement = controlElements[0];
|
||||
var vheight = controlElement.currentStyle ?
|
||||
controlElement.currentStyle.height :
|
||||
window.getComputedStyle(controlElement).height;
|
||||
for (var i = 0; i < contentElements.length; i++) {
|
||||
var element = contentElements[i];
|
||||
element.style.height = 'calc(100% - ' + vheight + ')';
|
||||
// console.log('Set height of', element, 'to', 'calc(100% - ' + vheight + ')');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function convertAllPtToPx() {
|
||||
var conversionFactor = 96 / 72;
|
||||
var allElements = document.getElementsByTagName("*");
|
||||
for (var i = 0; i < allElements.length; i++) {
|
||||
var el = allElements[i];
|
||||
if (el.style && el.style.cssText) {
|
||||
el.style.cssText = el.style.cssText.replace(/(\d+(\.\d+)?)pt/g, function(match, p1) {
|
||||
var pxValue = parseFloat(p1) * conversionFactor;
|
||||
return pxValue + "px";
|
||||
});
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < document.styleSheets.length; i++) {
|
||||
var styleSheet = document.styleSheets[i];
|
||||
try {
|
||||
var rules = styleSheet.cssRules || styleSheet.rules;
|
||||
if (rules) {
|
||||
for (var j = 0; j < rules.length; j++) {
|
||||
var rule = rules[j];
|
||||
if (rule.style) {
|
||||
for (var k = 0; k < rule.style.length; k++) {
|
||||
var propertyName = rule.style[k];
|
||||
var value = rule.style.getPropertyValue(propertyName);
|
||||
if (value.indexOf("pt") !== -1) {
|
||||
var newValue = value.replace(/(\d+(\.\d+)?)pt/g, function(match, p1) {
|
||||
var pxValue = parseFloat(p1) * conversionFactor;
|
||||
return pxValue + "px";
|
||||
});
|
||||
var priority = (rule.style.getPropertyPriority) ? rule.style.getPropertyPriority(propertyName) : "";
|
||||
rule.style.setProperty(propertyName, newValue, priority);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn("Could not access stylesheet", styleSheet.href, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function convertAllPxToPt() {
|
||||
var conversionFactor = 72 / 96;
|
||||
var allElements = document.getElementsByTagName("*");
|
||||
for (var i = 0; i < allElements.length; i++) {
|
||||
var el = allElements[i];
|
||||
if (el.style && el.style.cssText) {
|
||||
el.style.cssText = el.style.cssText.replace(/(\d+(\.\d+)?)px/g, function(match, p1) {
|
||||
var pxValue = parseFloat(p1) * conversionFactor;
|
||||
return pxValue + "pt";
|
||||
});
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < document.styleSheets.length; i++) {
|
||||
var styleSheet = document.styleSheets[i];
|
||||
try {
|
||||
var rules = styleSheet.cssRules || styleSheet.rules;
|
||||
if (rules) {
|
||||
for (var j = 0; j < rules.length; j++) {
|
||||
var rule = rules[j];
|
||||
if (rule.style) {
|
||||
for (var k = 0; k < rule.style.length; k++) {
|
||||
var propertyName = rule.style[k];
|
||||
var value = rule.style.getPropertyValue(propertyName);
|
||||
if (value.indexOf("px") !== -1) {
|
||||
var newValue = value.replace(/(\d+(\.\d+)?)px/g, function(match, p1) {
|
||||
var pxValue = parseFloat(p1) * conversionFactor;
|
||||
return pxValue + "pt";
|
||||
});
|
||||
var priority = (rule.style.getPropertyPriority) ? rule.style.getPropertyPriority(propertyName) : "";
|
||||
rule.style.setProperty(propertyName, newValue, priority);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn("Could not access stylesheet", styleSheet.href, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setPageZoom(zoomLevel) {
|
||||
// document.body.style.zoom = zoomLevel;
|
||||
dpiValue = zoomLevel;
|
||||
refreshModeDisplay();
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
Windows: {
|
||||
UI: {
|
||||
DPI: new function() {
|
||||
Object.defineProperty(this, "mode", {
|
||||
get: function() {
|
||||
return highDpiMode;
|
||||
},
|
||||
set: function(modeType) {
|
||||
setHighDpiMode(modeType);
|
||||
return highDpiMode;
|
||||
}
|
||||
});
|
||||
this.refresh = refreshModeDisplay;
|
||||
Object.defineProperty(this, "zoom", {
|
||||
get: function() {
|
||||
return dpiValue;
|
||||
},
|
||||
set: function(zoomLevel) {
|
||||
setPageZoom(zoomLevel);
|
||||
return dpiValue;
|
||||
}
|
||||
});
|
||||
this.ptToPx = convertAllPtToPx;
|
||||
this.pxToPt = convertAllPxToPt;
|
||||
}()
|
||||
}
|
||||
}
|
||||
};
|
||||
})(this);
|
||||
@@ -0,0 +1,338 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
if (!global.Windows) global.Windows = {};
|
||||
if (!global.Windows.UI) global.Windows.UI = {};
|
||||
if (!global.Windows.UI.Event) global.Windows.UI.Event = {};
|
||||
|
||||
var Monitor = (function() {
|
||||
var _sIdAttr = "data-monitor-id";
|
||||
var _idCounter = 1;
|
||||
var _aRegistry = {};
|
||||
var _typeRegistry = {}; // 按事件类型分类缓存
|
||||
var _polling = false;
|
||||
var _loopHandle = null;
|
||||
var _cleanupThreshold = 30000; // 30秒清理一次
|
||||
var _lastCleanup = Date.now();
|
||||
var _checkInterval = 200; // 节流时间
|
||||
var _eventTypes = [
|
||||
"resize",
|
||||
"position",
|
||||
"attribute",
|
||||
"child"
|
||||
];
|
||||
|
||||
// 缓存 DOM 元素引用
|
||||
var _elementCache = {};
|
||||
|
||||
function _ensureId(el) {
|
||||
if (!el.getAttribute(_sIdAttr)) {
|
||||
el.setAttribute(_sIdAttr, "monitor_" + (_idCounter++));
|
||||
}
|
||||
return el.getAttribute(_sIdAttr);
|
||||
}
|
||||
|
||||
function _getElementById(id) {
|
||||
if (_elementCache[id] && _elementCache[id].parentNode) {
|
||||
return _elementCache[id];
|
||||
}
|
||||
var el = document.querySelector("[" + _sIdAttr + "=\"" + id + "\"]");
|
||||
if (el) _elementCache[id] = el;
|
||||
return el;
|
||||
}
|
||||
|
||||
function _getAttrSnapshot(el) {
|
||||
var attrs = {};
|
||||
for (var i = 0; i < el.attributes.length; i++) {
|
||||
var attr = el.attributes[i];
|
||||
attrs[attr.name] = attr.value;
|
||||
}
|
||||
attrs["_rect"] = el.getBoundingClientRect();
|
||||
return attrs;
|
||||
}
|
||||
|
||||
function _hasChanged(snapshotA, snapshotB) {
|
||||
for (var key in snapshotA) {
|
||||
if (snapshotA.hasOwnProperty(key)) {
|
||||
if (key === "_rect") {
|
||||
var a = snapshotA[key],
|
||||
b = snapshotB[key];
|
||||
if (!b || a.top !== b.top || a.left !== b.left || a.width !== b.width || a.height !== b.height) {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if (snapshotA[key] !== snapshotB[key]) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function _pollOnce() {
|
||||
var now = Date.now();
|
||||
|
||||
// 按事件类型遍历,减少不必要检查
|
||||
for (var type in _typeRegistry) {
|
||||
if (!_typeRegistry.hasOwnProperty(type)) continue;
|
||||
|
||||
var list = _typeRegistry[type];
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
var item = list[i];
|
||||
var el = _getElementById(item.id);
|
||||
if (!el) {
|
||||
list.splice(i--, 1);
|
||||
delete _elementCache[item.id];
|
||||
continue;
|
||||
}
|
||||
|
||||
var newSnapshot = _getAttrSnapshot(el);
|
||||
if (_hasChanged(item.snapshot, newSnapshot)) {
|
||||
item.snapshot = newSnapshot;
|
||||
try {
|
||||
item.callback.call(el, { type: type });
|
||||
} catch (ex) {
|
||||
console.error("Monitor callback error:", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 清理过期节点
|
||||
if (now - _lastCleanup > _cleanupThreshold) {
|
||||
_cleanup();
|
||||
_lastCleanup = now;
|
||||
}
|
||||
}
|
||||
|
||||
function _startLoop() {
|
||||
if (_polling) return;
|
||||
_polling = true;
|
||||
|
||||
function loop() {
|
||||
_pollOnce();
|
||||
_loopHandle = global.requestAnimationFrame ? requestAnimationFrame(loop) : setTimeout(loop, _checkInterval);
|
||||
}
|
||||
loop();
|
||||
}
|
||||
|
||||
function _stopLoop() {
|
||||
_polling = false;
|
||||
if (_loopHandle) {
|
||||
if (global.cancelAnimationFrame) cancelAnimationFrame(_loopHandle);
|
||||
else clearTimeout(_loopHandle);
|
||||
_loopHandle = null;
|
||||
}
|
||||
}
|
||||
|
||||
function _cleanup() {
|
||||
for (var type in _typeRegistry) {
|
||||
if (!_typeRegistry.hasOwnProperty(type)) continue;
|
||||
var list = _typeRegistry[type];
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
if (!_getElementById(list[i].id)) {
|
||||
list.splice(i--, 1);
|
||||
delete _elementCache[list[i].id];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function observe(el, type, callback) {
|
||||
if (_eventTypes.indexOf(type) < 0) throw new Error("Unsupported event type: " + type);
|
||||
var id = _ensureId(el);
|
||||
if (!_typeRegistry[type]) _typeRegistry[type] = [];
|
||||
_typeRegistry[type].push({
|
||||
id: id,
|
||||
callback: callback,
|
||||
snapshot: _getAttrSnapshot(el)
|
||||
});
|
||||
_startLoop();
|
||||
}
|
||||
|
||||
function detach(el, type, callback) {
|
||||
if (!_typeRegistry[type]) return;
|
||||
var id = el.getAttribute(_sIdAttr);
|
||||
if (!id) return;
|
||||
var list = _typeRegistry[type];
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
if (list[i].id === id && (!callback || list[i].callback === callback)) {
|
||||
list.splice(i--, 1);
|
||||
delete _elementCache[id];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function clearAll() {
|
||||
_typeRegistry = {};
|
||||
_elementCache = {};
|
||||
_stopLoop();
|
||||
}
|
||||
|
||||
return {
|
||||
observe: observe,
|
||||
detach: detach,
|
||||
clearAll: clearAll,
|
||||
EventType: {
|
||||
resize: "resize",
|
||||
position: "position",
|
||||
attribute: "attribute",
|
||||
child: "child"
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
global.Windows.UI.Event.Monitor = Monitor;
|
||||
|
||||
})(window);
|
||||
|
||||
/*
|
||||
|
||||
// 1) 监听元素尺寸变化
|
||||
var el = document.getElementById("box");
|
||||
Windows.UI.Event.Monitor.observe(el, "resize", function (e) {
|
||||
console.log("resized", e.oldValue, e.newValue, e.rect);
|
||||
});
|
||||
|
||||
// 2) 监听属性变化
|
||||
Windows.UI.Event.Monitor.observe(el, "attributeChange", function (e) {
|
||||
console.log("attrs changed", e.detail); // detail.added / removed / changed
|
||||
});
|
||||
|
||||
// 3) 监听附着/分离
|
||||
Windows.UI.Event.Monitor.observe(el, "attach", function (e) {
|
||||
console.log("attached to doc");
|
||||
});
|
||||
Windows.UI.Event.Monitor.observe(el, "detach", function (e) {
|
||||
console.log("detached from doc");
|
||||
});
|
||||
|
||||
// 4) 取消监听
|
||||
Windows.UI.Event.Monitor.unobserve(el, "resize", handler);
|
||||
|
||||
*/
|
||||
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
var EventUtil = {};
|
||||
|
||||
/**
|
||||
* 添加事件,兼容 IE10/IE11
|
||||
* @param {Element|Window|Document} el 目标元素
|
||||
* @param {string} sType 事件类型,如 "click", "resize", "scroll"
|
||||
* @param {function} pfHandler 回调函数
|
||||
* @param {boolean} [bUseCapture] 是否捕获阶段,默认 false
|
||||
*/
|
||||
EventUtil.addEvent = function(el, sType, pfHandler, bUseCapture) {
|
||||
if (!el || typeof sType !== "string" || typeof pfHandler !== "function") return;
|
||||
|
||||
bUseCapture = !!bUseCapture;
|
||||
|
||||
if (el.addEventListener) {
|
||||
// 标准方式
|
||||
el.addEventListener(sType, pfHandler, bUseCapture);
|
||||
} else if (el.attachEvent) {
|
||||
// IE8-9 fallback
|
||||
el.attachEvent("on" + sType, pfHandler);
|
||||
} else {
|
||||
// 最原始方式
|
||||
var oldHandler = el["on" + sType];
|
||||
el["on" + sType] = function(e) {
|
||||
if (oldHandler) oldHandler(e || window.event);
|
||||
pfHandler(e || window.event);
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 移除事件,兼容 IE10/IE11
|
||||
* @param {Element|Window|Document} el 目标元素
|
||||
* @param {string} sType 事件类型,如 "click", "resize", "scroll"
|
||||
* @param {function} pfHandler 回调函数
|
||||
* @param {boolean} [bUseCapture] 是否捕获阶段,默认 false
|
||||
*/
|
||||
EventUtil.removeEvent = function(el, sType, pfHandler, bUseCapture) {
|
||||
if (!el || typeof sType !== "string" || typeof pfHandler !== "function") return;
|
||||
|
||||
bUseCapture = !!bUseCapture;
|
||||
|
||||
if (el.removeEventListener) {
|
||||
el.removeEventListener(sType, pfHandler, bUseCapture);
|
||||
} else if (el.detachEvent) {
|
||||
el.detachEvent("on" + sType, pfHandler);
|
||||
} else {
|
||||
var oldHandler = el["on" + sType];
|
||||
if (oldHandler === pfHandler) {
|
||||
el["on" + sType] = null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// 暴露到全局命名空间
|
||||
if (typeof module !== "undefined" && module.exports) {
|
||||
module.exports = {
|
||||
Windows: {
|
||||
UI: {
|
||||
Event: {
|
||||
Util: EventUtil
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
} else {
|
||||
global.Windows = global.Windows || {};
|
||||
global.Windows.UI = global.Windows.UI || {};
|
||||
global.Windows.UI.Event = global.Windows.UI.Event || {};
|
||||
global.Windows.UI.Event.Util = EventUtil;
|
||||
}
|
||||
|
||||
})(this);
|
||||
/*
|
||||
使用示例:
|
||||
var handler = function (e) {
|
||||
console.log("事件触发", e.type);
|
||||
};
|
||||
|
||||
// 添加事件
|
||||
Windows.UI.Event.Util.addEvent(window, "resize", handler);
|
||||
|
||||
// 删除事件
|
||||
Windows.UI.Event.Util.removeEvent(window, "resize", handler);
|
||||
|
||||
*/
|
||||
(function(global) {
|
||||
"use strict";
|
||||
/**
|
||||
*
|
||||
* @param {function} fn
|
||||
* @param {number} delay
|
||||
* @param {boolean} immediate 是否在第一次立即执行(可选,默认 false)
|
||||
* @returns {function} 返回一个新的函数,该函数在 delay 时间后执行 fn 函数,如果在 delay 时间内再次调用该函数,则会重新计时。
|
||||
*/
|
||||
function debounce(fn, delay, immediate) {
|
||||
var timer = null;
|
||||
var lastCall = 0;
|
||||
return function() {
|
||||
var context = this;
|
||||
var args = arguments;
|
||||
var now = +new Date();
|
||||
var callNow = immediate && !timer;
|
||||
if (now - lastCall >= delay) {
|
||||
lastCall = now;
|
||||
if (callNow) {
|
||||
fn.apply(context, args);
|
||||
}
|
||||
}
|
||||
clearTimeout(timer);
|
||||
timer = setTimeout(function() {
|
||||
lastCall = +new Date();
|
||||
if (!immediate) {
|
||||
fn.apply(context, args);
|
||||
}
|
||||
}, delay);
|
||||
};
|
||||
}
|
||||
module.exports = { debounce: debounce };
|
||||
})(this);
|
||||
@@ -0,0 +1,187 @@
|
||||
/**
|
||||
* @module module
|
||||
* @description 模块化相关的函数。
|
||||
|
||||
* 将模块化相关的函数封装在一个对象中,方便使用。
|
||||
* 1. directexports(cObject, cDirection):直接将对象或函数公开到指定方向。
|
||||
* 2. exports:公开的对象或函数。
|
||||
* 3. imports:已加载的脚本。
|
||||
* 4. unload:卸载已加载的脚本。
|
||||
* 5. namespace(swNameSpace, cDirection):创建命名空间。
|
||||
* 6. export(cObject, cDirection):兼容旧版本的函数。
|
||||
* 7. import(aswSrc):兼容旧版本的函数。
|
||||
* 兼容的旧版本函数需要引用预处理模块,否则不会兼容。
|
||||
*/
|
||||
(function(global) {
|
||||
"use strict";
|
||||
// 是否为通过构造函数创建的对象实例
|
||||
function isNewFunctionInstance(obj) {
|
||||
return typeof obj === "object" && Object.getPrototypeOf(obj) !== Object.prototype;
|
||||
}
|
||||
var module = new function() {
|
||||
if (this._instance) return this._instance;
|
||||
else this._instance = this;
|
||||
/**
|
||||
* 便于从代码块中公开。
|
||||
* @param {Object} cObject 需要公开的内容,以对象的形式分配好命名空间和别名。如:
|
||||
* {
|
||||
* myFunc: function() { },
|
||||
* myObj: function () {
|
||||
* // object constructor
|
||||
* }
|
||||
* }
|
||||
* 然后默认公开到全局。则公开后可以直接通过 myFunc() 或 myObj() 调用。
|
||||
* @param {global | Object} cDirection 公开方向
|
||||
* @returns {void}
|
||||
*/
|
||||
this.directexports = function(cObject, cDirection) {
|
||||
if (!cDirection) cDirection = global;
|
||||
if (typeof cObject === "function") {
|
||||
cDirection[cObject.name] = cObject;
|
||||
return;
|
||||
} else if (typeof cObject === "object") {
|
||||
var keys = Object.keys(cObject);
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
if (typeof cDirection[keys[i]] === "undefined") {
|
||||
cDirection[keys[i]] = {};
|
||||
}
|
||||
if (isNewFunctionInstance(cObject[keys[i]])) {
|
||||
cDirection[keys[i]] = cObject[keys[i]];
|
||||
} else if (typeof cObject[keys[i]] === "object") {
|
||||
this.directexports(cObject[keys[i]], cDirection[keys[i]]);
|
||||
} else {
|
||||
cDirection[keys[i]] = cObject[keys[i]];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
cDirection = cObject;
|
||||
}
|
||||
};
|
||||
/**
|
||||
* @property {global | Object} exports 欲公开的内容以对象的形式分配好命名空间和别名。如:
|
||||
*/
|
||||
Object.defineProperty(this, "exports", {
|
||||
get: function() {
|
||||
return global;
|
||||
},
|
||||
set: function(cObject, cDirection) {
|
||||
this.directexports(cObject, cDirection);
|
||||
}
|
||||
});
|
||||
if (typeof Array.isArray === "undefined") {
|
||||
/**
|
||||
* 判断是否为数组。这是函数补充。
|
||||
* @param {*} arg 需要判断的对象
|
||||
* @returns {boolean}
|
||||
*/
|
||||
Array.isArray = function(arg) {
|
||||
return Object.prototype.toString.call(arg) === "[object Array]" || arg instanceof Array || arg instanceof HTMLCollection || arg instanceof NodeList;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* @property {HTMLCollection | NodeList | null} imports 当前页面已加载的脚本。会以 NodeList 形式返回。如果为设置,则是追加脚本,而不是覆盖。传入脚本路径或其数组。
|
||||
*/
|
||||
Object.defineProperty(this, "imports", {
|
||||
get: function() {
|
||||
if (typeof window !== "undefined" && typeof document !== "undefined") {
|
||||
var scripts = document.querySelectorAll("script[src]");
|
||||
return scripts;
|
||||
} else return null;
|
||||
},
|
||||
set: function(aswSrc) {
|
||||
if (typeof aswSrc === "string") {
|
||||
var scripts = this.imports;
|
||||
if (scripts && scripts.length > 0) {
|
||||
for (var i = 0; i < scripts.length; i++) {
|
||||
if (scripts[i].src === aswSrc) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
var script = document.createElement("script");
|
||||
script.src = aswSrc;
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
} else if (Array.isArray(aswSrc) || aswSrc instanceof Array || aswSrc instanceof HTMLCollection || aswSrc instanceof NodeList) {
|
||||
for (var i = 0; i < aswSrc.length; i++) {
|
||||
this.imports = aswSrc[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
/**
|
||||
* @property {HTMLCollection | NodeList | null} unload 卸载当前页面已加载的脚本。传入脚本路径或其数组。无法只读
|
||||
*/
|
||||
Object.defineProperty(this, "unload", {
|
||||
set: function(aswSrc) {
|
||||
if (typeof aswSrc === "string") {
|
||||
var scripts = this.imports;
|
||||
if (scripts && scripts.length > 0) {
|
||||
for (var i = 0; i < scripts.length; i++) {
|
||||
if (scripts[i].src === aswSrc) {
|
||||
scripts[i].remove();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (Array.isArray(aswSrc) || aswSrc instanceof Array || aswSrc instanceof HTMLCollection || aswSrc instanceof NodeList) {
|
||||
for (var i = 0; i < aswSrc.length; i++) {
|
||||
this.unload = aswSrc[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
Object.defineProperty(this, "global", {
|
||||
get: function() {
|
||||
return global;
|
||||
}
|
||||
});
|
||||
/**
|
||||
* 命名空间,其实为一种字典。
|
||||
* @param {string} swNameSpace 命名空间路径。如:"WinJS.Namespace"。不能为空。命名空间之间用"."分隔。
|
||||
* @param {*} cDirection 创建的路径,默认创建到全局
|
||||
* @returns
|
||||
*/
|
||||
this.namespace = function(swNameSpace, cDirection) {
|
||||
if (!cDirection) cDirection = global;
|
||||
var strarr = (swNameSpace || "").split(".");
|
||||
if (!strarr.length) strarr.push(swns);
|
||||
|
||||
function setNs(strarr, direct) {
|
||||
var newdirect = null;
|
||||
if (!strarr.length) return direct;
|
||||
else {
|
||||
if (typeof direct[strarr[0]] === "undefined") {
|
||||
direct[strarr[0]] = {};
|
||||
}
|
||||
newdirect = direct[strarr[0]];
|
||||
}
|
||||
strarr.shift();
|
||||
return setNs((strarr || []), newdirect);
|
||||
}
|
||||
return setNs(strarr, cDirection);
|
||||
};
|
||||
if (typeof preprocess !== "undefined" && preprocess.ifdef("COMPATIBLE")) {
|
||||
/**
|
||||
* 兼容旧版本的函数。
|
||||
* @param {Object | Function} cObject 欲公开的对象或函数
|
||||
* @param {global | Object} cDirection 公开方向
|
||||
*/
|
||||
this.export = function(cObject, cDirection) {
|
||||
this.directexports(cObject, cDirection);
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @param {Array <string> | string} aswSrc 脚本路径或其数组
|
||||
* @returns {boolean} 是否成功添加脚本。在兼容模式下只会返回真。
|
||||
*/
|
||||
this.import = function(aswSrc) {
|
||||
this.imports = aswSrc;
|
||||
return true;
|
||||
};
|
||||
}
|
||||
};
|
||||
module.exports = {
|
||||
module: module,
|
||||
namespace: module.namespace,
|
||||
};
|
||||
})(this);
|
||||
@@ -0,0 +1,74 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
Object.defineProperty(global, "pagecontainer", {
|
||||
get: function() { return document.querySelector(".pagecontainer"); }
|
||||
});
|
||||
|
||||
function getPage() {
|
||||
return pagecontainer.querySelector(".page");
|
||||
}
|
||||
var supportPageList = [
|
||||
"splash",
|
||||
"select",
|
||||
"preinstall",
|
||||
"installing",
|
||||
"installsuccess",
|
||||
"installfailed"
|
||||
];
|
||||
var supportMulPageList = [
|
||||
"preinstall",
|
||||
"installing",
|
||||
"installsuccess",
|
||||
"installfailed"
|
||||
];
|
||||
|
||||
function setPage(swPageLabel, bIsMulti) {
|
||||
var page = getPage();
|
||||
swPageLabel = ("" + (swPageLabel || ""));
|
||||
for (var i = 0; i < supportPageList.length; i++) {
|
||||
if (Bridge.NString.equals(swPageLabel, supportPageList[i])) {
|
||||
page.classList.add(supportPageList[i]);
|
||||
} else {
|
||||
if (page.classList.contains(supportPageList[i])) page.classList.remove(supportPageList[i]);
|
||||
}
|
||||
}
|
||||
if (page.classList.contains("multiple")) page.classList.remove("multiple");
|
||||
for (var j = 0; j < supportMulPageList.length; j++) {
|
||||
if (Bridge.NString.equals(swPageLabel, supportMulPageList[j]) && bIsMulti) {
|
||||
page.classList.add("multiple");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getPageLabel() {
|
||||
var page = getPage();
|
||||
for (var i = 0; i < supportPageList.length; i++) {
|
||||
if (page.classList.contains(supportPageList[i])) {
|
||||
return supportPageList[i];
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
function isMultiPage() {
|
||||
var page = getPage();
|
||||
return page.classList.contains("multiple");
|
||||
}
|
||||
|
||||
function setPageMultiple(bIsMulti) {
|
||||
setPage(getPageLabel(), bIsMulti);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
Page: {}
|
||||
};
|
||||
Object.defineProperty(Page, "current", {
|
||||
get: function() { return getPageLabel(); },
|
||||
set: function(swPageLabel) { setPage(swPageLabel, isMultiPage()); }
|
||||
});
|
||||
Object.defineProperty(Page, "multiple", {
|
||||
get: function() { return isMultiPage(); },
|
||||
set: function(bIsMulti) { setPage(getPageLabel(), bIsMulti); }
|
||||
});
|
||||
})(this);
|
||||
@@ -0,0 +1,130 @@
|
||||
(function(global) {
|
||||
if (typeof msWriteProfilerMark === "undefined") {
|
||||
function msWriteProfilerMark(swMark) {
|
||||
if (typeof performance !== "undefined" && typeof performance.mark === "function") {
|
||||
return performance.mark(swMark);
|
||||
} else if (typeof console !== "undefined" && typeof console.log === "function") {
|
||||
return console.log(swMark);
|
||||
}
|
||||
}
|
||||
module.exports = {
|
||||
msWriteProfilerMark: msWriteProfilerMark
|
||||
};
|
||||
}
|
||||
})(this);
|
||||
(function(global) {
|
||||
|
||||
if (typeof global.Debug === "undefined") {
|
||||
var fakeDebug = {};
|
||||
|
||||
// 基本属性
|
||||
fakeDebug.debuggerEnabled = true;
|
||||
fakeDebug.setNonUserCodeExceptions = false;
|
||||
|
||||
// 常量
|
||||
fakeDebug.MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE = 0;
|
||||
fakeDebug.MS_ASYNC_CALLBACK_STATUS_JOIN = 1;
|
||||
fakeDebug.MS_ASYNC_CALLBACK_STATUS_CHOOSEANY = 2;
|
||||
fakeDebug.MS_ASYNC_CALLBACK_STATUS_CANCEL = 3;
|
||||
fakeDebug.MS_ASYNC_CALLBACK_STATUS_ERROR = 4;
|
||||
|
||||
fakeDebug.MS_ASYNC_OP_STATUS_SUCCESS = 1;
|
||||
fakeDebug.MS_ASYNC_OP_STATUS_CANCELED = 2;
|
||||
fakeDebug.MS_ASYNC_OP_STATUS_ERROR = 3;
|
||||
|
||||
// 方法:输出
|
||||
fakeDebug.write = function(msg) {
|
||||
if (console && console.log) console.log("[Debug.write] " + msg);
|
||||
};
|
||||
fakeDebug.writeln = function(msg) {
|
||||
if (console && console.log) console.log("[Debug.writeln] " + msg);
|
||||
};
|
||||
|
||||
// 方法:断言 / 中断
|
||||
fakeDebug.assert = function(cond, msg) {
|
||||
if (!cond) {
|
||||
if (console && console.error) {
|
||||
console.error("[Debug.assert] Assertion failed: " + (msg || ""));
|
||||
}
|
||||
// 可选触发断点
|
||||
// debugger;
|
||||
}
|
||||
};
|
||||
fakeDebug.break = function() {
|
||||
debugger;
|
||||
};
|
||||
|
||||
// 方法:异步跟踪(空实现)
|
||||
fakeDebug.msTraceAsyncCallbackCompleted = function() {};
|
||||
fakeDebug.msTraceAsyncCallbackStarting = function() {};
|
||||
fakeDebug.msTraceAsyncOperationCompleted = function() {};
|
||||
fakeDebug.msTraceAsyncOperationStarting = function() {};
|
||||
fakeDebug.msUpdateAsyncCallbackRelation = function() {};
|
||||
|
||||
global.Debug = fakeDebug;
|
||||
}
|
||||
|
||||
})(this);
|
||||
(function(global) {
|
||||
|
||||
if (typeof global.setImmediate === "undefined") {
|
||||
var nextHandle = 1; // 唯一任务 id
|
||||
var tasksByHandle = {};
|
||||
var currentlyRunning = false;
|
||||
|
||||
function addTask(fn, args) {
|
||||
tasksByHandle[nextHandle] = function() {
|
||||
fn.apply(undefined, args);
|
||||
};
|
||||
return nextHandle++;
|
||||
}
|
||||
|
||||
function run(handle) {
|
||||
if (currentlyRunning) {
|
||||
// 如果已经在运行,延迟一下
|
||||
setTimeout(run, 0, handle);
|
||||
} else {
|
||||
var task = tasksByHandle[handle];
|
||||
if (task) {
|
||||
currentlyRunning = true;
|
||||
try {
|
||||
task();
|
||||
} finally {
|
||||
delete tasksByHandle[handle];
|
||||
currentlyRunning = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function installSetImmediate() {
|
||||
if (typeof MessageChannel !== "undefined") {
|
||||
var channel = new MessageChannel();
|
||||
channel.port1.onmessage = function(event) {
|
||||
run(event.data);
|
||||
};
|
||||
return function() {
|
||||
var handle = addTask(arguments[0], Array.prototype.slice.call(arguments, 1));
|
||||
channel.port2.postMessage(handle);
|
||||
return handle;
|
||||
};
|
||||
} else {
|
||||
// fallback: setTimeout
|
||||
return function() {
|
||||
var handle = addTask(arguments[0], Array.prototype.slice.call(arguments, 1));
|
||||
setTimeout(run, 0, handle);
|
||||
return handle;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
global.setImmediate = installSetImmediate();
|
||||
|
||||
// 对应 clearImmediate
|
||||
if (typeof global.clearImmediate === "undefined") {
|
||||
global.clearImmediate = function(handle) {
|
||||
delete tasksByHandle[handle];
|
||||
};
|
||||
}
|
||||
}
|
||||
})(this);
|
||||
@@ -0,0 +1,60 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
var flags = {
|
||||
HIDE_WHEN_CLICK_OUTSIDE: 0x00000001,
|
||||
SHOW_CONTROL_BUTTONS: 0x00000002,
|
||||
};
|
||||
|
||||
function Popup(content, options) {
|
||||
var _content = content;
|
||||
var _flags = options["flags"] || 0;
|
||||
var _element = null;
|
||||
_element = document.createElement("div");
|
||||
_element.className = "popup";
|
||||
_element.style.position = "absolute";
|
||||
_element.style.display = "none";
|
||||
document.body.appendChild(_element);
|
||||
if (_content instanceof HTMLElement) {
|
||||
_element.appendChild(_content);
|
||||
} else if (typeof _content === "string") {
|
||||
_element.textContent = _content;
|
||||
}
|
||||
Object.defineProperty(this, "content", {
|
||||
get: function() { return _content; },
|
||||
set: function(value) {
|
||||
_element.innerHTML = "";
|
||||
if (value instanceof HTMLElement) {
|
||||
_element.appendChild(value);
|
||||
} else if (typeof value === "string") {
|
||||
_element.textContent = value;
|
||||
}
|
||||
_content = value;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(this, "", {
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
Popup.Options = function() {
|
||||
this.flags = 0;
|
||||
this.position = {
|
||||
left: null,
|
||||
top: null
|
||||
};
|
||||
this.size = {
|
||||
width: null,
|
||||
height: null
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
Windows: {
|
||||
UI: {
|
||||
Popups: {
|
||||
DisplayBlock: Popup
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
})(this);
|
||||
@@ -0,0 +1,241 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
function PromisePolyfill(pfExecutor) {
|
||||
var swState = "pending"; // "fulfilled" | "rejected"
|
||||
var vValue = undefined;
|
||||
var aHandlers = [];
|
||||
var pfOnCancel = null;
|
||||
|
||||
function invokeHandlers() {
|
||||
if (swState === "pending") return;
|
||||
for (var i = 0; i < aHandlers.length; i++) {
|
||||
handle(aHandlers[i]);
|
||||
}
|
||||
aHandlers = [];
|
||||
}
|
||||
|
||||
function handle(hHandler) {
|
||||
if (swState === "pending") {
|
||||
aHandlers.push(hHandler);
|
||||
return;
|
||||
}
|
||||
var pfCallback = swState === "fulfilled" ? hHandler.onFulfilled : hHandler.onRejected;
|
||||
if (!pfCallback) {
|
||||
if (swState === "fulfilled") {
|
||||
hHandler.resolve(vValue);
|
||||
} else {
|
||||
hHandler.reject(vValue);
|
||||
}
|
||||
return;
|
||||
}
|
||||
try {
|
||||
var vResult = pfCallback(vValue);
|
||||
hHandler.resolve(vResult);
|
||||
} catch (ex) {
|
||||
hHandler.reject(ex);
|
||||
}
|
||||
}
|
||||
|
||||
function resolve(vResult) {
|
||||
try {
|
||||
if (vResult === self) throw new TypeError("A promise cannot be resolved with itself.");
|
||||
if (vResult && (typeof vResult === "object" || typeof vResult === "function")) {
|
||||
var pfThen = vResult.then;
|
||||
if (typeof pfThen === "function") {
|
||||
pfThen.call(vResult, resolve, reject);
|
||||
return;
|
||||
}
|
||||
}
|
||||
swState = "fulfilled";
|
||||
vValue = vResult;
|
||||
invokeHandlers();
|
||||
} catch (ex) {
|
||||
reject(ex);
|
||||
}
|
||||
}
|
||||
|
||||
function reject(vReason) {
|
||||
swState = "rejected";
|
||||
vValue = vReason;
|
||||
if (typeof PromisePolyfill.onerror === "function") {
|
||||
PromisePolyfill.onerror(vReason);
|
||||
}
|
||||
invokeHandlers();
|
||||
}
|
||||
var self = this;
|
||||
try {
|
||||
pfExecutor(resolve, reject, function(pfCancel) {
|
||||
pfOnCancel = pfCancel;
|
||||
});
|
||||
} catch (ex) {
|
||||
reject(ex);
|
||||
}
|
||||
this.then = function(pfOnFulfilled, pfOnRejected) {
|
||||
return new PromisePolyfill(function(resolve, reject) {
|
||||
handle({
|
||||
onFulfilled: pfOnFulfilled,
|
||||
onRejected: pfOnRejected,
|
||||
resolve: resolve,
|
||||
reject: reject
|
||||
});
|
||||
});
|
||||
};
|
||||
this["catch"] = function(pfOnRejected) {
|
||||
return this.then(null, pfOnRejected);
|
||||
};
|
||||
this.done = function(pfOnFulfilled, pfOnRejected) {
|
||||
this.then(pfOnFulfilled, pfOnRejected)["catch"](function(ex) {
|
||||
setTimeout(function() { throw ex; }, 0);
|
||||
});
|
||||
};
|
||||
this.cancel = function() {
|
||||
if (pfOnCancel) {
|
||||
try { pfOnCancel(); } catch (ex) {}
|
||||
}
|
||||
reject(new Error("Promise was canceled"));
|
||||
};
|
||||
this._oncancel = pfOnCancel;
|
||||
this._state = swState;
|
||||
this._value = vValue;
|
||||
}
|
||||
PromisePolyfill.is = function(vObj) {
|
||||
return vObj instanceof PromisePolyfill;
|
||||
};
|
||||
PromisePolyfill.resolve = function(vValue) {
|
||||
return new PromisePolyfill(function(resolve) { resolve(vValue); });
|
||||
};
|
||||
PromisePolyfill.reject = function(vReason) {
|
||||
return new PromisePolyfill(function(resolve, reject) { reject(vReason); });
|
||||
};
|
||||
PromisePolyfill.all = function(aPromises) {
|
||||
return new PromisePolyfill(function(resolve, reject) {
|
||||
var nRemaining = aPromises.length;
|
||||
var aResults = new Array(nRemaining);
|
||||
if (nRemaining === 0) resolve([]);
|
||||
|
||||
function resolver(iIndex) {
|
||||
return function(vValue) {
|
||||
aResults[iIndex] = vValue;
|
||||
nRemaining--;
|
||||
if (nRemaining === 0) resolve(aResults);
|
||||
};
|
||||
}
|
||||
for (var i = 0; i < aPromises.length; i++) {
|
||||
PromisePolyfill.resolve(aPromises[i]).then(resolver(i), reject);
|
||||
}
|
||||
});
|
||||
};
|
||||
PromisePolyfill.race = function(aPromises) {
|
||||
return new PromisePolyfill(function(resolve, reject) {
|
||||
for (var i = 0; i < aPromises.length; i++) {
|
||||
PromisePolyfill.resolve(aPromises[i]).then(resolve, reject);
|
||||
}
|
||||
});
|
||||
};
|
||||
PromisePolyfill.join = function(aPromises) {
|
||||
return PromisePolyfill.all(aPromises);
|
||||
};
|
||||
PromisePolyfill.any = function(aPromises) {
|
||||
return new PromisePolyfill(function(resolve, reject) {
|
||||
var nRemaining = aPromises.length;
|
||||
var aErrors = new Array(nRemaining);
|
||||
if (nRemaining === 0) reject(new Error("No promises provided."));
|
||||
|
||||
function resolver(vValue) { resolve(vValue); }
|
||||
|
||||
function rejecter(iIndex) {
|
||||
return function(ex) {
|
||||
aErrors[iIndex] = ex;
|
||||
nRemaining--;
|
||||
if (nRemaining === 0) reject(aErrors);
|
||||
};
|
||||
}
|
||||
for (var i = 0; i < aPromises.length; i++) {
|
||||
PromisePolyfill.resolve(aPromises[i]).then(resolver, rejecter(i));
|
||||
}
|
||||
});
|
||||
};
|
||||
PromisePolyfill.timeout = function(pPromise, nMilliseconds) {
|
||||
return new PromisePolyfill(function(resolve, reject) {
|
||||
var hTimer = setTimeout(function() {
|
||||
reject(new Error("Promise timed out after " + nMilliseconds + "ms"));
|
||||
}, nMilliseconds);
|
||||
PromisePolyfill.resolve(pPromise).then(function(vValue) {
|
||||
clearTimeout(hTimer);
|
||||
resolve(vValue);
|
||||
}, function(ex) {
|
||||
clearTimeout(hTimer);
|
||||
reject(ex);
|
||||
});
|
||||
});
|
||||
};
|
||||
PromisePolyfill.as = function(vValue) {
|
||||
return PromisePolyfill.resolve(vValue);
|
||||
};
|
||||
PromisePolyfill.wrap = function(vValue) {
|
||||
return PromisePolyfill.resolve(vValue);
|
||||
};
|
||||
PromisePolyfill.wrapError = function(vError) {
|
||||
return PromisePolyfill.reject(vError);
|
||||
};
|
||||
PromisePolyfill.thenEach = function(aValues, pfCallback) {
|
||||
var aPromises = [];
|
||||
for (var i = 0; i < aValues.length; i++) {
|
||||
aPromises.push(PromisePolyfill.resolve(aValues[i]).then(pfCallback));
|
||||
}
|
||||
return PromisePolyfill.all(aPromises);
|
||||
};
|
||||
var hListeners = {};
|
||||
PromisePolyfill.addEventListener = function(sType, pfHandler) {
|
||||
if (!hListeners[sType]) hListeners[sType] = [];
|
||||
hListeners[sType].push(pfHandler);
|
||||
};
|
||||
PromisePolyfill.removeEventListener = function(sType, pfHandler) {
|
||||
if (!hListeners[sType]) return;
|
||||
var aList = hListeners[sType];
|
||||
for (var i = 0; i < aList.length; i++) {
|
||||
if (aList[i] === pfHandler) {
|
||||
aList.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
PromisePolyfill.dispatchEvent = function(sType, vDetail) {
|
||||
if (!hListeners[sType]) return;
|
||||
var aList = hListeners[sType].slice();
|
||||
for (var i = 0; i < aList.length; i++) {
|
||||
try { aList[i](vDetail); } catch (ex) {}
|
||||
}
|
||||
};
|
||||
PromisePolyfill.supportedForProcessing = true;
|
||||
PromisePolyfill.onerror = null;
|
||||
if (typeof global.Promise !== "undefined") {
|
||||
var p = global.Promise;
|
||||
if (!p.join) p.join = p.all;
|
||||
if (!p.any) p.any = PromisePolyfill.any;
|
||||
if (!p.timeout) p.timeout = PromisePolyfill.timeout;
|
||||
if (!p.as) p.as = p.resolve;
|
||||
if (!p.wrap) p.wrap = p.resolve;
|
||||
if (!p.wrapError) p.wrapError = p.reject;
|
||||
if (!p.thenEach) p.thenEach = PromisePolyfill.thenEach;
|
||||
if (!p.is) p.is = function(vObj) { return vObj instanceof p; };
|
||||
if (!p.supportedForProcessing) p.supportedForProcessing = true;
|
||||
if (!p.addEventListener) p.addEventListener = PromisePolyfill.addEventListener;
|
||||
if (!p.removeEventListener) p.removeEventListener = PromisePolyfill.removeEventListener;
|
||||
if (!p.dispatchEvent) p.dispatchEvent = PromisePolyfill.dispatchEvent;
|
||||
if (!p.onerror) p.onerror = null;
|
||||
}
|
||||
if (typeof global.WinJS !== "undefined" && typeof global.WinJS.Promise !== "undefined") {
|
||||
var wp = global.WinJS.Promise;
|
||||
if (!wp.resolve) wp.resolve = function(vValue) { return new wp(function(c) { c(vValue); }); };
|
||||
if (!wp.reject) wp.reject = function(vReason) { return new wp(function(c, e) { e(vReason); }); };
|
||||
if (!wp.all) wp.all = function(aPromises) { return wp.join(aPromises); };
|
||||
if (!wp.race) wp.race = PromisePolyfill.race;
|
||||
global.Promise = wp;
|
||||
if (typeof global.Promise === "undefined") global.Promise = wp;
|
||||
}
|
||||
if (typeof global.Promise === "undefined" && typeof global.WinJS === "undefined") {
|
||||
global.Promise = PromisePolyfill;
|
||||
}
|
||||
})(this);
|
||||
@@ -0,0 +1,63 @@
|
||||
/// <loc filename="Metadata\base.strings_loc_oam.xml" format="messagebundle" />
|
||||
/*!
|
||||
© Microsoft. All rights reserved.
|
||||
|
||||
This library is supported for use in Windows Store apps only.
|
||||
|
||||
Build: 1.0.9600.17018.winblue_gdr.140204-1946
|
||||
|
||||
Version: Microsoft.WinJS.2.0
|
||||
*/
|
||||
|
||||
(function (global) {
|
||||
global.strings = global.strings || {};
|
||||
|
||||
var appxVersion = "Microsoft.WinJS.2.0";
|
||||
var developerPrefix = "Developer.";
|
||||
if (appxVersion.indexOf(developerPrefix) === 0) {
|
||||
appxVersion = appxVersion.substring(developerPrefix.length);
|
||||
}
|
||||
|
||||
function addStrings(keyPrefix, strings) {
|
||||
Object.keys(strings).forEach(function (key) {
|
||||
global.strings[keyPrefix + key.replace("\\", "/")] = strings[key];
|
||||
});
|
||||
}
|
||||
|
||||
addStrings(
|
||||
"ms-resource://"+appxVersion+"/base/",
|
||||
|
||||
{
|
||||
"attributeBindingSingleProperty": "Attribute binding requires a single destination attribute name, often in the form \"this['aria-label']\" or \"width\".",
|
||||
"bindingInitializerNotFound": "Initializer not found:'{0}'",
|
||||
"cannotBindToThis": "Can't bind to 'this'.",
|
||||
"creatingNewProperty": "Creating new property {0}. Full path:{1}",
|
||||
"duplicateBindingDetected": "Binding against element with id {0} failed because a duplicate id was detected.",
|
||||
"elementNotFound": "Element not found:{0}",
|
||||
"errorActivatingControl": "Error activating control: {0}",
|
||||
"errorInitializingBindings": "Error initializing bindings: {0}",
|
||||
"exceptionFromBindingInitializer": "Exception thrown from binding initializer: {0}",
|
||||
"idBindingNotSupported": "Declarative binding to ID field is not supported. Initializer: {0}",
|
||||
"illegalListLength": "List length must be assigned a finite positive number",
|
||||
"invalidBinding": "Invalid binding:'{0}'. Expected to be '<destProp>:<sourceProp>;'. {1}",
|
||||
"invalidFragmentUri": "Unsupported uri for fragment loading. Fragments in the local context can only load from package content or local sources. To load fragments from other sources, use a web context.",
|
||||
"invalidOptionsRecord": "Invalid options record: '{0}', expected to be in the format of an object literal. {1}",
|
||||
"jobInfoIsNoLongerValid": "The job info object can only be used while the job is running",
|
||||
"malformedFormatStringInput": "Malformed, did you mean to escape your '{0}'?",
|
||||
"nestedDOMElementBindingNotSupported": "Binding through a property {0} of type HTMLElement is not supported, Full path:{1}.",
|
||||
"nestingExceeded": "NestingExceeded",
|
||||
"notFound": "NotFound: {0}",
|
||||
"notSupportedForProcessing": "Value is not supported within a declarative processing context, if you want it to be supported mark it using WinJS.Utilities.markSupportedForProcessing. The value was: '{0}'",
|
||||
"nonStaticHTML": "Unable to add dynamic content. A script attempted to inject dynamic content, or elements previously modified dynamically, that might be unsafe. For example, using the innerHTML property or the document.write method to add a script element will generate this exception. If the content is safe and from a trusted source, use a method to explicitly manipulate elements and attributes, such as createElement, or use setInnerHTMLUnsafe (or other unsafe method).",
|
||||
"propertyDoesNotExist": "{0} doesn't exist. Full path:{1}",
|
||||
"propertyIsUndefined": "{0} is undefined",
|
||||
"sparseArrayNotSupported": "Sparse arrays are not supported with proxy: true",
|
||||
"unexpectedTokenExpectedToken": "Unexpected token: {0}, expected token: {1}, at offset {2}",
|
||||
"unexpectedTokenExpectedTokens": "Unexpected token: {0}, expected one of: {1}, at offset {2}",
|
||||
"unexpectedTokenGeneric": "Unexpected token: {0}, at offset {1}",
|
||||
"unsupportedDataTypeForBinding": "Unsupported data type"
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
}(this));
|
||||
@@ -0,0 +1,530 @@
|
||||
/// <loc filename="Metadata\ui.strings_loc_oam.xml" format="messagebundle" />
|
||||
/*!
|
||||
© Microsoft. All rights reserved.
|
||||
|
||||
This library is supported for use in Windows Store apps only.
|
||||
|
||||
Build: 1.0.9600.17018.winblue_gdr.140204-1946
|
||||
|
||||
Version: Microsoft.WinJS.2.0
|
||||
*/
|
||||
|
||||
(function (global) {
|
||||
global.strings = global.strings || {};
|
||||
|
||||
var appxVersion = "Microsoft.WinJS.2.0";
|
||||
var developerPrefix = "Developer.";
|
||||
if (appxVersion.indexOf(developerPrefix) === 0) {
|
||||
appxVersion = appxVersion.substring(developerPrefix.length);
|
||||
}
|
||||
|
||||
function addStrings(keyPrefix, strings) {
|
||||
Object.keys(strings).forEach(function (key) {
|
||||
global.strings[keyPrefix + key.replace("\\", "/")] = strings[key];
|
||||
});
|
||||
}
|
||||
|
||||
addStrings(
|
||||
"ms-resource://"+appxVersion+"/ui/",
|
||||
|
||||
{
|
||||
"appBarAriaLabel": "App Bar",
|
||||
"appBarCommandAriaLabel": "App Bar Item",
|
||||
"asynchronousRender" : "Top level items must render synchronously",
|
||||
"automaticallyLoadPagesIsDeprecated": "Invalid configuration: automaticallyLoadPages is deprecated. The control will default this property to false. Please refer to the 'ListView loading behaviors' SDK Sample for guidance on how to implement incremental load behavior.",
|
||||
"averageRating": "Average Rating",
|
||||
"backbuttonarialabel": "Back",
|
||||
"badAlignment": "Invalid argument: Flyout alignment should be 'center' (default), 'left', or 'right'.",
|
||||
"badAxis": "Invalid argument: orientation must be a string, either 'horizontal' or 'vertical'",
|
||||
"badButtonElement": "Invalid argument: For a button, toggle, or flyout command, the element must be null or a button element",
|
||||
"badClick": "Invalid argument: The onclick property for an {0} must be a function",
|
||||
"badCurrentPage": "Invalid argument: currentPage must be a number greater than or equal to zero and be within the bounds of the datasource",
|
||||
"badDivElement": "Invalid argument: For a content command, the element must be null or a div element",
|
||||
"badFlyout": "Invalid argument: The flyout property for an {0} must be a Flyout or String id of a Flyout",
|
||||
"badHrElement": "Invalid argument: For a separator, the element must be null or an hr element",
|
||||
"badItemSpacingAmount": "Invalid argument: itemSpacing must be a number greater than or equal to zero",
|
||||
"badLayout": "Invalid argument: The layout property must be 'custom' or 'commands'",
|
||||
"badPlacement": "Invalid argument: Flyout placement should be 'top' (default), 'bottom', 'left', 'right', or 'auto'.",
|
||||
"badReference": "Invalid argument: Invalid href to settings flyout fragment",
|
||||
"cannotChangeCommandsWhenVisible": "Invalid argument: You must call hide() before changing {0} commands",
|
||||
"cannotChangeHiddenProperty": "Unable to set hidden property while parent {0} is visible.",
|
||||
"cannotChangeLayoutWhenVisible": "Invalid argument: The layout property cannot be set when the AppBar is visible, call hide() first",
|
||||
"cannotChangePlacementWhenVisible": "Invalid argument: The placement property cannot be set when the AppBar is visible, call hide() first",
|
||||
"clearYourRating" : "Clear your rating",
|
||||
"closeOverlay" : "Close",
|
||||
"datePicker": "Date Picker",
|
||||
"disableBackdropIsDeprecated" : "Invalid configuration: disableBackdrop is deprecated. Style: .win-listview .win-container.win-backdrop { background-color:transparent; } instead.",
|
||||
"duplicateConstruction": "Invalid argument: Controls may only be instantiated one time for each DOM element",
|
||||
"duplicateSection": "Hub duplicate sections: Each HubSection must be unique",
|
||||
"backdropColorIsDeprecated" : "Invalid configuration: backdropColor is deprecated. Style: .win-listview .win-container.win-backdrop { rgba(155,155,155,0.23); } instead.",
|
||||
"flipViewNavigationDuringStateChange": "Error: After changing itemDataSource or itemTemplate, any navigation in the FlipView control should be delayed until the pageselected event is fired.",
|
||||
"flipViewPanningContainerAriaLabel": "Scrolling Container",
|
||||
"flyoutAriaLabel": "Flyout",
|
||||
"groupInfoIsDeprecated": "GridLayout.groupInfo may be altered or unavailable in future versions. Instead, use CellSpanningLayout.",
|
||||
"groupInfoResultIsInvalid": "Invalid result: groupInfo result for cell spanning groups must include the following numeric properties: cellWidth and cellHeight.",
|
||||
"hubViewportAriaLabel": "Scrolling Container",
|
||||
"indexIsInvalid": "Invalid argument: index must be a non-negative integer.",
|
||||
"invalidHubContent": "Invalid content: Hub content must be made up of HubSections.",
|
||||
"invalidCountReturned": "Error: data adapter should return undefined, null, CountResult.unknown, or a non-negative integer for the count.",
|
||||
"invalidIndexReturned": "Error: data adapter should return undefined, null or a non-negative integer for the index.",
|
||||
"invalidItemReturned": "Error: data adapter returned item that is not an object.",
|
||||
"invalidItemsManagerCallback": "Invalid argument: {0} must be a function.",
|
||||
"invalidKeyReturned": "Error: data adapter returned item with undefined or null key.",
|
||||
"invalidSearchBoxSuggestionKind": "Error: Invalid search suggestion kind.",
|
||||
"invalidTemplate": "Invalid template: Templates must be created before being passed to the ListView, and must contain a valid tree of elements.",
|
||||
"invalidViewBoxChildren": "ViewBox expects to only have one child element",
|
||||
"invalidZoomFactor": "Invalid zoomFactor",
|
||||
"invalidRequestedCountReturned": "Error: data adapter should return CountResult.unknown, CountResult.failure, or a non-negative integer for the count.",
|
||||
"itemInfoIsDeprecated": "GridLayout.itemInfo may be altered or unavailable in future versions. Instead, use CellSpanningLayout.",
|
||||
"itemInfoIsInvalid": "Invalid argument: An itemInfo function must be provided which returns an object with numeric width and height properties.",
|
||||
"itemIsInvalid": "Invalid argument: item must be a DOM element that was returned by the Items Manager, and has not been replaced or released.",
|
||||
"itemRendererIsInvalid": "Invalid argument: itemRenderer must be a function.",
|
||||
"keyIsInvalid": "Invalid argument: key must be a string.",
|
||||
"listDataAdapterIsInvalid": "Invalid argument: listDataAdapter must be an object or an array.",
|
||||
"listDataSourceIsInvalid": "Invalid argument: dataSource must be an object.",
|
||||
"listViewInvalidItem": "Item must provide index, key or description of corresponding item.",
|
||||
"listViewViewportAriaLabel": "Scrolling Container",
|
||||
"loadingBehaviorIsDeprecated": "Invalid configuration: loadingBehavior is deprecated. The control will default this property to 'randomAccess'. Please refer to the 'ListView loading behaviors' SDK Sample for guidance on how to implement incremental load behavior.",
|
||||
"maxRowsIsDeprecated": "GridLayout.maxRows may be altered or unavailable in future versions. Instead, use the maximumRowsOrColumns property.",
|
||||
"menuCommandAriaLabel": "Menu Item",
|
||||
"menuAriaLabel": "Menu",
|
||||
"modeIsInvalid": "Invalid argument: mode must be one of following values: 'none', 'single' or 'multi'.",
|
||||
"mustContainCommands": "Invalid HTML: AppBars/Menus must contain only AppBarCommands/MenuCommands",
|
||||
"navBarContainerViewportAriaLabel": "Scrolling Container",
|
||||
"noAnchor": "Invalid argument: Showing flyout requires a DOM element as its parameter.",
|
||||
"noitemsManagerForCount": "Invalid operation: can't get count if no dataSource has been set",
|
||||
"notCompatibleWithSemanticZoom": "ListView can only be used with SemanticZoom if randomAccess loading behavior is specified.",
|
||||
"nullCommand": "Invalid argument: command must not be null",
|
||||
"off" : "Off",
|
||||
"on" : "On",
|
||||
"loadMorePagesIsDeprecated": "loadMorePages is deprecated. Invoking this function will not have any effect. Please refer to the 'ListView loading behaviors' SDK Sample for guidance on how to implement incremental load behavior.",
|
||||
"pagesToLoadIsDeprecated": "Invalid configuration: pagesToLoad is deprecated. The control will not use this property. Please refer to the 'ListView loading behaviors' SDK Sample for guidance on how to implement incremental load behavior.",
|
||||
"pagesToLoadThresholdIsDeprecated": "Invalid configuration: pagesToLoadThreshold is deprecated. The control will not use this property. Please refer to the 'ListView loading behaviors' SDK Sample for guidance on how to implement incremental load behavior.",
|
||||
"refreshCycleIdentified": "refresh cycle found, likely data inconsistency",
|
||||
"requiresCommands": "Invalid argument: commands must not be empty",
|
||||
"repeaterReentrancy":"Cannot modify Repeater data until Repeater has commited previous modification.",
|
||||
"resetGroupHeaderIsDeprecated": "resetGroupHeader may be altered or unavailable in future versions. Instead, mark the header element as disposable using WinJS.Utilities.markDisposable.",
|
||||
"resetItemIsDeprecated": "resetItem may be altered or unavailable in future versions. Instead, mark the element as disposable using WinJS.Utilities.markDisposable.",
|
||||
"searchBoxAriaLabel": "Searchbox",
|
||||
"searchBoxAriaLabelInputNoPlaceHolder": "Searchbox, enter to submit query, esc to clear text",
|
||||
"searchBoxAriaLabelInputPlaceHolder": "Searchbox, {0}, enter to submit query, esc to clear text",
|
||||
"searchBoxAriaLabelButton": "Click to submit query",
|
||||
"searchBoxAriaLabelQuery": "Suggestion: {0}",
|
||||
"_searchBoxAriaLabelQuery.comment": "Suggestion: query text (example: Suggestion: contoso)",
|
||||
"searchBoxAriaLabelSeparator": "Separator: {0}",
|
||||
"_searchBoxAriaLabelSeparator.comment": "Separator: separator text (example: Separator: People or Separator: Apps)",
|
||||
"searchBoxAriaLabelResult": "Result: {0}, {1}",
|
||||
"_searchBoxAriaLabelResult.comment": "Result: text, detailed text (example: Result: contoso, www.contoso.com)",
|
||||
"selectAMPM": "Select A.M P.M",
|
||||
"selectDay": "Select Day",
|
||||
"selectHour": "Select Hour",
|
||||
"selectMinute": "Select Minute",
|
||||
"selectMonth": "Select Month",
|
||||
"selectYear": "Select Year",
|
||||
"settingsFlyoutAriaLabel": "Settings Flyout",
|
||||
"settingsFlyoutWidthIsDeprecated": "SettingsFlyout.width may be altered or unavailable in future versions. Instead, style the CSS width property on elements with the .win-settingsflyout class.",
|
||||
"tentativeRating": "Tentative Rating",
|
||||
"timePicker": "Time Picker",
|
||||
"tooltipStringsIsInvalid": "Invalid argument: tooltipStrings must be null or an array of strings.",
|
||||
"unrated": "Unrated",
|
||||
"userRating": "User Rating",
|
||||
// AppBar Icons follow, the format of the ui.js and ui.resjson differ for
|
||||
// the AppBarIcon namespace. The remainder of the file therefore differs.
|
||||
// Code point comments are the icon glyphs in the 'Segoe UI Symbol' font.
|
||||
"appBarIcons\\previous": "\uE100", // group:Media
|
||||
"_appBarIcons\\previous.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\next": "\uE101", // group:Media
|
||||
"_appBarIcons\\next.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\play": "\uE102", // group:Media
|
||||
"_appBarIcons\\play.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\pause": "\uE103", // group:Media
|
||||
"_appBarIcons\\pause.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\edit": "\uE104", // group:File
|
||||
"_appBarIcons\\edit.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\save": "\uE105", // group:File
|
||||
"_appBarIcons\\save.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\clear": "\uE106", // group:File
|
||||
"_appBarIcons\\clear.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\delete": "\uE107", // group:File
|
||||
"_appBarIcons\\delete.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\remove": "\uE108", // group:File
|
||||
"_appBarIcons\\remove.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\add": "\uE109", // group:File
|
||||
"_appBarIcons\\add.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\cancel": "\uE10A", // group:Editing
|
||||
"_appBarIcons\\cancel.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\accept": "\uE10B", // group:General
|
||||
"_appBarIcons\\accept.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\more": "\uE10C", // group:General
|
||||
"_appBarIcons\\more.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\redo": "\uE10D", // group:Editing
|
||||
"_appBarIcons\\redo.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\undo": "\uE10E", // group:Editing
|
||||
"_appBarIcons\\undo.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\home": "\uE10F", // group:General
|
||||
"_appBarIcons\\home.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\up": "\uE110", // group:General
|
||||
"_appBarIcons\\up.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\forward": "\uE111", // group:General
|
||||
"_appBarIcons\\forward.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\right": "\uE111", // group:General
|
||||
"_appBarIcons\\right.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\back": "\uE112", // group:General
|
||||
"_appBarIcons\\back.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\left": "\uE112", // group:General
|
||||
"_appBarIcons\\left.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\favorite": "\uE113", // group:Media
|
||||
"_appBarIcons\\favorite.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\camera": "\uE114", // group:System
|
||||
"_appBarIcons\\camera.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\settings": "\uE115", // group:System
|
||||
"_appBarIcons\\settings.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\video": "\uE116", // group:Media
|
||||
"_appBarIcons\\video.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\sync": "\uE117", // group:Media
|
||||
"_appBarIcons\\sync.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\download": "\uE118", // group:Media
|
||||
"_appBarIcons\\download.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\mail": "\uE119", // group:Mail and calendar
|
||||
"_appBarIcons\\mail.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\find": "\uE11A", // group:Data
|
||||
"_appBarIcons\\find.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\help": "\uE11B", // group:General
|
||||
"_appBarIcons\\help.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\upload": "\uE11C", // group:Media
|
||||
"_appBarIcons\\upload.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\emoji": "\uE11D", // group:Communications
|
||||
"_appBarIcons\\emoji.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\twopage": "\uE11E", // group:Layout
|
||||
"_appBarIcons\\twopage.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\leavechat": "\uE11F", // group:Communications
|
||||
"_appBarIcons\\leavechat.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\mailforward": "\uE120", // group:Mail and calendar
|
||||
"_appBarIcons\\mailforward.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\clock": "\uE121", // group:General
|
||||
"_appBarIcons\\clock.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\send": "\uE122", // group:Mail and calendar
|
||||
"_appBarIcons\\send.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\crop": "\uE123", // group:Editing
|
||||
"_appBarIcons\\crop.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\rotatecamera": "\uE124", // group:System
|
||||
"_appBarIcons\\rotatecamera.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\people": "\uE125", // group:Communications
|
||||
"_appBarIcons\\people.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\closepane": "\uE126", // group:Layout
|
||||
"_appBarIcons\\closepane.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\openpane": "\uE127", // group:Layout
|
||||
"_appBarIcons\\openpane.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\world": "\uE128", // group:General
|
||||
"_appBarIcons\\world.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\flag": "\uE129", // group:Mail and calendar
|
||||
"_appBarIcons\\flag.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\previewlink": "\uE12A", // group:General
|
||||
"_appBarIcons\\previewlink.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\globe": "\uE12B", // group:Communications
|
||||
"_appBarIcons\\globe.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\trim": "\uE12C", // group:Editing
|
||||
"_appBarIcons\\trim.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\attachcamera": "\uE12D", // group:System
|
||||
"_appBarIcons\\attachcamera.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\zoomin": "\uE12E", // group:Layout
|
||||
"_appBarIcons\\zoomin.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\bookmarks": "\uE12F", // group:Editing
|
||||
"_appBarIcons\\bookmarks.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\document": "\uE130", // group:File
|
||||
"_appBarIcons\\document.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\protecteddocument": "\uE131", // group:File
|
||||
"_appBarIcons\\protecteddocument.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\page": "\uE132", // group:Layout
|
||||
"_appBarIcons\\page.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\bullets": "\uE133", // group:Editing
|
||||
"_appBarIcons\\bullets.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\comment": "\uE134", // group:Communications
|
||||
"_appBarIcons\\comment.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\mail2": "\uE135", // group:Mail and calendar
|
||||
"_appBarIcons\\mail2.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\contactinfo": "\uE136", // group:Communications
|
||||
"_appBarIcons\\contactinfo.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\hangup": "\uE137", // group:Communications
|
||||
"_appBarIcons\\hangup.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\viewall": "\uE138", // group:Data
|
||||
"_appBarIcons\\viewall.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\mappin": "\uE139", // group:General
|
||||
"_appBarIcons\\mappin.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\phone": "\uE13A", // group:Communications
|
||||
"_appBarIcons\\phone.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\videochat": "\uE13B", // group:Communications
|
||||
"_appBarIcons\\videochat.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\switch": "\uE13C", // group:Communications
|
||||
"_appBarIcons\\switch.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\contact": "\uE13D", // group:Communications
|
||||
"_appBarIcons\\contact.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\rename": "\uE13E", // group:File
|
||||
"_appBarIcons\\rename.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\pin": "\uE141", // group:System
|
||||
"_appBarIcons\\pin.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\musicinfo": "\uE142", // group:Media
|
||||
"_appBarIcons\\musicinfo.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\go": "\uE143", // group:General
|
||||
"_appBarIcons\\go.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\keyboard": "\uE144", // group:System
|
||||
"_appBarIcons\\keyboard.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\dockleft": "\uE145", // group:Layout
|
||||
"_appBarIcons\\dockleft.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\dockright": "\uE146", // group:Layout
|
||||
"_appBarIcons\\dockright.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\dockbottom": "\uE147", // group:Layout
|
||||
"_appBarIcons\\dockbottom.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\remote": "\uE148", // group:System
|
||||
"_appBarIcons\\remote.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\refresh": "\uE149", // group:Data
|
||||
"_appBarIcons\\refresh.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\rotate": "\uE14A", // group:Layout
|
||||
"_appBarIcons\\rotate.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\shuffle": "\uE14B", // group:Media
|
||||
"_appBarIcons\\shuffle.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\list": "\uE14C", // group:Editing
|
||||
"_appBarIcons\\list.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\shop": "\uE14D", // group:General
|
||||
"_appBarIcons\\shop.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\selectall": "\uE14E", // group:Data
|
||||
"_appBarIcons\\selectall.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\orientation": "\uE14F", // group:Layout
|
||||
"_appBarIcons\\orientation.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\import": "\uE150", // group:Data
|
||||
"_appBarIcons\\import.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\importall": "\uE151", // group:Data
|
||||
"_appBarIcons\\importall.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\browsephotos": "\uE155", // group:Media
|
||||
"_appBarIcons\\browsephotos.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\webcam": "\uE156", // group:System
|
||||
"_appBarIcons\\webcam.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\pictures": "\uE158", // group:Media
|
||||
"_appBarIcons\\pictures.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\savelocal": "\uE159", // group:File
|
||||
"_appBarIcons\\savelocal.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\caption": "\uE15A", // group:Media
|
||||
"_appBarIcons\\caption.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\stop": "\uE15B", // group:Media
|
||||
"_appBarIcons\\stop.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\showresults": "\uE15C", // group:Data
|
||||
"_appBarIcons\\showresults.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\volume": "\uE15D", // group:Media
|
||||
"_appBarIcons\\volume.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\repair": "\uE15E", // group:System
|
||||
"_appBarIcons\\repair.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\message": "\uE15F", // group:Communications
|
||||
"_appBarIcons\\message.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\page2": "\uE160", // group:Layout
|
||||
"_appBarIcons\\page2.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\calendarday": "\uE161", // group:Mail and calendar
|
||||
"_appBarIcons\\calendarday.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\calendarweek": "\uE162", // group:Mail and calendar
|
||||
"_appBarIcons\\calendarweek.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\calendar": "\uE163", // group:Mail and calendar
|
||||
"_appBarIcons\\calendar.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\characters": "\uE164", // group:Editing
|
||||
"_appBarIcons\\characters.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\mailreplyall": "\uE165", // group:Mail and calendar
|
||||
"_appBarIcons\\mailreplyall.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\read": "\uE166", // group:Mail and calendar
|
||||
"_appBarIcons\\read.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\link": "\uE167", // group:Communications
|
||||
"_appBarIcons\\link.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\accounts": "\uE168", // group:Communications
|
||||
"_appBarIcons\\accounts.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\showbcc": "\uE169", // group:Mail and calendar
|
||||
"_appBarIcons\\showbcc.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\hidebcc": "\uE16A", // group:Mail and calendar
|
||||
"_appBarIcons\\hidebcc.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\cut": "\uE16B", // group:Editing
|
||||
"_appBarIcons\\cut.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\attach": "\uE16C", // group:Mail and calendar
|
||||
"_appBarIcons\\attach.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\paste": "\uE16D", // group:Editing
|
||||
"_appBarIcons\\paste.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\filter": "\uE16E", // group:Data
|
||||
"_appBarIcons\\filter.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\copy": "\uE16F", // group:Editing
|
||||
"_appBarIcons\\copy.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\emoji2": "\uE170", // group:Mail and calendar
|
||||
"_appBarIcons\\emoji2.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\important": "\uE171", // group:Mail and calendar
|
||||
"_appBarIcons\\important.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\mailreply": "\uE172", // group:Mail and calendar
|
||||
"_appBarIcons\\mailreply.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\slideshow": "\uE173", // group:Media
|
||||
"_appBarIcons\\slideshow.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\sort": "\uE174", // group:Data
|
||||
"_appBarIcons\\sort.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\manage": "\uE178", // group:System
|
||||
"_appBarIcons\\manage.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\allapps": "\uE179", // group:System
|
||||
"_appBarIcons\\allapps.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\disconnectdrive": "\uE17A", // group:System
|
||||
"_appBarIcons\\disconnectdrive.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\mapdrive": "\uE17B", // group:System
|
||||
"_appBarIcons\\mapdrive.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\newwindow": "\uE17C", // group:System
|
||||
"_appBarIcons\\newwindow.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\openwith": "\uE17D", // group:System
|
||||
"_appBarIcons\\openwith.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\contactpresence": "\uE181", // group:Communications
|
||||
"_appBarIcons\\contactpresence.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\priority": "\uE182", // group:Mail and calendar
|
||||
"_appBarIcons\\priority.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\uploadskydrive": "\uE183", // group:File
|
||||
"_appBarIcons\\uploadskydrive.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\gototoday": "\uE184", // group:Mail and calendar
|
||||
"_appBarIcons\\gototoday.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\font": "\uE185", // group:Editing
|
||||
"_appBarIcons\\font.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\fontcolor": "\uE186", // group:Editing
|
||||
"_appBarIcons\\fontcolor.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\contact2": "\uE187", // group:Communications
|
||||
"_appBarIcons\\contact2.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\folder": "\uE188", // group:File
|
||||
"_appBarIcons\\folder.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\audio": "\uE189", // group:Media
|
||||
"_appBarIcons\\audio.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\placeholder": "\uE18A", // group:General
|
||||
"_appBarIcons\\placeholder.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\view": "\uE18B", // group:Layout
|
||||
"_appBarIcons\\view.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\setlockscreen": "\uE18C", // group:System
|
||||
"_appBarIcons\\setlockscreen.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\settile": "\uE18D", // group:System
|
||||
"_appBarIcons\\settile.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\cc": "\uE190", // group:Media
|
||||
"_appBarIcons\\cc.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\stopslideshow": "\uE191", // group:Media
|
||||
"_appBarIcons\\stopslideshow.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\permissions": "\uE192", // group:System
|
||||
"_appBarIcons\\permissions.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\highlight": "\uE193", // group:Editing
|
||||
"_appBarIcons\\highlight.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\disableupdates": "\uE194", // group:System
|
||||
"_appBarIcons\\disableupdates.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\unfavorite": "\uE195", // group:Media
|
||||
"_appBarIcons\\unfavorite.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\unpin": "\uE196", // group:System
|
||||
"_appBarIcons\\unpin.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\openlocal": "\uE197", // group:File
|
||||
"_appBarIcons\\openlocal.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\mute": "\uE198", // group:Media
|
||||
"_appBarIcons\\mute.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\italic": "\uE199", // group:Editing
|
||||
"_appBarIcons\\italic.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\underline": "\uE19A", // group:Editing
|
||||
"_appBarIcons\\underline.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\bold": "\uE19B", // group:Editing
|
||||
"_appBarIcons\\bold.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\movetofolder": "\uE19C", // group:File
|
||||
"_appBarIcons\\movetofolder.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\likedislike": "\uE19D", // group:Data
|
||||
"_appBarIcons\\likedislike.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\dislike": "\uE19E", // group:Data
|
||||
"_appBarIcons\\dislike.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\like": "\uE19F", // group:Data
|
||||
"_appBarIcons\\like.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\alignright": "\uE1A0", // group:Editing
|
||||
"_appBarIcons\\alignright.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\aligncenter": "\uE1A1", // group:Editing
|
||||
"_appBarIcons\\aligncenter.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\alignleft": "\uE1A2", // group:Editing
|
||||
"_appBarIcons\\alignleft.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\zoom": "\uE1A3", // group:Layout
|
||||
"_appBarIcons\\zoom.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\zoomout": "\uE1A4", // group:Layout
|
||||
"_appBarIcons\\zoomout.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\openfile": "\uE1A5", // group:File
|
||||
"_appBarIcons\\openfile.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\otheruser": "\uE1A6", // group:System
|
||||
"_appBarIcons\\otheruser.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\admin": "\uE1A7", // group:System
|
||||
"_appBarIcons\\admin.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\street": "\uE1C3", // group:General
|
||||
"_appBarIcons\\street.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\map": "\uE1C4", // group:General
|
||||
"_appBarIcons\\map.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\clearselection": "\uE1C5", // group:Data
|
||||
"_appBarIcons\\clearselection.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\fontdecrease": "\uE1C6", // group:Editing
|
||||
"_appBarIcons\\fontdecrease.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\fontincrease": "\uE1C7", // group:Editing
|
||||
"_appBarIcons\\fontincrease.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\fontsize": "\uE1C8", // group:Editing
|
||||
"_appBarIcons\\fontsize.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\cellphone": "\uE1C9", // group:Communications
|
||||
"_appBarIcons\\cellphone.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\reshare": "\uE1CA", // group:Communications
|
||||
"_appBarIcons\\reshare.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\tag": "\uE1CB", // group:Data
|
||||
"_appBarIcons\\tag.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\repeatone": "\uE1CC", // group:Media
|
||||
"_appBarIcons\\repeatone.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\repeatall": "\uE1CD", // group:Media
|
||||
"_appBarIcons\\repeatall.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\outlinestar": "\uE1CE", // group:Data
|
||||
"_appBarIcons\\outlinestar.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\solidstar": "\uE1CF", // group:Data
|
||||
"_appBarIcons\\solidstar.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\calculator": "\uE1D0", // group:General
|
||||
"_appBarIcons\\calculator.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\directions": "\uE1D1", // group:General
|
||||
"_appBarIcons\\directions.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\target": "\uE1D2", // group:General
|
||||
"_appBarIcons\\target.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\library": "\uE1D3", // group:Media
|
||||
"_appBarIcons\\library.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\phonebook": "\uE1D4", // group:Communications
|
||||
"_appBarIcons\\phonebook.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\memo": "\uE1D5", // group:Communications
|
||||
"_appBarIcons\\memo.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\microphone": "\uE1D6", // group:System
|
||||
"_appBarIcons\\microphone.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\postupdate": "\uE1D7", // group:Communications
|
||||
"_appBarIcons\\postupdate.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\backtowindow": "\uE1D8", // group:Layout
|
||||
"_appBarIcons\\backtowindow.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\fullscreen": "\uE1D9", // group:Layout
|
||||
"_appBarIcons\\fullscreen.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\newfolder": "\uE1DA", // group:File
|
||||
"_appBarIcons\\newfolder.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\calendarreply": "\uE1DB", // group:Mail and calendar
|
||||
"_appBarIcons\\calendarreply.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\unsyncfolder": "\uE1DD", // group:File
|
||||
"_appBarIcons\\unsyncfolder.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\reporthacked": "\uE1DE", // group:Communications
|
||||
"_appBarIcons\\reporthacked.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\syncfolder": "\uE1DF", // group:File
|
||||
"_appBarIcons\\syncfolder.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\blockcontact": "\uE1E0", // group:Communications
|
||||
"_appBarIcons\\blockcontact.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\switchapps": "\uE1E1", // group:System
|
||||
"_appBarIcons\\switchapps.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\addfriend": "\uE1E2", // group:Communications
|
||||
"_appBarIcons\\addfriend.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\touchpointer": "\uE1E3", // group:System
|
||||
"_appBarIcons\\touchpointer.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\gotostart": "\uE1E4", // group:System
|
||||
"_appBarIcons\\gotostart.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\zerobars": "\uE1E5", // group:System
|
||||
"_appBarIcons\\zerobars.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\onebar": "\uE1E6", // group:System
|
||||
"_appBarIcons\\onebar.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\twobars": "\uE1E7", // group:System
|
||||
"_appBarIcons\\twobars.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\threebars": "\uE1E8", // group:System
|
||||
"_appBarIcons\\threebars.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\fourbars": "\uE1E9", // group:System
|
||||
"_appBarIcons\\fourbars.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\scan": "\uE294", // group:General
|
||||
"_appBarIcons\\scan.comment": "{Locked:qps-ploc,qps-plocm}",
|
||||
"appBarIcons\\preview": "\uE295", // group:General
|
||||
"_appBarIcons\\preview.comment": "{Locked:qps-ploc,qps-plocm}"
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
}(this));
|
||||