io-sanita-theme 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.1.0](https://github.com/RedTurtle/io-sanita-theme/compare/2.0.1...2.1.0) (2025-02-05)
4
+
5
+ ### Features
6
+
7
+ * added release log in control panel ([#69](https://github.com/RedTurtle/io-sanita-theme/issues/69)) ([14d0c42](https://github.com/RedTurtle/io-sanita-theme/commit/14d0c42049a2998de58a441e9bc55519439119a0))
8
+
9
+ ### Bug Fixes
10
+
11
+ * ImageWithErrors ([5072d74](https://github.com/RedTurtle/io-sanita-theme/commit/5072d74b2e2932db371486481c3f16826d876fa9))
12
+ * tables styles ([e3b1e92](https://github.com/RedTurtle/io-sanita-theme/commit/e3b1e92c64b11185725605691cff960a315e0923))
13
+
14
+ ### Documentation
15
+
16
+ * updated release.md ([cc35bf1](https://github.com/RedTurtle/io-sanita-theme/commit/cc35bf1cdab1db5ea59344b29f172d6cb45c4559))
17
+
18
+ ## [2.0.1](https://github.com/RedTurtle/io-sanita-theme/compare/2.0.0...2.0.1) (2025-01-23)
19
+
20
+ ### Bug Fixes
21
+
22
+ * resolved undefined title inside the skeleton ([#68](https://github.com/RedTurtle/io-sanita-theme/issues/68)) ([ecfe562](https://github.com/RedTurtle/io-sanita-theme/commit/ecfe5627d4fce486dfbaa308f1f2bcf78faf520e))
23
+
3
24
  ## [2.0.0](https://github.com/RedTurtle/io-sanita-theme/compare/1.0.7...2.0.0) (2025-01-10)
4
25
 
5
26
  ### ⚠ BREAKING CHANGES
package/RELEASE.md ADDED
@@ -0,0 +1,49 @@
1
+ <!--- RELEASE file. La cura di questo file è in carico ai dev.
2
+ Qui vanno inserite tutte le novità e bugfix, spiegati in un linguaggio comprensibile anche ai non dev.
3
+ Se ci sono delle migliorie/novità per cui è stato aggiunto qualcosa nel manuale, linkarlo come nell'esempio sotto.
4
+ -->
5
+
6
+ <!--- -----------------------------------------------------------------
7
+ Esempio:
8
+ ---------------------------------------------------------------------
9
+
10
+ ## Versione 7.10.9 (12/09/2023)
11
+
12
+ ### Migliorie
13
+
14
+ - Fissato il layout di stampa per pagine con Accordion
15
+
16
+ ### Novità
17
+
18
+ - Nuovo blocco "Informazioni" [`Istruzioni`](https://docs.google.com/document/d/1SThuxa_ah0BuNXukWs564kKPfprK41WLQE8Mome-0xg/edit#heading=h.7ty110jumgmd)
19
+
20
+ ### Fix
21
+
22
+ - il numero di telefono dentro card ufficio adesso è visibile anche senza indirizzo
23
+ -->
24
+
25
+ <!--- -----------------------------------------------------------------
26
+ TEMPLATE PER RELEASE
27
+ ----------------------------------------------------------------------
28
+
29
+ ## Versione X.X.X (dd/mm/yyyy)
30
+
31
+ ### Migliorie
32
+
33
+ - ...
34
+
35
+ ### Novità
36
+
37
+ - ...
38
+
39
+ ### Fix
40
+
41
+ - ...
42
+ -->
43
+
44
+ ## Versione 2.1.0 (05/02/2025)
45
+
46
+ ### Novità
47
+
48
+ - Aggiunta sezione Novità Ultimi Rilasci nel pannello di controllo.
49
+ - Aggiornato piattaforma a Volto 18.4.0
@@ -1275,6 +1275,11 @@ msgstr ""
1275
1275
  msgid "cta_linkTitle"
1276
1276
  msgstr ""
1277
1277
 
1278
+ #. Default: "attivo"
1279
+ #: components/ReleaseLog/ReleaseLog
1280
+ msgid "currentActive"
1281
+ msgstr ""
1282
+
1278
1283
  #. Default: "dal {dateStart} fino a conclusione"
1279
1284
  #: components/View/commons/PageHeader/PageHeaderEventDates
1280
1285
  msgid "dal {dateStart} fino a conclusione"
@@ -1270,6 +1270,11 @@ msgstr ""
1270
1270
  msgid "cta_linkTitle"
1271
1271
  msgstr ""
1272
1272
 
1273
+ #. Default: "attivo"
1274
+ #: components/ReleaseLog/ReleaseLog
1275
+ msgid "currentActive"
1276
+ msgstr ""
1277
+
1273
1278
  #. Default: "dal {dateStart} fino a conclusione"
1274
1279
  #: components/View/commons/PageHeader/PageHeaderEventDates
1275
1280
  msgid "dal {dateStart} fino a conclusione"
@@ -1277,6 +1277,11 @@ msgstr ""
1277
1277
  msgid "cta_linkTitle"
1278
1278
  msgstr ""
1279
1279
 
1280
+ #. Default: "attivo"
1281
+ #: components/ReleaseLog/ReleaseLog
1282
+ msgid "currentActive"
1283
+ msgstr ""
1284
+
1280
1285
  #. Default: "dal {dateStart} fino a conclusione"
1281
1286
  #: components/View/commons/PageHeader/PageHeaderEventDates
1282
1287
  msgid "dal {dateStart} fino a conclusione"
@@ -1277,6 +1277,11 @@ msgstr ""
1277
1277
  msgid "cta_linkTitle"
1278
1278
  msgstr ""
1279
1279
 
1280
+ #. Default: "attivo"
1281
+ #: components/ReleaseLog/ReleaseLog
1282
+ msgid "currentActive"
1283
+ msgstr ""
1284
+
1280
1285
  #. Default: "dal {dateStart} fino a conclusione"
1281
1286
  #: components/View/commons/PageHeader/PageHeaderEventDates
1282
1287
  msgid "dal {dateStart} fino a conclusione"
@@ -1270,6 +1270,11 @@ msgstr ""
1270
1270
  msgid "cta_linkTitle"
1271
1271
  msgstr ""
1272
1272
 
1273
+ #. Default: "attivo"
1274
+ #: components/ReleaseLog/ReleaseLog
1275
+ msgid "currentActive"
1276
+ msgstr ""
1277
+
1273
1278
  #. Default: "dal {dateStart} fino a conclusione"
1274
1279
  #: components/View/commons/PageHeader/PageHeaderEventDates
1275
1280
  msgid "dal {dateStart} fino a conclusione"
package/locales/volto.pot CHANGED
@@ -1,7 +1,7 @@
1
1
  msgid ""
2
2
  msgstr ""
3
3
  "Project-Id-Version: Plone\n"
4
- "POT-Creation-Date: 2024-11-26T09:46:11.558Z\n"
4
+ "POT-Creation-Date: 2025-02-03T16:50:25.181Z\n"
5
5
  "Last-Translator: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
6
6
  "Language-Team: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
7
7
  "Content-Type: text/plain; charset=utf-8\n"
@@ -1272,6 +1272,11 @@ msgstr ""
1272
1272
  msgid "cta_linkTitle"
1273
1273
  msgstr ""
1274
1274
 
1275
+ #. Default: "attivo"
1276
+ #: components/ReleaseLog/ReleaseLog
1277
+ msgid "currentActive"
1278
+ msgstr ""
1279
+
1275
1280
  #. Default: "dal {dateStart} fino a conclusione"
1276
1281
  #: components/View/commons/PageHeader/PageHeaderEventDates
1277
1282
  msgid "dal {dateStart} fino a conclusione"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "io-sanita-theme",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "io-sanita-theme: Volto add-on",
5
5
  "main": "src/index.js",
6
6
  "license": "MIT",
@@ -86,6 +86,7 @@
86
86
  "@release-it/conventional-changelog": "^9.0.3",
87
87
  "bootstrap-italia": "2.8.7",
88
88
  "design-react-kit": "5.0.0-10",
89
+ "marked": "9.0.0",
89
90
  "react-focus-lock": "2.12.1",
90
91
  "react-highlight-words": "0.20.0",
91
92
  "react-slick": "0.30.2",
@@ -15,7 +15,7 @@ import {
15
15
  } from 'design-react-kit';
16
16
 
17
17
  const CardWithSlideUpTextTemplateSkeleton = (props) => {
18
- const { isEditMode, linkHref } = props;
18
+ const { isEditMode, linkHref, title } = props;
19
19
 
20
20
  return (
21
21
  <div className="card-slide-text-template">
@@ -1,18 +1,31 @@
1
1
  import React from 'react';
2
-
3
2
  import Image from '@plone/volto/components/theme/Image/Image';
3
+ import { useFallbackImageSrc } from 'io-sanita-theme/helpers';
4
+
5
+ const ImageWithErrors = ({ src, fallbackSrc = '', ...rest }) => {
6
+ const { className, sizes } = rest;
7
+ const { currentSrc, handleError, getFallbackImageStyle } =
8
+ useFallbackImageSrc({
9
+ src,
10
+ customFallbackSrc: fallbackSrc,
11
+ className,
12
+ sizes,
13
+ });
4
14
 
5
- const ImageWithErrors = (props) => {
6
- return (
7
- <Image
8
- {...props}
9
- onError={({ currentTarget }) => {
10
- currentTarget.onerror = null; // prevents looping
11
- currentTarget.src =
12
- 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAMcCAMAAACo9Dz9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEZDRUU0QjREQTIxMUU0ODAwMUVCOTYwMzA5MzE3NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEZDRUU0QzREQTIxMUU0ODAwMUVCOTYwMzA5MzE3NSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwRkNFRTQ5NERBMjExRTQ4MDAxRUI5NjAzMDkzMTc1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwRkNFRTRBNERBMjExRTQ4MDAxRUI5NjAzMDkzMTc1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+D7rN8gAAAMZQTFRFvL7A5+jpuLm7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';
13
- currentTarget.style = 'max-width: 200px;';
14
- }}
15
- />
16
- );
15
+ let commonProps = { ...rest };
16
+ const fallbackStyle = getFallbackImageStyle({
17
+ src,
18
+ customFallbackSrc: fallbackSrc,
19
+ className,
20
+ sizes,
21
+ });
22
+ if (fallbackStyle) {
23
+ commonProps = {
24
+ ...commonProps,
25
+ style: { ...commonProps.style, ...fallbackStyle },
26
+ };
27
+ }
28
+ return <Image {...commonProps} src={currentSrc} onError={handleError} />;
17
29
  };
30
+
18
31
  export default ImageWithErrors;
@@ -0,0 +1,4 @@
1
+ .release-log h2 {
2
+ border-top: 1px solid grey;
3
+ font-weight: 600 !important;
4
+ }
@@ -0,0 +1,107 @@
1
+ /**
2
+ * ReleaseLog component.
3
+ * @module components/ReleaseLog/ReleaseLog
4
+ */
5
+
6
+ import React, { useState, useEffect } from 'react';
7
+ import { defineMessages, useIntl } from 'react-intl';
8
+ import {
9
+ Container,
10
+ Nav,
11
+ NavItem,
12
+ NavLink,
13
+ TabContent,
14
+ TabPane,
15
+ } from 'design-react-kit';
16
+ import { Helmet } from '@plone/volto/helpers';
17
+ import { marked } from 'marked';
18
+
19
+ import './ReleaseLog.css';
20
+ const messages = defineMessages({
21
+ current: {
22
+ id: 'currentActive',
23
+ defaultMessage: 'attivo',
24
+ },
25
+ });
26
+ const ReleaseLog = () => {
27
+ const intl = useIntl();
28
+ let ReleaseIoSanita = null;
29
+ try {
30
+ ReleaseIoSanita = require('io-sanita-theme/../RELEASE.md');
31
+ } catch {
32
+ console.log("io-sanita-theme/../RELEASE.md doesn't exists");
33
+ }
34
+
35
+ const LOGS_TO_VIEW = [{ name: 'io-Sanita', file: ReleaseIoSanita }];
36
+
37
+ const [activeTab, toggleTab] = useState(LOGS_TO_VIEW[0].name);
38
+ const [logIST, setLogIST] = useState('');
39
+
40
+ useEffect(() => {
41
+ if (ReleaseIoSanita) {
42
+ try {
43
+ fetch(ReleaseIoSanita)
44
+ .then((res) => res.text())
45
+ .then((text) => {
46
+ setLogIST(marked(text));
47
+ });
48
+ } catch {
49
+ console.log(ReleaseIoSanita + ' not found.');
50
+ }
51
+ }
52
+ }, []);
53
+
54
+ const viewTab = (tab) => {
55
+ if (activeTab !== tab) {
56
+ toggleTab(tab);
57
+ }
58
+ };
59
+
60
+ return (
61
+ <div className="public-ui">
62
+ <Helmet title="Release LOG" />
63
+ <Helmet>
64
+ <meta name="robots" content="noindex" />
65
+ </Helmet>
66
+ <Container className="px-4 my-4 release-log">
67
+ <h1>Lista degli aggiornamenti</h1>
68
+ <Nav tabs className="mb-3">
69
+ {LOGS_TO_VIEW.filter((log) => log.file != null).map((log) => (
70
+ <NavItem key={log.name}>
71
+ <NavLink
72
+ href="#"
73
+ active={activeTab === log.name}
74
+ onClick={() => viewTab(log.name)}
75
+ >
76
+ <span>{log.name}</span>
77
+ {activeTab === log.name && (
78
+ <span className="visually-hidden">
79
+ {intl.formatMessage(messages.current)}
80
+ </span>
81
+ )}
82
+ </NavLink>
83
+ </NavItem>
84
+ ))}
85
+ </Nav>
86
+
87
+ <TabContent activeTab={activeTab}>
88
+ {LOGS_TO_VIEW.filter((log) => log.file != null).map((log) => (
89
+ <TabPane
90
+ tabId={log.name}
91
+ className="p-3"
92
+ key={log.name + 'tabcontent'}
93
+ >
94
+ <div
95
+ dangerouslySetInnerHTML={{
96
+ __html: log.name === 'io-Sanita' ? logIST : <div></div>,
97
+ }}
98
+ ></div>
99
+ </TabPane>
100
+ ))}
101
+ </TabContent>
102
+ </Container>
103
+ </div>
104
+ );
105
+ };
106
+
107
+ export default ReleaseLog;
@@ -55,6 +55,11 @@ import getIoSanitaWidgets from 'io-sanita-theme/config/widgets/widgets';
55
55
 
56
56
  export const AGGREGATION_PAGE_ARGOMENTO = '/argomento/';
57
57
  export const AGGREGATION_PAGE_TIPOLOGIA_UTENTE = '/tipologia-utente/';
58
+
59
+ const ReleaseLog = loadable(() =>
60
+ import('io-sanita-theme/components/ReleaseLog/ReleaseLog'),
61
+ );
62
+
58
63
  const messages = defineMessages({
59
64
  search_brdc: {
60
65
  id: 'search_brdc',
@@ -138,12 +143,22 @@ export default function applyConfig(config) {
138
143
  Modulo: faFileDownloadSVG,
139
144
  Faq: faQuestionSVG,
140
145
  },
146
+ controlpanels: [
147
+ ...(config.settings.controlpanels ?? []),
148
+ {
149
+ '@id': '/release-log',
150
+ group: 'General',
151
+ title: 'Novità ultimi rilasci',
152
+ id: 'release-log',
153
+ },
154
+ ],
141
155
  controlPanelsIcons: {
142
156
  ...config.settings.controlPanelsIcons,
143
157
  'dropdown-menu-settings': menuSVG,
144
158
  'secondary-menu-settings': menuAltSVG,
145
159
  'subsites-settings': navSVG,
146
160
  'social-settings': shareSVG,
161
+ 'release-log': logSVG,
147
162
  },
148
163
  defaultExcludedFromSearch: {
149
164
  portalTypes: ['Image', 'File'],
@@ -300,6 +315,10 @@ export default function applyConfig(config) {
300
315
  path: ['/login', '/**/login'],
301
316
  component: LoginAgid,
302
317
  },
318
+ {
319
+ path: ['/controlpanel/release-log', '/release-log'],
320
+ component: ReleaseLog,
321
+ },
303
322
  {
304
323
  path: [AGGREGATION_PAGE_ARGOMENTO + ':id'],
305
324
  component: AggregationPage,
@@ -320,6 +339,7 @@ export default function applyConfig(config) {
320
339
  ),
321
340
  AGGREGATION_PAGE_ARGOMENTO,
322
341
  AGGREGATION_PAGE_TIPOLOGIA_UTENTE,
342
+ /\/release-log\/.*$/
323
343
  ///\/argomento\/.*$/,
324
344
  ///\/tipologia-utente\/.*$/,
325
345
  ];
@@ -328,5 +348,7 @@ export default function applyConfig(config) {
328
348
  AGGREGATION_PAGE_ARGOMENTO,
329
349
  AGGREGATION_PAGE_TIPOLOGIA_UTENTE,
330
350
  ];
351
+
352
+ console.log('super test');
331
353
  return config;
332
354
  }
@@ -0,0 +1,50 @@
1
+ import { useState, useEffect } from 'react';
2
+ import { isResolveUID, getSiteProperty } from 'io-sanita-theme/helpers';
3
+
4
+ const FALLBACK_IMAGE_SRC =
5
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAMcCAMAAACo9Dz9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEZDRUU0QjREQTIxMUU0ODAwMUVCOTYwMzA5MzE3NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEZDRUU0QzREQTIxMUU0ODAwMUVCOTYwMzA5MzE3NSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwRkNFRTQ5NERBMjExRTQ4MDAxRUI5NjAzMDkzMTc1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwRkNFRTRBNERBMjExRTQ4MDAxRUI5NjAzMDkzMTc1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+D7rN8gAAAMZQTFRFvL7A5+jpuLm7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';
6
+
7
+ const FALLBACK_IMAGE_SRC_MAX_W = 200;
8
+
9
+ const getFallbackImageStyle = ({
10
+ src,
11
+ customFallbackSrc,
12
+ className,
13
+ sizes,
14
+ }) => {
15
+ const fallbackSrc = customFallbackSrc || getSiteProperty('fallbackImageSrc');
16
+ if (src === fallbackSrc) {
17
+ if (!className && sizes) return { maxWidth: sizes };
18
+ else if (!className && !sizes)
19
+ return { maxWidth: getSiteProperty('fallbackImageSrcMaxW') };
20
+ }
21
+ };
22
+
23
+ /*
24
+ Hook per l'utilizzo di immagini con fallback per immagini rotte.
25
+ NB: il backend a volte torna ./resolveuid/xxxxx se non trova il brain
26
+ dell'immagine nella property per la src. Siamo tutti d'accordo a
27
+ classificarlo come immagine rotta in questo caso.
28
+ */
29
+ const useFallbackImageSrc = ({
30
+ src,
31
+ customFallbackSrc = '',
32
+ className,
33
+ sizes,
34
+ }) => {
35
+ const [currentSrc, setCurrentSrc] = useState(
36
+ !isResolveUID(src)
37
+ ? src
38
+ : customFallbackSrc || getSiteProperty('fallbackImageSrc'),
39
+ );
40
+ useEffect(() => {
41
+ setCurrentSrc(src); // Reset the source if props change
42
+ }, [src]);
43
+
44
+ const handleError = () => {
45
+ setCurrentSrc(getSiteProperty('fallbackImageSrc'));
46
+ };
47
+ return { currentSrc, handleError, getFallbackImageStyle };
48
+ };
49
+
50
+ export { FALLBACK_IMAGE_SRC, FALLBACK_IMAGE_SRC_MAX_W, useFallbackImageSrc };
@@ -23,6 +23,7 @@ export {
23
23
  checkIfValidVideoLink,
24
24
  } from 'io-sanita-theme/helpers/video';
25
25
  export { useDebouncedEffect } from 'io-sanita-theme/helpers/debounce';
26
+ export { isResolveUID } from 'io-sanita-theme/helpers/url';
26
27
 
27
28
  //pagination
28
29
  export { useClientPagination } from 'io-sanita-theme/helpers/ClientPagination/clientPagination';
@@ -42,6 +43,9 @@ export {
42
43
  getRealEmptyField,
43
44
  } from 'io-sanita-theme/helpers/FormValidation/FormValidation';
44
45
 
46
+ //images
47
+ export { useFallbackImageSrc } from 'io-sanita-theme/helpers/images';
48
+
45
49
  //richtext
46
50
  export RichText from 'io-sanita-theme/helpers/RichText/RichText';
47
51
  export RichTextRender from 'io-sanita-theme/helpers/RichText/RichTextRender';
@@ -0,0 +1,6 @@
1
+ const RESOLVEUID_RE = /^[./]*resolve[Uu]id\/([^/]*)\/?(.*)$/;
2
+
3
+ export function isResolveUID(url) {
4
+ const match = url?.match(RESOLVEUID_RE);
5
+ return Boolean(match);
6
+ }
@@ -1,8 +1,33 @@
1
1
  .cms-ui,
2
2
  .public-ui {
3
- .ui.table.basic {
3
+ .ui.table {
4
+ color: $text-color;
5
+ border: $table-border-width solid $table-border-color;
6
+ thead th,
7
+ tbody td,
8
+ th,
9
+ td td {
10
+ padding: $table-cell-padding-y $table-cell-padding-x;
11
+ }
12
+
13
+ &:not(.inverted) {
14
+ thead th,
15
+ th {
16
+ background-color: $neutral-1-a1;
17
+ }
18
+ }
19
+
4
20
  &.celled {
5
21
  @extend .table-bordered;
22
+
23
+ tr,
24
+ th,
25
+ td {
26
+ border-left: $table-border-width solid $table-border-color;
27
+ border-right: $table-border-width solid $table-border-color;
28
+ border-bottom: $table-border-width solid $table-border-color;
29
+ border-top: $table-border-width solid $table-border-color;
30
+ }
6
31
  }
7
32
 
8
33
  &.fixed {
@@ -13,11 +38,73 @@
13
38
  @extend .table-sm;
14
39
  }
15
40
 
16
- &.very.basic {
41
+ &.sortable {
42
+ thead th {
43
+ position: relative;
44
+ padding-right: 2.5rem;
45
+
46
+ &:after {
47
+ content: '';
48
+ width: 1.5rem;
49
+ display: inline-block;
50
+ height: 1.5rem;
51
+ background-size: 1.5rem;
52
+ background-repeat: no-repeat;
53
+
54
+ position: absolute;
55
+ right: 0.5rem;
56
+
57
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjxzdmcgZmlsbD0iIzAwMDAwMCIgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+DQogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMTA4OCwtMzIwKSI+DQogICAgICAgIDxyZWN0IGlkPSJJY29ucyIgeD0iMCIgeT0iMCIgd2lkdGg9IjEyODAiIGhlaWdodD0iODAwIiBzdHlsZT0iZmlsbDpub25lOyIvPg0KICAgICAgICA8ZyBpZD0iSWNvbnMxIiBzZXJpZjppZD0iSWNvbnMiPg0KICAgICAgICAgICAgPGcgaWQ9IlN0cmlrZSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iSDEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9IkgyIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJIMyI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0ibGlzdC11bCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iaGFtYnVyZ2VyLTEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImhhbWJ1cmdlci0yIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsaXN0LW9sIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsaXN0LXRhc2siPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InRyYXNoIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ2ZXJ0aWNhbC1tZW51Ij4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJob3Jpem9udGFsLW1lbnUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InNpZGViYXItMiI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iUGVuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJQZW4xIiBzZXJpZjppZD0iUGVuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjbG9jayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iZXh0ZXJuYWwtbGluayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iaHIiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImluZm8iPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9Indhcm5pbmciPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InBsdXMtY2lyY2xlIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJtaW51cy1jaXJjbGUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGc+DQogICAgICAgICAgICAgICAgPGcgaWQ9ImNhcmV0LWRvd24iIHRyYW5zZm9ybT0ibWF0cml4KDAuNTIyOTU1LDAuNTIyOTU1LC0wLjUyNTE2MSwwLjUyNTE2MSwxMDgyLjc5LDEwOS40NDgpIj4NCiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTI4OCwyMTZMMjU2LDIxNkwyNTYsMjEyTDI4NCwyMTJMMjg0LDE4NEwyODgsMTg0TDI4OCwyMTZaIiBzdHlsZT0iZmlsbC1ydWxlOm5vbnplcm87Ii8+DQogICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgICAgIDxnIGlkPSJjYXJldC1kb3duMSIgc2VyaWY6aWQ9ImNhcmV0LWRvd24iIHRyYW5zZm9ybT0ibWF0cml4KC0wLjUyMjk1NSwtMC41MjI5NTUsMC41MjUxNjEsLTAuNTI1MTYxLDExNTcuMjEsNTk0LjU1MikiPg0KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjg4LDIxNkwyNTYsMjE2TDI1NiwyMTJMMjg0LDIxMkwyODQsMTg0TDI4OCwxODRMMjg4LDIxNloiIHN0eWxlPSJmaWxsLXJ1bGU6bm9uemVybzsiLz4NCiAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0idnVlIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjb2ciPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImxvZ28iPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InJhZGlvLWNoZWNrIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJleWUtc2xhc2giPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImV5ZSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0idG9nZ2xlLW9mZiI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0ic2hyZWRkZXIiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InNwaW5uZXItLWxvYWRpbmctLWRvdHMtIiBzZXJpZjppZD0ic3Bpbm5lciBbbG9hZGluZywgZG90c10iPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InJlYWN0Ij4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjaGVjay1zZWxlY3RlZCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0idHVybi1vZmYiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNvZGUtYmxvY2siPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InVzZXIiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNvZmZlZS1iZWFuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjM4MzE3LDAuMzY4NTMyLC0wLjM2ODUzMiwwLjYzODMxNyw3ODUuMDIxLC0yMDguOTc1KSI+DQogICAgICAgICAgICAgICAgPGcgaWQ9ImNvZmZlZS1iZWFucyI+DQogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJjb2ZmZWUtYmVhbjEiIHNlcmlmOmlkPSJjb2ZmZWUtYmVhbiI+DQogICAgICAgICAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY29mZmVlLWJlYW4tZmlsbGVkIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjM4MzE3LDAuMzY4NTMyLC0wLjM2ODUzMiwwLjYzODMxNyw5MTMuMDYyLC0yMDguOTc1KSI+DQogICAgICAgICAgICAgICAgPGcgaWQ9ImNvZmZlZS1iZWFucy1maWxsZWQiPg0KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iY29mZmVlLWJlYW4yIiBzZXJpZjppZD0iY29mZmVlLWJlYW4iPg0KICAgICAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNsaXBib2FyZCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDEyOC4wMTEsMS4zNTQxNSkiPg0KICAgICAgICAgICAgICAgIDxnIGlkPSJjbGlwYm9hcmQtcGFzdGUiPg0KICAgICAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjbGlwYm9hcmQtY29weSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iTGF5ZXIxIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgPC9nPg0KICAgIDwvZz4NCjwvc3ZnPg==');
58
+ }
59
+
60
+ &.sorted.ascending {
61
+ &:after {
62
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjxzdmcgZmlsbD0iIzAwMDAwMCIgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+DQogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMTIxNiwtMzIwKSI+DQogICAgICAgIDxyZWN0IGlkPSJJY29ucyIgeD0iMCIgeT0iMCIgd2lkdGg9IjEyODAiIGhlaWdodD0iODAwIiBzdHlsZT0iZmlsbDpub25lOyIvPg0KICAgICAgICA8ZyBpZD0iSWNvbnMxIiBzZXJpZjppZD0iSWNvbnMiPg0KICAgICAgICAgICAgPGcgaWQ9IlN0cmlrZSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iSDEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9IkgyIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJIMyI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0ibGlzdC11bCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iaGFtYnVyZ2VyLTEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImhhbWJ1cmdlci0yIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsaXN0LW9sIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsaXN0LXRhc2siPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InRyYXNoIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ2ZXJ0aWNhbC1tZW51Ij4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJob3Jpem9udGFsLW1lbnUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InNpZGViYXItMiI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iUGVuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJQZW4xIiBzZXJpZjppZD0iUGVuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjbG9jayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iZXh0ZXJuYWwtbGluayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iaHIiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImluZm8iPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9Indhcm5pbmciPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InBsdXMtY2lyY2xlIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJtaW51cy1jaXJjbGUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwxMjgsMCkiPg0KICAgICAgICAgICAgICAgIDxnIGlkPSJjYXJldC1kb3duIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjUyMjk1NSwwLjUyMjk1NSwtMC41MjUxNjEsMC41MjUxNjEsMTA4Mi43OSwxMDkuNDQ4KSI+DQogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yODgsMjE2TDI1NiwyMTZMMjU2LDIxMkwyODQsMjEyTDI4NCwxODRMMjg4LDE4NEwyODgsMjE2WiIgc3R5bGU9ImZpbGw6cmdiKDIxNywyMTcsMjE3KTtmaWxsLXJ1bGU6bm9uemVybzsiLz4NCiAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICAgICAgPGcgaWQ9ImNhcmV0LWRvd24xIiBzZXJpZjppZD0iY2FyZXQtZG93biIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNTIyOTU1LC0wLjUyMjk1NSwwLjUyNTE2MSwtMC41MjUxNjEsMTE1Ny4yMSw1OTQuNTUyKSI+DQogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yODgsMjE2TDI1NiwyMTZMMjU2LDIxMkwyODQsMjEyTDI4NCwxODRMMjg4LDE4NEwyODgsMjE2WiIgc3R5bGU9ImZpbGwtcnVsZTpub256ZXJvOyIvPg0KICAgICAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ2dWUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNvZyI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0ibG9nbyI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0icmFkaW8tY2hlY2siPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImV5ZS1zbGFzaCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iZXllIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ0b2dnbGUtb2ZmIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJzaHJlZGRlciI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0ic3Bpbm5lci0tbG9hZGluZy0tZG90cy0iIHNlcmlmOmlkPSJzcGlubmVyIFtsb2FkaW5nLCBkb3RzXSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0icmVhY3QiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNoZWNrLXNlbGVjdGVkIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ0dXJuLW9mZiI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY29kZS1ibG9jayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0idXNlciI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY29mZmVlLWJlYW4iPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MzgzMTcsMC4zNjg1MzIsLTAuMzY4NTMyLDAuNjM4MzE3LDc4NS4wMjEsLTIwOC45NzUpIj4NCiAgICAgICAgICAgICAgICA8ZyBpZD0iY29mZmVlLWJlYW5zIj4NCiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9ImNvZmZlZS1iZWFuMSIgc2VyaWY6aWQ9ImNvZmZlZS1iZWFuIj4NCiAgICAgICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjb2ZmZWUtYmVhbi1maWxsZWQiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MzgzMTcsMC4zNjg1MzIsLTAuMzY4NTMyLDAuNjM4MzE3LDkxMy4wNjIsLTIwOC45NzUpIj4NCiAgICAgICAgICAgICAgICA8ZyBpZD0iY29mZmVlLWJlYW5zLWZpbGxlZCI+DQogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJjb2ZmZWUtYmVhbjIiIHNlcmlmOmlkPSJjb2ZmZWUtYmVhbiI+DQogICAgICAgICAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY2xpcGJvYXJkIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMTI4LjAxMSwxLjM1NDE1KSI+DQogICAgICAgICAgICAgICAgPGcgaWQ9ImNsaXBib2FyZC1wYXN0ZSI+DQogICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNsaXBib2FyZC1jb3B5Ij4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJMYXllcjEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICA8L2c+DQogICAgPC9nPg0KPC9zdmc+');
63
+ }
64
+ }
65
+ &.sorted.descending {
66
+ &:after {
67
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjxzdmcgZmlsbD0iIzAwMDAwMCIgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+DQogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMTE1MiwtMzIwKSI+DQogICAgICAgIDxyZWN0IGlkPSJJY29ucyIgeD0iMCIgeT0iMCIgd2lkdGg9IjEyODAiIGhlaWdodD0iODAwIiBzdHlsZT0iZmlsbDpub25lOyIvPg0KICAgICAgICA8ZyBpZD0iSWNvbnMxIiBzZXJpZjppZD0iSWNvbnMiPg0KICAgICAgICAgICAgPGcgaWQ9IlN0cmlrZSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iSDEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9IkgyIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJIMyI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0ibGlzdC11bCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iaGFtYnVyZ2VyLTEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImhhbWJ1cmdlci0yIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsaXN0LW9sIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsaXN0LXRhc2siPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InRyYXNoIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ2ZXJ0aWNhbC1tZW51Ij4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJob3Jpem9udGFsLW1lbnUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InNpZGViYXItMiI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iUGVuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJQZW4xIiBzZXJpZjppZD0iUGVuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjbG9jayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iZXh0ZXJuYWwtbGluayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iaHIiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImluZm8iPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9Indhcm5pbmciPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InBsdXMtY2lyY2xlIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJtaW51cy1jaXJjbGUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSw2NCwwKSI+DQogICAgICAgICAgICAgICAgPGcgaWQ9ImNhcmV0LWRvd24iIHRyYW5zZm9ybT0ibWF0cml4KDAuNTIyOTU1LDAuNTIyOTU1LC0wLjUyNTE2MSwwLjUyNTE2MSwxMDgyLjc5LDEwOS40NDgpIj4NCiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTI4OCwyMTZMMjU2LDIxNkwyNTYsMjEyTDI4NCwyMTJMMjg0LDE4NEwyODgsMTg0TDI4OCwyMTZaIiBzdHlsZT0iZmlsbC1ydWxlOm5vbnplcm87Ii8+DQogICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgICAgIDxnIGlkPSJjYXJldC1kb3duMSIgc2VyaWY6aWQ9ImNhcmV0LWRvd24iIHRyYW5zZm9ybT0ibWF0cml4KC0wLjUyMjk1NSwtMC41MjI5NTUsMC41MjUxNjEsLTAuNTI1MTYxLDExNTcuMjEsNTk0LjU1MikiPg0KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjg4LDIxNkwyNTYsMjE2TDI1NiwyMTJMMjg0LDIxMkwyODQsMTg0TDI4OCwxODRMMjg4LDIxNloiIHN0eWxlPSJmaWxsOnJnYigyMTcsMjE3LDIxNyk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+DQogICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InZ1ZSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY29nIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsb2dvIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJyYWRpby1jaGVjayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iZXllLXNsYXNoIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJleWUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InRvZ2dsZS1vZmYiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InNocmVkZGVyIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJzcGlubmVyLS1sb2FkaW5nLS1kb3RzLSIgc2VyaWY6aWQ9InNwaW5uZXIgW2xvYWRpbmcsIGRvdHNdIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJyZWFjdCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY2hlY2stc2VsZWN0ZWQiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InR1cm4tb2ZmIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjb2RlLWJsb2NrIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ1c2VyIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjb2ZmZWUtYmVhbiI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjYzODMxNywwLjM2ODUzMiwtMC4zNjg1MzIsMC42MzgzMTcsNzg1LjAyMSwtMjA4Ljk3NSkiPg0KICAgICAgICAgICAgICAgIDxnIGlkPSJjb2ZmZWUtYmVhbnMiPg0KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iY29mZmVlLWJlYW4xIiBzZXJpZjppZD0iY29mZmVlLWJlYW4iPg0KICAgICAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNvZmZlZS1iZWFuLWZpbGxlZCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjYzODMxNywwLjM2ODUzMiwtMC4zNjg1MzIsMC42MzgzMTcsOTEzLjA2MiwtMjA4Ljk3NSkiPg0KICAgICAgICAgICAgICAgIDxnIGlkPSJjb2ZmZWUtYmVhbnMtZmlsbGVkIj4NCiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9ImNvZmZlZS1iZWFuMiIgc2VyaWY6aWQ9ImNvZmZlZS1iZWFuIj4NCiAgICAgICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjbGlwYm9hcmQiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwxMjguMDExLDEuMzU0MTUpIj4NCiAgICAgICAgICAgICAgICA8ZyBpZD0iY2xpcGJvYXJkLXBhc3RlIj4NCiAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY2xpcGJvYXJkLWNvcHkiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9IkxheWVyMSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgIDwvZz4NCiAgICA8L2c+DQo8L3N2Zz4=');
68
+ }
69
+ }
70
+ }
71
+ }
72
+
73
+ &.striped {
74
+ @extend .table-striped;
75
+ tbody {
76
+ tr:nth-child(2n) {
77
+ background-color: unset;
78
+ }
79
+ }
80
+ }
81
+
82
+ &.inverted {
83
+ @extend .table-dark;
84
+ thead th {
85
+ background-color: darken($dark, 5);
86
+ }
87
+
88
+ &.celled {
89
+ tr,
90
+ th,
91
+ td {
92
+ border-color: #fff !important;
93
+ }
94
+ }
95
+ }
96
+ }
97
+
98
+ // !!!
99
+ .ui.table.basic {
100
+ &.very {
17
101
  border: none;
18
102
 
19
- tbody > tr {
103
+ tr {
104
+ border-left: none;
105
+ border-right: none;
20
106
  &:first-of-type {
107
+ &,
21
108
  th,
22
109
  td {
23
110
  border-top: none;
@@ -25,6 +112,7 @@
25
112
  }
26
113
 
27
114
  &:last-of-type {
115
+ &,
28
116
  th,
29
117
  td {
30
118
  border-bottom: none;
@@ -44,13 +132,6 @@
44
132
  }
45
133
  }
46
134
 
47
- &.inverted {
48
- @extend .table-dark;
49
- }
50
- &.striped {
51
- @extend .table-striped;
52
- }
53
-
54
135
  &:not(.inverted) {
55
136
  th {
56
137
  background-color: $neutral-1-a1;
@@ -69,36 +150,23 @@
69
150
  margin: 0;
70
151
  }
71
152
  }
153
+ }
72
154
 
73
- &.sortable {
74
- thead th {
75
- position: relative;
76
- padding-right: 2.5rem;
77
-
78
- &:after {
79
- content: '';
80
- width: 1.5rem;
81
- display: inline-block;
82
- height: 1.5rem;
83
- background-size: 1.5rem;
84
- background-repeat: no-repeat;
85
-
86
- position: absolute;
87
- right: 0.5rem;
88
-
89
- background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjxzdmcgZmlsbD0iIzAwMDAwMCIgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+DQogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMTA4OCwtMzIwKSI+DQogICAgICAgIDxyZWN0IGlkPSJJY29ucyIgeD0iMCIgeT0iMCIgd2lkdGg9IjEyODAiIGhlaWdodD0iODAwIiBzdHlsZT0iZmlsbDpub25lOyIvPg0KICAgICAgICA8ZyBpZD0iSWNvbnMxIiBzZXJpZjppZD0iSWNvbnMiPg0KICAgICAgICAgICAgPGcgaWQ9IlN0cmlrZSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iSDEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9IkgyIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJIMyI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0ibGlzdC11bCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iaGFtYnVyZ2VyLTEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImhhbWJ1cmdlci0yIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsaXN0LW9sIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsaXN0LXRhc2siPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InRyYXNoIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ2ZXJ0aWNhbC1tZW51Ij4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJob3Jpem9udGFsLW1lbnUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InNpZGViYXItMiI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iUGVuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJQZW4xIiBzZXJpZjppZD0iUGVuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjbG9jayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iZXh0ZXJuYWwtbGluayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iaHIiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImluZm8iPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9Indhcm5pbmciPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InBsdXMtY2lyY2xlIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJtaW51cy1jaXJjbGUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGc+DQogICAgICAgICAgICAgICAgPGcgaWQ9ImNhcmV0LWRvd24iIHRyYW5zZm9ybT0ibWF0cml4KDAuNTIyOTU1LDAuNTIyOTU1LC0wLjUyNTE2MSwwLjUyNTE2MSwxMDgyLjc5LDEwOS40NDgpIj4NCiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTI4OCwyMTZMMjU2LDIxNkwyNTYsMjEyTDI4NCwyMTJMMjg0LDE4NEwyODgsMTg0TDI4OCwyMTZaIiBzdHlsZT0iZmlsbC1ydWxlOm5vbnplcm87Ii8+DQogICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgICAgIDxnIGlkPSJjYXJldC1kb3duMSIgc2VyaWY6aWQ9ImNhcmV0LWRvd24iIHRyYW5zZm9ybT0ibWF0cml4KC0wLjUyMjk1NSwtMC41MjI5NTUsMC41MjUxNjEsLTAuNTI1MTYxLDExNTcuMjEsNTk0LjU1MikiPg0KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjg4LDIxNkwyNTYsMjE2TDI1NiwyMTJMMjg0LDIxMkwyODQsMTg0TDI4OCwxODRMMjg4LDIxNloiIHN0eWxlPSJmaWxsLXJ1bGU6bm9uemVybzsiLz4NCiAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0idnVlIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjb2ciPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImxvZ28iPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InJhZGlvLWNoZWNrIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJleWUtc2xhc2giPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImV5ZSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0idG9nZ2xlLW9mZiI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0ic2hyZWRkZXIiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InNwaW5uZXItLWxvYWRpbmctLWRvdHMtIiBzZXJpZjppZD0ic3Bpbm5lciBbbG9hZGluZywgZG90c10iPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InJlYWN0Ij4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjaGVjay1zZWxlY3RlZCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0idHVybi1vZmYiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNvZGUtYmxvY2siPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InVzZXIiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNvZmZlZS1iZWFuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjM4MzE3LDAuMzY4NTMyLC0wLjM2ODUzMiwwLjYzODMxNyw3ODUuMDIxLC0yMDguOTc1KSI+DQogICAgICAgICAgICAgICAgPGcgaWQ9ImNvZmZlZS1iZWFucyI+DQogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJjb2ZmZWUtYmVhbjEiIHNlcmlmOmlkPSJjb2ZmZWUtYmVhbiI+DQogICAgICAgICAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY29mZmVlLWJlYW4tZmlsbGVkIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjM4MzE3LDAuMzY4NTMyLC0wLjM2ODUzMiwwLjYzODMxNyw5MTMuMDYyLC0yMDguOTc1KSI+DQogICAgICAgICAgICAgICAgPGcgaWQ9ImNvZmZlZS1iZWFucy1maWxsZWQiPg0KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iY29mZmVlLWJlYW4yIiBzZXJpZjppZD0iY29mZmVlLWJlYW4iPg0KICAgICAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNsaXBib2FyZCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDEyOC4wMTEsMS4zNTQxNSkiPg0KICAgICAgICAgICAgICAgIDxnIGlkPSJjbGlwYm9hcmQtcGFzdGUiPg0KICAgICAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjbGlwYm9hcmQtY29weSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iTGF5ZXIxIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgPC9nPg0KICAgIDwvZz4NCjwvc3ZnPg==');
90
- }
155
+ //---
156
+ .ui.table.slate-table-block {
157
+ thead {
158
+ th {
159
+ font-weight: normal;
160
+ text-transform: unset;
161
+ }
162
+ }
91
163
 
92
- &.sorted.ascending {
93
- &:after {
94
- background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjxzdmcgZmlsbD0iIzAwMDAwMCIgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+DQogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMTIxNiwtMzIwKSI+DQogICAgICAgIDxyZWN0IGlkPSJJY29ucyIgeD0iMCIgeT0iMCIgd2lkdGg9IjEyODAiIGhlaWdodD0iODAwIiBzdHlsZT0iZmlsbDpub25lOyIvPg0KICAgICAgICA8ZyBpZD0iSWNvbnMxIiBzZXJpZjppZD0iSWNvbnMiPg0KICAgICAgICAgICAgPGcgaWQ9IlN0cmlrZSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iSDEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9IkgyIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJIMyI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0ibGlzdC11bCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iaGFtYnVyZ2VyLTEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImhhbWJ1cmdlci0yIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsaXN0LW9sIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsaXN0LXRhc2siPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InRyYXNoIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ2ZXJ0aWNhbC1tZW51Ij4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJob3Jpem9udGFsLW1lbnUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InNpZGViYXItMiI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iUGVuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJQZW4xIiBzZXJpZjppZD0iUGVuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjbG9jayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iZXh0ZXJuYWwtbGluayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iaHIiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImluZm8iPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9Indhcm5pbmciPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InBsdXMtY2lyY2xlIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJtaW51cy1jaXJjbGUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwxMjgsMCkiPg0KICAgICAgICAgICAgICAgIDxnIGlkPSJjYXJldC1kb3duIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjUyMjk1NSwwLjUyMjk1NSwtMC41MjUxNjEsMC41MjUxNjEsMTA4Mi43OSwxMDkuNDQ4KSI+DQogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yODgsMjE2TDI1NiwyMTZMMjU2LDIxMkwyODQsMjEyTDI4NCwxODRMMjg4LDE4NEwyODgsMjE2WiIgc3R5bGU9ImZpbGw6cmdiKDIxNywyMTcsMjE3KTtmaWxsLXJ1bGU6bm9uemVybzsiLz4NCiAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICAgICAgPGcgaWQ9ImNhcmV0LWRvd24xIiBzZXJpZjppZD0iY2FyZXQtZG93biIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNTIyOTU1LC0wLjUyMjk1NSwwLjUyNTE2MSwtMC41MjUxNjEsMTE1Ny4yMSw1OTQuNTUyKSI+DQogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yODgsMjE2TDI1NiwyMTZMMjU2LDIxMkwyODQsMjEyTDI4NCwxODRMMjg4LDE4NEwyODgsMjE2WiIgc3R5bGU9ImZpbGwtcnVsZTpub256ZXJvOyIvPg0KICAgICAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ2dWUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNvZyI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0ibG9nbyI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0icmFkaW8tY2hlY2siPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImV5ZS1zbGFzaCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iZXllIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ0b2dnbGUtb2ZmIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJzaHJlZGRlciI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0ic3Bpbm5lci0tbG9hZGluZy0tZG90cy0iIHNlcmlmOmlkPSJzcGlubmVyIFtsb2FkaW5nLCBkb3RzXSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0icmVhY3QiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNoZWNrLXNlbGVjdGVkIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ0dXJuLW9mZiI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY29kZS1ibG9jayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0idXNlciI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY29mZmVlLWJlYW4iPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MzgzMTcsMC4zNjg1MzIsLTAuMzY4NTMyLDAuNjM4MzE3LDc4NS4wMjEsLTIwOC45NzUpIj4NCiAgICAgICAgICAgICAgICA8ZyBpZD0iY29mZmVlLWJlYW5zIj4NCiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9ImNvZmZlZS1iZWFuMSIgc2VyaWY6aWQ9ImNvZmZlZS1iZWFuIj4NCiAgICAgICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjb2ZmZWUtYmVhbi1maWxsZWQiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MzgzMTcsMC4zNjg1MzIsLTAuMzY4NTMyLDAuNjM4MzE3LDkxMy4wNjIsLTIwOC45NzUpIj4NCiAgICAgICAgICAgICAgICA8ZyBpZD0iY29mZmVlLWJlYW5zLWZpbGxlZCI+DQogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJjb2ZmZWUtYmVhbjIiIHNlcmlmOmlkPSJjb2ZmZWUtYmVhbiI+DQogICAgICAgICAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY2xpcGJvYXJkIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMTI4LjAxMSwxLjM1NDE1KSI+DQogICAgICAgICAgICAgICAgPGcgaWQ9ImNsaXBib2FyZC1wYXN0ZSI+DQogICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNsaXBib2FyZC1jb3B5Ij4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJMYXllcjEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICA8L2c+DQogICAgPC9nPg0KPC9zdmc+');
95
- }
96
- }
97
- &.sorted.descending {
98
- &:after {
99
- background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjxzdmcgZmlsbD0iIzAwMDAwMCIgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+DQogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMTE1MiwtMzIwKSI+DQogICAgICAgIDxyZWN0IGlkPSJJY29ucyIgeD0iMCIgeT0iMCIgd2lkdGg9IjEyODAiIGhlaWdodD0iODAwIiBzdHlsZT0iZmlsbDpub25lOyIvPg0KICAgICAgICA8ZyBpZD0iSWNvbnMxIiBzZXJpZjppZD0iSWNvbnMiPg0KICAgICAgICAgICAgPGcgaWQ9IlN0cmlrZSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iSDEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9IkgyIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJIMyI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0ibGlzdC11bCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iaGFtYnVyZ2VyLTEiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImhhbWJ1cmdlci0yIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsaXN0LW9sIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsaXN0LXRhc2siPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InRyYXNoIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ2ZXJ0aWNhbC1tZW51Ij4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJob3Jpem9udGFsLW1lbnUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InNpZGViYXItMiI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iUGVuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJQZW4xIiBzZXJpZjppZD0iUGVuIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjbG9jayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iZXh0ZXJuYWwtbGluayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iaHIiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImluZm8iPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9Indhcm5pbmciPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InBsdXMtY2lyY2xlIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJtaW51cy1jaXJjbGUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSw2NCwwKSI+DQogICAgICAgICAgICAgICAgPGcgaWQ9ImNhcmV0LWRvd24iIHRyYW5zZm9ybT0ibWF0cml4KDAuNTIyOTU1LDAuNTIyOTU1LC0wLjUyNTE2MSwwLjUyNTE2MSwxMDgyLjc5LDEwOS40NDgpIj4NCiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTI4OCwyMTZMMjU2LDIxNkwyNTYsMjEyTDI4NCwyMTJMMjg0LDE4NEwyODgsMTg0TDI4OCwyMTZaIiBzdHlsZT0iZmlsbC1ydWxlOm5vbnplcm87Ii8+DQogICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgICAgIDxnIGlkPSJjYXJldC1kb3duMSIgc2VyaWY6aWQ9ImNhcmV0LWRvd24iIHRyYW5zZm9ybT0ibWF0cml4KC0wLjUyMjk1NSwtMC41MjI5NTUsMC41MjUxNjEsLTAuNTI1MTYxLDExNTcuMjEsNTk0LjU1MikiPg0KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjg4LDIxNkwyNTYsMjE2TDI1NiwyMTJMMjg0LDIxMkwyODQsMTg0TDI4OCwxODRMMjg4LDIxNloiIHN0eWxlPSJmaWxsOnJnYigyMTcsMjE3LDIxNyk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+DQogICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InZ1ZSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY29nIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJsb2dvIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJyYWRpby1jaGVjayI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iZXllLXNsYXNoIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJleWUiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InRvZ2dsZS1vZmYiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InNocmVkZGVyIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJzcGlubmVyLS1sb2FkaW5nLS1kb3RzLSIgc2VyaWY6aWQ9InNwaW5uZXIgW2xvYWRpbmcsIGRvdHNdIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJyZWFjdCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY2hlY2stc2VsZWN0ZWQiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9InR1cm4tb2ZmIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjb2RlLWJsb2NrIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJ1c2VyIj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjb2ZmZWUtYmVhbiI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjYzODMxNywwLjM2ODUzMiwtMC4zNjg1MzIsMC42MzgzMTcsNzg1LjAyMSwtMjA4Ljk3NSkiPg0KICAgICAgICAgICAgICAgIDxnIGlkPSJjb2ZmZWUtYmVhbnMiPg0KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iY29mZmVlLWJlYW4xIiBzZXJpZjppZD0iY29mZmVlLWJlYW4iPg0KICAgICAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9ImNvZmZlZS1iZWFuLWZpbGxlZCI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjYzODMxNywwLjM2ODUzMiwtMC4zNjg1MzIsMC42MzgzMTcsOTEzLjA2MiwtMjA4Ljk3NSkiPg0KICAgICAgICAgICAgICAgIDxnIGlkPSJjb2ZmZWUtYmVhbnMtZmlsbGVkIj4NCiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9ImNvZmZlZS1iZWFuMiIgc2VyaWY6aWQ9ImNvZmZlZS1iZWFuIj4NCiAgICAgICAgICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSJjbGlwYm9hcmQiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwxMjguMDExLDEuMzU0MTUpIj4NCiAgICAgICAgICAgICAgICA8ZyBpZD0iY2xpcGJvYXJkLXBhc3RlIj4NCiAgICAgICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0iY2xpcGJvYXJkLWNvcHkiPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGcgaWQ9IkxheWVyMSI+DQogICAgICAgICAgICA8L2c+DQogICAgICAgIDwvZz4NCiAgICA8L2c+DQo8L3N2Zz4=');
100
- }
101
- }
164
+ thead th,
165
+ tbody td,
166
+ th,
167
+ td {
168
+ p:last-of-type {
169
+ margin-bottom: 0;
102
170
  }
103
171
  }
104
172
  }