glib-web 0.5.59 → 0.5.64

Sign up to get free protection for your applications and to get access to all the features.
Files changed (178) hide show
  1. checksums.yaml +4 -4
  2. data/app/channels/glib/channel/is_typing_channel.rb +28 -28
  3. data/app/channels/glib/channel/online_channel.rb +29 -0
  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 +8 -8
  18. data/app/helpers/glib/forms_helper.rb +15 -15
  19. data/app/helpers/glib/json_ui/abstract_builder.rb +294 -294
  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 +31 -31
  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 +47 -47
  36. data/app/helpers/glib/json_ui/table_builders.rb +74 -74
  37. data/app/helpers/glib/json_ui/view_builder.rb +232 -211
  38. data/app/helpers/glib/json_ui/view_builder/banners.rb +25 -25
  39. data/app/helpers/glib/json_ui/view_builder/charts.rb +33 -33
  40. data/app/helpers/glib/json_ui/view_builder/fields.rb +259 -259
  41. data/app/helpers/glib/json_ui/view_builder/panels.rb +251 -251
  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 -18
  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 +22 -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 -32
  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 +107 -107
  76. data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +39 -39
  77. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +102 -102
  78. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
  79. data/app/views/json_ui/garage/forms/selects.json.jbuilder +83 -83
  80. data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +130 -105
  81. data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +35 -35
  82. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
  83. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +26 -26
  84. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
  85. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
  86. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +81 -81
  87. data/app/views/json_ui/garage/home/blank.json.jbuilder +10 -10
  88. data/app/views/json_ui/garage/home/index.json.jbuilder +36 -36
  89. data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
  90. data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +28 -28
  91. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
  92. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
  93. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +94 -94
  94. data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +62 -54
  95. data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
  96. data/app/views/json_ui/garage/lists/index.json.jbuilder +32 -32
  97. data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
  98. data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
  99. data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +113 -97
  100. data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
  101. data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
  102. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
  103. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
  104. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
  105. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
  106. data/app/views/json_ui/garage/pages/index.json.jbuilder +62 -62
  107. data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
  108. data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +13 -13
  109. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
  110. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
  111. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
  112. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +31 -31
  113. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
  114. data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
  115. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +37 -37
  116. data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
  117. data/app/views/json_ui/garage/panels/flow.json.jbuilder +49 -49
  118. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +91 -91
  119. data/app/views/json_ui/garage/panels/index.json.jbuilder +132 -132
  120. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
  121. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
  122. data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
  123. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +55 -55
  124. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
  125. data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
  126. data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
  127. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
  128. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
  129. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
  130. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
  131. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
  132. data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
  133. data/app/views/json_ui/garage/tables/layout.json.jbuilder +40 -40
  134. data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
  135. data/app/views/json_ui/garage/views/banners.json.jbuilder +63 -63
  136. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
  137. data/app/views/json_ui/garage/views/charts.json.jbuilder +115 -115
  138. data/app/views/json_ui/garage/views/icon_names.json.jbuilder +1450 -0
  139. data/app/views/json_ui/garage/views/icons.json.jbuilder +14 -1450
  140. data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
  141. data/app/views/json_ui/garage/views/index.json.jbuilder +64 -54
  142. data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
  143. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
  144. data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
  145. data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
  146. data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
  147. data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
  148. data/app/views/json_ui/garage/views/texts.json.jbuilder +44 -44
  149. data/app/views/layouts/json_ui/renderer.html.erb +35 -35
  150. data/config/routes.rb +7 -7
  151. data/lib/generators/glib/install_generator.rb +24 -24
  152. data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
  153. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
  154. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
  155. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
  156. data/lib/generators/templates/database.yml +107 -107
  157. data/lib/generators/templates/dynamic_text.rb +2 -2
  158. data/lib/glib-web.rb +9 -9
  159. data/lib/glib/crypt/utils.rb +26 -26
  160. data/lib/glib/dynamic_text/config.rb +21 -21
  161. data/lib/glib/engine.rb +7 -7
  162. data/lib/glib/json_crawler.rb +11 -11
  163. data/lib/glib/json_crawler/action_crawler.rb +23 -23
  164. data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
  165. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
  166. data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
  167. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
  168. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
  169. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
  170. data/lib/glib/json_crawler/coverage.rb +20 -20
  171. data/lib/glib/json_crawler/http.rb +120 -120
  172. data/lib/glib/json_crawler/router.rb +98 -98
  173. data/lib/glib/mailer_tester.rb +36 -36
  174. data/lib/glib/test_helpers.rb +52 -52
  175. data/lib/glib/value.rb +7 -7
  176. data/lib/glib/version.rb +5 -5
  177. data/lib/tasks/db.rake +95 -95
  178. metadata +5 -2
