ziko 0.0.17 → 0.0.19

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.
Files changed (267) hide show
  1. package/README.md +91 -200
  2. package/package.json +17 -46
  3. package/src/__helpers__/index.js +61 -61
  4. package/src/app/json-style-sheet.js +64 -64
  5. package/src/app/spa-file-based-routing.js +0 -1
  6. package/src/app/ziko-app.js +38 -38
  7. package/src/data/api/fetchdom.js +13 -13
  8. package/src/data/api/index.js +3 -3
  9. package/src/data/api/preload.js +10 -10
  10. package/src/data/converter/adoc.js +130 -130
  11. package/src/data/converter/array.js +42 -42
  12. package/src/data/converter/canvas.js +24 -24
  13. package/src/data/converter/css.js +36 -36
  14. package/src/data/converter/csv.js +32 -32
  15. package/src/data/converter/idea.txt +9 -9
  16. package/src/data/converter/index.js +36 -36
  17. package/src/data/converter/json.js +80 -80
  18. package/src/data/converter/markdown.js +95 -95
  19. package/src/data/converter/object.js +69 -69
  20. package/src/data/converter/svg.js +10 -10
  21. package/src/data/datatypes/color.js +11 -0
  22. package/src/data/index.js +16 -16
  23. package/src/data/parser/xml.js +46 -46
  24. package/src/data/string/patterns.js +11 -11
  25. package/src/data/string/string.js +169 -169
  26. package/src/global/{themes → _themes}/dark.js +884 -884
  27. package/src/global/{themes → _themes}/index.js +10 -10
  28. package/src/global/{themes → _themes}/light.js +254 -254
  29. package/src/global/app/index.js +45 -45
  30. package/src/global/component/index.js +38 -38
  31. package/src/global/globals/index.js +20 -20
  32. package/src/global/index.js +3 -11
  33. package/src/global/params/index.js +39 -39
  34. package/src/global/router/index.js +66 -66
  35. package/src/global/seo/index.js +42 -42
  36. package/src/graphics/canvas/canvas.js +176 -189
  37. package/src/graphics/canvas/elements/Basic/arc.js +42 -42
  38. package/src/graphics/canvas/elements/Basic/line.js +25 -25
  39. package/src/graphics/canvas/elements/Basic/points.js +47 -47
  40. package/src/graphics/canvas/elements/Basic/polygon.js +6 -6
  41. package/src/graphics/canvas/elements/Basic/rect.js +45 -45
  42. package/src/graphics/canvas/elements/Chart/scatter.js +2 -2
  43. package/src/graphics/canvas/elements/Element.js +114 -114
  44. package/src/graphics/canvas/elements/index.js +13 -13
  45. package/src/graphics/canvas/index.js +2 -15
  46. package/src/graphics/canvas/utils/color.js +7 -7
  47. package/src/graphics/canvas/utils/floodFill.js +57 -57
  48. package/src/graphics/index.js +10 -69
  49. package/src/graphics/svg/Elements/Basic/circle.js +29 -26
  50. package/src/graphics/svg/Elements/Basic/ellipse.js +24 -21
  51. package/src/graphics/svg/Elements/Basic/{foreignObject.js → foreign-object.js} +36 -33
  52. package/src/graphics/svg/Elements/Basic/groupe.js +32 -29
  53. package/src/graphics/svg/Elements/Basic/image.js +36 -33
  54. package/src/graphics/svg/Elements/Basic/index.js +11 -0
  55. package/src/graphics/svg/Elements/Basic/line.js +32 -29
  56. package/src/graphics/svg/Elements/Basic/link.js +33 -30
  57. package/src/graphics/svg/Elements/Basic/path.js +62 -59
  58. package/src/graphics/svg/Elements/Basic/polygon.js +31 -31
  59. package/src/graphics/svg/Elements/Basic/polyline.js +7 -4
  60. package/src/graphics/svg/Elements/Basic/rect.js +46 -43
  61. package/src/graphics/svg/Elements/Basic/text.js +29 -26
  62. package/src/graphics/svg/Elements/Derived/grid.js +8 -8
  63. package/src/graphics/svg/Elements/Derived/index.js +1 -0
  64. package/src/graphics/svg/Elements/index.js +2 -14
  65. package/src/graphics/svg/Elements/{ZikoSvgElement.js → ziko-svg-element.js} +48 -46
  66. package/src/graphics/svg/index.js +2 -2
  67. package/src/graphics/svg/svg.js +68 -114
  68. package/src/index.js +85 -84
  69. package/src/math/calculus/index.js +2 -2
  70. package/src/math/calculus/special-functions/bessel.js +30 -30
  71. package/src/math/calculus/special-functions/beta.js +37 -37
  72. package/src/math/calculus/special-functions/gamma.js +29 -29
  73. package/src/math/calculus/special-functions/index.js +4 -4
  74. package/src/math/complex/index.js +202 -202
  75. package/src/math/const.js +2 -2
  76. package/src/math/discret/Combinaison/index.js +33 -33
  77. package/src/math/discret/Conversion/index.js +85 -85
  78. package/src/math/discret/Logic/index.js +45 -45
  79. package/src/math/discret/Permutation/index.js +30 -30
  80. package/src/math/discret/Set/index.js +1 -1
  81. package/src/math/discret/Set/power-set.js +14 -14
  82. package/src/math/discret/Set/sub-set.js +10 -10
  83. package/src/math/discret/index.js +11 -11
  84. package/src/math/functions/index.js +161 -161
  85. package/src/math/index.js +32 -32
  86. package/src/math/matrix/Decomposition.js +90 -90
  87. package/src/math/matrix/LinearSystem.js +9 -9
  88. package/src/math/matrix/Matrix.js +716 -716
  89. package/src/math/matrix/index.js +2 -2
  90. package/src/math/random/index.js +172 -172
  91. package/src/math/signal/__np.py.txt +39 -39
  92. package/src/math/signal/conv.js +174 -174
  93. package/src/math/signal/fft.js +54 -54
  94. package/src/math/signal/filter.js +38 -38
  95. package/src/math/signal/functions.js +145 -145
  96. package/src/math/signal/index.js +109 -109
  97. package/src/math/statistics/Functions/index.js +99 -99
  98. package/src/math/statistics/index.js +15 -15
  99. package/src/math/utils/arithmetic.js +138 -138
  100. package/src/math/utils/checkers.js +29 -29
  101. package/src/math/utils/conversions.js +19 -19
  102. package/src/math/utils/discret.js +51 -51
  103. package/src/math/utils/index.js +101 -101
  104. package/src/math/utils/mapfun.js +49 -49
  105. package/src/reactivity/events/Input.js +61 -61
  106. package/src/reactivity/events/Pointer.js +231 -231
  107. package/src/reactivity/events/ZikoEvent.js +90 -90
  108. package/src/reactivity/events/click.js +59 -59
  109. package/src/reactivity/events/clipboard.js +87 -87
  110. package/src/reactivity/events/custom-event.js +56 -56
  111. package/src/reactivity/events/drag.js +136 -136
  112. package/src/reactivity/events/focus.js +58 -58
  113. package/src/reactivity/events/hash.js +46 -46
  114. package/src/reactivity/events/index.js +12 -63
  115. package/src/reactivity/events/key.js +101 -101
  116. package/src/reactivity/events/mouse.js +232 -232
  117. package/src/reactivity/events/swipe.js +149 -149
  118. package/src/reactivity/events/wheel.js +46 -46
  119. package/src/reactivity/hooks/{contexte → Contexte}/useSuccesifKeys.js +13 -13
  120. package/src/reactivity/hooks/{decorators → Decorators}/index.js +6 -6
  121. package/src/reactivity/hooks/{decorators → Decorators}/time.js +16 -16
  122. package/src/reactivity/hooks/{decorators → Decorators}/type.js +87 -87
  123. package/src/reactivity/hooks/{head/useCssText.js → Head/_useCssText.js} +20 -20
  124. package/src/reactivity/hooks/{head → Head}/index.js +5 -5
  125. package/src/reactivity/hooks/{head → Head}/useFavIcon.js +37 -37
  126. package/src/reactivity/hooks/{head → Head}/useHead.js +27 -27
  127. package/src/reactivity/hooks/{head → Head}/useMeta.js +52 -52
  128. package/src/reactivity/hooks/{head → Head}/useTitle.js +29 -29
  129. package/src/reactivity/hooks/{interactions/useBluetooth.js → Interactions/_useBluetooth.js} +47 -47
  130. package/src/reactivity/hooks/{interactions → Interactions}/index.js +4 -4
  131. package/src/reactivity/hooks/{interactions → Interactions}/useChannel.js +49 -49
  132. package/src/reactivity/hooks/{interactions → Interactions}/useEventEmmiter.js +63 -63
  133. package/src/reactivity/hooks/{interactions → Interactions}/useThread.js +43 -43
  134. package/src/reactivity/hooks/Sensors/index.js +2 -0
  135. package/src/reactivity/hooks/{sensors → Sensors}/useBattery.js +35 -35
  136. package/src/reactivity/hooks/{sensors → Sensors}/useGeolocation.js +16 -16
  137. package/src/reactivity/hooks/{storage → Storage}/useStorage.js +72 -72
  138. package/src/reactivity/hooks/{ui → UI}/index.js +6 -5
  139. package/src/reactivity/hooks/{ui → UI}/useMediaQuery.js +43 -43
  140. package/src/reactivity/hooks/UI/useRoot.js +39 -0
  141. package/src/reactivity/hooks/{ui → UI}/useStyle.js +79 -79
  142. package/src/reactivity/hooks/{ui → UI}/useTheme.js +61 -61
  143. package/src/reactivity/hooks/index.js +8 -91
  144. package/src/reactivity/hooks/todo.md +26 -26
  145. package/src/reactivity/idea +1 -1
  146. package/src/reactivity/index.js +11 -11
  147. package/src/reactivity/observer/attributes.js +28 -28
  148. package/src/reactivity/observer/children.js +36 -36
  149. package/src/reactivity/observer/index.js +6 -6
  150. package/src/reactivity/observer/intersection.js +43 -43
  151. package/src/reactivity/observer/mutation.js +112 -112
  152. package/src/reactivity/observer/resize.js +46 -46
  153. package/src/reactivity/observer/screen.js +44 -44
  154. package/src/reactivity/observer/screen.js.txt +83 -83
  155. package/src/reactivity/observer/screen.txt +12 -12
  156. package/src/time/animation.js +75 -75
  157. package/src/time/index.js +11 -11
  158. package/src/time/loop.js +87 -87
  159. package/src/time/utils/decorators.js +16 -16
  160. package/src/time/utils/ease.js +143 -143
  161. package/src/time/utils/index.js +17 -17
  162. package/src/time/utils/performance.js +15 -15
  163. package/src/time/utils/ui.js +25 -25
  164. package/src/types.js +73 -73
  165. package/src/ui/elements/derived/accordion/accordion.js +42 -42
  166. package/src/ui/elements/derived/accordion/collapsible.js +82 -82
  167. package/src/ui/elements/derived/accordion/index.js +1 -1
  168. package/src/ui/elements/derived/alert/alert.js +80 -80
  169. package/src/ui/elements/derived/alert/palette.js +51 -51
  170. package/src/ui/elements/derived/carousel/index.js +50 -50
  171. package/src/ui/elements/derived/code-note/SubElements.js.txt +104 -104
  172. package/src/ui/elements/derived/code-note/code-cell.js +194 -194
  173. package/src/ui/elements/derived/code-note/code-note.js +71 -71
  174. package/src/ui/elements/derived/code-note/index.js +1 -1
  175. package/src/ui/elements/derived/code-note/sub-elements.js +66 -66
  176. package/src/ui/elements/derived/elements/Swipper.js +3 -3
  177. package/src/ui/elements/derived/elements/index.js +9 -9
  178. package/src/ui/elements/derived/flex/index.js +102 -102
  179. package/src/ui/elements/derived/grid/index.js +32 -32
  180. package/src/ui/elements/derived/index.js +11 -11
  181. package/src/ui/elements/derived/menu/menu3d.js +259 -259
  182. package/src/ui/elements/derived/modal/index.js +91 -91
  183. package/src/ui/elements/derived/pagination/breadcrumbs.js +53 -53
  184. package/src/ui/elements/derived/slider/__ZikoUISlider__.js +111 -111
  185. package/src/ui/elements/derived/slider/hSlider.js +33 -33
  186. package/src/ui/elements/derived/slider/index.js +11 -11
  187. package/src/ui/elements/derived/slider/vSlider.js +26 -26
  188. package/src/ui/elements/derived/splitter/__ZikoUISplitter__.js +61 -61
  189. package/src/ui/elements/derived/splitter/hsplitter.js +39 -39
  190. package/src/ui/elements/derived/splitter/index.js +11 -11
  191. package/src/ui/elements/derived/splitter/vsplitter.js +39 -39
  192. package/src/ui/elements/derived/tabs/index.js +179 -179
  193. package/src/ui/elements/primitives/ZikoUIContainerElement.js +163 -126
  194. package/src/ui/elements/primitives/ZikoUIElement.js +492 -492
  195. package/src/ui/elements/primitives/embaded/html.js +19 -19
  196. package/src/ui/elements/primitives/embaded/index.js +3 -3
  197. package/src/ui/elements/primitives/embaded/pdf.js +16 -16
  198. package/src/ui/elements/primitives/embaded/youtube.js +23 -23
  199. package/src/ui/elements/primitives/index.js +7 -7
  200. package/src/ui/elements/primitives/io/Form/index.js +41 -41
  201. package/src/ui/elements/primitives/io/Form/index.js.txt +104 -104
  202. package/src/ui/elements/primitives/io/Inputs/__helpers__.js +51 -51
  203. package/src/ui/elements/primitives/io/Inputs/index.js +12 -12
  204. package/src/ui/elements/primitives/io/Inputs/input/index.js +98 -98
  205. package/src/ui/elements/primitives/io/Inputs/input-camera/index.js +26 -26
  206. package/src/ui/elements/primitives/io/Inputs/input-checkbox/index.js +25 -25
  207. package/src/ui/elements/primitives/io/Inputs/input-color/index.js +15 -15
  208. package/src/ui/elements/primitives/io/Inputs/input-date-time/index.js +2 -2
  209. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-date-time.js +13 -13
  210. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-date.js +13 -13
  211. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-time.js +13 -13
  212. package/src/ui/elements/primitives/io/Inputs/input-email-password/index.js +1 -1
  213. package/src/ui/elements/primitives/io/Inputs/input-email-password/input-email.js +14 -14
  214. package/src/ui/elements/primitives/io/Inputs/input-email-password/input-password.js +13 -13
  215. package/src/ui/elements/primitives/io/Inputs/input-file/input-image.js +42 -42
  216. package/src/ui/elements/primitives/io/Inputs/input-number/index.js +36 -36
  217. package/src/ui/elements/primitives/io/Inputs/input-radio/index.js +25 -25
  218. package/src/ui/elements/primitives/io/Inputs/input-search/index.js +45 -45
  219. package/src/ui/elements/primitives/io/Inputs/input-slider/index.js +34 -34
  220. package/src/ui/elements/primitives/io/Select/index.js +19 -19
  221. package/src/ui/elements/primitives/io/Textarea/index.js +17 -17
  222. package/src/ui/elements/primitives/io/index.js +3 -3
  223. package/src/ui/elements/primitives/list/index.js +138 -138
  224. package/src/ui/elements/primitives/media/Audio/index.js +16 -16
  225. package/src/ui/elements/primitives/media/Image/figure.js +18 -18
  226. package/src/ui/elements/primitives/media/Image/image.js +36 -36
  227. package/src/ui/elements/primitives/media/Image/index.js +1 -1
  228. package/src/ui/elements/primitives/media/Video/index.js +26 -26
  229. package/src/ui/elements/primitives/media/__ZikoUIDynamicMediaELement__.js +46 -46
  230. package/src/ui/elements/primitives/media/index.js +2 -2
  231. package/src/ui/elements/primitives/misc/index.js +101 -101
  232. package/src/ui/elements/primitives/misc/xml-wrapper.js +3 -2
  233. package/src/ui/elements/primitives/semantic/index.js +81 -81
  234. package/src/ui/elements/primitives/table/elements.js +93 -93
  235. package/src/ui/elements/primitives/table/index.js +2 -2
  236. package/src/ui/elements/primitives/table/table.js +115 -115
  237. package/src/ui/elements/primitives/table/utils.js +11 -11
  238. package/src/ui/elements/primitives/text/__ZikoUIText__.js +71 -71
  239. package/src/ui/elements/primitives/text/heading.js +35 -35
  240. package/src/ui/elements/primitives/text/index.js +2 -2
  241. package/src/ui/elements/primitives/text/p.js +26 -26
  242. package/src/ui/elements/primitives/text/text.js +80 -80
  243. package/src/ui/index.js +37 -37
  244. package/src/ui/style/index.js +504 -515
  245. package/src/ui/utils/index.js +69 -69
  246. package/starter/bin/index.js +11 -11
  247. package/dist/ziko.cjs +0 -14018
  248. package/dist/ziko.js +0 -14028
  249. package/dist/ziko.min.js +0 -9
  250. package/dist/ziko.mjs +0 -13688
  251. package/src/graphics/canvas/elements/Groupe.js +0 -0
  252. package/src/graphics/canvas/elements/grid.js +0 -0
  253. package/src/graphics/canvas/filter/index.js +0 -0
  254. package/src/graphics/canvas/paint/index.js +0 -0
  255. package/src/reactivity/hooks/sensors/index.js +0 -2
  256. /package/src/reactivity/hooks/{contexte → Contexte}/index.js +0 -0
  257. /package/src/reactivity/hooks/{interactions → Interactions}/useSerial.js +0 -0
  258. /package/src/reactivity/hooks/{interactions → Interactions}/useUsb.js +0 -0
  259. /package/src/reactivity/hooks/{sensors → Sensors}/useCamera.js +0 -0
  260. /package/src/reactivity/hooks/{sensors → Sensors}/useMicro.js +0 -0
  261. /package/src/reactivity/hooks/{sensors → Sensors}/useOrientation.js +0 -0
  262. /package/src/reactivity/hooks/{storage → Storage}/index.js +0 -0
  263. /package/src/reactivity/hooks/{storage → Storage}/useCookie.js +0 -0
  264. /package/src/reactivity/hooks/{storage → Storage}/useIndexedDb.js +0 -0
  265. /package/src/reactivity/hooks/{ui → UI}/useCssLink.js +0 -0
  266. /package/src/reactivity/hooks/{ui → UI}/useLinearGradient.js +0 -0
  267. /package/src/reactivity/hooks/{ui → UI}/useRadialGradient.js +0 -0
