@nil-/doc 0.2.21 → 0.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @nil-/doc
2
2
 
3
+ ## 0.2.23
4
+
5
+ ### Patch Changes
6
+
7
+ - 5655f86: [feature] added slot prop `key` to Template component
8
+ - 5655f86: [Dependencies] moved some devDependencies to peerDependencies
9
+
10
+ ## 0.2.22
11
+
12
+ ### Patch Changes
13
+
14
+ - 3ce0a62: [doc] support for touch event via pointerevent (draggable container)
15
+
3
16
  ## 0.2.21
4
17
 
5
18
  ### Patch Changes
@@ -99,6 +99,7 @@ const resolveArgs = (resolve);
99
99
  id={param.id}
100
100
  tag={param.tag}
101
101
  props={resolveArgs(param.defaults, param.values)}
102
+ {key}
102
103
  />
103
104
  </div>
104
105
  {:else}
@@ -108,6 +109,7 @@ const resolveArgs = (resolve);
108
109
  id={param.id}
109
110
  tag={param.tag}
110
111
  props={resolveArgs(param.defaults, param.values)}
112
+ {key}
111
113
  />
112
114
  </div>
113
115
  {/key}
@@ -13,6 +13,7 @@ declare class __sveltets_Render<Args> {
13
13
  id: number;
14
14
  tag: string;
15
15
  props: Args;
16
+ key: boolean;
16
17
  };
17
18
  };
18
19
  }
@@ -18,7 +18,6 @@
18
18
  width: 100%;
19
19
  height: 100%;
20
20
  overflow: hidden;
21
- outline: rgb(100, 96, 96) solid 1px;
22
21
  }
23
22
 
24
23
  /* need higher specificity than above */
@@ -29,6 +28,11 @@
29
28
  overflow: visible;
30
29
  user-select: none;
31
30
  grid-area: divider;
31
+ outline: rgb(100, 96, 96) solid 1px;
32
+ }
33
+
34
+ .container > .divider.moving {
35
+ outline: rgb(255, 255, 255) solid 1px;
32
36
  }
33
37
 
