diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2020-05-06 15:21:54 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2020-05-06 15:21:54 +0200 |
| commit | 9c18073017b5cc2334bf1867c004bfc74ba5a92a (patch) | |
| tree | 6e0d18d602babd4532499f25224c36aed9af61a5 /StoneIsland | |
| parent | 91eff5910a8a7d55159bdeb0f5b8d4945be0da48 (diff) | |
update build
Diffstat (limited to 'StoneIsland')
86 files changed, 1042 insertions, 504 deletions
diff --git a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.bin b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.bin Binary files differindex 16a05746..fbc77f3a 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.bin +++ b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.bin diff --git a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.bin b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.bin Binary files differindex afc21d86..7288e2f3 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.bin +++ b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.bin diff --git a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.bin b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.bin Binary files differindex 654d6093..5dce2d6f 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.bin +++ b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.bin diff --git a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lock b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lock Binary files differindex 20e5a3a0..ece2358e 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lock +++ b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lock diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock Binary files differindex 11c32db9..1ed23d39 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock +++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock Binary files differindex 8e6837da..1be520bb 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock +++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock diff --git a/StoneIsland/platforms/android/AndroidManifest.xml b/StoneIsland/platforms/android/AndroidManifest.xml index 4949ed38..e5232423 100755 --- a/StoneIsland/platforms/android/AndroidManifest.xml +++ b/StoneIsland/platforms/android/AndroidManifest.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<manifest android:hardwareAccelerated="true" android:versionCode="6124" android:versionName="1.2.4" package="us.okfoc.stoneisland" xmlns:android="http://schemas.android.com/apk/res/android"> +<manifest android:hardwareAccelerated="true" android:versionCode="6126" android:versionName="1.2.6" package="us.okfoc.stoneisland" xmlns:android="http://schemas.android.com/apk/res/android"> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true"> diff --git a/StoneIsland/platforms/android/assets/www/css/account.css b/StoneIsland/platforms/android/assets/www/css/account.css index 12adb2d9..998b6eac 100755 --- a/StoneIsland/platforms/android/assets/www/css/account.css +++ b/StoneIsland/platforms/android/assets/www/css/account.css @@ -557,16 +557,20 @@ input.switch:checked + label:after { } .container-row .half-input input { -margin-top:0px + margin-top:0px; } .newuser { display:inline-block; padding:18px; text-decoration:underline + border: 1px solid black; + margin: 0 8px 0 0; } .forgotpassword { padding:18px; text-decoration:underline -}
\ No newline at end of file + border: 1px solid black; + margin: 0 0 0 8px; +} diff --git a/StoneIsland/platforms/android/assets/www/css/blogs.css b/StoneIsland/platforms/android/assets/www/css/blogs.css index c4b74c19..ee54a31f 100755 --- a/StoneIsland/platforms/android/assets/www/css/blogs.css +++ b/StoneIsland/platforms/android/assets/www/css/blogs.css @@ -6,20 +6,23 @@ margin: 15px 0 0; text-align: center; text-transform:uppercase; - display:flex; + display: flex; flex-direction: row; justify-content: center; align-items: center; flex-wrap: wrap; } #story .links li { + display: block; + list-style-type: none; + font-size: 1rem; +} +#story .links li div { display: flex; justify-content: center; align-items: center; height: 48px; padding: 0 15px; - list-style-type: none; - font-size: 1rem; } .accessible #story .links { flex-wrap: wrap; @@ -166,6 +169,10 @@ position:absolute; display:block; } +.accessible .gallery-left, +.accessible .gallery-right { + width: 48px; +} @-webkit-keyframes gallery-fade { 0%{opacity:0} @@ -259,14 +266,25 @@ ul.links { width: 100%; pointer-events: none; } -#archive .menu .items, -#archive .row .image, -#archive .row .text { +#archive .menu .items { position: absolute; top: 50%; left: 50%; transform-origin: 50% 50%; transform: translateZ(0) translateX(-50%) translateY(-50%); } +#archive .row .image { + position: absolute; + top: 10%; left: 50%; + transform-origin: 50% 50%; + transform: translateZ(0) translateX(-50%) translateY(0%); +} +#archive .row .text { + display: flex; + justify-content: center; + align-items: center; + min-height: 80vh; + padding: 16px 0; +} #archive .menu { position: fixed; display: none; @@ -278,7 +296,8 @@ ul.links { .accessible #archive .row .image, .accessible #archive .row .text { position: relative; - top: auto; left: auto; + top: auto; + left: auto; transform: translateZ(0); } @@ -338,6 +357,7 @@ ul.links { } #archive .row .image { width: 100%; height: 100%; + max-height: 80vh; background-repeat: no-repeat; background-size: contain; background-position: center center; @@ -348,7 +368,7 @@ ul.links { background-position: center center; background-image: url('../img/spinner.gif') !important; } -#archive .row .text { +#archive .row .text > div { width: 80%; } .accessible #archive .row .image { diff --git a/StoneIsland/platforms/android/assets/www/css/index.css b/StoneIsland/platforms/android/assets/www/css/index.css index 83b3353a..2130c675 100755 --- a/StoneIsland/platforms/android/assets/www/css/index.css +++ b/StoneIsland/platforms/android/assets/www/css/index.css @@ -102,6 +102,19 @@ html.vscroll { .error_hilite ~ span.err { display: flex; } +.err_heading { + display: none; +} +.err_heading.error_visible { + display: flex; + text-align: center; + justify-content: center; + align-items: center; + font-size: 0.875rem; + height: 64px; + padding: 12px; + color: red !important; +} span.err { display: none; text-align: center; diff --git a/StoneIsland/platforms/android/assets/www/css/nav.css b/StoneIsland/platforms/android/assets/www/css/nav.css index f555ce99..705c0824 100755 --- a/StoneIsland/platforms/android/assets/www/css/nav.css +++ b/StoneIsland/platforms/android/assets/www/css/nav.css @@ -2,7 +2,7 @@ /* NAV BAR */ #nav { - position: absolute; + position: fixed; top: 0; left: 0; width: 249px; -webkit-transform: translateZ(0) translateX(-249px); @@ -10,7 +10,7 @@ background: #fff; } #content { - position: absolute; + position: fixed; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; @@ -23,6 +23,10 @@ .nav #content { -webkit-transform: translateZ(0) translateX(249px); } +.accessible #nav, +.accessible #content { + position: absolute; +} #nav .logo { background-image: url(../img/small-logo.png); background-repeat: no-repeat; @@ -85,19 +89,62 @@ #nav .social { position: absolute; - bottom: 0; + top: calc(100vh - 48px); left: 0; border-top: 1px solid #ddd; + display: flex; + flex-direction: row; } #nav .social span { display: block; - float: left; width: 61px; border-left: 1px solid #ddd; color: #666; font-size: 1.125rem; - padding: 5px 0; + height: 48px; text-align: center; + justify-content: center; + align-items: center; + display: flex; +} + +#nav .close { + position: absolute; + top: 0; + right: 0; + width: 48px; + height: 48px; + cursor: pointer; + text-align: center; + overflow: hidden; + -webkit-transition: all ease 200ms; + -moz-transition: all ease 200ms; + -o-transition: all ease 200ms; + transition: all ease 200ms; +} +#nav .close:after, +#nav .close:before { + content: ""; + height: 1px; + width: 24px; + background: #888; + position: absolute; + left: 25%; + top: 50%; +} +#nav .close:before { + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +#nav .close:after { + -webkit-transform: rotate(-45deg); + -moz-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + -o-transform: rotate(-45deg); + transform: rotate(-45deg); } #nav-container { @@ -198,7 +245,8 @@ padding-bottom:0px; /* HEADER AND FOOTER ON MOST PAGES */ #header { - display: block; + display: flex; + justify-content: space-between; position: absolute; top: 0; left: 0; width: 100%; height: 48px; @@ -216,9 +264,15 @@ padding-bottom:0px; top:0px; } #header .burger { - display: inline-block; + display: flex; font-size: 24px; - padding: 12px 13px 7px; + width: 48px; + height: 48px; + padding-top: 4px; + box-sizing: border-box; + align-items: center; + flex-direction: row; + justify-content: center; } #header .cart_rapper { @@ -268,7 +322,7 @@ padding-bottom:0px; #footer { display: block; - position: absolute; + position: fixed; bottom: 0; left: 0; width: 100%; background: #fff; border-top: 1px solid #ddd; @@ -296,13 +350,16 @@ padding-bottom:0px; #footer .ok.disabled { color: #666; } +.accessible #footer { + position: absolute; +} /* CURTAIN FOR LOGIN AND SELECTOR VIEWS */ #curtain { pointer-events: none; - position: absolute; + position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255,255,255,0.8); @@ -312,6 +369,9 @@ padding-bottom:0px; -webkit-transform: translateZ(0) translateX(0); transform: translateZ(0) translateX(0); } +.accessible #curtain { + position: absolute; +} #curtain.visible { pointer-events: auto; opacity: 1; diff --git a/StoneIsland/platforms/android/assets/www/css/vendor/imageviewer.css b/StoneIsland/platforms/android/assets/www/css/vendor/imageviewer.css index af346f08..739c37a1 100644 --- a/StoneIsland/platforms/android/assets/www/css/vendor/imageviewer.css +++ b/StoneIsland/platforms/android/assets/www/css/vendor/imageviewer.css @@ -22,8 +22,8 @@ } .iv-close { - width: 32px; - height: 32px; + width: 48px; + height: 48px; position: fixed; right: 20px; top: 20px; diff --git a/StoneIsland/platforms/android/assets/www/index.html b/StoneIsland/platforms/android/assets/www/index.html index a422832c..568161e5 100755 --- a/StoneIsland/platforms/android/assets/www/index.html +++ b/StoneIsland/platforms/android/assets/www/index.html @@ -16,6 +16,7 @@ <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height"> + <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/fonts/fonts.css"> <link rel="stylesheet" type="text/css" href="css/fonts/ionicons.css"> <link rel="stylesheet" type="text/css" href="css/vendor/flickity.css"> @@ -37,6 +38,7 @@ <span role="menu" class="menu"> <div class="logo" aria-label="Stone Island"></div> + <div class="close" role="button" aria-label="Close menu"></div> <div role="menu" aria-label="Main Menu" class="main_menu"> <span role="menuitem" class="store">STORE</span> <span role="menuitem" class="hub">HUB</span> @@ -169,12 +171,14 @@ <script type="text/html" class="template"> <div class="image" aria-label="{{label}}" style="background-image:url({{image}})"></div> <div class="text"> - <h2> - <b>{{code}}</b><br> - {{label}} - </h2> - <div class="body"> - {{caption}} + <div> + <h2> + <b>{{code}}</b><br> + {{label}} + </h2> + <div class="body"> + {{caption}} + </div> </div> </div> @@ -288,7 +292,7 @@ <div class="loader"></div> <div class="content"> <script type="text/html" class="template"> - <div role="link" class="item" data-code="{{code8}}"> + <div role="link" class="item" data-code="{{code8}}" aria-label="{{title}}"> <img src="{{image}}" alt="{{title}}"> </div> </script> @@ -377,6 +381,7 @@ <div class="form"> <div class="container"> <div class="container-row"> + <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <label for="login_email_address">Email Address</label> <input type="email" id="login_email_address" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="1"> <span class='err'></span> @@ -419,6 +424,7 @@ <div class="form"> <div class="container"> <div class="container-row"> + <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <label for="signup_name">First Name</label> <input type="text" id="signup_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> <span class='err'></span> @@ -502,6 +508,7 @@ <div class="form"> <div class="container"> <div class="container-row"> + <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <label for="profile_name">First Name</label> <input type="text" id="profile_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> <span class='err'></span> @@ -575,6 +582,7 @@ <div class="form"> <div class="container"> <div class="container-row"> + <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <div class="address"></div> </div> <div class="container-fill"> @@ -599,6 +607,7 @@ <div class="form"> <div class="container"> <div class="container-row"> + <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <div class="cc"></div> <div class="address"></div> </div> @@ -875,6 +884,7 @@ <div class="billing-container container"> <div class="container-row"> + <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <div class="checkbox-container"> <div class="checkbox-row"> diff --git a/StoneIsland/platforms/android/assets/www/js/lib/account/ProfileView.js b/StoneIsland/platforms/android/assets/www/js/lib/account/ProfileView.js index 4a081b38..1bbfff22 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/account/ProfileView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/account/ProfileView.js @@ -49,7 +49,7 @@ var ProfileView = FormView.extend({ "Name": "Please enter your first name.", "Surname": "Please enter your last name.", "Email": "Please enter a valid email address.", - "BirthDay": "Please your birthday.", + // "BirthDay": "Please enter your birthday.", }, validate_fields: function(data, errors){ diff --git a/StoneIsland/platforms/android/assets/www/js/lib/auth/LoginView.js b/StoneIsland/platforms/android/assets/www/js/lib/auth/LoginView.js index 7458d159..4927bea2 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/auth/LoginView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/auth/LoginView.js @@ -33,7 +33,7 @@ var LoginView = FormView.extend({ }, forgot_password: function(){ - window.open("http://www.stoneisland.com/", '_system') + window.open("https://www.stoneisland.com/yTos/Plugins/AreaLocalizer/Redirectarea?area=Account&controllerName=User&actionName=Index", '_system') }, validate_presence: { diff --git a/StoneIsland/platforms/android/assets/www/js/lib/auth/SignupView.js b/StoneIsland/platforms/android/assets/www/js/lib/auth/SignupView.js index 66d8f239..b16ff887 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/auth/SignupView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/auth/SignupView.js @@ -114,19 +114,19 @@ var SignupView = FormView.extend({ }, error: function(data){ - try { - data = JSON.parse(data.responseText) - app.signup.show_errors([[ 'Name', data['Error']['Description'] ]]) - } - catch (e) { - switch (data.status) { - case 409: - app.signup.show_errors([[ 'Email', "Email is already in use." ]]) - break - default: + switch (data.status) { + case 409: + app.signup.show_errors([[ 'Email', "Email is already in use." ]]) + break + default: + try { + data = JSON.parse(data.responseText) + app.signup.show_errors([[ 'Name', data['Error']['Description'] ]]) + } + catch (e) { app.signup.show_errors([[ 'Name', "There was an unknown error." ]]) - break - } + } + break } }, diff --git a/StoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js b/StoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js index 0b3b17d7..71f1cc0c 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js @@ -40,7 +40,7 @@ var StoryView = ScrollableView.extend({ .replace(/{{body}}/, row.body.replace(/\n/g, "<br>")) var li = document.createElement("li") li.dataset.id = row.id - li.innerHTML = row.title + li.innerHTML = "<div>" + row.title + "</div>" li.setAttribute('role', "link") this.sections[row.id] = row this.$links.append(li) diff --git a/StoneIsland/platforms/android/assets/www/js/lib/etc/accessibility.js b/StoneIsland/platforms/android/assets/www/js/lib/etc/accessibility.js index 31ddaf23..c66143cc 100644 --- a/StoneIsland/platforms/android/assets/www/js/lib/etc/accessibility.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/etc/accessibility.js @@ -30,8 +30,8 @@ var accessibility = (function() { MobileAccessibility.getTextZoom(function getTextZoomCallback(textZoom) { console.log('WebView text should be scaled to the preferred value ' + textZoom + '%') if (textZoom > 100) { - app.accessible = true - $("html").addClass('accessible') + // app.accessible = true + // $("html").addClass('accessible') } }); MobileAccessibility.isVoiceOverRunning(function(state){ diff --git a/StoneIsland/platforms/android/assets/www/js/lib/nav/CurtainView.js b/StoneIsland/platforms/android/assets/www/js/lib/nav/CurtainView.js index ddb6bc19..d444fd60 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/nav/CurtainView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/nav/CurtainView.js @@ -28,7 +28,7 @@ var CurtainView = View.extend({ }, click: function(){ - if (document.body.classList.contains("nav") && !app.accessible) { + if (document.body.classList.contains("nav")) { app.nav.hide() } if (app.selector.visible) { diff --git a/StoneIsland/platforms/android/assets/www/js/lib/nav/NavView.js b/StoneIsland/platforms/android/assets/www/js/lib/nav/NavView.js index 1655b7f8..a9a1938e 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/nav/NavView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/nav/NavView.js @@ -37,6 +37,8 @@ var NavView = View.extend({ "click .insta": "insta", "click .tw": "tw", "click .yt": "yt", + + "click .close": "close", }, initialize: function(){ @@ -161,7 +163,7 @@ var NavView = View.extend({ fb: function(){ - window.open(is_ios ? "facebook://profile/231623463406" : "https://www.facebook.com/StoneIsland", '_system') + window.open("https://www.facebook.com/StoneIsland", '_system') }, insta: function(){ window.open("https://instagram.com/stoneisland_official", '_system') @@ -173,4 +175,8 @@ var NavView = View.extend({ window.open("https://www.youtube.com/user/StoneIslandOfficial", '_system') }, + close: function(){ + this.hide() + }, + }) diff --git a/StoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js b/StoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js index 3181fddd..08802fa9 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js @@ -104,6 +104,7 @@ var SerializableView = View.extend({ console.log("showing errors") console.log(errors) var msgs = [] + this.$('.err_heading').addClass('error_visible') this.$('.error_hilite').removeClass('error_hilite') this.$('.err').html('') errors.forEach(function(e, i){ @@ -114,6 +115,9 @@ var SerializableView = View.extend({ if (el && el.nodeName === 'SELECT') { $el.parent().addClass('error_hilite') $el.parent().next('.err').html(e[1]) + } else if (el && el.type === 'date') { + $el.parent().addClass('error_hilite') + $el.parent().next('.err').html(e[1]) } else { $el.addClass('error_hilite') $el.next('.err').html(e[1]) @@ -123,6 +127,9 @@ var SerializableView = View.extend({ }.bind(this)) // this.$msg.html(msgs.join("<br>")) this.$msg.addClass('alert-notice') + if (app.view.scroller) { + app.view.scroller.scrollTo(0, 0) + } }, hide_errors: function(){ @@ -137,6 +144,8 @@ var SerializableView = View.extend({ save: function(e){ e && e.preventDefault() + this.$('.err_heading').removeClass('error_visible') + var valid = this.validate() if (valid.errors.length) { this.show_errors(valid.errors) diff --git a/StoneIsland/platforms/android/assets/www/js/vendor/imageviewer.js b/StoneIsland/platforms/android/assets/www/js/vendor/imageviewer.js index 847c6070..d80ae7ed 100644 --- a/StoneIsland/platforms/android/assets/www/js/vendor/imageviewer.js +++ b/StoneIsland/platforms/android/assets/www/js/vendor/imageviewer.js @@ -85,7 +85,7 @@ //add a full screen view $(function () { if(!$body.length) $body = $('body'); - $body.append('<div id="iv-container">' + imageViewHtml + '<div class="iv-close"></div><div>'); + $body.append('<div id="iv-container">' + imageViewHtml + '<div class="iv-close" role="button" aria-label="Close this image."></div><div>'); imageViewHtml = null }); @@ -674,10 +674,10 @@ height: handleHeight + '%' }); }, - show: function (image, hiResImg) { + show: function (image, hiResImg, message) { if (this._fullPage) { this.container.show(); - if (image) this.load(image, hiResImg); + if (image) this.load(image, hiResImg, message); } }, hide: function () { @@ -701,9 +701,10 @@ $window.off(eventSuffix); return null; }, - load: function (image, hiResImgSrc) { + load: function (image, hiResImgSrc, message) { var self = this, container = this.container; + message = message || 'Viewing high-resolution image. Pinch to zoom or tap to close.' container.find('.iv-snap-image,.iv-large-image').remove(); var snapImageWrap = this.container.find('.iv-snap-image-wrap'); @@ -711,9 +712,11 @@ var snapImage = new Image snapImage.className = 'iv-snap-image' snapImage.src = image + snapImage.setAttribute('aria-label', message) var largeImage = new Image largeImage.className = 'iv-large-image' + largeImage.setAttribute('aria-label', message) var hiResImg; diff --git a/StoneIsland/platforms/android/res/xml/config.xml b/StoneIsland/platforms/android/res/xml/config.xml index ad4929e6..c9de73ec 100644 --- a/StoneIsland/platforms/android/res/xml/config.xml +++ b/StoneIsland/platforms/android/res/xml/config.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<widget android-versionCode="6124" id="us.okfoc.stoneisland" version="1.2.4" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> +<widget android-versionCode="6126" id="us.okfoc.stoneisland" version="1.2.6" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <feature name="InAppBrowser"> <param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" /> </feature> diff --git a/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist b/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist index 1020c69e..4f3362e8 100644 --- a/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist @@ -12,7 +12,7 @@ <key>Cordova.xcscheme_^#shared#^_</key> <dict> <key>orderHint</key> - <integer>3</integer> + <integer>4</integer> </dict> <key>CordovaLib.xcscheme</key> <dict> @@ -22,7 +22,7 @@ <key>CordovaLib.xcscheme_^#shared#^_</key> <dict> <key>orderHint</key> - <integer>2</integer> + <integer>3</integer> </dict> </dict> </dict> diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist b/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist index 492b3406..b7bca5d8 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist @@ -9,9 +9,9 @@ <key>CFBundleIdentifier</key> <string>us.okfoc.stoneisland</string> <key>CFBundleShortVersionString</key> - <string>1.2.4</string> + <string>1.3.1</string> <key>CFBundleVersion</key> - <string>1.2.4</string> + <string>1.3.1</string> <key>SigningIdentity</key> <string>iPhone Developer: Francesca Agusani (3ECUPBTQ5W)</string> <key>Team</key> @@ -20,7 +20,7 @@ <key>ArchiveVersion</key> <integer>2</integer> <key>CreationDate</key> - <date>2019-10-15T13:42:26Z</date> + <date>2020-03-24T19:43:52Z</date> <key>Name</key> <string>Stone Island</string> <key>SchemeName</key> diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car Binary files differindex 6c786a61..fa0be41c 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib Binary files differdeleted file mode 100644 index a5c0a5af..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib +++ /dev/null diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib/objects-13.0+.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib/objects-13.0+.nib Binary files differnew file mode 100644 index 00000000..b11078f5 --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib/objects-13.0+.nib diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib/runtime.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib/runtime.nib Binary files differnew file mode 100644 index 00000000..4e0ef4db --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib/runtime.nib diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib Binary files differdeleted file mode 100644 index 200094d3..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib +++ /dev/null diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib/objects-13.0+.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib/objects-13.0+.nib Binary files differnew file mode 100644 index 00000000..5de432f5 --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib/objects-13.0+.nib diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib/runtime.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib/runtime.nib Binary files differnew file mode 100644 index 00000000..a38cdd57 --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib/runtime.nib diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist Binary files differindex 1f6abc6f..4615ed35 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib Binary files differdeleted file mode 100644 index 26c95177..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib +++ /dev/null diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib/objects-13.0+.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib/objects-13.0+.nib Binary files differnew file mode 100644 index 00000000..bc7ac1d6 --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib/objects-13.0+.nib diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib/runtime.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib/runtime.nib Binary files differnew file mode 100644 index 00000000..2ce7cc28 --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib/runtime.nib diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island Binary files differindex 1ba4f7d6..30448412 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources index f426ba0f..3b2ca5d8 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources @@ -94,19 +94,27 @@ </data> <key>Assets.car</key> <data> - Kwar1Lpeq1PSL1k9Htg3b88BLOU= + UzpkteYLyk6goZL/VblItaK+tuI= </data> - <key>CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key> + <key>CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib/objects-13.0+.nib</key> <data> - EZSKMENet04qnojPKjTy87Ck+kU= + VFfP8G6YpQNCE9+YP8TshXoRsbM= + </data> + <key>CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib/runtime.nib</key> + <data> + nY4XgF1F9CQz2EzIWv1UnRILPJY= </data> <key>CDVLaunchScreen.storyboardc/Info.plist</key> <data> n2t8gsDpfE6XkhG31p7IQJRxTxU= </data> - <key>CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib</key> + <key>CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib/objects-13.0+.nib</key> + <data> + flKFZIdt4NGnXBy4VMQsFEIY6Ss= + </data> + <key>CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib/runtime.nib</key> <data> - FjF8wMpbNRaWuLABS8u/DSNBgAQ= + xN5k2g+B+hbuRefGGwG1VIYXjGE= </data> <key>CDVNotification.bundle/beep.wav</key> <data> @@ -114,11 +122,15 @@ </data> <key>Info.plist</key> <data> - zgJX+PBuvZOn7XqgLJ/VpeYUnIo= + BF4yEnRx3C0JCy4g51I2pcZHCCo= </data> - <key>MainViewController.nib</key> + <key>MainViewController.nib/objects-13.0+.nib</key> <data> - KTqOI00Es51zeiXqiLVhUoSBkik= + Vs2JX6XhI7Z46fXsbspAW/l5QOk= + </data> + <key>MainViewController.nib/runtime.nib</key> + <data> + dAGDe2Cs/GAlO48LNC5//wE9WxU= </data> <key>PkgInfo</key> <data> @@ -126,7 +138,7 @@ </data> <key>config.xml</key> <data> - fz52wQVVOwlkB35iTIUIMBC2dhA= + qHjCgw4SROklA7TNnMhgq1x9aqU= </data> <key>embedded.mobileprovision</key> <data> @@ -158,15 +170,15 @@ </data> <key>www/css/account.css</key> <data> - eKr1BA3EAWpcTFL4ld37jF0TxzQ= + j7dvfwxGM0FLffK3rTQAhYyuHsk= </data> <key>www/css/blogs.css</key> <data> - 09ZjZlLNOQw7OoxGbKdCihckd6E= + qzsHGnVfspjF+ycTwycgCesQf80= </data> <key>www/css/cart.css</key> <data> - ZyDIXw2I1bbu2kJ6WiTmhqjK9t4= + ewfnVjJwi94kdCY2SD3ptN+UTHk= </data> <key>www/css/fonts/andale_mono.ttf</key> <data> @@ -182,7 +194,7 @@ </data> <key>www/css/fonts/ionicons.css</key> <data> - gzPAFostLVCiwxkgMsSWmTe+A/c= + 2i13fjCPzZ5vc5cYuVrEd1s9A8w= </data> <key>www/css/fonts/ionicons.eot</key> <data> @@ -222,11 +234,11 @@ </data> <key>www/css/index.css</key> <data> - FjZaDXAbT/iW9g++u7vSjJpvqqo= + 45Lx1pUI5yADc7ABlk+wcRSsQBY= </data> <key>www/css/nav.css</key> <data> - 3YTjhSmLpBk2MEfHRzG27nvpHHY= + Tc5/Z3qa/5qShOCeukuP/tl5yos= </data> <key>www/css/products.css</key> <data> @@ -238,7 +250,7 @@ </data> <key>www/css/vendor/imageviewer.css</key> <data> - U9IUnW7ZX4TgGTq33Seu9eZgogE= + giAUAMwC7nmBxqqJX8eTEROTwMc= </data> <key>www/db.json</key> <data> @@ -350,11 +362,11 @@ </data> <key>www/index.html</key> <data> - j+k8ujaqcnpJuX/czMBrEaZz8jk= + mvnOdc6Ioj3CjkZxyRbZN8+mfNY= </data> <key>www/js/index.js</key> <data> - HKZPM32zArXyA4bnl5aP8A4JVic= + X/zoPZmQ7CCcJfv+2xbajvMfDLY= </data> <key>www/js/lib/_router.js</key> <data> @@ -390,7 +402,7 @@ </data> <key>www/js/lib/auth/LoginView.js</key> <data> - LuGl4dL4Jx/rfR8Gl/j5e9+R3pc= + mJ1ky9I35XlwdgyO2IpUNqmdkcs= </data> <key>www/js/lib/auth/LogoutView.js</key> <data> @@ -398,7 +410,7 @@ </data> <key>www/js/lib/auth/SignupView.js</key> <data> - MTcOfYFwkKox30nI3rIwIiCI9is= + G9BQAksv6lgg2OQASgzX3gNqfmU= </data> <key>www/js/lib/blogs/ArchiveView.js</key> <data> @@ -410,7 +422,7 @@ </data> <key>www/js/lib/blogs/HubView.js</key> <data> - y1ppo+9KlLX9tA/tyccz1eBydP4= + 3fdJKOCQX8wkqON5uQ5nHiA43ng= </data> <key>www/js/lib/blogs/PageView.js</key> <data> @@ -418,11 +430,11 @@ </data> <key>www/js/lib/blogs/StoryView.js</key> <data> - M7vHWJ+TGmLMIZmfE5+/4yoqOA8= + +h7ITCEcPjHRxvSit3K4KCs55ag= </data> <key>www/js/lib/cart/CartConfirm.js</key> <data> - iuq4CUXVug+BpuBjg2s30SsDnKo= + o3Max6T4P6h6/x/c2p95kabhRq8= </data> <key>www/js/lib/cart/CartError.js</key> <data> @@ -430,15 +442,15 @@ </data> <key>www/js/lib/cart/CartPayment.js</key> <data> - Rh7MFQwa1qzO7ocaH66eUldcdb8= + cj75r7bvMwxO8obNGagxhrxEE4I= </data> <key>www/js/lib/cart/CartShipping.js</key> <data> - Q6Zke/dqJwUl05QHcahi/ji2Mps= + Y/JkKZsmqPKssku8aF8Mc2JgxRU= </data> <key>www/js/lib/cart/CartSummary.js</key> <data> - YY45GTYdRxyOtQLV4xfMijFFCO4= + OB2IxRjCajK4rM1BNke6GjfLc4g= </data> <key>www/js/lib/cart/CartThanks.js</key> <data> @@ -450,7 +462,7 @@ </data> <key>www/js/lib/etc/accessibility.js</key> <data> - WADhuojQGHPJ5xCqJ0lp+/1uIuM= + LegUG4+94dBf3mRwgdCq9KnehKw= </data> <key>www/js/lib/etc/backup_db.js</key> <data> @@ -486,7 +498,7 @@ </data> <key>www/js/lib/nav/CurtainView.js</key> <data> - jMM1vX2zKATWpbmMS3QGayL1mvw= + VHa9pwxWtQ31RhBknlTCAqrKA7c= </data> <key>www/js/lib/nav/FooterView.js</key> <data> @@ -502,7 +514,7 @@ </data> <key>www/js/lib/nav/NavView.js</key> <data> - A4xYkR6n0/TGMBRstzRWfCqinds= + doSVdvRAK0s02oiRxBhrgBhg3IA= </data> <key>www/js/lib/nav/SearchView.js</key> <data> @@ -514,15 +526,15 @@ </data> <key>www/js/lib/products/CollectionView.js</key> <data> - hfcG2GVN8r6xuA4ygw3zKQk8ChY= + S+ME1fRs/FrMOP2/bVX7VkmgV9s= </data> <key>www/js/lib/products/GalleryView.js</key> <data> - 2uKZw/R68RVKeU/Dm93O7bC9IeA= + Pd10VfMBuhzoMqRHgn5WD78LZuw= </data> <key>www/js/lib/products/ProductView.js</key> <data> - NJ28uOLdIXAcLOstCEyyoSFwMFQ= + K3Gmx1ScVBw199xxmbJselplXKo= </data> <key>www/js/lib/products/Selector.js</key> <data> @@ -550,7 +562,7 @@ </data> <key>www/js/lib/view/Serializable.js</key> <data> - h9Z7w1U81a/0iSk1479BPPEWbt0= + fm204jypf33bndvbcASDl9oCp+s= </data> <key>www/js/lib/view/View.js</key> <data> @@ -598,7 +610,7 @@ </data> <key>www/js/vendor/imageviewer.js</key> <data> - +lvb1hPF4rBrUNXOYaIPTnT7yok= + jaGCh4ym/aYx7ijkm7cMET740GU= </data> <key>www/js/vendor/iscroll-5.1.3.js</key> <data> @@ -965,22 +977,33 @@ <dict> <key>hash</key> <data> - Kwar1Lpeq1PSL1k9Htg3b88BLOU= + UzpkteYLyk6goZL/VblItaK+tuI= </data> <key>hash2</key> <data> - 1qoqioWSqyyQKmIJUeXxYG0vy0CiJcQlNNJ/lH/i1rg= + 2HywY+DZcj/aqJeTn5mYB1aiWIaBhlswdf7wYlPzgSA= </data> </dict> - <key>CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key> + <key>CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib/objects-13.0+.nib</key> <dict> <key>hash</key> <data> - EZSKMENet04qnojPKjTy87Ck+kU= + VFfP8G6YpQNCE9+YP8TshXoRsbM= </data> <key>hash2</key> <data> - D0At/LS/sZbaIClfPU3oVFtY9eY8EnlLe+2eOFFjCvQ= + uprszktF7eLPTgzY76Q2k+qzGyeO1PFNjTf5mzcaxNY= + </data> + </dict> + <key>CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib/runtime.nib</key> + <dict> + <key>hash</key> + <data> + nY4XgF1F9CQz2EzIWv1UnRILPJY= + </data> + <key>hash2</key> + <data> + 3Jk4kgQR151ygCu1ljRwbumGNsyu8OjZNNrXvxQYlCw= </data> </dict> <key>CDVLaunchScreen.storyboardc/Info.plist</key> @@ -994,15 +1017,26 @@ HyVdXMU7Ux4/KalAao30mpWOK/lEPT4gvYN09wf31cg= </data> </dict> - <key>CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib</key> + <key>CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib/objects-13.0+.nib</key> + <dict> + <key>hash</key> + <data> + flKFZIdt4NGnXBy4VMQsFEIY6Ss= + </data> + <key>hash2</key> + <data> + 4/jCvp8Wdg+bfnYjYZ3gQNvRsNPxbYJHejqoI26/I9g= + </data> + </dict> + <key>CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib/runtime.nib</key> <dict> <key>hash</key> <data> - FjF8wMpbNRaWuLABS8u/DSNBgAQ= + xN5k2g+B+hbuRefGGwG1VIYXjGE= </data> <key>hash2</key> <data> - FMfkQ1dI7KF4iEbm8hVdz7VI04npLUC8Tb5CFhcI7Ww= + BwrgwpXeFzN3bFHfFNkRaa3bG++lFwRnPm1zeuxgzp0= </data> </dict> <key>CDVNotification.bundle/beep.wav</key> @@ -1016,26 +1050,37 @@ KfYd4hFlyPwinBGKi4ruYae1MyeQ2TKrPJvIngKdC38= </data> </dict> - <key>MainViewController.nib</key> + <key>MainViewController.nib/objects-13.0+.nib</key> + <dict> + <key>hash</key> + <data> + Vs2JX6XhI7Z46fXsbspAW/l5QOk= + </data> + <key>hash2</key> + <data> + jjJ1Sj6SCCNMgL59AIYFfQ5YgscyZS/Aj8CrLbVEMPo= + </data> + </dict> + <key>MainViewController.nib/runtime.nib</key> <dict> <key>hash</key> <data> - KTqOI00Es51zeiXqiLVhUoSBkik= + dAGDe2Cs/GAlO48LNC5//wE9WxU= </data> <key>hash2</key> <data> - lxNz93e2ckI7aZ2hWhw5PepZH8v6Z3XYr0+KYG+PaKA= + 8zAAT2/IYTgHABqGCN35RaODzLU4AETD3brpjJ+jaoI= </data> </dict> <key>config.xml</key> <dict> <key>hash</key> <data> - fz52wQVVOwlkB35iTIUIMBC2dhA= + qHjCgw4SROklA7TNnMhgq1x9aqU= </data> <key>hash2</key> <data> - i6++/3MmPSGLm1VRuP6gfk6oRwhSCR8KGgWIkERgWkk= + 12yQe3fH1LeQ0hVJ39eZk/MOnGlavXlk1S6I8EbYLDI= </data> </dict> <key>embedded.mobileprovision</key> @@ -1119,33 +1164,33 @@ <dict> <key>hash</key> <data> - eKr1BA3EAWpcTFL4ld37jF0TxzQ= + j7dvfwxGM0FLffK3rTQAhYyuHsk= </data> <key>hash2</key> <data> - muxUZ+sBl+nYbSQ8z1qywBMQuOmT5OBL7RnEdSG3Jtc= + JGSDBc3r328LDZXyxStSpGTbOO0c7/Ejb4zc60BdU6Q= </data> </dict> <key>www/css/blogs.css</key> <dict> <key>hash</key> <data> - 09ZjZlLNOQw7OoxGbKdCihckd6E= + qzsHGnVfspjF+ycTwycgCesQf80= </data> <key>hash2</key> <data> - CtzlzhHemv5DQFCm5AUcXoTejGOsn0ds+n3TVlp03Uo= + 0Ref2ia2WNU/FUTXvy1d3r2wHLzp/RKcYkUFuKwjlHg= </data> </dict> <key>www/css/cart.css</key> <dict> <key>hash</key> <data> - ZyDIXw2I1bbu2kJ6WiTmhqjK9t4= + ewfnVjJwi94kdCY2SD3ptN+UTHk= </data> <key>hash2</key> <data> - f3d2C3mOLJtjQE/lNJiCFZ15iv83OeSsRVxXgFEmPis= + g/hSpVnYb/dN1IchfWpxX8RG0SLLBUADGNwf1D5DUnI= </data> </dict> <key>www/css/fonts/andale_mono.ttf</key> @@ -1185,11 +1230,11 @@ <dict> <key>hash</key> <data> - gzPAFostLVCiwxkgMsSWmTe+A/c= + 2i13fjCPzZ5vc5cYuVrEd1s9A8w= </data> <key>hash2</key> <data> - D3+gw6JE4hEJ9pnCs+BglSfZ2yG5gF+JGdPJ/v183fo= + zSqWaXmaFrx9/2yNRsGkVA1ewyS8J5JvHOHqojd1DtE= </data> </dict> <key>www/css/fonts/ionicons.eot</key> @@ -1295,22 +1340,22 @@ <dict> <key>hash</key> <data> - FjZaDXAbT/iW9g++u7vSjJpvqqo= + 45Lx1pUI5yADc7ABlk+wcRSsQBY= </data> <key>hash2</key> <data> - xCGy3giHG/Ce3377XwyEjRc+f87OuATe2pRb6JMPHWo= + OVS3UOlBP0+h6LKr6ZFwMUtlcmMOBaE7H4RcT+LmHKk= </data> </dict> <key>www/css/nav.css</key> <dict> <key>hash</key> <data> - 3YTjhSmLpBk2MEfHRzG27nvpHHY= + Tc5/Z3qa/5qShOCeukuP/tl5yos= </data> <key>hash2</key> <data> - FwoI86w8YrSb4aW+02/MZ61DOiKe61jDic83xX0dM+M= + gSBWZpcTgrCdqTWTd5EeuJQnGD7VR5imVOXmEWBKRj0= </data> </dict> <key>www/css/products.css</key> @@ -1339,11 +1384,11 @@ <dict> <key>hash</key> <data> - U9IUnW7ZX4TgGTq33Seu9eZgogE= + giAUAMwC7nmBxqqJX8eTEROTwMc= </data> <key>hash2</key> <data> - JN5niSdpAtWf/qLG3j5+Cp9UbBc3SZAmhql6sUDsYm0= + hIOJjnxw91uNxU15wXKhBNQawenrYV0PSgxsJCC1Bg8= </data> </dict> <key>www/db.json</key> @@ -1647,22 +1692,22 @@ <dict> <key>hash</key> <data> - j+k8ujaqcnpJuX/czMBrEaZz8jk= + mvnOdc6Ioj3CjkZxyRbZN8+mfNY= </data> <key>hash2</key> <data> - 1hNa7gFvckraIa19E+Kc/1nCVUYOC10ddnGAiuUBMSM= + DUY0p/YPCJ9QbJywWI5eHUGkOLDJmWvu3dPhXA/RG0M= </data> </dict> <key>www/js/index.js</key> <dict> <key>hash</key> <data> - HKZPM32zArXyA4bnl5aP8A4JVic= + X/zoPZmQ7CCcJfv+2xbajvMfDLY= </data> <key>hash2</key> <data> - 2EgjPLSSAqC1As/Z/Rl2nznPFvvwC5Wki10jbIXs9l0= + dGAsYjZpNtIHxo9NJWKc9nX7NJDzqroz3QHwMt9dOlc= </data> </dict> <key>www/js/lib/_router.js</key> @@ -1757,11 +1802,11 @@ <dict> <key>hash</key> <data> - LuGl4dL4Jx/rfR8Gl/j5e9+R3pc= + mJ1ky9I35XlwdgyO2IpUNqmdkcs= </data> <key>hash2</key> <data> - xY1mGGo9jS/a4bUv76OOCFhu2S4n0lmde1t4JoS0qXs= + v9+WN6dEVd5lMEj+ZkqNYLDKDAtT/TNayG1bOA71Y6w= </data> </dict> <key>www/js/lib/auth/LogoutView.js</key> @@ -1779,11 +1824,11 @@ <dict> <key>hash</key> <data> - MTcOfYFwkKox30nI3rIwIiCI9is= + G9BQAksv6lgg2OQASgzX3gNqfmU= </data> <key>hash2</key> <data> - okGYzldhrc9bKc6N+F7JA9zcFcCT15r57lvjXa5NfUA= + li67nZkin+Pv+3rsTkT+nItuc3rqyBm1AX84JULsfVg= </data> </dict> <key>www/js/lib/blogs/ArchiveView.js</key> @@ -1812,11 +1857,11 @@ <dict> <key>hash</key> <data> - y1ppo+9KlLX9tA/tyccz1eBydP4= + 3fdJKOCQX8wkqON5uQ5nHiA43ng= </data> <key>hash2</key> <data> - 08zv3aMQTQkctFQ7maI6vlZdUT8qgH8pujNzvkN57x4= + YesnqNNjw6xvZCATpg0MW1MVMqDADStRg8+/yD/LdfE= </data> </dict> <key>www/js/lib/blogs/PageView.js</key> @@ -1834,22 +1879,22 @@ <dict> <key>hash</key> <data> - M7vHWJ+TGmLMIZmfE5+/4yoqOA8= + +h7ITCEcPjHRxvSit3K4KCs55ag= </data> <key>hash2</key> <data> - Ptn+hC3ZzEPjV65dpBcmhGPZXuxHADaB+hYGVXrEE1I= + 97xEVclvZkUVXxev2vJR+SWQRcIiiWi0rPGycgl4+WQ= </data> </dict> <key>www/js/lib/cart/CartConfirm.js</key> <dict> <key>hash</key> <data> - iuq4CUXVug+BpuBjg2s30SsDnKo= + o3Max6T4P6h6/x/c2p95kabhRq8= </data> <key>hash2</key> <data> - uGxFeCC+tmJ7dwK6xkxqs1/NOuFR/4jM+M1Nv7LptcQ= + jzqB2knpbqudBb5fhSEmYj6C+Cf9lhJwd1wy6eVRIqM= </data> </dict> <key>www/js/lib/cart/CartError.js</key> @@ -1867,33 +1912,33 @@ <dict> <key>hash</key> <data> - Rh7MFQwa1qzO7ocaH66eUldcdb8= + cj75r7bvMwxO8obNGagxhrxEE4I= </data> <key>hash2</key> <data> - Dmua+TQ/dybJ8bnLDgGKOkxLAsg+Aas62hoDxUTBHlI= + o6VIqsNo5eIZHrIa3lBkmEUyASvCDPKEWUGsgRwcCCk= </data> </dict> <key>www/js/lib/cart/CartShipping.js</key> <dict> <key>hash</key> <data> - Q6Zke/dqJwUl05QHcahi/ji2Mps= + Y/JkKZsmqPKssku8aF8Mc2JgxRU= </data> <key>hash2</key> <data> - /kP8U2WOtm/Oo9NoovqFZjXDwErACXyQJLcF3UaVhqs= + Fx7yPF0lAmCjuJqNOvMIpWGZu4CYB4B7U9YpE/s8nmI= </data> </dict> <key>www/js/lib/cart/CartSummary.js</key> <dict> <key>hash</key> <data> - YY45GTYdRxyOtQLV4xfMijFFCO4= + OB2IxRjCajK4rM1BNke6GjfLc4g= </data> <key>hash2</key> <data> - W6KjUtBseY6DQP6KTVfQ71RtGDetQuLPJwXpDfaoF/w= + UCcbJWSoFhN5zOTKVpaNjUyyoqY6TOBW+43I6J+iNhs= </data> </dict> <key>www/js/lib/cart/CartThanks.js</key> @@ -1922,11 +1967,11 @@ <dict> <key>hash</key> <data> - WADhuojQGHPJ5xCqJ0lp+/1uIuM= + LegUG4+94dBf3mRwgdCq9KnehKw= </data> <key>hash2</key> <data> - Fjrwlrpwi5rt9Q6pvyftkCx9VA7KHuLHsolN4xNsu4g= + 4PhA4mT0S9DvCw16wPp9pwd4s9Gtz3uXcwrrcRjoToA= </data> </dict> <key>www/js/lib/etc/backup_db.js</key> @@ -2021,11 +2066,11 @@ <dict> <key>hash</key> <data> - jMM1vX2zKATWpbmMS3QGayL1mvw= + VHa9pwxWtQ31RhBknlTCAqrKA7c= </data> <key>hash2</key> <data> - mTHx9C1uDHvID/eNa9m+BUZWt2fDcmm088SB+AnfomE= + m1y+MtkztLia5cyx9E5WrAch10YftRlFUZnP0EtrmDs= </data> </dict> <key>www/js/lib/nav/FooterView.js</key> @@ -2065,11 +2110,11 @@ <dict> <key>hash</key> <data> - A4xYkR6n0/TGMBRstzRWfCqinds= + doSVdvRAK0s02oiRxBhrgBhg3IA= </data> <key>hash2</key> <data> - zNgxn74cQQEMvW4kV+XAnpegoe4e0rxKcWp7NHlWkcM= + lYbGNpLcOwLFihq6x55ZvvajrPNAUoIJp4hu9u7NMbw= </data> </dict> <key>www/js/lib/nav/SearchView.js</key> @@ -2098,33 +2143,33 @@ <dict> <key>hash</key> <data> - hfcG2GVN8r6xuA4ygw3zKQk8ChY= + S+ME1fRs/FrMOP2/bVX7VkmgV9s= </data> <key>hash2</key> <data> - slRUJS17HR0ZL2gOyEOBHmJqWYLtQIJCaTHHYhwa4dQ= + +HK3zAkTWk+WsRMxqYPtQhoVrdBliTJx003/oNVeaIk= </data> </dict> <key>www/js/lib/products/GalleryView.js</key> <dict> <key>hash</key> <data> - 2uKZw/R68RVKeU/Dm93O7bC9IeA= + Pd10VfMBuhzoMqRHgn5WD78LZuw= </data> <key>hash2</key> <data> - 3NKeKuDQh7LTme/6eCnTyrieaCAOHUwtwWz+wCAipjE= + 5/8+KWXB3fpjDBtQXtj0oD879wYAiBakvUU3fZSQxZo= </data> </dict> <key>www/js/lib/products/ProductView.js</key> <dict> <key>hash</key> <data> - NJ28uOLdIXAcLOstCEyyoSFwMFQ= + K3Gmx1ScVBw199xxmbJselplXKo= </data> <key>hash2</key> <data> - Agl/HX2pNASS06k4rf2MyePibkjt4WQaTJVomYm9yLg= + 6LbqV2OdvlaATevWSumOv3JlmLNHT4WVEKEwVtHGbiU= </data> </dict> <key>www/js/lib/products/Selector.js</key> @@ -2197,11 +2242,11 @@ <dict> <key>hash</key> <data> - h9Z7w1U81a/0iSk1479BPPEWbt0= + fm204jypf33bndvbcASDl9oCp+s= </data> <key>hash2</key> <data> - 2ZAp4f934QdZjKaeD0kh0Y6R3kIuZunfnHdEWAdIax0= + kozQ3mu8TicfocKvxOOAn206u5jL+X2e9+Nlsw/rNBk= </data> </dict> <key>www/js/lib/view/View.js</key> @@ -2329,11 +2374,11 @@ <dict> <key>hash</key> <data> - +lvb1hPF4rBrUNXOYaIPTnT7yok= + jaGCh4ym/aYx7ijkm7cMET740GU= </data> <key>hash2</key> <data> - vnIzT6qSefpXefYDH2WXGOkv8wUApSxo6xw2EVQdU44= + hKU6Pi5UHmxCN3mMICEI9AOY+yQadUsj25OwkAhfzVE= </data> </dict> <key>www/js/vendor/iscroll-5.1.3.js</key> diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml index 4368e5b6..203fbaa7 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<widget android-versionCode="6124" id="us.okfoc.stoneisland" version="1.2.4" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> +<widget android-versionCode="6131" id="us.okfoc.stoneisland" version="1.3.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <feature name="LocalStorage"> <param name="ios-package" value="CDVLocalStorage" /> </feature> diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css index 12adb2d9..6ea72423 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css @@ -139,6 +139,9 @@ label { text-transform:uppercase; height: 48px; } +.error_hilite label { + color: #f00; +} input[type=text], input[type=password], input[type=number], input[type=date], input[type=email] { font-family:pfd, sans-serif; font-size: 0.875rem; @@ -557,16 +560,20 @@ input.switch:checked + label:after { } .container-row .half-input input { -margin-top:0px + margin-top:0px; } .newuser { display:inline-block; padding:18px; text-decoration:underline + border: 1px solid black; + margin: 0 8px 0 0; } .forgotpassword { padding:18px; text-decoration:underline -}
\ No newline at end of file + border: 1px solid black; + margin: 0 0 0 8px; +} diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css index c4b74c19..ee54a31f 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css @@ -6,20 +6,23 @@ margin: 15px 0 0; text-align: center; text-transform:uppercase; - display:flex; + display: flex; flex-direction: row; justify-content: center; align-items: center; flex-wrap: wrap; } #story .links li { + display: block; + list-style-type: none; + font-size: 1rem; +} +#story .links li div { display: flex; justify-content: center; align-items: center; height: 48px; padding: 0 15px; - list-style-type: none; - font-size: 1rem; } .accessible #story .links { flex-wrap: wrap; @@ -166,6 +169,10 @@ position:absolute; display:block; } +.accessible .gallery-left, +.accessible .gallery-right { + width: 48px; +} @-webkit-keyframes gallery-fade { 0%{opacity:0} @@ -259,14 +266,25 @@ ul.links { width: 100%; pointer-events: none; } -#archive .menu .items, -#archive .row .image, -#archive .row .text { +#archive .menu .items { position: absolute; top: 50%; left: 50%; transform-origin: 50% 50%; transform: translateZ(0) translateX(-50%) translateY(-50%); } +#archive .row .image { + position: absolute; + top: 10%; left: 50%; + transform-origin: 50% 50%; + transform: translateZ(0) translateX(-50%) translateY(0%); +} +#archive .row .text { + display: flex; + justify-content: center; + align-items: center; + min-height: 80vh; + padding: 16px 0; +} #archive .menu { position: fixed; display: none; @@ -278,7 +296,8 @@ ul.links { .accessible #archive .row .image, .accessible #archive .row .text { position: relative; - top: auto; left: auto; + top: auto; + left: auto; transform: translateZ(0); } @@ -338,6 +357,7 @@ ul.links { } #archive .row .image { width: 100%; height: 100%; + max-height: 80vh; background-repeat: no-repeat; background-size: contain; background-position: center center; @@ -348,7 +368,7 @@ ul.links { background-position: center center; background-image: url('../img/spinner.gif') !important; } -#archive .row .text { +#archive .row .text > div { width: 80%; } .accessible #archive .row .image { diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css index 36a446a7..eda4cc82 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css @@ -11,7 +11,7 @@ display: flex; flex-direction: row; } -#cart .steps span { +#cart .steps div { display: flex; font-size: 1rem; text-align: center; @@ -22,6 +22,9 @@ justify-content: center; align-items: center; } +#cart .steps div span { + pointer-events: none; +} .summary_step, .shipping_step { border-right: 1px solid #666; } @@ -42,6 +45,14 @@ overflow: hidden; position: relative; } +.vscroll #cart_summary, +.vscroll #cart_shipping, +.vscroll #cart_payment, +.vscroll #cart_confirm, +.vscroll #cart_thanks, +.vscroll #cart_error { + overflow: auto; +} #cart.summary #cart_summary { display: block } #cart_summary { diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/ionicons.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/ionicons.css index 885aa6bd..974a91f7 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/ionicons.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/ionicons.css @@ -11,7 +11,20 @@ Modified icons to fit ionicon’s grid from original. */ @font-face { font-family: "Ionicons"; src: url("../fonts/ionicons.eot?v=2.0.0"); src: url("../fonts/ionicons.eot?v=2.0.0#iefix") format("embedded-opentype"), url("../fonts/ionicons.ttf?v=2.0.0") format("truetype"), url("../fonts/ionicons.woff?v=2.0.0") format("woff"), url("../fonts/ionicons.svg?v=2.0.0#Ionicons") format("svg"); font-weight: normal; font-style: normal; } -.ion, .ionicons, .ion-alert:before, .ion-alert-circled:before, .ion-android-add:before, .ion-android-add-circle:before, .ion-android-alarm-clock:before, .ion-android-alert:before, .ion-android-apps:before, .ion-android-archive:before, .ion-android-arrow-back:before, .ion-android-arrow-down:before, .ion-android-arrow-dropdown:before, .ion-android-arrow-dropdown-circle:before, .ion-android-arrow-dropleft:before, .ion-android-arrow-dropleft-circle:before, .ion-android-arrow-dropright:before, .ion-android-arrow-dropright-circle:before, .ion-android-arrow-dropup:before, .ion-android-arrow-dropup-circle:before, .ion-android-arrow-forward:before, .ion-android-arrow-up:before, .ion-android-attach:before, .ion-android-bar:before, .ion-android-bicycle:before, .ion-android-boat:before, .ion-android-bookmark:before, .ion-android-bulb:before, .ion-android-bus:before, .ion-android-calendar:before, .ion-android-call:before, .ion-android-camera:before, .ion-android-cancel:before, .ion-android-car:before, .ion-android-cart:before, .ion-android-chat:before, .ion-android-checkbox:before, .ion-android-checkbox-blank:before, .ion-android-checkbox-outline:before, .ion-android-checkbox-outline-blank:before, .ion-android-checkmark-circle:before, .ion-android-clipboard:before, .ion-android-close:before, .ion-android-cloud:before, .ion-android-cloud-circle:before, .ion-android-cloud-done:before, .ion-android-cloud-outline:before, .ion-android-color-palette:before, .ion-android-compass:before, .ion-android-contact:before, .ion-android-contacts:before, .ion-android-contract:before, .ion-android-create:before, .ion-android-delete:before, .ion-android-desktop:before, .ion-android-document:before, .ion-android-done:before, .ion-android-done-all:before, .ion-android-download:before, .ion-android-drafts:before, .ion-android-exit:before, .ion-android-expand:before, .ion-android-favorite:before, .ion-android-favorite-outline:before, .ion-android-film:before, .ion-android-folder:before, .ion-android-folder-open:before, .ion-android-funnel:before, .ion-android-globe:before, .ion-android-hand:before, .ion-android-hangout:before, .ion-android-happy:before, .ion-android-home:before, .ion-android-image:before, .ion-android-laptop:before, .ion-android-list:before, .ion-android-locate:before, .ion-android-lock:before, .ion-android-mail:before, .ion-android-map:before, .ion-android-menu:before, .ion-android-microphone:before, .ion-android-microphone-off:before, .ion-android-more-horizontal:before, .ion-android-more-vertical:before, .ion-android-navigate:before, .ion-android-notifications:before, .ion-android-notifications-none:before, .ion-android-notifications-off:before, .ion-android-open:before, .ion-android-options:before, .ion-android-people:before, .ion-android-person:before, .ion-android-person-add:before, .ion-android-phone-landscape:before, .ion-android-phone-portrait:before, .ion-android-pin:before, .ion-android-plane:before, .ion-android-playstore:before, .ion-android-print:before, .ion-android-radio-button-off:before, .ion-android-radio-button-on:before, .ion-android-refresh:before, .ion-android-remove:before, .ion-android-remove-circle:before, .ion-android-restaurant:before, .ion-android-sad:before, .ion-android-search:before, .ion-android-send:before, .ion-android-settings:before, .ion-android-share:before, .ion-android-share-alt:before, .ion-android-star:before, .ion-android-star-half:before, .ion-android-star-outline:before, .ion-android-stopwatch:before, .ion-android-subway:before, .ion-android-sunny:before, .ion-android-sync:before, .ion-android-textsms:before, .ion-android-time:before, .ion-android-train:before, .ion-android-unlock:before, .ion-android-upload:before, .ion-android-volume-down:before, .ion-android-volume-mute:before, .ion-android-volume-off:before, .ion-android-volume-up:before, .ion-android-walk:before, .ion-android-warning:before, .ion-android-watch:before, .ion-android-wifi:before, .ion-aperture:before, .ion-archive:before, .ion-arrow-down-a:before, .ion-arrow-down-b:before, .ion-arrow-down-c:before, .ion-arrow-expand:before, .ion-arrow-graph-down-left:before, .ion-arrow-graph-down-right:before, .ion-arrow-graph-up-left:before, .ion-arrow-graph-up-right:before, .ion-arrow-left-a:before, .ion-arrow-left-b:before, .ion-arrow-left-c:before, .ion-arrow-move:before, .ion-arrow-resize:before, .ion-arrow-return-left:before, .ion-arrow-return-right:before, .ion-arrow-right-a:before, .ion-arrow-right-b:before, .ion-arrow-right-c:before, .ion-arrow-shrink:before, .ion-arrow-swap:before, .ion-arrow-up-a:before, .ion-arrow-up-b:before, .ion-arrow-up-c:before, .ion-asterisk:before, .ion-at:before, .ion-backspace:before, .ion-backspace-outline:before, .ion-bag:before, .ion-battery-charging:before, .ion-battery-empty:before, .ion-battery-full:before, .ion-battery-half:before, .ion-battery-low:before, .ion-beaker:before, .ion-beer:before, .ion-bluetooth:before, .ion-bonfire:before, .ion-bookmark:before, .ion-bowtie:before, .ion-briefcase:before, .ion-bug:before, .ion-calculator:before, .ion-calendar:before, .ion-camera:before, .ion-card:before, .ion-cash:before, .ion-chatbox:before, .ion-chatbox-working:before, .ion-chatboxes:before, .ion-chatbubble:before, .ion-chatbubble-working:before, .ion-chatbubbles:before, .ion-checkmark:before, .ion-checkmark-circled:before, .ion-checkmark-round:before, .ion-chevron-down:before, .ion-chevron-left:before, .ion-chevron-right:before, .ion-chevron-up:before, .ion-clipboard:before, .ion-clock:before, .ion-close:before, .ion-close-circled:before, .ion-close-round:before, .ion-closed-captioning:before, .ion-cloud:before, .ion-code:before, .ion-code-download:before, .ion-code-working:before, .ion-coffee:before, .ion-compass:before, .ion-compose:before, .ion-connection-bars:before, .ion-contrast:before, .ion-crop:before, .ion-cube:before, .ion-disc:before, .ion-document:before, .ion-document-text:before, .ion-drag:before, .ion-earth:before, .ion-easel:before, .ion-edit:before, .ion-egg:before, .ion-eject:before, .ion-email:before, .ion-email-unread:before, .ion-erlenmeyer-flask:before, .ion-erlenmeyer-flask-bubbles:before, .ion-eye:before, .ion-eye-disabled:before, .ion-female:before, .ion-filing:before, .ion-film-marker:before, .ion-fireball:before, .ion-flag:before, .ion-flame:before, .ion-flash:before, .ion-flash-off:before, .ion-folder:before, .ion-fork:before, .ion-fork-repo:before, .ion-forward:before, .ion-funnel:before, .ion-gear-a:before, .ion-gear-b:before, .ion-grid:before, .ion-hammer:before, .ion-happy:before, .ion-happy-outline:before, .ion-headphone:before, .ion-heart:before, .ion-heart-broken:before, .ion-help:before, .ion-help-buoy:before, .ion-help-circled:before, .ion-home:before, .ion-icecream:before, .ion-image:before, .ion-images:before, .ion-information:before, .ion-information-circled:before, .ion-ionic:before, .ion-ios-alarm:before, .ion-ios-alarm-outline:before, .ion-ios-albums:before, .ion-ios-albums-outline:before, .ion-ios-americanfootball:before, .ion-ios-americanfootball-outline:before, .ion-ios-analytics:before, .ion-ios-analytics-outline:before, .ion-ios-arrow-back:before, .ion-ios-arrow-down:before, .ion-ios-arrow-forward:before, .ion-ios-arrow-left:before, .ion-ios-arrow-right:before, .ion-ios-arrow-thin-down:before, .ion-ios-arrow-thin-left:before, .ion-ios-arrow-thin-right:before, .ion-ios-arrow-thin-up:before, .ion-ios-arrow-up:before, .ion-ios-at:before, .ion-ios-at-outline:before, .ion-ios-barcode:before, .ion-ios-barcode-outline:before, .ion-ios-baseball:before, .ion-ios-baseball-outline:before, .ion-ios-basketball:before, .ion-ios-basketball-outline:before, .ion-ios-bell:before, .ion-ios-bell-outline:before, .ion-ios-body:before, .ion-ios-body-outline:before, .ion-ios-bolt:before, .ion-ios-bolt-outline:before, .ion-ios-book:before, .ion-ios-book-outline:before, .ion-ios-bookmarks:before, .ion-ios-bookmarks-outline:before, .ion-ios-box:before, .ion-ios-box-outline:before, .ion-ios-briefcase:before, .ion-ios-briefcase-outline:before, .ion-ios-browsers:before, .ion-ios-browsers-outline:before, .ion-ios-calculator:before, .ion-ios-calculator-outline:before, .ion-ios-calendar:before, .ion-ios-calendar-outline:before, .ion-ios-camera:before, .ion-ios-camera-outline:before, .ion-ios-cart:before, .ion-ios-cart-outline:before, .ion-ios-chatboxes:before, .ion-ios-chatboxes-outline:before, .ion-ios-chatbubble:before, .ion-ios-chatbubble-outline:before, .ion-ios-checkmark:before, .ion-ios-checkmark-empty:before, .ion-ios-checkmark-outline:before, .ion-ios-circle-filled:before, .ion-ios-circle-outline:before, .ion-ios-clock:before, .ion-ios-clock-outline:before, .ion-ios-close:before, .ion-ios-close-empty:before, .ion-ios-close-outline:before, .ion-ios-cloud:before, .ion-ios-cloud-download:before, .ion-ios-cloud-download-outline:before, .ion-ios-cloud-outline:before, .ion-ios-cloud-upload:before, .ion-ios-cloud-upload-outline:before, .ion-ios-cloudy:before, .ion-ios-cloudy-night:before, .ion-ios-cloudy-night-outline:before, .ion-ios-cloudy-outline:before, .ion-ios-cog:before, .ion-ios-cog-outline:before, .ion-ios-color-filter:before, .ion-ios-color-filter-outline:before, .ion-ios-color-wand:before, .ion-ios-color-wand-outline:before, .ion-ios-compose:before, .ion-ios-compose-outline:before, .ion-ios-contact:before, .ion-ios-contact-outline:before, .ion-ios-copy:before, .ion-ios-copy-outline:before, .ion-ios-crop:before, .ion-ios-crop-strong:before, .ion-ios-download:before, .ion-ios-download-outline:before, .ion-ios-drag:before, .ion-ios-email:before, .ion-ios-email-outline:before, .ion-ios-eye:before, .ion-ios-eye-outline:before, .ion-ios-fastforward:before, .ion-ios-fastforward-outline:before, .ion-ios-filing:before, .ion-ios-filing-outline:before, .ion-ios-film:before, .ion-ios-film-outline:before, .ion-ios-flag:before, .ion-ios-flag-outline:before, .ion-ios-flame:before, .ion-ios-flame-outline:before, .ion-ios-flask:before, .ion-ios-flask-outline:before, .ion-ios-flower:before, .ion-ios-flower-outline:before, .ion-ios-folder:before, .ion-ios-folder-outline:before, .ion-ios-football:before, .ion-ios-football-outline:before, .ion-ios-game-controller-a:before, .ion-ios-game-controller-a-outline:before, .ion-ios-game-controller-b:before, .ion-ios-game-controller-b-outline:before, .ion-ios-gear:before, .ion-ios-gear-outline:before, .ion-ios-glasses:before, .ion-ios-glasses-outline:before, .ion-ios-grid-view:before, .ion-ios-grid-view-outline:before, .ion-ios-heart:before, .ion-ios-heart-outline:before, .ion-ios-help:before, .ion-ios-help-empty:before, .ion-ios-help-outline:before, .ion-ios-home:before, .ion-ios-home-outline:before, .ion-ios-infinite:before, .ion-ios-infinite-outline:before, .ion-ios-information:before, .ion-ios-information-empty:before, .ion-ios-information-outline:before, .ion-ios-ionic-outline:before, .ion-ios-keypad:before, .ion-ios-keypad-outline:before, .ion-ios-lightbulb:before, .ion-ios-lightbulb-outline:before, .ion-ios-list:before, .ion-ios-list-outline:before, .ion-ios-location:before, .ion-ios-location-outline:before, .ion-ios-locked:before, .ion-ios-locked-outline:before, .ion-ios-loop:before, .ion-ios-loop-strong:before, .ion-ios-medical:before, .ion-ios-medical-outline:before, .ion-ios-medkit:before, .ion-ios-medkit-outline:before, .ion-ios-mic:before, .ion-ios-mic-off:before, .ion-ios-mic-outline:before, .ion-ios-minus:before, .ion-ios-minus-empty:before, .ion-ios-minus-outline:before, .ion-ios-monitor:before, .ion-ios-monitor-outline:before, .ion-ios-moon:before, .ion-ios-moon-outline:before, .ion-ios-more:before, .ion-ios-more-outline:before, .ion-ios-musical-note:before, .ion-ios-musical-notes:before, .ion-ios-navigate:before, .ion-ios-navigate-outline:before, .ion-ios-nutrition:before, .ion-ios-nutrition-outline:before, .ion-ios-paper:before, .ion-ios-paper-outline:before, .ion-ios-paperplane:before, .ion-ios-paperplane-outline:before, .ion-ios-partlysunny:before, .ion-ios-partlysunny-outline:before, .ion-ios-pause:before, .ion-ios-pause-outline:before, .ion-ios-paw:before, .ion-ios-paw-outline:before, .ion-ios-people:before, .ion-ios-people-outline:before, .ion-ios-person:before, .ion-ios-person-outline:before, .ion-ios-personadd:before, .ion-ios-personadd-outline:before, .ion-ios-photos:before, .ion-ios-photos-outline:before, .ion-ios-pie:before, .ion-ios-pie-outline:before, .ion-ios-pint:before, .ion-ios-pint-outline:before, .ion-ios-play:before, .ion-ios-play-outline:before, .ion-ios-plus:before, .ion-ios-plus-empty:before, .ion-ios-plus-outline:before, .ion-ios-pricetag:before, .ion-ios-pricetag-outline:before, .ion-ios-pricetags:before, .ion-ios-pricetags-outline:before, .ion-ios-printer:before, .ion-ios-printer-outline:before, .ion-ios-pulse:before, .ion-ios-pulse-strong:before, .ion-ios-rainy:before, .ion-ios-rainy-outline:before, .ion-ios-recording:before, .ion-ios-recording-outline:before, .ion-ios-redo:before, .ion-ios-redo-outline:before, .ion-ios-refresh:before, .ion-ios-refresh-empty:before, .ion-ios-refresh-outline:before, .ion-ios-reload:before, .ion-ios-reverse-camera:before, .ion-ios-reverse-camera-outline:before, .ion-ios-rewind:before, .ion-ios-rewind-outline:before, .ion-ios-rose:before, .ion-ios-rose-outline:before, .ion-ios-search:before, .ion-ios-search-strong:before, .ion-ios-settings:before, .ion-ios-settings-strong:before, .ion-ios-shuffle:before, .ion-ios-shuffle-strong:before, .ion-ios-skipbackward:before, .ion-ios-skipbackward-outline:before, .ion-ios-skipforward:before, .ion-ios-skipforward-outline:before, .ion-ios-snowy:before, .ion-ios-speedometer:before, .ion-ios-speedometer-outline:before, .ion-ios-star:before, .ion-ios-star-half:before, .ion-ios-star-outline:before, .ion-ios-stopwatch:before, .ion-ios-stopwatch-outline:before, .ion-ios-sunny:before, .ion-ios-sunny-outline:before, .ion-ios-telephone:before, .ion-ios-telephone-outline:before, .ion-ios-tennisball:before, .ion-ios-tennisball-outline:before, .ion-ios-thunderstorm:before, .ion-ios-thunderstorm-outline:before, .ion-ios-time:before, .ion-ios-time-outline:before, .ion-ios-timer:before, .ion-ios-timer-outline:before, .ion-ios-toggle:before, .ion-ios-toggle-outline:before, .ion-ios-trash:before, .ion-ios-trash-outline:before, .ion-ios-undo:before, .ion-ios-undo-outline:before, .ion-ios-unlocked:before, .ion-ios-unlocked-outline:before, .ion-ios-upload:before, .ion-ios-upload-outline:before, .ion-ios-videocam:before, .ion-ios-videocam-outline:before, .ion-ios-volume-high:before, .ion-ios-volume-low:before, .ion-ios-wineglass:before, .ion-ios-wineglass-outline:before, .ion-ios-world:before, .ion-ios-world-outline:before, .ion-ipad:before, .ion-iphone:before, .ion-ipod:before, .ion-jet:before, .ion-key:before, .ion-knife:before, .ion-laptop:before, .ion-leaf:before, .ion-levels:before, .ion-lightbulb:before, .ion-link:before, .ion-load-a:before, .ion-load-b:before, .ion-load-c:before, .ion-load-d:before, .ion-location:before, .ion-lock-combination:before, .ion-locked:before, .ion-log-in:before, .ion-log-out:before, .ion-loop:before, .ion-magnet:before, .ion-male:before, .ion-man:before, .ion-map:before, .ion-medkit:before, .ion-merge:before, .ion-mic-a:before, .ion-mic-b:before, .ion-mic-c:before, .ion-minus:before, .ion-minus-circled:before, .ion-minus-round:before, .ion-model-s:before, .ion-monitor:before, .ion-more:before, .ion-mouse:before, .ion-music-note:before, .ion-navicon:before, .ion-navicon-round:before, .ion-navigate:before, .ion-network:before, .ion-no-smoking:before, .ion-nuclear:before, .ion-outlet:before, .ion-paintbrush:before, .ion-paintbucket:before, .ion-paper-airplane:before, .ion-paperclip:before, .ion-pause:before, .ion-person:before, .ion-person-add:before, .ion-person-stalker:before, .ion-pie-graph:before, .ion-pin:before, .ion-pinpoint:before, .ion-pizza:before, .ion-plane:before, .ion-planet:before, .ion-play:before, .ion-playstation:before, .ion-plus:before, .ion-plus-circled:before, .ion-plus-round:before, .ion-podium:before, .ion-pound:before, .ion-power:before, .ion-pricetag:before, .ion-pricetags:before, .ion-printer:before, .ion-pull-request:before, .ion-qr-scanner:before, .ion-quote:before, .ion-radio-waves:before, .ion-record:before, .ion-refresh:before, .ion-reply:before, .ion-reply-all:before, .ion-ribbon-a:before, .ion-ribbon-b:before, .ion-sad:before, .ion-sad-outline:before, .ion-scissors:before, .ion-search:before, .ion-settings:before, .ion-share:before, .ion-shuffle:before, .ion-skip-backward:before, .ion-skip-forward:before, .ion-social-android:before, .ion-social-android-outline:before, .ion-social-angular:before, .ion-social-angular-outline:before, .ion-social-apple:before, .ion-social-apple-outline:before, .ion-social-bitcoin:before, .ion-social-bitcoin-outline:before, .ion-social-buffer:before, .ion-social-buffer-outline:before, .ion-social-chrome:before, .ion-social-chrome-outline:before, .ion-social-codepen:before, .ion-social-codepen-outline:before, .ion-social-css3:before, .ion-social-css3-outline:before, .ion-social-designernews:before, .ion-social-designernews-outline:before, .ion-social-dribbble:before, .ion-social-dribbble-outline:before, .ion-social-dropbox:before, .ion-social-dropbox-outline:before, .ion-social-euro:before, .ion-social-euro-outline:before, .ion-social-facebook:before, .ion-social-facebook-outline:before, .ion-social-foursquare:before, .ion-social-foursquare-outline:before, .ion-social-freebsd-devil:before, .ion-social-github:before, .ion-social-github-outline:before, .ion-social-google:before, .ion-social-google-outline:before, .ion-social-googleplus:before, .ion-social-googleplus-outline:before, .ion-social-hackernews:before, .ion-social-hackernews-outline:before, .ion-social-html5:before, .ion-social-html5-outline:before, .ion-social-instagram:before, .ion-social-instagram-outline:before, .ion-social-javascript:before, .ion-social-javascript-outline:before, .ion-social-linkedin:before, .ion-social-linkedin-outline:before, .ion-social-markdown:before, .ion-social-nodejs:before, .ion-social-octocat:before, .ion-social-pinterest:before, .ion-social-pinterest-outline:before, .ion-social-python:before, .ion-social-reddit:before, .ion-social-reddit-outline:before, .ion-social-rss:before, .ion-social-rss-outline:before, .ion-social-sass:before, .ion-social-skype:before, .ion-social-skype-outline:before, .ion-social-snapchat:before, .ion-social-snapchat-outline:before, .ion-social-tumblr:before, .ion-social-tumblr-outline:before, .ion-social-tux:before, .ion-social-twitch:before, .ion-social-twitch-outline:before, .ion-social-twitter:before, .ion-social-twitter-outline:before, .ion-social-usd:before, .ion-social-usd-outline:before, .ion-social-vimeo:before, .ion-social-vimeo-outline:before, .ion-social-whatsapp:before, .ion-social-whatsapp-outline:before, .ion-social-windows:before, .ion-social-windows-outline:before, .ion-social-wordpress:before, .ion-social-wordpress-outline:before, .ion-social-yahoo:before, .ion-social-yahoo-outline:before, .ion-social-yen:before, .ion-social-yen-outline:before, .ion-social-youtube:before, .ion-social-youtube-outline:before, .ion-soup-can:before, .ion-soup-can-outline:before, .ion-speakerphone:before, .ion-speedometer:before, .ion-spoon:before, .ion-star:before, .ion-stats-bars:before, .ion-steam:before, .ion-stop:before, .ion-thermometer:before, .ion-thumbsdown:before, .ion-thumbsup:before, .ion-toggle:before, .ion-toggle-filled:before, .ion-transgender:before, .ion-trash-a:before, .ion-trash-b:before, .ion-trophy:before, .ion-tshirt:before, .ion-tshirt-outline:before, .ion-umbrella:before, .ion-university:before, .ion-unlocked:before, .ion-upload:before, .ion-usb:before, .ion-videocamera:before, .ion-volume-high:before, .ion-volume-low:before, .ion-volume-medium:before, .ion-volume-mute:before, .ion-wand:before, .ion-waterdrop:before, .ion-wifi:before, .ion-wineglass:before, .ion-woman:before, .ion-wrench:before, .ion-xbox:before { display: inline-block; font-family: "Ionicons"; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; text-rendering: auto; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } +.ion, .ionicons, .ion-alert:before, .ion-alert-circled:before, .ion-android-add:before, .ion-android-add-circle:before, .ion-android-alarm-clock:before, .ion-android-alert:before, .ion-android-apps:before, .ion-android-archive:before, .ion-android-arrow-back:before, .ion-android-arrow-down:before, .ion-android-arrow-dropdown:before, .ion-android-arrow-dropdown-circle:before, .ion-android-arrow-dropleft:before, .ion-android-arrow-dropleft-circle:before, .ion-android-arrow-dropright:before, .ion-android-arrow-dropright-circle:before, .ion-android-arrow-dropup:before, .ion-android-arrow-dropup-circle:before, .ion-android-arrow-forward:before, .ion-android-arrow-up:before, .ion-android-attach:before, .ion-android-bar:before, .ion-android-bicycle:before, .ion-android-boat:before, .ion-android-bookmark:before, .ion-android-bulb:before, .ion-android-bus:before, .ion-android-calendar:before, .ion-android-call:before, .ion-android-camera:before, .ion-android-cancel:before, .ion-android-car:before, .ion-android-cart:before, .ion-android-chat:before, .ion-android-checkbox:before, .ion-android-checkbox-blank:before, .ion-android-checkbox-outline:before, .ion-android-checkbox-outline-blank:before, .ion-android-checkmark-circle:before, .ion-android-clipboard:before, .ion-android-close:before, .ion-android-cloud:before, .ion-android-cloud-circle:before, .ion-android-cloud-done:before, .ion-android-cloud-outline:before, .ion-android-color-palette:before, .ion-android-compass:before, .ion-android-contact:before, .ion-android-contacts:before, .ion-android-contract:before, .ion-android-create:before, .ion-android-delete:before, .ion-android-desktop:before, .ion-android-document:before, .ion-android-done:before, .ion-android-done-all:before, .ion-android-download:before, .ion-android-drafts:before, .ion-android-exit:before, .ion-android-expand:before, .ion-android-favorite:before, .ion-android-favorite-outline:before, .ion-android-film:before, .ion-android-folder:before, .ion-android-folder-open:before, .ion-android-funnel:before, .ion-android-globe:before, .ion-android-hand:before, .ion-android-hangout:before, .ion-android-happy:before, .ion-android-home:before, .ion-android-image:before, .ion-android-laptop:before, .ion-android-list:before, .ion-android-locate:before, .ion-android-lock:before, .ion-android-mail:before, .ion-android-map:before, .ion-android-menu:before, .ion-android-microphone:before, .ion-android-microphone-off:before, .ion-android-more-horizontal:before, .ion-android-more-vertical:before, .ion-android-navigate:before, .ion-android-notifications:before, .ion-android-notifications-none:before, .ion-android-notifications-off:before, .ion-android-open:before, .ion-android-options:before, .ion-android-people:before, .ion-android-person:before, .ion-android-person-add:before, .ion-android-phone-landscape:before, .ion-android-phone-portrait:before, .ion-android-pin:before, .ion-android-plane:before, .ion-android-playstore:before, .ion-android-print:before, .ion-android-radio-button-off:before, .ion-android-radio-button-on:before, .ion-android-refresh:before, .ion-android-remove:before, .ion-android-remove-circle:before, .ion-android-restaurant:before, .ion-android-sad:before, .ion-android-search:before, .ion-android-send:before, .ion-android-settings:before, .ion-android-share:before, .ion-android-share-alt:before, .ion-android-star:before, .ion-android-star-half:before, .ion-android-star-outline:before, .ion-android-stopwatch:before, .ion-android-subway:before, .ion-android-sunny:before, .ion-android-sync:before, .ion-android-textsms:before, .ion-android-time:before, .ion-android-train:before, .ion-android-unlock:before, .ion-android-upload:before, .ion-android-volume-down:before, .ion-android-volume-mute:before, .ion-android-volume-off:before, .ion-android-volume-up:before, .ion-android-walk:before, .ion-android-warning:before, .ion-android-watch:before, .ion-android-wifi:before, .ion-aperture:before, .ion-archive:before, .ion-arrow-down-a:before, .ion-arrow-down-b:before, .ion-arrow-down-c:before, .ion-arrow-expand:before, .ion-arrow-graph-down-left:before, .ion-arrow-graph-down-right:before, .ion-arrow-graph-up-left:before, .ion-arrow-graph-up-right:before, .ion-arrow-left-a:before, .ion-arrow-left-b:before, .ion-arrow-left-c:before, .ion-arrow-move:before, .ion-arrow-resize:before, .ion-arrow-return-left:before, .ion-arrow-return-right:before, .ion-arrow-right-a:before, .ion-arrow-right-b:before, .ion-arrow-right-c:before, .ion-arrow-shrink:before, .ion-arrow-swap:before, .ion-arrow-up-a:before, .ion-arrow-up-b:before, .ion-arrow-up-c:before, .ion-asterisk:before, .ion-at:before, .ion-backspace:before, .ion-backspace-outline:before, .ion-bag:before, .ion-battery-charging:before, .ion-battery-empty:before, .ion-battery-full:before, .ion-battery-half:before, .ion-battery-low:before, .ion-beaker:before, .ion-beer:before, .ion-bluetooth:before, .ion-bonfire:before, .ion-bookmark:before, .ion-bowtie:before, .ion-briefcase:before, .ion-bug:before, .ion-calculator:before, .ion-calendar:before, .ion-camera:before, .ion-card:before, .ion-cash:before, .ion-chatbox:before, .ion-chatbox-working:before, .ion-chatboxes:before, .ion-chatbubble:before, .ion-chatbubble-working:before, .ion-chatbubbles:before, .ion-checkmark:before, .ion-checkmark-circled:before, .ion-checkmark-round:before, .ion-chevron-down:before, .ion-chevron-left:before, .ion-chevron-right:before, .ion-chevron-up:before, .ion-clipboard:before, .ion-clock:before, .ion-close:before, .ion-close-circled:before, .ion-close-round:before, .ion-closed-captioning:before, .ion-cloud:before, .ion-code:before, .ion-code-download:before, .ion-code-working:before, .ion-coffee:before, .ion-compass:before, .ion-compose:before, .ion-connection-bars:before, .ion-contrast:before, .ion-crop:before, .ion-cube:before, .ion-disc:before, .ion-document:before, .ion-document-text:before, .ion-drag:before, .ion-earth:before, .ion-easel:before, .ion-edit:before, .ion-egg:before, .ion-eject:before, .ion-email:before, .ion-email-unread:before, .ion-erlenmeyer-flask:before, .ion-erlenmeyer-flask-bubbles:before, .ion-eye:before, .ion-eye-disabled:before, .ion-female:before, .ion-filing:before, .ion-film-marker:before, .ion-fireball:before, .ion-flag:before, .ion-flame:before, .ion-flash:before, .ion-flash-off:before, .ion-folder:before, .ion-fork:before, .ion-fork-repo:before, .ion-forward:before, .ion-funnel:before, .ion-gear-a:before, .ion-gear-b:before, .ion-grid:before, .ion-hammer:before, .ion-happy:before, .ion-happy-outline:before, .ion-headphone:before, .ion-heart:before, .ion-heart-broken:before, .ion-help:before, .ion-help-buoy:before, .ion-help-circled:before, .ion-home:before, .ion-icecream:before, .ion-image:before, .ion-images:before, .ion-information:before, .ion-information-circled:before, .ion-ionic:before, .ion-ios-alarm:before, .ion-ios-alarm-outline:before, .ion-ios-albums:before, .ion-ios-albums-outline:before, .ion-ios-americanfootball:before, .ion-ios-americanfootball-outline:before, .ion-ios-analytics:before, .ion-ios-analytics-outline:before, .ion-ios-arrow-back:before, .ion-ios-arrow-down:before, .ion-ios-arrow-forward:before, .ion-ios-arrow-left:before, .ion-ios-arrow-right:before, .ion-ios-arrow-thin-down:before, .ion-ios-arrow-thin-left:before, .ion-ios-arrow-thin-right:before, .ion-ios-arrow-thin-up:before, .ion-ios-arrow-up:before, .ion-ios-at:before, .ion-ios-at-outline:before, .ion-ios-barcode:before, .ion-ios-barcode-outline:before, .ion-ios-baseball:before, .ion-ios-baseball-outline:before, .ion-ios-basketball:before, .ion-ios-basketball-outline:before, .ion-ios-bell:before, .ion-ios-bell-outline:before, .ion-ios-body:before, .ion-ios-body-outline:before, .ion-ios-bolt:before, .ion-ios-bolt-outline:before, .ion-ios-book:before, .ion-ios-book-outline:before, .ion-ios-bookmarks:before, .ion-ios-bookmarks-outline:before, .ion-ios-box:before, .ion-ios-box-outline:before, .ion-ios-briefcase:before, .ion-ios-briefcase-outline:before, .ion-ios-browsers:before, .ion-ios-browsers-outline:before, .ion-ios-calculator:before, .ion-ios-calculator-outline:before, .ion-ios-calendar:before, .ion-ios-calendar-outline:before, .ion-ios-camera:before, .ion-ios-camera-outline:before, .ion-ios-cart:before, .ion-ios-cart-outline:before, .ion-ios-chatboxes:before, .ion-ios-chatboxes-outline:before, .ion-ios-chatbubble:before, .ion-ios-chatbubble-outline:before, .ion-ios-checkmark:before, .ion-ios-checkmark-empty:before, .ion-ios-checkmark-outline:before, .ion-ios-circle-filled:before, .ion-ios-circle-outline:before, .ion-ios-clock:before, .ion-ios-clock-outline:before, .ion-ios-close:before, .ion-ios-close-empty:before, .ion-ios-close-outline:before, .ion-ios-cloud:before, .ion-ios-cloud-download:before, .ion-ios-cloud-download-outline:before, .ion-ios-cloud-outline:before, .ion-ios-cloud-upload:before, .ion-ios-cloud-upload-outline:before, .ion-ios-cloudy:before, .ion-ios-cloudy-night:before, .ion-ios-cloudy-night-outline:before, .ion-ios-cloudy-outline:before, .ion-ios-cog:before, .ion-ios-cog-outline:before, .ion-ios-color-filter:before, .ion-ios-color-filter-outline:before, .ion-ios-color-wand:before, .ion-ios-color-wand-outline:before, .ion-ios-compose:before, .ion-ios-compose-outline:before, .ion-ios-contact:before, .ion-ios-contact-outline:before, .ion-ios-copy:before, .ion-ios-copy-outline:before, .ion-ios-crop:before, .ion-ios-crop-strong:before, .ion-ios-download:before, .ion-ios-download-outline:before, .ion-ios-drag:before, .ion-ios-email:before, .ion-ios-email-outline:before, .ion-ios-eye:before, .ion-ios-eye-outline:before, .ion-ios-fastforward:before, .ion-ios-fastforward-outline:before, .ion-ios-filing:before, .ion-ios-filing-outline:before, .ion-ios-film:before, .ion-ios-film-outline:before, .ion-ios-flag:before, .ion-ios-flag-outline:before, .ion-ios-flame:before, .ion-ios-flame-outline:before, .ion-ios-flask:before, .ion-ios-flask-outline:before, .ion-ios-flower:before, .ion-ios-flower-outline:before, .ion-ios-folder:before, .ion-ios-folder-outline:before, .ion-ios-football:before, .ion-ios-football-outline:before, .ion-ios-game-controller-a:before, .ion-ios-game-controller-a-outline:before, .ion-ios-game-controller-b:before, .ion-ios-game-controller-b-outline:before, .ion-ios-gear:before, .ion-ios-gear-outline:before, .ion-ios-glasses:before, .ion-ios-glasses-outline:before, .ion-ios-grid-view:before, .ion-ios-grid-view-outline:before, .ion-ios-heart:before, .ion-ios-heart-outline:before, .ion-ios-help:before, .ion-ios-help-empty:before, .ion-ios-help-outline:before, .ion-ios-home:before, .ion-ios-home-outline:before, .ion-ios-infinite:before, .ion-ios-infinite-outline:before, .ion-ios-information:before, .ion-ios-information-empty:before, .ion-ios-information-outline:before, .ion-ios-ionic-outline:before, .ion-ios-keypad:before, .ion-ios-keypad-outline:before, .ion-ios-lightbulb:before, .ion-ios-lightbulb-outline:before, .ion-ios-list:before, .ion-ios-list-outline:before, .ion-ios-location:before, .ion-ios-location-outline:before, .ion-ios-locked:before, .ion-ios-locked-outline:before, .ion-ios-loop:before, .ion-ios-loop-strong:before, .ion-ios-medical:before, .ion-ios-medical-outline:before, .ion-ios-medkit:before, .ion-ios-medkit-outline:before, .ion-ios-mic:before, .ion-ios-mic-off:before, .ion-ios-mic-outline:before, .ion-ios-minus:before, .ion-ios-minus-empty:before, .ion-ios-minus-outline:before, .ion-ios-monitor:before, .ion-ios-monitor-outline:before, .ion-ios-moon:before, .ion-ios-moon-outline:before, .ion-ios-more:before, .ion-ios-more-outline:before, .ion-ios-musical-note:before, .ion-ios-musical-notes:before, .ion-ios-navigate:before, .ion-ios-navigate-outline:before, .ion-ios-nutrition:before, .ion-ios-nutrition-outline:before, .ion-ios-paper:before, .ion-ios-paper-outline:before, .ion-ios-paperplane:before, .ion-ios-paperplane-outline:before, .ion-ios-partlysunny:before, .ion-ios-partlysunny-outline:before, .ion-ios-pause:before, .ion-ios-pause-outline:before, .ion-ios-paw:before, .ion-ios-paw-outline:before, .ion-ios-people:before, .ion-ios-people-outline:before, .ion-ios-person:before, .ion-ios-person-outline:before, .ion-ios-personadd:before, .ion-ios-personadd-outline:before, .ion-ios-photos:before, .ion-ios-photos-outline:before, .ion-ios-pie:before, .ion-ios-pie-outline:before, .ion-ios-pint:before, .ion-ios-pint-outline:before, .ion-ios-play:before, .ion-ios-play-outline:before, .ion-ios-plus:before, .ion-ios-plus-empty:before, .ion-ios-plus-outline:before, .ion-ios-pricetag:before, .ion-ios-pricetag-outline:before, .ion-ios-pricetags:before, .ion-ios-pricetags-outline:before, .ion-ios-printer:before, .ion-ios-printer-outline:before, .ion-ios-pulse:before, .ion-ios-pulse-strong:before, .ion-ios-rainy:before, .ion-ios-rainy-outline:before, .ion-ios-recording:before, .ion-ios-recording-outline:before, .ion-ios-redo:before, .ion-ios-redo-outline:before, .ion-ios-refresh:before, .ion-ios-refresh-empty:before, .ion-ios-refresh-outline:before, .ion-ios-reload:before, .ion-ios-reverse-camera:before, .ion-ios-reverse-camera-outline:before, .ion-ios-rewind:before, .ion-ios-rewind-outline:before, .ion-ios-rose:before, .ion-ios-rose-outline:before, .ion-ios-search:before, .ion-ios-search-strong:before, .ion-ios-settings:before, .ion-ios-settings-strong:before, .ion-ios-shuffle:before, .ion-ios-shuffle-strong:before, .ion-ios-skipbackward:before, .ion-ios-skipbackward-outline:before, .ion-ios-skipforward:before, .ion-ios-skipforward-outline:before, .ion-ios-snowy:before, .ion-ios-speedometer:before, .ion-ios-speedometer-outline:before, .ion-ios-star:before, .ion-ios-star-half:before, .ion-ios-star-outline:before, .ion-ios-stopwatch:before, .ion-ios-stopwatch-outline:before, .ion-ios-sunny:before, .ion-ios-sunny-outline:before, .ion-ios-telephone:before, .ion-ios-telephone-outline:before, .ion-ios-tennisball:before, .ion-ios-tennisball-outline:before, .ion-ios-thunderstorm:before, .ion-ios-thunderstorm-outline:before, .ion-ios-time:before, .ion-ios-time-outline:before, .ion-ios-timer:before, .ion-ios-timer-outline:before, .ion-ios-toggle:before, .ion-ios-toggle-outline:before, .ion-ios-trash:before, .ion-ios-trash-outline:before, .ion-ios-undo:before, .ion-ios-undo-outline:before, .ion-ios-unlocked:before, .ion-ios-unlocked-outline:before, .ion-ios-upload:before, .ion-ios-upload-outline:before, .ion-ios-videocam:before, .ion-ios-videocam-outline:before, .ion-ios-volume-high:before, .ion-ios-volume-low:before, .ion-ios-wineglass:before, .ion-ios-wineglass-outline:before, .ion-ios-world:before, .ion-ios-world-outline:before, .ion-ipad:before, .ion-iphone:before, .ion-ipod:before, .ion-jet:before, .ion-key:before, .ion-knife:before, .ion-laptop:before, .ion-leaf:before, .ion-levels:before, .ion-lightbulb:before, .ion-link:before, .ion-load-a:before, .ion-load-b:before, .ion-load-c:before, .ion-load-d:before, .ion-location:before, .ion-lock-combination:before, .ion-locked:before, .ion-log-in:before, .ion-log-out:before, .ion-loop:before, .ion-magnet:before, .ion-male:before, .ion-man:before, .ion-map:before, .ion-medkit:before, .ion-merge:before, .ion-mic-a:before, .ion-mic-b:before, .ion-mic-c:before, .ion-minus:before, .ion-minus-circled:before, .ion-minus-round:before, .ion-model-s:before, .ion-monitor:before, .ion-more:before, .ion-mouse:before, .ion-music-note:before, .ion-navicon:before, .ion-navicon-round:before, .ion-navigate:before, .ion-network:before, .ion-no-smoking:before, .ion-nuclear:before, .ion-outlet:before, .ion-paintbrush:before, .ion-paintbucket:before, .ion-paper-airplane:before, .ion-paperclip:before, .ion-pause:before, .ion-person:before, .ion-person-add:before, .ion-person-stalker:before, .ion-pie-graph:before, .ion-pin:before, .ion-pinpoint:before, .ion-pizza:before, .ion-plane:before, .ion-planet:before, .ion-play:before, .ion-playstation:before, .ion-plus:before, .ion-plus-circled:before, .ion-plus-round:before, .ion-podium:before, .ion-pound:before, .ion-power:before, .ion-pricetag:before, .ion-pricetags:before, .ion-printer:before, .ion-pull-request:before, .ion-qr-scanner:before, .ion-quote:before, .ion-radio-waves:before, .ion-record:before, .ion-refresh:before, .ion-reply:before, .ion-reply-all:before, .ion-ribbon-a:before, .ion-ribbon-b:before, .ion-sad:before, .ion-sad-outline:before, .ion-scissors:before, .ion-search:before, .ion-settings:before, .ion-share:before, .ion-shuffle:before, .ion-skip-backward:before, .ion-skip-forward:before, .ion-social-android:before, .ion-social-android-outline:before, .ion-social-angular:before, .ion-social-angular-outline:before, .ion-social-apple:before, .ion-social-apple-outline:before, .ion-social-bitcoin:before, .ion-social-bitcoin-outline:before, .ion-social-buffer:before, .ion-social-buffer-outline:before, .ion-social-chrome:before, .ion-social-chrome-outline:before, .ion-social-codepen:before, .ion-social-codepen-outline:before, .ion-social-css3:before, .ion-social-css3-outline:before, .ion-social-designernews:before, .ion-social-designernews-outline:before, .ion-social-dribbble:before, .ion-social-dribbble-outline:before, .ion-social-dropbox:before, .ion-social-dropbox-outline:before, .ion-social-euro:before, .ion-social-euro-outline:before, .ion-social-facebook:before, .ion-social-facebook-outline:before, .ion-social-foursquare:before, .ion-social-foursquare-outline:before, .ion-social-freebsd-devil:before, .ion-social-github:before, .ion-social-github-outline:before, .ion-social-google:before, .ion-social-google-outline:before, .ion-social-googleplus:before, .ion-social-googleplus-outline:before, .ion-social-hackernews:before, .ion-social-hackernews-outline:before, .ion-social-html5:before, .ion-social-html5-outline:before, .ion-social-instagram:before, .ion-social-instagram-outline:before, .ion-social-javascript:before, .ion-social-javascript-outline:before, .ion-social-linkedin:before, .ion-social-linkedin-outline:before, .ion-social-markdown:before, .ion-social-nodejs:before, .ion-social-octocat:before, .ion-social-pinterest:before, .ion-social-pinterest-outline:before, .ion-social-python:before, .ion-social-reddit:before, .ion-social-reddit-outline:before, .ion-social-rss:before, .ion-social-rss-outline:before, .ion-social-sass:before, .ion-social-skype:before, .ion-social-skype-outline:before, .ion-social-snapchat:before, .ion-social-snapchat-outline:before, .ion-social-tumblr:before, .ion-social-tumblr-outline:before, .ion-social-tux:before, .ion-social-twitch:before, .ion-social-twitch-outline:before, .ion-social-twitter:before, .ion-social-twitter-outline:before, .ion-social-usd:before, .ion-social-usd-outline:before, .ion-social-vimeo:before, .ion-social-vimeo-outline:before, .ion-social-whatsapp:before, .ion-social-whatsapp-outline:before, .ion-social-windows:before, .ion-social-windows-outline:before, .ion-social-wordpress:before, .ion-social-wordpress-outline:before, .ion-social-yahoo:before, .ion-social-yahoo-outline:before, .ion-social-yen:before, .ion-social-yen-outline:before, .ion-social-youtube:before, .ion-social-youtube-outline:before, .ion-soup-can:before, .ion-soup-can-outline:before, .ion-speakerphone:before, .ion-speedometer:before, .ion-spoon:before, .ion-star:before, .ion-stats-bars:before, .ion-steam:before, .ion-stop:before, .ion-thermometer:before, .ion-thumbsdown:before, .ion-thumbsup:before, .ion-toggle:before, .ion-toggle-filled:before, .ion-transgender:before, .ion-trash-a:before, .ion-trash-b:before, .ion-trophy:before, .ion-tshirt:before, .ion-tshirt-outline:before, .ion-umbrella:before, .ion-university:before, .ion-unlocked:before, .ion-upload:before, .ion-usb:before, .ion-videocamera:before, .ion-volume-high:before, .ion-volume-low:before, .ion-volume-medium:before, .ion-volume-mute:before, .ion-wand:before, .ion-waterdrop:before, .ion-wifi:before, .ion-wineglass:before, .ion-woman:before, .ion-wrench:before, .ion-xbox:before { + display: inline-block; + font-family: "Ionicons"; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + text-rendering: auto; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + pointer-events: none; +} .ion-alert:before { content: "\f101"; } diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css index 83b3353a..2130c675 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css @@ -102,6 +102,19 @@ html.vscroll { .error_hilite ~ span.err { display: flex; } +.err_heading { + display: none; +} +.err_heading.error_visible { + display: flex; + text-align: center; + justify-content: center; + align-items: center; + font-size: 0.875rem; + height: 64px; + padding: 12px; + color: red !important; +} span.err { display: none; text-align: center; diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css index f555ce99..03e3fb39 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css @@ -2,7 +2,7 @@ /* NAV BAR */ #nav { - position: absolute; + position: fixed; top: 0; left: 0; width: 249px; -webkit-transform: translateZ(0) translateX(-249px); @@ -10,7 +10,7 @@ background: #fff; } #content { - position: absolute; + position: fixed; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; @@ -23,6 +23,23 @@ .nav #content { -webkit-transform: translateZ(0) translateX(249px); } +.accessible #nav, +.accessible #content { + position: absolute; +} + +.accessible #nav { + width: 100%; + -webkit-transform: translateZ(0) translateX(-100%); +} +.accessible .nav #nav { + width: 100%; + -webkit-transform: translateZ(0) translateX(0%); +} +.accessible .nav #content { + -webkit-transform: translateZ(0) translateX(100%); +} + #nav .logo { background-image: url(../img/small-logo.png); background-repeat: no-repeat; @@ -85,19 +102,62 @@ #nav .social { position: absolute; - bottom: 0; + top: calc(100vh - 48px); left: 0; border-top: 1px solid #ddd; + display: flex; + flex-direction: row; } #nav .social span { display: block; - float: left; width: 61px; border-left: 1px solid #ddd; color: #666; font-size: 1.125rem; - padding: 5px 0; + height: 48px; text-align: center; + justify-content: center; + align-items: center; + display: flex; +} + +#nav .close { + position: absolute; + top: 0; + right: 0; + width: 48px; + height: 48px; + cursor: pointer; + text-align: center; + overflow: hidden; + -webkit-transition: all ease 200ms; + -moz-transition: all ease 200ms; + -o-transition: all ease 200ms; + transition: all ease 200ms; +} +#nav .close:after, +#nav .close:before { + content: ""; + height: 1px; + width: 24px; + background: #888; + position: absolute; + left: 25%; + top: 50%; +} +#nav .close:before { + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +#nav .close:after { + -webkit-transform: rotate(-45deg); + -moz-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + -o-transform: rotate(-45deg); + transform: rotate(-45deg); } #nav-container { @@ -146,6 +206,9 @@ padding-bottom:0px; align-items: center; font-size: 1.063rem; } +#intro div span { + pointer-events: none; +} #intro #compass { pointer-events: none; background-image: url(../img/compass-logo.png); @@ -198,7 +261,8 @@ padding-bottom:0px; /* HEADER AND FOOTER ON MOST PAGES */ #header { - display: block; + display: flex; + justify-content: space-between; position: absolute; top: 0; left: 0; width: 100%; height: 48px; @@ -216,9 +280,18 @@ padding-bottom:0px; top:0px; } #header .burger { - display: inline-block; + display: flex; font-size: 24px; - padding: 12px 13px 7px; + width: 48px; + height: 48px; + padding-top: 4px; + box-sizing: border-box; + align-items: center; + flex-direction: row; + justify-content: center; +} +#header .burger:before { + pointer-events: none; } #header .cart_rapper { @@ -227,7 +300,7 @@ padding-bottom:0px; align-items: flex-end; position: relative; float: right; - width: 44px; height: 48px; + width: 48px; height: 48px; } #header .cart { position: relative; @@ -238,6 +311,7 @@ padding-bottom:0px; background-image:url(../img/cart-box.png); background-size:100%; background-repeat:no-repeat; + pointer-events: none; } #header .cart .cart_count { @@ -268,7 +342,7 @@ padding-bottom:0px; #footer { display: block; - position: absolute; + position: fixed; bottom: 0; left: 0; width: 100%; background: #fff; border-top: 1px solid #ddd; @@ -296,13 +370,16 @@ padding-bottom:0px; #footer .ok.disabled { color: #666; } +.accessible #footer { + position: absolute; +} /* CURTAIN FOR LOGIN AND SELECTOR VIEWS */ #curtain { pointer-events: none; - position: absolute; + position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255,255,255,0.8); @@ -312,6 +389,9 @@ padding-bottom:0px; -webkit-transform: translateZ(0) translateX(0); transform: translateZ(0) translateX(0); } +.accessible #curtain { + position: absolute; +} #curtain.visible { pointer-events: auto; opacity: 1; diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/vendor/imageviewer.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/vendor/imageviewer.css index af346f08..739c37a1 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/vendor/imageviewer.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/vendor/imageviewer.css @@ -22,8 +22,8 @@ } .iv-close { - width: 32px; - height: 32px; + width: 48px; + height: 48px; position: fixed; right: 20px; top: 20px; diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html index a422832c..17289033 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html @@ -16,6 +16,7 @@ <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height"> + <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/fonts/fonts.css"> <link rel="stylesheet" type="text/css" href="css/fonts/ionicons.css"> <link rel="stylesheet" type="text/css" href="css/vendor/flickity.css"> @@ -35,8 +36,9 @@ <div id="nav-row"> <!-- flex --> - <span role="menu" class="menu"> + <span role="region" class="menu"> <div class="logo" aria-label="Stone Island"></div> + <div class="close" role="button" aria-label="Close menu"></div> <div role="menu" aria-label="Main Menu" class="main_menu"> <span role="menuitem" class="store">STORE</span> <span role="menuitem" class="hub">HUB</span> @@ -89,10 +91,10 @@ </div> <span class="social" role="list" aria-label="Social Links"> - <span role="menuitem" class="fb ion-social-facebook"></span> - <span role="menuitem" class="insta ion-social-instagram-outline"></span> - <span role="menuitem" class="tw ion-social-twitter"></span> - <span role="menuitem" class="yt ion-social-youtube"></span> + <span role="menuitem" aria-label="Follow us on Facebook" class="fb ion-social-facebook"></span> + <span role="menuitem" aria-label="Follow us on Instagram" class="insta ion-social-instagram-outline"></span> + <span role="menuitem" aria-label="Follow us on Twitter" class="tw ion-social-twitter"></span> + <span role="menuitem" aria-label="Follow us on Youtube" class="yt ion-social-youtube"></span> </span> </div> @@ -100,25 +102,25 @@ <div id="intro" role="menu" aria-label="Stone Island Home Screen"> <div id="compass"></div> - <div role="menuitem" class="store">STORE</div> - <div role="menuitem" class="hub">HUB</div> - <div role="menuitem" class="story">STORY</div> - <div role="menuitem" class="archive">ARCHIVE</div> + <div role="menuitem" class="store"><span>STORE</span></div> + <div role="menuitem" class="hub"><span>HUB</span></div> + <div role="menuitem" class="story"><span>STORY</span></div> + <div role="menuitem" class="archive"><span>ARCHIVE</span></div> <div class="alert"></div> <span class="latlng" role="note" aria-label="Your Latitude and Longitude">+40° 58' 90.9" N 74° 04' 46.3" W</span> </div> <div id="header" role="menubar" aria-label="Menu bar"> - <span role="link" aria-label="Show main menu" class="burger ion-android-menu"></span> - <span role="link" aria-label="Homepage. Stone Island logo" class="logo"></span> - <span role="link" aria-label="View cart" class="cart_rapper"><span class="cart"><span role="display" class="cart_count">0</span></span></span> + <div role="menuitem" aria-label="Show main menu" class="burger ion-android-menu"></div> + <div role="menuitem" aria-label="Homepage. Stone Island logo" class="logo"></div> + <div role="menuitem" aria-label="View cart" class="cart_rapper"><span class="cart"><span role="display" class="cart_count">0</span></span></div> </div> <!-- BLOGS ================================================ --> <div id="story" role="region" aria-label="Stone Island Story"> <div class="scroll"> - <h1 aria-label="Current section: Stone Island Story">STORY</h1> + <h1 role="menuitem" aria-label="Current section: Stone Island Story">STORY</h1> <img> <ul class="links"></ul> <div class="content"> @@ -133,7 +135,7 @@ <div id="hub" role="region" aria-label="Stone Island Hub"> <div class="scroll"> - <h1 aria-label="Current section: Stone Island Hub">HUB</h1> + <h1 role="menuitem" aria-label="Current section: Stone Island Hub">HUB</h1> <div class="content"> <script type="text/html" class="template"> <div class="hub_item" data-id="{{id}}"> @@ -167,14 +169,16 @@ <div class="content"> <script type="text/html" class="template"> - <div class="image" aria-label="{{label}}" style="background-image:url({{image}})"></div> + <div class="image" role="img" aria-label="{{label}}" style="background-image:url({{image}})"></div> <div class="text"> - <h2> - <b>{{code}}</b><br> - {{label}} - </h2> - <div class="body"> - {{caption}} + <div> + <h2> + <b>{{code}}</b><br> + {{label}} + </h2> + <div class="body"> + {{caption}} + </div> </div> </div> @@ -190,21 +194,21 @@ </div> </div> <div class="heading"> - <h1 role="heading" aria-label="Current section: Stone Island Archive">ARCHIVE</h1> + <h1 role="menuitem" aria-label="Current section: Stone Island Archive">ARCHIVE</h1> <div role="heading" class="subtitle" aria-label="1982 to 2015">'982'015</div> </div> </div> <div id="privacy" role="region" aria-label="Privacy Policy" class="page"> <div class="scroll"> - <h1 aria-label="Current section: Privacy Policy">PRIVACY POLICY</h1> + <h1 role="menuitem" aria-label="Current section: Privacy Policy">PRIVACY POLICY</h1> <div class="content"></div> </div> </div> <div id="account_terms" role="region" aria-label="My Account Terms and Conditions of Use" class="page"> <div class="scroll"> - <h1 aria-label="Current section: My Account terms and conditions of use">MY ACCOUNT TERMS AND CONDITIONS OF USE</h1> + <h1 role="menuitem" aria-label="Current section: My Account terms and conditions of use">MY ACCOUNT TERMS AND CONDITIONS OF USE</h1> <div class="content"> <h2>1. Services</h2> <p> @@ -260,21 +264,21 @@ <div id="terms" role="region" aria-label="Terms and Conditions" class="page"> <div class="scroll"> - <h1 aria-label="Current section: Terms and conditions">TERMS AND CONDITIONS</h1> + <h1 role="menuitem" aria-label="Current section: Terms and conditions">TERMS AND CONDITIONS</h1> <div class="content"></div> </div> </div> <div id="returns" role="region" aria-label="Return Policy" class="page"> <div class="scroll"> - <h1 aria-label="Current section: Return policy">RETURN POLICY</h1> + <h1 role="menuitem" aria-label="Current section: Return policy">RETURN POLICY</h1> <div class="content"></div> </div> </div> <div id="care" role="region" aria-label="Customer Care" class="page"> <div class="scroll"> - <h1 aria-label="Current section: Customer care">CUSTOMER CARE</h1> + <h1 role="menuitem" aria-label="Current section: Customer care">CUSTOMER CARE</h1> <div class="content"></div> </div> </div> @@ -284,11 +288,11 @@ <div id="collection" role="region" aria-label="Store"> <div class="scroll"> - <h1 aria-label="Current section: Store">LOADING...</h1> + <h1 role="menuitem" aria-label="Current section: Store">LOADING...</h1> <div class="loader"></div> <div class="content"> <script type="text/html" class="template"> - <div role="link" class="item" data-code="{{code8}}"> + <div role="link" class="item" data-code="{{code8}}" aria-label="{{title}}"> <img src="{{image}}" alt="{{title}}"> </div> </script> @@ -298,9 +302,9 @@ <div id="search" role="search" aria-label="Search"> <div class="scroll"> - <h1 aria-label="Current section: Search">SEARCH</h1> + <h1 role="menuitem" aria-label="Current section: Search">SEARCH</h1> <div class="form"> - <input type="text" class="q" placeholder="ENTER YOUR SEARCH"> + <input type="text" role="textbox" class="q" placeholder="ENTER YOUR SEARCH"> </div> </div> </div> @@ -373,16 +377,17 @@ <div id="login" role="region" aria-label="Log In"> <div class="scroll"> - <h1 aria-label="Current section: Log In">LOGIN</h1> + <h1 role="menuitem" aria-label="Current section: Log In">LOGIN</h1> <div class="form"> <div class="container"> <div class="container-row"> + <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <label for="login_email_address">Email Address</label> - <input type="email" id="login_email_address" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="1"> + <input type="email" role="textbox" id="login_email_address" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="1"> <span class='err'></span> <label for="login_password">Password</label> - <form><input type="password" id="login_password" name="Password" aria-placeholder="PASSWORD" required tabindex="2"></form> + <form><input type="password" role="textbox" id="login_password" name="Password" aria-placeholder="PASSWORD" required tabindex="2"></form> <span class='err'></span> </div> <div class="container-fill"> @@ -402,7 +407,7 @@ <div id="logout" role="region" aria-label="You are now logged out"> <div class="scroll"> - <h1 aria-label="Current section: You are now Logged Out">LOGOUT</h1> + <h1 role="menuitem" aria-label="Current section: You are now Logged Out">LOGOUT</h1> <div class="container"> <div class="container-fill"> <span class="container-message msg"> @@ -415,30 +420,31 @@ <div id="signup" role="region" aria-label="New User. Create an account"> <div class="scroll"> - <h1 aria-label="Current section: New User. Create an account">NEW USER</h1> + <h1 role="menuitem" aria-label="Current section: New User. Create an account">NEW USER</h1> <div class="form"> <div class="container"> <div class="container-row"> + <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <label for="signup_name">First Name</label> - <input type="text" id="signup_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> + <input type="text" role="textbox" id="signup_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> <span class='err'></span> <label for="signup_surname">Last Name</label> - <input type="text" id="signup_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> + <input type="text" role="textbox" id="signup_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> <span class='err'></span> <label for="signup_email">Email Address</label> - <input type="email" id="signup_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> + <input type="email" role="textbox" id="signup_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> <span class='err'></span> <label for="signup_confirmemail">Confirm Email Address</label> - <input type="email" id="signup_confirmemail" name="ConfirmEmail" aria-placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4"> + <input type="email" role="textbox" id="signup_confirmemail" name="ConfirmEmail" aria-placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4"> <span class='err'></span> - <label for="signup_birthday">Birthday (MM/DD/YYYY)</label> + <label for="signup_birthday">Birthday optional (MM/DD/YYYY)</label> <div class="select-wrapper date-wrapper"> <span></span> - <input type="date" id="signup_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> + <input type="date" id="signup_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY OPTIONAL (MM/DD/YYYY)" required tabindex="5"> </div> <span class='err'></span> @@ -475,7 +481,7 @@ <div class="checkbox-row"> <div class="checkbox-toggle"> <input type="checkbox" id="checkbox-shopping-account-terms" aria-labelledby="checkbox-gdpr-terms-label" name="GdprTerms" value="true" required tabindex="10"> - <label for="checkbox-shopping-data-profiling"></label> + <label for="checkbox-shopping-account-terms"></label> </div> <label class="checkbox-caption" for="checkbox-shopping-account-terms" id="checkbox-gdpr-terms-label"> I ACCEPT MY ACCOUNT TERMS AND CONDITIONS OF USE * @@ -498,26 +504,27 @@ <div id="profile" role="region" aria-label="My Profile"> <div class="scroll"> - <h1 aria-label="Current section: My Profile">MY PROFILE</h1> + <h1 role="menuitem" aria-label="Current section: My Profile">MY PROFILE</h1> <div class="form"> <div class="container"> <div class="container-row"> + <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <label for="profile_name">First Name</label> - <input type="text" id="profile_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> + <input type="text" role="textbox" id="profile_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> <span class='err'></span> <label for="profile_surname">Last Name</label> - <input type="text" id="profile_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> + <input type="text" role="textbox" id="profile_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> <span class='err'></span> <label for="profile_email">Email Address</label> - <input type="email" id="profile_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> + <input type="email" role="textbox" id="profile_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> <span class='err'></span> - <label for="profile_birthday">Birthday (MM/DD/YYYY)</label> + <label for="profile_birthday">Birthday optional (MM/DD/YYYY)</label> <div class="select-wrapper date-wrapper"> <span></span> - <input type="date" id="profile_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> + <input type="date" id="profile_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY OPTIONAL (MM/DD/YYYY)" required tabindex="5"> </div> <span class='err'></span> @@ -571,15 +578,16 @@ <div id="shipping" role="region" aria-label="Address Book"> <div class="scroll"> - <h1 aria-label="Current section: Your address book">ADDRESS BOOK</h1> + <h1 role="menuitem" aria-label="Current section: Your address book">ADDRESS BOOK</h1> <div class="form"> <div class="container"> <div class="container-row"> + <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <div class="address"></div> </div> <div class="container-fill"> <div class="container-message"> - <span class="msg"> + <span role="heading" class="msg"> * Your personal and payment<br> information will always remain private </span> @@ -595,16 +603,17 @@ <div id="payment" role="region" aria-label="My Card"> <div class="scroll"> - <h1 aria-label="Current section: My Card">MY CARD</h1> + <h1 role="menuitem" aria-label="Current section: My Card">MY CARD</h1> <div class="form"> <div class="container"> <div class="container-row"> + <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <div class="cc"></div> <div class="address"></div> </div> <div class="container-fill"> <div class="container-message"> - <span class="msg"> + <span role="heading" class="msg"> * Your personal and payment<br> information will always remain private </span> @@ -620,7 +629,7 @@ <div id="settings" role="region" aria-label="Notifications"> <div class="scroll"> - <h1 aria-label="Current section: Notifications">NOTIFICATIONS</h1> + <h1 role="menuitem" aria-label="Current section: Notifications">NOTIFICATIONS</h1> <div class="form"> <div class="toggle-container"> <div class="toggle-row"> @@ -650,7 +659,7 @@ <div id="orders" role="region" aria-label="My Orders"> <div class="scroll"> - <h1 aria-label="Current section: My orders">MY ORDERS</h1> + <h1 role="menuitem" aria-label="Current section: My orders">MY ORDERS</h1> <div id="order_list"> <div class="list"></div> <div class="empty">You have no orders.</div> @@ -661,7 +670,6 @@ Details > </div> <div class="txt"> - <span class="text-date">{{date}}</span> <span class="text-id">ORDER #: {{id}}</span> <span class="text-total">ORDER TOTAL: {{total}}</span> @@ -729,7 +737,7 @@ <!-- CART ================================================ --> <div id="cart" role="region" aria-label="Your Cart"> - <h1 role="presentation"> + <h1 role="menuitem" role="presentation"> <span class="full_msg" role="heading" aria-label="Current section: Your cart"> YOUR CART / <span class="itemcount"></span> </span> @@ -739,9 +747,9 @@ </h1> <div class="steps"> - <span class="summary_step">SUMMARY</span> - <span class="shipping_step">SHIPPING</span> - <span class="payment_step">PAYMENT</span> + <div role="menuitem" class="summary_step"><span>SUMMARY</span></div> + <div role="menuitem" class="shipping_step"><span>SHIPPING</span></div> + <div role="menuitem" class="payment_step"><span>PAYMENT</span></div> </div> <div id="cart_summary" role="region" aria-label="Cart Summary"> @@ -752,38 +760,38 @@ <div class="rows"> <script type="text/html" class="template"> <div class="cart_item_image"> - <a href="#/store/{{code8}}" aria-label="{{cleantitle}}"><img src="{{image}}"></a> + <a href="#/store/{{code8}}" role="link" aria-label="{{cleantitle}}"><img src="{{image}}"></a> </div> <div class="cart_item_info"> - <span class="sku" aria-label="SKU">{{sku}}</span> - <span class="title" aria-label="Product name: {{cleantitle}}">{{title}}</span> - <span class="type" aria-label="Product type">{{type}}</span> - <div class="meta"> - <div class="meta-size" aria-label="Size"><b>SIZE:</b> {{size}}</div> - <div class="meta-color" aria-label="Color"><b>COLOR:</b> {{color}}</div> - <div class="meta-quantity" aria-label="Quantity"><b>QUANTITY:</b> {{quantity}}</div> + <span class="sku">{{sku}}</span> + <span class="title">{{title}}</span> + <span class="type">{{type}}</span> + <div role="list" class="meta"> + <div class="meta-size" role="listitem" aria-label="Size: {{size}}"><b>SIZE:</b> {{size}}</div> + <div class="meta-color" role="listitem" aria-label="Color: {{color}}"><b>COLOR:</b> {{color}}</div> + <div class="meta-quantity" role="listitem" aria-label="Quantity: {{quantity}]"><b>QUANTITY:</b> {{quantity}}</div> </div> </div> <div class="cart_item_price"> - <span class="remove" aria-label="Remove item from your cart. Item to be removed: {{cleantitle}}"></span> + <span role="menuitem" class="remove" aria-label="Remove item from your cart. Item to be removed: {{cleantitle}}"></span> <span class="price">{{price}}</span> </div> </script> </div> - <div class="cart-summary"> - <div class="cart-summary-row"> + <div class="cart-summary" role="list"> + <div class="cart-summary-row subtotal_row" role="listitem"> <span class="label">SUB TOTAL</span> <span class="subtotal"></span> </div> - <div class="cart-summary-row"> + <div class="cart-summary-row" role="listitem" aria-label="Estimated shipping and handling $0"> <span class="label">ESTIMATED SHIPPING<br>& HANDLING</span> <span class="shipping"></span> </div> - <div class="cart-summary-row"> + <div class="cart-summary-row" role="listitem" aria-label="Tax $0"> <span class="label">TAX</span> <span class="tax"></span> </div> - <div class="cart-summary-row"> + <div class="cart-summary-row total_row" role="listitem"> <span class="label">TOTAL</span> <span class="total"></span> </div> @@ -804,7 +812,7 @@ <div class="form"> <div class="dropdown-wrapper"> <div class="dropdown-title add_edit">add / edit</div> - <div class="dropdown select_address"> + <div role="menuitem" class="dropdown select_address"> ADDRESS </div> </div> @@ -852,7 +860,7 @@ <div class="container-row"> <div class="container-fill"> <div class="container-message"> - <span class="msg"> + <span role="heading" class="msg"> * Your personal and payment<br> information will always remain private </span> @@ -875,6 +883,7 @@ <div class="billing-container container"> <div class="container-row"> + <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <div class="checkbox-container"> <div class="checkbox-row"> @@ -892,7 +901,7 @@ <div class="address_dropdown dropdown-wrapper"> <div class="dropdown-title add_edit"> </div> - <div class="dropdown select_address"> + <div role="menuitem" class="dropdown select_address"> BILLING ADDRESS </div> </div> @@ -917,7 +926,7 @@ <div class="cc_dropdown dropdown-wrapper"> <div class="dropdown-title add_edit"></div> - <div class="dropdown select_address"> + <div role="menuitem" class="dropdown select_address"> PAYMENT METHOD </div> </div> @@ -940,19 +949,19 @@ <div class="cc"></div> <div class="cc_confirm"> - <h3>PLEASE ENTER YOUR SECURITY CODE TO CONFIRM</h3> + <h3>PLEASE ENTER THE SECURITY CODE ON THE BACK OF YOUR CARD TO CONFIRM</h3> <input type="number" name="CvvConfirm" placeholder="SECURITY CODE" required> </div> </div> <div class="container-fill"> <div class="container-message"> - <span class="msg"> + <span role="heading" class="msg"> * Your personal and payment<br> information will always remain private </span> </div> - <a class='privacy-link'> href="#/page/privacy"> + <a class='privacy-link' role="link" href="#/page/privacy"> <div class="privacy-msg"> Consult our <u>PRIVACY POLICY</u> for further information. </div> @@ -965,21 +974,21 @@ <div id="cart_confirm" role="region" aria-label="Confirm your order"> <div class="scroll"> - <h1 aria-label="Current section: Confirm your cart">CONFIRM</h1> + <h1 role="menuitem" aria-label="Current section: Confirm your cart">CONFIRM</h1> <div class="order_section"> <h2>ORDER SUMMARY</h2> <div class="rows"> <script type="text/html" class="template"> - <div class="cart_item_info"> + <div class="cart_item_info" row="table"> <span class="sku">{{sku}}</span> <span class="title">{{title}}</span> <span class="type">{{type}}</span> <div class="meta"> - <div class="meta-size"><b>SIZE:</b> {{size}}</div> - <div class="meta-color"><b>COLOR:</b> {{color}}</div> - <div class="meta-quantity"><b>QUANTITY:</b> {{quantity}}</div> + <div class="meta-size" role="row" aria-label="Size: {{size}}"><b>SIZE:</b> {{size}}</div> + <div class="meta-color" role="row" aria-label="Color: {{color}}"><b>COLOR:</b> {{color}}</div> + <div class="meta-quantity" role="row" aria-label="Quantity: {{quantity}]"><b>QUANTITY:</b> {{quantity}}</div> </div> </div> <div class="cart_item_price"> @@ -987,20 +996,20 @@ </div> </script> </div> - <div class="cart-summary"> - <div class="cart-summary-row"> + <div class="cart-summary" row="table"> + <div class="cart-summary-row subtotal_row" role="row"> <span class="label">SUB TOTAL</span> <span class="subtotal"></span> </div> - <div class="cart-summary-row"> + <div class="cart-summary-row" role="row" aria-label="Estimated shipping and handling $0"> <span class="label">ESTIMATED SHIPPING<br>& HANDLING</span> <span class="shipping"></span> </div> - <div class="cart-summary-row"> + <div class="cart-summary-row" role="row" aria-label="Tax $0"> <span class="label">TAX</span> <span class="tax"></span> </div> - <div class="cart-summary-row"> + <div class="cart-summary-row total_row" role="row"> <span class="label">TOTAL</span> <span class="total"></span> </div> @@ -1074,15 +1083,15 @@ </div> <br><br> For more information, please consult our - <a href="#/page/privacy">Privacy Policy</a> or visit - <a href="#" id="care-link">Customer Care</a>. + <a role="link" href="#/page/privacy">Privacy Policy</a> or visit + <a role="link" href="#" id="care-link">Customer Care</a>. <br><br> To continue to My Account we invite you to click accept. Otherwise you can continue to navigate as an unregistered user. <br><br> <div id="consent_error">Please note that if you do not consent to terms, you cannot use the app.</div> <br><br> - <button id="consent_proceed">PROCEED</button> - <button id="consent_logout">LOG OUT</button> + <button role="menuitem" id="consent_proceed">PROCEED</button> + <button role="menuitem" id="consent_logout">LOG OUT</button> </div> <div id="selector"> @@ -1099,7 +1108,7 @@ <script type="text/html" id="creditcard_template"> <label for="creditcard_id_{{_id}}">Credit Card Number</label> - <input type="number" id="creditcard_id_{{_id}}" name="Number" aria-placeholder="CREDIT CARD NUMBER" required> + <input type="number" role="textbox" id="creditcard_id_{{_id}}" name="Number" aria-placeholder="CREDIT CARD NUMBER" required tabindex="1"> <span class='err'></span> <div class="half-input"> @@ -1110,7 +1119,7 @@ <div class="half-input"> <div class="select-wrapper"> <span></span> - <select name="ExpirationMonth" id="cc_expiration_month_{{_id}}"> + <select name="ExpirationMonth" id="cc_expiration_month_{{_id}}" tabindex="2"> <option value="NONE">EXPIRATION MONTH</option> <option value="01">01</option> <option value="02">02</option> @@ -1128,7 +1137,7 @@ </div> <div class="select-wrapper"> <span></span> - <select name="ExpirationYear" id="cc_expiration_year_{{_id}}"> + <select name="ExpirationYear" id="cc_expiration_year_{{_id}}" tabindex="3"> <option value="NONE">EXPIRATION YEAR</option> <option value="2019">2019</option> <option value="2020">2020</option> @@ -1146,25 +1155,25 @@ </div> </div> <label for="cc_cvv_{{_id}}">Security Code</label> - <input type="number" id="cc_cvv_{{_id}}" name="Cvv" aria-placeholder="SECURITY CODE" required> + <input type="number" id="cc_cvv_{{_id}}" name="Cvv" aria-placeholder="SECURITY CODE" required tabindex="4"> <span class='err'></span> </script> <script type="text/html" id="address_template"> <label for="address_name_{{_id}}">First Name</label> - <input type="text" id="address_name_{{_id}}" name="Name" aria-placeholder="First Name"> + <input type="text" role="textbox" id="address_name_{{_id}}" name="Name" aria-placeholder="First Name" tabindex="1"> <span class="err"></span> <label for="address_surname_{{_id}}">Last Name</label> - <input type="text" id="address_surname_{{_id}}" name="Surname" aria-placeholder="Last Name"> + <input type="text" role="textbox" id="address_surname_{{_id}}" name="Surname" aria-placeholder="Last Name" tabindex="2"> <span class="err"></span> <label for="address_address1_{{_id}}">Address line 1</label> - <input type="text" id="address_address1_{{_id}}" name="Address1" aria-placeholder="Address Line 1"> + <input type="text" role="textbox" id="address_address1_{{_id}}" name="Address1" aria-placeholder="Address Line 1" tabindex="3"> <span class="err"></span> <label for="address_address2_{{_id}}">Address line 2</label> - <input type="text" id="address_address2_{{_id}}" name="Address2" aria-placeholder="Address Line 2"> + <input type="text" role="textbox" id="address_address2_{{_id}}" name="Address2" aria-placeholder="Address Line 2" tabindex="4"> <span class="err"></span> <div class="half-input"> @@ -1173,10 +1182,10 @@ </div> <div class="half-input"> - <input type="text" id="address_city_{{_id}}" name="City" aria-placeholder="City"> + <input type="text" role="textbox" id="address_city_{{_id}}" name="City" aria-placeholder="City" tabindex="5"> <div class="select-wrapper"> <span></span> - <select id="address_state_{{_id}}" name="Province"> + <select id="address_state_{{_id}}" name="Province" tabindex="6"> {{PROVINCES}} </select> </div> @@ -1188,19 +1197,19 @@ </div> <div class="half-input"> - <input type="text" id="address_zip_{{_id}}" name="ZipCode" aria-placeholder="ZIP" required> + <input type="text" role="textbox" id="address_zip_{{_id}}" name="ZipCode" aria-placeholder="ZIP" required tabindex="7"> <div class="country-wrapper-static"> <span class="country-label">UNITED STATES</span> <!-- <div id="country-select"> - <input type="text" name="Country" placeholder="UNITED STATES" required> + <input type="text" role="textbox" name="Country" placeholder="UNITED STATES" required> </div> --> </div> </div> <label for="address_phone_{{_id}}">Phone Number</label> - <input type="number" id="address_phone_{{_id}}" name="Phone" aria-placeholder="PHONE NUMBER"> + <input type="number" id="address_phone_{{_id}}" name="Phone" aria-placeholder="PHONE NUMBER" tabindex="8"> <span class="err"></span> <!-- <div class="checkbox-container save_as_default"> diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js index 42cec6f1..8574372d 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js @@ -22,7 +22,9 @@ var app = (function(){ app.bind = function(){ document.addEventListener('touchmove', function(e){ e.preventDefault() }) - FastClick.attach(document.body) + if (!app.accessible) { + FastClick.attach(document.body) + } } app.build = function(){ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/LoginView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/LoginView.js index 7458d159..4927bea2 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/LoginView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/LoginView.js @@ -33,7 +33,7 @@ var LoginView = FormView.extend({ }, forgot_password: function(){ - window.open("http://www.stoneisland.com/", '_system') + window.open("https://www.stoneisland.com/yTos/Plugins/AreaLocalizer/Redirectarea?area=Account&controllerName=User&actionName=Index", '_system') }, validate_presence: { diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/SignupView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/SignupView.js index 66d8f239..18fecebb 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/SignupView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/SignupView.js @@ -63,8 +63,18 @@ var SignupView = FormView.extend({ if (! data.Email.match("@")) { errors.push([ "Email", "Email address is not valid." ]) } if (data.Email.toLowerCase() !== data.ConfirmEmail.toLowerCase()) { errors.push([ "ConfirmEmail", "Email addresses don't match." ]) } // if (data.Gender === "NONE") { errors.push([ "Gender", "Please supply your gender." ]) } - if (data.DataProfiling !== "true") { errors.push([ "DataProfiling", "You must consent to data profiling to use the Stone Island app." ]) } - if (data.GdprTerms !== "true") { errors.push([ "GdprTerms", "You must agree to the Your My Account terms to use the Stone Island app." ]) } + if (data.DataProfiling !== "true") { + errors.push([ "DataProfiling", "You must consent to data profiling to use the Stone Island app." ]) + setTimeout(function(){ + this.$("#checkbox-shopping-data-profiling-label").closest(".checkbox-row").addClass("error_hilite") + }.bind(this), 10) + } + if (data.GdprTerms !== "true") { + errors.push([ "GdprTerms", "You must agree to the Your My Account terms to use the Stone Island app." ]) + setTimeout(function(){ + this.$("#checkbox-shopping-account-terms").closest(".checkbox-row").addClass("error_hilite") + }.bind(this), 10) + } var now = new Date () var year = now.getFullYear() @@ -78,6 +88,12 @@ var SignupView = FormView.extend({ } data.YooxLetter = this.$("[name=YooxLetter]").prop("checked") + if (!data.YooxLetter) { + errors.push([ "YooxLetter", "You must consent to marketing to use the Stone Island app." ]) + setTimeout(function(){ + this.$("#checkbox-data-profiling").closest(".checkbox-row").addClass("error_hilite") + }.bind(this), 10) + } }, finalize: function(data){ @@ -114,19 +130,19 @@ var SignupView = FormView.extend({ }, error: function(data){ - try { - data = JSON.parse(data.responseText) - app.signup.show_errors([[ 'Name', data['Error']['Description'] ]]) - } - catch (e) { - switch (data.status) { - case 409: - app.signup.show_errors([[ 'Email', "Email is already in use." ]]) - break - default: + switch (data.status) { + case 409: + app.signup.show_errors([[ 'Email', "Email is already in use." ]]) + break + default: + try { + data = JSON.parse(data.responseText) + app.signup.show_errors([[ 'Name', data['Error']['Description'] ]]) + } + catch (e) { app.signup.show_errors([[ 'Name', "There was an unknown error." ]]) - break - } + } + break } }, diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js index d3b15f77..0d59bcc8 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js @@ -91,7 +91,7 @@ var HubView = ScrollableView.extend({ }) gallery.on('staticClick', function(e){ var url = gallery.selectedElement.style.backgroundImage.replace(/url\(\"?/,"").replace(/\"?\)/,"") - app.fullscreenViewer.show(url, url) + app.fullscreenViewer.show(url, url, stonewash(row.title)) }) $(".gallery-" + row.id).attr('aria-label', stonewash(row.title) + ". Image gallery, use the arrows to scroll.") if (accessibility.voiceOver) { @@ -99,7 +99,7 @@ var HubView = ScrollableView.extend({ $(".gallery-target-" + row.id).click(function(e){ e && e.preventDefault() var url = gallery.selectedElement.style.backgroundImage.replace(/url\(\"?/,"").replace(/\"?\)/,"") - app.fullscreenViewer.show(url, url) + app.fullscreenViewer.show(url, url, stonewash(row.title)) }) } } @@ -134,13 +134,13 @@ var HubView = ScrollableView.extend({ } else { $(el).click(function(e){ e && e.preventDefault() - app.fullscreenViewer.show(row.image[0].uri) + app.fullscreenViewer.show(row.image[0].uri, row.image[0].uri, stonewash(row.title) + ". Main image") }) $(".gallery-" + row.id).attr('aria-label', stonewash(row.title) + ". Main image") $(".gallery-target-" + row.id).attr('aria-label', stonewash(row.title) + ". Main image.") $(".gallery-target-" + row.id).click(function(e){ e && e.preventDefault() - app.fullscreenViewer.show(row.image[0].uri) + app.fullscreenViewer.show(row.image[0].uri, row.image[0].uri, stonewash(row.title) + ". Main image") }) } $t.find(".gallery-left").remove() diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js index 0b3b17d7..19d5bac8 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js @@ -40,8 +40,8 @@ var StoryView = ScrollableView.extend({ .replace(/{{body}}/, row.body.replace(/\n/g, "<br>")) var li = document.createElement("li") li.dataset.id = row.id - li.innerHTML = row.title - li.setAttribute('role', "link") + li.innerHTML = "<div style='pointer-events: none'>" + row.title + "</div>" + li.setAttribute('role', "menuitem") this.sections[row.id] = row this.$links.append(li) this.$content.append(t) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartConfirm.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartConfirm.js index 6909dcc3..11d529ff 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartConfirm.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartConfirm.js @@ -90,9 +90,9 @@ var CartConfirm = FormView.extend({ .replace(/{{sku}}/, num) .replace(/{{title}}/, title) .replace(/{{type}}/, type) - .replace(/{{size}}/, size_name || "DEFAULT") - .replace(/{{color}}/, color_name || "DEFAULT") - .replace(/{{quantity}}/, 1) + .replace(/{{size}}/g, size_name || "DEFAULT") + .replace(/{{color}}/g, color_name || "DEFAULT") + .replace(/{{quantity}}/g, 1) .replace(/{{price}}/, as_cash(details.Item.Price.DiscountedPrice)) $el.data("price", details.Item.Price.DiscountedPrice) $el.html(t) @@ -109,6 +109,8 @@ var CartConfirm = FormView.extend({ this.$shipping.html( as_cash(shipping_cost) ) this.$tax.html( as_cash(tax) ) this.$total.html( as_cash(total) ) + this.$(".subtotal_row").attr('aria-label', "Subtotal " + as_cash(subtotal)) + this.$(".total_row").attr('aria-label', "Total " + as_cash(total)) if (data.Receiver) { var street = data.Receiver.StreetWithNumber.replace(/\n$/,"").replace("\n", ", ") diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartPayment.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartPayment.js index 40d08d9e..0e4c3b84 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartPayment.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartPayment.js @@ -73,6 +73,10 @@ var CartPayment = FormView.extend({ this.address.disabled = this.address_list_mode this.$address_form.toggle(! this.address_list_mode) this.$address_list.toggle(this.address_list_mode) + this.scroller.refresh() + this.$("input,select").map(function(i) { + this.setAttribute('tabindex', i+1) + }) }, toggle_cc: function(state){ @@ -86,6 +90,10 @@ var CartPayment = FormView.extend({ this.$cc_form.toggle(! this.cc_list_mode) this.$cc_list.toggle(this.cc_list_mode) this.$cc_confirm.toggle(this.cc_list_mode) + this.scroller.refresh() + this.$("input,select").map(function(i) { + this.setAttribute('tabindex', i+1) + }) }, focus_on_cc: function(e){ @@ -104,8 +112,8 @@ var CartPayment = FormView.extend({ this.toggle_address( !! app.account.ccs.length ) this.toggle_cc( !! app.account.ccs.length ) - app.account.ccs.forEach(function(cc){ - var address_t = this.address_template.replace(/{{id}}/g, cc.Id) + app.account.ccs.forEach(function(cc, i){ + var address_t = this.address_template.replace(/{{id}}/g, (cc.Id || i)) .replace(/{{checked}}/g, cc.IsDefault ? "checked" : "") .replace(/{{name}}/g, (cc.Name + " " + cc.Surname).toUpperCase()) .replace(/{{address}}/g, cc.Address.replace(/\n$/,"").replace("\n", ", ")) @@ -113,7 +121,7 @@ var CartPayment = FormView.extend({ .replace(/{{state}}/g, cc.Province) .replace(/{{zip}}/g, cc.ZipCode) - var cc_t = this.cc_template.replace(/{{id}}/g, cc.Id) + var cc_t = this.cc_template.replace(/{{id}}/g, (cc.Id || i)) .replace(/{{checked}}/g, cc.IsDefault ? "checked" : "") .replace(/{{number}}/g, cc['Number']) .replace(/{{type}}/g, cc.Type.toUpperCase()) @@ -122,6 +130,9 @@ var CartPayment = FormView.extend({ this.$address_list.append(address_t) this.$cc_list.append(cc_t) }.bind(this)) + this.$("input,select").map(function(i) { + this.setAttribute('tabindex', i+1) + }) }, finalize: function(data){ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartShipping.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartShipping.js index b5d6647b..157e75f5 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartShipping.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartShipping.js @@ -43,8 +43,8 @@ var CartShipping = FormView.extend({ this.toggle_dropdown(false) return } - app.account.addresses.forEach(function(address){ - var t = this.template.replace(/{{id}}/g, address.Id) + app.account.addresses.forEach(function(address, i){ + var t = this.template.replace(/{{id}}/g, (address.Id || i)) .replace(/{{checked}}/g, address.IsDefault ? "checked" : "") .replace(/{{name}}/g, (address.Name + " " + address.Surname).toUpperCase()) .replace(/{{address}}/g, address.Address.replace(/\n$/,"").replace("\n", ", ")) @@ -69,6 +69,9 @@ var CartShipping = FormView.extend({ $("#standard-shipping").prop("checked", cart_data.Cart.DeliveryMethod.Type == 1) $("#express-shipping").prop("checked", cart_data.Cart.DeliveryMethod.Type == 2) } + this.$("input,select").map(function(i) { + this.setAttribute('tabindex', i+1) + }) }, toggle_dropdown: function(state){ @@ -80,6 +83,10 @@ var CartShipping = FormView.extend({ this.address.disabled = this.list_mode this.$address_form.toggle(! this.list_mode) this.$address_list.toggle(this.list_mode) + this.scroller.refresh() + this.$("input,select").map(function(i) { + this.setAttribute('tabindex', i+1) + }) }, // sdk.cart.set_shipping_address diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js index 51aa35ef..9637ae35 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js @@ -112,11 +112,11 @@ var CartSummary = ScrollableView.extend({ .replace(/{{sku}}/g, num) .replace(/{{code8}}/g, data['Code8']) .replace(/{{title}}/g, title) - .replace(/{{cleantitle}}/g, stonewash(title)) + .replace(/{{cleantitle}}/g, num + ' ' + stonewash(title) + ' ' + descriptions['MicroCategory']) .replace(/{{type}}/, type) - .replace(/{{size}}/, size_name) - .replace(/{{color}}/, color_name) - .replace(/{{quantity}}/, 1) + .replace(/{{size}}/g, size_name) + .replace(/{{color}}/g, color_name) + .replace(/{{quantity}}/g, 1) .replace(/{{price}}/, as_cash(details.Item.Price.DiscountedPrice)) $el.html(t) this.refreshScroller() @@ -129,6 +129,7 @@ var CartSummary = ScrollableView.extend({ this.updateTotals() + this.$cart_empty.hide() this.el.className = "full" this.refreshScroller() app.curtain.hide("loading") @@ -149,6 +150,8 @@ var CartSummary = ScrollableView.extend({ this.$shipping.html( as_cash(shipping_cost) ) this.$tax.html( as_cash(tax) ) this.$total.html( as_cash(total) ) + this.$(".subtotal_row").attr('aria-label', "Subtotal " + as_cash(subtotal)) + this.$(".total_row").attr('aria-label', "Total " + as_cash(total)) }, empty: function(){ @@ -158,6 +161,7 @@ var CartSummary = ScrollableView.extend({ this.parent.$itemcount.html("0 ITEMS") this.el.className = "empty" this.parent.$steps.hide() + this.$cart_empty.show() app.curtain.hide("loading") }, diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/accessibility.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/accessibility.js index 31ddaf23..a18ad5b3 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/accessibility.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/accessibility.js @@ -30,8 +30,8 @@ var accessibility = (function() { MobileAccessibility.getTextZoom(function getTextZoomCallback(textZoom) { console.log('WebView text should be scaled to the preferred value ' + textZoom + '%') if (textZoom > 100) { - app.accessible = true - $("html").addClass('accessible') + // app.accessible = true + // $("html").addClass('accessible') } }); MobileAccessibility.isVoiceOverRunning(function(state){ @@ -73,5 +73,5 @@ var accessibility = (function() { })() function stonewash (s) { - return s.replace(/'9/g, '19').replace(/'0/g, '20').replace(/_/g, ' ').replace(/-/g, ' - ').replace(/^[013456789][0-9]+/, '') + return s.replace(/'9/g, '19').replace(/'0/g, '20').replace(/_/g, ' ').replace(/-/g, ' - ') } diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CurtainView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CurtainView.js index ddb6bc19..d444fd60 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CurtainView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CurtainView.js @@ -28,7 +28,7 @@ var CurtainView = View.extend({ }, click: function(){ - if (document.body.classList.contains("nav") && !app.accessible) { + if (document.body.classList.contains("nav")) { app.nav.hide() } if (app.selector.visible) { diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/NavView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/NavView.js index 1655b7f8..a6a39633 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/NavView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/NavView.js @@ -1,3 +1,5 @@ +var klassTimeout; + var NavView = View.extend({ el: "#nav", @@ -37,6 +39,8 @@ var NavView = View.extend({ "click .insta": "insta", "click .tw": "tw", "click .yt": "yt", + + "click .close": "close", }, initialize: function(){ @@ -50,14 +54,16 @@ var NavView = View.extend({ doneShowingNav = true }, 800) if (klass) { - setTimeout(function(){ + klassTimeout = setTimeout(function(){ this.addClass(klass) }.bind(this), 500) } }, hide: function(){ - if (!doneShowingNav) return + if (!doneShowingNav) { + clearTimeout(klassTimeout) + } $("body").removeClass("nav") app.curtain.hide("dark") }, @@ -161,7 +167,7 @@ var NavView = View.extend({ fb: function(){ - window.open(is_ios ? "facebook://profile/231623463406" : "https://www.facebook.com/StoneIsland", '_system') + window.open("https://www.facebook.com/StoneIsland", '_system') }, insta: function(){ window.open("https://instagram.com/stoneisland_official", '_system') @@ -173,4 +179,8 @@ var NavView = View.extend({ window.open("https://www.youtube.com/user/StoneIslandOfficial", '_system') }, + close: function(){ + this.hide() + }, + }) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js index d3343652..70bb22b4 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js @@ -194,9 +194,10 @@ var CollectionView = ScrollableView.extend({ append: function(item, is_single_product){ this.items[ item['Code8'] ] = item + console.log("TITLE: " + item['ModelNames']) var t = this.template.replace(/{{image}}/, sdk.image(item['DefaultCode10'], is_single_product ? '13_f' : '11_f')) .replace(/{{code8}}/, item['Code8']) - .replace(/{{title}}/, stonewash(item['ModelNames'])) + .replace(/{{title}}/g, stonewash(item['ModelNames'] + ' ' + item['MicroCategory'])) var $t = $(t) if (app.store.ShowProductNameOnCollectionPage) { var $title = $("<span>") diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js index e84caa68..417b14c3 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js @@ -36,6 +36,7 @@ var GalleryView = View.extend({ valid_styles[style] = size } }) + this.large_styles = large_styles Object.keys(valid_styles).sort(sort_image_styles).forEach(function(style){ var id = valid_styles[style] + "_" + style @@ -57,18 +58,14 @@ var GalleryView = View.extend({ contain: true, draggable: true, }) + if (app.accessible) { + gallery.select(1, true, true) + } - this.gallery.on('change', function(){ - var currentImage = this.gallery.selectedElement.style.backgroundImage.replace(/url\(\"?/,"").replace(/\"?\)/,"") - var partz = currentImage.split("_") - var head = partz[0] - var size = partz[1] - var tail = partz[2] - var end_partz = tail.split(/\./) - var style = end_partz[0] - var label = YOOX_IMAGE_STYLE_LABELS[style] || "Image: Alternate view" - $("#product .gallery-target").attr('aria-label', label) - }) + var last_style = 'f' + this.gallery.on('select', function(){ + this.updateLabel() + }.bind(this)) this.gallery.on('staticClick', this.static_click.bind(this)) @@ -85,11 +82,39 @@ var GalleryView = View.extend({ var head = partz[0] var size = partz[1] var tail = partz[2] - var end_partz = tail.split(/\./) + var end_partz = (tail || 'f').split(/\./) var style = end_partz[0] - var largest_size = large_styles[style] + var largest_size = this.large_styles[style] + var title = YOOX_IMAGE_STYLE_LABELS[style] || "Alternate view" var hiresImage = [head, largest_size, tail].join("_") - app.fullscreenViewer.show(currentImage, hiresImage) + // console.log(partz, style) + app.fullscreenViewer.show(currentImage, hiresImage, title) + }, + + animating: false, + previous: function(e){ + this.gallery.previous() + this.updateLabel() + }, + next: function(e){ + this.gallery.next() + this.updateLabel() + }, + updateLabel: function(){ + var currentImage = this.gallery.selectedElement.style.backgroundImage.replace(/url\(\"?/,"").replace(/\"?\)/,"") + var partz = currentImage.split("_") + var head = partz[0] + var size = partz[1] + var tail = partz[2] + var end_partz = tail.split(/\./) + var style = end_partz[0] + if (style === this.last_style) { + style = 'z' + } + this.last_style = style + var label = YOOX_IMAGE_STYLE_LABELS[style] || "Image: Alternate view" + console.log("> new style: " + style) + $("#product .gallery-target").attr('aria-label', label) }, touchstart: function(e){ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js index f834b1c5..570024b6 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js @@ -74,10 +74,10 @@ var ProductView = ScrollableView.extend({ cache: {}, gallery_left: function(){ - app.product.gallery.gallery.previous() + app.product.gallery.previous() }, gallery_right: function(){ - app.product.gallery.gallery.next() + app.product.gallery.next() }, find: function(code, cb){ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js index 3181fddd..0d638412 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js @@ -61,6 +61,7 @@ var SerializableView = View.extend({ focus_input: function(e){ $(e.currentTarget).removeClass("error_hilite") + $(e.currentTarget).closest(".checkbox-row").removeClass("error_hilite") }, focus_date: function(e){ @@ -104,6 +105,7 @@ var SerializableView = View.extend({ console.log("showing errors") console.log(errors) var msgs = [] + this.$('.err_heading').addClass('error_visible') this.$('.error_hilite').removeClass('error_hilite') this.$('.err').html('') errors.forEach(function(e, i){ @@ -114,6 +116,9 @@ var SerializableView = View.extend({ if (el && el.nodeName === 'SELECT') { $el.parent().addClass('error_hilite') $el.parent().next('.err').html(e[1]) + } else if (el && el.type === 'date') { + $el.parent().addClass('error_hilite') + $el.parent().next('.err').html(e[1]) } else { $el.addClass('error_hilite') $el.next('.err').html(e[1]) @@ -123,6 +128,10 @@ var SerializableView = View.extend({ }.bind(this)) // this.$msg.html(msgs.join("<br>")) this.$msg.addClass('alert-notice') + if (app.view.scroller) { + app.view.scroller.refresh() + app.view.scroller.scrollTo(0, 0) + } }, hide_errors: function(){ @@ -137,6 +146,8 @@ var SerializableView = View.extend({ save: function(e){ e && e.preventDefault() + this.$('.err_heading').removeClass('error_visible') + var valid = this.validate() if (valid.errors.length) { this.show_errors(valid.errors) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/imageviewer.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/imageviewer.js index 847c6070..d80ae7ed 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/imageviewer.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/imageviewer.js @@ -85,7 +85,7 @@ //add a full screen view $(function () { if(!$body.length) $body = $('body'); - $body.append('<div id="iv-container">' + imageViewHtml + '<div class="iv-close"></div><div>'); + $body.append('<div id="iv-container">' + imageViewHtml + '<div class="iv-close" role="button" aria-label="Close this image."></div><div>'); imageViewHtml = null }); @@ -674,10 +674,10 @@ height: handleHeight + '%' }); }, - show: function (image, hiResImg) { + show: function (image, hiResImg, message) { if (this._fullPage) { this.container.show(); - if (image) this.load(image, hiResImg); + if (image) this.load(image, hiResImg, message); } }, hide: function () { @@ -701,9 +701,10 @@ $window.off(eventSuffix); return null; }, - load: function (image, hiResImgSrc) { + load: function (image, hiResImgSrc, message) { var self = this, container = this.container; + message = message || 'Viewing high-resolution image. Pinch to zoom or tap to close.' container.find('.iv-snap-image,.iv-large-image').remove(); var snapImageWrap = this.container.find('.iv-snap-image-wrap'); @@ -711,9 +712,11 @@ var snapImage = new Image snapImage.className = 'iv-snap-image' snapImage.src = image + snapImage.setAttribute('aria-label', message) var largeImage = new Image largeImage.className = 'iv-large-image' + largeImage.setAttribute('aria-label', message) var hiResImg; diff --git a/StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate b/StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate Binary files differindex 0e1af5c3..9ad1cbab 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate +++ b/StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist b/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist index 04d767f3..ee5e12e6 100644 --- a/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist +++ b/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist @@ -21,7 +21,7 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>1.2.6</string> + <string>1.3.2</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleURLTypes</key> @@ -34,7 +34,7 @@ </dict> </array> <key>CFBundleVersion</key> - <string>1.2.6</string> + <string>1.3.2</string> <key>GCM_SENDER_ID</key> <string>85075801930</string> <key>IS_GCM_ENABLED</key> diff --git a/StoneIsland/platforms/ios/Stone Island/config.xml b/StoneIsland/platforms/ios/Stone Island/config.xml index 0be22073..c5b1062b 100755 --- a/StoneIsland/platforms/ios/Stone Island/config.xml +++ b/StoneIsland/platforms/ios/Stone Island/config.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<widget android-versionCode="6126" id="us.okfoc.stoneisland" version="1.2.6" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> +<widget android-versionCode="6132" id="us.okfoc.stoneisland" version="1.3.2" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <feature name="LocalStorage"> <param name="ios-package" value="CDVLocalStorage" /> </feature> diff --git a/StoneIsland/platforms/ios/www/css/account.css b/StoneIsland/platforms/ios/www/css/account.css index 998b6eac..6ea72423 100755 --- a/StoneIsland/platforms/ios/www/css/account.css +++ b/StoneIsland/platforms/ios/www/css/account.css @@ -139,6 +139,9 @@ label { text-transform:uppercase; height: 48px; } +.error_hilite label { + color: #f00; +} input[type=text], input[type=password], input[type=number], input[type=date], input[type=email] { font-family:pfd, sans-serif; font-size: 0.875rem; diff --git a/StoneIsland/platforms/ios/www/css/cart.css b/StoneIsland/platforms/ios/www/css/cart.css index 36a446a7..eda4cc82 100755 --- a/StoneIsland/platforms/ios/www/css/cart.css +++ b/StoneIsland/platforms/ios/www/css/cart.css @@ -11,7 +11,7 @@ display: flex; flex-direction: row; } -#cart .steps span { +#cart .steps div { display: flex; font-size: 1rem; text-align: center; @@ -22,6 +22,9 @@ justify-content: center; align-items: center; } +#cart .steps div span { + pointer-events: none; +} .summary_step, .shipping_step { border-right: 1px solid #666; } @@ -42,6 +45,14 @@ overflow: hidden; position: relative; } +.vscroll #cart_summary, +.vscroll #cart_shipping, +.vscroll #cart_payment, +.vscroll #cart_confirm, +.vscroll #cart_thanks, +.vscroll #cart_error { + overflow: auto; +} #cart.summary #cart_summary { display: block } #cart_summary { diff --git a/StoneIsland/platforms/ios/www/css/fonts/ionicons.css b/StoneIsland/platforms/ios/www/css/fonts/ionicons.css index 885aa6bd..974a91f7 100755 --- a/StoneIsland/platforms/ios/www/css/fonts/ionicons.css +++ b/StoneIsland/platforms/ios/www/css/fonts/ionicons.css @@ -11,7 +11,20 @@ Modified icons to fit ionicon’s grid from original. */ @font-face { font-family: "Ionicons"; src: url("../fonts/ionicons.eot?v=2.0.0"); src: url("../fonts/ionicons.eot?v=2.0.0#iefix") format("embedded-opentype"), url("../fonts/ionicons.ttf?v=2.0.0") format("truetype"), url("../fonts/ionicons.woff?v=2.0.0") format("woff"), url("../fonts/ionicons.svg?v=2.0.0#Ionicons") format("svg"); font-weight: normal; font-style: normal; } -.ion, .ionicons, .ion-alert:before, .ion-alert-circled:before, .ion-android-add:before, .ion-android-add-circle:before, .ion-android-alarm-clock:before, .ion-android-alert:before, .ion-android-apps:before, .ion-android-archive:before, .ion-android-arrow-back:before, .ion-android-arrow-down:before, .ion-android-arrow-dropdown:before, .ion-android-arrow-dropdown-circle:before, .ion-android-arrow-dropleft:before, .ion-android-arrow-dropleft-circle:before, .ion-android-arrow-dropright:before, .ion-android-arrow-dropright-circle:before, .ion-android-arrow-dropup:before, .ion-android-arrow-dropup-circle:before, .ion-android-arrow-forward:before, .ion-android-arrow-up:before, .ion-android-attach:before, .ion-android-bar:before, .ion-android-bicycle:before, .ion-android-boat:before, .ion-android-bookmark:before, .ion-android-bulb:before, .ion-android-bus:before, .ion-android-calendar:before, .ion-android-call:before, .ion-android-camera:before, .ion-android-cancel:before, .ion-android-car:before, .ion-android-cart:before, .ion-android-chat:before, .ion-android-checkbox:before, .ion-android-checkbox-blank:before, .ion-android-checkbox-outline:before, .ion-android-checkbox-outline-blank:before, .ion-android-checkmark-circle:before, .ion-android-clipboard:before, .ion-android-close:before, .ion-android-cloud:before, .ion-android-cloud-circle:before, .ion-android-cloud-done:before, .ion-android-cloud-outline:before, .ion-android-color-palette:before, .ion-android-compass:before, .ion-android-contact:before, .ion-android-contacts:before, .ion-android-contract:before, .ion-android-create:before, .ion-android-delete:before, .ion-android-desktop:before, .ion-android-document:before, .ion-android-done:before, .ion-android-done-all:before, .ion-android-download:before, .ion-android-drafts:before, .ion-android-exit:before, .ion-android-expand:before, .ion-android-favorite:before, .ion-android-favorite-outline:before, .ion-android-film:before, .ion-android-folder:before, .ion-android-folder-open:before, .ion-android-funnel:before, .ion-android-globe:before, .ion-android-hand:before, .ion-android-hangout:before, .ion-android-happy:before, .ion-android-home:before, .ion-android-image:before, .ion-android-laptop:before, .ion-android-list:before, .ion-android-locate:before, .ion-android-lock:before, .ion-android-mail:before, .ion-android-map:before, .ion-android-menu:before, .ion-android-microphone:before, .ion-android-microphone-off:before, .ion-android-more-horizontal:before, .ion-android-more-vertical:before, .ion-android-navigate:before, .ion-android-notifications:before, .ion-android-notifications-none:before, .ion-android-notifications-off:before, .ion-android-open:before, .ion-android-options:before, .ion-android-people:before, .ion-android-person:before, .ion-android-person-add:before, .ion-android-phone-landscape:before, .ion-android-phone-portrait:before, .ion-android-pin:before, .ion-android-plane:before, .ion-android-playstore:before, .ion-android-print:before, .ion-android-radio-button-off:before, .ion-android-radio-button-on:before, .ion-android-refresh:before, .ion-android-remove:before, .ion-android-remove-circle:before, .ion-android-restaurant:before, .ion-android-sad:before, .ion-android-search:before, .ion-android-send:before, .ion-android-settings:before, .ion-android-share:before, .ion-android-share-alt:before, .ion-android-star:before, .ion-android-star-half:before, .ion-android-star-outline:before, .ion-android-stopwatch:before, .ion-android-subway:before, .ion-android-sunny:before, .ion-android-sync:before, .ion-android-textsms:before, .ion-android-time:before, .ion-android-train:before, .ion-android-unlock:before, .ion-android-upload:before, .ion-android-volume-down:before, .ion-android-volume-mute:before, .ion-android-volume-off:before, .ion-android-volume-up:before, .ion-android-walk:before, .ion-android-warning:before, .ion-android-watch:before, .ion-android-wifi:before, .ion-aperture:before, .ion-archive:before, .ion-arrow-down-a:before, .ion-arrow-down-b:before, .ion-arrow-down-c:before, .ion-arrow-expand:before, .ion-arrow-graph-down-left:before, .ion-arrow-graph-down-right:before, .ion-arrow-graph-up-left:before, .ion-arrow-graph-up-right:before, .ion-arrow-left-a:before, .ion-arrow-left-b:before, .ion-arrow-left-c:before, .ion-arrow-move:before, .ion-arrow-resize:before, .ion-arrow-return-left:before, .ion-arrow-return-right:before, .ion-arrow-right-a:before, .ion-arrow-right-b:before, .ion-arrow-right-c:before, .ion-arrow-shrink:before, .ion-arrow-swap:before, .ion-arrow-up-a:before, .ion-arrow-up-b:before, .ion-arrow-up-c:before, .ion-asterisk:before, .ion-at:before, .ion-backspace:before, .ion-backspace-outline:before, .ion-bag:before, .ion-battery-charging:before, .ion-battery-empty:before, .ion-battery-full:before, .ion-battery-half:before, .ion-battery-low:before, .ion-beaker:before, .ion-beer:before, .ion-bluetooth:before, .ion-bonfire:before, .ion-bookmark:before, .ion-bowtie:before, .ion-briefcase:before, .ion-bug:before, .ion-calculator:before, .ion-calendar:before, .ion-camera:before, .ion-card:before, .ion-cash:before, .ion-chatbox:before, .ion-chatbox-working:before, .ion-chatboxes:before, .ion-chatbubble:before, .ion-chatbubble-working:before, .ion-chatbubbles:before, .ion-checkmark:before, .ion-checkmark-circled:before, .ion-checkmark-round:before, .ion-chevron-down:before, .ion-chevron-left:before, .ion-chevron-right:before, .ion-chevron-up:before, .ion-clipboard:before, .ion-clock:before, .ion-close:before, .ion-close-circled:before, .ion-close-round:before, .ion-closed-captioning:before, .ion-cloud:before, .ion-code:before, .ion-code-download:before, .ion-code-working:before, .ion-coffee:before, .ion-compass:before, .ion-compose:before, .ion-connection-bars:before, .ion-contrast:before, .ion-crop:before, .ion-cube:before, .ion-disc:before, .ion-document:before, .ion-document-text:before, .ion-drag:before, .ion-earth:before, .ion-easel:before, .ion-edit:before, .ion-egg:before, .ion-eject:before, .ion-email:before, .ion-email-unread:before, .ion-erlenmeyer-flask:before, .ion-erlenmeyer-flask-bubbles:before, .ion-eye:before, .ion-eye-disabled:before, .ion-female:before, .ion-filing:before, .ion-film-marker:before, .ion-fireball:before, .ion-flag:before, .ion-flame:before, .ion-flash:before, .ion-flash-off:before, .ion-folder:before, .ion-fork:before, .ion-fork-repo:before, .ion-forward:before, .ion-funnel:before, .ion-gear-a:before, .ion-gear-b:before, .ion-grid:before, .ion-hammer:before, .ion-happy:before, .ion-happy-outline:before, .ion-headphone:before, .ion-heart:before, .ion-heart-broken:before, .ion-help:before, .ion-help-buoy:before, .ion-help-circled:before, .ion-home:before, .ion-icecream:before, .ion-image:before, .ion-images:before, .ion-information:before, .ion-information-circled:before, .ion-ionic:before, .ion-ios-alarm:before, .ion-ios-alarm-outline:before, .ion-ios-albums:before, .ion-ios-albums-outline:before, .ion-ios-americanfootball:before, .ion-ios-americanfootball-outline:before, .ion-ios-analytics:before, .ion-ios-analytics-outline:before, .ion-ios-arrow-back:before, .ion-ios-arrow-down:before, .ion-ios-arrow-forward:before, .ion-ios-arrow-left:before, .ion-ios-arrow-right:before, .ion-ios-arrow-thin-down:before, .ion-ios-arrow-thin-left:before, .ion-ios-arrow-thin-right:before, .ion-ios-arrow-thin-up:before, .ion-ios-arrow-up:before, .ion-ios-at:before, .ion-ios-at-outline:before, .ion-ios-barcode:before, .ion-ios-barcode-outline:before, .ion-ios-baseball:before, .ion-ios-baseball-outline:before, .ion-ios-basketball:before, .ion-ios-basketball-outline:before, .ion-ios-bell:before, .ion-ios-bell-outline:before, .ion-ios-body:before, .ion-ios-body-outline:before, .ion-ios-bolt:before, .ion-ios-bolt-outline:before, .ion-ios-book:before, .ion-ios-book-outline:before, .ion-ios-bookmarks:before, .ion-ios-bookmarks-outline:before, .ion-ios-box:before, .ion-ios-box-outline:before, .ion-ios-briefcase:before, .ion-ios-briefcase-outline:before, .ion-ios-browsers:before, .ion-ios-browsers-outline:before, .ion-ios-calculator:before, .ion-ios-calculator-outline:before, .ion-ios-calendar:before, .ion-ios-calendar-outline:before, .ion-ios-camera:before, .ion-ios-camera-outline:before, .ion-ios-cart:before, .ion-ios-cart-outline:before, .ion-ios-chatboxes:before, .ion-ios-chatboxes-outline:before, .ion-ios-chatbubble:before, .ion-ios-chatbubble-outline:before, .ion-ios-checkmark:before, .ion-ios-checkmark-empty:before, .ion-ios-checkmark-outline:before, .ion-ios-circle-filled:before, .ion-ios-circle-outline:before, .ion-ios-clock:before, .ion-ios-clock-outline:before, .ion-ios-close:before, .ion-ios-close-empty:before, .ion-ios-close-outline:before, .ion-ios-cloud:before, .ion-ios-cloud-download:before, .ion-ios-cloud-download-outline:before, .ion-ios-cloud-outline:before, .ion-ios-cloud-upload:before, .ion-ios-cloud-upload-outline:before, .ion-ios-cloudy:before, .ion-ios-cloudy-night:before, .ion-ios-cloudy-night-outline:before, .ion-ios-cloudy-outline:before, .ion-ios-cog:before, .ion-ios-cog-outline:before, .ion-ios-color-filter:before, .ion-ios-color-filter-outline:before, .ion-ios-color-wand:before, .ion-ios-color-wand-outline:before, .ion-ios-compose:before, .ion-ios-compose-outline:before, .ion-ios-contact:before, .ion-ios-contact-outline:before, .ion-ios-copy:before, .ion-ios-copy-outline:before, .ion-ios-crop:before, .ion-ios-crop-strong:before, .ion-ios-download:before, .ion-ios-download-outline:before, .ion-ios-drag:before, .ion-ios-email:before, .ion-ios-email-outline:before, .ion-ios-eye:before, .ion-ios-eye-outline:before, .ion-ios-fastforward:before, .ion-ios-fastforward-outline:before, .ion-ios-filing:before, .ion-ios-filing-outline:before, .ion-ios-film:before, .ion-ios-film-outline:before, .ion-ios-flag:before, .ion-ios-flag-outline:before, .ion-ios-flame:before, .ion-ios-flame-outline:before, .ion-ios-flask:before, .ion-ios-flask-outline:before, .ion-ios-flower:before, .ion-ios-flower-outline:before, .ion-ios-folder:before, .ion-ios-folder-outline:before, .ion-ios-football:before, .ion-ios-football-outline:before, .ion-ios-game-controller-a:before, .ion-ios-game-controller-a-outline:before, .ion-ios-game-controller-b:before, .ion-ios-game-controller-b-outline:before, .ion-ios-gear:before, .ion-ios-gear-outline:before, .ion-ios-glasses:before, .ion-ios-glasses-outline:before, .ion-ios-grid-view:before, .ion-ios-grid-view-outline:before, .ion-ios-heart:before, .ion-ios-heart-outline:before, .ion-ios-help:before, .ion-ios-help-empty:before, .ion-ios-help-outline:before, .ion-ios-home:before, .ion-ios-home-outline:before, .ion-ios-infinite:before, .ion-ios-infinite-outline:before, .ion-ios-information:before, .ion-ios-information-empty:before, .ion-ios-information-outline:before, .ion-ios-ionic-outline:before, .ion-ios-keypad:before, .ion-ios-keypad-outline:before, .ion-ios-lightbulb:before, .ion-ios-lightbulb-outline:before, .ion-ios-list:before, .ion-ios-list-outline:before, .ion-ios-location:before, .ion-ios-location-outline:before, .ion-ios-locked:before, .ion-ios-locked-outline:before, .ion-ios-loop:before, .ion-ios-loop-strong:before, .ion-ios-medical:before, .ion-ios-medical-outline:before, .ion-ios-medkit:before, .ion-ios-medkit-outline:before, .ion-ios-mic:before, .ion-ios-mic-off:before, .ion-ios-mic-outline:before, .ion-ios-minus:before, .ion-ios-minus-empty:before, .ion-ios-minus-outline:before, .ion-ios-monitor:before, .ion-ios-monitor-outline:before, .ion-ios-moon:before, .ion-ios-moon-outline:before, .ion-ios-more:before, .ion-ios-more-outline:before, .ion-ios-musical-note:before, .ion-ios-musical-notes:before, .ion-ios-navigate:before, .ion-ios-navigate-outline:before, .ion-ios-nutrition:before, .ion-ios-nutrition-outline:before, .ion-ios-paper:before, .ion-ios-paper-outline:before, .ion-ios-paperplane:before, .ion-ios-paperplane-outline:before, .ion-ios-partlysunny:before, .ion-ios-partlysunny-outline:before, .ion-ios-pause:before, .ion-ios-pause-outline:before, .ion-ios-paw:before, .ion-ios-paw-outline:before, .ion-ios-people:before, .ion-ios-people-outline:before, .ion-ios-person:before, .ion-ios-person-outline:before, .ion-ios-personadd:before, .ion-ios-personadd-outline:before, .ion-ios-photos:before, .ion-ios-photos-outline:before, .ion-ios-pie:before, .ion-ios-pie-outline:before, .ion-ios-pint:before, .ion-ios-pint-outline:before, .ion-ios-play:before, .ion-ios-play-outline:before, .ion-ios-plus:before, .ion-ios-plus-empty:before, .ion-ios-plus-outline:before, .ion-ios-pricetag:before, .ion-ios-pricetag-outline:before, .ion-ios-pricetags:before, .ion-ios-pricetags-outline:before, .ion-ios-printer:before, .ion-ios-printer-outline:before, .ion-ios-pulse:before, .ion-ios-pulse-strong:before, .ion-ios-rainy:before, .ion-ios-rainy-outline:before, .ion-ios-recording:before, .ion-ios-recording-outline:before, .ion-ios-redo:before, .ion-ios-redo-outline:before, .ion-ios-refresh:before, .ion-ios-refresh-empty:before, .ion-ios-refresh-outline:before, .ion-ios-reload:before, .ion-ios-reverse-camera:before, .ion-ios-reverse-camera-outline:before, .ion-ios-rewind:before, .ion-ios-rewind-outline:before, .ion-ios-rose:before, .ion-ios-rose-outline:before, .ion-ios-search:before, .ion-ios-search-strong:before, .ion-ios-settings:before, .ion-ios-settings-strong:before, .ion-ios-shuffle:before, .ion-ios-shuffle-strong:before, .ion-ios-skipbackward:before, .ion-ios-skipbackward-outline:before, .ion-ios-skipforward:before, .ion-ios-skipforward-outline:before, .ion-ios-snowy:before, .ion-ios-speedometer:before, .ion-ios-speedometer-outline:before, .ion-ios-star:before, .ion-ios-star-half:before, .ion-ios-star-outline:before, .ion-ios-stopwatch:before, .ion-ios-stopwatch-outline:before, .ion-ios-sunny:before, .ion-ios-sunny-outline:before, .ion-ios-telephone:before, .ion-ios-telephone-outline:before, .ion-ios-tennisball:before, .ion-ios-tennisball-outline:before, .ion-ios-thunderstorm:before, .ion-ios-thunderstorm-outline:before, .ion-ios-time:before, .ion-ios-time-outline:before, .ion-ios-timer:before, .ion-ios-timer-outline:before, .ion-ios-toggle:before, .ion-ios-toggle-outline:before, .ion-ios-trash:before, .ion-ios-trash-outline:before, .ion-ios-undo:before, .ion-ios-undo-outline:before, .ion-ios-unlocked:before, .ion-ios-unlocked-outline:before, .ion-ios-upload:before, .ion-ios-upload-outline:before, .ion-ios-videocam:before, .ion-ios-videocam-outline:before, .ion-ios-volume-high:before, .ion-ios-volume-low:before, .ion-ios-wineglass:before, .ion-ios-wineglass-outline:before, .ion-ios-world:before, .ion-ios-world-outline:before, .ion-ipad:before, .ion-iphone:before, .ion-ipod:before, .ion-jet:before, .ion-key:before, .ion-knife:before, .ion-laptop:before, .ion-leaf:before, .ion-levels:before, .ion-lightbulb:before, .ion-link:before, .ion-load-a:before, .ion-load-b:before, .ion-load-c:before, .ion-load-d:before, .ion-location:before, .ion-lock-combination:before, .ion-locked:before, .ion-log-in:before, .ion-log-out:before, .ion-loop:before, .ion-magnet:before, .ion-male:before, .ion-man:before, .ion-map:before, .ion-medkit:before, .ion-merge:before, .ion-mic-a:before, .ion-mic-b:before, .ion-mic-c:before, .ion-minus:before, .ion-minus-circled:before, .ion-minus-round:before, .ion-model-s:before, .ion-monitor:before, .ion-more:before, .ion-mouse:before, .ion-music-note:before, .ion-navicon:before, .ion-navicon-round:before, .ion-navigate:before, .ion-network:before, .ion-no-smoking:before, .ion-nuclear:before, .ion-outlet:before, .ion-paintbrush:before, .ion-paintbucket:before, .ion-paper-airplane:before, .ion-paperclip:before, .ion-pause:before, .ion-person:before, .ion-person-add:before, .ion-person-stalker:before, .ion-pie-graph:before, .ion-pin:before, .ion-pinpoint:before, .ion-pizza:before, .ion-plane:before, .ion-planet:before, .ion-play:before, .ion-playstation:before, .ion-plus:before, .ion-plus-circled:before, .ion-plus-round:before, .ion-podium:before, .ion-pound:before, .ion-power:before, .ion-pricetag:before, .ion-pricetags:before, .ion-printer:before, .ion-pull-request:before, .ion-qr-scanner:before, .ion-quote:before, .ion-radio-waves:before, .ion-record:before, .ion-refresh:before, .ion-reply:before, .ion-reply-all:before, .ion-ribbon-a:before, .ion-ribbon-b:before, .ion-sad:before, .ion-sad-outline:before, .ion-scissors:before, .ion-search:before, .ion-settings:before, .ion-share:before, .ion-shuffle:before, .ion-skip-backward:before, .ion-skip-forward:before, .ion-social-android:before, .ion-social-android-outline:before, .ion-social-angular:before, .ion-social-angular-outline:before, .ion-social-apple:before, .ion-social-apple-outline:before, .ion-social-bitcoin:before, .ion-social-bitcoin-outline:before, .ion-social-buffer:before, .ion-social-buffer-outline:before, .ion-social-chrome:before, .ion-social-chrome-outline:before, .ion-social-codepen:before, .ion-social-codepen-outline:before, .ion-social-css3:before, .ion-social-css3-outline:before, .ion-social-designernews:before, .ion-social-designernews-outline:before, .ion-social-dribbble:before, .ion-social-dribbble-outline:before, .ion-social-dropbox:before, .ion-social-dropbox-outline:before, .ion-social-euro:before, .ion-social-euro-outline:before, .ion-social-facebook:before, .ion-social-facebook-outline:before, .ion-social-foursquare:before, .ion-social-foursquare-outline:before, .ion-social-freebsd-devil:before, .ion-social-github:before, .ion-social-github-outline:before, .ion-social-google:before, .ion-social-google-outline:before, .ion-social-googleplus:before, .ion-social-googleplus-outline:before, .ion-social-hackernews:before, .ion-social-hackernews-outline:before, .ion-social-html5:before, .ion-social-html5-outline:before, .ion-social-instagram:before, .ion-social-instagram-outline:before, .ion-social-javascript:before, .ion-social-javascript-outline:before, .ion-social-linkedin:before, .ion-social-linkedin-outline:before, .ion-social-markdown:before, .ion-social-nodejs:before, .ion-social-octocat:before, .ion-social-pinterest:before, .ion-social-pinterest-outline:before, .ion-social-python:before, .ion-social-reddit:before, .ion-social-reddit-outline:before, .ion-social-rss:before, .ion-social-rss-outline:before, .ion-social-sass:before, .ion-social-skype:before, .ion-social-skype-outline:before, .ion-social-snapchat:before, .ion-social-snapchat-outline:before, .ion-social-tumblr:before, .ion-social-tumblr-outline:before, .ion-social-tux:before, .ion-social-twitch:before, .ion-social-twitch-outline:before, .ion-social-twitter:before, .ion-social-twitter-outline:before, .ion-social-usd:before, .ion-social-usd-outline:before, .ion-social-vimeo:before, .ion-social-vimeo-outline:before, .ion-social-whatsapp:before, .ion-social-whatsapp-outline:before, .ion-social-windows:before, .ion-social-windows-outline:before, .ion-social-wordpress:before, .ion-social-wordpress-outline:before, .ion-social-yahoo:before, .ion-social-yahoo-outline:before, .ion-social-yen:before, .ion-social-yen-outline:before, .ion-social-youtube:before, .ion-social-youtube-outline:before, .ion-soup-can:before, .ion-soup-can-outline:before, .ion-speakerphone:before, .ion-speedometer:before, .ion-spoon:before, .ion-star:before, .ion-stats-bars:before, .ion-steam:before, .ion-stop:before, .ion-thermometer:before, .ion-thumbsdown:before, .ion-thumbsup:before, .ion-toggle:before, .ion-toggle-filled:before, .ion-transgender:before, .ion-trash-a:before, .ion-trash-b:before, .ion-trophy:before, .ion-tshirt:before, .ion-tshirt-outline:before, .ion-umbrella:before, .ion-university:before, .ion-unlocked:before, .ion-upload:before, .ion-usb:before, .ion-videocamera:before, .ion-volume-high:before, .ion-volume-low:before, .ion-volume-medium:before, .ion-volume-mute:before, .ion-wand:before, .ion-waterdrop:before, .ion-wifi:before, .ion-wineglass:before, .ion-woman:before, .ion-wrench:before, .ion-xbox:before { display: inline-block; font-family: "Ionicons"; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; text-rendering: auto; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } +.ion, .ionicons, .ion-alert:before, .ion-alert-circled:before, .ion-android-add:before, .ion-android-add-circle:before, .ion-android-alarm-clock:before, .ion-android-alert:before, .ion-android-apps:before, .ion-android-archive:before, .ion-android-arrow-back:before, .ion-android-arrow-down:before, .ion-android-arrow-dropdown:before, .ion-android-arrow-dropdown-circle:before, .ion-android-arrow-dropleft:before, .ion-android-arrow-dropleft-circle:before, .ion-android-arrow-dropright:before, .ion-android-arrow-dropright-circle:before, .ion-android-arrow-dropup:before, .ion-android-arrow-dropup-circle:before, .ion-android-arrow-forward:before, .ion-android-arrow-up:before, .ion-android-attach:before, .ion-android-bar:before, .ion-android-bicycle:before, .ion-android-boat:before, .ion-android-bookmark:before, .ion-android-bulb:before, .ion-android-bus:before, .ion-android-calendar:before, .ion-android-call:before, .ion-android-camera:before, .ion-android-cancel:before, .ion-android-car:before, .ion-android-cart:before, .ion-android-chat:before, .ion-android-checkbox:before, .ion-android-checkbox-blank:before, .ion-android-checkbox-outline:before, .ion-android-checkbox-outline-blank:before, .ion-android-checkmark-circle:before, .ion-android-clipboard:before, .ion-android-close:before, .ion-android-cloud:before, .ion-android-cloud-circle:before, .ion-android-cloud-done:before, .ion-android-cloud-outline:before, .ion-android-color-palette:before, .ion-android-compass:before, .ion-android-contact:before, .ion-android-contacts:before, .ion-android-contract:before, .ion-android-create:before, .ion-android-delete:before, .ion-android-desktop:before, .ion-android-document:before, .ion-android-done:before, .ion-android-done-all:before, .ion-android-download:before, .ion-android-drafts:before, .ion-android-exit:before, .ion-android-expand:before, .ion-android-favorite:before, .ion-android-favorite-outline:before, .ion-android-film:before, .ion-android-folder:before, .ion-android-folder-open:before, .ion-android-funnel:before, .ion-android-globe:before, .ion-android-hand:before, .ion-android-hangout:before, .ion-android-happy:before, .ion-android-home:before, .ion-android-image:before, .ion-android-laptop:before, .ion-android-list:before, .ion-android-locate:before, .ion-android-lock:before, .ion-android-mail:before, .ion-android-map:before, .ion-android-menu:before, .ion-android-microphone:before, .ion-android-microphone-off:before, .ion-android-more-horizontal:before, .ion-android-more-vertical:before, .ion-android-navigate:before, .ion-android-notifications:before, .ion-android-notifications-none:before, .ion-android-notifications-off:before, .ion-android-open:before, .ion-android-options:before, .ion-android-people:before, .ion-android-person:before, .ion-android-person-add:before, .ion-android-phone-landscape:before, .ion-android-phone-portrait:before, .ion-android-pin:before, .ion-android-plane:before, .ion-android-playstore:before, .ion-android-print:before, .ion-android-radio-button-off:before, .ion-android-radio-button-on:before, .ion-android-refresh:before, .ion-android-remove:before, .ion-android-remove-circle:before, .ion-android-restaurant:before, .ion-android-sad:before, .ion-android-search:before, .ion-android-send:before, .ion-android-settings:before, .ion-android-share:before, .ion-android-share-alt:before, .ion-android-star:before, .ion-android-star-half:before, .ion-android-star-outline:before, .ion-android-stopwatch:before, .ion-android-subway:before, .ion-android-sunny:before, .ion-android-sync:before, .ion-android-textsms:before, .ion-android-time:before, .ion-android-train:before, .ion-android-unlock:before, .ion-android-upload:before, .ion-android-volume-down:before, .ion-android-volume-mute:before, .ion-android-volume-off:before, .ion-android-volume-up:before, .ion-android-walk:before, .ion-android-warning:before, .ion-android-watch:before, .ion-android-wifi:before, .ion-aperture:before, .ion-archive:before, .ion-arrow-down-a:before, .ion-arrow-down-b:before, .ion-arrow-down-c:before, .ion-arrow-expand:before, .ion-arrow-graph-down-left:before, .ion-arrow-graph-down-right:before, .ion-arrow-graph-up-left:before, .ion-arrow-graph-up-right:before, .ion-arrow-left-a:before, .ion-arrow-left-b:before, .ion-arrow-left-c:before, .ion-arrow-move:before, .ion-arrow-resize:before, .ion-arrow-return-left:before, .ion-arrow-return-right:before, .ion-arrow-right-a:before, .ion-arrow-right-b:before, .ion-arrow-right-c:before, .ion-arrow-shrink:before, .ion-arrow-swap:before, .ion-arrow-up-a:before, .ion-arrow-up-b:before, .ion-arrow-up-c:before, .ion-asterisk:before, .ion-at:before, .ion-backspace:before, .ion-backspace-outline:before, .ion-bag:before, .ion-battery-charging:before, .ion-battery-empty:before, .ion-battery-full:before, .ion-battery-half:before, .ion-battery-low:before, .ion-beaker:before, .ion-beer:before, .ion-bluetooth:before, .ion-bonfire:before, .ion-bookmark:before, .ion-bowtie:before, .ion-briefcase:before, .ion-bug:before, .ion-calculator:before, .ion-calendar:before, .ion-camera:before, .ion-card:before, .ion-cash:before, .ion-chatbox:before, .ion-chatbox-working:before, .ion-chatboxes:before, .ion-chatbubble:before, .ion-chatbubble-working:before, .ion-chatbubbles:before, .ion-checkmark:before, .ion-checkmark-circled:before, .ion-checkmark-round:before, .ion-chevron-down:before, .ion-chevron-left:before, .ion-chevron-right:before, .ion-chevron-up:before, .ion-clipboard:before, .ion-clock:before, .ion-close:before, .ion-close-circled:before, .ion-close-round:before, .ion-closed-captioning:before, .ion-cloud:before, .ion-code:before, .ion-code-download:before, .ion-code-working:before, .ion-coffee:before, .ion-compass:before, .ion-compose:before, .ion-connection-bars:before, .ion-contrast:before, .ion-crop:before, .ion-cube:before, .ion-disc:before, .ion-document:before, .ion-document-text:before, .ion-drag:before, .ion-earth:before, .ion-easel:before, .ion-edit:before, .ion-egg:before, .ion-eject:before, .ion-email:before, .ion-email-unread:before, .ion-erlenmeyer-flask:before, .ion-erlenmeyer-flask-bubbles:before, .ion-eye:before, .ion-eye-disabled:before, .ion-female:before, .ion-filing:before, .ion-film-marker:before, .ion-fireball:before, .ion-flag:before, .ion-flame:before, .ion-flash:before, .ion-flash-off:before, .ion-folder:before, .ion-fork:before, .ion-fork-repo:before, .ion-forward:before, .ion-funnel:before, .ion-gear-a:before, .ion-gear-b:before, .ion-grid:before, .ion-hammer:before, .ion-happy:before, .ion-happy-outline:before, .ion-headphone:before, .ion-heart:before, .ion-heart-broken:before, .ion-help:before, .ion-help-buoy:before, .ion-help-circled:before, .ion-home:before, .ion-icecream:before, .ion-image:before, .ion-images:before, .ion-information:before, .ion-information-circled:before, .ion-ionic:before, .ion-ios-alarm:before, .ion-ios-alarm-outline:before, .ion-ios-albums:before, .ion-ios-albums-outline:before, .ion-ios-americanfootball:before, .ion-ios-americanfootball-outline:before, .ion-ios-analytics:before, .ion-ios-analytics-outline:before, .ion-ios-arrow-back:before, .ion-ios-arrow-down:before, .ion-ios-arrow-forward:before, .ion-ios-arrow-left:before, .ion-ios-arrow-right:before, .ion-ios-arrow-thin-down:before, .ion-ios-arrow-thin-left:before, .ion-ios-arrow-thin-right:before, .ion-ios-arrow-thin-up:before, .ion-ios-arrow-up:before, .ion-ios-at:before, .ion-ios-at-outline:before, .ion-ios-barcode:before, .ion-ios-barcode-outline:before, .ion-ios-baseball:before, .ion-ios-baseball-outline:before, .ion-ios-basketball:before, .ion-ios-basketball-outline:before, .ion-ios-bell:before, .ion-ios-bell-outline:before, .ion-ios-body:before, .ion-ios-body-outline:before, .ion-ios-bolt:before, .ion-ios-bolt-outline:before, .ion-ios-book:before, .ion-ios-book-outline:before, .ion-ios-bookmarks:before, .ion-ios-bookmarks-outline:before, .ion-ios-box:before, .ion-ios-box-outline:before, .ion-ios-briefcase:before, .ion-ios-briefcase-outline:before, .ion-ios-browsers:before, .ion-ios-browsers-outline:before, .ion-ios-calculator:before, .ion-ios-calculator-outline:before, .ion-ios-calendar:before, .ion-ios-calendar-outline:before, .ion-ios-camera:before, .ion-ios-camera-outline:before, .ion-ios-cart:before, .ion-ios-cart-outline:before, .ion-ios-chatboxes:before, .ion-ios-chatboxes-outline:before, .ion-ios-chatbubble:before, .ion-ios-chatbubble-outline:before, .ion-ios-checkmark:before, .ion-ios-checkmark-empty:before, .ion-ios-checkmark-outline:before, .ion-ios-circle-filled:before, .ion-ios-circle-outline:before, .ion-ios-clock:before, .ion-ios-clock-outline:before, .ion-ios-close:before, .ion-ios-close-empty:before, .ion-ios-close-outline:before, .ion-ios-cloud:before, .ion-ios-cloud-download:before, .ion-ios-cloud-download-outline:before, .ion-ios-cloud-outline:before, .ion-ios-cloud-upload:before, .ion-ios-cloud-upload-outline:before, .ion-ios-cloudy:before, .ion-ios-cloudy-night:before, .ion-ios-cloudy-night-outline:before, .ion-ios-cloudy-outline:before, .ion-ios-cog:before, .ion-ios-cog-outline:before, .ion-ios-color-filter:before, .ion-ios-color-filter-outline:before, .ion-ios-color-wand:before, .ion-ios-color-wand-outline:before, .ion-ios-compose:before, .ion-ios-compose-outline:before, .ion-ios-contact:before, .ion-ios-contact-outline:before, .ion-ios-copy:before, .ion-ios-copy-outline:before, .ion-ios-crop:before, .ion-ios-crop-strong:before, .ion-ios-download:before, .ion-ios-download-outline:before, .ion-ios-drag:before, .ion-ios-email:before, .ion-ios-email-outline:before, .ion-ios-eye:before, .ion-ios-eye-outline:before, .ion-ios-fastforward:before, .ion-ios-fastforward-outline:before, .ion-ios-filing:before, .ion-ios-filing-outline:before, .ion-ios-film:before, .ion-ios-film-outline:before, .ion-ios-flag:before, .ion-ios-flag-outline:before, .ion-ios-flame:before, .ion-ios-flame-outline:before, .ion-ios-flask:before, .ion-ios-flask-outline:before, .ion-ios-flower:before, .ion-ios-flower-outline:before, .ion-ios-folder:before, .ion-ios-folder-outline:before, .ion-ios-football:before, .ion-ios-football-outline:before, .ion-ios-game-controller-a:before, .ion-ios-game-controller-a-outline:before, .ion-ios-game-controller-b:before, .ion-ios-game-controller-b-outline:before, .ion-ios-gear:before, .ion-ios-gear-outline:before, .ion-ios-glasses:before, .ion-ios-glasses-outline:before, .ion-ios-grid-view:before, .ion-ios-grid-view-outline:before, .ion-ios-heart:before, .ion-ios-heart-outline:before, .ion-ios-help:before, .ion-ios-help-empty:before, .ion-ios-help-outline:before, .ion-ios-home:before, .ion-ios-home-outline:before, .ion-ios-infinite:before, .ion-ios-infinite-outline:before, .ion-ios-information:before, .ion-ios-information-empty:before, .ion-ios-information-outline:before, .ion-ios-ionic-outline:before, .ion-ios-keypad:before, .ion-ios-keypad-outline:before, .ion-ios-lightbulb:before, .ion-ios-lightbulb-outline:before, .ion-ios-list:before, .ion-ios-list-outline:before, .ion-ios-location:before, .ion-ios-location-outline:before, .ion-ios-locked:before, .ion-ios-locked-outline:before, .ion-ios-loop:before, .ion-ios-loop-strong:before, .ion-ios-medical:before, .ion-ios-medical-outline:before, .ion-ios-medkit:before, .ion-ios-medkit-outline:before, .ion-ios-mic:before, .ion-ios-mic-off:before, .ion-ios-mic-outline:before, .ion-ios-minus:before, .ion-ios-minus-empty:before, .ion-ios-minus-outline:before, .ion-ios-monitor:before, .ion-ios-monitor-outline:before, .ion-ios-moon:before, .ion-ios-moon-outline:before, .ion-ios-more:before, .ion-ios-more-outline:before, .ion-ios-musical-note:before, .ion-ios-musical-notes:before, .ion-ios-navigate:before, .ion-ios-navigate-outline:before, .ion-ios-nutrition:before, .ion-ios-nutrition-outline:before, .ion-ios-paper:before, .ion-ios-paper-outline:before, .ion-ios-paperplane:before, .ion-ios-paperplane-outline:before, .ion-ios-partlysunny:before, .ion-ios-partlysunny-outline:before, .ion-ios-pause:before, .ion-ios-pause-outline:before, .ion-ios-paw:before, .ion-ios-paw-outline:before, .ion-ios-people:before, .ion-ios-people-outline:before, .ion-ios-person:before, .ion-ios-person-outline:before, .ion-ios-personadd:before, .ion-ios-personadd-outline:before, .ion-ios-photos:before, .ion-ios-photos-outline:before, .ion-ios-pie:before, .ion-ios-pie-outline:before, .ion-ios-pint:before, .ion-ios-pint-outline:before, .ion-ios-play:before, .ion-ios-play-outline:before, .ion-ios-plus:before, .ion-ios-plus-empty:before, .ion-ios-plus-outline:before, .ion-ios-pricetag:before, .ion-ios-pricetag-outline:before, .ion-ios-pricetags:before, .ion-ios-pricetags-outline:before, .ion-ios-printer:before, .ion-ios-printer-outline:before, .ion-ios-pulse:before, .ion-ios-pulse-strong:before, .ion-ios-rainy:before, .ion-ios-rainy-outline:before, .ion-ios-recording:before, .ion-ios-recording-outline:before, .ion-ios-redo:before, .ion-ios-redo-outline:before, .ion-ios-refresh:before, .ion-ios-refresh-empty:before, .ion-ios-refresh-outline:before, .ion-ios-reload:before, .ion-ios-reverse-camera:before, .ion-ios-reverse-camera-outline:before, .ion-ios-rewind:before, .ion-ios-rewind-outline:before, .ion-ios-rose:before, .ion-ios-rose-outline:before, .ion-ios-search:before, .ion-ios-search-strong:before, .ion-ios-settings:before, .ion-ios-settings-strong:before, .ion-ios-shuffle:before, .ion-ios-shuffle-strong:before, .ion-ios-skipbackward:before, .ion-ios-skipbackward-outline:before, .ion-ios-skipforward:before, .ion-ios-skipforward-outline:before, .ion-ios-snowy:before, .ion-ios-speedometer:before, .ion-ios-speedometer-outline:before, .ion-ios-star:before, .ion-ios-star-half:before, .ion-ios-star-outline:before, .ion-ios-stopwatch:before, .ion-ios-stopwatch-outline:before, .ion-ios-sunny:before, .ion-ios-sunny-outline:before, .ion-ios-telephone:before, .ion-ios-telephone-outline:before, .ion-ios-tennisball:before, .ion-ios-tennisball-outline:before, .ion-ios-thunderstorm:before, .ion-ios-thunderstorm-outline:before, .ion-ios-time:before, .ion-ios-time-outline:before, .ion-ios-timer:before, .ion-ios-timer-outline:before, .ion-ios-toggle:before, .ion-ios-toggle-outline:before, .ion-ios-trash:before, .ion-ios-trash-outline:before, .ion-ios-undo:before, .ion-ios-undo-outline:before, .ion-ios-unlocked:before, .ion-ios-unlocked-outline:before, .ion-ios-upload:before, .ion-ios-upload-outline:before, .ion-ios-videocam:before, .ion-ios-videocam-outline:before, .ion-ios-volume-high:before, .ion-ios-volume-low:before, .ion-ios-wineglass:before, .ion-ios-wineglass-outline:before, .ion-ios-world:before, .ion-ios-world-outline:before, .ion-ipad:before, .ion-iphone:before, .ion-ipod:before, .ion-jet:before, .ion-key:before, .ion-knife:before, .ion-laptop:before, .ion-leaf:before, .ion-levels:before, .ion-lightbulb:before, .ion-link:before, .ion-load-a:before, .ion-load-b:before, .ion-load-c:before, .ion-load-d:before, .ion-location:before, .ion-lock-combination:before, .ion-locked:before, .ion-log-in:before, .ion-log-out:before, .ion-loop:before, .ion-magnet:before, .ion-male:before, .ion-man:before, .ion-map:before, .ion-medkit:before, .ion-merge:before, .ion-mic-a:before, .ion-mic-b:before, .ion-mic-c:before, .ion-minus:before, .ion-minus-circled:before, .ion-minus-round:before, .ion-model-s:before, .ion-monitor:before, .ion-more:before, .ion-mouse:before, .ion-music-note:before, .ion-navicon:before, .ion-navicon-round:before, .ion-navigate:before, .ion-network:before, .ion-no-smoking:before, .ion-nuclear:before, .ion-outlet:before, .ion-paintbrush:before, .ion-paintbucket:before, .ion-paper-airplane:before, .ion-paperclip:before, .ion-pause:before, .ion-person:before, .ion-person-add:before, .ion-person-stalker:before, .ion-pie-graph:before, .ion-pin:before, .ion-pinpoint:before, .ion-pizza:before, .ion-plane:before, .ion-planet:before, .ion-play:before, .ion-playstation:before, .ion-plus:before, .ion-plus-circled:before, .ion-plus-round:before, .ion-podium:before, .ion-pound:before, .ion-power:before, .ion-pricetag:before, .ion-pricetags:before, .ion-printer:before, .ion-pull-request:before, .ion-qr-scanner:before, .ion-quote:before, .ion-radio-waves:before, .ion-record:before, .ion-refresh:before, .ion-reply:before, .ion-reply-all:before, .ion-ribbon-a:before, .ion-ribbon-b:before, .ion-sad:before, .ion-sad-outline:before, .ion-scissors:before, .ion-search:before, .ion-settings:before, .ion-share:before, .ion-shuffle:before, .ion-skip-backward:before, .ion-skip-forward:before, .ion-social-android:before, .ion-social-android-outline:before, .ion-social-angular:before, .ion-social-angular-outline:before, .ion-social-apple:before, .ion-social-apple-outline:before, .ion-social-bitcoin:before, .ion-social-bitcoin-outline:before, .ion-social-buffer:before, .ion-social-buffer-outline:before, .ion-social-chrome:before, .ion-social-chrome-outline:before, .ion-social-codepen:before, .ion-social-codepen-outline:before, .ion-social-css3:before, .ion-social-css3-outline:before, .ion-social-designernews:before, .ion-social-designernews-outline:before, .ion-social-dribbble:before, .ion-social-dribbble-outline:before, .ion-social-dropbox:before, .ion-social-dropbox-outline:before, .ion-social-euro:before, .ion-social-euro-outline:before, .ion-social-facebook:before, .ion-social-facebook-outline:before, .ion-social-foursquare:before, .ion-social-foursquare-outline:before, .ion-social-freebsd-devil:before, .ion-social-github:before, .ion-social-github-outline:before, .ion-social-google:before, .ion-social-google-outline:before, .ion-social-googleplus:before, .ion-social-googleplus-outline:before, .ion-social-hackernews:before, .ion-social-hackernews-outline:before, .ion-social-html5:before, .ion-social-html5-outline:before, .ion-social-instagram:before, .ion-social-instagram-outline:before, .ion-social-javascript:before, .ion-social-javascript-outline:before, .ion-social-linkedin:before, .ion-social-linkedin-outline:before, .ion-social-markdown:before, .ion-social-nodejs:before, .ion-social-octocat:before, .ion-social-pinterest:before, .ion-social-pinterest-outline:before, .ion-social-python:before, .ion-social-reddit:before, .ion-social-reddit-outline:before, .ion-social-rss:before, .ion-social-rss-outline:before, .ion-social-sass:before, .ion-social-skype:before, .ion-social-skype-outline:before, .ion-social-snapchat:before, .ion-social-snapchat-outline:before, .ion-social-tumblr:before, .ion-social-tumblr-outline:before, .ion-social-tux:before, .ion-social-twitch:before, .ion-social-twitch-outline:before, .ion-social-twitter:before, .ion-social-twitter-outline:before, .ion-social-usd:before, .ion-social-usd-outline:before, .ion-social-vimeo:before, .ion-social-vimeo-outline:before, .ion-social-whatsapp:before, .ion-social-whatsapp-outline:before, .ion-social-windows:before, .ion-social-windows-outline:before, .ion-social-wordpress:before, .ion-social-wordpress-outline:before, .ion-social-yahoo:before, .ion-social-yahoo-outline:before, .ion-social-yen:before, .ion-social-yen-outline:before, .ion-social-youtube:before, .ion-social-youtube-outline:before, .ion-soup-can:before, .ion-soup-can-outline:before, .ion-speakerphone:before, .ion-speedometer:before, .ion-spoon:before, .ion-star:before, .ion-stats-bars:before, .ion-steam:before, .ion-stop:before, .ion-thermometer:before, .ion-thumbsdown:before, .ion-thumbsup:before, .ion-toggle:before, .ion-toggle-filled:before, .ion-transgender:before, .ion-trash-a:before, .ion-trash-b:before, .ion-trophy:before, .ion-tshirt:before, .ion-tshirt-outline:before, .ion-umbrella:before, .ion-university:before, .ion-unlocked:before, .ion-upload:before, .ion-usb:before, .ion-videocamera:before, .ion-volume-high:before, .ion-volume-low:before, .ion-volume-medium:before, .ion-volume-mute:before, .ion-wand:before, .ion-waterdrop:before, .ion-wifi:before, .ion-wineglass:before, .ion-woman:before, .ion-wrench:before, .ion-xbox:before { + display: inline-block; + font-family: "Ionicons"; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + text-rendering: auto; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + pointer-events: none; +} .ion-alert:before { content: "\f101"; } diff --git a/StoneIsland/platforms/ios/www/css/nav.css b/StoneIsland/platforms/ios/www/css/nav.css index 705c0824..03e3fb39 100755 --- a/StoneIsland/platforms/ios/www/css/nav.css +++ b/StoneIsland/platforms/ios/www/css/nav.css @@ -27,6 +27,19 @@ .accessible #content { position: absolute; } + +.accessible #nav { + width: 100%; + -webkit-transform: translateZ(0) translateX(-100%); +} +.accessible .nav #nav { + width: 100%; + -webkit-transform: translateZ(0) translateX(0%); +} +.accessible .nav #content { + -webkit-transform: translateZ(0) translateX(100%); +} + #nav .logo { background-image: url(../img/small-logo.png); background-repeat: no-repeat; @@ -193,6 +206,9 @@ padding-bottom:0px; align-items: center; font-size: 1.063rem; } +#intro div span { + pointer-events: none; +} #intro #compass { pointer-events: none; background-image: url(../img/compass-logo.png); @@ -274,6 +290,9 @@ padding-bottom:0px; flex-direction: row; justify-content: center; } +#header .burger:before { + pointer-events: none; +} #header .cart_rapper { display: flex; @@ -281,7 +300,7 @@ padding-bottom:0px; align-items: flex-end; position: relative; float: right; - width: 44px; height: 48px; + width: 48px; height: 48px; } #header .cart { position: relative; @@ -292,6 +311,7 @@ padding-bottom:0px; background-image:url(../img/cart-box.png); background-size:100%; background-repeat:no-repeat; + pointer-events: none; } #header .cart .cart_count { diff --git a/StoneIsland/platforms/ios/www/index.html b/StoneIsland/platforms/ios/www/index.html index 568161e5..17289033 100755 --- a/StoneIsland/platforms/ios/www/index.html +++ b/StoneIsland/platforms/ios/www/index.html @@ -36,7 +36,7 @@ <div id="nav-row"> <!-- flex --> - <span role="menu" class="menu"> + <span role="region" class="menu"> <div class="logo" aria-label="Stone Island"></div> <div class="close" role="button" aria-label="Close menu"></div> <div role="menu" aria-label="Main Menu" class="main_menu"> @@ -91,10 +91,10 @@ </div> <span class="social" role="list" aria-label="Social Links"> - <span role="menuitem" class="fb ion-social-facebook"></span> - <span role="menuitem" class="insta ion-social-instagram-outline"></span> - <span role="menuitem" class="tw ion-social-twitter"></span> - <span role="menuitem" class="yt ion-social-youtube"></span> + <span role="menuitem" aria-label="Follow us on Facebook" class="fb ion-social-facebook"></span> + <span role="menuitem" aria-label="Follow us on Instagram" class="insta ion-social-instagram-outline"></span> + <span role="menuitem" aria-label="Follow us on Twitter" class="tw ion-social-twitter"></span> + <span role="menuitem" aria-label="Follow us on Youtube" class="yt ion-social-youtube"></span> </span> </div> @@ -102,25 +102,25 @@ <div id="intro" role="menu" aria-label="Stone Island Home Screen"> <div id="compass"></div> - <div role="menuitem" class="store">STORE</div> - <div role="menuitem" class="hub">HUB</div> - <div role="menuitem" class="story">STORY</div> - <div role="menuitem" class="archive">ARCHIVE</div> + <div role="menuitem" class="store"><span>STORE</span></div> + <div role="menuitem" class="hub"><span>HUB</span></div> + <div role="menuitem" class="story"><span>STORY</span></div> + <div role="menuitem" class="archive"><span>ARCHIVE</span></div> <div class="alert"></div> <span class="latlng" role="note" aria-label="Your Latitude and Longitude">+40° 58' 90.9" N 74° 04' 46.3" W</span> </div> <div id="header" role="menubar" aria-label="Menu bar"> - <span role="link" aria-label="Show main menu" class="burger ion-android-menu"></span> - <span role="link" aria-label="Homepage. Stone Island logo" class="logo"></span> - <span role="link" aria-label="View cart" class="cart_rapper"><span class="cart"><span role="display" class="cart_count">0</span></span></span> + <div role="menuitem" aria-label="Show main menu" class="burger ion-android-menu"></div> + <div role="menuitem" aria-label="Homepage. Stone Island logo" class="logo"></div> + <div role="menuitem" aria-label="View cart" class="cart_rapper"><span class="cart"><span role="display" class="cart_count">0</span></span></div> </div> <!-- BLOGS ================================================ --> <div id="story" role="region" aria-label="Stone Island Story"> <div class="scroll"> - <h1 aria-label="Current section: Stone Island Story">STORY</h1> + <h1 role="menuitem" aria-label="Current section: Stone Island Story">STORY</h1> <img> <ul class="links"></ul> <div class="content"> @@ -135,7 +135,7 @@ <div id="hub" role="region" aria-label="Stone Island Hub"> <div class="scroll"> - <h1 aria-label="Current section: Stone Island Hub">HUB</h1> + <h1 role="menuitem" aria-label="Current section: Stone Island Hub">HUB</h1> <div class="content"> <script type="text/html" class="template"> <div class="hub_item" data-id="{{id}}"> @@ -169,7 +169,7 @@ <div class="content"> <script type="text/html" class="template"> - <div class="image" aria-label="{{label}}" style="background-image:url({{image}})"></div> + <div class="image" role="img" aria-label="{{label}}" style="background-image:url({{image}})"></div> <div class="text"> <div> <h2> @@ -194,21 +194,21 @@ </div> </div> <div class="heading"> - <h1 role="heading" aria-label="Current section: Stone Island Archive">ARCHIVE</h1> + <h1 role="menuitem" aria-label="Current section: Stone Island Archive">ARCHIVE</h1> <div role="heading" class="subtitle" aria-label="1982 to 2015">'982'015</div> </div> </div> <div id="privacy" role="region" aria-label="Privacy Policy" class="page"> <div class="scroll"> - <h1 aria-label="Current section: Privacy Policy">PRIVACY POLICY</h1> + <h1 role="menuitem" aria-label="Current section: Privacy Policy">PRIVACY POLICY</h1> <div class="content"></div> </div> </div> <div id="account_terms" role="region" aria-label="My Account Terms and Conditions of Use" class="page"> <div class="scroll"> - <h1 aria-label="Current section: My Account terms and conditions of use">MY ACCOUNT TERMS AND CONDITIONS OF USE</h1> + <h1 role="menuitem" aria-label="Current section: My Account terms and conditions of use">MY ACCOUNT TERMS AND CONDITIONS OF USE</h1> <div class="content"> <h2>1. Services</h2> <p> @@ -264,21 +264,21 @@ <div id="terms" role="region" aria-label="Terms and Conditions" class="page"> <div class="scroll"> - <h1 aria-label="Current section: Terms and conditions">TERMS AND CONDITIONS</h1> + <h1 role="menuitem" aria-label="Current section: Terms and conditions">TERMS AND CONDITIONS</h1> <div class="content"></div> </div> </div> <div id="returns" role="region" aria-label="Return Policy" class="page"> <div class="scroll"> - <h1 aria-label="Current section: Return policy">RETURN POLICY</h1> + <h1 role="menuitem" aria-label="Current section: Return policy">RETURN POLICY</h1> <div class="content"></div> </div> </div> <div id="care" role="region" aria-label="Customer Care" class="page"> <div class="scroll"> - <h1 aria-label="Current section: Customer care">CUSTOMER CARE</h1> + <h1 role="menuitem" aria-label="Current section: Customer care">CUSTOMER CARE</h1> <div class="content"></div> </div> </div> @@ -288,7 +288,7 @@ <div id="collection" role="region" aria-label="Store"> <div class="scroll"> - <h1 aria-label="Current section: Store">LOADING...</h1> + <h1 role="menuitem" aria-label="Current section: Store">LOADING...</h1> <div class="loader"></div> <div class="content"> <script type="text/html" class="template"> @@ -302,9 +302,9 @@ <div id="search" role="search" aria-label="Search"> <div class="scroll"> - <h1 aria-label="Current section: Search">SEARCH</h1> + <h1 role="menuitem" aria-label="Current section: Search">SEARCH</h1> <div class="form"> - <input type="text" class="q" placeholder="ENTER YOUR SEARCH"> + <input type="text" role="textbox" class="q" placeholder="ENTER YOUR SEARCH"> </div> </div> </div> @@ -377,17 +377,17 @@ <div id="login" role="region" aria-label="Log In"> <div class="scroll"> - <h1 aria-label="Current section: Log In">LOGIN</h1> + <h1 role="menuitem" aria-label="Current section: Log In">LOGIN</h1> <div class="form"> <div class="container"> <div class="container-row"> <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <label for="login_email_address">Email Address</label> - <input type="email" id="login_email_address" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="1"> + <input type="email" role="textbox" id="login_email_address" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="1"> <span class='err'></span> <label for="login_password">Password</label> - <form><input type="password" id="login_password" name="Password" aria-placeholder="PASSWORD" required tabindex="2"></form> + <form><input type="password" role="textbox" id="login_password" name="Password" aria-placeholder="PASSWORD" required tabindex="2"></form> <span class='err'></span> </div> <div class="container-fill"> @@ -407,7 +407,7 @@ <div id="logout" role="region" aria-label="You are now logged out"> <div class="scroll"> - <h1 aria-label="Current section: You are now Logged Out">LOGOUT</h1> + <h1 role="menuitem" aria-label="Current section: You are now Logged Out">LOGOUT</h1> <div class="container"> <div class="container-fill"> <span class="container-message msg"> @@ -420,31 +420,31 @@ <div id="signup" role="region" aria-label="New User. Create an account"> <div class="scroll"> - <h1 aria-label="Current section: New User. Create an account">NEW USER</h1> + <h1 role="menuitem" aria-label="Current section: New User. Create an account">NEW USER</h1> <div class="form"> <div class="container"> <div class="container-row"> <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <label for="signup_name">First Name</label> - <input type="text" id="signup_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> + <input type="text" role="textbox" id="signup_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> <span class='err'></span> <label for="signup_surname">Last Name</label> - <input type="text" id="signup_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> + <input type="text" role="textbox" id="signup_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> <span class='err'></span> <label for="signup_email">Email Address</label> - <input type="email" id="signup_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> + <input type="email" role="textbox" id="signup_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> <span class='err'></span> <label for="signup_confirmemail">Confirm Email Address</label> - <input type="email" id="signup_confirmemail" name="ConfirmEmail" aria-placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4"> + <input type="email" role="textbox" id="signup_confirmemail" name="ConfirmEmail" aria-placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4"> <span class='err'></span> - <label for="signup_birthday">Birthday (MM/DD/YYYY)</label> + <label for="signup_birthday">Birthday optional (MM/DD/YYYY)</label> <div class="select-wrapper date-wrapper"> <span></span> - <input type="date" id="signup_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> + <input type="date" id="signup_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY OPTIONAL (MM/DD/YYYY)" required tabindex="5"> </div> <span class='err'></span> @@ -481,7 +481,7 @@ <div class="checkbox-row"> <div class="checkbox-toggle"> <input type="checkbox" id="checkbox-shopping-account-terms" aria-labelledby="checkbox-gdpr-terms-label" name="GdprTerms" value="true" required tabindex="10"> - <label for="checkbox-shopping-data-profiling"></label> + <label for="checkbox-shopping-account-terms"></label> </div> <label class="checkbox-caption" for="checkbox-shopping-account-terms" id="checkbox-gdpr-terms-label"> I ACCEPT MY ACCOUNT TERMS AND CONDITIONS OF USE * @@ -504,27 +504,27 @@ <div id="profile" role="region" aria-label="My Profile"> <div class="scroll"> - <h1 aria-label="Current section: My Profile">MY PROFILE</h1> + <h1 role="menuitem" aria-label="Current section: My Profile">MY PROFILE</h1> <div class="form"> <div class="container"> <div class="container-row"> <span class='err_heading'>There was a problem submitting the form. Please correct the form below and try again.</span> <label for="profile_name">First Name</label> - <input type="text" id="profile_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> + <input type="text" role="textbox" id="profile_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> <span class='err'></span> <label for="profile_surname">Last Name</label> - <input type="text" id="profile_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> + <input type="text" role="textbox" id="profile_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> <span class='err'></span> <label for="profile_email">Email Address</label> - <input type="email" id="profile_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> + <input type="email" role="textbox" id="profile_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> <span class='err'></span> - <label for="profile_birthday">Birthday (MM/DD/YYYY)</label> + <label for="profile_birthday">Birthday optional (MM/DD/YYYY)</label> <div class="select-wrapper date-wrapper"> <span></span> - <input type="date" id="profile_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> + <input type="date" id="profile_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY OPTIONAL (MM/DD/YYYY)" required tabindex="5"> </div> <span class='err'></span> @@ -578,7 +578,7 @@ <div id="shipping" role="region" aria-label="Address Book"> <div class="scroll"> - <h1 aria-label="Current section: Your address book">ADDRESS BOOK</h1> + <h1 role="menuitem" aria-label="Current section: Your address book">ADDRESS BOOK</h1> <div class="form"> <div class="container"> <div class="container-row"> @@ -587,7 +587,7 @@ </div> <div class="container-fill"> <div class="container-message"> - <span class="msg"> + <span role="heading" class="msg"> * Your personal and payment<br> information will always remain private </span> @@ -603,7 +603,7 @@ <div id="payment" role="region" aria-label="My Card"> <div class="scroll"> - <h1 aria-label="Current section: My Card">MY CARD</h1> + <h1 role="menuitem" aria-label="Current section: My Card">MY CARD</h1> <div class="form"> <div class="container"> <div class="container-row"> @@ -613,7 +613,7 @@ </div> <div class="container-fill"> <div class="container-message"> - <span class="msg"> + <span role="heading" class="msg"> * Your personal and payment<br> information will always remain private </span> @@ -629,7 +629,7 @@ <div id="settings" role="region" aria-label="Notifications"> <div class="scroll"> - <h1 aria-label="Current section: Notifications">NOTIFICATIONS</h1> + <h1 role="menuitem" aria-label="Current section: Notifications">NOTIFICATIONS</h1> <div class="form"> <div class="toggle-container"> <div class="toggle-row"> @@ -659,7 +659,7 @@ <div id="orders" role="region" aria-label="My Orders"> <div class="scroll"> - <h1 aria-label="Current section: My orders">MY ORDERS</h1> + <h1 role="menuitem" aria-label="Current section: My orders">MY ORDERS</h1> <div id="order_list"> <div class="list"></div> <div class="empty">You have no orders.</div> @@ -670,7 +670,6 @@ Details > </div> <div class="txt"> - <span class="text-date">{{date}}</span> <span class="text-id">ORDER #: {{id}}</span> <span class="text-total">ORDER TOTAL: {{total}}</span> @@ -738,7 +737,7 @@ <!-- CART ================================================ --> <div id="cart" role="region" aria-label="Your Cart"> - <h1 role="presentation"> + <h1 role="menuitem" role="presentation"> <span class="full_msg" role="heading" aria-label="Current section: Your cart"> YOUR CART / <span class="itemcount"></span> </span> @@ -748,9 +747,9 @@ </h1> <div class="steps"> - <span class="summary_step">SUMMARY</span> - <span class="shipping_step">SHIPPING</span> - <span class="payment_step">PAYMENT</span> + <div role="menuitem" class="summary_step"><span>SUMMARY</span></div> + <div role="menuitem" class="shipping_step"><span>SHIPPING</span></div> + <div role="menuitem" class="payment_step"><span>PAYMENT</span></div> </div> <div id="cart_summary" role="region" aria-label="Cart Summary"> @@ -761,38 +760,38 @@ <div class="rows"> <script type="text/html" class="template"> <div class="cart_item_image"> - <a href="#/store/{{code8}}" aria-label="{{cleantitle}}"><img src="{{image}}"></a> + <a href="#/store/{{code8}}" role="link" aria-label="{{cleantitle}}"><img src="{{image}}"></a> </div> <div class="cart_item_info"> - <span class="sku" aria-label="SKU">{{sku}}</span> - <span class="title" aria-label="Product name: {{cleantitle}}">{{title}}</span> - <span class="type" aria-label="Product type">{{type}}</span> - <div class="meta"> - <div class="meta-size" aria-label="Size"><b>SIZE:</b> {{size}}</div> - <div class="meta-color" aria-label="Color"><b>COLOR:</b> {{color}}</div> - <div class="meta-quantity" aria-label="Quantity"><b>QUANTITY:</b> {{quantity}}</div> + <span class="sku">{{sku}}</span> + <span class="title">{{title}}</span> + <span class="type">{{type}}</span> + <div role="list" class="meta"> + <div class="meta-size" role="listitem" aria-label="Size: {{size}}"><b>SIZE:</b> {{size}}</div> + <div class="meta-color" role="listitem" aria-label="Color: {{color}}"><b>COLOR:</b> {{color}}</div> + <div class="meta-quantity" role="listitem" aria-label="Quantity: {{quantity}]"><b>QUANTITY:</b> {{quantity}}</div> </div> </div> <div class="cart_item_price"> - <span class="remove" aria-label="Remove item from your cart. Item to be removed: {{cleantitle}}"></span> + <span role="menuitem" class="remove" aria-label="Remove item from your cart. Item to be removed: {{cleantitle}}"></span> <span class="price">{{price}}</span> </div> </script> </div> - <div class="cart-summary"> - <div class="cart-summary-row"> + <div class="cart-summary" role="list"> + <div class="cart-summary-row subtotal_row" role="listitem"> <span class="label">SUB TOTAL</span> <span class="subtotal"></span> </div> - <div class="cart-summary-row"> + <div class="cart-summary-row" role="listitem" aria-label="Estimated shipping and handling $0"> <span class="label">ESTIMATED SHIPPING<br>& HANDLING</span> <span class="shipping"></span> </div> - <div class="cart-summary-row"> + <div class="cart-summary-row" role="listitem" aria-label="Tax $0"> <span class="label">TAX</span> <span class="tax"></span> </div> - <div class="cart-summary-row"> + <div class="cart-summary-row total_row" role="listitem"> <span class="label">TOTAL</span> <span class="total"></span> </div> @@ -813,7 +812,7 @@ <div class="form"> <div class="dropdown-wrapper"> <div class="dropdown-title add_edit">add / edit</div> - <div class="dropdown select_address"> + <div role="menuitem" class="dropdown select_address"> ADDRESS </div> </div> @@ -861,7 +860,7 @@ <div class="container-row"> <div class="container-fill"> <div class="container-message"> - <span class="msg"> + <span role="heading" class="msg"> * Your personal and payment<br> information will always remain private </span> @@ -902,7 +901,7 @@ <div class="address_dropdown dropdown-wrapper"> <div class="dropdown-title add_edit"> </div> - <div class="dropdown select_address"> + <div role="menuitem" class="dropdown select_address"> BILLING ADDRESS </div> </div> @@ -927,7 +926,7 @@ <div class="cc_dropdown dropdown-wrapper"> <div class="dropdown-title add_edit"></div> - <div class="dropdown select_address"> + <div role="menuitem" class="dropdown select_address"> PAYMENT METHOD </div> </div> @@ -950,19 +949,19 @@ <div class="cc"></div> <div class="cc_confirm"> - <h3>PLEASE ENTER YOUR SECURITY CODE TO CONFIRM</h3> + <h3>PLEASE ENTER THE SECURITY CODE ON THE BACK OF YOUR CARD TO CONFIRM</h3> <input type="number" name="CvvConfirm" placeholder="SECURITY CODE" required> </div> </div> <div class="container-fill"> <div class="container-message"> - <span class="msg"> + <span role="heading" class="msg"> * Your personal and payment<br> information will always remain private </span> </div> - <a class='privacy-link'> href="#/page/privacy"> + <a class='privacy-link' role="link" href="#/page/privacy"> <div class="privacy-msg"> Consult our <u>PRIVACY POLICY</u> for further information. </div> @@ -975,21 +974,21 @@ <div id="cart_confirm" role="region" aria-label="Confirm your order"> <div class="scroll"> - <h1 aria-label="Current section: Confirm your cart">CONFIRM</h1> + <h1 role="menuitem" aria-label="Current section: Confirm your cart">CONFIRM</h1> <div class="order_section"> <h2>ORDER SUMMARY</h2> <div class="rows"> <script type="text/html" class="template"> - <div class="cart_item_info"> + <div class="cart_item_info" row="table"> <span class="sku">{{sku}}</span> <span class="title">{{title}}</span> <span class="type">{{type}}</span> <div class="meta"> - <div class="meta-size"><b>SIZE:</b> {{size}}</div> - <div class="meta-color"><b>COLOR:</b> {{color}}</div> - <div class="meta-quantity"><b>QUANTITY:</b> {{quantity}}</div> + <div class="meta-size" role="row" aria-label="Size: {{size}}"><b>SIZE:</b> {{size}}</div> + <div class="meta-color" role="row" aria-label="Color: {{color}}"><b>COLOR:</b> {{color}}</div> + <div class="meta-quantity" role="row" aria-label="Quantity: {{quantity}]"><b>QUANTITY:</b> {{quantity}}</div> </div> </div> <div class="cart_item_price"> @@ -997,20 +996,20 @@ </div> </script> </div> - <div class="cart-summary"> - <div class="cart-summary-row"> + <div class="cart-summary" row="table"> + <div class="cart-summary-row subtotal_row" role="row"> <span class="label">SUB TOTAL</span> <span class="subtotal"></span> </div> - <div class="cart-summary-row"> + <div class="cart-summary-row" role="row" aria-label="Estimated shipping and handling $0"> <span class="label">ESTIMATED SHIPPING<br>& HANDLING</span> <span class="shipping"></span> </div> - <div class="cart-summary-row"> + <div class="cart-summary-row" role="row" aria-label="Tax $0"> <span class="label">TAX</span> <span class="tax"></span> </div> - <div class="cart-summary-row"> + <div class="cart-summary-row total_row" role="row"> <span class="label">TOTAL</span> <span class="total"></span> </div> @@ -1084,15 +1083,15 @@ </div> <br><br> For more information, please consult our - <a href="#/page/privacy">Privacy Policy</a> or visit - <a href="#" id="care-link">Customer Care</a>. + <a role="link" href="#/page/privacy">Privacy Policy</a> or visit + <a role="link" href="#" id="care-link">Customer Care</a>. <br><br> To continue to My Account we invite you to click accept. Otherwise you can continue to navigate as an unregistered user. <br><br> <div id="consent_error">Please note that if you do not consent to terms, you cannot use the app.</div> <br><br> - <button id="consent_proceed">PROCEED</button> - <button id="consent_logout">LOG OUT</button> + <button role="menuitem" id="consent_proceed">PROCEED</button> + <button role="menuitem" id="consent_logout">LOG OUT</button> </div> <div id="selector"> @@ -1109,7 +1108,7 @@ <script type="text/html" id="creditcard_template"> <label for="creditcard_id_{{_id}}">Credit Card Number</label> - <input type="number" id="creditcard_id_{{_id}}" name="Number" aria-placeholder="CREDIT CARD NUMBER" required> + <input type="number" role="textbox" id="creditcard_id_{{_id}}" name="Number" aria-placeholder="CREDIT CARD NUMBER" required tabindex="1"> <span class='err'></span> <div class="half-input"> @@ -1120,7 +1119,7 @@ <div class="half-input"> <div class="select-wrapper"> <span></span> - <select name="ExpirationMonth" id="cc_expiration_month_{{_id}}"> + <select name="ExpirationMonth" id="cc_expiration_month_{{_id}}" tabindex="2"> <option value="NONE">EXPIRATION MONTH</option> <option value="01">01</option> <option value="02">02</option> @@ -1138,7 +1137,7 @@ </div> <div class="select-wrapper"> <span></span> - <select name="ExpirationYear" id="cc_expiration_year_{{_id}}"> + <select name="ExpirationYear" id="cc_expiration_year_{{_id}}" tabindex="3"> <option value="NONE">EXPIRATION YEAR</option> <option value="2019">2019</option> <option value="2020">2020</option> @@ -1156,25 +1155,25 @@ </div> </div> <label for="cc_cvv_{{_id}}">Security Code</label> - <input type="number" id="cc_cvv_{{_id}}" name="Cvv" aria-placeholder="SECURITY CODE" required> + <input type="number" id="cc_cvv_{{_id}}" name="Cvv" aria-placeholder="SECURITY CODE" required tabindex="4"> <span class='err'></span> </script> <script type="text/html" id="address_template"> <label for="address_name_{{_id}}">First Name</label> - <input type="text" id="address_name_{{_id}}" name="Name" aria-placeholder="First Name"> + <input type="text" role="textbox" id="address_name_{{_id}}" name="Name" aria-placeholder="First Name" tabindex="1"> <span class="err"></span> <label for="address_surname_{{_id}}">Last Name</label> - <input type="text" id="address_surname_{{_id}}" name="Surname" aria-placeholder="Last Name"> + <input type="text" role="textbox" id="address_surname_{{_id}}" name="Surname" aria-placeholder="Last Name" tabindex="2"> <span class="err"></span> <label for="address_address1_{{_id}}">Address line 1</label> - <input type="text" id="address_address1_{{_id}}" name="Address1" aria-placeholder="Address Line 1"> + <input type="text" role="textbox" id="address_address1_{{_id}}" name="Address1" aria-placeholder="Address Line 1" tabindex="3"> <span class="err"></span> <label for="address_address2_{{_id}}">Address line 2</label> - <input type="text" id="address_address2_{{_id}}" name="Address2" aria-placeholder="Address Line 2"> + <input type="text" role="textbox" id="address_address2_{{_id}}" name="Address2" aria-placeholder="Address Line 2" tabindex="4"> <span class="err"></span> <div class="half-input"> @@ -1183,10 +1182,10 @@ </div> <div class="half-input"> - <input type="text" id="address_city_{{_id}}" name="City" aria-placeholder="City"> + <input type="text" role="textbox" id="address_city_{{_id}}" name="City" aria-placeholder="City" tabindex="5"> <div class="select-wrapper"> <span></span> - <select id="address_state_{{_id}}" name="Province"> + <select id="address_state_{{_id}}" name="Province" tabindex="6"> {{PROVINCES}} </select> </div> @@ -1198,19 +1197,19 @@ </div> <div class="half-input"> - <input type="text" id="address_zip_{{_id}}" name="ZipCode" aria-placeholder="ZIP" required> + <input type="text" role="textbox" id="address_zip_{{_id}}" name="ZipCode" aria-placeholder="ZIP" required tabindex="7"> <div class="country-wrapper-static"> <span class="country-label">UNITED STATES</span> <!-- <div id="country-select"> - <input type="text" name="Country" placeholder="UNITED STATES" required> + <input type="text" role="textbox" name="Country" placeholder="UNITED STATES" required> </div> --> </div> </div> <label for="address_phone_{{_id}}">Phone Number</label> - <input type="number" id="address_phone_{{_id}}" name="Phone" aria-placeholder="PHONE NUMBER"> + <input type="number" id="address_phone_{{_id}}" name="Phone" aria-placeholder="PHONE NUMBER" tabindex="8"> <span class="err"></span> <!-- <div class="checkbox-container save_as_default"> diff --git a/StoneIsland/platforms/ios/www/js/index.js b/StoneIsland/platforms/ios/www/js/index.js index 42cec6f1..8574372d 100755 --- a/StoneIsland/platforms/ios/www/js/index.js +++ b/StoneIsland/platforms/ios/www/js/index.js @@ -22,7 +22,9 @@ var app = (function(){ app.bind = function(){ document.addEventListener('touchmove', function(e){ e.preventDefault() }) - FastClick.attach(document.body) + if (!app.accessible) { + FastClick.attach(document.body) + } } app.build = function(){ diff --git a/StoneIsland/platforms/ios/www/js/lib/auth/SignupView.js b/StoneIsland/platforms/ios/www/js/lib/auth/SignupView.js index b16ff887..8ae47728 100755 --- a/StoneIsland/platforms/ios/www/js/lib/auth/SignupView.js +++ b/StoneIsland/platforms/ios/www/js/lib/auth/SignupView.js @@ -49,7 +49,7 @@ var SignupView = FormView.extend({ "Surname": "Please enter your last name.", "Email": "Please enter a valid email address.", "ConfirmEmail": "Please enter a valid email address.", - "BirthDay": "Please enter your birthday. You must be 18 or older to use the Stone Island app.", + // "BirthDay": "Please enter your birthday. You must be 18 or older to use the Stone Island app.", "Password": "Please enter your password.", "Password2": "Please enter your password again.", "DataProfiling": "You must consent to data profiling to use the Stone Island app.", @@ -63,21 +63,40 @@ var SignupView = FormView.extend({ if (! data.Email.match("@")) { errors.push([ "Email", "Email address is not valid." ]) } if (data.Email.toLowerCase() !== data.ConfirmEmail.toLowerCase()) { errors.push([ "ConfirmEmail", "Email addresses don't match." ]) } // if (data.Gender === "NONE") { errors.push([ "Gender", "Please supply your gender." ]) } - if (data.DataProfiling !== "true") { errors.push([ "DataProfiling", "You must consent to data profiling to use the Stone Island app." ]) } - if (data.GdprTerms !== "true") { errors.push([ "GdprTerms", "You must agree to the Your My Account terms to use the Stone Island app." ]) } + if (data.DataProfiling !== "true") { + errors.push([ "DataProfiling", "You must consent to data profiling to use the Stone Island app." ]) + setTimeout(function(){ + this.$("#checkbox-shopping-data-profiling-label").closest(".checkbox-row").addClass("error_hilite") + }.bind(this), 10) + } + if (data.GdprTerms !== "true") { + errors.push([ "GdprTerms", "You must agree to the Your My Account terms to use the Stone Island app." ]) + setTimeout(function(){ + this.$("#checkbox-shopping-account-terms").closest(".checkbox-row").addClass("error_hilite") + }.bind(this), 10) + } var now = new Date () - var year = now.getFullYear() + var year = now.getFullYear() - 18 if (! data.BirthDay) { data.BirthDay = year + '-01-01' } // if (data.BirthDay.split('-')[0] || '2018') var birthday = new Date (data.BirthDay) - if (isNaN(birthday) || (new Date () - birthday) / (365*24*60*60*1000) < 18) { - errors.push(['BirthDay', 'You must be 18 or older to use the Stone Island app.']) + if (isNaN(birthday)) { + data['BirthDay'] = '1970-01-01' } + // if (isNaN(birthday) || (new Date () - birthday) / (365*24*60*60*1000) < 18) { + // errors.push(['BirthDay', 'You must be 18 or older to use the Stone Island app.']) + // } data.YooxLetter = this.$("[name=YooxLetter]").prop("checked") + if (!data.YooxLetter) { + errors.push([ "YooxLetter", "You must consent to marketing to use the Stone Island app." ]) + setTimeout(function(){ + this.$("#checkbox-data-profiling").closest(".checkbox-row").addClass("error_hilite") + }.bind(this), 10) + } }, finalize: function(data){ diff --git a/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js b/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js index d3b15f77..0d59bcc8 100755 --- a/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js +++ b/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js @@ -91,7 +91,7 @@ var HubView = ScrollableView.extend({ }) gallery.on('staticClick', function(e){ var url = gallery.selectedElement.style.backgroundImage.replace(/url\(\"?/,"").replace(/\"?\)/,"") - app.fullscreenViewer.show(url, url) + app.fullscreenViewer.show(url, url, stonewash(row.title)) }) $(".gallery-" + row.id).attr('aria-label', stonewash(row.title) + ". Image gallery, use the arrows to scroll.") if (accessibility.voiceOver) { @@ -99,7 +99,7 @@ var HubView = ScrollableView.extend({ $(".gallery-target-" + row.id).click(function(e){ e && e.preventDefault() var url = gallery.selectedElement.style.backgroundImage.replace(/url\(\"?/,"").replace(/\"?\)/,"") - app.fullscreenViewer.show(url, url) + app.fullscreenViewer.show(url, url, stonewash(row.title)) }) } } @@ -134,13 +134,13 @@ var HubView = ScrollableView.extend({ } else { $(el).click(function(e){ e && e.preventDefault() - app.fullscreenViewer.show(row.image[0].uri) + app.fullscreenViewer.show(row.image[0].uri, row.image[0].uri, stonewash(row.title) + ". Main image") }) $(".gallery-" + row.id).attr('aria-label', stonewash(row.title) + ". Main image") $(".gallery-target-" + row.id).attr('aria-label', stonewash(row.title) + ". Main image.") $(".gallery-target-" + row.id).click(function(e){ e && e.preventDefault() - app.fullscreenViewer.show(row.image[0].uri) + app.fullscreenViewer.show(row.image[0].uri, row.image[0].uri, stonewash(row.title) + ". Main image") }) } $t.find(".gallery-left").remove() diff --git a/StoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js b/StoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js index 71f1cc0c..19d5bac8 100755 --- a/StoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js +++ b/StoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js @@ -40,8 +40,8 @@ var StoryView = ScrollableView.extend({ .replace(/{{body}}/, row.body.replace(/\n/g, "<br>")) var li = document.createElement("li") li.dataset.id = row.id - li.innerHTML = "<div>" + row.title + "</div>" - li.setAttribute('role', "link") + li.innerHTML = "<div style='pointer-events: none'>" + row.title + "</div>" + li.setAttribute('role', "menuitem") this.sections[row.id] = row this.$links.append(li) this.$content.append(t) diff --git a/StoneIsland/platforms/ios/www/js/lib/cart/CartConfirm.js b/StoneIsland/platforms/ios/www/js/lib/cart/CartConfirm.js index 6909dcc3..11d529ff 100755 --- a/StoneIsland/platforms/ios/www/js/lib/cart/CartConfirm.js +++ b/StoneIsland/platforms/ios/www/js/lib/cart/CartConfirm.js @@ -90,9 +90,9 @@ var CartConfirm = FormView.extend({ .replace(/{{sku}}/, num) .replace(/{{title}}/, title) .replace(/{{type}}/, type) - .replace(/{{size}}/, size_name || "DEFAULT") - .replace(/{{color}}/, color_name || "DEFAULT") - .replace(/{{quantity}}/, 1) + .replace(/{{size}}/g, size_name || "DEFAULT") + .replace(/{{color}}/g, color_name || "DEFAULT") + .replace(/{{quantity}}/g, 1) .replace(/{{price}}/, as_cash(details.Item.Price.DiscountedPrice)) $el.data("price", details.Item.Price.DiscountedPrice) $el.html(t) @@ -109,6 +109,8 @@ var CartConfirm = FormView.extend({ this.$shipping.html( as_cash(shipping_cost) ) this.$tax.html( as_cash(tax) ) this.$total.html( as_cash(total) ) + this.$(".subtotal_row").attr('aria-label', "Subtotal " + as_cash(subtotal)) + this.$(".total_row").attr('aria-label', "Total " + as_cash(total)) if (data.Receiver) { var street = data.Receiver.StreetWithNumber.replace(/\n$/,"").replace("\n", ", ") diff --git a/StoneIsland/platforms/ios/www/js/lib/cart/CartPayment.js b/StoneIsland/platforms/ios/www/js/lib/cart/CartPayment.js index 40d08d9e..0e4c3b84 100755 --- a/StoneIsland/platforms/ios/www/js/lib/cart/CartPayment.js +++ b/StoneIsland/platforms/ios/www/js/lib/cart/CartPayment.js @@ -73,6 +73,10 @@ var CartPayment = FormView.extend({ this.address.disabled = this.address_list_mode this.$address_form.toggle(! this.address_list_mode) this.$address_list.toggle(this.address_list_mode) + this.scroller.refresh() + this.$("input,select").map(function(i) { + this.setAttribute('tabindex', i+1) + }) }, toggle_cc: function(state){ @@ -86,6 +90,10 @@ var CartPayment = FormView.extend({ this.$cc_form.toggle(! this.cc_list_mode) this.$cc_list.toggle(this.cc_list_mode) this.$cc_confirm.toggle(this.cc_list_mode) + this.scroller.refresh() + this.$("input,select").map(function(i) { + this.setAttribute('tabindex', i+1) + }) }, focus_on_cc: function(e){ @@ -104,8 +112,8 @@ var CartPayment = FormView.extend({ this.toggle_address( !! app.account.ccs.length ) this.toggle_cc( !! app.account.ccs.length ) - app.account.ccs.forEach(function(cc){ - var address_t = this.address_template.replace(/{{id}}/g, cc.Id) + app.account.ccs.forEach(function(cc, i){ + var address_t = this.address_template.replace(/{{id}}/g, (cc.Id || i)) .replace(/{{checked}}/g, cc.IsDefault ? "checked" : "") .replace(/{{name}}/g, (cc.Name + " " + cc.Surname).toUpperCase()) .replace(/{{address}}/g, cc.Address.replace(/\n$/,"").replace("\n", ", ")) @@ -113,7 +121,7 @@ var CartPayment = FormView.extend({ .replace(/{{state}}/g, cc.Province) .replace(/{{zip}}/g, cc.ZipCode) - var cc_t = this.cc_template.replace(/{{id}}/g, cc.Id) + var cc_t = this.cc_template.replace(/{{id}}/g, (cc.Id || i)) .replace(/{{checked}}/g, cc.IsDefault ? "checked" : "") .replace(/{{number}}/g, cc['Number']) .replace(/{{type}}/g, cc.Type.toUpperCase()) @@ -122,6 +130,9 @@ var CartPayment = FormView.extend({ this.$address_list.append(address_t) this.$cc_list.append(cc_t) }.bind(this)) + this.$("input,select").map(function(i) { + this.setAttribute('tabindex', i+1) + }) }, finalize: function(data){ diff --git a/StoneIsland/platforms/ios/www/js/lib/cart/CartShipping.js b/StoneIsland/platforms/ios/www/js/lib/cart/CartShipping.js index b5d6647b..157e75f5 100755 --- a/StoneIsland/platforms/ios/www/js/lib/cart/CartShipping.js +++ b/StoneIsland/platforms/ios/www/js/lib/cart/CartShipping.js @@ -43,8 +43,8 @@ var CartShipping = FormView.extend({ this.toggle_dropdown(false) return } - app.account.addresses.forEach(function(address){ - var t = this.template.replace(/{{id}}/g, address.Id) + app.account.addresses.forEach(function(address, i){ + var t = this.template.replace(/{{id}}/g, (address.Id || i)) .replace(/{{checked}}/g, address.IsDefault ? "checked" : "") .replace(/{{name}}/g, (address.Name + " " + address.Surname).toUpperCase()) .replace(/{{address}}/g, address.Address.replace(/\n$/,"").replace("\n", ", ")) @@ -69,6 +69,9 @@ var CartShipping = FormView.extend({ $("#standard-shipping").prop("checked", cart_data.Cart.DeliveryMethod.Type == 1) $("#express-shipping").prop("checked", cart_data.Cart.DeliveryMethod.Type == 2) } + this.$("input,select").map(function(i) { + this.setAttribute('tabindex', i+1) + }) }, toggle_dropdown: function(state){ @@ -80,6 +83,10 @@ var CartShipping = FormView.extend({ this.address.disabled = this.list_mode this.$address_form.toggle(! this.list_mode) this.$address_list.toggle(this.list_mode) + this.scroller.refresh() + this.$("input,select").map(function(i) { + this.setAttribute('tabindex', i+1) + }) }, // sdk.cart.set_shipping_address diff --git a/StoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js b/StoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js index 51aa35ef..9637ae35 100755 --- a/StoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js +++ b/StoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js @@ -112,11 +112,11 @@ var CartSummary = ScrollableView.extend({ .replace(/{{sku}}/g, num) .replace(/{{code8}}/g, data['Code8']) .replace(/{{title}}/g, title) - .replace(/{{cleantitle}}/g, stonewash(title)) + .replace(/{{cleantitle}}/g, num + ' ' + stonewash(title) + ' ' + descriptions['MicroCategory']) .replace(/{{type}}/, type) - .replace(/{{size}}/, size_name) - .replace(/{{color}}/, color_name) - .replace(/{{quantity}}/, 1) + .replace(/{{size}}/g, size_name) + .replace(/{{color}}/g, color_name) + .replace(/{{quantity}}/g, 1) .replace(/{{price}}/, as_cash(details.Item.Price.DiscountedPrice)) $el.html(t) this.refreshScroller() @@ -129,6 +129,7 @@ var CartSummary = ScrollableView.extend({ this.updateTotals() + this.$cart_empty.hide() this.el.className = "full" this.refreshScroller() app.curtain.hide("loading") @@ -149,6 +150,8 @@ var CartSummary = ScrollableView.extend({ this.$shipping.html( as_cash(shipping_cost) ) this.$tax.html( as_cash(tax) ) this.$total.html( as_cash(total) ) + this.$(".subtotal_row").attr('aria-label', "Subtotal " + as_cash(subtotal)) + this.$(".total_row").attr('aria-label', "Total " + as_cash(total)) }, empty: function(){ @@ -158,6 +161,7 @@ var CartSummary = ScrollableView.extend({ this.parent.$itemcount.html("0 ITEMS") this.el.className = "empty" this.parent.$steps.hide() + this.$cart_empty.show() app.curtain.hide("loading") }, diff --git a/StoneIsland/platforms/ios/www/js/lib/etc/accessibility.js b/StoneIsland/platforms/ios/www/js/lib/etc/accessibility.js index c66143cc..a18ad5b3 100644 --- a/StoneIsland/platforms/ios/www/js/lib/etc/accessibility.js +++ b/StoneIsland/platforms/ios/www/js/lib/etc/accessibility.js @@ -73,5 +73,5 @@ var accessibility = (function() { })() function stonewash (s) { - return s.replace(/'9/g, '19').replace(/'0/g, '20').replace(/_/g, ' ').replace(/-/g, ' - ').replace(/^[013456789][0-9]+/, '') + return s.replace(/'9/g, '19').replace(/'0/g, '20').replace(/_/g, ' ').replace(/-/g, ' - ') } diff --git a/StoneIsland/platforms/ios/www/js/lib/nav/NavView.js b/StoneIsland/platforms/ios/www/js/lib/nav/NavView.js index a9a1938e..a6a39633 100755 --- a/StoneIsland/platforms/ios/www/js/lib/nav/NavView.js +++ b/StoneIsland/platforms/ios/www/js/lib/nav/NavView.js @@ -1,3 +1,5 @@ +var klassTimeout; + var NavView = View.extend({ el: "#nav", @@ -52,14 +54,16 @@ var NavView = View.extend({ doneShowingNav = true }, 800) if (klass) { - setTimeout(function(){ + klassTimeout = setTimeout(function(){ this.addClass(klass) }.bind(this), 500) } }, hide: function(){ - if (!doneShowingNav) return + if (!doneShowingNav) { + clearTimeout(klassTimeout) + } $("body").removeClass("nav") app.curtain.hide("dark") }, diff --git a/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js b/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js index d3343652..70bb22b4 100755 --- a/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js +++ b/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js @@ -194,9 +194,10 @@ var CollectionView = ScrollableView.extend({ append: function(item, is_single_product){ this.items[ item['Code8'] ] = item + console.log("TITLE: " + item['ModelNames']) var t = this.template.replace(/{{image}}/, sdk.image(item['DefaultCode10'], is_single_product ? '13_f' : '11_f')) .replace(/{{code8}}/, item['Code8']) - .replace(/{{title}}/, stonewash(item['ModelNames'])) + .replace(/{{title}}/g, stonewash(item['ModelNames'] + ' ' + item['MicroCategory'])) var $t = $(t) if (app.store.ShowProductNameOnCollectionPage) { var $title = $("<span>") diff --git a/StoneIsland/platforms/ios/www/js/lib/products/GalleryView.js b/StoneIsland/platforms/ios/www/js/lib/products/GalleryView.js index e84caa68..417b14c3 100755 --- a/StoneIsland/platforms/ios/www/js/lib/products/GalleryView.js +++ b/StoneIsland/platforms/ios/www/js/lib/products/GalleryView.js @@ -36,6 +36,7 @@ var GalleryView = View.extend({ valid_styles[style] = size } }) + this.large_styles = large_styles Object.keys(valid_styles).sort(sort_image_styles).forEach(function(style){ var id = valid_styles[style] + "_" + style @@ -57,18 +58,14 @@ var GalleryView = View.extend({ contain: true, draggable: true, }) + if (app.accessible) { + gallery.select(1, true, true) + } - this.gallery.on('change', function(){ - var currentImage = this.gallery.selectedElement.style.backgroundImage.replace(/url\(\"?/,"").replace(/\"?\)/,"") - var partz = currentImage.split("_") - var head = partz[0] - var size = partz[1] - var tail = partz[2] - var end_partz = tail.split(/\./) - var style = end_partz[0] - var label = YOOX_IMAGE_STYLE_LABELS[style] || "Image: Alternate view" - $("#product .gallery-target").attr('aria-label', label) - }) + var last_style = 'f' + this.gallery.on('select', function(){ + this.updateLabel() + }.bind(this)) this.gallery.on('staticClick', this.static_click.bind(this)) @@ -85,11 +82,39 @@ var GalleryView = View.extend({ var head = partz[0] var size = partz[1] var tail = partz[2] - var end_partz = tail.split(/\./) + var end_partz = (tail || 'f').split(/\./) var style = end_partz[0] - var largest_size = large_styles[style] + var largest_size = this.large_styles[style] + var title = YOOX_IMAGE_STYLE_LABELS[style] || "Alternate view" var hiresImage = [head, largest_size, tail].join("_") - app.fullscreenViewer.show(currentImage, hiresImage) + // console.log(partz, style) + app.fullscreenViewer.show(currentImage, hiresImage, title) + }, + + animating: false, + previous: function(e){ + this.gallery.previous() + this.updateLabel() + }, + next: function(e){ + this.gallery.next() + this.updateLabel() + }, + updateLabel: function(){ + var currentImage = this.gallery.selectedElement.style.backgroundImage.replace(/url\(\"?/,"").replace(/\"?\)/,"") + var partz = currentImage.split("_") + var head = partz[0] + var size = partz[1] + var tail = partz[2] + var end_partz = tail.split(/\./) + var style = end_partz[0] + if (style === this.last_style) { + style = 'z' + } + this.last_style = style + var label = YOOX_IMAGE_STYLE_LABELS[style] || "Image: Alternate view" + console.log("> new style: " + style) + $("#product .gallery-target").attr('aria-label', label) }, touchstart: function(e){ diff --git a/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js b/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js index f834b1c5..570024b6 100755 --- a/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js +++ b/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js @@ -74,10 +74,10 @@ var ProductView = ScrollableView.extend({ cache: {}, gallery_left: function(){ - app.product.gallery.gallery.previous() + app.product.gallery.previous() }, gallery_right: function(){ - app.product.gallery.gallery.next() + app.product.gallery.next() }, find: function(code, cb){ diff --git a/StoneIsland/platforms/ios/www/js/lib/view/Serializable.js b/StoneIsland/platforms/ios/www/js/lib/view/Serializable.js index 08802fa9..0d638412 100755 --- a/StoneIsland/platforms/ios/www/js/lib/view/Serializable.js +++ b/StoneIsland/platforms/ios/www/js/lib/view/Serializable.js @@ -61,6 +61,7 @@ var SerializableView = View.extend({ focus_input: function(e){ $(e.currentTarget).removeClass("error_hilite") + $(e.currentTarget).closest(".checkbox-row").removeClass("error_hilite") }, focus_date: function(e){ @@ -128,6 +129,7 @@ var SerializableView = View.extend({ // this.$msg.html(msgs.join("<br>")) this.$msg.addClass('alert-notice') if (app.view.scroller) { + app.view.scroller.refresh() app.view.scroller.scrollTo(0, 0) } }, |