@@ -1,44 +1,44 @@
1
- class ZikoIntersectionObserver{
2
- constructor(UIElement,callback,{threshold=0,margin=0}={}){
3
- this.target=UIElement;
4
- this.config={
5
- threshold,
6
- margin
7
- }
8
- if(!globalThis.IntersectionObserver){
9
- console.log("IntersectionObserver Not Supported")
10
- return;
11
- }
12
- this.observer=new IntersectionObserver((entries)=>{
13
- this.entrie=entries[0];
14
- callback(this)
15
- },{
16
- threshold:this.threshold,
17
- })
18
- }
19
- get ratio(){
20
- return this.entrie.intersectionRatio;
21
- }
22
- get isIntersecting(){
23
- return this.entrie.isIntersecting;
24
- }
25
- setThreshould(threshold){
26
- this.config.threshold=threshold;
27
- return this;
28
- }
29
- setMargin(margin){
30
- margin=(typeof margin === "number")?margin+"px":margin;
31
- this.config.margin=margin;
32
- return this;
33
- }
34
- start(){
35
- this.observer.observe(this.target.element);
36
- return this;
37
- }
38
- stop(){
39
- return this;
40
- }
41
- }
42
-
43
- const watchIntersection=(UI,callback,config)=>new ZikoIntersectionObserver(UI,callback,config);
1
+ class ZikoIntersectionObserver{
2
+ constructor(UIElement,callback,{threshold=0,margin=0}={}){
3
+ this.target=UIElement;
4
+ this.config={
5
+ threshold,
6
+ margin
7
+ }
8
+ if(!globalThis.IntersectionObserver){
9
+ console.log("IntersectionObserver Not Supported")
10
+ return;
11
+ }
12
+ this.observer=new IntersectionObserver((entries)=>{
13
+ this.entrie=entries[0];
14
+ callback(this)
15
+ },{
16
+ threshold:this.threshold,
17
+ })
18
+ }
19
+ get ratio(){
20
+ return this.entrie.intersectionRatio;
21
+ }
22
+ get isIntersecting(){
23
+ return this.entrie.isIntersecting;
24
+ }
25
+ setThreshould(threshold){
26
+ this.config.threshold=threshold;
27
+ return this;
28
+ }
29
+ setMargin(margin){
30
+ margin=(typeof margin === "number")?margin+"px":margin;
31
+ this.config.margin=margin;
32
+ return this;
33
+ }
34
+ start(){
35
+ this.observer.observe(this.target.element);
36
+ return this;
37
+ }
38
+ stop(){
39
+ return this;
40
+ }
41
+ }
42
+
43
+ const watchIntersection=(UI,callback,config)=>new ZikoIntersectionObserver(UI,callback,config);
44
44
  export {watchIntersection}
