katalyst-koi 4.6.0 → 4.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/builds/koi/admin.css +1 -1
- data/app/assets/builds/koi/admin.css.map +1 -1
- data/app/components/koi/content/editor/errors_component.rb +0 -1
- data/app/components/koi/navigation/editor/errors_component.rb +0 -1
- data/app/components/koi/tables/cells/attachment_component.rb +60 -0
- data/app/components/koi/tables/cells/link_component.rb +43 -0
- data/app/components/koi/tables/table_component.rb +54 -5
- data/app/controllers/admin/admin_users_controller.rb +1 -5
- data/app/controllers/admin/url_rewrites_controller.rb +1 -5
- data/app/controllers/concerns/koi/controller/is_admin_controller.rb +1 -0
- data/app/helpers/koi/index_actions_helper.rb +1 -1
- data/app/views/admin/admin_users/index.html.erb +6 -1
- data/app/views/admin/credentials/_credentials.html.erb +3 -3
- data/app/views/admin/url_rewrites/index.html.erb +7 -1
- data/app/views/layouts/koi/application.html.erb +3 -0
- data/config/locales/pagy.en.yml +1 -0
- data/lib/generators/koi/admin_controller/templates/controller.rb.tt +1 -5
- data/lib/generators/koi/admin_views/admin_views_generator.rb +1 -1
- data/lib/generators/koi/admin_views/templates/index.html.erb.tt +16 -1
- metadata +23 -19
- data/app/assets/builds/koi/nav_items.css +0 -1
- data/app/components/koi/index_table_component.rb +0 -26
- data/app/components/koi/ordinal_table_component.rb +0 -27
- data/app/components/koi/tables/body.rb +0 -228
- data/app/components/koi/tables/body_cell_component.rb +0 -21
- data/app/components/koi/tables/body_row_component.rb +0 -142
- data/app/components/koi/tables/header.rb +0 -63
- data/app/components/koi/tables/header_cell_component.rb +0 -38
- data/app/components/koi/tables/header_row_component.rb +0 -213
- data/app/views/admin/admin_users/_admin.html+row.erb +0 -2
- data/app/views/admin/url_rewrites/_url_rewrite.html+row.erb +0 -3
- data/lib/generators/koi/admin_views/templates/_record.html+row.erb.tt +0 -7
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: katalyst-koi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katalyst Interactive
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -150,6 +150,20 @@ dependencies:
|
|
150
150
|
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: katalyst-html-attributes
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: katalyst-kpop
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,7 +206,7 @@ dependencies:
|
|
192
206
|
- - ">="
|
193
207
|
- !ruby/object:Gem::Version
|
194
208
|
version: '0'
|
195
|
-
description:
|
209
|
+
description:
|
196
210
|
email:
|
197
211
|
- developers@katalyst.com.au
|
198
212
|
executables: []
|
@@ -204,7 +218,6 @@ files:
|
|
204
218
|
- Upgrade.md
|
205
219
|
- app/assets/builds/koi/admin.css
|
206
220
|
- app/assets/builds/koi/admin.css.map
|
207
|
-
- app/assets/builds/koi/nav_items.css
|
208
221
|
- app/assets/config/koi.js
|
209
222
|
- app/assets/images/koi/application/chevron-right.svg
|
210
223
|
- app/assets/images/koi/application/glyphicons-halflings-white.png
|
@@ -300,10 +313,8 @@ files:
|
|
300
313
|
- app/components/koi/header/show_component.rb
|
301
314
|
- app/components/koi/header_component.html.erb
|
302
315
|
- app/components/koi/header_component.rb
|
303
|
-
- app/components/koi/index_table_component.rb
|
304
316
|
- app/components/koi/navigation/editor/errors_component.html.erb
|
305
317
|
- app/components/koi/navigation/editor/errors_component.rb
|
306
|
-
- app/components/koi/ordinal_table_component.rb
|
307
318
|
- app/components/koi/summary_list/attachment_component.rb
|
308
319
|
- app/components/koi/summary_list/base.rb
|
309
320
|
- app/components/koi/summary_list/boolean_component.rb
|
@@ -315,12 +326,8 @@ files:
|
|
315
326
|
- app/components/koi/summary_list/text_component.rb
|
316
327
|
- app/components/koi/summary_list_component.html.erb
|
317
328
|
- app/components/koi/summary_list_component.rb
|
318
|
-
- app/components/koi/tables/
|
319
|
-
- app/components/koi/tables/
|
320
|
-
- app/components/koi/tables/body_row_component.rb
|
321
|
-
- app/components/koi/tables/header.rb
|
322
|
-
- app/components/koi/tables/header_cell_component.rb
|
323
|
-
- app/components/koi/tables/header_row_component.rb
|
329
|
+
- app/components/koi/tables/cells/attachment_component.rb
|
330
|
+
- app/components/koi/tables/cells/link_component.rb
|
324
331
|
- app/components/koi/tables/table_component.rb
|
325
332
|
- app/controllers/admin/admin_users_controller.rb
|
326
333
|
- app/controllers/admin/application_controller.rb
|
@@ -346,7 +353,6 @@ files:
|
|
346
353
|
- app/models/application_record.rb
|
347
354
|
- app/models/concerns/koi/model/archivable.rb
|
348
355
|
- app/models/url_rewrite.rb
|
349
|
-
- app/views/admin/admin_users/_admin.html+row.erb
|
350
356
|
- app/views/admin/admin_users/_fields.html.erb
|
351
357
|
- app/views/admin/admin_users/edit.html.erb
|
352
358
|
- app/views/admin/admin_users/index.html.erb
|
@@ -365,7 +371,6 @@ files:
|
|
365
371
|
- app/views/admin/tokens/create.turbo_stream.erb
|
366
372
|
- app/views/admin/tokens/show.html.erb
|
367
373
|
- app/views/admin/url_rewrites/_fields.html.erb
|
368
|
-
- app/views/admin/url_rewrites/_url_rewrite.html+row.erb
|
369
374
|
- app/views/admin/url_rewrites/edit.html.erb
|
370
375
|
- app/views/admin/url_rewrites/index.html.erb
|
371
376
|
- app/views/admin/url_rewrites/new.html.erb
|
@@ -424,7 +429,6 @@ files:
|
|
424
429
|
- lib/generators/koi/admin_views/USAGE
|
425
430
|
- lib/generators/koi/admin_views/admin_views_generator.rb
|
426
431
|
- lib/generators/koi/admin_views/templates/_fields.html.erb.tt
|
427
|
-
- lib/generators/koi/admin_views/templates/_record.html+row.erb.tt
|
428
432
|
- lib/generators/koi/admin_views/templates/edit.html.erb.tt
|
429
433
|
- lib/generators/koi/admin_views/templates/index.html.erb.tt
|
430
434
|
- lib/generators/koi/admin_views/templates/new.html.erb.tt
|
@@ -451,7 +455,7 @@ licenses:
|
|
451
455
|
- MIT
|
452
456
|
metadata:
|
453
457
|
rubygems_mfa_required: 'true'
|
454
|
-
post_install_message:
|
458
|
+
post_install_message:
|
455
459
|
rdoc_options: []
|
456
460
|
require_paths:
|
457
461
|
- lib
|
@@ -466,8 +470,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
466
470
|
- !ruby/object:Gem::Version
|
467
471
|
version: '0'
|
468
472
|
requirements: []
|
469
|
-
rubygems_version: 3.
|
470
|
-
signing_key:
|
473
|
+
rubygems_version: 3.5.9
|
474
|
+
signing_key:
|
471
475
|
specification_version: 4
|
472
476
|
summary: Koi CMS admin framework
|
473
477
|
test_files: []
|
@@ -1 +0,0 @@
|
|
1
|
-
[data-whatinput=mouse] .disable-mouse-outline{outline:0}ul.row,ol.row,.row{margin-left:-16px;margin-right:-16px;margin-top:-16px;margin-bottom:-16px}ul.row:after,ol.row:after,.row:after{content:"";display:table;clear:both}.text-wrap{word-wrap:break-word;overflow-wrap:break-word}.no-wrap{white-space:nowrap}.nested-link{color:#222;text-decoration:none}.nested-link:visited{color:#222}.nested-link:focus{color:#222}.nested-link:hover{color:#222}.nested-link:active{color:#222}.nested-link:hover{text-decoration:none}.nested-link .nested-link--target{color:#ff521f}.nested-link:hover .nested-link--target{text-decoration:underline}.overlay{position:relative}.overlay:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(46,46,46,.5);z-index:1}.overlay .overlay--content{position:relative;z-index:1;color:#fff}html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,code,del,dfn,em,img,q,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,dialog,figure,footer,header,hgroup,nav,section{margin:0;padding:0;border:0;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;box-sizing:border-box}ol,ul{list-style:none;padding:0}table{border-collapse:collapse;border-spacing:0}caption,th,td{text-align:left;font-weight:normal;vertical-align:middle}*{box-sizing:border-box}button{-webkit-appearance:inherit;-webkit-box-align:inherit;background:transparent;border:none;color:inherit;cursor:pointer;display:inline;font-family:inherit;font-size:inherit;font-weight:inherit;font:inherit;height:auto;line-height:inherit;margin:0;padding:0;text-align:inherit;text-transform:inherit;border-radius:0}html,body{height:100%;width:100%}h1,h2,h3,h4,h5,h6{text-rendering:optimizeLegibility}img{-ms-interpolation-mode:bicubic}img,embed,object,video,iframe{max-width:100%}body,.body-type{font-family:"Open Sans",sans-serif;font-style:normal;font-weight:normal;font-size:14px;line-height:1.5}.heading-one{font-family:"Open Sans",sans-serif;font-style:normal;font-weight:bold;font-size:44px;line-height:64px;font-weight:300}.heading-one em{font-family:"Open Sans",sans-serif;font-style:italic;font-weight:bold}.heading-one:first-child{margin-top:0}.heading-one:last-child{margin-bottom:0}@media only screen and (max-width: 480px){.heading-one{font-size:40px;line-height:50px}}.heading-two{font-family:"Open Sans",sans-serif;font-style:normal;font-weight:bold;font-size:28px;line-height:40px}.heading-two em{font-family:"Open Sans",sans-serif;font-style:italic;font-weight:bold}.heading-two:first-child{margin-top:0}.heading-two:last-child{margin-bottom:0}@media only screen and (max-width: 480px){.heading-two{line-height:36px;font-size:26px}}.heading-three{font-family:"Open Sans",sans-serif;font-style:normal;font-weight:bold;font-size:24px;line-height:34px}.heading-three em{font-family:"Open Sans",sans-serif;font-style:italic;font-weight:bold}.heading-three:first-child{margin-top:0}.heading-three:last-child{margin-bottom:0}@media only screen and (max-width: 480px){.heading-three{font-size:20px}}.heading-four{font-family:"Open Sans",sans-serif;font-style:normal;font-weight:bold;font-size:18px;line-height:1.5}.heading-four em{font-family:"Open Sans",sans-serif;font-style:italic;font-weight:bold}.heading-four:first-child{margin-top:0}.heading-four:last-child{margin-bottom:0}.heading-six{text-transform:uppercase;font-size:14px;color:#999}strong,b{font-family:"Open Sans",sans-serif;font-style:normal;font-weight:bold}em,i{font-family:"Open Sans",sans-serif;font-style:italic;font-weight:normal}em b,em strong,i b,i strong,b i,b em,strong i,strong em{font-family:"Open Sans",sans-serif;font-style:italic;font-weight:bold}small{font-family:"Open Sans",sans-serif;font-style:normal;font-weight:normal;font-size:12px;line-height:1}.small{font-size:12px}.grey{color:#999}a,button{text-decoration:none;color:#ff521f}a:hover,button:hover{text-decoration:underline}a:visited,button:visited{color:#ff521f}a:focus,button:focus{color:#ff521f}th{font-family:"Open Sans",sans-serif;font-style:normal;font-weight:bold}body{font-size:14px;line-height:1.5;color:#222;font-family:"Open Sans",sans-serif;font-style:normal;font-weight:normal}a,button{text-decoration:none;color:#ff521f}a:hover,button:hover{text-decoration:underline}a:visited,button:visited{color:#ff521f}a:focus,button:focus{color:#ff521f}.ornament-form [type=text],.ornament-form [type=password],.ornament-form [type=date],.ornament-form [type=datetime],.ornament-form [type=email],.ornament-form [type=number],.ornament-form [type=search],.ornament-form [type=tel],.ornament-form [type=time],.ornament-form [type=url],.ornament-form textarea{font:inherit;line-height:1.5;font-family:"Open Sans",sans-serif;font-style:normal;font-weight:normal}pre.code{border:1px solid #ececec;background:#fff;padding:.5em 1em;overflow:auto;word-wrap:normal;font-family:Consolas,"Liberation Mono",Courier,monospace;border-radius:4px;box-shadow:inset 1px 1px 2px rgba(0,0,0,.1);text-shadow:1px 1px #fff}span.code,code{font-family:Consolas,"Liberation Mono",Courier,monospace;border:1px solid #e1e3e6;background:#f2f4f5;padding:.3em .3em .2em;border-radius:4px;text-shadow:1px 1px #fff;white-space:nowrap}.link-disabled .icon-spinner{display:block;width:17px;height:17px}.link-disabled .icon-spinner path{fill:#ff521f}.svg .grunticon-chevron-double-left-16-white{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%220%200%2016%2016%22%20enable-background%3D%22new%200%200%2016%2016%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3Ecircle%2C%20ellipse%2C%20line%2C%20path%2C%20polygon%2C%20polyline%2C%20rect%2C%20text%20%7B%20fill%3A%20white%20!important%3B%20%7D%3C%2Fstyle%3E%3Cpath%20d%3D%22M0%2C8.001c0-0.154%2C0.057-0.289%2C0.17-0.402l6.625-6.625c0.113-0.113%2C0.248-0.17%2C0.402-0.17s0.289%2C0.057%2C0.402%2C0.17L9.08%2C2.456%20c0.111%2C0.113%2C0.17%2C0.247%2C0.17%2C0.402c0%2C0.154-0.059%2C0.288-0.17%2C0.401L4.339%2C8.001l4.741%2C4.741c0.111%2C0.111%2C0.17%2C0.248%2C0.17%2C0.4%20c0%2C0.154-0.059%2C0.289-0.17%2C0.402l-1.481%2C1.48c-0.113%2C0.113-0.248%2C0.17-0.401%2C0.17s-0.288-0.057-0.401-0.17L0.169%2C8.403%20C0.057%2C8.29%2C0%2C8.155%2C0%2C8.001z%22%2F%3E%3Cpath%20d%3D%22M6.75%2C8.001c0-0.154%2C0.057-0.289%2C0.17-0.402l6.625-6.625c0.113-0.113%2C0.248-0.17%2C0.402-0.17s0.289%2C0.057%2C0.402%2C0.17%20l1.48%2C1.482C15.941%2C2.569%2C16%2C2.703%2C16%2C2.858c0%2C0.154-0.059%2C0.288-0.17%2C0.401l-4.741%2C4.742l4.741%2C4.741%20c0.111%2C0.111%2C0.17%2C0.248%2C0.17%2C0.4c0%2C0.154-0.059%2C0.289-0.17%2C0.402l-1.48%2C1.48c-0.113%2C0.113-0.248%2C0.17-0.402%2C0.17%20c-0.152%2C0-0.287-0.057-0.4-0.17L6.919%2C8.403C6.807%2C8.29%2C6.75%2C8.155%2C6.75%2C8.001z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-chevron-double-left-16{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%220%200%2016%2016%22%20enable-background%3D%22new%200%200%2016%2016%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M0%2C8.001c0-0.154%2C0.057-0.289%2C0.17-0.402l6.625-6.625c0.113-0.113%2C0.248-0.17%2C0.402-0.17s0.289%2C0.057%2C0.402%2C0.17L9.08%2C2.456%20c0.111%2C0.113%2C0.17%2C0.247%2C0.17%2C0.402c0%2C0.154-0.059%2C0.288-0.17%2C0.401L4.339%2C8.001l4.741%2C4.741c0.111%2C0.111%2C0.17%2C0.248%2C0.17%2C0.4%20c0%2C0.154-0.059%2C0.289-0.17%2C0.402l-1.481%2C1.48c-0.113%2C0.113-0.248%2C0.17-0.401%2C0.17s-0.288-0.057-0.401-0.17L0.169%2C8.403%20C0.057%2C8.29%2C0%2C8.155%2C0%2C8.001z%22%2F%3E%3Cpath%20d%3D%22M6.75%2C8.001c0-0.154%2C0.057-0.289%2C0.17-0.402l6.625-6.625c0.113-0.113%2C0.248-0.17%2C0.402-0.17s0.289%2C0.057%2C0.402%2C0.17%20l1.48%2C1.482C15.941%2C2.569%2C16%2C2.703%2C16%2C2.858c0%2C0.154-0.059%2C0.288-0.17%2C0.401l-4.741%2C4.742l4.741%2C4.741%20c0.111%2C0.111%2C0.17%2C0.248%2C0.17%2C0.4c0%2C0.154-0.059%2C0.289-0.17%2C0.402l-1.48%2C1.48c-0.113%2C0.113-0.248%2C0.17-0.402%2C0.17%20c-0.152%2C0-0.287-0.057-0.4-0.17L6.919%2C8.403C6.807%2C8.29%2C6.75%2C8.155%2C6.75%2C8.001z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-chevron-double-right-16-white{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%220%200%2016%2016%22%20enable-background%3D%22new%200%200%2016%2016%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3Ecircle%2C%20ellipse%2C%20line%2C%20path%2C%20polygon%2C%20polyline%2C%20rect%2C%20text%20%7B%20fill%3A%20white%20!important%3B%20%7D%3C%2Fstyle%3E%3Cpath%20d%3D%22M0%2C13.143c0-0.153%2C0.057-0.289%2C0.17-0.401L4.911%2C8L0.17%2C3.259C0.057%2C3.146%2C0%2C3.011%2C0%2C2.857c0-0.155%2C0.057-0.289%2C0.17-0.402%20l1.482-1.482c0.113-0.113%2C0.247-0.17%2C0.402-0.17c0.155%2C0%2C0.289%2C0.057%2C0.402%2C0.17L9.08%2C7.598C9.193%2C7.711%2C9.252%2C7.846%2C9.252%2C8%20S9.193%2C8.289%2C9.08%2C8.402l-6.625%2C6.625c-0.113%2C0.113-0.247%2C0.17-0.402%2C0.17c-0.155%2C0-0.289-0.057-0.402-0.17L0.17%2C13.545%20C0.057%2C13.432%2C0%2C13.297%2C0%2C13.143z%22%2F%3E%3Cpath%20d%3D%22M6.748%2C13.143c0-0.153%2C0.057-0.289%2C0.17-0.401L11.658%2C8l-4.74-4.741c-0.113-0.113-0.17-0.248-0.17-0.402%20c0-0.155%2C0.057-0.289%2C0.17-0.402L8.4%2C0.973c0.112-0.113%2C0.246-0.17%2C0.401-0.17s0.289%2C0.057%2C0.401%2C0.17l6.625%2C6.625%20C15.941%2C7.711%2C16%2C7.846%2C16%2C8s-0.059%2C0.289-0.172%2C0.402l-6.625%2C6.625c-0.112%2C0.113-0.246%2C0.17-0.401%2C0.17s-0.289-0.057-0.401-0.17%20l-1.482-1.482C6.805%2C13.432%2C6.748%2C13.297%2C6.748%2C13.143z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-chevron-double-right-16{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%220%200%2016%2016%22%20enable-background%3D%22new%200%200%2016%2016%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M0%2C13.143c0-0.153%2C0.057-0.289%2C0.17-0.401L4.911%2C8L0.17%2C3.259C0.057%2C3.146%2C0%2C3.011%2C0%2C2.857c0-0.155%2C0.057-0.289%2C0.17-0.402%20l1.482-1.482c0.113-0.113%2C0.247-0.17%2C0.402-0.17c0.155%2C0%2C0.289%2C0.057%2C0.402%2C0.17L9.08%2C7.598C9.193%2C7.711%2C9.252%2C7.846%2C9.252%2C8%20S9.193%2C8.289%2C9.08%2C8.402l-6.625%2C6.625c-0.113%2C0.113-0.247%2C0.17-0.402%2C0.17c-0.155%2C0-0.289-0.057-0.402-0.17L0.17%2C13.545%20C0.057%2C13.432%2C0%2C13.297%2C0%2C13.143z%22%2F%3E%3Cpath%20d%3D%22M6.748%2C13.143c0-0.153%2C0.057-0.289%2C0.17-0.401L11.658%2C8l-4.74-4.741c-0.113-0.113-0.17-0.248-0.17-0.402%20c0-0.155%2C0.057-0.289%2C0.17-0.402L8.4%2C0.973c0.112-0.113%2C0.246-0.17%2C0.401-0.17s0.289%2C0.057%2C0.401%2C0.17l6.625%2C6.625%20C15.941%2C7.711%2C16%2C7.846%2C16%2C8s-0.059%2C0.289-0.172%2C0.402l-6.625%2C6.625c-0.112%2C0.113-0.246%2C0.17-0.401%2C0.17s-0.289-0.057-0.401-0.17%20l-1.482-1.482C6.805%2C13.432%2C6.748%2C13.297%2C6.748%2C13.143z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-chevron-left-16-white{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%220%200%2016%2016%22%20enable-background%3D%22new%200%200%2016%2016%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3Ecircle%2C%20ellipse%2C%20line%2C%20path%2C%20polygon%2C%20polyline%2C%20rect%2C%20text%20%7B%20fill%3A%20white%20!important%3B%20%7D%3C%2Fstyle%3E%3Cpath%20d%3D%22M2.604%2C8.001c0-0.154%2C0.057-0.289%2C0.17-0.402l6.625-6.625c0.113-0.113%2C0.248-0.17%2C0.402-0.17s0.289%2C0.057%2C0.402%2C0.17%20l1.48%2C1.482c0.113%2C0.113%2C0.17%2C0.247%2C0.17%2C0.402c0%2C0.154-0.057%2C0.288-0.17%2C0.401l-4.74%2C4.742l4.741%2C4.741%20c0.112%2C0.112%2C0.17%2C0.248%2C0.17%2C0.401c0%2C0.154-0.058%2C0.289-0.17%2C0.402l-1.481%2C1.48c-0.113%2C0.113-0.248%2C0.17-0.401%2C0.17%20c-0.154%2C0-0.289-0.057-0.402-0.17L2.773%2C8.403C2.661%2C8.29%2C2.604%2C8.155%2C2.604%2C8.001z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-chevron-left-16{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%220%200%2016%2016%22%20enable-background%3D%22new%200%200%2016%2016%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M2.604%2C8.001c0-0.154%2C0.057-0.289%2C0.17-0.402l6.625-6.625c0.113-0.113%2C0.248-0.17%2C0.402-0.17s0.289%2C0.057%2C0.402%2C0.17%20l1.48%2C1.482c0.113%2C0.113%2C0.17%2C0.247%2C0.17%2C0.402c0%2C0.154-0.057%2C0.288-0.17%2C0.401l-4.74%2C4.742l4.741%2C4.741%20c0.112%2C0.112%2C0.17%2C0.248%2C0.17%2C0.401c0%2C0.154-0.058%2C0.289-0.17%2C0.402l-1.481%2C1.48c-0.113%2C0.113-0.248%2C0.17-0.401%2C0.17%20c-0.154%2C0-0.289-0.057-0.402-0.17L2.773%2C8.403C2.661%2C8.29%2C2.604%2C8.155%2C2.604%2C8.001z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-chevron-left-32-white{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2223%22%20height%3D%2232%22%20viewBox%3D%220%200%2023%2032%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3Ecircle%2C%20ellipse%2C%20line%2C%20path%2C%20polygon%2C%20polyline%2C%20rect%2C%20text%20%7B%20fill%3A%20white%20!important%3B%20%7D%3C%2Fstyle%3E%3Cg%3E%3C%2Fg%3E%20%3Cpath%20d%3D%22M2.75%2014.857q0-0.464%200.339-0.804l13.25-13.25q0.339-0.339%200.804-0.339t0.804%200.339l2.964%202.964q0.339%200.339%200.339%200.804t-0.339%200.804l-9.482%209.482%209.482%209.482q0.339%200.339%200.339%200.804t-0.339%200.804l-2.964%202.964q-0.339%200.339-0.804%200.339t-0.804-0.339l-13.25-13.25q-0.339-0.339-0.339-0.804z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-chevron-left-32{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2223%22%20height%3D%2232%22%20viewBox%3D%220%200%2023%2032%22%3E%3Cg%3E%3C%2Fg%3E%20%3Cpath%20d%3D%22M2.75%2014.857q0-0.464%200.339-0.804l13.25-13.25q0.339-0.339%200.804-0.339t0.804%200.339l2.964%202.964q0.339%200.339%200.339%200.804t-0.339%200.804l-9.482%209.482%209.482%209.482q0.339%200.339%200.339%200.804t-0.339%200.804l-2.964%202.964q-0.339%200.339-0.804%200.339t-0.804-0.339l-13.25-13.25q-0.339-0.339-0.339-0.804z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-chevron-right-16-white{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%22-2.5%200%2016%2016%22%20enable-background%3D%22new%20-2.5%200%2016%2016%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3Ecircle%2C%20ellipse%2C%20line%2C%20path%2C%20polygon%2C%20polyline%2C%20rect%2C%20text%20%7B%20fill%3A%20white%20!important%3B%20%7D%3C%2Fstyle%3E%3Cpath%20d%3D%22M1.137%2C13.143c0-0.154%2C0.057-0.289%2C0.17-0.402L6.048%2C8L1.307%2C3.259c-0.113-0.113-0.17-0.248-0.17-0.402%20c0-0.155%2C0.057-0.289%2C0.17-0.402l1.482-1.482c0.113-0.113%2C0.247-0.17%2C0.402-0.17s0.289%2C0.057%2C0.402%2C0.17l6.625%2C6.625%20c0.113%2C0.113%2C0.17%2C0.248%2C0.17%2C0.402s-0.057%2C0.289-0.17%2C0.402l-6.625%2C6.625c-0.113%2C0.113-0.247%2C0.17-0.402%2C0.17%20s-0.289-0.057-0.402-0.17l-1.482-1.482C1.194%2C13.432%2C1.137%2C13.297%2C1.137%2C13.143z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-chevron-right-16{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%22-2.5%200%2016%2016%22%20enable-background%3D%22new%20-2.5%200%2016%2016%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M1.137%2C13.143c0-0.154%2C0.057-0.289%2C0.17-0.402L6.048%2C8L1.307%2C3.259c-0.113-0.113-0.17-0.248-0.17-0.402%20c0-0.155%2C0.057-0.289%2C0.17-0.402l1.482-1.482c0.113-0.113%2C0.247-0.17%2C0.402-0.17s0.289%2C0.057%2C0.402%2C0.17l6.625%2C6.625%20c0.113%2C0.113%2C0.17%2C0.248%2C0.17%2C0.402s-0.057%2C0.289-0.17%2C0.402l-6.625%2C6.625c-0.113%2C0.113-0.247%2C0.17-0.402%2C0.17%20s-0.289-0.057-0.402-0.17l-1.482-1.482C1.194%2C13.432%2C1.137%2C13.297%2C1.137%2C13.143z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-chevron-right-32-white{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2223%22%20height%3D%2232%22%20viewBox%3D%220%200%2023%2032%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3Ecircle%2C%20ellipse%2C%20line%2C%20path%2C%20polygon%2C%20polyline%2C%20rect%2C%20text%20%7B%20fill%3A%20white%20!important%3B%20%7D%3C%2Fstyle%3E%3Cg%3E%3C%2Fg%3E%20%3Cpath%20d%3D%22M1.607%2025.143q0-0.464%200.339-0.804l9.482-9.482-9.482-9.482q-0.339-0.339-0.339-0.804t0.339-0.804l2.964-2.964q0.339-0.339%200.804-0.339t0.804%200.339l13.25%2013.25q0.339%200.339%200.339%200.804t-0.339%200.804l-13.25%2013.25q-0.339%200.339-0.804%200.339t-0.804-0.339l-2.964-2.964q-0.339-0.339-0.339-0.804z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-chevron-right-32{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2223%22%20height%3D%2232%22%20viewBox%3D%220%200%2023%2032%22%3E%3Cg%3E%3C%2Fg%3E%20%3Cpath%20d%3D%22M1.607%2025.143q0-0.464%200.339-0.804l9.482-9.482-9.482-9.482q-0.339-0.339-0.339-0.804t0.339-0.804l2.964-2.964q0.339-0.339%200.804-0.339t0.804%200.339l13.25%2013.25q0.339%200.339%200.339%200.804t-0.339%200.804l-13.25%2013.25q-0.339%200.339-0.804%200.339t-0.804-0.339l-2.964-2.964q-0.339-0.339-0.339-0.804z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-close-16-white{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3Ecircle%2C%20ellipse%2C%20line%2C%20path%2C%20polygon%2C%20polyline%2C%20rect%2C%20text%20%7B%20fill%3A%20white%20!important%3B%20%7D%3C%2Fstyle%3E%3Cdefs%3E%3Cg%20id%3D%22icon-close%22%3E%20%3Cpath%20class%3D%22path1%22%20d%3D%22M15.854%2012.854c-0-0-0-0-0-0l-4.854-4.854%204.854-4.854c0-0%200-0%200-0%200.052-0.052%200.090-0.113%200.114-0.178%200.066-0.178%200.028-0.386-0.114-0.529l-2.293-2.293c-0.143-0.143-0.351-0.181-0.529-0.114-0.065%200.024-0.126%200.062-0.178%200.114%200%200-0%200-0%200l-4.854%204.854-4.854-4.854c-0-0-0-0-0-0-0.052-0.052-0.113-0.090-0.178-0.114-0.178-0.066-0.386-0.029-0.529%200.114l-2.293%202.293c-0.143%200.143-0.181%200.351-0.114%200.529%200.024%200.065%200.062%200.126%200.114%200.178%200%200%200%200%200%200l4.854%204.854-4.854%204.854c-0%200-0%200-0%200-0.052%200.052-0.090%200.113-0.114%200.178-0.066%200.178-0.029%200.386%200.114%200.529l2.293%202.293c0.143%200.143%200.351%200.181%200.529%200.114%200.065-0.024%200.126-0.062%200.178-0.114%200-0%200-0%200-0l4.854-4.854%204.854%204.854c0%200%200%200%200%200%200.052%200.052%200.113%200.090%200.178%200.114%200.178%200.066%200.386%200.029%200.529-0.114l2.293-2.293c0.143-0.143%200.181-0.351%200.114-0.529-0.024-0.065-0.062-0.126-0.114-0.178z%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fdefs%3E%3Cg%20fill%3D%22%23000000%22%3E%20%3Cuse%20xlink%3Ahref%3D%22%23icon-close%22%20transform%3D%22translate(0%200)%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-close-16{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cdefs%3E%3Cg%20id%3D%22icon-close%22%3E%20%3Cpath%20class%3D%22path1%22%20d%3D%22M15.854%2012.854c-0-0-0-0-0-0l-4.854-4.854%204.854-4.854c0-0%200-0%200-0%200.052-0.052%200.090-0.113%200.114-0.178%200.066-0.178%200.028-0.386-0.114-0.529l-2.293-2.293c-0.143-0.143-0.351-0.181-0.529-0.114-0.065%200.024-0.126%200.062-0.178%200.114%200%200-0%200-0%200l-4.854%204.854-4.854-4.854c-0-0-0-0-0-0-0.052-0.052-0.113-0.090-0.178-0.114-0.178-0.066-0.386-0.029-0.529%200.114l-2.293%202.293c-0.143%200.143-0.181%200.351-0.114%200.529%200.024%200.065%200.062%200.126%200.114%200.178%200%200%200%200%200%200l4.854%204.854-4.854%204.854c-0%200-0%200-0%200-0.052%200.052-0.090%200.113-0.114%200.178-0.066%200.178-0.029%200.386%200.114%200.529l2.293%202.293c0.143%200.143%200.351%200.181%200.529%200.114%200.065-0.024%200.126-0.062%200.178-0.114%200-0%200-0%200-0l4.854-4.854%204.854%204.854c0%200%200%200%200%200%200.052%200.052%200.113%200.090%200.178%200.114%200.178%200.066%200.386%200.029%200.529-0.114l2.293-2.293c0.143-0.143%200.181-0.351%200.114-0.529-0.024-0.065-0.062-0.126-0.114-0.178z%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fdefs%3E%3Cg%20fill%3D%22%23000000%22%3E%20%3Cuse%20xlink%3Ahref%3D%22%23icon-close%22%20transform%3D%22translate(0%200)%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-menu-white{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2224px%22%20height%3D%2224px%22%20viewBox%3D%229.959%209.958%2024%2024%22%20enable-background%3D%22new%209.959%209.958%2024%2024%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3Ecircle%2C%20ellipse%2C%20line%2C%20path%2C%20polygon%2C%20polyline%2C%20rect%2C%20text%20%7B%20fill%3A%20white%20!important%3B%20%7D%3C%2Fstyle%3E%3Cpath%20d%3D%22M32%2C18H12c-1.104%2C0-2-0.896-2-2s0.896-2%2C2-2h20c1.104%2C0%2C2%2C0.896%2C2%2C2S33.104%2C18%2C32%2C18z%22%2F%3E%3Cpath%20d%3D%22M32%2C24H12c-1.104%2C0-2-0.896-2-2c0-1.104%2C0.896-2%2C2-2h20c1.104%2C0%2C2%2C0.896%2C2%2C2C34%2C23.104%2C33.104%2C24%2C32%2C24z%22%2F%3E%3Cpath%20d%3D%22M32%2C30H12c-1.104%2C0-2-0.896-2-2s0.896-2%2C2-2h20c1.104%2C0%2C2%2C0.896%2C2%2C2S33.104%2C30%2C32%2C30z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-menu{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2224px%22%20height%3D%2224px%22%20viewBox%3D%229.959%209.958%2024%2024%22%20enable-background%3D%22new%209.959%209.958%2024%2024%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M32%2C18H12c-1.104%2C0-2-0.896-2-2s0.896-2%2C2-2h20c1.104%2C0%2C2%2C0.896%2C2%2C2S33.104%2C18%2C32%2C18z%22%2F%3E%3Cpath%20d%3D%22M32%2C24H12c-1.104%2C0-2-0.896-2-2c0-1.104%2C0.896-2%2C2-2h20c1.104%2C0%2C2%2C0.896%2C2%2C2C34%2C23.104%2C33.104%2C24%2C32%2C24z%22%2F%3E%3Cpath%20d%3D%22M32%2C30H12c-1.104%2C0-2-0.896-2-2s0.896-2%2C2-2h20c1.104%2C0%2C2%2C0.896%2C2%2C2S33.104%2C30%2C32%2C30z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-plus-16-white{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%22-1.5%200%2016%2016%22%20enable-background%3D%22new%20-1.5%200%2016%2016%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3Ecircle%2C%20ellipse%2C%20line%2C%20path%2C%20polygon%2C%20polyline%2C%20rect%2C%20text%20%7B%20fill%3A%20white%20!important%3B%20%7D%3C%2Fstyle%3E%3Cg%3E%20%3Cline%20fill%3D%22none%22%20stroke%3D%22%23449FDB%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%220%22%20y2%3D%220%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M0%2C8.857V7.143c0-0.238%2C0.083-0.44%2C0.25-0.607c0.167-0.167%2C0.369-0.25%2C0.607-0.25h3.714V2.572%20c0-0.238%2C0.083-0.44%2C0.25-0.607c0.167-0.167%2C0.369-0.25%2C0.607-0.25h1.714c0.237%2C0%2C0.439%2C0.083%2C0.606%2C0.25s0.25%2C0.369%2C0.25%2C0.607%20v3.714h3.714c0.238%2C0%2C0.44%2C0.083%2C0.607%2C0.25c0.166%2C0.167%2C0.25%2C0.369%2C0.25%2C0.607v1.715c0%2C0.236-0.084%2C0.439-0.25%2C0.605%20c-0.167%2C0.168-0.369%2C0.25-0.607%2C0.25H7.999v3.715c0%2C0.238-0.083%2C0.439-0.25%2C0.607c-0.167%2C0.166-0.369%2C0.25-0.606%2C0.25H5.428%20c-0.238%2C0-0.44-0.084-0.607-0.25c-0.167-0.168-0.25-0.369-0.25-0.607V9.713H0.857c-0.238%2C0-0.44-0.082-0.607-0.25%20C0.083%2C9.297%2C0%2C9.094%2C0%2C8.857z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-plus-16{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%22-1.5%200%2016%2016%22%20enable-background%3D%22new%20-1.5%200%2016%2016%22%20xml%3Aspace%3D%22preserve%22%3E%3Cg%3E%20%3Cline%20fill%3D%22none%22%20stroke%3D%22%23449FDB%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%220%22%20y2%3D%220%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M0%2C8.857V7.143c0-0.238%2C0.083-0.44%2C0.25-0.607c0.167-0.167%2C0.369-0.25%2C0.607-0.25h3.714V2.572%20c0-0.238%2C0.083-0.44%2C0.25-0.607c0.167-0.167%2C0.369-0.25%2C0.607-0.25h1.714c0.237%2C0%2C0.439%2C0.083%2C0.606%2C0.25s0.25%2C0.369%2C0.25%2C0.607%20v3.714h3.714c0.238%2C0%2C0.44%2C0.083%2C0.607%2C0.25c0.166%2C0.167%2C0.25%2C0.369%2C0.25%2C0.607v1.715c0%2C0.236-0.084%2C0.439-0.25%2C0.605%20c-0.167%2C0.168-0.369%2C0.25-0.607%2C0.25H7.999v3.715c0%2C0.238-0.083%2C0.439-0.25%2C0.607c-0.167%2C0.166-0.369%2C0.25-0.606%2C0.25H5.428%20c-0.238%2C0-0.44-0.084-0.607-0.25c-0.167-0.168-0.25-0.369-0.25-0.607V9.713H0.857c-0.238%2C0-0.44-0.082-0.607-0.25%20C0.083%2C9.297%2C0%2C9.094%2C0%2C8.857z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-search-16-white{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%228%208%2016%2016%22%20enable-background%3D%22new%208%208%2016%2016%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3Ecircle%2C%20ellipse%2C%20line%2C%20path%2C%20polygon%2C%20polyline%2C%20rect%2C%20text%20%7B%20fill%3A%20white%20!important%3B%20%7D%3C%2Fstyle%3E%3Cg%20id%3D%22icomoon-ignore%22%3E%20%3Cline%20fill%3D%22none%22%20stroke%3D%22%23449FDB%22%20x1%3D%228%22%20y1%3D%228%22%20x2%3D%228%22%20y2%3D%228%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M23.504%2C21.615l-3.79-3.224c-0.392-0.353-0.811-0.515-1.149-0.499c0.895-1.048%2C1.435-2.407%2C1.435-3.893c0-3.313-2.687-6-6-6%20c-3.313%2C0-6%2C2.687-6%2C6c0%2C3.313%2C2.687%2C6%2C6%2C6c1.486%2C0%2C2.845-0.54%2C3.893-1.435c-0.016%2C0.339%2C0.146%2C0.758%2C0.499%2C1.149l3.224%2C3.79%20c0.552%2C0.612%2C1.454%2C0.664%2C2.004%2C0.115C24.168%2C23.069%2C24.116%2C22.167%2C23.504%2C21.615z%20M14%2C18c-2.209%2C0-4-1.792-4-4c0-2.209%2C1.791-4%2C4-4%20c2.208%2C0%2C4%2C1.791%2C4%2C4C18%2C16.208%2C16.208%2C18%2C14%2C18z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.svg .grunticon-search-16{background-image:url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%228%208%2016%2016%22%20enable-background%3D%22new%208%208%2016%2016%22%20xml%3Aspace%3D%22preserve%22%3E%3Cg%20id%3D%22icomoon-ignore%22%3E%20%3Cline%20fill%3D%22none%22%20stroke%3D%22%23449FDB%22%20x1%3D%228%22%20y1%3D%228%22%20x2%3D%228%22%20y2%3D%228%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M23.504%2C21.615l-3.79-3.224c-0.392-0.353-0.811-0.515-1.149-0.499c0.895-1.048%2C1.435-2.407%2C1.435-3.893c0-3.313-2.687-6-6-6%20c-3.313%2C0-6%2C2.687-6%2C6c0%2C3.313%2C2.687%2C6%2C6%2C6c1.486%2C0%2C2.845-0.54%2C3.893-1.435c-0.016%2C0.339%2C0.146%2C0.758%2C0.499%2C1.149l3.224%2C3.79%20c0.552%2C0.612%2C1.454%2C0.664%2C2.004%2C0.115C24.168%2C23.069%2C24.116%2C22.167%2C23.504%2C21.615z%20M14%2C18c-2.209%2C0-4-1.792-4-4c0-2.209%2C1.791-4%2C4-4%20c2.208%2C0%2C4%2C1.791%2C4%2C4C18%2C16.208%2C16.208%2C18%2C14%2C18z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat}.no-svg .grunticon-chevron-double-left-16-white{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAANtJREFUOI3FkUFKA0EURMuARNAYIqIgJHoE8ahivIiK3kADwRsoXiC5Qb1yM8Fh7J5x599Wv0dTJVUOGAMXpSzJKTCpsUpyYPvF9ha46WRXtr9svwMnVTjN2d4mWbTh/Ny6F24Er0mOCnBs3w7CwHEFvkuy98+wJNl+LsHA+SAsaSTJtTUlUd26U95TofkpcGn7c+gXAsYFyVuSaZJFQbKsSR57JB+d7D7J6C+SFTCpSJa/OmkkD61HG2DeZPO2xPaqWOxOYnuT5LqT7STrJLO+dfaBs0o2Aw4l6Rt9KGPFPHQltAAAAABJRU5ErkJggg==");background-repeat:no-repeat}.no-svg .grunticon-chevron-double-left-16{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAMFJREFUOI3F0ttpAkEYQOFPQRTiBSVEELyUIClVYhoxIekgCmIHig1oB7p5cAUdZnZ984d5OnMOw8+QnjoGCfaKVoGrgV8c8R6wCfbYoFckZ/k5YhTIV7YukzP8oRmRM8wekdsJ+QOV58vwk5D7j8hVnMQnwznB7qaB78grOhhjV/YKLr8ujCzzyCgSmaciXwWRbcA+8xWURlYu/z4Wmcd2Usfi5tIBw5wNg8gqFriNHDAN2DWyRjcVgBreEqyLF/gHGMxsEG3zf6UAAAAASUVORK5CYII=");background-repeat:no-repeat}.no-svg .grunticon-chevron-double-right-16-white{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAANdJREFUOI3dkk1Kg0EQRPsLIW40iX+4kGDwCAGvqqiHEHMLE5VkHzxCyAGsem4mMIwzZm/vhuK9GuiOiAjbQ9vnURnb18CglkVEBHAhaS3py/ZNAd8BO0lz20dVgaQVaXIJcAvssqwukXRPNnuJ7RNJb0X2WwL0JD3UJMD4/0guG5LXXmUxXfF213U0su+y/bFo2NiepPZFkb2wP7AEPzXgU0nLQ/BzCwbem3A6pFbz6CCcBB8lnH42lbT9E46IsH0m6TOHs2wmaduEsw0cA+NaZvsK6LfYH5zmY8Gei428AAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-chevron-double-right-16{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAALlJREFUOI3d0sFKQkEYhuGng9RGK61oEVF0CUG3mlgXIXoXlonuw0sQL0CqhXPgMMx/bO0Hsxi+/31/GIZ9znGlnDucBh24xgprPGTdC7aY4iwSLPGbTlPylOC6CyWvjaGmpIdZ1hUlFYaB5PJ4JDeBZFLlBpxk9580XOp2+fZRtuEb92n7R9aNNT5YhbcA7uPzEPzeAs/bYC2bL/4Dw1cBhkdsDsEwwCKD6zwnSQjX6dq/dCm36ETgH/IJbAy9wAGJAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-chevron-left-16-white{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAIBJREFUOI3dkzEKg0AQRVcRPUIKz2Aj5FSi0SMJ9oEcTHKB/38ai3VZyeh2TvvnvRkYxjlDkawllZbeGPyU9AXwIVldgrUVgOUyLEkkuxS4T4GHFPhlhZsIPP7j8r2DDPLMNN0ztADWYIvpXhLbOY8kAOZTAl8C4J3ykQ9JRSz7AT+oHA9w5liSAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-chevron-left-16{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHFJREFUOI1jYCAOSDMwMLARqRYDmDIwMHxgYGDYxMDAwE6u5v9QvIQSzf8ZGBiyKdGcS4nmPEo05xOrWReL5gJCmpiQ2P+gGBkwEms7DBgxMDC8Q3NF4fAyhOjoxGXIQlINQDZkPQMFOVKcgYGBBZsEAAh0NnGuq+AnAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-chevron-left-32-white{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAgCAYAAAD5VeO1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAK1JREFUSInt1L0NwjAYhOFPIFEwQHqqIFIzBwtQMQIjsQY/BeNEMMLd0WDJsiAhsS0FyVdbz/spRcwiR3JH8ihpHmuF8AEAJQnAKVnAh92SBD7BQWCWHHYjuc0CA7hJWuSClznga4EdfPk7+DwpePMDfB8C+/+Ap5k9et6vJa0GXe1d3wBoe65vSTYlUAIlwCpLAABI1qPwrsAb3o+GvwWSwWEgOewFqqhvPMm9ALmIDpzg3fqrAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-chevron-left-32{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAgCAYAAAD5VeO1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAKNJREFUSInt1DEOgjAUgOE/mjB4gO5OEJ09Bxdw8ggeiWsoDByH6BEKLDYpRhHtewmGvuRtzfc3HQrhkwNnYC1gDeYEtEAHFJIBH3YrEngF+4GVBuz2oAVXQKIFbzTgMsJur38HX2YF7ybA9Tew/wfcgduH8xmwnX7f4eyBhvHbN49zMRADSw8YrYAF0l/xsYAFjiHwu4AY/BwQh90YAt94ftMDFd/dWwh7aPEAAAAASUVORK5CYII=");background-repeat:no-repeat}.no-svg .grunticon-chevron-right-16-white{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHpJREFUOI3dkUEOgkAQBNFfiOIr8AvGB5Jw4GfoP+BAdXvZw4aQsIw3+zpT1ZlMVW3E9t32eWu2G0kvYAaGwxJJD2B2ymGJpAswOktEcv1/SZfvRH69lLbfgPeqvS86IcGfKNz8AtdhOAlaYArBmeQJTCE4k9S2TyW7Xx60NbS6e13JAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-chevron-right-16{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAG5JREFUOI3dkUEOQDAQRR+3UOUUXEEcUGLRm+EeLCRspkkjRE13fjKr+e/NYuA+NZA/7F7TAxvgNJJW4EPms6QApkCgkpT/lwxhQfPrPbZogflyfYw9aoFFC1cpsEmBARpg1cI+nUhUsI8BspjiCRhLNW38Or7KAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-chevron-right-32-white{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAgCAYAAAD5VeO1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAALlJREFUSIntkzEKAjEURJNUwm4ppNA7qKWlCB7Dq+jVPIRrI1jbi2IxM1YBCeK6+BcUMm1+3hs+fOeySKpJbkjO87evIqkGsJMkAFeSS3NwiomAZJWDzQQk16/AJgJJQwBNbwKSsQiKoAgYARxbBBeSVfoTOvAnzrlRy8zJe3/v2noF4NbSuiEZC7iAfxg86wOcLnQcQhi8kR+894sQwrlT6xRJW7NVfCIwA+cCAHtT8JNgKqk2B/9NHvQO6rojNdesAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-chevron-right-32{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAgCAYAAAD5VeO1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAJtJREFUSInt1rEJwkAAhtGHlqYUUjiEOoNg5wruYedqDmEqwcYRRNFGiyONJobIHQjeD6kS3pdrQobeV2CDO04N979egR0euGCRAq6vKIFRAxwtsG6BowTGqFIGyhzIgRxQ4tAROAufEjDogU8x6XjmiFsPEyxx9fmtK+F0Gc7wr8LzVDCsUsH1tqngtkA0+DWwjw3Xmwm/d3+6JxDG3vQbprkCAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-close-16-white{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAALJJREFUOI2lk1EOgjAQBbdeweBlRUG9HiEC8Thv6g81TS1Lou+3b6ZttjUzM+AkaQGuthNJD0kT0FgGv+IaTyLpkXqSZqAxSUssAlw8OJOMBnTlwippPXjtnFPhtiVx4LY84r1W3IC/rugetYD9SXkSoCv7B9dWJIQQft49S/8PXJd4o3LE/S6cbVAdMdCZpMmDM0ntsQ0GNJJmD06JMfapJ+kJHM3MkmT8vG0n698ZEvwGPXZwRP8Dfi0AAAAASUVORK5CYII=");background-repeat:no-repeat}.no-svg .grunticon-close-16{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAKJJREFUOI2lk10KwjAQhD+9QmkvWzXRXq+Itnie+JAuxLI/QgfmJTszm7BZqBiAFbgRYwLeQC8HA/ABykYvZGp0i4SszaHwGpiFT4CkFApwCcwFGEVwd0Isc9sAgIch1Kg90b1qy3BSXkjai89R2g6nI92F+YjZDPFGZdXyP2aBNeIEdTHCT4L+2WaoC7EEZkFudC+gk0JPXYxRtf0ibZ07gC+M2ob5DsLDegAAAABJRU5ErkJggg==");background-repeat:no-repeat}.no-svg .grunticon-menu-white{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAI9JREFUSIntkjEOAQEUBec/whFEIy7DZawLcTjRi02Ukn1fIwqKbb4Vyc4BZpqBkV8TtjeZeQCWxe6LpCa6rjtJWhfLAbDdCph+Q/5kIkl729dqs+1bROwCIDMDmBc37hHhYucn40V9jBf1E7a3mXkEFsXu10VnSatiOTDURRHR2G6rze8XCZgVN4a56P95AKK3Wd27OCNGAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-menu{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtJREFUSInt0jEKwkAQRuFvY9AjhBxIa+09gifSw4X0GrBNoTYiikWaWSWwD6b95xWPwr9JWOOINnj7jAN0uGe6oUIdbP7OAra4ZLC/Yp+enxJWwfYjbsGb35SKpigVTZOwwQlN8Parot7cK9phyGD/UVGFZbD9byqaPw/Gy5ed6pfkOgAAAABJRU5ErkJggg==");background-repeat:no-repeat}.no-svg .grunticon-navicon-16-white{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAJZJREFUOI3FkrENwgAMBM8OA4CExAQ0LEfFGtBkDoYhRVIwARIwgf00BImCwhGIr/3v9/vh3zCAiNgDmyK3a5pmx1PgrCIiYgCYAZjZITPXJetmfdHxByGAzFyZ2aJClHRz9wsAEdFPyKAD8FFwgnu9TpC0lDQvCtzd/Tph8TvGELeSqm8c3L0FvlAk4JiZ1SqfivM/wgMt5c6IKpsRxwAAAABJRU5ErkJggg==");background-repeat:no-repeat}.no-svg .grunticon-navicon-16{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAINJREFUOI3F0r0JQkEQBOBPsQAFwQpMbM7INjSxDovxBb7ACgS1hDO5QwWTeSIOLMvC7uzsD//GqPotVmFth00Lziih9TCpBDssQwWnMP8z2g4WmIW1N1xe5aQ76GBcCcoA9YXnCHNMQ4I7rgMav6MpWMvP2GPfgq8f6SB/5WOY/yM8AMViNjCNWFc9AAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-navicon-32-white{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAPJJREFUWIXtlrFKQ0EQRe+92EjAVjCIpVjYpUjvH/iJafwJu1T2Cn6AQuweeW3mjk2EuC8ELDIivlOeLc4MLMsCI/8d2p4DmBe01iQXJDe78iQzHyVNCgZAZm4ALHadquJbzlqhwvheZPulImTbJJ9bT9unAKYFM/SSPgo6Iz+Dtq8A3Ba01iSXJPObjYhVFmH7vp1Kks4Ltv/iYjBAYXwvsr2qipF8GzjbU9Rcwo7k0+ASjvw2tD0heXnsUGb2kt4HBxHxWvEIRYRt37V9Sbo+9vbbEAHcDHxF/BCy3Rf2ulbQ9gw13/KO5APJKGiN/CE+AV01HeiJkDpcAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-navicon-32{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAANRJREFUWIXt1rFKQzEUBuAv2aTQVVBKR+ng5tDdN/ABfDiXPoiTu4IPUEG3S+uo1SEuhoAVbs9FvB9kSYb/HBIOYfTfJSy/1qFtcIO3+uAVH0Hrug7PmPTV4h6mrQIGlfEQlLXDfb2ZcITTgAK2eAnIGf1OwhznAVkb3Crz4JtncYPoqg7POO6rxT2ctAoYVFauIMq63kjKEIp4hB3uNB7haFBJ+Q/MArK2eGodPIoZQjtc1uEZZ73097OERauAQWXlbqJ09UbChZhveYcV3gOyRn/IJ1eKaGJm1KHvAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-plus-16-white{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAALNJREFUOI3Fk78OgUEQxGeHgs47iEKr0yu8iQfQingqrcRj+NPQKEWB5nY0VxzJfZxPYrrLTH7Z3dsFaspyhrv3AXQBOIAVyVsROYRwUpS7T3M5Zg2ylTzbxYBPVRtgAODuQ0lzPA91RLIR/R2AfeIdSU7MzAEAkhYqV+cnLTRjBUtJgxfgOGlhA2CbeAeSl0qypHOyB7Nc7v/fmAW4e7r711yu6ph6iMdkZmszu39V4js9AEnhgcskyZ6iAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-plus-16{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAKNJREFUOI3F0z0OQVEQhuHHT0FnD6LQ6vQKO7EArYhVaSWW4aehUYoCFQpX7iG5x+VKTDI5k8zkzcw3ZyhopUiujSYumOH0KXyHa+LDrKJyBFAL4vo3gFxWGPAQsYuxZ1F7qCTxCusgt8XAXWAwkQqW1xs/GaGavFN0XoD9YIQFlkFug8M7+F7a7iir6P9rjAHCv3/MKoodU0t6THOcP2otr90AWPslGcJ3MsoAAAAASUVORK5CYII=");background-repeat:no-repeat}.no-svg .grunticon-search-16-white{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAARZJREFUOI2dkktKA0EURWMGxsSgSIYiDrOP4CworsAd+EF0Oa7FaQZ+UBKDBLIECTpQhHOek9cQTHeDPiiq4dY9fetSjUaO2lavgAfgK9e9ehkRG426UfeBl6gYYKzuVZnbhRmYqMOI6Kib6iEwLSClSdTrJfPWbz0itguIerkCAB5THNZc8Shvc1cG+EqxUwWIiG6m/PytNZcOrVUBllkrgGazOc7vQY3xIPfJiqJeZLxpRGyv/DJiB3jNns7LAC3guYBkYd1cx4UZmKut0nzqLvBU85Dmud+qvVJIRKyrp8AIeAc+gJF6lilvEzJT+zV9lY/aA2YJeVPrSq+E9IG3hHyrJ/+BDIDvrGfxZ0BCTiJiAdz8ADRwlzuvQ26iAAAAAElFTkSuQmCC");background-repeat:no-repeat}.no-svg .grunticon-search-16{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAO5JREFUOI2d0j1Kg0EUheFHCzUxKJJSxDL7CHbB4ArcgT8EXY5rSWvhD0piECFLkKCFweazyBWHMPMJOTDMhXPPe2eG4U8NXOEB81j3GGDLPzrEC6rCGuGgFG4k4TF6aGIbx5gkkOxJrpPwTsbfTSCDHOAxzF7NFfvRc5cz52E2awCt6PlaNtaTeq0G8KsqBxhF3a0JHsU+zpmXQZ5YPNiy9vAaPRc5wCaeE0jf4s4tnCThafRmtY8n5Y80jX2IdgmygTPc4gOfUZ/H5GFA3tApQerUjnCFd/WPXlQnwhW+cboKpBvhCrNVAGLyDDc/eftJq3GNtEcAAAAASUVORK5CYII=");background-repeat:no-repeat}.no-svg .grunticon-search{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAgJJREFUWIW91j1rFFEUxvHfhJC0KayEjbIQUbv0isSXOmWwSWOxQW0CCwr2fge3VbDQVm3EjyCLEk0XbSzcLppskI1rcUfY3JnNvKzOgVPMHZ5z/vecO/dM4nRr4zbWcBln0vUBdvAOz/G1IE5la+MlfmNc4McpxPK/Sr6JgxKJY/8hVGsme1AjcezbdZNvTgn4Hh2sYCH1C9hCf4pmo2rytmzZD3GnQJekcMNIu49WFYAXOcmvVtBfy4F4Vlbclj3tRTvPs60oxkjJKjyS7XkdS2TPRLdINCdcMpP2pCbAGL1oLY6da9+cpF6pCQAXo1h7ZUS/ItHCDACLUayDIsHcDMnKWFIGYBCtnZ8hYTt6/l4GYCdauz4DwI3o+VMZ0UMn+9ZXonQ5luCDip8hnBNG6qSwUwPgnpoXEWGeT4qHwvVa1tZwFMV4WkFvWZjnMUTH6e1IhJ3HySsPI8LPRN5o7eOucMkspn4J92V7/tcfq/mJb08JWMd3sVoHYkMoYdWE+8LOJ9d+Yr0OREuY56MSiUfCgWsJZd+N3h8r+TlOA+nilTBYDoSflS94nb6LD9uqsPMYtIf5uiBVbV32bhnjLZaagujmAIzxWXZm/DfrTYEY4EoTAPNC2fMgjnCrCYgloex5EB+bACD0fJADMGwKgNDzeGa8aRIAbgrz4zBNfvYPvmIgBkA3v0IAAAAASUVORK5CYII=");background-repeat:no-repeat}.nav-item--body{display:block;border:1px solid #e1e3e6;border-radius:4px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;background:#f2f4f5}.nav-item--body:hover>.controls{display:block}.nav-item.is-hidden>.zone .nav-item--body{background:#fff;border-style:dashed}.nav-item.is-hidden>.zone .nav-item--body .icon{opacity:.7}.nav-item.is-hidden>.zone .nav-item--body .information a{color:#999}.nav-item.is-hidden>.zone .nav-item--body .information a:visited{color:#999}.nav-item.is-hidden>.zone .nav-item--body .information a:focus{color:#999}.nav-item.is-hidden>.zone .nav-item--body .information a:hover{color:#999}.nav-item.is-hidden>.zone .nav-item--body .information a:active{color:#999}.nav-item>ol{position:relative;padding-left:32px;display:none}.nav-item>ol:before{content:"";position:absolute;top:0;left:0;bottom:0;width:1px;border-left:1px dotted #e1e3e6}.nav-item.mjs-nestedSortable-expanded>ol{display:block}.nav-item{margin-top:4px}.disclose{display:none;cursor:pointer;border-right:1px solid #e1e3e6;width:22px;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}.nav-item.is-hidden>.zone .disclose{border-right-style:dashed}.mjs-nestedSortable-branch>.zone .disclose{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.mjs-nestedSortable-branch.level-0>.zone .disclose{display:none}.nav-item .placeholder{outline:1px dashed #ff521f;border-radius:4px;margin-top:4px}.nav-item .information{padding:8px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;align-items:center;-webkit-flex-grow:1;flex-grow:1}.draggable .nav-item .information{cursor:move}.nav-item .information a{cursor:pointer}.nav-item .information.folder{font-family:"Open Sans",sans-serif;font-style:normal;font-weight:bold}.nav-item.level-0>.zone .information{font-family:"Open Sans",sans-serif;font-style:normal;font-weight:bold}.nav-item--title{padding-right:8px}.nav-item--icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-right:8px}.nav-item--links-to-child,.nav-item--key,.nav-item--hidden{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;align-items:center;padding-left:4px;padding-right:4px}.nav-item--links-to-child svg,.nav-item--key svg,.nav-item--hidden svg{width:12px;height:12px;display:block}.nav-item--links-to-child svg path,.nav-item--key svg path,.nav-item--hidden svg path{fill:#999}.nav-item--links-to-child .icon--polygon,.nav-item--links-to-child svg path,.nav-item--key .icon--polygon,.nav-item--key svg path,.nav-item--hidden .icon--polygon,.nav-item--hidden svg path{fill:#999}.nav-item--links-to-child .icon--polyline,.nav-item--links-to-child svg path,.nav-item--key .icon--polyline,.nav-item--key svg path,.nav-item--hidden .icon--polyline,.nav-item--hidden svg path{stroke:#999}.nav-item .controls{display:none;margin-left:auto;padding:4px;position:relative;z-index:10}.nav-item .controls>ul{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.nav-item .controls>ul ul{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.nav-item .controls>ul>li+li{margin-left:4px}.nav-item .controls .has-menu{position:relative}.nav-item .controls .has-menu ul{position:absolute;top:100%;right:0;display:none;padding-top:2px;border-radius:4px;overflow:hidden}.nav-item .controls .has-menu li a{text-align:left;border-radius:0}.nav-item .controls .has-menu:hover{border-bottom-left-radius:0;border-bottom-right-radius:0}.nav-item .controls .has-menu:hover ul{display:block}.nav-item--icon>.icon{background-position:center;min-width:16px;min-height:16px;background-repeat:no-repeat}.nav-item--icon>.icon.settings{background-image:url("koi/nav_items/icon-nav-item-settings.png")}.nav-item--icon>.icon.folder{background-image:url("koi/nav_items/icon-nav-item-folder.png")}.nav-item--icon>.icon.module{background-image:url("koi/nav_items/icon-nav-item-module.png")}.nav-item--icon>.icon.alias{background-image:url("koi/nav_items/icon-nav-item-alias.png")}.nav-item--icon>.icon.home{background-image:url("koi/nav_items/icon-nav-item-home.png")}.nav-item--icon>.icon.page{background-image:url("koi/nav_items/icon-nav-item-page.png")}.nav-item--icon>.icon.move{background-image:url("koi/nav_items/icon-nav-item-move.png")}.nav-item--icon>.icon.sort{background-image:url("koi/nav_items/icon-nav-item-sortable.png")}.nav-item--icon>.icon.sort>a{height:22px;padding-right:24px;cursor:move}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Koi
|
4
|
-
class IndexTableComponent < ViewComponent::Base
|
5
|
-
attr_reader :id, :pagy_id
|
6
|
-
|
7
|
-
# Use the Koi::Tables::TableComponent to support custom header and body row components
|
8
|
-
renders_one :table, Koi::Tables::TableComponent
|
9
|
-
renders_one :pagination, Katalyst::Turbo::PagyNavComponent
|
10
|
-
|
11
|
-
def initialize(collection:, id: "index-table", **options)
|
12
|
-
super
|
13
|
-
|
14
|
-
@id = id
|
15
|
-
@pagy_id = "#{id}-pagination"
|
16
|
-
|
17
|
-
with_table(collection:, id:, class: "index-table", caption: true, **options)
|
18
|
-
with_pagination(collection:, id: pagy_id) if collection.paginate?
|
19
|
-
end
|
20
|
-
|
21
|
-
def call
|
22
|
-
concat(table)
|
23
|
-
concat(pagination)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Koi
|
4
|
-
class OrdinalTableComponent < Tables::TableComponent
|
5
|
-
include Katalyst::Tables::Orderable
|
6
|
-
|
7
|
-
def initialize(collection:,
|
8
|
-
id: "index-table",
|
9
|
-
url: [:order, :admin, collection],
|
10
|
-
scope: "order[#{collection.model_name.plural}]",
|
11
|
-
**options)
|
12
|
-
super(collection:, id:, class: "index-table", caption: true, **options)
|
13
|
-
|
14
|
-
@url = url
|
15
|
-
@scope = scope
|
16
|
-
end
|
17
|
-
|
18
|
-
def before_render
|
19
|
-
with_orderable(url: @url, scope: @scope) unless orderable?
|
20
|
-
end
|
21
|
-
|
22
|
-
def call
|
23
|
-
concat(render_parent)
|
24
|
-
concat(orderable)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,228 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
using Katalyst::HtmlAttributes::HasHtmlAttributes
|
4
|
-
|
5
|
-
module Koi
|
6
|
-
module Tables
|
7
|
-
module Body
|
8
|
-
# Shows Yes/No for boolean values
|
9
|
-
class BooleanComponent < BodyCellComponent
|
10
|
-
def rendered_value
|
11
|
-
value ? "Yes" : "No"
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
# Formats the value as a date
|
16
|
-
# @param format [String] date format, defaults to :admin
|
17
|
-
# @param relative [Boolean] if true, the date may be(if within 5 days) shown as a relative date
|
18
|
-
class DateComponent < BodyCellComponent
|
19
|
-
include Koi::DateHelper
|
20
|
-
|
21
|
-
def initialize(table, record, attribute, format: :admin, relative: true, **options)
|
22
|
-
super(table, record, attribute, **options)
|
23
|
-
|
24
|
-
@format = format
|
25
|
-
@relative = relative
|
26
|
-
end
|
27
|
-
|
28
|
-
def value
|
29
|
-
super&.to_date
|
30
|
-
end
|
31
|
-
|
32
|
-
def rendered_value
|
33
|
-
@relative ? relative_time : absolute_time
|
34
|
-
end
|
35
|
-
|
36
|
-
private
|
37
|
-
|
38
|
-
def absolute_time
|
39
|
-
value.present? ? I18n.l(value, format: @format) : ""
|
40
|
-
end
|
41
|
-
|
42
|
-
def relative_time
|
43
|
-
if value.blank?
|
44
|
-
""
|
45
|
-
else
|
46
|
-
days_ago_in_words(value)&.capitalize || absolute_time
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def default_html_attributes
|
51
|
-
@relative && value.present? && days_ago_in_words(value).present? ? { title: absolute_time } : {}
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
# Formats the value as a datetime
|
56
|
-
# @param format [String] datetime format, defaults to :admin
|
57
|
-
# @param relative [Boolean] if true, the datetime may be(if today) shown as a relative date/time
|
58
|
-
class DatetimeComponent < BodyCellComponent
|
59
|
-
include ActionView::Helpers::DateHelper
|
60
|
-
|
61
|
-
def initialize(table, record, attribute, format: :admin, relative: true, **options)
|
62
|
-
super(table, record, attribute, **options)
|
63
|
-
|
64
|
-
@format = format
|
65
|
-
@relative = relative
|
66
|
-
end
|
67
|
-
|
68
|
-
def value
|
69
|
-
super&.to_datetime
|
70
|
-
end
|
71
|
-
|
72
|
-
def rendered_value
|
73
|
-
@relative ? relative_time : absolute_time
|
74
|
-
end
|
75
|
-
|
76
|
-
private
|
77
|
-
|
78
|
-
def absolute_time
|
79
|
-
value.present? ? I18n.l(value, format: @format) : ""
|
80
|
-
end
|
81
|
-
|
82
|
-
def today?
|
83
|
-
value.to_date == Date.current
|
84
|
-
end
|
85
|
-
|
86
|
-
def relative_time
|
87
|
-
return "" if value.blank?
|
88
|
-
|
89
|
-
if today?
|
90
|
-
if value > DateTime.current
|
91
|
-
"#{distance_of_time_in_words(value, DateTime.current)} from now".capitalize
|
92
|
-
else
|
93
|
-
"#{distance_of_time_in_words(value, DateTime.current)} ago".capitalize
|
94
|
-
end
|
95
|
-
else
|
96
|
-
absolute_time
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
def default_html_attributes
|
101
|
-
@relative && today? ? { title: absolute_time } : {}
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
# Formats the value as a money value
|
106
|
-
#
|
107
|
-
# The value is expected to be in cents.
|
108
|
-
# Adds a class to the cell to allow for custom styling
|
109
|
-
class CurrencyComponent < BodyCellComponent
|
110
|
-
def initialize(table, record, attribute, options: {}, **html_attributes)
|
111
|
-
super(table, record, attribute, **html_attributes)
|
112
|
-
|
113
|
-
@options = options
|
114
|
-
end
|
115
|
-
|
116
|
-
def rendered_value
|
117
|
-
value.present? ? number_to_currency(value / 100.0, @options) : ""
|
118
|
-
end
|
119
|
-
|
120
|
-
def default_html_attributes
|
121
|
-
super.merge_html(class: "type-currency")
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
# Formats the value as a number
|
126
|
-
#
|
127
|
-
# Adds a class to the cell to allow for custom styling
|
128
|
-
class NumberComponent < BodyCellComponent
|
129
|
-
def rendered_value
|
130
|
-
value.present? ? number_to_human(value) : ""
|
131
|
-
end
|
132
|
-
|
133
|
-
def default_html_attributes
|
134
|
-
super.merge_html(class: "type-number")
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
# Displays the plain text for rich text content
|
139
|
-
#
|
140
|
-
# Adds a title attribute to allow for hover over display of the full content
|
141
|
-
class RichTextComponent < BodyCellComponent
|
142
|
-
def default_html_attributes
|
143
|
-
{ title: value.to_plain_text }
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
# Displays a link to the record
|
148
|
-
# The link text is the value of the attribute
|
149
|
-
# @see Koi::Tables::BodyRowComponent#link
|
150
|
-
class LinkComponent < BodyCellComponent
|
151
|
-
def initialize(table, record, attribute, url:, link: {}, **options)
|
152
|
-
super(table, record, attribute, **options)
|
153
|
-
|
154
|
-
@url = url
|
155
|
-
@link_options = link
|
156
|
-
end
|
157
|
-
|
158
|
-
def call
|
159
|
-
content # ensure content is set before rendering options
|
160
|
-
|
161
|
-
link = content.present? && url.present? ? link_to(content, url, @link_options) : content.to_s
|
162
|
-
content_tag(@type, link, **html_attributes)
|
163
|
-
end
|
164
|
-
|
165
|
-
def url
|
166
|
-
case @url
|
167
|
-
when Symbol
|
168
|
-
# helpers are not available until the component is rendered
|
169
|
-
@url = helpers.public_send(@url, record)
|
170
|
-
when Proc
|
171
|
-
@url = @url.call(record)
|
172
|
-
else
|
173
|
-
@url
|
174
|
-
end
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
|
-
# Shows an attachment
|
179
|
-
#
|
180
|
-
# The value is expected to be an ActiveStorage attachment
|
181
|
-
#
|
182
|
-
# If it is representable, shows as a image tag using a default variant named :thumb.
|
183
|
-
#
|
184
|
-
# Otherwise shows as a link to download.
|
185
|
-
class AttachmentComponent < BodyCellComponent
|
186
|
-
def initialize(table, record, attribute, variant: :thumb, **options)
|
187
|
-
super(table, record, attribute, **options)
|
188
|
-
|
189
|
-
@variant = variant
|
190
|
-
end
|
191
|
-
|
192
|
-
def rendered_value
|
193
|
-
representation
|
194
|
-
end
|
195
|
-
|
196
|
-
def representation
|
197
|
-
if value.try(:variable?) && named_variant.present?
|
198
|
-
image_tag(value.variant(@variant))
|
199
|
-
elsif value.try(:attached?)
|
200
|
-
filename.to_s
|
201
|
-
else
|
202
|
-
""
|
203
|
-
end
|
204
|
-
end
|
205
|
-
|
206
|
-
def filename
|
207
|
-
value.blob.filename
|
208
|
-
end
|
209
|
-
|
210
|
-
# Utility for accessing the path Rails provides for retrieving the
|
211
|
-
# attachment for use in cells. Example:
|
212
|
-
# <% row.attachment :file do |cell| %>
|
213
|
-
# <%= link_to "Download", cell.internal_path %>
|
214
|
-
# <% end %>
|
215
|
-
def internal_path
|
216
|
-
rails_blob_path(value, disposition: :attachment)
|
217
|
-
end
|
218
|
-
|
219
|
-
private
|
220
|
-
|
221
|
-
# Find the reflective variant by name (i.e. :thumb by default)
|
222
|
-
def named_variant
|
223
|
-
object.attachment_reflections[@attribute.to_s].named_variants[@variant.to_sym]
|
224
|
-
end
|
225
|
-
end
|
226
|
-
end
|
227
|
-
end
|
228
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Koi
|
4
|
-
module Tables
|
5
|
-
# Custom body cell component, in order to override the content
|
6
|
-
class BodyCellComponent < Katalyst::Tables::BodyCellComponent
|
7
|
-
def before_render
|
8
|
-
# fallback if no content block is given
|
9
|
-
with_content(rendered_value) unless content?
|
10
|
-
end
|
11
|
-
|
12
|
-
def rendered_value
|
13
|
-
value.to_s
|
14
|
-
end
|
15
|
-
|
16
|
-
def to_s
|
17
|
-
rendered_value
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|