spina 1.1.1 → 2.0.0.alpha

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of spina might be problematic. Click here for more details.

Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +23 -244
  3. data/app/assets/fonts/spina/Metropolis-Black.woff2 +0 -0
  4. data/app/assets/fonts/spina/Metropolis-BlackItalic.woff2 +0 -0
  5. data/app/assets/fonts/spina/Metropolis-Bold.woff2 +0 -0
  6. data/app/assets/fonts/spina/Metropolis-BoldItalic.woff2 +0 -0
  7. data/app/assets/fonts/spina/Metropolis-ExtraBold.woff2 +0 -0
  8. data/app/assets/fonts/spina/Metropolis-ExtraBoldItalic.woff2 +0 -0
  9. data/app/assets/fonts/spina/Metropolis-ExtraLight.woff2 +0 -0
  10. data/app/assets/fonts/spina/Metropolis-ExtraLightItalic.woff2 +0 -0
  11. data/app/assets/fonts/spina/Metropolis-Light.woff2 +0 -0
  12. data/app/assets/fonts/spina/Metropolis-LightItalic.woff2 +0 -0
  13. data/app/assets/fonts/spina/Metropolis-Medium.woff2 +0 -0
  14. data/app/assets/fonts/spina/Metropolis-MediumItalic.woff2 +0 -0
  15. data/app/assets/fonts/spina/Metropolis-Regular.woff2 +0 -0
  16. data/app/assets/fonts/spina/Metropolis-RegularItalic.woff2 +0 -0
  17. data/app/assets/fonts/spina/Metropolis-SemiBold.woff2 +0 -0
  18. data/app/assets/fonts/spina/Metropolis-SemiBoldItalic.woff2 +0 -0
  19. data/app/assets/fonts/spina/Metropolis-Thin.woff2 +0 -0
  20. data/app/assets/fonts/spina/Metropolis-ThinItalic.woff2 +0 -0
  21. data/app/assets/fonts/spina/ics_spina.eot +0 -0
  22. data/app/assets/fonts/spina/ics_spina.svg +285 -267
  23. data/app/assets/fonts/spina/ics_spina.ttf +0 -0
  24. data/app/assets/fonts/spina/ics_spina.woff +0 -0
  25. data/app/assets/fonts/spina/ics_spina.woff2 +0 -0
  26. data/app/assets/icons/spina/bold.svg +1 -1
  27. data/app/assets/icons/spina/code.svg +1 -1
  28. data/app/assets/icons/spina/image.svg +1 -10
  29. data/app/assets/icons/spina/indent.svg +1 -0
  30. data/app/assets/icons/spina/italic.svg +1 -1
  31. data/app/assets/icons/spina/link.svg +1 -1
  32. data/app/assets/icons/spina/list-ol.svg +1 -0
  33. data/app/assets/icons/spina/list.svg +1 -0
  34. data/app/assets/icons/spina/outdent.svg +1 -0
  35. data/app/assets/icons/spina/preview/ics_spina-preview.html +121 -1
  36. data/app/assets/icons/spina/quote-right.svg +1 -0
  37. data/app/assets/icons/spina/redo.svg +1 -0
  38. data/app/assets/icons/spina/strikethrough.svg +1 -0
  39. data/app/assets/icons/spina/undo.svg +1 -0
  40. data/app/assets/images/spina/favicon.png +0 -0
  41. data/app/assets/javascripts/spina/admin/application.js +1 -2
  42. data/app/assets/javascripts/spina/admin/controllers/attachment_picker_controller.js +15 -0
  43. data/app/assets/javascripts/spina/admin/controllers/image_form_controller.js +5 -4
  44. data/app/assets/javascripts/spina/admin/controllers/infinite_scroll_controller.js +20 -22
  45. data/app/assets/javascripts/spina/admin/controllers/media_picker_controller.js +171 -0
  46. data/app/assets/javascripts/spina/admin/controllers/modal_controller.js +18 -0
  47. data/app/assets/javascripts/spina/admin/controllers/repeater_form_controller.js +38 -0
  48. data/app/assets/javascripts/spina/admin/media_gallery.coffee +0 -3
  49. data/app/assets/javascripts/spina/admin/notifications.coffee +1 -1
  50. data/app/assets/javascripts/spina/admin/pages.coffee.erb +3 -20
  51. data/app/assets/javascripts/spina/admin/scaffold.coffee +0 -3
  52. data/app/assets/javascripts/spina/admin/trix.coffee.erb +14 -18
  53. data/app/assets/stylesheets/spina.sass +10 -10
  54. data/app/assets/stylesheets/spina/_buttons.sass +58 -32
  55. data/app/assets/stylesheets/spina/_configuration.sass.erb +2 -2
  56. data/app/assets/stylesheets/spina/_fonts.sass +32 -0
  57. data/app/assets/stylesheets/spina/_forms.sass +65 -76
  58. data/app/assets/stylesheets/spina/_gallery.sass +22 -4
  59. data/app/assets/stylesheets/spina/_ics_spina.scss +8 -0
  60. data/app/assets/stylesheets/spina/_media_picker.sass +133 -0
  61. data/app/assets/stylesheets/spina/_modal.sass +35 -2
  62. data/app/assets/stylesheets/spina/_notifications.sass +20 -14
  63. data/app/assets/stylesheets/spina/_pages.sass +131 -0
  64. data/app/assets/stylesheets/spina/_sortable_lists.sass +14 -8
  65. data/app/assets/stylesheets/spina/_tables.sass +7 -4
  66. data/app/assets/stylesheets/spina/_trix_custom.sass +15 -28
  67. data/app/controllers/concerns/spina/frontend.rb +9 -0
  68. data/app/controllers/spina/admin/accounts_controller.rb +9 -13
  69. data/app/controllers/spina/admin/attachments_controller.rb +0 -22
  70. data/app/controllers/spina/admin/images_controller.rb +1 -1
  71. data/app/controllers/spina/admin/media_folders_controller.rb +10 -0
  72. data/app/controllers/spina/admin/media_picker_controller.rb +18 -19
  73. data/app/controllers/spina/admin/pages_controller.rb +3 -7
  74. data/app/controllers/spina/admin/resources_controller.rb +9 -4
  75. data/app/controllers/spina/application_controller.rb +1 -1
  76. data/app/helpers/spina/admin/pages_helper.rb +22 -20
  77. data/app/helpers/spina/{files_helper.rb → attachments_helper.rb} +1 -1
  78. data/app/helpers/spina/images_helper.rb +14 -0
  79. data/app/helpers/spina/pages_helper.rb +23 -4
  80. data/app/models/concerns/spina/partable.rb +19 -7
  81. data/app/models/concerns/spina/translated_content.rb +19 -0
  82. data/app/models/spina/account.rb +3 -10
  83. data/app/models/spina/attachment.rb +0 -4
  84. data/app/models/spina/current.rb +1 -0
  85. data/app/models/spina/image.rb +0 -4
  86. data/app/models/spina/page.rb +19 -20
  87. data/app/models/spina/parts/attachment.rb +17 -0
  88. data/app/models/spina/parts/base.rb +12 -0
  89. data/app/models/spina/parts/image.rb +30 -0
  90. data/app/models/spina/parts/image_collection.rb +23 -0
  91. data/app/models/spina/parts/line.rb +7 -0
  92. data/app/models/spina/parts/option.rb +13 -0
  93. data/app/models/spina/parts/repeater.rb +10 -0
  94. data/app/models/spina/parts/repeater_content.rb +15 -0
  95. data/app/models/spina/parts/text.rb +7 -0
  96. data/app/models/spina/resource.rb +4 -12
  97. data/app/presenters/spina/content_presenter.rb +58 -0
  98. data/app/presenters/spina/menu_presenter.rb +2 -1
  99. data/app/views/layouts/spina/admin/admin.html.haml +3 -4
  100. data/app/views/layouts/spina/admin/pages.html.haml +5 -4
  101. data/app/views/spina/admin/accounts/_form.html.haml +13 -7
  102. data/app/views/spina/admin/accounts/analytics.html.haml +5 -3
  103. data/app/views/spina/admin/accounts/style.html.haml +26 -21
  104. data/app/views/spina/admin/images/index.html.haml +7 -5
  105. data/app/views/spina/admin/media_folders/_form.html.haml +5 -2
  106. data/app/views/spina/admin/media_folders/edit.js.erb +1 -0
  107. data/app/views/spina/admin/media_folders/show.html.haml +2 -1
  108. data/app/views/spina/admin/media_picker/_image.html.haml +3 -0
  109. data/app/views/spina/admin/media_picker/_media_picker.html.haml +32 -0
  110. data/app/views/spina/admin/media_picker/_media_picker_grid.html.haml +25 -0
  111. data/app/views/spina/admin/media_picker/infinite_scroll.js.erb +4 -4
  112. data/app/views/spina/admin/media_picker/select.js.erb +2 -0
  113. data/app/views/spina/admin/media_picker/show.html.haml +1 -0
  114. data/app/views/spina/admin/media_picker/show.js.erb +1 -1
  115. data/app/views/spina/admin/pages/_form.html.haml +10 -8
  116. data/app/views/spina/admin/pages/_form_advanced.html.haml +19 -17
  117. data/app/views/spina/admin/pages/_form_page_content.html.haml +14 -13
  118. data/app/views/spina/admin/pages/_form_page_seo.html.haml +15 -4
  119. data/app/views/spina/admin/pages/_page.html.haml +5 -3
  120. data/app/views/spina/admin/pages/_page_nested_list.html.haml +2 -3
  121. data/app/views/spina/admin/pages/index.html.haml +5 -4
  122. data/app/views/spina/admin/parts/attachments/_form.html.haml +6 -0
  123. data/app/views/spina/admin/parts/image_collections/_fields.html.haml +7 -0
  124. data/app/views/spina/admin/parts/image_collections/_form.html.haml +12 -0
  125. data/app/views/spina/admin/parts/images/_form.html.haml +18 -0
  126. data/app/views/spina/admin/parts/lines/_form.html.haml +2 -0
  127. data/app/views/spina/admin/parts/options/_form.html.haml +3 -0
  128. data/app/views/spina/admin/parts/repeaters/_fields.html.haml +15 -0
  129. data/app/views/spina/admin/parts/repeaters/_form.html.haml +18 -0
  130. data/app/views/spina/admin/parts/texts/_form.html.haml +6 -0
  131. data/app/views/spina/admin/resources/edit.html.haml +28 -12
  132. data/app/views/spina/admin/resources/show.html.haml +6 -3
  133. data/app/views/spina/admin/shared/_notifications.html.haml +4 -4
  134. data/config/locales/TH.yml +220 -205
  135. data/config/locales/bg.yml +219 -211
  136. data/config/locales/de.yml +218 -190
  137. data/config/locales/en.yml +218 -208
  138. data/config/locales/es.yml +219 -206
  139. data/config/locales/fr.yml +219 -190
  140. data/config/locales/id.yml +219 -189
  141. data/config/locales/it.yml +225 -152
  142. data/config/locales/nl.yml +220 -197
  143. data/config/locales/pl.yml +218 -185
  144. data/config/locales/pt-BR.yml +218 -205
  145. data/config/locales/ro.yml +258 -225
  146. data/config/locales/ru.yml +231 -171
  147. data/config/locales/sv.yml +218 -183
  148. data/config/locales/tr.yml +224 -151
  149. data/config/locales/zh-CN.yml +225 -175
  150. data/db/migrate/11_create_spina_resources.rb +0 -2
  151. data/db/migrate/12_add_url_title_to_spina_page_translations.rb +5 -0
  152. data/db/migrate/13_add_json_attributes_to_spina_accounts.rb +5 -0
  153. data/db/migrate/14_add_json_attributes_to_spina_pages.rb +5 -0
  154. data/db/migrate/15_add_slug_to_spina_resources.rb +5 -0
  155. data/lib/generators/spina/templates/app/views/demo/pages/demo.html.haml +13 -21
  156. data/lib/generators/spina/templates/app/views/demo/pages/homepage.html.haml +1 -1
  157. data/lib/generators/spina/templates/config/initializers/themes/default.rb +4 -4
  158. data/lib/generators/spina/templates/config/initializers/themes/demo.rb +32 -44
  159. data/lib/spina.rb +2 -0
  160. data/lib/spina/attr_json_spina_parts_model.rb +29 -0
  161. data/lib/spina/engine.rb +13 -3
  162. data/lib/spina/part.rb +19 -0
  163. data/lib/spina/theme.rb +1 -1
  164. data/lib/spina/version.rb +1 -1
  165. data/vendor/assets/javascripts/spina/sortable.js +2 -2
  166. metadata +71 -45
  167. data/app/assets/javascripts/spina/admin/account.coffee +0 -16
  168. data/app/models/concerns/spina/image_collectable.rb +0 -23
  169. data/app/models/concerns/spina/optionable.rb +0 -12
  170. data/app/models/concerns/spina/part.rb +0 -38
  171. data/app/models/spina/attachment_collection.rb +0 -20
  172. data/app/models/spina/image_collection.rb +0 -23
  173. data/app/models/spina/image_collections_image.rb +0 -6
  174. data/app/models/spina/layout_part.rb +0 -22
  175. data/app/models/spina/line.rb +0 -10
  176. data/app/models/spina/option.rb +0 -17
  177. data/app/models/spina/page_part.rb +0 -22
  178. data/app/models/spina/structure.rb +0 -14
  179. data/app/models/spina/structure_item.rb +0 -22
  180. data/app/models/spina/structure_part.rb +0 -20
  181. data/app/models/spina/text.rb +0 -10
  182. data/app/views/dummy/show.html.haml +0 -1
  183. data/app/views/spina/admin/attachments/_attachment_collection.html.haml +0 -2
  184. data/app/views/spina/admin/attachments/_select.html.haml +0 -17
  185. data/app/views/spina/admin/attachments/_select_collection.html.haml +0 -18
  186. data/app/views/spina/admin/attachments/insert.js.erb +0 -5
  187. data/app/views/spina/admin/attachments/insert_collection.js.coffee +0 -7
  188. data/app/views/spina/admin/attachments/select.js.erb +0 -2
  189. data/app/views/spina/admin/attachments/select_collection.js.erb +0 -2
  190. data/app/views/spina/admin/image_collections/_image_collection.html.haml +0 -5
  191. data/app/views/spina/admin/layout_partables/lines/_form.html.haml +0 -2
  192. data/app/views/spina/admin/partables/attachment_collections/_form.html.haml +0 -14
  193. data/app/views/spina/admin/partables/attachments/_form.html.haml +0 -13
  194. data/app/views/spina/admin/partables/image_collections/_form.html.haml +0 -16
  195. data/app/views/spina/admin/partables/images/_form.html.haml +0 -21
  196. data/app/views/spina/admin/partables/lines/_form.html.haml +0 -5
  197. data/app/views/spina/admin/partables/options/_form.html.haml +0 -7
  198. data/app/views/spina/admin/partables/photo_collections/_form.html.haml +0 -4
  199. data/app/views/spina/admin/partables/photos/_form.html.haml +0 -4
  200. data/app/views/spina/admin/partables/structures/_form.html.haml +0 -21
  201. data/app/views/spina/admin/partables/texts/_form.html.haml +0 -8
  202. data/app/views/spina/admin/structure_items/_fields.html.haml +0 -15
  203. data/app/views/spina/admin/structure_partables/attachment_collections/_form.html.haml +0 -14
  204. data/app/views/spina/admin/structure_partables/attachments/_form.html.haml +0 -13
