pages_core 3.11.3 → 3.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/app/assets/builds/fonts/661557ef.ttf +0 -0
  4. data/app/assets/builds/fonts/a18fc2d2.woff2 +0 -0
  5. data/app/assets/builds/fonts/b2c7b78f.woff2 +0 -0
  6. data/app/assets/builds/fonts/ceddc204.ttf +0 -0
  7. data/app/assets/builds/pages_core/admin-dist.js +4 -3
  8. data/app/assets/builds/pages_core/admin.css +9233 -0
  9. data/app/assets/images/pages/admin/angle-down-solid.svg +1 -0
  10. data/app/assets/images/pages/admin/icon.svg +1 -0
  11. data/app/assets/stylesheets/pages_core/admin/components/archive.css +6 -0
  12. data/app/assets/stylesheets/{pages/admin/components/attachments.scss → pages_core/admin/components/attachments.css} +35 -28
  13. data/app/assets/stylesheets/{pages/admin.scss → pages_core/admin/components/base.css} +125 -143
  14. data/app/assets/stylesheets/pages_core/admin/components/forms.css +223 -0
  15. data/app/assets/stylesheets/{pages/admin/components/header.scss → pages_core/admin/components/header.css} +78 -48
  16. data/app/assets/stylesheets/{pages/admin/components/image_editor.scss → pages_core/admin/components/image_editor.css} +42 -31
  17. data/app/assets/stylesheets/{pages/admin/components/image_grid.scss → pages_core/admin/components/image_grid.css} +76 -64
  18. data/app/assets/stylesheets/{pages/admin/components/image_uploader.scss → pages_core/admin/components/image_uploader.css} +12 -12
  19. data/app/assets/stylesheets/{pages/admin/components/layout.scss → pages_core/admin/components/layout.css} +13 -9
  20. data/app/assets/stylesheets/pages_core/admin/components/links.css +40 -0
  21. data/app/assets/stylesheets/pages_core/admin/components/list_table.css +66 -0
  22. data/app/assets/stylesheets/{pages/admin/components/login.scss → pages_core/admin/components/login.css} +6 -5
  23. data/app/assets/stylesheets/{pages/admin/components/modal.scss → pages_core/admin/components/modal.css} +10 -32
  24. data/app/assets/stylesheets/{pages/admin/components/page_tree.scss → pages_core/admin/components/page_tree.css} +54 -55
  25. data/app/assets/stylesheets/{pages/admin/components/pagination.scss → pages_core/admin/components/pagination.css} +17 -17
  26. data/app/assets/stylesheets/{pages/admin/components/sidebar.scss → pages_core/admin/components/sidebar.css} +8 -7
  27. data/app/assets/stylesheets/{pages/admin/components/tag_editor.scss → pages_core/admin/components/tag_editor.css} +10 -15
  28. data/app/assets/stylesheets/{pages/admin/components/textarea.scss → pages_core/admin/components/textarea.css} +1 -1
  29. data/app/assets/stylesheets/{pages/admin/components/toast.scss → pages_core/admin/components/toast.css} +5 -3
  30. data/app/assets/stylesheets/{pages/admin/components/toolbar.scss → pages_core/admin/components/toolbar.css} +56 -29
  31. data/app/assets/stylesheets/{pages/admin/controllers/pages.scss → pages_core/admin/controllers/pages.css} +63 -52
  32. data/app/assets/stylesheets/pages_core/admin/controllers/users.css +3 -0
  33. data/app/assets/stylesheets/pages_core/admin/vars.css +34 -0
  34. data/app/assets/stylesheets/pages_core/admin.postcss.css +9 -0
  35. data/app/controllers/admin/calendars_controller.rb +36 -0
  36. data/app/controllers/admin/categories_controller.rb +2 -2
  37. data/app/controllers/admin/news_controller.rb +58 -0
  38. data/app/controllers/admin/pages_controller.rb +2 -3
  39. data/app/controllers/admin/password_resets_controller.rb +4 -4
  40. data/app/controllers/admin/users_controller.rb +4 -4
  41. data/app/controllers/errors_controller.rb +1 -1
  42. data/app/controllers/sessions_controller.rb +1 -1
  43. data/app/formatters/pages_core/image_embedder.rb +5 -27
  44. data/app/helpers/admin/calendars_helper.rb +37 -0
  45. data/app/helpers/admin/news_helper.rb +13 -0
  46. data/app/helpers/pages_core/admin/admin_helper.rb +11 -54
  47. data/app/helpers/pages_core/admin/content_tabs_helper.rb +1 -0
  48. data/app/helpers/pages_core/admin/deprecated_admin_helper.rb +40 -0
  49. data/app/helpers/pages_core/admin/labelled_field_helper.rb +1 -1
  50. data/app/helpers/pages_core/application_helper.rb +1 -1
  51. data/app/helpers/pages_core/images_helper.rb +37 -0
  52. data/app/javascript/components/Attachments/Attachment.jsx +2 -2
  53. data/app/javascript/components/EditableImage.jsx +1 -1
  54. data/app/javascript/components/ImageCropper/Toolbar.jsx +3 -3
  55. data/app/javascript/components/PageTreeNode.jsx +9 -17
  56. data/app/javascript/components/RichTextToolbarButton.jsx +1 -1
  57. data/app/javascript/components/Toast.jsx +1 -1
  58. data/app/mailers/admin_mailer.rb +1 -0
  59. data/app/models/category.rb +1 -1
  60. data/app/models/concerns/pages_core/page_model/dated_page.rb +38 -0
  61. data/app/models/invite.rb +8 -0
  62. data/app/models/page.rb +1 -1
  63. data/app/policies/page_policy.rb +2 -6
  64. data/app/views/admin/calendars/_sidebar.html.erb +47 -0
  65. data/app/views/admin/calendars/show.html.erb +45 -0
  66. data/app/views/admin/invites/new.html.erb +2 -8
  67. data/app/views/admin/invites/show.html.erb +8 -8
  68. data/app/views/admin/news/_sidebar.html.erb +48 -0
  69. data/app/views/admin/news/index.html.erb +53 -0
  70. data/app/views/admin/pages/_list_item.html.erb +2 -1
  71. data/app/views/admin/pages/deleted.html.erb +10 -8
  72. data/app/views/admin/pages/edit.html.erb +20 -11
  73. data/app/views/admin/pages/index.html.erb +7 -8
  74. data/app/views/admin/pages/new.html.erb +10 -14
  75. data/app/views/admin/password_resets/show.html.erb +7 -7
  76. data/app/views/admin/users/deactivated.html.erb +6 -7
  77. data/app/views/admin/users/edit.html.erb +7 -9
  78. data/app/views/admin/users/index.html.erb +3 -6
  79. data/app/views/admin/users/login.html.erb +7 -8
  80. data/app/views/admin/users/new.html.erb +8 -8
  81. data/app/views/admin/users/new_password.html.erb +5 -6
  82. data/app/views/admin/users/show.html.erb +11 -9
  83. data/app/views/errors/401.html.erb +2 -1
  84. data/app/views/errors/403.html.erb +2 -1
  85. data/app/views/errors/404.html.erb +1 -3
  86. data/app/views/errors/405.html.erb +2 -1
  87. data/app/views/errors/422.html.erb +2 -1
  88. data/app/views/errors/500.html.erb +2 -3
  89. data/app/views/layouts/admin/_header.html.erb +5 -18
  90. data/app/views/layouts/admin/_page_header.html.erb +9 -7
  91. data/app/views/layouts/admin.html.erb +3 -3
  92. data/app/views/layouts/errors.html.erb +129 -6
  93. data/config/routes.rb +7 -2
  94. data/lib/pages_core/engine.rb +4 -3
  95. data/lib/pages_core/pages_plugin.rb +6 -1
  96. data/lib/pages_core.rb +0 -1
  97. data/lib/rails/generators/pages_core/install/install_generator.rb +2 -2
  98. data/lib/rails/generators/pages_core/install/templates/delayed_job +2 -3
  99. data/lib/rails/generators/pages_core/rspec/templates/rails_helper.rb +2 -2
  100. metadata +45 -199
  101. data/app/assets/images/pages/admin/icon.png +0 -0
  102. data/app/assets/images/pages/admin/image-editor-bg.png +0 -0
  103. data/app/assets/images/pages/admin/list-table-pin-blue.gif +0 -0
  104. data/app/assets/images/pages/admin/list-table-pin-disabled.gif +0 -0
  105. data/app/assets/images/pages/admin/list-table-pin-green.gif +0 -0
  106. data/app/assets/images/pages/admin/list-table-pin-red.gif +0 -0
  107. data/app/assets/images/pages/admin/list-table-pin-yellow.gif +0 -0
  108. data/app/assets/images/pages/admin/loading-modal.gif +0 -0
  109. data/app/assets/images/pages/feed-icon-14x14.png +0 -0
  110. data/app/assets/stylesheets/pages/admin/components/archive.scss +0 -6
  111. data/app/assets/stylesheets/pages/admin/components/buttons.scss +0 -23
  112. data/app/assets/stylesheets/pages/admin/components/forms.scss +0 -169
  113. data/app/assets/stylesheets/pages/admin/components/links.scss +0 -43
  114. data/app/assets/stylesheets/pages/admin/components/list_table.scss +0 -61
  115. data/app/assets/stylesheets/pages/admin/controllers/users.scss +0 -3
  116. data/app/assets/stylesheets/pages/admin/mixins/breakpoints.scss +0 -21
  117. data/app/assets/stylesheets/pages/admin/mixins/clearfix.scss +0 -7
  118. data/app/assets/stylesheets/pages/admin/mixins/gradients.scss +0 -7
  119. data/app/assets/stylesheets/pages/admin/vars.scss +0 -30
  120. data/app/assets/stylesheets/pages/errors.css +0 -128
  121. data/app/controllers/concerns/pages_core/admin/news_page_controller.rb +0 -67
  122. data/app/views/admin/pages/news.html.erb +0 -83
  123. data/vendor/assets/stylesheets/ReactCrop.css +0 -167
  124. /data/app/assets/stylesheets/{pages/admin/components/tabs.scss → pages_core/admin/components/tabs.css} +0 -0