34
38
  .container > .divider.vertical {
@@ -38,20 +42,22 @@
38
42
 
39
43
  .container > .divider > .overlay {
40
44
  width: 100%;
41
- height: 10px;
45
+ height: 20px;
42
46
  cursor: row-resize;
43
- translate: translateX(-50%);
47
+ transform: translateY(-50%);
48
+ touch-action: none;
44
49
  }
45
50
 
46
51
  .container > .divider.vertical > .overlay {
47
- width: 10px;
52
+ width: 20px;
48
53
  height: 100%;
49
54
  cursor: col-resize;
50
- translate: translateY(-50%);
55
+ transform: translateX(-50%);
51
56
  }
52
57
  </style>
53
58
 
54
- <script>import { createDraggable } from "./action";
59
+ <script>import { writable } from "svelte/store";
60
+ import { createDraggable } from "./action";
55
61
  // orientation of the layout
56
62
  export let vertical = false;
57
63
  // initial value where the divider is located
@@ -75,6 +81,7 @@ function update(w, h, limit, value) {
75
81
  $: update(width, height, padding, $position);
76
82
  $: offsetpx = collapse ? "10px" : `${offset}px`;
77
83
  $: style = !secondary ? `auto 0px ${offsetpx}` : `${offsetpx} 0px auto`;
84
+ const moving = writable(false);
78
85
  </script>
79
86
  <div
80
87
  class="container"
@@ -90,11 +97,16 @@ $: style = !secondary ? `auto 0px ${offsetpx}` : `${offsetpx} 0px auto`;
90
97
  <slot name="primary" />
91
98
  {/if}
92
99
  </div>
93
- <div class="divider" class:vertical>
100
+ <div class="divider" class:vertical class:moving={$moving}>
94
101
  <div
95
102
  class="overlay"
96
- use:draggable={{ reset: () => offset, reversed: !secondary, vertical }}
97
- on:dblclick={() => (collapse = !collapse)}
103
+ use:draggable={{
104
+ reset: () => offset,
105
+ reversed: !secondary,
106
+ vertical,
107
+ dbltap: () => (collapse = !collapse),
108
+ moving
109
+ }}
98
110
  />
99
111
  </div>
100
112
  <div style:grid-area="secondary">
@@ -4,6 +4,8 @@ type Parameter = {
4
4
  reset: () => number;
5
5
  vertical: boolean;
6
6
  reversed: boolean;
7
+ dbltap?: () => void;
8
+ moving: Writable<boolean>;
7
9
  };
8
10
  type Return = {
9
11
  position: Writable<number>;
@@ -1,43 +1,50 @@
1
- import { writable } from "svelte/store";
1
+ import { get, writable } from "svelte/store";
2
2
  export const createDraggable = (offset) => {
3
3
  const position = writable(offset);
4
4
  function draggable(div, parameter) {
5
+ let tm = new Date().getTime();
5
6
  let param = parameter ?? { reset: () => 0, vertical: true, reversed: false };
6
- let moving = false;
7
7
  position.set(param.reset());
8
8
  let current_page = 0;
9
+ function disengage() {
10
+ param.moving.set(false);
11
+ }
12
+ function checkDoubleTap() {
13
+ const tm2 = new Date().getTime();
14
+ const diff = tm2 - tm;
15
+ tm = tm2;
16
+ return diff < 200;
17
+ }
9
18
  function engage(e) {
10
- moving = true;
19
+ if (checkDoubleTap()) {
20
+ param?.dbltap?.();
21
+ disengage();
22
+ return;
23
+ }
24
+ param.moving.set(true);
11
25
  position.set(param.reset());
12
26
  current_page = param.vertical ? e.pageX : e.pageY;
13
27
  }
14
- function disengage() {
15
- moving = false;
16
- }
17
28
  function move(e) {
18
- if (moving) {
29
+ if (get(param.moving)) {
19
30
  const page = param.vertical ? e.pageX : e.pageY;
20
31
  position.update((v) => v + (page - current_page) * (param.reversed ? -1 : 1));
21
32
  current_page = page;
22
33
  }
23
34
  }
24
- div.addEventListener("mousedown", engage);
25
- document.addEventListener("mouseup", disengage);
26
- document.addEventListener("mousemove", move);
27
- document.addEventListener("dblclick", disengage);
35
+ div.addEventListener("pointerdown", engage);
36
+ window.addEventListener("pointerup", disengage);
37
+ window.addEventListener("pointercancel", disengage);
38
+ window.addEventListener("pointermove", move);
28
39
  return {
29
40
  update: (parameter) => {
30
- if (param.reversed !== parameter.reversed ||
31
- param.vertical !== parameter.vertical) {
32
- moving = false;
33
- }
34
41
  param = parameter;
35
42
  },
36
43
  destroy: () => {
37
- div.removeEventListener("mousedown", engage);
38
- document.removeEventListener("mouseup", disengage);
39
- document.removeEventListener("mousemove", move);
40
- document.removeEventListener("dblclick", disengage);
44
+ div.removeEventListener("pointerdown", engage);
45
+ window.removeEventListener("pointerup", disengage);
46
+ window.removeEventListener("pointercancel", disengage);
47
+ window.removeEventListener("pointermove", move);
41
48
  }
42
49
  };
43
50
  }
package/package.json CHANGED
@@ -1,16 +1,18 @@
1
1
  {
2
2
  "name": "@nil-/doc",
3
- "version": "0.2.21",
3
+ "version": "0.2.23",
4
4
  "author": {
5
5
  "email": "njaldea@gmail.com",
6
6
  "name": "Neil Aldea"
7
7
  },
8
+ "peerDependencies": {
9
+ "svelte": "^3.54.0"
10
+ },
8
11
  "devDependencies": {
9
- "@sveltejs/adapter-vercel": "next",
10
- "@sveltejs/kit": "next",
11
- "@sveltejs/package": "next",
12
+ "@sveltejs/adapter-vercel": "^1.0.0",
13
+ "@sveltejs/kit": "^1.0.0",
14
+ "@sveltejs/package": "^1.0.0",
12
15
  "mdsvex": "^0.10.6",
13
- "svelte": "^3.54.0",
14
16
  "svelte-check": "^2.10.2",
15
17
  "svelte-markdown": "^0.2.3",
16
18
  "svelte-preprocess": "^4.10.7",