@@ -1 +1 @@
1
- <svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M747 1521q74 32 140 32 376 0 376-335 0-114-41-180-27-44-61.5-74t-67.5-46.5-80.5-25-84-10.5-94.5-2q-73 0-101 10 0 53-.5 159t-.5 158q0 8-1 67.5t-.5 96.5 4.5 83.5 12 66.5zm-14-746q42 7 109 7 82 0 143-13t110-44.5 74.5-89.5 25.5-142q0-70-29-122.5t-79-82-108-43.5-124-14q-50 0-130 13 0 50 4 151t4 152q0 27-.5 80t-.5 79q0 46 1 69zm-541 889l2-94q15-4 85-16t106-27q7-12 12.5-27t8.5-33.5 5.5-32.5 3-37.5.5-34v-65.5q0-982-22-1025-4-8-22-14.5t-44.5-11-49.5-7-48.5-4.5-30.5-3l-4-83q98-2 340-11.5t373-9.5q23 0 68.5.5t67.5.5q70 0 136.5 13t128.5 42 108 71 74 104.5 28 137.5q0 52-16.5 95.5t-39 72-64.5 57.5-73 45-84 40q154 35 256.5 134t102.5 248q0 100-35 179.5t-93.5 130.5-138 85.5-163.5 48.5-176 14q-44 0-132-3t-132-3q-106 0-307 11t-231 12z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z"/></svg>
@@ -1 +1 @@
1
- <svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M553 1399l-50 50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l50 50q10 10 10 23t-10 23l-393 393 393 393q10 10 10 23t-10 23zm591-1067l-373 1291q-4 13-15.5 19.5t-23.5 2.5l-62-17q-13-4-19.5-15.5t-2.5-24.5l373-1291q4-13 15.5-19.5t23.5-2.5l62 17q13 4 19.5 15.5t2.5 24.5zm657 651l-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393-393-393q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23t-10 23z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"/></svg>
@@ -1,10 +1 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
3
- <!-- Generator: Sketch 3.3.2 (12043) - http://www.bohemiancoding.com/sketch -->
4
- <title>Untitled 2</title>
5
- <desc>Created with Sketch.</desc>
6
- <defs></defs>
7
- <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
8
- <path d="M224,0 L32,0 C14.355,0 0,14.356 0,32 L0,224 C0,241.644 14.355,256 32,256 L224,256 C241.645,256 256,241.644 256,224 L256,32 C256,14.356 241.645,0 224,0 L224,0 Z M240,224 C240,232.8 232.8,240 224,240 L32,240 C23.2,240 16,232.8 16,224 L16,32 C16,23.2 23.2,16 32,16 L224,16 C232.8,16 240,23.2 240,32 L240,224 L240,224 Z M224,147.999 L224,40 C224,35.582 220.418,32 216,32 L40,32 C35.582,32 32,35.582 32,40 L32,184 C32,188.418 35.582,192 40,192 L216,192 C220.418,192 224,188.418 224,184 L224,148.001 L224,147.999 L224,147.999 Z M216,40 L216,138.343 L186.829,109.172 C185.387,107.731 183.094,107.603 181.501,108.877 L144.297,138.64 L98.829,93.172 C97.345,91.688 94.965,91.603 93.381,92.978 L40,139.24 L40,40 L216,40 L216,40 Z M40,184 L40,149.827 L95.805,101.462 L141.171,146.828 C142.612,148.269 144.906,148.396 146.499,147.123 L183.703,117.36 L216,149.657 L216,184 L40,184 L40,184 Z M172,96 C183.028,96 192,87.028 192,76 C192,64.972 183.028,56 172,56 C160.972,56 152,64.972 152,76 C152,87.028 160.972,96 172,96 L172,96 Z M172,64 C178.628,64 184,69.372 184,76 C184,82.628 178.628,88 172,88 C165.372,88 160,82.628 160,76 C160,69.372 165.372,64 172,64 L172,64 Z" id="Shape" fill="#000000" sketch:type="MSShapeGroup"></path>
9
- </g>
10
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"/></svg>
@@ -1 +1 @@
1
- <svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M384 1662l17-85q6-2 81.5-21.5t111.5-37.5q28-35 41-101 1-7 62-289t114-543.5 52-296.5v-25q-24-13-54.5-18.5t-69.5-8-58-5.5l19-103q33 2 120 6.5t149.5 7 120.5 2.5q48 0 98.5-2.5t121-7 98.5-6.5q-5 39-19 89-30 10-101.5 28.5t-108.5 33.5q-8 19-14 42.5t-9 40-7.5 45.5-6.5 42q-27 148-87.5 419.5t-77.5 355.5q-2 9-13 58t-20 90-16 83.5-6 57.5l1 18q17 4 185 31-3 44-16 99-11 0-32.5 1.5t-32.5 1.5q-29 0-87-10t-86-10q-138-2-206-2-51 0-143 9t-121 11z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z"/></svg>
@@ -1 +1 @@
1
- <svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1520 1216q0-40-28-68l-208-208q-28-28-68-28-42 0-72 32 3 3 19 18.5t21.5 21.5 15 19 13 25.5 3.5 27.5q0 40-28 68t-68 28q-15 0-27.5-3.5t-25.5-13-19-15-21.5-21.5-18.5-19q-33 31-33 73 0 40 28 68l206 207q27 27 68 27 40 0 68-26l147-146q28-28 28-67zm-703-705q0-40-28-68l-206-207q-28-28-68-28-39 0-68 27l-147 146q-28 28-28 67 0 40 28 68l208 208q27 27 68 27 42 0 72-31-3-3-19-18.5t-21.5-21.5-15-19-13-25.5-3.5-27.5q0-40 28-68t68-28q15 0 27.5 3.5t25.5 13 19 15 21.5 21.5 18.5 19q33-31 33-73zm895 705q0 120-85 203l-147 146q-83 83-203 83-121 0-204-85l-206-207q-83-83-83-203 0-123 88-209l-88-88q-86 88-208 88-120 0-204-84l-208-208q-84-84-84-204t85-203l147-146q83-83 203-83 121 0 204 85l206 207q83 83 83 203 0 123-88 209l88 88q86-88 208-88 120 0 204 84l208 208q84 84 84 204z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"/></svg>
@@ -192,10 +192,13 @@
192
192
  .icon-home:before,
