equal
deleted
inserted
replaced
1 // detachable_elements.ysl2 |
1 // detachable_pages.ysl2 |
2 // |
2 // |
3 // compute what elements are required by pages |
3 // compute what elements are required by pages |
4 // and decide where to cut when removing/attaching |
4 // and decide where to cut when removing/attaching |
5 // pages elements on page switch |
5 // pages elements on page switch |
6 |
6 |
96 param "descend"; |
96 param "descend"; |
97 param "ancest"; |
97 param "ancest"; |
98 result "string-length($ancest) > 0 and starts-with($descend,$ancest)"; |
98 result "string-length($ancest) > 0 and starts-with($descend,$ancest)"; |
99 } |
99 } |
100 |
100 |
|
101 |
101 template "svg:*", mode="page_desc" { |
102 template "svg:*", mode="page_desc" { |
102 const "desc", "func:parselabel(@inkscape:label)/widget"; |
103 const "desc", "func:parselabel(@inkscape:label)/widget"; |
103 const "page", "."; |
104 const "page", "."; |
104 const "p", "$geometry[@Id = $page/@id]"; |
105 const "p", "$geometry[@Id = $page/@id]"; |
105 |
106 |
106 const "page_all_elements", "func:all_related_elements($page)"; |
107 const "page_all_elements", "func:all_related_elements($page)"; |
107 |
108 |
108 const "all_page_widgets","$hmi_elements[@id = $page_all_elements/@id and @id != $page/@id]"; |
109 const "all_page_widgets","$hmi_elements[@id = $page_all_elements/@id and @id != $page/@id][not(func:parselabels(ancestor::svg:*)/widget/@type = 'ForEach')]"; |
109 |
110 |
110 const "page_relative_widgets", |
111 const "page_relative_widgets", |
111 "$all_page_widgets[func:is_descendant_path(func:parselabel(@inkscape:label)/widget/path/@value, $desc/path/@value)]"; |
112 "$all_page_widgets[func:is_descendant_path(func:parselabel(@inkscape:label)/widget/path/@value, $desc/path/@value)]"; |
112 |
113 |
113 // Take closest ancestor in detachable_elements |
114 // Take closest ancestor in detachable_elements |