@@ -1,7 +0,0 @@
1
- %clearfix {
2
- &:after {
3
- content: "";
4
- display: table;
5
- clear: both;
6
- }
7
- }
@@ -1,7 +0,0 @@
1
- @mixin vertical-gradient($start, $stop) {
2
- background: $start;
3
- background: -moz-linear-gradient(top, $start 0%, $stop 100%);
4
- background: -webkit-linear-gradient(top, $start 0%,$stop 100%);
5
- background: linear-gradient(to bottom, $start 0%,$stop 100%);
6
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='$start', endColorstr='$stop',GradientType=0 );
7
- }
@@ -1,30 +0,0 @@
1
- $breakpoint-mobile: 900px;
2
-
3
- $c-red: #c00007;
4
- $c-red-invert: #fff0f3;
5
- $c-green: #19ac1e;
6
- $c-blue: #1d7195;
7
- $c-blue-dark: darken($c-blue, 15%);
8
-
9
- $c-warn-light: #ffdfa0;
10
-
11
- $c-background: #fff;
12
- $c-background-invert: #000;
13
- $c-background-disabled: #f8f8f8;
14
-
15
- $c-text: #111;
16
- $c-text-light: #666;
17
- $c-text-lighter: #999;
18
- $c-text-invert: #fff;
19
-
20
- $c-border: #ddd;
21
- $c-border-light: #eee;
22
-
23
- $c-link: $c-blue;
24
- $c-link-hover: darken($c-link, 10%);
25
- $c-create: $c-green;
26
- $c-create-hover: darken($c-create, 10%);
27
- $c-delete: $c-red;
28
- $c-delete-hover: darken($c-delete, 10%);
29
-
30
- $c-button: #f6f6f6;
@@ -1,128 +0,0 @@
1
- body {
2
- background: #fff;
3
- background: linear-gradient(180deg, rgba(236,236,236,1) 0%, rgba(255,255,255,1) 50%);
4
- background-repeat: no-repeat;
5
- margin: 0;
6
- padding: 0;
7
- border: 0;
8
- font-family: Helvetica, Arial, sans-serif;
9
- font-size: 16px;
10
- color: #111;
11
- line-height: 1.5;
12
- }
13
-
14
- #content {
15
- width: 600px;
16
- margin: 150px auto;
17
- }
18
-
19
- h1, h2, h3, h4, h5, h6, p, ul, form {
20
- margin: 0 0 16px 0;
21
- }
22
-
23
- h4 {
24
- margin-bottom: 0;
25
- font-size: 1em;
26
- font-weight: bold;
27
- }
28
- h4 em {
29
- font-weight: normal;
30
- font-style: normal;
31
- }
32
-
33
- ul {
34
- list-style-type: disc;
35
- list-style-position: inside;
36
- padding: 0;
37
- }
38
- ul li {
39
- margin: 0;
40
- padding: 0;
41
- }
42
-
43
- h1 {
44
- font-weight: bold;
45
- color: #111;
46
- font-size: 36px;
47
- }
48
-
49
- p.footer {
50
- margin-top: 64px;
51
- font-size: 12px;
52
- color: #868686;
53
- }
54
- p.error_id {
55
- margin-top: 64px;
56
- font-size: 12px;
57
- color: #DCDBD2;
58
- }
59
-
60
- input[type=text], textarea {
61
- vertical-align: top;
62
- border: 1px solid #c4c2bb;
63
- color: #444;
64
- font-family: Helvetica, Arial, sans-serif;
65
- font-size: 18px;
66
- padding: 6px 8px 6px 8px;
67
- width: 490px;
68
- border-radius: 3px;
69
- }
70
- input.with_button {
71
- width: 400px;
72
- margin-right: 4px;
73
- }
74
-
75
- a, a:visited {
76
- color: #0751b6;
77
- text-decoration: underline;
78
- }
79
- a:hover {
80
- color: #042d65;
81
- }
82
-
83
- form {
84
- vertical-align: top;
85
- }
86
-
87
- .poem {
88
- }
89
-
90
-
91
- button.clean-gray {
92
- background-color: #eeeeee;
93
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eeeeee), color-stop(100%, #cccccc));
94
- background-image: -webkit-linear-gradient(top, #f8f8f8, #e0e0e0);
95
- background-image: -moz-linear-gradient(top, #f8f8f8, #e0e0e0);
96
- background-image: -ms-linear-gradient(top, #f8f8f8, #e0e0e0);
97
- background-image: -o-linear-gradient(top, #f8f8f8, #e0e0e0);
98
- background-image: linear-gradient(top, #f8f8f8, #e0e0e0);
99
- border: 1px solid #ccc;
100
- border-bottom: 1px solid #bbb;
101
- -webkit-border-radius: 3px;
102
- -moz-border-radius: 3px;
103
- border-radius: 3px;
104
- color: #333;
105
- font: bold 15px Helvetica, Arial, sans-serif;
106
- line-height: 1;
107
- padding: 9px 0;
108
- text-align: center;
109
- text-shadow: 0 1px 0 #eee;
110
- width: 150px; }
111
- button.clean-gray:hover {
112
- background-color: #dddddd;
113
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #dddddd), color-stop(100%, #bbbbbb));
114
- background-image: -webkit-linear-gradient(top, #f0f0f0, #dddddd);
115
- background-image: -moz-linear-gradient(top, #f0f0f0, #dddddd);
116
- background-image: -ms-linear-gradient(top, #f0f0f0, #dddddd);
117
- background-image: -o-linear-gradient(top, #f0f0f0, #dddddd);
118
- background-image: linear-gradient(top, #f0f0f0, #dddddd);
119
- border: 1px solid #bbb;
120
- border-bottom: 1px solid #aaa;
121
- cursor: pointer;
122
- text-shadow: 0 1px 0 #ddd; }
123
- button.clean-gray:active {
124
- border: 1px solid #aaa;
125
- border-bottom: 1px solid #888;
126
- -webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
127
- -moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
128
- box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; }
@@ -1,67 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module PagesCore
4
- module Admin
5
- module NewsPageController
6
- extend ActiveSupport::Concern
7
-
8
- included do
9
- before_action :require_news_pages, only: [:news]
10
- before_action :find_news_pages, only: %i[news new_news]
11
- before_action :find_year_and_month, only: %i[news]
12
- end
13
-
14
- def news
15
- @archive_finder = archive_finder(@news_pages, @locale)
16
- unless @year
17
- redirect_to(news_admin_pages_path(@locale,
18
- (@archive_finder.latest_year ||
19
- Time.zone.now.year)))
20
- return
21
- end
22
- @pages = @archive_finder.by_year_and_maybe_month(@year, @month)
23
- .paginate(per_page: 50, page: params[:page])
24
- end
25
-
26
- def new_news
27
- new
28
- render action: :new
29
- end
30
-
31
- private
32
-
33
- def archive_finder(parents, locale)
34
- Page.where(parent_page_id: parents)
35
- .visible
36
- .order("published_at DESC")
37
- .in_locale(locale)
38
- .archive_finder
39
- end
40
-
41
- def find_news_pages
42
- @news_pages = Page.news_pages
43
- .in_locale(@locale)
44
- .reorder("parent_page_id ASC, position ASC")
45
- return if @news_pages.any?
46
-
47
- redirect_to(admin_pages_url(@locale))
48
- end
49
-
50
- def find_year_and_month
51
- @year = params[:year]&.to_i
52
- @month = params[:month]&.to_i
53
- end
54
-
55
- # Redirect away if no news pages has been configured
56
- def require_news_pages
57
- return if Page.news_pages.any?
58
-
59
- redirect_to(admin_pages_url(@locale))
60
- end
61
-
62
- def latest_year
63
- archive_finder.latest_year_and_month.first || Time.zone.now.year
64
- end
65
- end
66
- end
67
- end
@@ -1,83 +0,0 @@
1
- <%
2
- month_names = %w{January February March April May June July August September October November December}
3
- page_title "News"
4
- page_description "<em>News: #{month_names[@month - 1] if @month} #{@year}</em>"
5
-
6
- if PagesCore.config.localizations?
7
- self.page_description_links = 'In ' + PagesCore.config.locales.map{ |l, n| link_to_unless_current n, news_admin_pages_path(l) }.join(link_separator)
8
- end
9
- %>
10
-
11
- <% content_for :sidebar do %>
12
- <% if policy(Page).new_news? %>
13
- <h2>New article</h2>
14
- <p>
15
- <%= form_tag new_news_admin_pages_path, method: :get do %>
16
- In
17
- <%= select_tag('parent',
18
- options_for_select(@news_pages.map{|p| [news_section_name(p, @news_pages).gsub("&raquo;", "»"), p.id] })) %>
19
- <%= submit_tag "Go", name: nil %>
20
- <% end %>
21
- </p>
22
- <% end %>
23
- <div class="archive-index">
24
- <% @archive_finder.years_with_count.reverse.each do |year, year_count| %>
25
- <h2>
26
- <%= link_to_unless_current(year,
27
- news_admin_pages_path(
28
- @locale,
29
- year: year,
30
- category: @category&.slug)
31
- ) %>
32
- <%= ": #{@category.name}" if @category %>
33
- <span class="count">
34
- (<%= year_count %>)
35
- </span>
36
- </h2>
37
- <ul>
38
- <% @archive_finder.months_in_year_with_count(year).reverse.each do |month, page_count| %>
39
- <li>
40
- <% if year == @year && month == @month %>
41
- <strong>
42
- <%= month_names[month-1] %>
43
- </strong>
44
- (<%= page_count %>)
45
- <% else %>
46
- <%= link_to(month_names[month-1],
47
- news_admin_pages_path(@locale,
48
- month: month,
49
- year: year,
50
- category: @category&.slug)) %>
51
- <span class="count">
52
- (<%= page_count %>)
53
- </span>
54
- <% end %>
55
- </li>
56
- <% end %>
57
- </ul>
58
- <% end %>
59
- </div>
60
- <% end %>
61
-
62
- <% if @pages.length > 0 %>
63
- <table class="list news-item-list">
64
- <tr>
65
- <th>Name</th>
66
- <th>Published</th>
67
- <th>Author</th>
68
- <th>Section</th>
69
- </tr>
70
- <% @pages.each do |page| %>
71
- <%= render(partial: "list_item",
72
- locals: { page: page, author: true, section: true }) %>
73
- <% end %>
74
- </table>
75
-
76
- <%= will_paginate @pages, renderer: PagesCore::LinkRenderer %>
77
- <% else %>
78
- <div class="content">
79
- <p>
80
- No news items have been posted yet.
81
- </p>
82
- </div>
83
- <% end %>
@@ -1,167 +0,0 @@
1
- .ReactCrop {
2
- position: relative;
3
- display: inline-block;
4
- cursor: crosshair;
5
- overflow: hidden;
6
- max-width: 100%;
7
- background-color: #000; }
8
- .ReactCrop:focus {
9
- outline: none; }
10
- .ReactCrop--disabled {
11
- cursor: inherit; }
12
- .ReactCrop__image {
13
- /* autoprefixer: off */
14
- display: block;
15
- max-width: 100%;
16
- max-height: -webkit-fill-available;
17
- max-height: -moz-available;
18
- max-height: stretch; }
19
- .ReactCrop--crop-invisible .ReactCrop__image {
20
- opacity: 0.5; }
21
- .ReactCrop__crop-selection {
22
- position: absolute;
23
- top: 0;
24
- left: 0;
25
- transform: translate3d(0, 0, 0);
26
- box-sizing: border-box;
27
- cursor: move;
28
- box-shadow: 0 0 0 9999em rgba(0, 0, 0, 0.5);
29
- border: 1px solid;
30
- border-image-source: url("data:image/gif;base64,R0lGODlhCgAKAJECAAAAAP///////wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEI5RDc5MTFDNkE2MTFFM0JCMDZEODI2QTI4MzJBOTIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEI5RDc5MTBDNkE2MTFFM0JCMDZEODI2QTI4MzJBOTIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE4MDgzQzNDMjA5MzREQ0ZDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE4MDgzQzNDMjA5MzREQ0ZDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQoAAgAsAAAAAAoACgAAAhWEERkn7W3ei7KlagMWF/dKgYeyGAUAIfkEBQoAAgAsAAAAAAoACgAAAg+UYwLJ7RnQm7QmsCyVKhUAIfkEBQoAAgAsAAAAAAoACgAAAhCUYgLJHdiinNSAVfOEKoUCACH5BAUKAAIALAAAAAAKAAoAAAIRVISAdusPo3RAzYtjaMIaUQAAIfkEBQoAAgAsAAAAAAoACgAAAg+MDiem7Q8bSLFaG5il6xQAIfkEBQoAAgAsAAAAAAoACgAAAg+UYRLJ7QnQm7SmsCyVKhUAIfkEBQoAAgAsAAAAAAoACgAAAhCUYBLJDdiinNSEVfOEKoECACH5BAUKAAIALAAAAAAKAAoAAAIRFISBdusPo3RBzYsjaMIaUQAAOw==");
31
- border-image-slice: 1;
32
- border-image-repeat: repeat; }
33
- .ReactCrop--disabled .ReactCrop__crop-selection {
34
- cursor: inherit; }
35
- .ReactCrop__drag-handle {
36
- position: absolute;
37
- width: 9px;
38
- height: 9px;
39
- background-color: rgba(0, 0, 0, 0.2);
40
- border: 1px solid rgba(255, 255, 255, 0.7);
41
- box-sizing: border-box;
42
- outline: 1px solid transparent; }
43
- .ReactCrop .ord-nw {
44
- top: 0;
45
- left: 0;
46
- margin-top: -5px;
47
- margin-left: -5px;
48
- cursor: nw-resize; }
49
- .ReactCrop .ord-n {
50
- top: 0;
51
- left: 50%;
52
- margin-top: -5px;
53
- margin-left: -5px;
54
- cursor: n-resize; }
55
- .ReactCrop .ord-ne {
56
- top: 0;
57
- right: 0;
58
- margin-top: -5px;
59
- margin-right: -5px;
60
- cursor: ne-resize; }
61
- .ReactCrop .ord-e {
62
- top: 50%;
63
- right: 0;
64
- margin-top: -5px;
65
- margin-right: -5px;
66
- cursor: e-resize; }
67
- .ReactCrop .ord-se {
68
- bottom: 0;
69
- right: 0;
70
- margin-bottom: -5px;
71
- margin-right: -5px;
72
- cursor: se-resize; }
73
- .ReactCrop .ord-s {
74
- bottom: 0;
75
- left: 50%;
76
- margin-bottom: -5px;
77
- margin-left: -5px;
78
- cursor: s-resize; }
79
- .ReactCrop .ord-sw {
80
- bottom: 0;
81
- left: 0;
82
- margin-bottom: -5px;
83
- margin-left: -5px;
84
- cursor: sw-resize; }
85
- .ReactCrop .ord-w {
86
- top: 50%;
87
- left: 0;
88
- margin-top: -5px;
89
- margin-left: -5px;
90
- cursor: w-resize; }
91
- .ReactCrop__disabled .ReactCrop__drag-handle {
92
- cursor: inherit; }
93
- .ReactCrop__drag-bar {
94
- position: absolute; }
95
- .ReactCrop__drag-bar.ord-n {
96
- top: 0;
97
- left: 0;
98
- width: 100%;
99
- height: 6px;
100
- margin-top: -3px; }
101
- .ReactCrop__drag-bar.ord-e {
102
- right: 0;
103
- top: 0;
104
- width: 6px;
105
- height: 100%;
106
- margin-right: -3px; }
107
- .ReactCrop__drag-bar.ord-s {
108
- bottom: 0;
109
- left: 0;
110
- width: 100%;
111
- height: 6px;
112
- margin-bottom: -3px; }
113
- .ReactCrop__drag-bar.ord-w {
114
- top: 0;
115
- left: 0;
116
- width: 6px;
117
- height: 100%;
118
- margin-left: -3px; }
119
- .ReactCrop--new-crop .ReactCrop__drag-bar,
120
- .ReactCrop--new-crop .ReactCrop__drag-handle,
121
- .ReactCrop--fixed-aspect .ReactCrop__drag-bar {
122
- display: none; }
123
- .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,
124
- .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,
125
- .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,
126
- .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w {
127
- display: none; }
128
- @media (max-width: 768px), (pointer: coarse) {
129
- .ReactCrop__drag-handle {
130
- width: 17px;
131
- height: 17px; }
132
- .ReactCrop .ord-nw {
133
- margin-top: -9px;
134
- margin-left: -9px; }
135
- .ReactCrop .ord-n {
136
- margin-top: -9px;
137
- margin-left: -9px; }
138
- .ReactCrop .ord-ne {
139
- margin-top: -9px;
140
- margin-right: -9px; }
141
- .ReactCrop .ord-e {
142
- margin-top: -9px;
143
- margin-right: -9px; }
144
- .ReactCrop .ord-se {
145
- margin-bottom: -9px;
146
- margin-right: -9px; }
147
- .ReactCrop .ord-s {
148
- margin-bottom: -9px;
149
- margin-left: -9px; }
150
- .ReactCrop .ord-sw {
151
- margin-bottom: -9px;
152
- margin-left: -9px; }
153
- .ReactCrop .ord-w {
154
- margin-top: -9px;
155
- margin-left: -9px; }
156
- .ReactCrop__drag-bar.ord-n {
157
- height: 14px;
158
- margin-top: -7px; }
159
- .ReactCrop__drag-bar.ord-e {
160
- width: 14px;
161
- margin-right: -7px; }
162
- .ReactCrop__drag-bar.ord-s {
163
- height: 14px;
164
- margin-bottom: -7px; }
165
- .ReactCrop__drag-bar.ord-w {
166
- width: 14px;
167
- margin-left: -7px; } }