Changeset 2315667
- Timestamp:
- 06/01/2020 09:24:27 AM (6 years ago)
- Location:
- image4io
- Files:
-
- 6 edited
- 33 copied
-
tags/0.3.4 (copied) (copied from image4io/trunk)
-
tags/0.3.4/assets (copied) (copied from image4io/trunk/assets)
-
tags/0.3.4/assets/img/ajax-loader.gif (copied) (copied from image4io/trunk/assets/img/ajax-loader.gif)
-
tags/0.3.4/assets/img/edit-button.png (copied) (copied from image4io/trunk/assets/img/edit-button.png)
-
tags/0.3.4/assets/js/image4io-mce-button.js (copied) (copied from image4io/trunk/assets/js/image4io-mce-button.js)
-
tags/0.3.4/build (copied) (copied from image4io/trunk/build)
-
tags/0.3.4/composer.json (copied) (copied from image4io/trunk/composer.json)
-
tags/0.3.4/image4io.php (copied) (copied from image4io/trunk/image4io.php)
-
tags/0.3.4/inc (copied) (copied from image4io/trunk/inc)
-
tags/0.3.4/inc/Api/Callbacks/AdminCallbacks.php (copied) (copied from image4io/trunk/inc/Api/Callbacks/AdminCallbacks.php)
-
tags/0.3.4/inc/Api/Image4IOApi.php (copied) (copied from image4io/trunk/inc/Api/Image4IOApi.php)
-
tags/0.3.4/inc/Api/Image4IOManager.php (copied) (copied from image4io/trunk/inc/Api/Image4IOManager.php) (2 diffs)
-
tags/0.3.4/inc/Base/BaseController.php (copied) (copied from image4io/trunk/inc/Base/BaseController.php)
-
tags/0.3.4/inc/Base/Enqueue.php (copied) (copied from image4io/trunk/inc/Base/Enqueue.php)
-
tags/0.3.4/inc/Manager/MediaManager.php (copied) (copied from image4io/trunk/inc/Manager/MediaManager.php) (6 diffs)
-
tags/0.3.4/inc/Pages/Admin.php (copied) (copied from image4io/trunk/inc/Pages/Admin.php)
-
tags/0.3.4/index.php (copied) (copied from image4io/trunk/index.php)
-
tags/0.3.4/npm-debug.log (copied) (copied from image4io/trunk/npm-debug.log)
-
tags/0.3.4/package-lock.json (copied) (copied from image4io/trunk/package-lock.json) (1 diff)
-
tags/0.3.4/package.json (copied) (copied from image4io/trunk/package.json) (1 diff)
-
tags/0.3.4/readme.txt (copied) (copied from image4io/trunk/readme.txt) (1 diff)
-
tags/0.3.4/screenshot-1.png (copied) (copied from image4io/trunk/screenshot-1.png)
-
tags/0.3.4/screenshot-2.png (copied) (copied from image4io/trunk/screenshot-2.png)
-
tags/0.3.4/screenshot-3.png (copied) (copied from image4io/trunk/screenshot-3.png)
-
tags/0.3.4/screenshot-4.png (copied) (copied from image4io/trunk/screenshot-4.png)
-
tags/0.3.4/screenshot-5.png (copied) (copied from image4io/trunk/screenshot-5.png)
-
tags/0.3.4/screenshot-6.png (copied) (copied from image4io/trunk/screenshot-6.png)
-
tags/0.3.4/src (copied) (copied from image4io/trunk/src)
-
tags/0.3.4/templates (copied) (copied from image4io/trunk/templates)
-
tags/0.3.4/templates/admin.php (copied) (copied from image4io/trunk/templates/admin.php) (1 diff)
-
tags/0.3.4/templates/loading.php (copied) (copied from image4io/trunk/templates/loading.php)
-
tags/0.3.4/templates/media.php (copied) (copied from image4io/trunk/templates/media.php)
-
tags/0.3.4/vendor (copied) (copied from image4io/trunk/vendor)
-
trunk/inc/Api/Image4IOManager.php (modified) (2 diffs)
-
trunk/inc/Manager/MediaManager.php (modified) (6 diffs)
-
trunk/package-lock.json (modified) (1 diff)
-
trunk/package.json (modified) (1 diff)
-
trunk/readme.txt (modified) (1 diff)
-
trunk/templates/admin.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
image4io/tags/0.3.4/inc/Api/Image4IOManager.php
r2315282 r2315667 17 17 public function setup(){ 18 18 if(!$this->isValidOptions()){ 19 return ; //redirect to options page?19 return "Please set API Key, API Secret and Cloudname from image4io Console"; 20 20 } 21 21 $values=get_option( "image4io_settings" ); … … 29 29 30 30 31 public function validateCredentials (){31 public function validateCredentialsWithOptions(){ 32 32 if(!$this->isValidOptions()){ 33 return ; //redirect to options page?33 return "Please set API Key, API Secret and Cloudname from image4io Console"; 34 34 } 35 return $this->apiClient->connect(); 35 $values=get_option( "image4io_settings" ); 36 $res=$this->apiClient->getSubscription(); 37 $response=json_decode($res); 38 if($response->cloudname!=$values['cloudname']){ 39 return "Cloudname is not valid. Please check your image4io cloudname."; 40 } 41 } 42 public function validateCredentials($key,$secret,$cloudname){ 43 if((empty($key)||empty($secret)||empty($cloudname))){ 44 return "Please set API Key, API Secret and Cloudname from image4io Console."; 45 } 46 $client=new Image4IOApi($key,$secret); 47 $canClientConnect=$client->connect(); 48 if(!$canClientConnect){ 49 return "API Key or API Secret is invalid. Cannot establish any connection."; 50 } 51 $res=$client->getSubscription(); 52 $response=json_decode($res); 53 if($response->cloudname!=$cloudname){ 54 return "Cloudname is not valid. Please check your image4io cloudname."; 55 } 36 56 } 37 57 /* -
image4io/tags/0.3.4/inc/Manager/MediaManager.php
r2315282 r2315667 44 44 add_action('admin_notices',array($this,'image4io_upload_notices')); 45 45 add_action('admin_enqueue_scripts', array($this,'mediaButtonEnqueue')); 46 47 add_action('pre_update_option_image4io_settings',array($this,'check_image4io_options'),1,3); 46 48 47 49 //add_action('media_buttons', array($this, 'mediaImage4io'), 11); … … 138 140 $manager = new Image4IOManager; 139 141 $manager->setup(); 142 $error=$manager->validateCredentialsWithOptions(); 143 if(isset($error)){ 144 return $error; 145 } 140 146 $result = $manager->getImagesByFolder($folder); 141 147 try { … … 357 363 $manager = new Image4IOManager; 358 364 $manager->setup(); 365 $error=$manager->validateCredentialsWithOptions(); 366 if(isset($error)){ 367 return $error; 368 } 359 369 $result = $manager->deleteImage($name); 360 370 … … 397 407 $manager = new Image4IOManager; 398 408 $manager->setup(); 409 $error=$manager->validateCredentialsWithOptions(); 410 if(isset($error)){ 411 return $error; 412 } 399 413 $result = $manager->uploadToImage4ioFromUrl($full_path,$target_path); 400 414 … … 769 783 $manager = new Image4IOManager; 770 784 $manager->setup(); 785 $error=$manager->validateCredentialsWithOptions(); 786 if(isset($error)){ 787 return $error; 788 } 771 789 $result = $manager->uploadToImage4ioFromUrl($full_path,"/"); 772 790 … … 814 832 return $protocol.'://'.$uri; 815 833 } 834 835 public function check_image4io_options($value,$old_value,$option){ 836 837 $manager = new Image4IOManager(); 838 $error=$manager->validateCredentials($value['api_key'],$value['api_secret'],$value['cloudname']); 839 if(isset($error)){ 840 add_settings_error( $option, 1, $error ); 841 return $old_value; 842 }else{ 843 return $value; 844 } 845 } 816 846 } -
image4io/tags/0.3.4/package-lock.json
r2315282 r2315667 1 1 { 2 2 "name": "image4io", 3 "version": "0.3. 3",3 "version": "0.3.4", 4 4 "lockfileVersion": 1, 5 5 "requires": true, -
image4io/tags/0.3.4/package.json
r2315282 r2315667 1 1 { 2 2 "name": "image4io", 3 "version": "0.3. 3",3 "version": "0.3.4", 4 4 "description": "image4io Wordpress Plugin. Speeds up the images' load time: image optimization, image CDN and image storage, all-in-one platform.", 5 5 "main": "index.js", -
image4io/tags/0.3.4/readme.txt
r2315282 r2315667 128 128 * Added an option of "Target Folder". It will configure your target folder of the image4io Storage. 129 129 130 = 0.3.4 = 131 * Fixed a bug when uploading images to image4io servers. 132 130 133 == UPGRADE NOTICE == 131 134 -
image4io/tags/0.3.4/templates/admin.php
r2292451 r2315667 12 12 </div> 13 13 <style> 14 [data-tooltip] {15 position: relative;16 z-index: 10;17 }14 [data-tooltip] { 15 position: relative; 16 z-index: 10; 17 } 18 18 19 /* Positioning and visibility settings of the tooltip */20 [data-tooltip]:before,21 [data-tooltip]:after {22 position: absolute;23 visibility: hidden;24 opacity: 0;25 left: 50%;26 bottom: calc(100% + 5px);27 pointer-events: none;28 transition: 0.2s;29 will-change: transform;30 }19 /* Positioning and visibility settings of the tooltip */ 20 [data-tooltip]:before, 21 [data-tooltip]:after { 22 position: absolute; 23 visibility: hidden; 24 opacity: 0; 25 left: 50%; 26 bottom: calc(100% + 5px); 27 pointer-events: none; 28 transition: 0.2s; 29 will-change: transform; 30 } 31 31 32 /* The actual tooltip with a dynamic width */33 [data-tooltip]:before {34 content: attr(data-tooltip);35 padding: 10px 18px;36 min-width: 50px;37 max-width: 300px;38 width: max-content;39 width: -moz-max-content;40 border-radius: 6px;41 font-size: 14px;42 /* font-size: 0.73rem; */43 background-color: rgba(59, 72, 80, 0.9);44 background-image: linear-gradient(30deg,45 rgba(59, 72, 80, 0.44),46 rgba(59, 68, 75, 0.44),47 rgba(60, 82, 88, 0.44));48 box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.2);49 color: #fff;50 text-align: center;51 white-space: pre-wrap;52 transform: translate(-50%, -5px) scale(0.5);53 }32 /* The actual tooltip with a dynamic width */ 33 [data-tooltip]:before { 34 content: attr(data-tooltip); 35 padding: 10px 18px; 36 min-width: 50px; 37 max-width: 300px; 38 width: max-content; 39 width: -moz-max-content; 40 border-radius: 6px; 41 font-size: 14px; 42 /* font-size: 0.73rem; */ 43 background-color: rgba(59, 72, 80, 0.9); 44 background-image: linear-gradient(30deg, 45 rgba(59, 72, 80, 0.44), 46 rgba(59, 68, 75, 0.44), 47 rgba(60, 82, 88, 0.44)); 48 box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.2); 49 color: #fff; 50 text-align: center; 51 white-space: pre-wrap; 52 transform: translate(-50%, -5px) scale(0.5); 53 } 54 54 55 /* Tooltip arrow */56 [data-tooltip]:after {57 content: '';58 border-style: solid;59 border-width: 5px 5px 0px 5px;60 border-color: rgba(55, 64, 70, 0.9) transparent transparent transparent;61 transition-duration: 0s; /* If the mouse leaves the element,62 the transition effects for the63 tooltip arrow are "turned off" */64 transform-origin: top; /* Orientation setting for the65 slide-down effect */66 transform: translateX(-50%) scaleY(0);67 }55 /* Tooltip arrow */ 56 [data-tooltip]:after { 57 content: ''; 58 border-style: solid; 59 border-width: 5px 5px 0px 5px; 60 border-color: rgba(55, 64, 70, 0.9) transparent transparent transparent; 61 transition-duration: 0s; /* If the mouse leaves the element, 62 the transition effects for the 63 tooltip arrow are "turned off" */ 64 transform-origin: top; /* Orientation setting for the 65 slide-down effect */ 66 transform: translateX(-50%) scaleY(0); 67 } 68 68 69 /* Tooltip becomes visible at hover */70 [data-tooltip]:hover:before,71 [data-tooltip]:hover:after {72 visibility: visible;73 opacity: 1;74 }75 /* Scales from 0.5 to 1 -> grow effect */76 [data-tooltip]:hover:before {77 transition-delay: 0.3s;78 transform: translate(-50%, -5px) scale(1);79 }80 /* Slide down effect only on mouseenter (NOT on mouseleave) */81 [data-tooltip]:hover:after {82 transition-delay: 0.5s; /* Starting after the grow effect */83 transition-duration: 0.2s;84 transform: translateX(-50%) scaleY(1);85 }69 /* Tooltip becomes visible at hover */ 70 [data-tooltip]:hover:before, 71 [data-tooltip]:hover:after { 72 visibility: visible; 73 opacity: 1; 74 } 75 /* Scales from 0.5 to 1 -> grow effect */ 76 [data-tooltip]:hover:before { 77 transition-delay: 0.3s; 78 transform: translate(-50%, -5px) scale(1); 79 } 80 /* Slide down effect only on mouseenter (NOT on mouseleave) */ 81 [data-tooltip]:hover:after { 82 transition-delay: 0.5s; /* Starting after the grow effect */ 83 transition-duration: 0.2s; 84 transform: translateX(-50%) scaleY(1); 85 } 86 86 87 /* RIGHT */88 [data-tooltip-location="right"]:before,89 [data-tooltip-location="right"]:after {90 left: calc(100% + 5px);91 bottom: 50%;92 }87 /* RIGHT */ 88 [data-tooltip-location="right"]:before, 89 [data-tooltip-location="right"]:after { 90 left: calc(100% + 5px); 91 bottom: 50%; 92 } 93 93 94 [data-tooltip-location="right"]:before {95 transform: translate(5px, 50%) scale(0.5);96 }97 [data-tooltip-location="right"]:hover:before {98 transform: translate(5px, 50%) scale(1);99 }94 [data-tooltip-location="right"]:before { 95 transform: translate(5px, 50%) scale(0.5); 96 } 97 [data-tooltip-location="right"]:hover:before { 98 transform: translate(5px, 50%) scale(1); 99 } 100 100 101 [data-tooltip-location="right"]:after {102 border-width: 5px 5px 5px 0px;103 border-color: transparent rgba(55, 64, 70, 0.9) transparent transparent;104 transform-origin: right;105 transform: translateY(50%) scaleX(0);106 }107 [data-tooltip-location="right"]:hover:after {108 transform: translateY(50%) scaleX(1);109 }101 [data-tooltip-location="right"]:after { 102 border-width: 5px 5px 5px 0px; 103 border-color: transparent rgba(55, 64, 70, 0.9) transparent transparent; 104 transform-origin: right; 105 transform: translateY(50%) scaleX(0); 106 } 107 [data-tooltip-location="right"]:hover:after { 108 transform: translateY(50%) scaleX(1); 109 } 110 110 111 111 </style> -
image4io/trunk/inc/Api/Image4IOManager.php
r2315282 r2315667 17 17 public function setup(){ 18 18 if(!$this->isValidOptions()){ 19 return ; //redirect to options page?19 return "Please set API Key, API Secret and Cloudname from image4io Console"; 20 20 } 21 21 $values=get_option( "image4io_settings" ); … … 29 29 30 30 31 public function validateCredentials (){31 public function validateCredentialsWithOptions(){ 32 32 if(!$this->isValidOptions()){ 33 return ; //redirect to options page?33 return "Please set API Key, API Secret and Cloudname from image4io Console"; 34 34 } 35 return $this->apiClient->connect(); 35 $values=get_option( "image4io_settings" ); 36 $res=$this->apiClient->getSubscription(); 37 $response=json_decode($res); 38 if($response->cloudname!=$values['cloudname']){ 39 return "Cloudname is not valid. Please check your image4io cloudname."; 40 } 41 } 42 public function validateCredentials($key,$secret,$cloudname){ 43 if((empty($key)||empty($secret)||empty($cloudname))){ 44 return "Please set API Key, API Secret and Cloudname from image4io Console."; 45 } 46 $client=new Image4IOApi($key,$secret); 47 $canClientConnect=$client->connect(); 48 if(!$canClientConnect){ 49 return "API Key or API Secret is invalid. Cannot establish any connection."; 50 } 51 $res=$client->getSubscription(); 52 $response=json_decode($res); 53 if($response->cloudname!=$cloudname){ 54 return "Cloudname is not valid. Please check your image4io cloudname."; 55 } 36 56 } 37 57 /* -
image4io/trunk/inc/Manager/MediaManager.php
r2315282 r2315667 44 44 add_action('admin_notices',array($this,'image4io_upload_notices')); 45 45 add_action('admin_enqueue_scripts', array($this,'mediaButtonEnqueue')); 46 47 add_action('pre_update_option_image4io_settings',array($this,'check_image4io_options'),1,3); 46 48 47 49 //add_action('media_buttons', array($this, 'mediaImage4io'), 11); … … 138 140 $manager = new Image4IOManager; 139 141 $manager->setup(); 142 $error=$manager->validateCredentialsWithOptions(); 143 if(isset($error)){ 144 return $error; 145 } 140 146 $result = $manager->getImagesByFolder($folder); 141 147 try { … … 357 363 $manager = new Image4IOManager; 358 364 $manager->setup(); 365 $error=$manager->validateCredentialsWithOptions(); 366 if(isset($error)){ 367 return $error; 368 } 359 369 $result = $manager->deleteImage($name); 360 370 … … 397 407 $manager = new Image4IOManager; 398 408 $manager->setup(); 409 $error=$manager->validateCredentialsWithOptions(); 410 if(isset($error)){ 411 return $error; 412 } 399 413 $result = $manager->uploadToImage4ioFromUrl($full_path,$target_path); 400 414 … … 769 783 $manager = new Image4IOManager; 770 784 $manager->setup(); 785 $error=$manager->validateCredentialsWithOptions(); 786 if(isset($error)){ 787 return $error; 788 } 771 789 $result = $manager->uploadToImage4ioFromUrl($full_path,"/"); 772 790 … … 814 832 return $protocol.'://'.$uri; 815 833 } 834 835 public function check_image4io_options($value,$old_value,$option){ 836 837 $manager = new Image4IOManager(); 838 $error=$manager->validateCredentials($value['api_key'],$value['api_secret'],$value['cloudname']); 839 if(isset($error)){ 840 add_settings_error( $option, 1, $error ); 841 return $old_value; 842 }else{ 843 return $value; 844 } 845 } 816 846 } -
image4io/trunk/package-lock.json
r2315282 r2315667 1 1 { 2 2 "name": "image4io", 3 "version": "0.3. 3",3 "version": "0.3.4", 4 4 "lockfileVersion": 1, 5 5 "requires": true, -
image4io/trunk/package.json
r2315282 r2315667 1 1 { 2 2 "name": "image4io", 3 "version": "0.3. 3",3 "version": "0.3.4", 4 4 "description": "image4io Wordpress Plugin. Speeds up the images' load time: image optimization, image CDN and image storage, all-in-one platform.", 5 5 "main": "index.js", -
image4io/trunk/readme.txt
r2315282 r2315667 128 128 * Added an option of "Target Folder". It will configure your target folder of the image4io Storage. 129 129 130 = 0.3.4 = 131 * Fixed a bug when uploading images to image4io servers. 132 130 133 == UPGRADE NOTICE == 131 134 -
image4io/trunk/templates/admin.php
r2292451 r2315667 12 12 </div> 13 13 <style> 14 [data-tooltip] {15 position: relative;16 z-index: 10;17 }14 [data-tooltip] { 15 position: relative; 16 z-index: 10; 17 } 18 18 19 /* Positioning and visibility settings of the tooltip */20 [data-tooltip]:before,21 [data-tooltip]:after {22 position: absolute;23 visibility: hidden;24 opacity: 0;25 left: 50%;26 bottom: calc(100% + 5px);27 pointer-events: none;28 transition: 0.2s;29 will-change: transform;30 }19 /* Positioning and visibility settings of the tooltip */ 20 [data-tooltip]:before, 21 [data-tooltip]:after { 22 position: absolute; 23 visibility: hidden; 24 opacity: 0; 25 left: 50%; 26 bottom: calc(100% + 5px); 27 pointer-events: none; 28 transition: 0.2s; 29 will-change: transform; 30 } 31 31 32 /* The actual tooltip with a dynamic width */33 [data-tooltip]:before {34 content: attr(data-tooltip);35 padding: 10px 18px;36 min-width: 50px;37 max-width: 300px;38 width: max-content;39 width: -moz-max-content;40 border-radius: 6px;41 font-size: 14px;42 /* font-size: 0.73rem; */43 background-color: rgba(59, 72, 80, 0.9);44 background-image: linear-gradient(30deg,45 rgba(59, 72, 80, 0.44),46 rgba(59, 68, 75, 0.44),47 rgba(60, 82, 88, 0.44));48 box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.2);49 color: #fff;50 text-align: center;51 white-space: pre-wrap;52 transform: translate(-50%, -5px) scale(0.5);53 }32 /* The actual tooltip with a dynamic width */ 33 [data-tooltip]:before { 34 content: attr(data-tooltip); 35 padding: 10px 18px; 36 min-width: 50px; 37 max-width: 300px; 38 width: max-content; 39 width: -moz-max-content; 40 border-radius: 6px; 41 font-size: 14px; 42 /* font-size: 0.73rem; */ 43 background-color: rgba(59, 72, 80, 0.9); 44 background-image: linear-gradient(30deg, 45 rgba(59, 72, 80, 0.44), 46 rgba(59, 68, 75, 0.44), 47 rgba(60, 82, 88, 0.44)); 48 box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.2); 49 color: #fff; 50 text-align: center; 51 white-space: pre-wrap; 52 transform: translate(-50%, -5px) scale(0.5); 53 } 54 54 55 /* Tooltip arrow */56 [data-tooltip]:after {57 content: '';58 border-style: solid;59 border-width: 5px 5px 0px 5px;60 border-color: rgba(55, 64, 70, 0.9) transparent transparent transparent;61 transition-duration: 0s; /* If the mouse leaves the element,62 the transition effects for the63 tooltip arrow are "turned off" */64 transform-origin: top; /* Orientation setting for the65 slide-down effect */66 transform: translateX(-50%) scaleY(0);67 }55 /* Tooltip arrow */ 56 [data-tooltip]:after { 57 content: ''; 58 border-style: solid; 59 border-width: 5px 5px 0px 5px; 60 border-color: rgba(55, 64, 70, 0.9) transparent transparent transparent; 61 transition-duration: 0s; /* If the mouse leaves the element, 62 the transition effects for the 63 tooltip arrow are "turned off" */ 64 transform-origin: top; /* Orientation setting for the 65 slide-down effect */ 66 transform: translateX(-50%) scaleY(0); 67 } 68 68 69 /* Tooltip becomes visible at hover */70 [data-tooltip]:hover:before,71 [data-tooltip]:hover:after {72 visibility: visible;73 opacity: 1;74 }75 /* Scales from 0.5 to 1 -> grow effect */76 [data-tooltip]:hover:before {77 transition-delay: 0.3s;78 transform: translate(-50%, -5px) scale(1);79 }80 /* Slide down effect only on mouseenter (NOT on mouseleave) */81 [data-tooltip]:hover:after {82 transition-delay: 0.5s; /* Starting after the grow effect */83 transition-duration: 0.2s;84 transform: translateX(-50%) scaleY(1);85 }69 /* Tooltip becomes visible at hover */ 70 [data-tooltip]:hover:before, 71 [data-tooltip]:hover:after { 72 visibility: visible; 73 opacity: 1; 74 } 75 /* Scales from 0.5 to 1 -> grow effect */ 76 [data-tooltip]:hover:before { 77 transition-delay: 0.3s; 78 transform: translate(-50%, -5px) scale(1); 79 } 80 /* Slide down effect only on mouseenter (NOT on mouseleave) */ 81 [data-tooltip]:hover:after { 82 transition-delay: 0.5s; /* Starting after the grow effect */ 83 transition-duration: 0.2s; 84 transform: translateX(-50%) scaleY(1); 85 } 86 86 87 /* RIGHT */88 [data-tooltip-location="right"]:before,89 [data-tooltip-location="right"]:after {90 left: calc(100% + 5px);91 bottom: 50%;92 }87 /* RIGHT */ 88 [data-tooltip-location="right"]:before, 89 [data-tooltip-location="right"]:after { 90 left: calc(100% + 5px); 91 bottom: 50%; 92 } 93 93 94 [data-tooltip-location="right"]:before {95 transform: translate(5px, 50%) scale(0.5);96 }97 [data-tooltip-location="right"]:hover:before {98 transform: translate(5px, 50%) scale(1);99 }94 [data-tooltip-location="right"]:before { 95 transform: translate(5px, 50%) scale(0.5); 96 } 97 [data-tooltip-location="right"]:hover:before { 98 transform: translate(5px, 50%) scale(1); 99 } 100 100 101 [data-tooltip-location="right"]:after {102 border-width: 5px 5px 5px 0px;103 border-color: transparent rgba(55, 64, 70, 0.9) transparent transparent;104 transform-origin: right;105 transform: translateY(50%) scaleX(0);106 }107 [data-tooltip-location="right"]:hover:after {108 transform: translateY(50%) scaleX(1);109 }101 [data-tooltip-location="right"]:after { 102 border-width: 5px 5px 5px 0px; 103 border-color: transparent rgba(55, 64, 70, 0.9) transparent transparent; 104 transform-origin: right; 105 transform: translateY(50%) scaleX(0); 106 } 107 [data-tooltip-location="right"]:hover:after { 108 transform: translateY(50%) scaleX(1); 109 } 110 110 111 111 </style>
Note: See TracChangeset
for help on using the changeset viewer.