193
193
  .icon-image:before,
194
194
  .icon-inbox-outline:before,
195
+ .icon-indent:before,
195
196
  .icon-info:before,
196
197
  .icon-italic:before,
197
198
  .icon-large-check:before,
198
199
  .icon-link:before,
200
+ .icon-list:before,
201
+ .icon-list-ol:before,
199
202
  .icon-list-ul:before,
200
203
  .icon-lock:before,
201
204
  .icon-mail:before,
@@ -203,6 +206,7 @@
203
206
  .icon-media-library:before,
204
207
  .icon-megaphone:before,
205
208
  .icon-min:before,
209
+ .icon-outdent:before,
206
210
  .icon-pages:before,
207
211
  .icon-pencil:before,
208
212
  .icon-pencil-outline:before,
@@ -211,12 +215,16 @@
211
215
  .icon-power-off:before,
212
216
  .icon-preview:before,
213
217
  .icon-product-outline:before,
218
+ .icon-quote-right:before,
214
219
  .icon-random:before,
220
+ .icon-redo:before,
215
221
  .icon-refresh:before,
216
222
  .icon-search:before,
217
223
  .icon-shop:before,
218
224
  .icon-social-outline:before,
225
+ .icon-strikethrough:before,
219
226
  .icon-trash:before,