@@ -1,115 +1,115 @@
1
-
2
- if params[:data_only].present?
3
- json_ui_page json do |page|
4
- page.data content: ->(data) do
5
- render "#{@path_prefix}/views/chart_data", json: json, builder: data
6
- end
7
- end
8
- else
9
- json.title 'Views'
10
-
11
- json_ui_page json do |page|
12
- render "#{@path_prefix}/nav_menu", json: json, page: page
13
-
14
- page.scroll padding: {top: 20, left: 20, right: 20, bottom: 20}, childViews: ->(scroll) do
15
- scroll.h1 text: 'Line chart'
16
- scroll.charts_line dataSeries: [
17
- -> do
18
- json.title 'Line 1'
19
-
20
- points = {
21
- 'Sat, 10 Nov 2018' => 1,
22
- 'Sun, 11 Nov 2018' => 7,
23
- 'Mon, 12 Nov 2018' => 2,
24
- 'Tue, 13 Nov 2018' => 0,
25
- 'Wed, 14 Nov 2018' => 1,
26
- 'Thu, 15 Nov 2018' => 1,
27
- 'Fri, 16 Nov 2018' => 5,
28
- }
29
- json.points points.map { |k, v| { x: k, y: v } }
30
- end,
31
- -> do
32
- json.title 'Line 2'
33
-
34
- points = {
35
- 'Sat, 10 Nov 2018' => 5,
36
- 'Sun, 11 Nov 2018' => 3,
37
- 'Mon, 12 Nov 2018' => 8,
38
- 'Tue, 13 Nov 2018' => 5,
39
- 'Wed, 14 Nov 2018' => 3,
40
- 'Thu, 15 Nov 2018' => 5,
41
- 'Fri, 16 Nov 2018' => 1,
42
- }
43
- json.points points.map { |k, v| { x: k, y: v } }
44
- end
45
- ]
46
-
47
- scroll.spacer height: 20
48
- scroll.h1 text: 'Line chart using remote data'
49
- render "#{@path_prefix}/views/chart_data", json: json, builder: scroll
50
-
51
- scroll.h2 text: 'Column chart (Clustered)'
52
- scroll.charts_column dataGroups: [
53
- -> do
54
- json.title 'Column 1'
55
-
56
- points = {
57
- '2010' => 10,
58
- '2020' => 16,
59
- }
60
- json.points points
61
- end,
62
- -> do
63
- json.title 'Column 2'
64
-
65
- points = {
66
- '2010' => 24,
67
- '2020' => 22,
68
- }
69
- json.points points
70
- end,
71
- -> do
72
- json.title 'Column 3'
73
-
74
- points = {
75
- '2010' => 20,
76
- '2020' => 23,
77
- }
78
- json.points points
79
- end
80
- ]
81
-
82
- scroll.h2 text: 'Column chart (Stacked)'
83
- scroll.charts_column stacked: true, dataGroups: [
84
- -> do
85
- json.title 'Column 1'
86
-
87
- points = {
88
- '2010' => 10,
89
- '2020' => 16,
90
- }
91
- json.points points
92
- end,
93
- -> do
94
- json.title 'Column 2'
95
-
96
- points = {
97
- '2010' => 24,
98
- '2020' => 22,
99
- }
100
- json.points points
101
- end,
102
- -> do
103
- json.title 'Column 3'
104
-
105
- points = {
106
- '2010' => 20,
107
- '2020' => 23,
108
- }
109
- json.points points
110
- end
111
- ]
112
- end
113
- end
114
-
115
- end
1
+
2
+ if params[:data_only].present?
3
+ json_ui_page json do |page|
4
+ page.data content: ->(data) do
5
+ render "#{@path_prefix}/views/chart_data", json: json, builder: data
6
+ end
7
+ end
8
+ else
9
+ json.title 'Views'
10
+
11
+ json_ui_page json do |page|
12
+ render "#{@path_prefix}/nav_menu", json: json, page: page
13
+
14
+ page.scroll padding: {top: 20, left: 20, right: 20, bottom: 20}, childViews: ->(scroll) do
15
+ scroll.h1 text: 'Line chart'
16
+ scroll.charts_line dataSeries: [
17
+ -> do
18
+ json.title 'Line 1'
19
+
20
+ points = {
21
+ 'Sat, 10 Nov 2018' => 1,
22
+ 'Sun, 11 Nov 2018' => 7,
23
+ 'Mon, 12 Nov 2018' => 2,
24
+ 'Tue, 13 Nov 2018' => 0,
25
+ 'Wed, 14 Nov 2018' => 1,
26
+ 'Thu, 15 Nov 2018' => 1,
27
+ 'Fri, 16 Nov 2018' => 5,
28
+ }
29
+ json.points points.map { |k, v| { x: k, y: v } }
30
+ end,
31
+ -> do
32
+ json.title 'Line 2'
33
+
34
+ points = {
35
+ 'Sat, 10 Nov 2018' => 5,
36
+ 'Sun, 11 Nov 2018' => 3,
37
+ 'Mon, 12 Nov 2018' => 8,
38
+ 'Tue, 13 Nov 2018' => 5,
39
+ 'Wed, 14 Nov 2018' => 3,
40
+ 'Thu, 15 Nov 2018' => 5,
41
+ 'Fri, 16 Nov 2018' => 1,
42
+ }
43
+ json.points points.map { |k, v| { x: k, y: v } }
44
+ end
45
+ ]
46
+
47
+ scroll.spacer height: 20
48
+ scroll.h1 text: 'Line chart using remote data'
49
+ render "#{@path_prefix}/views/chart_data", json: json, builder: scroll
50
+
51
+ scroll.h2 text: 'Column chart (Clustered)'
52
+ scroll.charts_column dataGroups: [
53
+ -> do
54
+ json.title 'Column 1'
55
+
56
+ points = {
57
+ '2010' => 10,
58
+ '2020' => 16,
59
+ }
60
+ json.points points
61
+ end,
62
+ -> do
63
+ json.title 'Column 2'
64
+
65
+ points = {
66
+ '2010' => 24,
67
+ '2020' => 22,
68
+ }
69
+ json.points points
70
+ end,
71
+ -> do
72
+ json.title 'Column 3'
73
+
74
+ points = {
75
+ '2010' => 20,
76
+ '2020' => 23,
77
+ }
78
+ json.points points
79
+ end
80
+ ]
81
+
82
+ scroll.h2 text: 'Column chart (Stacked)'
83
+ scroll.charts_column stacked: true, dataGroups: [
84
+ -> do
85
+ json.title 'Column 1'
86
+
87
+ points = {
88
+ '2010' => 10,
89
+ '2020' => 16,
90
+ }
91
+ json.points points
92
+ end,
93
+ -> do
94
+ json.title 'Column 2'
95
+
96
+ points = {
97
+ '2010' => 24,
98
+ '2020' => 22,
99
+ }
100
+ json.points points
101
+ end,
102
+ -> do
103
+ json.title 'Column 3'
104
+
105
+ points = {
106
+ '2010' => 20,
107
+ '2020' => 23,
108
+ }
109
+ json.points points
110
+ end
111
+ ]
112
+ end
113
+ end
114
+
115
+ end
@@ -0,0 +1,1450 @@
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
+ # From https://material.io/resources/icons
8
+ #
9
+ # To scrape, run this on JS console:
10
+ #
11
+ # function download(content, fileName, contentType) {
12
+ # var a = document.createElement("a");
13
+ # var file = new Blob([JSON.stringify(content)], { type: contentType });
14
+ # a.href = URL.createObjectURL(file);
15
+ # a.download = fileName;
16
+ # a.click();
17
+ # }
18
+ #
19
+ # let sections = [];
20
+ # let containersNode = document.querySelectorAll(".category-container");
21
+ # for (const containerNode of containersNode) {
22
+ # let titleNode = containerNode.querySelector(".category-name");
23
+ # let iconsNode = Array.from(
24
+ # containerNode.querySelectorAll(".icon-image-preview")
25
+ # );
26
+ # let section = {
27
+ # title: titleNode.textContent,
28
+ # icons: iconsNode.map(function(iconNode) {
29
+ # return iconNode.textContent;
30
+ # })
31
+ # };
32
+ # sections.push(section);
33
+ # }
34
+ # download(sections, "json.txt", "text/plain");
35
+ #
36
+ categories = [
37
+ {
38
+ "title": "action",
39
+ "icons": [
40
+ "3d_rotation",
41
+ "accessibility",
42
+ "accessibility_new",
43
+ "accessible",
44
+ "accessible_forward",
45
+ "account_balance",
46
+ "account_balance_wallet",
47
+ "account_box",
48
+ "account_circle",
49
+ "add_shopping_cart",
50
+ "add_task",
51
+ "addchart",
52
+ "admin_panel_settings",
53
+ "alarm",
54
+ "alarm_add",
55
+ "alarm_off",
56
+ "alarm_on",
57
+ "all_inbox",
58
+ "all_out",
59
+ "analytics",
60
+ "anchor",
61
+ "android",
62
+ "announcement",
63
+ "api",
64
+ "app_blocking",
65
+ "arrow_circle_down",
66
+ "arrow_circle_up",
67
+ "arrow_right_alt",
68
+ "article",
69
+ "aspect_ratio",
70
+ "assessment",
71
+ "assignment",
72
+ "assignment_ind",
73
+ "assignment_late",
74
+ "assignment_return",
75
+ "assignment_returned",
76
+ "assignment_turned_in",
77
+ "autorenew",
78
+ "backup",
79
+ "backup_table",
80
+ "batch_prediction",
81
+ "book",
82
+ "book_online",
83
+ "bookmark",
84
+ "bookmark_border",
85
+ "bookmarks",
86
+ "bug_report",
87
+ "build",
88
+ "build_circle",
89
+ "cached",
90
+ "calendar_today",
91
+ "calendar_view_day",
92
+ "camera_enhance",
93
+ "cancel_schedule_send",
94
+ "card_giftcard",
95
+ "card_membership",
96
+ "card_travel",
97
+ "change_history",
98
+ "check_circle",
99
+ "check_circle_outline",
100
+ "chrome_reader_mode",
101
+ "class",
102
+ "close_fullscreen",
103
+ "code",
104
+ "comment_bank",
105
+ "commute",
106
+ "compare_arrows",
107
+ "contact_page",
108
+ "contact_support",
109
+ "contactless",
110
+ "copyright",
111
+ "credit_card",
112
+ "dashboard",
113
+ "date_range",
114
+ "delete",
115
+ "delete_forever",
116
+ "delete_outline",
117
+ "description",
118
+ "disabled_by_default",
119
+ "dns",
120
+ "done",
121
+ "done_all",
122
+ "done_outline",
123
+ "donut_large",
124
+ "donut_small",
125
+ "drag_indicator",
126
+ "dynamic_form",
127
+ "eco",
128
+ "eject",
129
+ "euro_symbol",
130
+ "event",
131
+ "event_seat",
132
+ "exit_to_app",
133
+ "explore",
134
+ "explore_off",
135
+ "extension",
136
+ "face",
137
+ "fact_check",
138
+ "favorite",
139
+ "favorite_border",
140
+ "feedback",
141
+ "filter_alt",
142
+ "find_in_page",
143
+ "find_replace",
144
+ "fingerprint",
145
+ "flaky",
146
+ "flight_land",
147
+ "flight_takeoff",
148
+ "flip_to_back",
149
+ "flip_to_front",
150
+ "g_translate",
151
+ "gavel",
152
+ "get_app",
153
+ "gif",
154
+ "grade",
155
+ "grading",
156
+ "group_work",
157
+ "help",
158
+ "help_center",
159
+ "help_outline",
160
+ "highlight_alt",
161
+ "highlight_off",
162
+ "history",
163
+ "history_toggle_off",
164
+ "home",
165
+ "horizontal_split",
166
+ "hourglass_disabled",
167
+ "hourglass_empty",
168
+ "hourglass_full",
169
+ "http",
170
+ "https",
171
+ "important_devices",
172
+ "info",
173
+ "input",
174
+ "integration_instructions",
175
+ "invert_colors",
176
+ "label",
177
+ "label_important",
178
+ "label_off",
179
+ "language",
180
+ "launch",
181
+ "leaderboard",
182
+ "line_style",
183
+ "line_weight",
184
+ "list",
185
+ "lock",
186
+ "lock_open",
187
+ "login",
188
+ "loyalty",
189
+ "markunread_mailbox",
190
+ "maximize",
191
+ "mediation",
192
+ "minimize",
193
+ "model_training",
194
+ "next_plan",
195
+ "not_accessible",
196
+ "not_started",
197
+ "note_add",
198
+ "offline_bolt",
199
+ "offline_pin",
200
+ "online_prediction",
201
+ "opacity",
202
+ "open_in_browser",
203
+ "open_in_full",
204
+ "open_in_new",
205
+ "open_with",
206
+ "outbond",
207
+ "outlet",
208
+ "pageview",
209
+ "pan_tool",
210
+ "payment",
211
+ "pending",
212
+ "pending_actions",
213
+ "perm_camera_mic",
214
+ "perm_contact_calendar",
215
+ "perm_data_setting",
216
+ "perm_device_information",
217
+ "perm_identity",
218
+ "perm_media",
219
+ "perm_phone_msg",
220
+ "perm_scan_wifi",
221
+ "pets",
222
+ "picture_in_picture",
223
+ "picture_in_picture_alt",
224
+ "plagiarism",
225
+ "play_for_work",
226
+ "polymer",
227
+ "power_settings_new",
228
+ "pregnant_woman",
229
+ "preview",
230
+ "print",
231
+ "privacy_tip",
232
+ "published_with_changes",
233
+ "query_builder",
234
+ "question_answer",
235
+ "quickreply",
236
+ "receipt",
237
+ "record_voice_over",
238
+ "redeem",
239
+ "remove_shopping_cart",
240
+ "reorder",
241
+ "report_problem",
242
+ "request_page",
243
+ "restore",
244
+ "restore_from_trash",
245
+ "restore_page",
246
+ "room",
247
+ "rounded_corner",
248
+ "rowing",
249
+ "rule",
250
+ "schedule",
251
+ "search",
252
+ "search_off",
253
+ "settings",
254
+ "settings_applications",
255
+ "settings_backup_restore",
256
+ "settings_bluetooth",
257
+ "settings_brightness",
258
+ "settings_cell",
259
+ "settings_ethernet",
260
+ "settings_input_antenna",
261
+ "settings_input_component",
262
+ "settings_input_composite",
263
+ "settings_input_hdmi",
264
+ "settings_input_svideo",
265
+ "settings_overscan",
266
+ "settings_phone",
267
+ "settings_power",
268
+ "settings_remote",
269
+ "settings_voice",
270
+ "shop",
271
+ "shop_two",
272
+ "shopping_bag",
273
+ "shopping_basket",
274
+ "shopping_cart",
275
+ "smart_button",
276
+ "source",
277
+ "speaker_notes",
278
+ "speaker_notes_off",
279
+ "spellcheck",
280
+ "star_rate",
281
+ "stars",
282
+ "sticky_note_2",
283
+ "store",
284
+ "subject",
285
+ "subtitles_off",
286
+ "supervised_user_circle",
287
+ "supervisor_account",
288
+ "support",
289
+ "swap_horiz",
290
+ "swap_horizontal_circle",
291
+ "swap_vert",
292
+ "swap_vertical_circle",
293
+ "sync_alt",
294
+ "system_update_alt",
295
+ "tab",
296
+ "tab_unselected",
297
+ "table_view",
298
+ "text_rotate_up",
299
+ "text_rotate_vertical",
300
+ "text_rotation_angledown",
301
+ "text_rotation_angleup",
302
+ "text_rotation_down",
303
+ "text_rotation_none",
304
+ "theaters",
305
+ "thumb_down",
306
+ "thumb_up",
307
+ "thumbs_up_down",
308
+ "timeline",
309
+ "toc",
310
+ "today",
311
+ "toll",
312
+ "touch_app",
313
+ "tour",
314
+ "track_changes",
315
+ "translate",
316
+ "trending_down",
317
+ "trending_flat",
318
+ "trending_up",
319
+ "turned_in",
320
+ "turned_in_not",
321
+ "unpublished",
322
+ "update",
323
+ "upgrade",
324
+ "verified",
325
+ "verified_user",
326
+ "vertical_split",
327
+ "view_agenda",
328
+ "view_array",
329
+ "view_carousel",
330
+ "view_column",
331
+ "view_day",
332
+ "view_headline",
333
+ "view_list",
334
+ "view_module",
335
+ "view_quilt",
336
+ "view_sidebar",
337
+ "view_stream",
338
+ "view_week",
339
+ "visibility",
340
+ "visibility_off",
341
+ "voice_over_off",
342
+ "watch_later",
343
+ "wifi_protected_setup",
344
+ "work",
345
+ "work_off",
346
+ "work_outline",
347
+ "wysiwyg",
348
+ "youtube_searched_for",
349
+ "zoom_in",
350
+ "zoom_out"
351
+ ]
352
+ },
353
+ {
354
+ "title": "alert",
355
+ "icons": [
356
+ "add_alert",
357
+ "auto_delete",
358
+ "error",
359
+ "error_outline",
360
+ "notification_important",
361
+ "warning"
362
+ ]
363
+ },
364
+ {
365
+ "title": "av",
366
+ "icons": [
367
+ "4k",
368
+ "5g",
369
+ "add_to_queue",
370
+ "airplay",
371
+ "album",
372
+ "art_track",
373
+ "av_timer",
374
+ "branding_watermark",
375
+ "call_to_action",
376
+ "closed_caption",
377
+ "closed_caption_disabled",
378
+ "control_camera",
379
+ "equalizer",
380
+ "explicit",
381
+ "fast_forward",
382
+ "fast_rewind",
383
+ "featured_play_list",
384
+ "featured_video",
385
+ "fiber_dvr",
386
+ "fiber_manual_record",
387
+ "fiber_new",
388
+ "fiber_pin",
389
+ "fiber_smart_record",
390
+ "forward_10",
391
+ "forward_30",
392
+ "forward_5",
393
+ "games",
394
+ "hd",
395
+ "hearing",
396
+ "hearing_disabled",
397
+ "high_quality",
398
+ "library_add",
399
+ "library_add_check",
400
+ "library_books",
401
+ "library_music",
402
+ "loop",
403
+ "mic",
404
+ "mic_none",
405
+ "mic_off",
406
+ "missed_video_call",
407
+ "movie",
408
+ "music_video",
409
+ "new_releases",
410
+ "not_interested",
411
+ "note",
412
+ "pause",
413
+ "pause_circle_filled",
414
+ "pause_circle_outline",
415
+ "play_arrow",
416
+ "play_circle_filled",
417
+ "play_circle_outline",
418
+ "playlist_add",
419
+ "playlist_add_check",
420
+ "playlist_play",
421
+ "queue",
422
+ "queue_music",
423
+ "queue_play_next",
424
+ "radio",
425
+ "recent_actors",
426
+ "remove_from_queue",
427
+ "repeat",
428
+ "repeat_one",
429
+ "replay",
430
+ "replay_10",
431
+ "replay_30",
432
+ "replay_5",
433
+ "shuffle",
434
+ "skip_next",
435
+ "skip_previous",
436
+ "slow_motion_video",
437
+ "snooze",
438
+ "sort_by_alpha",
439
+ "speed",
440
+ "stop",
441
+ "stop_circle",
442
+ "subscriptions",
443
+ "subtitles",
444
+ "surround_sound",
445
+ "video_call",
446
+ "video_label",
447
+ "video_library",
448
+ "video_settings",
449
+ "videocam",
450
+ "videocam_off",
451
+ "volume_down",
452
+ "volume_mute",
453
+ "volume_off",
454
+ "volume_up",
455
+ "web",
456
+ "web_asset"
457
+ ]
458
+ },
459
+ {
460
+ "title": "communication",
461
+ "icons": [
462
+ "add_ic_call",
463
+ "alternate_email",
464
+ "business",
465
+ "call",
466
+ "call_end",
467
+ "call_made",
468
+ "call_merge",
469
+ "call_missed",
470
+ "call_missed_outgoing",
471
+ "call_received",
472
+ "call_split",
473
+ "cancel_presentation",
474
+ "chat",
475
+ "chat_bubble",
476
+ "chat_bubble_outline",
477
+ "clear_all",
478
+ "comment",
479
+ "contact_mail",
480
+ "contact_phone",
481
+ "contacts",
482
+ "desktop_access_disabled",
483
+ "dialer_sip",
484
+ "dialpad",
485
+ "domain_disabled",
486
+ "domain_verification",
487
+ "duo",
488
+ "email",
489
+ "forum",
490
+ "forward_to_inbox",
491
+ "hourglass_bottom",
492
+ "hourglass_top",
493
+ "import_contacts",
494
+ "import_export",
495
+ "invert_colors_off",
496
+ "list_alt",
497
+ "live_help",
498
+ "location_off",
499
+ "location_on",
500
+ "mail_outline",
501
+ "mark_chat_read",
502
+ "mark_chat_unread",
503
+ "mark_email_read",
504
+ "mark_email_unread",
505
+ "message",
506
+ "mobile_screen_share",
507
+ "more_time",
508
+ "nat",
509
+ "no_sim",
510
+ "pause_presentation",
511
+ "person_add_disabled",
512
+ "person_search",
513
+ "phone",
514
+ "phone_disabled",
515
+ "phone_enabled",
516
+ "phonelink_erase",
517
+ "phonelink_lock",
518
+ "phonelink_ring",
519
+ "phonelink_setup",
520
+ "portable_wifi_off",
521
+ "present_to_all",
522
+ "print_disabled",
523
+ "qr_code",
524
+ "qr_code_scanner",
525
+ "read_more",
526
+ "ring_volume",
527
+ "rss_feed",
528
+ "screen_share",
529
+ "sentiment_satisfied_alt",
530
+ "speaker_phone",
531
+ "stay_current_landscape",
532
+ "stay_current_portrait",
533
+ "stay_primary_landscape",
534
+ "stay_primary_portrait",
535
+ "stop_screen_share",
536
+ "swap_calls",
537
+ "textsms",
538
+ "unsubscribe",
539
+ "voicemail",
540
+ "vpn_key",
541
+ "wifi_calling"
542
+ ]
543
+ },
544
+ {
545
+ "title": "content",
546
+ "icons": [
547
+ "add",
548
+ "add_box",
549
+ "add_circle",
550
+ "add_circle_outline",
551
+ "amp_stories",
552
+ "archive",
553
+ "backspace",
554
+ "ballot",
555
+ "biotech",
556
+ "block",
557
+ "calculate",
558
+ "clear",
559
+ "content_copy",
560
+ "content_cut",
561
+ "content_paste",
562
+ "create",
563
+ "delete_sweep",
564
+ "drafts",
565
+ "dynamic_feed",
566
+ "file_copy",
567
+ "filter_list",
568
+ "flag",
569
+ "font_download",
570
+ "forward",
571
+ "gesture",
572
+ "how_to_reg",
573
+ "how_to_vote",
574
+ "inbox",
575
+ "insights",
576
+ "link",
577
+ "link_off",
578
+ "low_priority",
579
+ "mail",
580
+ "markunread",
581
+ "move_to_inbox",
582
+ "next_week",
583
+ "outlined_flag",
584
+ "policy",
585
+ "push_pin",
586
+ "redo",
587
+ "remove",
588
+ "remove_circle",
589
+ "remove_circle_outline",
590
+ "reply",
591
+ "reply_all",
592
+ "report",
593
+ "report_off",
594
+ "save",
595
+ "save_alt",
596
+ "select_all",
597
+ "send",
598
+ "sort",
599
+ "square_foot",
600
+ "text_format",
601
+ "unarchive",
602
+ "undo",
603
+ "waves",
604
+ "weekend",
605
+ "where_to_vote"
606
+ ]
607
+ },
608
+ {
609
+ "title": "device",
610
+ "icons": [
611
+ "access_alarm",
612
+ "access_alarms",
613
+ "access_time",
614
+ "ad_units",
615
+ "add_alarm",
616
+ "add_to_home_screen",
617
+ "airplanemode_active",
618
+ "airplanemode_inactive",
619
+ "battery_alert",
620
+ "battery_charging_full",
621
+ "battery_full",
622
+ "battery_std",
623
+ "battery_unknown",
624
+ "bluetooth",
625
+ "bluetooth_connected",
626
+ "bluetooth_disabled",
627
+ "bluetooth_searching",
628
+ "brightness_auto",
629
+ "brightness_high",
630
+ "brightness_low",
631
+ "brightness_medium",
632
+ "data_usage",
633
+ "developer_mode",
634
+ "devices",
635
+ "dvr",
636
+ "gps_fixed",
637
+ "gps_not_fixed",
638
+ "gps_off",
639
+ "graphic_eq",
640
+ "location_disabled",
641
+ "location_searching",
642
+ "mobile_friendly",
643
+ "mobile_off",
644
+ "nfc",
645
+ "screen_lock_landscape",
646
+ "screen_lock_portrait",
647
+ "screen_lock_rotation",
648
+ "screen_rotation",
649
+ "sd_storage",
650
+ "settings_system_daydream",
651
+ "signal_cellular_4_bar",
652
+ "signal_cellular_alt",
653
+ "signal_cellular_connected_no_internet_4_bar",
654
+ "signal_cellular_no_sim",
655
+ "signal_cellular_null",
656
+ "signal_cellular_off",
657
+ "signal_wifi_4_bar",
658
+ "signal_wifi_4_bar_lock",
659
+ "signal_wifi_off",
660
+ "storage",
661
+ "usb",
662
+ "wallpaper",
663
+ "widgets",
664
+ "wifi_lock",
665
+ "wifi_tethering"
666
+ ]
667
+ },
668
+ {
669
+ "title": "editor",
670
+ "icons": [
671
+ "add_comment",
672
+ "attach_file",
673
+ "attach_money",
674
+ "bar_chart",
675
+ "border_all",
676
+ "border_bottom",
677
+ "border_clear",
678
+ "border_horizontal",
679
+ "border_inner",
680
+ "border_left",
681
+ "border_outer",
682
+ "border_right",
683
+ "border_style",
684
+ "border_top",
685
+ "border_vertical",
686
+ "bubble_chart",
687
+ "drag_handle",
688
+ "format_align_center",
689
+ "format_align_justify",
690
+ "format_align_left",
691
+ "format_align_right",
692
+ "format_bold",
693
+ "format_clear",
694
+ "format_color_reset",
695
+ "format_indent_decrease",
696
+ "format_indent_increase",
697
+ "format_italic",
698
+ "format_line_spacing",
699
+ "format_list_bulleted",
700
+ "format_list_numbered",
701
+ "format_list_numbered_rtl",
702
+ "format_paint",
703
+ "format_quote",
704
+ "format_shapes",
705
+ "format_size",
706
+ "format_strikethrough",
707
+ "format_textdirection_l_to_r",
708
+ "format_textdirection_r_to_l",
709
+ "format_underlined",
710
+ "functions",
711
+ "height",
712
+ "highlight",
713
+ "horizontal_rule",
714
+ "insert_chart",
715
+ "insert_chart_outlined",
716
+ "insert_comment",
717
+ "insert_drive_file",
718
+ "insert_emoticon",
719
+ "insert_invitation",
720
+ "insert_link",
721
+ "insert_photo",
722
+ "linear_scale",
723
+ "merge_type",
724
+ "mode_comment",
725
+ "monetization_on",
726
+ "money_off",
727
+ "multiline_chart",
728
+ "notes",
729
+ "pie_chart",
730
+ "post_add",
731
+ "publish",
732
+ "scatter_plot",
733
+ "score",
734
+ "short_text",
735
+ "show_chart",
736
+ "space_bar",
737
+ "stacked_line_chart",
738
+ "strikethrough_s",
739
+ "subscript",
740
+ "superscript",
741
+ "table_chart",
742
+ "table_rows",
743
+ "text_fields",
744
+ "title",
745
+ "vertical_align_bottom",
746
+ "vertical_align_center",
747
+ "vertical_align_top",
748
+ "wrap_text"
749
+ ]
750
+ },
751
+ {
752
+ "title": "file",
753
+ "icons": [
754
+ "attach_email",
755
+ "attachment",
756
+ "cloud",
757
+ "cloud_circle",
758
+ "cloud_done",
759
+ "cloud_download",
760
+ "cloud_off",
761
+ "cloud_queue",
762
+ "cloud_upload",
763
+ "create_new_folder",
764
+ "folder",
765
+ "folder_open",
766
+ "folder_shared",
767
+ "request_quote",
768
+ "rule_folder",
769
+ "snippet_folder",
770
+ "text_snippet",
771
+ "topic"
772
+ ]
773
+ },
774
+ {
775
+ "title": "hardware",
776
+ "icons": [
777
+ "browser_not_supported",
778
+ "cast",
779
+ "cast_connected",
780
+ "cast_for_education",
781
+ "computer",
782
+ "desktop_mac",
783
+ "desktop_windows",
784
+ "developer_board",
785
+ "device_hub",
786
+ "device_unknown",
787
+ "devices_other",
788
+ "dock",
789
+ "gamepad",
790
+ "headset",
791
+ "headset_mic",
792
+ "keyboard",
793
+ "keyboard_arrow_down",
794
+ "keyboard_arrow_left",
795
+ "keyboard_arrow_right",
796
+ "keyboard_arrow_up",
797
+ "keyboard_backspace",
798
+ "keyboard_capslock",
799
+ "keyboard_hide",
800
+ "keyboard_return",
801
+ "keyboard_tab",
802
+ "keyboard_voice",
803
+ "laptop",
804
+ "laptop_chromebook",
805
+ "laptop_mac",
806
+ "laptop_windows",
807
+ "memory",
808
+ "mouse",
809
+ "phone_android",
810
+ "phone_iphone",
811
+ "phonelink",
812
+ "phonelink_off",
813
+ "point_of_sale",
814
+ "power_input",
815
+ "router",
816
+ "scanner",
817
+ "security",
818
+ "sim_card",
819
+ "smartphone",
820
+ "speaker",
821
+ "speaker_group",
822
+ "tablet",
823
+ "tablet_android",
824
+ "tablet_mac",
825
+ "toys",
826
+ "tv",
827
+ "videogame_asset",
828
+ "watch"
829
+ ]
830
+ },
831
+ {
832
+ "title": "home",
833
+ "icons": [
834
+ "sensor_door",
835
+ "sensor_window"
836
+ ]
837
+ },
838
+ {
839
+ "title": "image",
840
+ "icons": [
841
+ "add_a_photo",
842
+ "add_photo_alternate",
843
+ "add_to_photos",
844
+ "adjust",
845
+ "assistant",
846
+ "assistant_photo",
847
+ "audiotrack",
848
+ "bedtime",
849
+ "blur_circular",
850
+ "blur_linear",
851
+ "blur_off",
852
+ "blur_on",
853
+ "brightness_1",
854
+ "brightness_2",
855
+ "brightness_3",
856
+ "brightness_4",
857
+ "brightness_5",
858
+ "brightness_6",
859
+ "brightness_7",
860
+ "broken_image",
861
+ "brush",
862
+ "burst_mode",
863
+ "camera",
864
+ "camera_alt",
865
+ "camera_front",
866
+ "camera_rear",
867
+ "camera_roll",
868
+ "center_focus_strong",
869
+ "center_focus_weak",
870
+ "collections",
871
+ "collections_bookmark",
872
+ "color_lens",
873
+ "colorize",
874
+ "compare",
875
+ "control_point",
876
+ "control_point_duplicate",
877
+ "crop",
878
+ "crop_16_9",
879
+ "crop_3_2",
880
+ "crop_5_4",
881
+ "crop_7_5",
882
+ "crop_din",
883
+ "crop_free",
884
+ "crop_landscape",
885
+ "crop_original",
886
+ "crop_portrait",
887
+ "crop_rotate",
888
+ "crop_square",
889
+ "dehaze",
890
+ "details",
891
+ "edit",
892
+ "euro",
893
+ "exposure",
894
+ "exposure_neg_1",
895
+ "exposure_neg_2",
896
+ "exposure_plus_1",
897
+ "exposure_plus_2",
898
+ "exposure_zero",
899
+ "filter",
900
+ "filter_1",
901
+ "filter_2",
902
+ "filter_3",
903
+ "filter_4",
904
+ "filter_5",
905
+ "filter_6",
906
+ "filter_7",
907
+ "filter_8",
908
+ "filter_9",
909
+ "filter_9_plus",
910
+ "filter_b_and_w",
911
+ "filter_center_focus",
912
+ "filter_drama",
913
+ "filter_frames",
914
+ "filter_hdr",
915
+ "filter_none",
916
+ "filter_tilt_shift",
917
+ "filter_vintage",
918
+ "flare",
919
+ "flash_auto",
920
+ "flash_off",
921
+ "flash_on",
922
+ "flip",
923
+ "flip_camera_android",
924
+ "flip_camera_ios",
925
+ "gradient",
926
+ "grain",
927
+ "grid_off",
928
+ "grid_on",
929
+ "hdr_off",
930
+ "hdr_on",
931
+ "hdr_strong",
932
+ "hdr_weak",
933
+ "healing",
934
+ "image",
935
+ "image_aspect_ratio",
936
+ "image_not_supported",
937
+ "image_search",
938
+ "iso",
939
+ "landscape",
940
+ "leak_add",
941
+ "leak_remove",
942
+ "lens",
943
+ "linked_camera",
944
+ "looks",
945
+ "looks_3",
946
+ "looks_4",
947
+ "looks_5",
948
+ "looks_6",
949
+ "looks_one",
950
+ "looks_two",
951
+ "loupe",
952
+ "monochrome_photos",
953
+ "motion_photos_on",
954
+ "motion_photos_pause",
955
+ "motion_photos_paused",
956
+ "movie_creation",
957
+ "movie_filter",
958
+ "music_note",
959
+ "music_off",
960
+ "nature",
961
+ "nature_people",
962
+ "navigate_before",
963
+ "navigate_next",
964
+ "palette",
965
+ "panorama",
966
+ "panorama_fish_eye",
967
+ "panorama_horizontal",
968
+ "panorama_vertical",
969
+ "panorama_wide_angle",
970
+ "photo",
971
+ "photo_album",
972
+ "photo_camera",
973
+ "photo_filter",
974
+ "photo_library",
975
+ "photo_size_select_actual",
976
+ "photo_size_select_large",
977
+ "photo_size_select_small",
978
+ "picture_as_pdf",
979
+ "portrait",
980
+ "receipt_long",
981
+ "remove_red_eye",
982
+ "rotate_90_degrees_ccw",
983
+ "rotate_left",
984
+ "rotate_right",
985
+ "shutter_speed",
986
+ "slideshow",
987
+ "straighten",
988
+ "style",
989
+ "switch_camera",
990
+ "switch_video",
991
+ "tag_faces",
992
+ "texture",
993
+ "timelapse",
994
+ "timer",
995
+ "timer_10",
996
+ "timer_3",
997
+ "timer_off",
998
+ "tonality",
999
+ "transform",
1000
+ "tune",
1001
+ "view_comfy",
1002
+ "view_compact",
1003
+ "vignette",
1004
+ "wb_auto",
1005
+ "wb_cloudy",
1006
+ "wb_incandescent",
1007
+ "wb_iridescent",
1008
+ "wb_sunny"
1009
+ ]
1010
+ },
1011
+ {
1012
+ "title": "maps",
1013
+ "icons": [
1014
+ "360",
1015
+ "add_business",
1016
+ "add_location",
1017
+ "add_location_alt",
1018
+ "add_road",
1019
+ "agriculture",
1020
+ "alt_route",
1021
+ "atm",
1022
+ "beenhere",
1023
+ "bike_scooter",
1024
+ "category",
1025
+ "cleaning_services",
1026
+ "compass_calibration",
1027
+ "departure_board",
1028
+ "design_services",
1029
+ "directions",
1030
+ "directions_bike",
1031
+ "directions_boat",
1032
+ "directions_bus",
1033
+ "directions_car",
1034
+ "directions_railway",
1035
+ "directions_run",
1036
+ "directions_subway",
1037
+ "directions_transit",
1038
+ "directions_walk",
1039
+ "edit_attributes",
1040
+ "edit_location",
1041
+ "edit_road",
1042
+ "electric_bike",
1043
+ "electric_car",
1044
+ "electric_moped",
1045
+ "electric_scooter",
1046
+ "electrical_services",
1047
+ "ev_station",
1048
+ "fastfood",
1049
+ "flight",
1050
+ "handyman",
1051
+ "home_repair_service",
1052
+ "hotel",
1053
+ "hvac",
1054
+ "layers",
1055
+ "layers_clear",
1056
+ "local_activity",
1057
+ "local_airport",
1058
+ "local_atm",
1059
+ "local_bar",
1060
+ "local_cafe",
1061
+ "local_car_wash",
1062
+ "local_convenience_store",
1063
+ "local_dining",
1064
+ "local_drink",
1065
+ "local_fire_department",
1066
+ "local_florist",
1067
+ "local_gas_station",
1068
+ "local_grocery_store",
1069
+ "local_hospital",
1070
+ "local_hotel",
1071
+ "local_laundry_service",
1072
+ "local_library",
1073
+ "local_mall",
1074
+ "local_movies",
1075
+ "local_offer",
1076
+ "local_parking",
1077
+ "local_pharmacy",
1078
+ "local_phone",
1079
+ "local_pizza",
1080
+ "local_play",
1081
+ "local_police",
1082
+ "local_post_office",
1083
+ "local_printshop",
1084
+ "local_see",
1085
+ "local_shipping",
1086
+ "local_taxi",
1087
+ "map",
1088
+ "maps_ugc",
1089
+ "medical_services",
1090
+ "menu_book",
1091
+ "miscellaneous_services",
1092
+ "money",
1093
+ "moped",
1094
+ "multiple_stop",
1095
+ "museum",
1096
+ "my_location",
1097
+ "navigation",
1098
+ "near_me",
1099
+ "near_me_disabled",
1100
+ "no_meals",
1101
+ "no_transfer",
1102
+ "not_listed_location",
1103
+ "pedal_bike",
1104
+ "person_pin",
1105
+ "person_pin_circle",
1106
+ "pest_control",
1107
+ "pest_control_rodent",
1108
+ "pin_drop",
1109
+ "place",
1110
+ "plumbing",
1111
+ "rate_review",
1112
+ "restaurant",
1113
+ "restaurant_menu",
1114
+ "run_circle",
1115
+ "satellite",
1116
+ "set_meal",
1117
+ "store_mall_directory",
1118
+ "streetview",
1119
+ "subway",
1120
+ "terrain",
1121
+ "traffic",
1122
+ "train",
1123
+ "tram",
1124
+ "transfer_within_a_station",
1125
+ "transit_enterexit",
1126
+ "trip_origin",
1127
+ "two_wheeler",
1128
+ "wine_bar",
1129
+ "wrong_location",
1130
+ "zoom_out_map"
1131
+ ]
1132
+ },
1133
+ {
1134
+ "title": "navigation",
1135
+ "icons": [
1136
+ "app_settings_alt",
1137
+ "apps",
1138
+ "arrow_back",
1139
+ "arrow_back_ios",
1140
+ "arrow_downward",
1141
+ "arrow_drop_down",
1142
+ "arrow_drop_down_circle",
1143
+ "arrow_drop_up",
1144
+ "arrow_forward",
1145
+ "arrow_forward_ios",
1146
+ "arrow_left",
1147
+ "arrow_right",
1148
+ "arrow_upward",
1149
+ "campaign",
1150
+ "cancel",
1151
+ "check",
1152
+ "chevron_left",
1153
+ "chevron_right",
1154
+ "close",
1155
+ "double_arrow",
1156
+ "east",
1157
+ "expand_less",
1158
+ "expand_more",
1159
+ "first_page",
1160
+ "fullscreen",
1161
+ "fullscreen_exit",
1162
+ "home_work",
1163
+ "last_page",
1164
+ "legend_toggle",
1165
+ "menu",
1166
+ "menu_open",
1167
+ "more_horiz",
1168
+ "more_vert",
1169
+ "north",
1170
+ "north_east",
1171
+ "north_west",
1172
+ "payments",
1173
+ "refresh",
1174
+ "south",
1175
+ "south_east",
1176
+ "south_west",
1177
+ "subdirectory_arrow_left",
1178
+ "subdirectory_arrow_right",
1179
+ "switch_left",
1180
+ "switch_right",
1181
+ "unfold_less",
1182
+ "unfold_more",
1183
+ "west"
1184
+ ]
1185
+ },
1186
+ {
1187
+ "title": "notification",
1188
+ "icons": [
1189
+ "account_tree",
1190
+ "adb",
1191
+ "airline_seat_flat",
1192
+ "airline_seat_flat_angled",
1193
+ "airline_seat_individual_suite",
1194
+ "airline_seat_legroom_extra",
1195
+ "airline_seat_legroom_normal",
1196
+ "airline_seat_legroom_reduced",
1197
+ "airline_seat_recline_extra",
1198
+ "airline_seat_recline_normal",
1199
+ "bluetooth_audio",
1200
+ "confirmation_number",
1201
+ "directions_off",
1202
+ "disc_full",
1203
+ "drive_eta",
1204
+ "enhanced_encryption",
1205
+ "event_available",
1206
+ "event_busy",
1207
+ "event_note",
1208
+ "folder_special",
1209
+ "live_tv",
1210
+ "mms",
1211
+ "more",
1212
+ "network_check",
1213
+ "network_locked",
1214
+ "no_encryption",
1215
+ "ondemand_video",
1216
+ "personal_video",
1217
+ "phone_bluetooth_speaker",
1218
+ "phone_callback",
1219
+ "phone_forwarded",
1220
+ "phone_in_talk",
1221
+ "phone_locked",
1222
+ "phone_missed",
1223
+ "phone_paused",
1224
+ "power",
1225
+ "power_off",
1226
+ "priority_high",
1227
+ "sd_card",
1228
+ "sms",
1229
+ "sms_failed",
1230
+ "support_agent",
1231
+ "sync",
1232
+ "sync_disabled",
1233
+ "sync_problem",
1234
+ "system_update",
1235
+ "tap_and_play",
1236
+ "time_to_leave",
1237
+ "tv_off",
1238
+ "vibration",
1239
+ "voice_chat",
1240
+ "vpn_lock",
1241
+ "wc",
1242
+ "wifi",
1243
+ "wifi_off"
1244
+ ]
1245
+ },
1246
+ {
1247
+ "title": "places",
1248
+ "icons": [
1249
+ "ac_unit",
1250
+ "airport_shuttle",
1251
+ "all_inclusive",
1252
+ "apartment",
1253
+ "baby_changing_station",
1254
+ "backpack",
1255
+ "bathtub",
1256
+ "beach_access",
1257
+ "bento",
1258
+ "business_center",
1259
+ "carpenter",
1260
+ "casino",
1261
+ "charging_station",
1262
+ "checkroom",
1263
+ "child_care",
1264
+ "child_friendly",
1265
+ "corporate_fare",
1266
+ "countertops",
1267
+ "do_not_step",
1268
+ "do_not_touch",
1269
+ "dry",
1270
+ "elevator",
1271
+ "escalator",
1272
+ "escalator_warning",
1273
+ "family_restroom",
1274
+ "fence",
1275
+ "fire_extinguisher",
1276
+ "fitness_center",
1277
+ "food_bank",
1278
+ "foundation",
1279
+ "free_breakfast",
1280
+ "golf_course",
1281
+ "grass",
1282
+ "hot_tub",
1283
+ "house",
1284
+ "house_siding",
1285
+ "kitchen",
1286
+ "meeting_room",
1287
+ "microwave",
1288
+ "night_shelter",
1289
+ "no_backpack",
1290
+ "no_cell",
1291
+ "no_drinks",
1292
+ "no_flash",
1293
+ "no_food",
1294
+ "no_meeting_room",
1295
+ "no_photography",
1296
+ "no_stroller",
1297
+ "pool",
1298
+ "rice_bowl",
1299
+ "roofing",
1300
+ "room_preferences",
1301
+ "room_service",
1302
+ "rv_hookup",
1303
+ "smoke_free",
1304
+ "smoking_rooms",
1305
+ "soap",
1306
+ "spa",
1307
+ "sports_bar",
1308
+ "stairs",
1309
+ "storefront",
1310
+ "stroller",
1311
+ "tapas",
1312
+ "tty",
1313
+ "umbrella",
1314
+ "wash",
1315
+ "water_damage",
1316
+ "wheelchair_pickup"
1317
+ ]
1318
+ },
1319
+ {
1320
+ "title": "social",
1321
+ "icons": [
1322
+ "6_ft_apart",
1323
+ "architecture",
1324
+ "cake",
1325
+ "clean_hands",
1326
+ "connect_without_contact",
1327
+ "construction",
1328
+ "coronavirus",
1329
+ "deck",
1330
+ "domain",
1331
+ "elderly",
1332
+ "emoji_emotions",
1333
+ "emoji_events",
1334
+ "emoji_flags",
1335
+ "emoji_food_beverage",
1336
+ "emoji_nature",
1337
+ "emoji_objects",
1338
+ "emoji_people",
1339
+ "emoji_symbols",
1340
+ "emoji_transportation",
1341
+ "engineering",
1342
+ "facebook",
1343
+ "fireplace",
1344
+ "follow_the_signs",
1345
+ "group",
1346
+ "group_add",
1347
+ "groups",
1348
+ "history_edu",
1349
+ "king_bed",
1350
+ "location_city",
1351
+ "luggage",
1352
+ "masks",
1353
+ "military_tech",
1354
+ "mood",
1355
+ "mood_bad",
1356
+ "nights_stay",
1357
+ "no_luggage",
1358
+ "notifications",
1359
+ "notifications_active",
1360
+ "notifications_none",
1361
+ "notifications_off",
1362
+ "notifications_paused",
1363
+ "outdoor_grill",
1364
+ "pages",
1365
+ "party_mode",
1366
+ "people",
1367
+ "people_alt",
1368
+ "people_outline",
1369
+ "person",
1370
+ "person_add",
1371
+ "person_add_alt_1",
1372
+ "person_outline",
1373
+ "person_remove",
1374
+ "person_remove_alt_1",
1375
+ "plus_one",
1376
+ "poll",
1377
+ "psychology",
1378
+ "public",
1379
+ "public_off",
1380
+ "reduce_capacity",
1381
+ "sanitizer",
1382
+ "school",
1383
+ "science",
1384
+ "self_improvement",
1385
+ "sentiment_dissatisfied",
1386
+ "sentiment_satisfied",
1387
+ "sentiment_very_dissatisfied",
1388
+ "sentiment_very_satisfied",
1389
+ "share",
1390
+ "sick",
1391
+ "single_bed",
1392
+ "sports",
1393
+ "sports_baseball",
1394
+ "sports_basketball",
1395
+ "sports_cricket",
1396
+ "sports_esports",
1397
+ "sports_football",
1398
+ "sports_golf",
1399
+ "sports_handball",
1400
+ "sports_hockey",
1401
+ "sports_kabaddi",
1402
+ "sports_mma",
1403
+ "sports_motorsports",
1404
+ "sports_rugby",
1405
+ "sports_soccer",
1406
+ "sports_tennis",
1407
+ "sports_volleyball",
1408
+ "thumb_down_alt",
1409
+ "thumb_up_alt",
1410
+ "whatshot"
1411
+ ]
1412
+ },
1413
+ {
1414
+ "title": "toggle",
1415
+ "icons": [
1416
+ "check_box",
1417
+ "check_box_outline_blank",
1418
+ "indeterminate_check_box",
1419
+ "radio_button_checked",
1420
+ "radio_button_unchecked",
1421
+ "star",
1422
+ "star_border",
1423
+ "star_half",
1424
+ "star_outline",
1425
+ "toggle_off",
1426
+ "toggle_on"
1427
+ ]
1428
+ }
1429
+ ]
1430
+
1431
+ categories.each do |category|
1432
+ scroll.h3 text: category[:title]
1433
+ scroll.spacer height: 6
1434
+
1435
+ icon_names = category[:icons]
1436
+ icon_names.each do |icon_name|
1437
+ scroll.panels_column lg: { cols: 4 }, childViews: ->(column) do
1438
+ column.panels_horizontal align: 'middle', childViews: ->(horizontal) do
1439
+ horizontal.icon spec: icon_name
1440
+ horizontal.spacer width: 6
1441
+ horizontal.label text: icon_name
1442
+
1443
+ # horizontal.button icon: icon_name, text: icon_name
1444
+ end
1445
+ end
1446
+ end
1447
+
1448
+ scroll.spacer height: 20
1449
+ end
1450
+ end