Current collected state Current
Observed since 20 Oct, 22:34 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
@0x30/vue-navigation-layout
基于 `@0x30/vue-navigation` 进行开发的组件布局库,提供了一些预设的动画
基于 @0x30/vue-navigation 进行开发的组件布局库,提供了一些预设的动画
// 基础页面
export { default as Page } from './Page'
// NavPage 执行动画 类似于 iOS UINavgationController
export { default as NavPage } from './NavPage'
// 安全区域
export {
SafeBottomSpace,
SafeLeftSpace,
SafeRightSpace,
SafeTopSpace,
} from './Safearea'
// Side 出现方法
export { default as SidePage } from './SidePage'
// loading 组件
export * from './Loading'
// popup 方法
// 不同于 navigator 这个辅助方法 只会展示组件,但不会 修改历史
export * from './Popup'
import UIKit
import WebKit
class PanGestureRecongnizerBackProcessor: NSObject {
static let shared = PanGestureRecongnizerBackProcessor()
private lazy var gesture: UIScreenEdgePanGestureRecognizer = {
let gesture = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(handlePan(_:)))
gesture.edges = .left
gesture.delegate = self
return gesture
}()
@objc func handlePan(_ event: UIPanGestureRecognizer) {
guard let webView = event.view as? WKWebView else { return }
switch event.state {
case .possible:
return
case .began:
webView.evaluateJavaScript("ScreenEdgePanGestureRecognizerStart()")
case .changed:
let progress = event.location(in: webView).x / webView.frame.width
webView.evaluateJavaScript("ScreenEdgePanGestureRecognizerChange(\(progress))")
case .cancelled, .failed, .ended:
let progress = event.location(in: webView).x / webView.frame.width
let velocity = event.velocity(in: gesture.view).x > 800
let finish = progress > 0.5 || velocity ? "true" : "false"
webView.evaluateJavaScript("ScreenEdgePanGestureRecognizerEnded(\(finish))")
@unknown default:
webView.evaluateJavaScript("ScreenEdgePanGestureRecognizerEnded(false)")
}
}
func stick(_ webView: WKWebView) {
webView.addGestureRecognizer(gesture)
}
}
extension PanGestureRecongnizerBackProcessor: UIGestureRecognizerDelegate {
func gestureRecognizer(_: UIGestureRecognizer, shouldBeRequiredToFailBy _: UIGestureRecognizer) -> Bool {
return true
}
}
PanGestureRecongnizerBackProcessor.shared.stick(webView)
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
sassEnvironment{
"local_name": "sass",
"alias": false,
"peer_metadata": null
} | ^1.69.5 | development |
viteEnvironment{
"local_name": "vite",
"alias": false,
"peer_metadata": null
} | ^5.0.10 | development |
postcssEnvironment{
"local_name": "postcss",
"alias": false,
"peer_metadata": null
} | ^8.4.32 | development |
vue-tscEnvironment{
"local_name": "vue-tsc",
"alias": false,
"peer_metadata": null
} | ^1.8.26 | development |
typescriptEnvironment{
"local_name": "typescript",
"alias": false,
"peer_metadata": null
} | ^4.9.5 | development |
autoprefixerEnvironment{
"local_name": "autoprefixer",
"alias": false,
"peer_metadata": null
} | ^10.4.16 | development |
@types/animejsEnvironment{
"local_name": "@types/animejs",
"alias": false,
"peer_metadata": null
} | ^3.1.12 | development |
vite-plugin-dtsEnvironment{
"local_name": "vite-plugin-dts",
"alias": false,
"peer_metadata": null
} | ^1.7.3 | development |
@vitejs/plugin-vue-jsxEnvironment{
"local_name": "@vitejs/plugin-vue-jsx",
"alias": false,
"peer_metadata": null
} | ^3.1.0 | development |
vite-plugin-css-injected-by-jsEnvironment{
"local_name": "vite-plugin-css-injected-by-js",
"alias": false,
"peer_metadata": null
} | ^3.3.1 | development |
animejsEnvironment{
"local_name": "animejs",
"alias": false,
"peer_metadata": null
} | ^3.2.2 | peer |
@0x30/vue-navigationEnvironment{
"local_name": "@0x30/vue-navigation",
"alias": false,
"peer_metadata": null
} | workspace:* | peer |
Source distribution
{
"shasum": "131d2a45d9504df1b3dbaaa5b62a68d54ad34a07",
"tarball": "https://registry.npmjs.org/@0x30/vue-navigation-layout/-/vue-navigation-layout-1.0.3.tgz",
"fileCount": 5,
"integrity": "sha512-gUr8nTgXjmScWRJk8OVbbac4iW3QqtfHq6MuJj87yHLOKw9KgG/KwigCHoT3uWrJVQ/ZNtFPK+13x3YDleAqrA==",
"signatures": [
{
"sig": "MEQCIATNeMfKgMCL/5k8cpuGm2ZhRdVdc7oQtrnoND8hEyQOAiALpYktzOsgnqSEj80+HqBgdW76LkmEnF5ZkQ8gS1zNew==",
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"
}
],
"unpackedSize": 35850
}Observed since 20 Oct, 22:34 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:4ef333d5a8ea064b26bb0784373957cf6340dfb3ea334a079dcd303acd048b70