227
+ .icon-undo:before,
220
228
  .icon-upload-outline:before,
221
229
  .icon-users-outline:before {
222
230
  display: inline-block;
@@ -264,10 +272,13 @@
264
272
  .icon-home:before { content: "\f11b"; }
265
273
  .icon-image:before { content: "\f11c"; }
266
274
  .icon-inbox-outline:before { content: "\f11d"; }
275
+ .icon-indent:before { content: "\f13a"; }
267
276
  .icon-info:before { content: "\f11e"; }
268
277
  .icon-italic:before { content: "\f11f"; }
269
278
  .icon-large-check:before { content: "\f120"; }
270
279
  .icon-link:before { content: "\f121"; }
280
+ .icon-list:before { content: "\f13b"; }
281
+ .icon-list-ol:before { content: "\f13c"; }
271
282
  .icon-list-ul:before { content: "\f122"; }
272
283
  .icon-lock:before { content: "\f138"; }
273
284
  .icon-mail:before { content: "\f123"; }
@@ -275,6 +286,7 @@
275
286
  .icon-media-library:before { content: "\f125"; }
276
287
  .icon-megaphone:before { content: "\f126"; }
277
288
  .icon-min:before { content: "\f127"; }
289
+ .icon-outdent:before { content: "\f141"; }
278
290
  .icon-pages:before { content: "\f128"; }
279
291
  .icon-pencil:before { content: "\f129"; }
280
292
  .icon-pencil-outline:before { content: "\f12a"; }
@@ -283,12 +295,16 @@
283
295
  .icon-power-off:before { content: "\f12d"; }
284
296
  .icon-preview:before { content: "\f12e"; }
285
297
  .icon-product-outline:before { content: "\f12f"; }
298
+ .icon-quote-right:before { content: "\f13d"; }
286
299
  .icon-random:before { content: "\f130"; }
300
+ .icon-redo:before { content: "\f13e"; }
287
301
  .icon-refresh:before { content: "\f131"; }
288
302
  .icon-search:before { content: "\f132"; }
289
303
  .icon-shop:before { content: "\f133"; }
290
304
  .icon-social-outline:before { content: "\f134"; }
305
+ .icon-strikethrough:before { content: "\f13f"; }
291
306
  .icon-trash:before { content: "\f135"; }
307
+ .icon-undo:before { content: "\f140"; }
292
308
  .icon-upload-outline:before { content: "\f136"; }
293
309
  .icon-users-outline:before { content: "\f137"; }
294
310
  </style>
@@ -306,7 +322,7 @@
306
322
  <body class="characters-off">
307
323
  <div id="page" class="container">
308
324
  <header>
309
- <h1>ics_spina contains 58 glyphs:</h1>
325
+ <h1>ics_spina contains 66 glyphs:</h1>
310
326
  <a onclick="toggleCharacters(); return false;" href="#">Toggle Preview Characters</a>
311
327
  </header>
312
328
 
@@ -714,6 +730,19 @@
714
730
  </div>
715
731
  </div>
716
732
 
733
+ <div class="glyph">
734
+ <div class="preview-glyphs">
735
+ <span class="step size-12"><span class="letters">Pp</span><i id="icon-indent" class="icon-indent"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-indent" class="icon-indent"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-indent" class="icon-indent"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-indent" class="icon-indent"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-indent" class="icon-indent"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-indent" class="icon-indent"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-indent" class="icon-indent"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-indent" class="icon-indent"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-indent" class="icon-indent"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-indent" class="icon-indent"></i></span>
736
+ </div>
737
+ <div class="preview-scale">
738
+ <span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
739
+ </div>
740
+ <div class="usage">
741
+ <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-indent" />
742
+ <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13a;" />
743
+ </div>
744
+ </div>
745
+
717
746
  <div class="glyph">
718
747
  <div class="preview-glyphs">
719
748
  <span class="step size-12"><span class="letters">Pp</span><i id="icon-info" class="icon-info"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-info" class="icon-info"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-info" class="icon-info"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-info" class="icon-info"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-info" class="icon-info"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-info" class="icon-info"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-info" class="icon-info"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-info" class="icon-info"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-info" class="icon-info"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-info" class="icon-info"></i></span>
@@ -766,6 +795,32 @@
766
795
  </div>
767
796
  </div>
768
797
 
798
+ <div class="glyph">
799
+ <div class="preview-glyphs">
800
+ <span class="step size-12"><span class="letters">Pp</span><i id="icon-list" class="icon-list"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-list" class="icon-list"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-list" class="icon-list"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-list" class="icon-list"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-list" class="icon-list"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-list" class="icon-list"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-list" class="icon-list"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-list" class="icon-list"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-list" class="icon-list"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-list" class="icon-list"></i></span>
801
+ </div>
802
+ <div class="preview-scale">
803
+ <span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
804
+ </div>
805
+ <div class="usage">
806
+ <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-list" />
807
+ <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13b;" />
808
+ </div>
809
+ </div>
810
+
811
+ <div class="glyph">
812
+ <div class="preview-glyphs">
813
+ <span class="step size-12"><span class="letters">Pp</span><i id="icon-list-ol" class="icon-list-ol"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-list-ol" class="icon-list-ol"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-list-ol" class="icon-list-ol"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-list-ol" class="icon-list-ol"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-list-ol" class="icon-list-ol"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-list-ol" class="icon-list-ol"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-list-ol" class="icon-list-ol"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-list-ol" class="icon-list-ol"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-list-ol" class="icon-list-ol"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-list-ol" class="icon-list-ol"></i></span>
814
+ </div>
815
+ <div class="preview-scale">
816
+ <span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
817
+ </div>
818
+ <div class="usage">
819
+ <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-list-ol" />
820
+ <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13c;" />
821
+ </div>
822
+ </div>
823
+
769
824
  <div class="glyph">
770
825
  <div class="preview-glyphs">
771
826
  <span class="step size-12"><span class="letters">Pp</span><i id="icon-list-ul" class="icon-list-ul"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-list-ul" class="icon-list-ul"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-list-ul" class="icon-list-ul"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-list-ul" class="icon-list-ul"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-list-ul" class="icon-list-ul"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-list-ul" class="icon-list-ul"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-list-ul" class="icon-list-ul"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-list-ul" class="icon-list-ul"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-list-ul" class="icon-list-ul"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-list-ul" class="icon-list-ul"></i></span>
@@ -857,6 +912,19 @@
857
912
  </div>
858
913
  </div>
859
914
 
915
+ <div class="glyph">
916
+ <div class="preview-glyphs">
917
+ <span class="step size-12"><span class="letters">Pp</span><i id="icon-outdent" class="icon-outdent"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-outdent" class="icon-outdent"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-outdent" class="icon-outdent"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-outdent" class="icon-outdent"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-outdent" class="icon-outdent"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-outdent" class="icon-outdent"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-outdent" class="icon-outdent"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-outdent" class="icon-outdent"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-outdent" class="icon-outdent"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-outdent" class="icon-outdent"></i></span>
918
+ </div>
919
+ <div class="preview-scale">
920
+ <span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
921
+ </div>
922
+ <div class="usage">
923
+ <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-outdent" />
924
+ <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf141;" />
925
+ </div>
926
+ </div>
927
+
860
928
  <div class="glyph">
861
929
  <div class="preview-glyphs">
862
930
  <span class="step size-12"><span class="letters">Pp</span><i id="icon-pages" class="icon-pages"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-pages" class="icon-pages"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-pages" class="icon-pages"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-pages" class="icon-pages"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-pages" class="icon-pages"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-pages" class="icon-pages"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-pages" class="icon-pages"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-pages" class="icon-pages"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-pages" class="icon-pages"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-pages" class="icon-pages"></i></span>
@@ -961,6 +1029,19 @@
961
1029
  </div>
962
1030
  </div>
963
1031
 
1032
+ <div class="glyph">
1033
+ <div class="preview-glyphs">
1034
+ <span class="step size-12"><span class="letters">Pp</span><i id="icon-quote-right" class="icon-quote-right"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-quote-right" class="icon-quote-right"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-quote-right" class="icon-quote-right"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-quote-right" class="icon-quote-right"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-quote-right" class="icon-quote-right"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-quote-right" class="icon-quote-right"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-quote-right" class="icon-quote-right"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-quote-right" class="icon-quote-right"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-quote-right" class="icon-quote-right"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-quote-right" class="icon-quote-right"></i></span>
1035
+ </div>
1036
+ <div class="preview-scale">
1037
+ <span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
1038
+ </div>
1039
+ <div class="usage">
1040
+ <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-quote-right" />
1041
+ <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13d;" />
1042
+ </div>
1043
+ </div>
1044
+
964
1045
  <div class="glyph">
965
1046
  <div class="preview-glyphs">
966
1047
  <span class="step size-12"><span class="letters">Pp</span><i id="icon-random" class="icon-random"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-random" class="icon-random"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-random" class="icon-random"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-random" class="icon-random"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-random" class="icon-random"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-random" class="icon-random"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-random" class="icon-random"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-random" class="icon-random"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-random" class="icon-random"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-random" class="icon-random"></i></span>
@@ -974,6 +1055,19 @@
974
1055
  </div>
975
1056
  </div>
976
1057
 
1058
+ <div class="glyph">
1059
+ <div class="preview-glyphs">
1060
+ <span class="step size-12"><span class="letters">Pp</span><i id="icon-redo" class="icon-redo"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-redo" class="icon-redo"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-redo" class="icon-redo"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-redo" class="icon-redo"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-redo" class="icon-redo"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-redo" class="icon-redo"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-redo" class="icon-redo"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-redo" class="icon-redo"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-redo" class="icon-redo"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-redo" class="icon-redo"></i></span>
1061
+ </div>
1062
+ <div class="preview-scale">
1063
+ <span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
1064
+ </div>
1065
+ <div class="usage">
1066
+ <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-redo" />
1067
+ <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13e;" />
1068
+ </div>
1069
+ </div>
1070
+
977
1071
  <div class="glyph">
978
1072
  <div class="preview-glyphs">
979
1073
  <span class="step size-12"><span class="letters">Pp</span><i id="icon-refresh" class="icon-refresh"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-refresh" class="icon-refresh"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-refresh" class="icon-refresh"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-refresh" class="icon-refresh"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-refresh" class="icon-refresh"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-refresh" class="icon-refresh"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-refresh" class="icon-refresh"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-refresh" class="icon-refresh"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-refresh" class="icon-refresh"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-refresh" class="icon-refresh"></i></span>
@@ -1026,6 +1120,19 @@
1026
1120
  </div>
1027
1121
  </div>
1028
1122
 
1123
+ <div class="glyph">
1124
+ <div class="preview-glyphs">
1125
+ <span class="step size-12"><span class="letters">Pp</span><i id="icon-strikethrough" class="icon-strikethrough"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-strikethrough" class="icon-strikethrough"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-strikethrough" class="icon-strikethrough"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-strikethrough" class="icon-strikethrough"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-strikethrough" class="icon-strikethrough"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-strikethrough" class="icon-strikethrough"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-strikethrough" class="icon-strikethrough"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-strikethrough" class="icon-strikethrough"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-strikethrough" class="icon-strikethrough"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-strikethrough" class="icon-strikethrough"></i></span>
1126
+ </div>
1127
+ <div class="preview-scale">
1128
+ <span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
1129
+ </div>
1130
+ <div class="usage">
1131
+ <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-strikethrough" />
1132
+ <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13f;" />
1133
+ </div>
1134
+ </div>
1135
+
1029
1136
  <div class="glyph">
1030
1137
  <div class="preview-glyphs">
1031
1138
  <span class="step size-12"><span class="letters">Pp</span><i id="icon-trash" class="icon-trash"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-trash" class="icon-trash"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-trash" class="icon-trash"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-trash" class="icon-trash"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-trash" class="icon-trash"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-trash" class="icon-trash"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-trash" class="icon-trash"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-trash" class="icon-trash"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-trash" class="icon-trash"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-trash" class="icon-trash"></i></span>
@@ -1039,6 +1146,19 @@
1039
1146
  </div>
1040
1147
  </div>
1041
1148
 
1149
+ <div class="glyph">
1150
+ <div class="preview-glyphs">
1151
+ <span class="step size-12"><span class="letters">Pp</span><i id="icon-undo" class="icon-undo"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-undo" class="icon-undo"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-undo" class="icon-undo"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-undo" class="icon-undo"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-undo" class="icon-undo"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-undo" class="icon-undo"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-undo" class="icon-undo"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-undo" class="icon-undo"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-undo" class="icon-undo"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-undo" class="icon-undo"></i></span>
1152
+ </div>
1153
+ <div class="preview-scale">
1154
+ <span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
1155
+ </div>
1156
+ <div class="usage">
1157
+ <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-undo" />
1158
+ <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf140;" />
1159
+ </div>
1160
+ </div>
1161
+
1042
1162
  <div class="glyph">
1043
1163
  <div class="preview-glyphs">
1044
1164
  <span class="step size-12"><span class="letters">Pp</span><i id="icon-upload-outline" class="icon-upload-outline"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-upload-outline" class="icon-upload-outline"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-upload-outline" class="icon-upload-outline"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-upload-outline" class="icon-upload-outline"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-upload-outline" class="icon-upload-outline"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-upload-outline" class="icon-upload-outline"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-upload-outline" class="icon-upload-outline"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-upload-outline" class="icon-upload-outline"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-upload-outline" class="icon-upload-outline"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-upload-outline" class="icon-upload-outline"></i></span>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"/></svg>
@@ -1,7 +1,7 @@
1
1
  // jQuery
2
2
 
3
3
  //= require jquery
4
- //= require jquery_ujs
4
+ //= require rails-ujs
5
5
 
6
6
  // Turbolinks
7
7
 
@@ -38,7 +38,6 @@
38
38
  //= require ./notifications
39
39
  //= require ./media_gallery
40
40
 
41
- //= require ./account
42
41
  //= require ./confirm_delete
43
42
  //= require ./pages
44
43
 
@@ -0,0 +1,15 @@
1
+ (() => {
2
+ const application = Stimulus.Application.start()
3
+
4
+ application.register("attachment-picker", class extends Stimulus.Controller {
5
+ static get targets() {
6
+ return ["signedBlobId", "filename"]
7
+ }
8
+
9
+ chooseAttachment(event) {
10
+ let option = event.currentTarget.options[event.currentTarget.selectedIndex]
11
+ this.signedBlobIdTarget.value = option.dataset.signedBlobId || ""
12
+ this.filenameTarget.value = option.dataset.filename || ""
13
+ }
14
+ })
15
+ })()
@@ -3,7 +3,7 @@
3
3
 
4
4
  application.register("image-form", class extends Stimulus.Controller {
5
5
  static get targets() {
6
- return ["image", "field", "button"]
6
+ return ["image", "imageId", "signedBlobId", "filename"]
7
7
  }
8
8
 
9
9
  remove(e) {
@@ -12,9 +12,10 @@
12
12
  e.stopPropagation()
13
13
 
14
14
  // Remove image and reset field
15
- this.imageTarget.remove()
16
- this.buttonTarget.remove()
17
- this.fieldTarget.value = null
15
+ this.imageTarget.querySelectorAll('img').forEach(image => image.remove())
16
+ this.imageIdTarget.value = null
17
+ this.signedBlobIdTarget.value = null
18
+ this.filenameTarget.value = null
18
19
  }
19
20
 
20
21
  })
@@ -3,36 +3,34 @@
3
3
 
4
4
  application.register("infinite-scroll", class extends Stimulus.Controller {
5
5
  static get targets() {
6
- return ["link"]
6
+ return ["link", "scrollContainer"]
7
7
  }
8
8
 
9
9
  connect() {
10
- // Disable scroll event listeners
11
- $(window).off('scroll.infiniteScroll')
12
- $('#overlay section').off('scroll.infiniteScroll')
13
-
14
- let $link = $(this.linkTarget)
15
-
16
- // If the link has an actual href
17
- if ($link.attr('href')) {
18
- // If the window scrolls
19
- $(window).on('scroll.infiniteScroll', this.loadNextPage($link))
10
+ this.element["infiniteScroll"] = this
11
+ this.scrollElement.addEventListener("scroll", this.loadNextPage.bind(this))
12
+ this.loadNextPage()
13
+ }
20
14
 
21
- // If the overlay scrolls
22
- $('#overlay section').on('scroll.infiniteScroll', function() {
23
- $(window).trigger('scroll.infiniteScroll')
24
- })
15
+ disconnect() {
16
+ this.scrollElement.removeEventListener("scroll", this.loadNextPage.bind(this))
17
+ }
25
18
 
26
- $(window).trigger('scroll.infiniteScroll')
19
+ get scrollElement() {
20
+ if (this.hasScrollContainerTarget) {
21
+ return this.scrollContainerTarget
22
+ } else {
23
+ return window
27
24
  }
28
25
  }
29
26
 
30
- loadNextPage(link) {
31
- if ($(window).scrollTop() > link.offset().top - $(window).height() - 500) {
32
- $(window).off('scroll.infiniteScroll')
33
- $('#overlay section').off('scroll.infiniteScroll')
34
- $.rails.disableElement(link)
35
- $.getScript(link.attr('href'))
27
+ loadNextPage() {
28
+ if (this.hasLinkTarget) {
29
+ let top = this.linkTarget.getBoundingClientRect().top
30
+ if (top < window.innerHeight + 500) {
31
+ this.linkTarget.dataset.disableWith = "..."
32
+ this.linkTarget.click()
33
+ }
36
34
  }
37
35
  }
38
36
 
@@ -0,0 +1,171 @@
1
+ (() => {
2
+ const application = Stimulus.Application.start()
3
+
4
+ application.register("media-picker", class extends Stimulus.Controller {
5
+ static get targets() {
6
+ return ["input", "image", "grid", "selectedImage", "selectedImages", "selectedCount", "alt", "linkToUrl", "trixImage"]
7
+ }
8
+
9
+ connect() {
10
+ this.toggleActive()
11
+
12
+ if (this.hasSelectedImagesTarget) {
13
+ this.sortable = Sortable.create(this.selectedImagesTarget)
14
+ }
15
+ }
16
+
17
+ choose(event) {
18
+ switch(this.element.dataset.mode) {
19
+ case "single":
20
+ this.imageTargets.forEach((image) => image.querySelector('input').checked = false)
21
+ event.currentTarget.checked = true
22
+ this.imageIdInput.value = event.currentTarget.value
23
+ this.signedBlobIdInput.value = event.currentTarget.dataset.signedBlobId
24
+ this.filenameInput.value = event.currentTarget.dataset.filename
25
+ this.placeholder.innerHTML = `<img src="${event.currentTarget.dataset.thumbnailUrl}" width="200" height="150" />`
26
+ this.element.modal.close()
27
+ break
28
+ case "multiple":
29
+ if(event.currentTarget.checked) {
30
+ this.addImage(event.currentTarget.dataset.imageId, event.currentTarget.dataset.signedBlobId, event.currentTarget.dataset.filename, event.currentTarget.dataset.thumbnailUrl)
31
+ } else {
32
+ this.removeImage(event.currentTarget.dataset.imageId)
33
+ }
34
+ this.setCount()
35
+ break
36
+ case "trix":
37
+ this.imageTargets.forEach((image) => image.querySelector('input').checked = false)
38
+ event.currentTarget.checked = true
39
+ this.trixImage = event.currentTarget
40
+ break
41
+ }
42
+ }
43
+
44
+ choose_multiple(event) {
45
+ // Set image id's
46
+ let fields = this.imageCollectionPlaceholder.dataset.fields
47
+ let id = this.imageCollectionPlaceholder.dataset.id
48
+
49
+ let timeIndex = 0
50
+
51
+ // Set image thumbnails
52
+ this.imageCollectionPlaceholder.innerHTML = ""
53
+ this.selectedImageTargets.forEach(function(image) {
54
+ // this.imageCollectionPlaceholder.insertAdjacentHTML("beforeend", `<img src="${image.src}" />`)
55
+
56
+ // Time
57
+ let time = new Date().getTime() + timeIndex
58
+ timeIndex += 1
59
+
60
+ // Regexp
61
+ let regexp = new RegExp(`${id}|new_association`, 'g')
62
+
63
+ // Document generation
64
+ let doc = document.createRange().createContextualFragment(fields.replace(regexp, time))
65
+ doc.querySelector(".image-id").value = image.dataset.imageId
66
+ doc.querySelector(".signed-blob-id").value = image.dataset.signedBlobId
67
+ doc.querySelector(".filename").value = image.dataset.filename
68
+ doc.querySelector("img").src = image.src
69
+
70
+ this.imageCollectionPlaceholder.appendChild(doc)
71
+ }.bind(this))
72
+
73
+ // Close modal
74
+ this.element.modal.close()
75
+ }
76
+
77
+ insert_trix(event) {
78
+ let customEvent = new CustomEvent("image-insert", {bubbles: true, cancelable: true, detail: {
79
+ url: this.trixImage.dataset.fullImageUrl,
80
+ alt: this.altTarget.value,
81
+ link_to_url: this.linkToUrlTarget.value
82
+ }})
83
+ this.trixEditor.dispatchEvent(customEvent)
84
+
85
+ // Close modal
86
+ this.element.modal.close()
87
+ }
88
+
89
+ startUpload(event) {
90
+ event.currentTarget.querySelector('.media-picker-uploader').classList.add("uploading")
91
+ }
92
+
93
+ refresh(event) {
94
+ fetch(event.currentTarget.dataset.mediaPickerUrl)
95
+ .then(response => response.text())
96
+ .then(function(html) {
97
+ this.gridTarget.innerHTML = html
98
+ this.toggleActive()
99
+ }.bind(this))
100
+ }
101
+
102
+ toggleActive() {
103
+ this.imageTargets.forEach(function(image) {
104
+ let input = image.querySelector('input')
105
+ if (this.selectedIds.includes(input.value)) input.checked = true
106
+ }.bind(this))
107
+ }
108
+
109
+ openFolder(event) {
110
+ event.preventDefault()
111
+ fetch(event.currentTarget.href)
112
+ .then(response => response.text())
113
+ .then(function(html) {
114
+ this.gridTarget.innerHTML = html
115
+ this.toggleActive()
116
+ }.bind(this))
117
+ }
118
+
119
+ setCount() {
120
+ this.selectedCountTarget.innerHTML = `(${this.selectedIds.length})`
121
+ }
122
+
123
+ addImage(id, signed_blob_id, filename, url) {
124
+ this.selectedImagesTarget.insertAdjacentHTML("beforeend", `<img src="${url}" data-image-id="${id}" data-signed-blob-id="${signed_blob_id}" data-filename="${filename}" data-target="media-picker.selectedImage" />`)
125
+ }
126
+
127
+ removeImage(id) {
128
+ let image = this.selectedImagesTarget.querySelector(`img[data-image-id="${id}"]`)
129
+ this.selectedImagesTarget.removeChild(image)
130
+ }
131
+
132
+ get trixEditor() {
133
+ return document.querySelector(`trix-editor[toolbar="${this.inputTarget.value}"]`)
134
+ }
135
+
136
+ get selectedIds() {
137
+ return this.selectedImageTargets.map(function(image) {
138
+ return image.dataset.imageId
139
+ })
140
+ }
141
+
142
+ get imageCollectionPlaceholder() {
143
+ return document.querySelector(`#${this.inputTarget.value}`)
144
+ }
145
+
146
+ get hiddenInputs() {
147
+ return document.querySelector(`#${this.inputTarget.value}`)
148
+ }
149
+
150
+ get imageIdInput() {
151
+ return this.hiddenInputs.querySelector("input[data-target='image-form.imageId']")
152
+ }
153
+
154
+ get signedBlobIdInput() {
155
+ return this.hiddenInputs.querySelector("input[data-target='image-form.signedBlobId']")
156
+ }
157
+
158
+ get filenameInput() {
159
+ return this.hiddenInputs.querySelector("input[data-target='image-form.filename']")
160
+ }
161
+
162
+ get placeholder() {
163
+ return this.hiddenInputs.nextElementSibling
164
+ }
165
+
166
+ get token() {
167
+ return document.querySelector('meta[name="csrf-token"]').content
168
+ }
169
+
170
+ })
171
+ })()