glib-web 0.5.71 → 0.5.72

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 (185) hide show
  1. checksums.yaml +4 -4
  2. data/app/channels/glib/channel/is_typing_channel.rb +34 -34
  3. data/app/channels/glib/channel/online_channel.rb +36 -36
  4. data/app/controllers/concerns/glib/analytics/funnel.rb +61 -61
  5. data/app/controllers/concerns/glib/auth/policy.rb +148 -148
  6. data/app/controllers/concerns/glib/json/dynamic_text.rb +126 -126
  7. data/app/controllers/concerns/glib/json/libs.rb +149 -149
  8. data/app/controllers/concerns/glib/json/new_dynamic_text.rb +122 -122
  9. data/app/controllers/concerns/glib/json/transformation.rb +11 -11
  10. data/app/controllers/concerns/glib/json/traversal.rb +92 -92
  11. data/app/controllers/concerns/glib/json/ui.rb +88 -88
  12. data/app/controllers/concerns/glib/json/validation.rb +13 -13
  13. data/app/controllers/glib/home_controller.rb +54 -54
  14. data/app/helpers/glib/app_feature_support_helper.rb +16 -16
  15. data/app/helpers/glib/dynamic_images_helper.rb +55 -55
  16. data/app/helpers/glib/dynamic_texts_helper.rb +42 -42
  17. data/app/helpers/glib/enum_helper.rb +18 -8
  18. data/app/helpers/glib/forms_helper.rb +15 -15
  19. data/app/helpers/glib/json_ui/abstract_builder.rb +309 -309
  20. data/app/helpers/glib/json_ui/action_builder.rb +140 -140
  21. data/app/helpers/glib/json_ui/action_builder/dialogs.rb +58 -58
  22. data/app/helpers/glib/json_ui/action_builder/http.rb +39 -39
  23. data/app/helpers/glib/json_ui/action_builder/panels.rb +14 -14
  24. data/app/helpers/glib/json_ui/action_builder/sheets.rb +15 -15
  25. data/app/helpers/glib/json_ui/action_builder/snackbars.rb +41 -41
  26. data/app/helpers/glib/json_ui/action_builder/windows.rb +33 -33
  27. data/app/helpers/glib/json_ui/analytics_helper.rb +17 -17
  28. data/app/helpers/glib/json_ui/dynamic_field_builders.rb +25 -25
  29. data/app/helpers/glib/json_ui/generic_builders.rb +28 -28
  30. data/app/helpers/glib/json_ui/list_builders.rb +110 -110
  31. data/app/helpers/glib/json_ui/menu_builder.rb +94 -94
  32. data/app/helpers/glib/json_ui/page_helper.rb +221 -221
  33. data/app/helpers/glib/json_ui/response_helper.rb +25 -25
  34. data/app/helpers/glib/json_ui/split_builders.rb +32 -32
  35. data/app/helpers/glib/json_ui/styling_helper.rb +55 -55
  36. data/app/helpers/glib/json_ui/table_builders.rb +74 -74
  37. data/app/helpers/glib/json_ui/view_builder.rb +240 -240
  38. data/app/helpers/glib/json_ui/view_builder/banners.rb +26 -26
  39. data/app/helpers/glib/json_ui/view_builder/charts.rb +33 -33
  40. data/app/helpers/glib/json_ui/view_builder/fields.rb +278 -279
  41. data/app/helpers/glib/json_ui/view_builder/panels.rb +256 -256
  42. data/app/helpers/glib/urls_helper.rb +12 -12
  43. data/app/models/glib/active_storage/attachment.rb +9 -9
  44. data/app/models/glib/active_storage/blob.rb +9 -9
  45. data/app/models/glib/application_record.rb +18 -18
  46. data/app/models/glib/dynamic_text_record.rb +9 -9
  47. data/app/models/glib/text.rb +95 -95
  48. data/app/policies/glib/application_policy.rb +161 -161
  49. data/app/validators/email_typo_validator.rb +38 -38
  50. data/app/validators/email_validator.rb +7 -7
  51. data/app/validators/url_validator.rb +20 -20
  52. data/app/views/json_ui/garage/_nav_menu.json.jbuilder +70 -70
  53. data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +104 -104
  54. data/app/views/json_ui/garage/actions/_http.json.jbuilder +24 -24
  55. data/app/views/json_ui/garage/actions/_panels.json.jbuilder +18 -18
  56. data/app/views/json_ui/garage/actions/_reload.json.jbuilder +17 -17
  57. data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +18 -18
  58. data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -33
  59. data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +24 -24
  60. data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -24
  61. data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +6 -6
  62. data/app/views/json_ui/garage/actions/index.json.jbuilder +24 -24
  63. data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +6 -6
  64. data/app/views/json_ui/garage/forms/basic.json.jbuilder +21 -21
  65. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +8 -8
  66. data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +43 -43
  67. data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +36 -36
  68. data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +39 -39
  69. data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +24 -22
  70. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +38 -38
  71. data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +32 -37
  72. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +19 -19
  73. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +3 -3
  74. data/app/views/json_ui/garage/forms/get_request.json.jbuilder +27 -27
  75. data/app/views/json_ui/garage/forms/index.json.jbuilder +113 -113
  76. data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +39 -39
  77. data/app/views/json_ui/garage/forms/online_participant1.json.jbuilder +25 -25
  78. data/app/views/json_ui/garage/forms/online_participant2.json.jbuilder +25 -25
  79. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +81 -81
  80. data/app/views/json_ui/garage/forms/ratings.json.jbuilder +49 -49
  81. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
  82. data/app/views/json_ui/garage/forms/selects.json.jbuilder +91 -84
  83. data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +130 -130
  84. data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +35 -35
  85. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
  86. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +26 -26
  87. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
  88. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
  89. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +81 -81
  90. data/app/views/json_ui/garage/forms/timers.json.jbuilder +120 -120
  91. data/app/views/json_ui/garage/home/blank.json.jbuilder +10 -10
  92. data/app/views/json_ui/garage/home/index.json.jbuilder +36 -36
  93. data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
  94. data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +28 -28
  95. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
  96. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
  97. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +94 -94
  98. data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +62 -62
  99. data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
  100. data/app/views/json_ui/garage/lists/index.json.jbuilder +38 -38
  101. data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
  102. data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
  103. data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +114 -114
  104. data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
  105. data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
  106. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
  107. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
  108. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
  109. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
  110. data/app/views/json_ui/garage/pages/index.json.jbuilder +62 -62
  111. data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
  112. data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +13 -13
  113. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
  114. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
  115. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
  116. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +31 -31
  117. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
  118. data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
  119. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +37 -37
  120. data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
  121. data/app/views/json_ui/garage/panels/flow.json.jbuilder +59 -59
  122. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +91 -91
  123. data/app/views/json_ui/garage/panels/index.json.jbuilder +138 -134
  124. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
  125. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
  126. data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
  127. data/app/views/json_ui/garage/panels/ul.json.jbuilder +33 -0
  128. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +55 -55
  129. data/app/views/json_ui/garage/panels/web.json.jbuilder +15 -15
  130. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
  131. data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
  132. data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
  133. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
  134. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
  135. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
  136. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
  137. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
  138. data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
  139. data/app/views/json_ui/garage/tables/layout.json.jbuilder +40 -40
  140. data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
  141. data/app/views/json_ui/garage/views/banners.json.jbuilder +63 -63
  142. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
  143. data/app/views/json_ui/garage/views/charts.json.jbuilder +115 -115
  144. data/app/views/json_ui/garage/views/controls.json.jbuilder +37 -37
  145. data/app/views/json_ui/garage/views/icon_names.json.jbuilder +1450 -1450
  146. data/app/views/json_ui/garage/views/icons.json.jbuilder +15 -14
  147. data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
  148. data/app/views/json_ui/garage/views/index.json.jbuilder +67 -67
  149. data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
  150. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
  151. data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
  152. data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
  153. data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
  154. data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
  155. data/app/views/json_ui/garage/views/texts.json.jbuilder +35 -35
  156. data/app/views/layouts/json_ui/renderer.html.erb +35 -35
  157. data/config/routes.rb +7 -7
  158. data/lib/generators/glib/install_generator.rb +24 -24
  159. data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
  160. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
  161. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
  162. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
  163. data/lib/generators/templates/database.yml +107 -107
  164. data/lib/generators/templates/dynamic_text.rb +2 -2
  165. data/lib/glib-web.rb +9 -9
  166. data/lib/glib/crypt/utils.rb +26 -26
  167. data/lib/glib/dynamic_text/config.rb +21 -21
  168. data/lib/glib/engine.rb +7 -7
  169. data/lib/glib/json_crawler.rb +11 -11
  170. data/lib/glib/json_crawler/action_crawler.rb +23 -23
  171. data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
  172. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
  173. data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
  174. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
  175. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
  176. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
  177. data/lib/glib/json_crawler/coverage.rb +20 -20
  178. data/lib/glib/json_crawler/http.rb +120 -120
  179. data/lib/glib/json_crawler/router.rb +98 -98
  180. data/lib/glib/mailer_tester.rb +36 -36
  181. data/lib/glib/test_helpers.rb +52 -52
  182. data/lib/glib/value.rb +7 -7
  183. data/lib/glib/version.rb +5 -5
  184. data/lib/tasks/db.rake +95 -95
  185. metadata +3 -3
