atome 0.5.4.1.2 → 0.5.4.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -1
- data/lib/atome/genesis/generators/identity.rb +4 -4
- data/lib/atome/genesis/generators/material.rb +9 -4
- data/lib/atome/genesis/sparkle.rb +5 -0
- data/lib/atome/renderers/browser/atome.rb +11 -7
- data/lib/atome/renderers/browser/helpers/browser_helper.rb +52 -15
- data/lib/atome/renderers/browser/helpers/color_helper.rb +5 -1
- data/lib/atome/renderers/browser/identity.rb +0 -3
- data/lib/atome/renderers/browser/material.rb +2 -7
- data/lib/atome/version.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/vector.rb +13 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ea8cce9faff92d47920bfeb8bdd678e0c1c19db73d7446b43c8f8053cbb32f9
|
4
|
+
data.tar.gz: cc515d8140cbda0d54b4a9faf1bbe13a03bc8a19ce500965480ab5a66f1cd951
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b6a8825e9546c41f81fe46018c57824aa2bb46b176a1cf2c4a3d8c1b63ba19f5ba85abddbb3ed790ef9d555968c0e4d90238c3280b6c5d6c799b0d6017bcd1d
|
7
|
+
data.tar.gz: 9c8496f6d15528eef09246d2454847210019fd282a6baca7e505076923e6527fb9ea09f54c9f942985324e0a09264380c4e632fbe748d50e24d00d61caf1df5a
|
data/CHANGELOG.md
CHANGED
@@ -4,4 +4,9 @@
|
|
4
4
|
- add vector preset, with support for svg format
|
5
5
|
|
6
6
|
## [0.5.4.1.2] - 2023-05-20
|
7
|
-
- added changelog for rubygems
|
7
|
+
- added changelog for rubygems
|
8
|
+
|
9
|
+
## [0.5.4.1.3] - 2023-05-21
|
10
|
+
-version updated to '0.5.4.1.3'
|
11
|
+
vector now remove background-color if it exist
|
12
|
+
vector now use class instead of a local style
|
@@ -4,10 +4,10 @@ new({ particle: :attach })
|
|
4
4
|
new({ sanitizer: :attach }) do |parents_ids|
|
5
5
|
puts "=> attach it! : #{parents_ids} <="
|
6
6
|
|
7
|
-
parents_ids = parents_ids if parents_ids.instance_of? Atome
|
7
|
+
# parents_ids = parents_ids if parents_ids.instance_of? Atome
|
8
8
|
parents_ids = [parents_ids] unless parents_ids.instance_of?(Array)
|
9
9
|
parents_ids.each do |parents_id|
|
10
|
-
parents_id = parents_id if parents_id.instance_of? Atome
|
10
|
+
# parents_id = parents_id if parents_id.instance_of? Atome
|
11
11
|
parents_found = grab(parents_id)
|
12
12
|
# TODO : factorise the code below
|
13
13
|
current_type = atome[:type]
|
@@ -31,10 +31,10 @@ end
|
|
31
31
|
new({ particle: :attached })
|
32
32
|
new({ sanitizer: :attached }) do |children_ids|
|
33
33
|
puts "=> attached now! : #{children_ids}<="
|
34
|
-
children_ids = children_ids if children_ids.instance_of? Atome
|
34
|
+
# children_ids = children_ids if children_ids.instance_of? Atome
|
35
35
|
children_ids = [children_ids] unless children_ids.instance_of?(Array)
|
36
36
|
children_ids.each do |child_id|
|
37
|
-
child_id = child_id if child_id.instance_of? Atome
|
37
|
+
# child_id = child_id if child_id.instance_of? Atome
|
38
38
|
child_found = grab(child_id)
|
39
39
|
parents_found = @atome[:id]
|
40
40
|
# TODO : factorise the code below
|
@@ -50,10 +50,15 @@ new({ particle: :remove_classes }) do |value|
|
|
50
50
|
# Universe.classes.delete(value)
|
51
51
|
Universe.classes[value].delete(id)
|
52
52
|
end
|
53
|
-
new ({particle: :opacity})
|
54
|
-
|
53
|
+
new ({ particle: :opacity })
|
55
54
|
|
56
55
|
# vector shape
|
57
|
-
new({particle: :definition})
|
56
|
+
new({ particle: :definition })
|
57
|
+
|
58
|
+
new({ browser: :definition, type: :string })
|
58
59
|
|
59
|
-
new({
|
60
|
+
new({ sanitizer: :definition }) do |params|
|
61
|
+
# we remove the unwanted svg tags
|
62
|
+
params = params.gsub(/<svg[^>]*>|<\/svg>/, '')
|
63
|
+
params
|
64
|
+
end
|
@@ -60,6 +60,11 @@ Atome.new(
|
|
60
60
|
red: 0.5, green: 0.5, blue: 0.5, alpha: 1 } }
|
61
61
|
)
|
62
62
|
|
63
|
+
Atome.new(
|
64
|
+
{ color: { renderers: default_render, id: :invisible_color, type: :color,tag: ({persistent: true}),
|
65
|
+
red: 0, green: 0, blue: 0, alpha: 1 } }
|
66
|
+
)
|
67
|
+
|
63
68
|
Atome.new(
|
64
69
|
{ color: { renderers: default_render, id: :text_color, type: :color,tag: ({persistent: true}),
|
65
70
|
red: 0.3, green: 0.3, blue: 0.3, alpha: 1 } }
|
@@ -9,16 +9,16 @@ def parents(_val) end
|
|
9
9
|
generator = Genesis.generator
|
10
10
|
|
11
11
|
generator.build_render(:browser_shape) do
|
12
|
-
if @definition
|
13
|
-
|
14
|
-
else
|
12
|
+
# if @definition
|
13
|
+
# alert "why we never pass here??????"
|
14
|
+
# else
|
15
15
|
@browser_type = :div
|
16
16
|
id_found = @atome[:id]
|
17
17
|
DOM do
|
18
18
|
div(id: id_found).atome
|
19
19
|
end.append_to(BrowserHelper.browser_document[:user_view])
|
20
20
|
@browser_object = BrowserHelper.browser_document[id_found]
|
21
|
-
end
|
21
|
+
# end
|
22
22
|
|
23
23
|
end
|
24
24
|
|
@@ -34,9 +34,13 @@ generator.build_render(:browser_color) do |_value|
|
|
34
34
|
green_found = @atome[:green]
|
35
35
|
alpha_found = @atome[:alpha]
|
36
36
|
BrowserHelper.browser_document.head << Browser.DOM("<style atome='#{type_found}'
|
37
|
-
id='#{id_found}'>.#{id_found}{
|
38
|
-
|
39
|
-
|
37
|
+
id='#{id_found}'>.#{id_found}{
|
38
|
+
background-color: rgba(#{red_found * 255},#{green_found * 255},#{blue_found * 255},#{alpha_found});
|
39
|
+
fill: rgba(#{red_found * 255},#{green_found * 255},#{blue_found * 255},#{alpha_found}),
|
40
|
+
stroke: rgba(#{red_found * 255},#{green_found * 255},#{blue_found * 255},#{alpha_found})}</style>")
|
41
|
+
# document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.fill = #{color_updated}
|
42
|
+
# document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.stroke = #{color_updated}
|
43
|
+
# # TODO: use the code below to modify the style tag
|
40
44
|
@browser_object = BrowserHelper.browser_document[id_found]
|
41
45
|
end
|
42
46
|
|
@@ -15,25 +15,36 @@ module BrowserHelper
|
|
15
15
|
html_object.append_to(browser_document[parents])
|
16
16
|
end
|
17
17
|
|
18
|
+
def self.colorize_vector(vector_id, tag_style)
|
19
|
+
# TODO : Create a class instead of modidfying the vector
|
20
|
+
# get the content the <style> tag
|
21
|
+
color_class=self.color.last
|
22
|
+
# alert color_class.class
|
23
|
+
# content_style = tag_style.inner_html
|
24
|
+
# color_value = content_style[/background-color:\s*([^;}]+)/, 1]
|
25
|
+
`
|
26
|
+
let parser = new DOMParser();
|
27
|
+
var divElement = document.querySelector('#'+#{vector_id});
|
28
|
+
divElement.style.removeProperty('background-color');
|
29
|
+
divElement.style.backgroundColor = 'transparent';
|
30
|
+
// select the first svg tag inside the div
|
31
|
+
let foundSVG = divElement.querySelector('svg');
|
32
|
+
let elements = foundSVG.getElementsByTagName("path");
|
33
|
+
Array.from(elements).forEach(el => {
|
34
|
+
el.classList.add(#{color_class});
|
35
|
+
});
|
36
|
+
`
|
37
|
+
end
|
38
|
+
|
18
39
|
def self.browser_attach_style(parents, _html_object, atome)
|
19
40
|
# we test if the atome has a deinition ( it means hold some vectors infomations)
|
20
41
|
if grab(parents).atome[:definition]
|
21
42
|
tag_style = $document[atome[:id]]
|
22
|
-
# get the content the <style> tag
|
23
|
-
content_style = tag_style.inner_html
|
43
|
+
# # get the content the <style> tag
|
44
|
+
# content_style = tag_style.inner_html
|
24
45
|
# extract the color value
|
25
|
-
|
26
|
-
|
27
|
-
let parser = new DOMParser();
|
28
|
-
var divElement = document.querySelector('#'+#{parents});
|
29
|
-
// select the first svg tag inside the div
|
30
|
-
let foundSVG = divElement.querySelector('svg');
|
31
|
-
let elements = foundSVG.getElementsByTagName("path");
|
32
|
-
Array.from(elements).forEach(el => {
|
33
|
-
el.setAttribute("fill", #{color_value});
|
34
|
-
el.setAttribute("stroke", #{color_value});
|
35
|
-
});
|
36
|
-
`
|
46
|
+
colorize_vector(parents, tag_style)
|
47
|
+
|
37
48
|
else
|
38
49
|
browser_document[parents].add_class(atome[:id])
|
39
50
|
|
@@ -50,8 +61,34 @@ Array.from(elements).forEach(el => {
|
|
50
61
|
end
|
51
62
|
|
52
63
|
def self.browser_attached_style(children, _html_object, atome)
|
64
|
+
if atome[:definition]
|
65
|
+
children.each do |child|
|
66
|
+
tag_style = $document[child]
|
67
|
+
|
68
|
+
colorize_vector(atome[:id], tag_style)
|
69
|
+
# get the content the <style> tag
|
70
|
+
# content_style = tag_style.inner_html
|
71
|
+
# # extract the color value
|
72
|
+
# color_value = content_style[/background-color:\s*([^;}]+)/, 1]
|
73
|
+
# `
|
74
|
+
# let parser = new DOMParser();
|
75
|
+
# var divElement = document.querySelector('#'+#{atome[:id]});
|
76
|
+
# // select the first svg tag inside the div
|
77
|
+
# let foundSVG = divElement.querySelector('svg');
|
78
|
+
# let elements = foundSVG.getElementsByTagName("path");
|
79
|
+
# Array.from(elements).forEach(el => {
|
80
|
+
# el.setAttribute("fill", #{color_value});
|
81
|
+
# el.setAttribute("stroke", #{color_value});
|
82
|
+
# });
|
83
|
+
# `
|
84
|
+
end
|
85
|
+
|
86
|
+
else
|
87
|
+
# alert atome.class
|
88
|
+
browser_document[atome[:id]].add_class(children)
|
89
|
+
end
|
90
|
+
# browser_document[atome[:id]].add_class(children)
|
53
91
|
|
54
|
-
browser_document[atome[:id]].add_class(children)
|
55
92
|
end
|
56
93
|
|
57
94
|
def self.value_parse(value)
|
@@ -3,7 +3,11 @@
|
|
3
3
|
# for browser rendering
|
4
4
|
module BrowserHelper
|
5
5
|
def self.browser_colorize_color(color_updated, atome)
|
6
|
-
`
|
6
|
+
`
|
7
|
+
document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.backgroundColor = #{color_updated}
|
8
|
+
document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.fill = #{color_updated}
|
9
|
+
document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.stroke = #{color_updated}
|
10
|
+
`
|
7
11
|
end
|
8
12
|
|
9
13
|
def self.browser_colorize_shadow(color_updated, atome)
|
@@ -15,9 +15,6 @@ generator.build_render(:browser_type) do |params|
|
|
15
15
|
send("browser_#{params}", user_proc)
|
16
16
|
end
|
17
17
|
|
18
|
-
# generator.build_render(:browser_family) do |parents_found|
|
19
|
-
# BrowserHelper.send("browser_attach_#{@browser_type}", parents_found, @browser_object, @atome)
|
20
|
-
# end
|
21
18
|
|
22
19
|
generator.build_render(:browser_attach) do |parents_found|
|
23
20
|
# puts "parents_found : #{parents_found}, #{parents_found.class}"
|
@@ -15,7 +15,6 @@ end
|
|
15
15
|
|
16
16
|
generator.build_render(:green) do |value|
|
17
17
|
# we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
|
18
|
-
self
|
19
18
|
red = @atome[:red] * 255
|
20
19
|
green = (@atome[:green] = value) * 255
|
21
20
|
blue = @atome[:blue] * 255
|
@@ -49,11 +48,6 @@ generator.build_render(:alpha) do |value|
|
|
49
48
|
end
|
50
49
|
|
51
50
|
generator.build_render(:visual) do |value|
|
52
|
-
# value = if value[:size].instance_of?(String)
|
53
|
-
# value[:size]
|
54
|
-
# else
|
55
|
-
# "#{value[:size]}px"
|
56
|
-
# end
|
57
51
|
value = BrowserHelper.value_parse(value[:size])
|
58
52
|
browser_object.style['font-size'] = value
|
59
53
|
end
|
@@ -99,7 +93,8 @@ new ({ browser: :definition }) do |value|
|
|
99
93
|
`
|
100
94
|
|
101
95
|
var divElement = document.querySelector('#'+#{target});;
|
102
|
-
|
96
|
+
divElement.style.removeProperty('background-color');
|
97
|
+
divElement.style.backgroundColor = 'transparent';
|
103
98
|
// select the first svg tag inside the div
|
104
99
|
var svgElement = divElement.querySelector('svg');
|
105
100
|
|
data/lib/atome/version.rb
CHANGED
@@ -5,29 +5,35 @@
|
|
5
5
|
# left: 0, right: 0, top: 0, bottom: 0, width: 30, height: 30, overflow: :hidden, tag: {system: false}
|
6
6
|
# } })
|
7
7
|
|
8
|
-
b=
|
9
|
-
|
8
|
+
b=box({left: 300})
|
9
|
+
b.drag(true)
|
10
10
|
edition = <<~STR
|
11
11
|
<path id="p1" d="M257.7 752c2 0 4-0.2 6-0.5L431.9 722c2-0.4 3.9-1.3 5.3-2.8l423.9-423.9c3.9-3.9 3.9-10.2 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2c-1.9 11.1 1.5 21.9 9.4 29.8 6.6 6.4 14.9 9.9 23.8 9.9z m67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"/>
|
12
12
|
STR
|
13
|
-
b.
|
13
|
+
v=b.vector({left: 0, top: 0})
|
14
|
+
|
15
|
+
v.definition(edition)
|
14
16
|
wait 1 do
|
15
|
-
|
17
|
+
v.color(:yellow)
|
16
18
|
end
|
17
19
|
copy = <<~STR
|
20
|
+
<svg class="svg-icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
21
|
+
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
18
22
|
<path id="p1" d="M672 832 224 832c-52.928 0-96-43.072-96-96L128 160c0-52.928 43.072-96 96-96l448 0c52.928 0 96 43.072 96 96l0 576C768 788.928 724.928 832 672 832zM224 128C206.368 128 192 142.368 192 160l0 576c0 17.664 14.368 32 32 32l448 0c17.664 0 32-14.336 32-32L704 160c0-17.632-14.336-32-32-32L224 128z"/>
|
19
23
|
<path id="p2" d="M800 960 320 960c-17.664 0-32-14.304-32-32s14.336-32 32-32l480 0c17.664 0 32-14.336 32-32L832 256c0-17.664 14.304-32 32-32s32 14.336 32 32l0 608C896 916.928 852.928 960 800 960z"/>
|
20
24
|
<path id="p3" d="M544 320 288 320c-17.664 0-32-14.336-32-32s14.336-32 32-32l256 0c17.696 0 32 14.336 32 32S561.696 320 544 320z"/>
|
21
25
|
<path id="p4" d="M608 480 288.032 480c-17.664 0-32-14.336-32-32s14.336-32 32-32L608 416c17.696 0 32 14.336 32 32S625.696 480 608 480z"/>
|
22
26
|
<path id="p5" d="M608 640 288 640c-17.664 0-32-14.304-32-32s14.336-32 32-32l320 0c17.696 0 32 14.304 32 32S625.696 640 608 640z"/>
|
27
|
+
</svg>
|
23
28
|
STR
|
24
29
|
|
25
30
|
|
26
31
|
wait 2 do
|
27
|
-
|
32
|
+
v.definition(copy)
|
28
33
|
end
|
29
34
|
|
30
35
|
wait 3 do
|
31
|
-
|
32
|
-
|
36
|
+
v.color(:orange)
|
37
|
+
v.width(33)
|
38
|
+
v.height(33)
|
33
39
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atome
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.4.1.
|
4
|
+
version: 0.5.4.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jean-Eric Godard
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-05-
|
11
|
+
date: 2023-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: arduino_firmata
|