Here I used @State CGSize values to represent both the viewState and the dragState
struct Example1: View {
@State var viewState: CGSize = .zero
@State var dragState: CGSize = .zero
/* Row and Column defaults */ | |
.row { margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; width: 100%; } | |
.row .row.collapse { margin-left: 0; margin-right: 0; max-width: none; width: auto; } | |
.row .row { margin-left: -0.9375em; margin-right: -0.9375em; max-width: none; width: auto; } | |
.row.collapse .column, .row.collapse .columns { padding-left: 0; padding-right: 0; float: left; } | |
.column, .columns { padding-left: 0.9375em; padding-right: 0.9375em; width: 100%; float: left; position: relative; } | |
/* Up to 640px */ | |
@media only screen { | |
.small-1 { width: 8.33333% } |
extension DragGesture.Value { | |
var velocity: CGPoint { | |
let decelerationRate = UIScrollView.DecelerationRate.normal.rawValue, | |
d = decelerationRate/(1000.0*(1.0 - decelerationRate)) | |
return CGPoint(x: (location.x - predictedEndLocation.x)/d, | |
y: (location.y - predictedEndLocation.y)/d) | |
} |
// | |
// AppView.swift | |
// | |
// | |
// Created by Saroar Khandoker on 05.05.2021. | |
// | |
import AuthClient | |
import AuthClientLive | |
import AuthenticationView |
select.form-control + .chosen-container.chosen-container-single .chosen-single { | |
display: block; | |
width: 100%; | |
height: 34px; | |
padding: 6px 12px; | |
font-size: 14px; | |
line-height: 1.428571429; | |
color: #555; | |
vertical-align: middle; | |
background-color: #fff; |
// decrypting Amtrak's real-time train location geoJSON feed | |
// based on https://github.com/Vivalize/Amtrak-Train-Stats | |
const fetch = require('node-fetch'); | |
const CryptoJS = require('crypto-js'); | |
// this is the xhr call done by https://www.amtrak.com/track-your-train.html containing encrypted train location data | |
const dataUrl = 'https://maps.amtrak.com/services/MapDataService/trains/getTrainsData'; | |
// these constants are pulled from RoutesList.v.json, which is an object with keys 'arr', 's', and 'v' | |
const sValue = '9a3686ac'; // found at s[8] |
import SwiftUI | |
struct Dial: View { | |
@Binding public var value: Double | |
public var minValue: Double = 0 | |
public var maxValue: Double = .greatestFiniteMagnitude | |
public var divisor: Double = 1 | |
public var stepping: Double = 1 | |
@State private var dialAngle: Angle = .zero | |
@State private var dialShadowAngle: Angle = .zero |
Also see the original Pieter Noordhuis's guide
You need:
// MIT Licensed | |
// Author: jwilson8767 | |
/** | |
* Waits for an element satisfying selector to exist, then resolves promise with the element. | |
* Useful for resolving race conditions. | |
* | |
* @param selector | |
* @returns {Promise} | |
*/ |
# after appcleaner does his magic, do this | |
sudo rm -rf "/Library/Application Support/Paragon Software/" | |
sudo rm /Library/LaunchDaemons/com.paragon-software.installer.plist | |
sudo rm /Library/LaunchDaemons/com.paragon-software.ntfs.loader.plist | |
sudo rm /Library/LaunchDaemons/com.paragon-software.ntfsd.plist | |
sudo rm /Library/LaunchAgents/com.paragon-software.ntfs.notification-agent.plist | |
sudo rm -rf /Library/Filesystems/ufsd_NTFS.fs/ | |
sudo rm -rf /Library/PrivilegedHelperTools/com.paragon-software.installer | |
sudo rm -rf /Library/Extensions/ufsd_NTFS.kext/ |