@@ -1,113 +1,113 @@
1
- class ZikoMutationObserver {
2
- constructor(targetUIElement, options) {
3
- this.target = targetUIElement;
4
- this.observer = null;
5
- this.cache = {
6
- options : options || { attributes: true, childList: true, subtree: true },
7
- streamingEnabled : true,
8
- lastMutation : null,
9
- mutationHistory : {
10
- // attributes: [],
11
- // childList: [],
12
- // subtree: [],
13
- },
14
- }
15
- // children to Items : a.items.filter(n=>n.element === a[0].element)
16
- this.observeCallback = (mutationsList, observer) => {
17
- // if(this.cache.lastUpdatedAttr){
18
- // this.cache.lastUpdatedAttr = mutation.target.getAttribute(mutation.attributeName)
19
- // }
20
- if (this.cache.streamingEnabled) {
21
- for (const mutation of mutationsList) {
22
- switch(mutation.type){
23
- case 'attributes':this.cache.mutationHistory.attributes.push(mutation.target.getAttribute(mutation.attributeName));break;
24
- case 'childList':this.cache.mutationHistory.childList.push(mutation);break;
25
- case 'subtree':this.cache.mutationHistory.subtree.push(mutation);break;
26
- }
27
- }
28
- }
29
- if (this.callback) {
30
- this.callback(mutationsList, observer);
31
- }
32
- };
33
- }
34
-
35
- observe(callback) {
36
- if(!this.observer) {
37
- if(!globalThis.MutationObserver) {
38
- console.log("MutationObserver Nor Supported")
39
- return;
40
- }
41
- this.observer = new MutationObserver(this.cache.observeCallback);
42
- this.observer.observe(this.target.element, this.cache.options);
43
- // this.callback = ([e]) => callback.call(e,this.target);
44
- this.callback = ([e]) => callback.call(e, this);
45
- this.cache.streamingEnabled = true;
46
- }
47
- }
48
-
49
- pause(options) {
50
- if (this.observer) {
51
- this.observer.disconnect();
52
- if (options) {
53
- this.observer.observe(this.target, options);
54
- }
55
- }
56
- }
57
-
58
- reset(options) {
59
- if (this.observer) {
60
- this.observer.disconnect();
61
- this.observer.observe(this.target, options || this.cache.options);
62
- }
63
- }
64
-
65
- clear() {
66
- if (this.observer) {
67
- this.observer.disconnect();
68
- this.observer = null;
69
- this.cache.mutationHistory = {
70
- attributes: [],
71
- childList: [],
72
- subtree: [],
73
- };
74
- }
75
- this.cache.streamingEnabled = false;
76
- return this;
77
- }
78
-
79
- getMutationHistory() {
80
- return this.cache.mutationHistory;
81
- }
82
-
83
- enableStreaming() {
84
- this.cache.streamingEnabled = true;
85
- return this;
86
- }
87
-
88
- disableStreaming() {
89
- this.cache.streamingEnabled = false;
90
- return this;
91
- }
92
- }
93
-
94
-
95
-
96
- const watch=(targetUIElement,options={},callback=null)=>{
97
- const Observer= new ZikoMutationObserver(targetUIElement,options);
98
- if(callback)Observer.observe(callback);
99
- return Observer
100
- }
101
- // const watchAttr = (targetUIElement, callback = null) => {
102
- // const options = { attributes: true, childList: false, subtree: false };
103
- // return watch(targetUIElement, options, ([e])=>callback.call(e,targetUIElement));
104
- // };
105
- // const watchAttr = (targetUIElement, callback = null) => {
106
- // const options = { attributes: true, childList: false, subtree: false };
107
- // return watch(targetUIElement, options, callback);
108
- // };
109
-
110
- export {
111
- ZikoMutationObserver,
112
- watch,
1
+ class ZikoMutationObserver {
2
+ constructor(targetUIElement, options) {
3
+ this.target = targetUIElement;
4
+ this.observer = null;
5
+ this.cache = {
6
+ options : options || { attributes: true, childList: true, subtree: true },
7
+ streamingEnabled : true,
8
+ lastMutation : null,
9
+ mutationHistory : {
10
+ // attributes: [],
11
+ // childList: [],
12
+ // subtree: [],
13
+ },
14
+ }
15
+ // children to Items : a.items.filter(n=>n.element === a[0].element)
16
+ this.observeCallback = (mutationsList, observer) => {
17
+ // if(this.cache.lastUpdatedAttr){
18
+ // this.cache.lastUpdatedAttr = mutation.target.getAttribute(mutation.attributeName)
19
+ // }
20
+ if (this.cache.streamingEnabled) {
21
+ for (const mutation of mutationsList) {
22
+ switch(mutation.type){
23
+ case 'attributes':this.cache.mutationHistory.attributes.push(mutation.target.getAttribute(mutation.attributeName));break;
24
+ case 'childList':this.cache.mutationHistory.childList.push(mutation);break;
25
+ case 'subtree':this.cache.mutationHistory.subtree.push(mutation);break;
26
+ }
27
+ }
28
+ }
29
+ if (this.callback) {
30
+ this.callback(mutationsList, observer);
31
+ }
32
+ };
33
+ }
34
+
35
+ observe(callback) {
36
+ if(!this.observer) {
37
+ if(!globalThis.MutationObserver) {
38
+ console.log("MutationObserver Nor Supported")
39
+ return;
40
+ }
41
+ this.observer = new MutationObserver(this.cache.observeCallback);
42
+ this.observer.observe(this.target.element, this.cache.options);
43
+ // this.callback = ([e]) => callback.call(e,this.target);
44
+ this.callback = ([e]) => callback.call(e, this);
45
+ this.cache.streamingEnabled = true;
46
+ }
47
+ }
48
+
49
+ pause(options) {
50
+ if (this.observer) {
51
+ this.observer.disconnect();
52
+ if (options) {
53
+ this.observer.observe(this.target, options);
54
+ }
55
+ }
56
+ }
57
+
58
+ reset(options) {
59
+ if (this.observer) {
60
+ this.observer.disconnect();
61
+ this.observer.observe(this.target, options || this.cache.options);
62
+ }
63
+ }
64
+
65
+ clear() {
66
+ if (this.observer) {
67
+ this.observer.disconnect();
68
+ this.observer = null;
69
+ this.cache.mutationHistory = {
70
+ attributes: [],
71
+ childList: [],
72
+ subtree: [],
73
+ };
74
+ }
75
+ this.cache.streamingEnabled = false;
76
+ return this;
77
+ }
78
+
79
+ getMutationHistory() {
80
+ return this.cache.mutationHistory;
81
+ }
82
+
83
+ enableStreaming() {
84
+ this.cache.streamingEnabled = true;
85
+ return this;
86
+ }
87
+
88
+ disableStreaming() {
89
+ this.cache.streamingEnabled = false;
90
+ return this;
91
+ }
92
+ }
93
+
94
+
95
+
96
+ const watch=(targetUIElement,options={},callback=null)=>{
97
+ const Observer= new ZikoMutationObserver(targetUIElement,options);
98
+ if(callback)Observer.observe(callback);
99
+ return Observer
100
+ }
101
+ // const watchAttr = (targetUIElement, callback = null) => {
102
+ // const options = { attributes: true, childList: false, subtree: false };
103
+ // return watch(targetUIElement, options, ([e])=>callback.call(e,targetUIElement));
104
+ // };
105
+ // const watchAttr = (targetUIElement, callback = null) => {
106
+ // const options = { attributes: true, childList: false, subtree: false };
107
+ // return watch(targetUIElement, options, callback);
108
+ // };
109
+
110
+ export {
111
+ ZikoMutationObserver,
112
+ watch,
113
113
  };
@@ -1,47 +1,47 @@
1
- class ZikoResizeObserver{
2
- constructor(UIElement,callback){
3
- this.target=UIElement;
4
- this.contentRect=null;
5
- this.observer=new ResizeObserver(()=>{
6
- callback(this)
7
- })
8
- }
9
- get BoundingRect(){
10
- return this.target.element.getBoundingClientRect();
11
- }
12
- get width(){
13
- return this.BoundingRect.width;
14
- }
15
- get height(){
16
- return this.BoundingRect.height;
17
- }
18
- get top(){
19
- return this.BoundingRect.top;
20
- }
21
- get bottom(){
22
- return this.BoundingRect.bottom;
23
- }
24
- get right(){
25
- return this.BoundingRect.right;
26
- }
27
- get left(){
28
- return this.BoundingRect.left;
29
- }
30
- get x(){
31
- return this.BoundingRect.x;
32
- }
33
- get y(){
34
- return this.BoundingRect.y;
35
- }
36
- start(){
37
- this.observer.observe(this.target.element);
38
- return this;
39
- }
40
- stop(){
41
- this.observer.unobserve(this.target.element);
42
- return this;
43
- }
44
- }
45
-
46
- const watchSize=(UI,callback)=>new ZikoResizeObserver(UI,callback)
1
+ class ZikoResizeObserver{
2
+ constructor(UIElement,callback){
3
+ this.target=UIElement;
4
+ this.contentRect=null;
5
+ this.observer=new ResizeObserver(()=>{
6
+ callback(this)
7
+ })
8
+ }
9
+ get BoundingRect(){
10
+ return this.target.element.getBoundingClientRect();
11
+ }
12
+ get width(){
13
+ return this.BoundingRect.width;
14
+ }
15
+ get height(){
16
+ return this.BoundingRect.height;
17
+ }
18
+ get top(){
19
+ return this.BoundingRect.top;
20
+ }
21
+ get bottom(){
22
+ return this.BoundingRect.bottom;
23
+ }
24
+ get right(){
25
+ return this.BoundingRect.right;
26
+ }
27
+ get left(){
28
+ return this.BoundingRect.left;
29
+ }
30
+ get x(){
31
+ return this.BoundingRect.x;
32
+ }
33
+ get y(){
34
+ return this.BoundingRect.y;
35
+ }
36
+ start(){
37
+ this.observer.observe(this.target.element);
38
+ return this;
39
+ }
40
+ stop(){
41
+ this.observer.unobserve(this.target.element);
42
+ return this;
43
+ }
44
+ }
45
+
46
+ const watchSize=(UI,callback)=>new ZikoResizeObserver(UI,callback)
47
47
  export {watchSize}
@@ -1,45 +1,45 @@
1
- import { map } from "../../math/utils/index.js"
2
- class ZikoScreenObserver {
3
- constructor(callback=e=>console.log({x:e.x,y:e.y})) {
4
- this.cache={};
5
- this.previousX = globalThis?.screenX;
6
- this.previousY = globalThis?.screenY;
7
- }
8
- update(){
9
- Object.assign(this.cache,{
10
- screenXLeft : globalThis?.screenX, // CORRECT
11
- screenXRight : globalThis?.screen.availWidth - globalThis?.screenX, // CORRECT
12
- screenYTop : globalThis?.screenY, // CORRECT
13
- screenYBottom : globalThis?.screen.availHeight - globalThis?.screenY - globalThis?.outerHeight, // TO TEST
14
- screenCenterX : globalThis?.screen.availWidth/2, // CORRECT
15
- screenCenterY : globalThis?.screen.availHeight/2,// CORRECT
16
- windowCenterX : globalThis?.outerWidth/2+globalThis?.screenX, // CORRECT
17
- windowCenterY : globalThis?.outerHeight/2+ globalThis?.screenY, // FALSE
18
- deltaCenterX : globalThis?.screen.availWidth/2-globalThis?.outerWidth/2+globalThis?.screenX, // CORRECT
19
- deltaCenterY : null //
20
- })
21
- }
22
- get x0(){
23
- return map(globalThis?.screenX, 0, globalThis.screen.availWidth, -1, 1);
24
- }
25
- get y0(){
26
- return - map(globalThis?.screenY, 0, globalThis.screen.availHeight, -1, 1);
27
- }
28
- get x1(){
29
- return map(globalThis?.screenX + globalThis?.outerWidth, 0, globalThis.screen.availWidth, -1, 1);
30
- }
31
- get y1(){
32
- return - map(globalThis?.screenY + globalThis?.outerHeight, 0, globalThis.screen.availHeight, -1, 1);
33
- }
34
- get cx(){
35
- return map(globalThis?.outerWidth/2+globalThis?.screenX, 0, globalThis.screen.availWidth, -1, 1);
36
- }
37
- get cy(){
38
- return - map(globalThis?.outerHeight/2+ globalThis?.screenY, 0, globalThis.screen.availHeight, -1, 1);
39
- }
40
- }
41
-
42
- const watchScreen=(callback)=>new ZikoScreenObserver(callback);
43
- export{
44
- watchScreen
1
+ import { map } from "../../math/utils/index.js"
2
+ class ZikoScreenObserver {
3
+ constructor(callback=e=>console.log({x:e.x,y:e.y})) {
4
+ this.cache={};
5
+ this.previousX = globalThis?.screenX;
6
+ this.previousY = globalThis?.screenY;
7
+ }
8
+ update(){
9
+ Object.assign(this.cache,{
10
+ screenXLeft : globalThis?.screenX, // CORRECT
11
+ screenXRight : globalThis?.screen.availWidth - globalThis?.screenX, // CORRECT
12
+ screenYTop : globalThis?.screenY, // CORRECT
13
+ screenYBottom : globalThis?.screen.availHeight - globalThis?.screenY - globalThis?.outerHeight, // TO TEST
14
+ screenCenterX : globalThis?.screen.availWidth/2, // CORRECT
15
+ screenCenterY : globalThis?.screen.availHeight/2,// CORRECT
16
+ windowCenterX : globalThis?.outerWidth/2+globalThis?.screenX, // CORRECT
17
+ windowCenterY : globalThis?.outerHeight/2+ globalThis?.screenY, // FALSE
18
+ deltaCenterX : globalThis?.screen.availWidth/2-globalThis?.outerWidth/2+globalThis?.screenX, // CORRECT
19
+ deltaCenterY : null //
20
+ })
21
+ }
22
+ get x0(){
23
+ return map(globalThis?.screenX, 0, globalThis.screen.availWidth, -1, 1);
24
+ }
25
+ get y0(){
26
+ return - map(globalThis?.screenY, 0, globalThis.screen.availHeight, -1, 1);
27
+ }
28
+ get x1(){
29
+ return map(globalThis?.screenX + globalThis?.outerWidth, 0, globalThis.screen.availWidth, -1, 1);
30
+ }
31
+ get y1(){
32
+ return - map(globalThis?.screenY + globalThis?.outerHeight, 0, globalThis.screen.availHeight, -1, 1);
33
+ }
34
+ get cx(){
35
+ return map(globalThis?.outerWidth/2+globalThis?.screenX, 0, globalThis.screen.availWidth, -1, 1);
36
+ }
37
+ get cy(){
38
+ return - map(globalThis?.outerHeight/2+ globalThis?.screenY, 0, globalThis.screen.availHeight, -1, 1);
39
+ }
40
+ }
41
+
42
+ const watchScreen=(callback)=>new ZikoScreenObserver(callback);
43
+ export{
44
+ watchScreen
45
45
  }
@@ -1,84 +1,84 @@
1
- import { useTimeLoop } from "../../Time";
2
- import {
3
- map,
4
- complex,
5
- } from "../../Math";
6
- class ZikoScreenObserver {
7
- constructor(callback=e=>console.log({x:e.x,y:e.y})) {
8
- this.previousX = globalThis?.screenX;
9
- this.previousY = globalThis?.screenY;
10
- this.view=[-1,-1,1,1];
11
- this.start(callback);
12
- }
13
- get xMin(){
14
- return this.view[0];
15
- }
16
- get yMin(){
17
- return this.view[1];
18
- }
19
- get xMax(){
20
- return this.view[2];
21
- }
22
- get yMax(){
23
- return this.view[3];
24
- }
25
- get x(){
26
- return globalThis?.screenX;
27
- }
28
- get y(){
29
- return globalThis?.screenY;
30
- }
31
- get scx(){
32
- return screen.availWidth/2;
33
- }
34
- get scy(){
35
- return screen.availHeight/2;
36
- }
37
- get wcx(){
38
- return screenX+globalThis?.innerWidth/2;
39
- }
40
- get wcx_v(){
41
- return map(this.wcx,0,screen.availWidth,this.view[0],this.view[2]);
42
- }
43
- get wcy(){
44
- return screenY+globalThis?.innerHeight/2;
45
- }
46
- get wcy_v(){
47
- return -map(this.wcy,0,screen.availHeight,this.view[1],this.view[3]);
48
- }
49
- get dx(){
50
- return map(this.x,0,screen.availWidth,this.xMin,this.xMax);
51
- }
52
- get dy(){
53
- return map(this.y,0,screen.availHeight,this.yMin,this.yMax);
54
- }
55
- start(callback){
56
- this.loop = useTimeLoop(()=>{
57
- let currentX = globalThis?.screenX;
58
- let currentY = globalThis?.screenY;
59
- if (this.previousX !== currentX || this.previousY !== currentY) {
60
- callback(this)
61
- this.previousX = currentX;
62
- this.previousY = currentY;
63
- }
64
- },1000/60,0,Infinity,true);
65
- return this;
66
- }
67
- }
68
- const watchScreen=(callback)=>new ZikoScreenObserver(callback);
69
- // globalThis.watchScreen=watchScreen;
70
- export{
71
- watchScreen
72
- }
73
-
74
- /*
75
- a=ul("x","y","dx","dy","wcx","wxy")
76
- watchScreen(e=>{
77
- a[0].setValue("x : "+e.x)
78
- a[1].setValue("y : "+e.y)
79
- a[2].setValue("dx : "+e.dx)
80
- a[3].setValue("dy : "+e.dy)
81
- a[4].setValue("wCx : "+e.wcx)
82
- a[5].setValue("wCy : "+e.wcy)
83
- })
1
+ import { useTimeLoop } from "../../Time";
2
+ import {
3
+ map,
4
+ complex,
5
+ } from "../../Math";
6
+ class ZikoScreenObserver {
7
+ constructor(callback=e=>console.log({x:e.x,y:e.y})) {
8
+ this.previousX = globalThis?.screenX;
9
+ this.previousY = globalThis?.screenY;
10
+ this.view=[-1,-1,1,1];
11
+ this.start(callback);
12
+ }
13
+ get xMin(){
14
+ return this.view[0];
15
+ }
16
+ get yMin(){
17
+ return this.view[1];
18
+ }
19
+ get xMax(){
20
+ return this.view[2];
21
+ }
22
+ get yMax(){
23
+ return this.view[3];
24
+ }
25
+ get x(){
26
+ return globalThis?.screenX;
27
+ }
28
+ get y(){
29
+ return globalThis?.screenY;
30
+ }
31
+ get scx(){
32
+ return screen.availWidth/2;
33
+ }
34
+ get scy(){
35
+ return screen.availHeight/2;
36
+ }
37
+ get wcx(){
38
+ return screenX+globalThis?.innerWidth/2;
39
+ }
40
+ get wcx_v(){
41
+ return map(this.wcx,0,screen.availWidth,this.view[0],this.view[2]);
42
+ }
43
+ get wcy(){
44
+ return screenY+globalThis?.innerHeight/2;
45
+ }
46
+ get wcy_v(){
47
+ return -map(this.wcy,0,screen.availHeight,this.view[1],this.view[3]);
48
+ }
49
+ get dx(){
50
+ return map(this.x,0,screen.availWidth,this.xMin,this.xMax);
51
+ }
52
+ get dy(){
53
+ return map(this.y,0,screen.availHeight,this.yMin,this.yMax);
54
+ }
55
+ start(callback){
56
+ this.loop = useTimeLoop(()=>{
57
+ let currentX = globalThis?.screenX;
58
+ let currentY = globalThis?.screenY;
59
+ if (this.previousX !== currentX || this.previousY !== currentY) {
60
+ callback(this)
61
+ this.previousX = currentX;
62
+ this.previousY = currentY;
63
+ }
64
+ },1000/60,0,Infinity,true);
65
+ return this;
66
+ }
67
+ }
68
+ const watchScreen=(callback)=>new ZikoScreenObserver(callback);
69
+ // globalThis.watchScreen=watchScreen;
70
+ export{
71
+ watchScreen
72
+ }
73
+
74
+ /*
75
+ a=ul("x","y","dx","dy","wcx","wxy")
76
+ watchScreen(e=>{
77
+ a[0].setValue("x : "+e.x)
78
+ a[1].setValue("y : "+e.y)
79
+ a[2].setValue("dx : "+e.dx)
80
+ a[3].setValue("dy : "+e.dy)
81
+ a[4].setValue("wCx : "+e.wcx)
82
+ a[5].setValue("wCy : "+e.wcy)
83
+ })
84
84
  */