@@ -1,14 +1,15 @@
1
- json.title 'Views'
2
-
3
- page = json_ui_page json
4
- render "#{@path_prefix}/nav_menu", json: json, page: page
5
-
6
- page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
7
- scroll.h2 text: 'Icon'
8
- # scroll.icon spec: { name: 'home' }
9
- scroll.icon name: 'home'
10
-
11
- scroll.spacer height: 20
12
- scroll.h2 text: 'Icon with color'
13
- scroll.icon name: 'home', color: '#9370DB'
14
- end
1
+ json.title 'Views'
2
+
3
+ page = json_ui_page json
4
+ render "#{@path_prefix}/nav_menu", json: json, page: page
5
+
6
+ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
7
+ scroll.h2 text: 'Icon'
8
+ # scroll.icon spec: { name: 'home' }
9
+ scroll.icon name: 'home'
10
+
11
+ scroll.spacer height: 20
12
+ scroll.h2 text: 'Icon with color'
13
+ scroll.icon name: 'home', color: '#9370DB'
14
+ scroll.icon name: 'home', color: '#9370DB80'
15
+ end
@@ -1,89 +1,89 @@
1
- json.title 'Views'
2
-
3
- page = json_ui_page json
4
- render "#{@path_prefix}/nav_menu", json: json, page: page
5
-
6
- # small_image_url = 'https://icons-for-free.com/iconfiles/png/128/of+thrones+game+thrones+series+character+avatar+jon+snow-1320568555745862611.png'
7
- small_image_url = 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSGQpSWjtELISLBlmugOZ6wzl1JamYXQvbFeYywpfg3E8b8DrO0Kg&s'
8
-
9
- page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
10
- scroll.h2 text: 'Avatar'
11
- scroll.spacer height: 6
12
- scroll.avatar url: glib_json_image_avatar_url
13
-
14
- # scroll.spacer height: 20
15
- # scroll.h2 text: 'Icon'
16
- # scroll.spacer height: 6
17
- # scroll.icon spec: 'info'
18
-
19
- scroll.spacer height: 20
20
- scroll.h2 text: 'Image with base64 data'
21
- scroll.spacer height: 6
22
- scroll.image height: 100, base64Data: 'data:image/gif;base64,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'
23
-
24
- scroll.spacer height: 20
25
- scroll.h2 text: 'QR Code as base64 image'
26
- scroll.spacer height: 6
27
- if defined? RQRCode
28
- qr_content = { version: 1, message: 'This is a test' }
29
- qr = RQRCode::QRCode.new(qr_content.to_json)
30
- scroll.image base64Data: qr.as_png(size: 300).to_data_url
31
- else
32
- scroll.label text: 'Include "rqrcode" gem to enable this'
33
- end
34
-
35
- scroll.spacer height: 60
36
- scroll.hr
37
-
38
- scroll.spacer height: 60
39
- scroll.h2 text: 'Original size'
40
- scroll.spacer height: 6
41
- scroll.image url: glib_json_image_standard_url
42
-
43
- scroll.spacer height: 20
44
- scroll.h2 text: 'Original size'
45
- scroll.spacer height: 6
46
- scroll.image url: small_image_url
47
-
48
- # Reference: https://docs.imgix.com/apis/url/size/fit#clip
49
- scroll.spacer height: 20
50
- scroll.h2 text: 'fit: clip (default) to full width (scale down)'
51
- scroll.spacer height: 6
52
- scroll.image width: 'matchParent', url: glib_json_image_standard_url
53
-
54
- scroll.spacer height: 20
55
- scroll.h2 text: 'fit: clip (default) to full width (scale up)'
56
- scroll.spacer height: 6
57
- scroll.image width: 'matchParent', url: small_image_url
58
-
59
- scroll.spacer height: 20
60
- scroll.h2 text: 'fit: clip (default) to width (scale down)'
61
- scroll.spacer height: 6
62
- scroll.image width: 320, url: glib_json_image_standard_url
63
-
64
- scroll.spacer height: 20
65
- scroll.h2 text: 'fit: clip (default) to height (scale down)'
66
- scroll.spacer height: 6
67
- scroll.image height: 320, url: glib_json_image_standard_url
68
-
69
- scroll.spacer height: 20
70
- scroll.h2 text: 'fit: clip (default) to width (scale up)'
71
- scroll.spacer height: 6
72
- scroll.image width: 320, url: small_image_url
73
-
74
- scroll.spacer height: 20
75
- scroll.h2 text: 'fit: clip (default) to height (scale up)'
76
- scroll.spacer height: 6
77
- scroll.image height: 320, url: small_image_url
78
-
79
- # Reference: https://docs.imgix.com/apis/url/size/fit#crop
80
- scroll.spacer height: 20
81
- scroll.h2 text: 'fit: crop to width'
82
- scroll.spacer height: 6
83
- scroll.image width: 200, url: glib_json_image_standard_url, fit: :crop
84
-
85
- scroll.spacer height: 20
86
- scroll.h2 text: 'fit: crop to height'
87
- scroll.spacer height: 6
88
- scroll.image height: 200, url: glib_json_image_standard_url, fit: :crop
89
- end
1
+ json.title 'Views'
2
+
3
+ page = json_ui_page json
4
+ render "#{@path_prefix}/nav_menu", json: json, page: page
5
+
6
+ # small_image_url = 'https://icons-for-free.com/iconfiles/png/128/of+thrones+game+thrones+series+character+avatar+jon+snow-1320568555745862611.png'
7
+ small_image_url = 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSGQpSWjtELISLBlmugOZ6wzl1JamYXQvbFeYywpfg3E8b8DrO0Kg&s'
8
+
9
+ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
10
+ scroll.h2 text: 'Avatar'
11
+ scroll.spacer height: 6
12
+ scroll.avatar url: glib_json_image_avatar_url
13
+
14
+ # scroll.spacer height: 20
15
+ # scroll.h2 text: 'Icon'
16
+ # scroll.spacer height: 6
17
+ # scroll.icon spec: 'info'
18
+
19
+ scroll.spacer height: 20
20
+ scroll.h2 text: 'Image with base64 data'
21
+ scroll.spacer height: 6
22
+ scroll.image height: 100, base64Data: 'data:image/gif;base64,R0lGODlhPQBEAPeoAJosM//AwO/AwHVYZ/z595kzAP/s7P+goOXMv8+fhw/v739/f+8PD98fH/8mJl+fn/9ZWb8/PzWlwv///6wWGbImAPgTEMImIN9gUFCEm/gDALULDN8PAD6atYdCTX9gUNKlj8wZAKUsAOzZz+UMAOsJAP/Z2ccMDA8PD/95eX5NWvsJCOVNQPtfX/8zM8+QePLl38MGBr8JCP+zs9myn/8GBqwpAP/GxgwJCPny78lzYLgjAJ8vAP9fX/+MjMUcAN8zM/9wcM8ZGcATEL+QePdZWf/29uc/P9cmJu9MTDImIN+/r7+/vz8/P8VNQGNugV8AAF9fX8swMNgTAFlDOICAgPNSUnNWSMQ5MBAQEJE3QPIGAM9AQMqGcG9vb6MhJsEdGM8vLx8fH98AANIWAMuQeL8fABkTEPPQ0OM5OSYdGFl5jo+Pj/+pqcsTE78wMFNGQLYmID4dGPvd3UBAQJmTkP+8vH9QUK+vr8ZWSHpzcJMmILdwcLOGcHRQUHxwcK9PT9DQ0O/v70w5MLypoG8wKOuwsP/g4P/Q0IcwKEswKMl8aJ9fX2xjdOtGRs/Pz+Dg4GImIP8gIH0sKEAwKKmTiKZ8aB/f39Wsl+LFt8dgUE9PT5x5aHBwcP+AgP+WltdgYMyZfyywz78AAAAAAAD///8AAP9mZv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKgALAAAAAA9AEQAAAj/AFEJHEiwoMGDCBMqXMiwocAbBww4nEhxoYkUpzJGrMixogkfGUNqlNixJEIDB0SqHGmyJSojM1bKZOmyop0gM3Oe2liTISKMOoPy7GnwY9CjIYcSRYm0aVKSLmE6nfq05QycVLPuhDrxBlCtYJUqNAq2bNWEBj6ZXRuyxZyDRtqwnXvkhACDV+euTeJm1Ki7A73qNWtFiF+/gA95Gly2CJLDhwEHMOUAAuOpLYDEgBxZ4GRTlC1fDnpkM+fOqD6DDj1aZpITp0dtGCDhr+fVuCu3zlg49ijaokTZTo27uG7Gjn2P+hI8+PDPERoUB318bWbfAJ5sUNFcuGRTYUqV/3ogfXp1rWlMc6awJjiAAd2fm4ogXjz56aypOoIde4OE5u/F9x199dlXnnGiHZWEYbGpsAEA3QXYnHwEFliKAgswgJ8LPeiUXGwedCAKABACCN+EA1pYIIYaFlcDhytd51sGAJbo3onOpajiihlO92KHGaUXGwWjUBChjSPiWJuOO/LYIm4v1tXfE6J4gCSJEZ7YgRYUNrkji9P55sF/ogxw5ZkSqIDaZBV6aSGYq/lGZplndkckZ98xoICbTcIJGQAZcNmdmUc210hs35nCyJ58fgmIKX5RQGOZowxaZwYA+JaoKQwswGijBV4C6SiTUmpphMspJx9unX4KaimjDv9aaXOEBteBqmuuxgEHoLX6Kqx+yXqqBANsgCtit4FWQAEkrNbpq7HSOmtwag5w57GrmlJBASEU18ADjUYb3ADTinIttsgSB1oJFfA63bduimuqKB1keqwUhoCSK374wbujvOSu4QG6UvxBRydcpKsav++Ca6G8A6Pr1x2kVMyHwsVxUALDq/krnrhPSOzXG1lUTIoffqGR7Goi2MAxbv6O2kEG56I7CSlRsEFKFVyovDJoIRTg7sugNRDGqCJzJgcKE0ywc0ELm6KBCCJo8DIPFeCWNGcyqNFE06ToAfV0HBRgxsvLThHn1oddQMrXj5DyAQgjEHSAJMWZwS3HPxT/QMbabI/iBCliMLEJKX2EEkomBAUCxRi42VDADxyTYDVogV+wSChqmKxEKCDAYFDFj4OmwbY7bDGdBhtrnTQYOigeChUmc1K3QTnAUfEgGFgAWt88hKA6aCRIXhxnQ1yg3BCayK44EWdkUQcBByEQChFXfCB776aQsG0BIlQgQgE8qO26X1h8cEUep8ngRBnOy74E9QgRgEAC8SvOfQkh7FDBDmS43PmGoIiKUUEGkMEC/PJHgxw0xH74yx/3XnaYRJgMB8obxQW6kL9QYEJ0FIFgByfIL7/IQAlvQwEpnAC7DtLNJCKUoO/w45c44GwCXiAFB/OXAATQryUxdN4LfFiwgjCNYg+kYMIEFkCKDs6PKAIJouyGWMS1FSKJOMRB/BoIxYJIUXFUxNwoIkEKPAgCBZSQHQ1A2EWDfDEUVLyADj5AChSIQW6gu10bE/JG2VnCZGfo4R4d0sdQoBAHhPjhIB94v/wRoRKQWGRHgrhGSQJxCS+0pCZbEhAAOw=='
23
+
24
+ scroll.spacer height: 20
25
+ scroll.h2 text: 'QR Code as base64 image'
26
+ scroll.spacer height: 6
27
+ if defined? RQRCode
28
+ qr_content = { version: 1, message: 'This is a test' }
29
+ qr = RQRCode::QRCode.new(qr_content.to_json)
30
+ scroll.image base64Data: qr.as_png(size: 300).to_data_url
31
+ else
32
+ scroll.label text: 'Include "rqrcode" gem to enable this'
33
+ end
34
+
35
+ scroll.spacer height: 60
36
+ scroll.hr
37
+
38
+ scroll.spacer height: 60
39
+ scroll.h2 text: 'Original size'
40
+ scroll.spacer height: 6
41
+ scroll.image url: glib_json_image_standard_url
42
+
43
+ scroll.spacer height: 20
44
+ scroll.h2 text: 'Original size'
45
+ scroll.spacer height: 6
46
+ scroll.image url: small_image_url
47
+
48
+ # Reference: https://docs.imgix.com/apis/url/size/fit#clip
49
+ scroll.spacer height: 20
50
+ scroll.h2 text: 'fit: clip (default) to full width (scale down)'
51
+ scroll.spacer height: 6
52
+ scroll.image width: 'matchParent', url: glib_json_image_standard_url
53
+
54
+ scroll.spacer height: 20
55
+ scroll.h2 text: 'fit: clip (default) to full width (scale up)'
56
+ scroll.spacer height: 6
57
+ scroll.image width: 'matchParent', url: small_image_url
58
+
59
+ scroll.spacer height: 20
60
+ scroll.h2 text: 'fit: clip (default) to width (scale down)'
61
+ scroll.spacer height: 6
62
+ scroll.image width: 320, url: glib_json_image_standard_url
63
+
64
+ scroll.spacer height: 20
65
+ scroll.h2 text: 'fit: clip (default) to height (scale down)'
66
+ scroll.spacer height: 6
67
+ scroll.image height: 320, url: glib_json_image_standard_url
68
+
69
+ scroll.spacer height: 20
70
+ scroll.h2 text: 'fit: clip (default) to width (scale up)'
71
+ scroll.spacer height: 6
72
+ scroll.image width: 320, url: small_image_url
73
+
74
+ scroll.spacer height: 20
75
+ scroll.h2 text: 'fit: clip (default) to height (scale up)'
76
+ scroll.spacer height: 6
77
+ scroll.image height: 320, url: small_image_url
78
+
79
+ # Reference: https://docs.imgix.com/apis/url/size/fit#crop
80
+ scroll.spacer height: 20
81
+ scroll.h2 text: 'fit: crop to width'
82
+ scroll.spacer height: 6
83
+ scroll.image width: 200, url: glib_json_image_standard_url, fit: :crop
84
+
85
+ scroll.spacer height: 20
86
+ scroll.h2 text: 'fit: crop to height'
87
+ scroll.spacer height: 6
88
+ scroll.image height: 200, url: glib_json_image_standard_url, fit: :crop
89
+ end
@@ -1,67 +1,67 @@
1
- json.title 'Views'
2
-
3
- json_ui_page json do |page|
4
- render "#{@path_prefix}/nav_menu", json: json, page: page, top_nav: true
5
-
6
- page.list sections: [
7
- ->(section) do
8
- section.header padding: glib_json_padding_list, childViews: ->(header) do
9
- header.h2 text: 'Components'
10
- end
11
-
12
- section.rows builder: ->(template) do
13
- template.thumbnail title: 'Texts', onClick: ->(action) do
14
- action.windows_open url: json_ui_garage_url(path: 'views/texts')
15
- end
16
- template.thumbnail title: 'Controls', onClick: ->(action) do
17
- action.windows_open url: json_ui_garage_url(path: 'views/controls')
18
- end
19
- template.thumbnail title: 'Images', onClick: ->(action) do
20
- action.windows_open url: json_ui_garage_url(path: 'views/images')
21
- end
22
- template.thumbnail title: 'Charts', onClick: ->(action) do
23
- action.windows_open url: json_ui_garage_url(path: 'views/charts')
24
- end
25
- template.thumbnail title: 'Banners', onClick: ->(action) do
26
- action.windows_open url: json_ui_garage_url(path: 'views/banners')
27
- end
28
- template.thumbnail title: 'Maps', onClick: ->(action) do
29
- action.windows_open url: json_ui_garage_url(path: 'views/maps')
30
- end
31
- template.thumbnail title: 'Misc', onClick: ->(action) do
32
- action.windows_open url: json_ui_garage_url(path: 'views/misc')
33
- end
34
- template.thumbnail title: 'Icons', onClick: ->(action) do
35
- action.windows_open url: json_ui_garage_url(path: 'views/icons')
36
- end
37
- end
38
- end,
39
- ->(section) do
40
- section.header padding: glib_json_padding_list, childViews: ->(header) do
41
- header.h2 text: 'Styling and Formatting'
42
- end
43
-
44
- section.rows builder: ->(template) do
45
- template.thumbnail title: 'Markdowns', onClick: ->(action) do
46
- action.windows_open url: json_ui_garage_url(path: 'views/markdowns')
47
- end
48
- template.thumbnail title: 'Links', onClick: ->(action) do
49
- action.windows_open url: json_ui_garage_url(path: 'views/links')
50
- end
51
- end
52
- end,
53
- ->(section) do
54
- section.header padding: glib_json_padding_list, childViews: ->(header) do
55
- header.h2 text: 'Reference'
56
- end
57
-
58
- section.rows builder: ->(template) do
59
- if !Rails.env.test? # Avoid slowing down tests
60
- template.thumbnail title: 'Icon Names', onClick: ->(action) do
61
- action.windows_open url: json_ui_garage_url(path: 'views/icon_names')
62
- end
63
- end
64
- end
65
- end
66
- ]
67
- end
1
+ json.title 'Views'
2
+
3
+ json_ui_page json do |page|
4
+ render "#{@path_prefix}/nav_menu", json: json, page: page, top_nav: true
5
+
6
+ page.list sections: [
7
+ ->(section) do
8
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
9
+ header.h2 text: 'Components'
10
+ end
11
+
12
+ section.rows builder: ->(template) do
13
+ template.thumbnail title: 'Texts', onClick: ->(action) do
14
+ action.windows_open url: json_ui_garage_url(path: 'views/texts')
15
+ end
16
+ template.thumbnail title: 'Controls', onClick: ->(action) do
17
+ action.windows_open url: json_ui_garage_url(path: 'views/controls')
18
+ end
19
+ template.thumbnail title: 'Images', onClick: ->(action) do
20
+ action.windows_open url: json_ui_garage_url(path: 'views/images')
21
+ end
22
+ template.thumbnail title: 'Charts', onClick: ->(action) do
23
+ action.windows_open url: json_ui_garage_url(path: 'views/charts')
24
+ end
25
+ template.thumbnail title: 'Banners', onClick: ->(action) do
26
+ action.windows_open url: json_ui_garage_url(path: 'views/banners')
27
+ end
28
+ template.thumbnail title: 'Maps', onClick: ->(action) do
29
+ action.windows_open url: json_ui_garage_url(path: 'views/maps')
30
+ end
31
+ template.thumbnail title: 'Misc', onClick: ->(action) do
32
+ action.windows_open url: json_ui_garage_url(path: 'views/misc')
33
+ end
34
+ template.thumbnail title: 'Icons', onClick: ->(action) do
35
+ action.windows_open url: json_ui_garage_url(path: 'views/icons')
36
+ end
37
+ end
38
+ end,
39
+ ->(section) do
40
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
41
+ header.h2 text: 'Styling and Formatting'
42
+ end
43
+
44
+ section.rows builder: ->(template) do
45
+ template.thumbnail title: 'Markdowns', onClick: ->(action) do
46
+ action.windows_open url: json_ui_garage_url(path: 'views/markdowns')
47
+ end
48
+ template.thumbnail title: 'Links', onClick: ->(action) do
49
+ action.windows_open url: json_ui_garage_url(path: 'views/links')
50
+ end
51
+ end
52
+ end,
53
+ ->(section) do
54
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
55
+ header.h2 text: 'Reference'
56
+ end
57
+
58
+ section.rows builder: ->(template) do
59
+ if !Rails.env.test? # Avoid slowing down tests
60
+ template.thumbnail title: 'Icon Names', onClick: ->(action) do
61
+ action.windows_open url: json_ui_garage_url(path: 'views/icon_names')
62
+ end
63
+ end
64
+ end
65
+ end
66
+ ]
67
+ end
@@ -1,70 +1,70 @@
1
- json.title 'Views'
2
-
3
- json_ui_page json do |page|
4
- render "#{@path_prefix}/nav_menu", json: json, page: page
5
-
6
- page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
7
-
8
- scroll.h2 text: 'Standard button'
9
- scroll.spacer height: 6
10
- scroll.button text: 'Button', onClick: ->(action) do
11
- action.windows_open url: json_ui_garage_url(path: 'home/blank')
12
- end
13
-
14
- scroll.spacer height: 20
15
- scroll.h2 text: 'Button with icon'
16
- scroll.spacer height: 6
17
- scroll.button icon: 'info', text: 'Button', onClick: ->(action) do
18
- action.windows_open url: json_ui_garage_url(path: 'home/blank')
19
- end
20
-
21
- scroll.spacer height: 20
22
- scroll.h2 text: 'Button with link style'
23
- scroll.spacer height: 6
24
- scroll.button text: 'Link Button', styleClass: 'link', onClick: ->(action) do
25
- action.windows_open url: json_ui_garage_url(path: 'home/blank')
26
- end
27
-
28
- scroll.spacer height: 20
29
- scroll.h2 text: 'Button with icon style'
30
- scroll.spacer height: 6
31
- scroll.button icon: 'info', styleClass: 'icon', onClick: ->(action) do
32
- action.windows_open url: json_ui_garage_url(path: 'home/blank')
33
- end
34
-
35
- scroll.spacer height: 20
36
- scroll.h2 text: 'Label with onClick URL'
37
- scroll.spacer height: 6
38
- scroll.label text: 'Clickable Link', onClick: ->(action) do
39
- action.windows_open url: json_ui_garage_url(path: 'home/blank')
40
- end
41
-
42
- scroll.spacer height: 20
43
- scroll.h2 text: 'Avatar with onClick'
44
- # TODO: Make sure "open in new tab" works
45
- scroll.spacer height: 10
46
- scroll.avatar url: glib_json_image_avatar_url, styleClass: 'link', onClick: ->(action) do
47
- action.windows_open url: json_ui_garage_url(path: 'home/blank')
48
- end
49
-
50
- scroll.spacer height: 20
51
- scroll.h2 text: 'Image with onClick'
52
- # TODO: Make sure "open in new tab" works
53
- scroll.spacer height: 10
54
- scroll.image width: 100, url: glib_json_image_standard_url, styleClass: 'link', onClick: ->(action) do
55
- action.windows_open url: json_ui_garage_url(path: 'home/blank')
56
- end
57
-
58
- scroll.spacer height: 20
59
- scroll.h2 text: 'Icon with onClick'
60
- scroll.spacer height: 6
61
- scroll.icon spec: 'info', onClick: ->(action) do
62
- action.windows_open url: json_ui_garage_url(path: 'home/blank')
63
- end
64
-
65
- scroll.fab icon: 'add', onClick: ->(action) do
66
- action.windows_open url: json_ui_garage_url(path: 'home/blank')
67
- end
68
-
69
- end
70
- end
1
+ json.title 'Views'
2
+
3
+ json_ui_page json do |page|
4
+ render "#{@path_prefix}/nav_menu", json: json, page: page
5
+
6
+ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
7
+
8
+ scroll.h2 text: 'Standard button'
9
+ scroll.spacer height: 6
10
+ scroll.button text: 'Button', onClick: ->(action) do
11
+ action.windows_open url: json_ui_garage_url(path: 'home/blank')
12
+ end
13
+
14
+ scroll.spacer height: 20
15
+ scroll.h2 text: 'Button with icon'
16
+ scroll.spacer height: 6
17
+ scroll.button icon: 'info', text: 'Button', onClick: ->(action) do
18
+ action.windows_open url: json_ui_garage_url(path: 'home/blank')
19
+ end
20
+
21
+ scroll.spacer height: 20
22
+ scroll.h2 text: 'Button with link style'
23
+ scroll.spacer height: 6
24
+ scroll.button text: 'Link Button', styleClass: 'link', onClick: ->(action) do
25
+ action.windows_open url: json_ui_garage_url(path: 'home/blank')
26
+ end
27
+
28
+ scroll.spacer height: 20
29
+ scroll.h2 text: 'Button with icon style'
30
+ scroll.spacer height: 6
31
+ scroll.button icon: 'info', styleClass: 'icon', onClick: ->(action) do
32
+ action.windows_open url: json_ui_garage_url(path: 'home/blank')
33
+ end
34
+
35
+ scroll.spacer height: 20
36
+ scroll.h2 text: 'Label with onClick URL'
37
+ scroll.spacer height: 6
38
+ scroll.label text: 'Clickable Link', onClick: ->(action) do
39
+ action.windows_open url: json_ui_garage_url(path: 'home/blank')
40
+ end
41
+
42
+ scroll.spacer height: 20
43
+ scroll.h2 text: 'Avatar with onClick'
44
+ # TODO: Make sure "open in new tab" works
45
+ scroll.spacer height: 10
46
+ scroll.avatar url: glib_json_image_avatar_url, styleClass: 'link', onClick: ->(action) do
47
+ action.windows_open url: json_ui_garage_url(path: 'home/blank')
48
+ end
49
+
50
+ scroll.spacer height: 20
51
+ scroll.h2 text: 'Image with onClick'
52
+ # TODO: Make sure "open in new tab" works
53
+ scroll.spacer height: 10
54
+ scroll.image width: 100, url: glib_json_image_standard_url, styleClass: 'link', onClick: ->(action) do
55
+ action.windows_open url: json_ui_garage_url(path: 'home/blank')
56
+ end
57
+
58
+ scroll.spacer height: 20
59
+ scroll.h2 text: 'Icon with onClick'
60
+ scroll.spacer height: 6
61
+ scroll.icon spec: 'info', onClick: ->(action) do
62
+ action.windows_open url: json_ui_garage_url(path: 'home/blank')
63
+ end
64
+
65
+ scroll.fab icon: 'add', onClick: ->(action) do
66
+ action.windows_open url: json_ui_garage_url(path: 'home/blank')
67
+ end
68
+
69
+ end
70
+ end