Commit Graph

683 Commits

Author SHA1 Message Date
flouthoc
831b207715
MenuBuilder: Add support for sortOperationsAlphabetically and sortTagsAlphabetically (#1843)
* operations: Add support for sortOperationsAlphabetically

Already documented but is currently `NO-OP` and not implemented
`sortOperationsAlphabetically`.

Allows sorting operations in sidebar menu according to their `name`
configured which is by default `summary` from Swaggerspec

TLDR:
Following commit adds support for `sortOperationsAlphabetically` already
documented but not implemented here: https://redoc.ly/docs/api-reference-docs/guides/migration-guide-2-0/#automated-sorting

Signed-off-by: flouthoc <flouthoc.git@gmail.com>

* feat: move sort by prop to utils functions

* feat: add ability to sort tags

Co-authored-by: Oprysk <vyacheslav@redocly.com>
2021-12-30 14:31:00 +02:00
Oprysk Vyacheslav
c986f0ef1a
feat: support examples in object schema (#1832)
* feat: support examples in object schema

* revert pure components used with observer

* rename option

* update test
2021-12-29 12:22:57 +02:00
Oprysk
6c41e95aa0 chore: fix broken test & components refactoring 2021-12-14 11:10:39 +02:00
Oprysk
a42d29d5c9 chore: bump marked version 2021-12-14 11:10:39 +02:00
Shelby Sanders
f82eb53ccf
Added support for showExtensions and $ref for Responses (#1406)
* Corrected responses to support $ref

* Add showExtentions for Responses

* Add showExtentions support for Responses

* Update src/services/__tests__/models/Response.test.ts

Co-authored-by: Giles Wells <giles@mediagearhead.com>

Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>
Co-authored-by: Giles Wells <giles@mediagearhead.com>
2021-12-09 19:43:47 +02:00
Oprysk Vyacheslav
aaa3b3280c
fix: x-examples for request body param does not display #1743 (#1826)
* fix: x-examples for request body param does not display #1743

* lint

* fix ts
2021-12-09 15:27:49 +02:00
Aarni Koskela
3028d3d7ac
Fix Chrome scrolling by using alternate scrollIntoViewIfNeeded (#1823)
* Break out scrollIntoViewIfNeeded into freely usable function

* Always use alternate implementation of scrollIntoViewIfNeeded

Refs #1714

Refs #1742
2021-12-09 12:51:02 +02:00
AlexVarchuk
bc2d9a7d9c
fix: fix scroll in example dropdown (#1803) 2021-12-09 11:04:17 +02:00
Junghyun Colin Kim
2e4663b3b7
Use an option usePathInSidebar (#1805)
* Use an option usePathInSidebar

If this option is enabled, it displays a path in the sidebar instead of
summary.

Usage:

```js
                <RedocStandalone
                spec={props.spec}
                options={{
                    scrollYOffset:'.navbar',
                    nativeScrollbars: true,
                    usePathInSidebar:true
                }}
```

* Rename usePathInSidebar to sideNavStyle

* Rename sidebarName to sidebarLabel

* Use ternary operator

* Use enums instead of raw string
2021-12-08 15:53:14 +02:00
AlexVarchuk
0e43ad3102
fix: add browser build for webpack 5 (#1796) 2021-11-29 14:27:06 +02:00
Oprysk Vyacheslav
b604bd8da8
fix: exclusiveMin/Max shows incorect range (#1799)
* fix: exclusiveMin/Max shows incorect range

* cover all number range cases & add unit tests

* add more tests

* fix maximum value

* simplify humanizeNumberRange function

* simplify exclusive checks

* Update src/utils/openapi.ts

Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>

* update test coverage

* linting

* revert weird prettier changes

* add md files to prettier ignore

Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>
2021-11-24 16:47:24 +02:00
Oprysk Vyacheslav
4fb5f914fa
chore: run prettier & add husky pre-commit hook (#1800) 2021-11-24 16:11:45 +02:00
Andriy Zaleskyy
734080c354
fix: Default boolean property value not rendered #1779 (#1781) 2021-10-27 16:55:20 +03:00
raghavi92
352a851857
fix: No match scenario in search (#1667)
Co-authored-by: Alex Varchuk <olexandr.varchuk@gmail.com>
2021-10-11 17:34:20 +03:00
Gabriel Simon Gianotti
8e75f9929b
chore: remove commented out code (#1768) 2021-10-11 17:30:59 +03:00
Roman Hotsiy
4fb9c83525
fix: fix deref logic for oas3.1 (#1767) 2021-10-11 15:02:08 +03:00
Andriy Zaleskyy
3b8d6441bd
fix: The number of items in the array in the array is incorrect #1762 (#1763) 2021-10-11 13:05:50 +03:00
kylenarocroc
43451ba4cd
feat: add q/kdb+ syntax highlighting (#1605) 2021-10-11 12:50:09 +03:00
Roman Marshevskyy
fe6909ed80 fix: OpenAPI 3.1: Missing description when $ref used #1727 2021-10-11 11:51:17 +03:00
Roman Marshevskyy
35f77878de fix: OpenAPI 3.1: Missing description when $ref used #1727 2021-10-11 10:53:28 +03:00
AlexVarchuk
bccd21394e
fix: scrolling to the first item (#1753) 2021-09-27 12:21:59 +03:00
Mark Theisen
bd9390a5bf
feat: new option generatedPayloadSamplesMaxDepth (#1642) 2021-09-14 13:08:50 +03:00
Andriy Zaleskyy
a8e0c29685
fix: Schema for events incorrectly omits readOnly and includes writeOnly (#1720 #1540) 2021-08-31 15:39:55 +03:00
AlexVarchuk
ddf297b112
fix: nullable object's fields were missing (#1721) 2021-08-11 12:59:31 +03:00
AlexVarchuk
6a52a16d5b
fix: hideLoading options in redoc standalone (#1709) 2021-08-03 13:37:01 +03:00
AlexVarchuk
cd2d6f76e8
fix: improve openapi 3.1 (#1700) 2021-08-03 13:36:06 +03:00
Valdir Mendes
9e1ea703e5
fix: handle empty object in security array (#1678) 2021-07-30 11:18:13 +03:00
Roman Hotsiy
d724440085
feat: add yaml highlight (#1684)
* feat: add yaml highlight

* chore: upgrade prism version
2021-07-09 17:04:53 +03:00
ILya Volchenkov
ec50858ec4
feat: added localization for some labels (#1675) 2021-07-09 10:33:36 +03:00
romanhotsiy
b41a8b4ac7
fix: fix accidentally removed onLoaded
fixes #1656
2021-07-01 12:37:42 +03:00
romanhotsiy
3df72fb99f
fix: broken linkify
fixes #1655
2021-07-01 12:34:50 +03:00
Roman Hotsiy
f4ea368f78
feat: merge refs oas 3.1 (#1640) 2021-06-09 15:43:52 +03:00
Roman Hotsiy
c09cf9dbbe
chore: modernize build pipeline (#1635) 2021-06-09 14:57:36 +03:00
Roman Hotsiy
92387bc653
chore: upgrade dependencies (#1634) 2021-06-02 15:53:36 +03:00
AlexVarchuk
823be24b31
feat: add basic support openApi 3.1 (#1622) 2021-05-31 19:23:05 +03:00
Yevhenii Hyzyla
4b072be8d1
fix: use operation path if operation summary/description is not provided (#1596)
resolves #1270
2021-04-29 23:34:43 +03:00
langhabel
d7a0a4da17
fix: parse json theme string for standalone tag (#1492) 2021-04-15 10:47:40 +03:00
Olivier Beaulieu
dfc4cf1caa
fix: added missing semicolon to styling (#1578) 2021-04-12 19:24:15 +03:00
Andriy Leliv
5a9154ab1d
chore: unit tests to check loading and bundling api definitions with openapi-core (#1568) 2021-04-08 18:45:55 +03:00
Andriy Leliv
503394655d
chore: use openapi-core to bundle definition instead of json-schema-ref-parser (#1500)
* chore: use openapi-core to bundle definition instead of json-schema-ref-parser
* chore: update: root and demo webpack configs
* chore: refactor loadAndBundleSpec
* chore: update vesions: openapi-core, redoc
* chore: rolled back webpack.config(s) to previous version
* chore: changed the way of creating core Config for bundling definition
* fix: disable eslint react/display-name
* fix: update nodejs version to 12 in travis config
* chore: optimize verification: browser or server
* chore: add fetch only for browser
* Update src/utils/loadAndBundleSpec.ts
* chore: isBrowser verification improvment
Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>
2021-04-08 15:49:15 +03:00
romanhotsiy
3ba622f3ab
fix: add includes polyfill
fixes #1530
2021-02-15 14:51:25 +02:00
Roman Hotsiy
8270481e9f
fix: false-positive recursive tag case when using oneOf + allOf (#1534) 2021-02-15 14:50:35 +02:00
Anton Kozachuk
d288165a4e
fix: background-color in search results (#1531)
* fix: background-color in search results

* Delete some changes
2021-02-15 14:14:54 +02:00
Anton Kozachuk
c874a5942c
fix: pass boolean and number values as a string in highlight function (#1512) 2021-01-30 14:19:18 +02:00
romanhotsiy
0dce880dce
fix: crash on multiple examples on parameter object
fixes #1485
2021-01-28 11:21:25 +02:00
romanhotsiy
040ce72a8a
fix: fix SourceCodeWithCopy component to be non-pure 2020-12-11 11:14:01 +02:00
Anna Stasiuk
8c559bcbcd
fix: add missed labels to elements (#1445) 2020-11-30 12:51:27 +02:00
Anna Stasiuk
bb4594ee58
feat: add new option hideSchemaPattern (#1475)
* feat: add new option hideSchemaPattern
* chore: add hideSchemaPattern option to readme
2020-11-30 11:54:46 +02:00
Roman Hotsiy
d12e410d99
feat: support multiple examples for parameters (#1470) 2020-11-23 14:00:17 +02:00
romanhotsiy
d09e744d15
fix: limit autogen json samples depth to 10 2020-11-17 11:26:04 +02:00
Anna Stasiuk
702fea0f41
feat: add tabTextColor option for responses (#1451) 2020-11-05 15:23:05 +02:00
Anna Stasiuk
6bedcf94b2
fix: fix arrow color in responses (#1452) 2020-11-05 15:22:42 +02:00
Anna Stasiuk
4729fc3d8f
fix: remove duplicated slash if hideHostname option enabled (#1448) 2020-11-03 14:47:23 +02:00
Michael Huynh
c0ae9de607
feat: add field constraint indicator for uniqueItems (#1423)
* Add field constraint indicator for uniqueItems

Resolves #1353

* Update src/components/Fields/FieldContstraints.tsx

Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>
2020-10-27 10:51:44 +02:00
Anna Stasiuk
e2de5b065e
fix: increase colors contrast to make them more accessible (#1433) 2020-10-27 10:44:06 +02:00
Dávid Kaya
c11f679f82
fix: fix the name of OpenID Connect security scheme (#1425)
The official name of the OpenID Connect security scheme does not contain a space between 'Open' and 'ID', see https://openid.net/connect/.
2020-10-27 10:42:26 +02:00
romanhotsiy
0703f73f79
feat: new extensions hook PropertyDetailsCell + wrap property name into span 2020-10-16 18:24:26 +03:00
romanhotsiy
d4016b8142
chore: fix tests 2020-10-13 19:10:04 +03:00
Roman Hotsiy
26c407bd0f
fix: fix broken observable after mobx upgrade (#1415) 2020-10-13 18:59:58 +03:00
Roman Hotsiy
c90245598e
chore: update test snapshot (#1414) 2020-10-13 17:13:35 +03:00
Roman Hotsiy
a0f15d99f0
chore: upgrade to mobx@6 (#1412) 2020-10-13 16:58:27 +03:00
Roman Hotsiy
84ab95ddc7
fix: make schema layout more responsive on small screen (#1411) 2020-10-13 16:21:36 +03:00
Anna Stasiuk
146b38c9d0
fix: make samples accessible by keyboard (#1401)
* fix: make samples accessible by keyboard

* chore: set outline-width and padding to collapser
2020-10-13 14:56:03 +03:00
Anna Stasiuk
6632d84453
fix: hide dropdown input on IE 11 (#1403) 2020-10-13 14:50:00 +03:00
Roman Hotsiy
38ac792b85
chore: do not use single-letter tokens in search 2020-09-24 14:04:58 +03:00
Roman Hotsiy
346b10f173
feat: load external search index 2020-09-24 14:04:58 +03:00
Roman Hotsiy
9730c4ee1c
feat: support for ignoring specified named schemas 2020-09-24 14:04:57 +03:00
Roman Hotsiy
a5468fb7bb
fix: fix displaying top-level object without any properties 2020-09-24 14:04:57 +03:00
Anna Stasiuk
f3e8ab4f8e
fix: fix displaying response title (#1376) 2020-09-08 16:14:39 +03:00
Anna Stasiuk
a6b41aa00b
fix: show long pattern and add toggle button (#1375) 2020-09-07 12:53:30 +03:00
Anna Stasiuk
c801b87d2a
fix: display response code at the top after adding a line break (#1374)
* fix: display response code at the top after adding a line break

* chore: rename component from Strong to Code
2020-09-03 14:18:42 +03:00
Roman Hotsiy
be07197e6d
fix: invalid discriminator dropdown behaviour with enum 2020-08-24 12:03:44 +03:00
Roman Hotsiy
d009e4a959
fix: broken dropdowns with SSR by using forked react-dropdown-aria 2020-08-22 14:57:31 +03:00
Anna Stasiuk
46eee7b70c
fix: make callbacks expandable by keyboard (#1354) 2020-08-20 17:06:55 +03:00
James Harris
fed9a061d5
fix: scale sideMenu labels according to computed font size (#1356) 2020-08-20 16:43:12 +03:00
Roman Hotsiy
addf8956e3
fix: do not crash for invalid parameter.in value
closes #1340
2020-08-19 13:16:05 +03:00
Anna Stasiuk
7e7d95fe18
chore: export dropdown components (#1351) 2020-08-18 13:11:13 +03:00
Anna Stasiuk
41f81b4d96
feat: add webhooks support (#1304) 2020-08-14 16:33:25 +03:00
Anna Stasiuk
171711f79c
chore: export parameters and example components (#1347)
* chore: export parameters and example components

* chore: export OpenAPIEncoding interface
2020-08-14 12:24:22 +03:00
Roman Hotsiy
7af2efe731
feat: new option simpleOneOfTypeLabel 2020-08-04 12:21:58 +03:00
Anna Stasiuk
2ce71895bc
fix: make elements accessible by keyboard navigation tools (#1339)
* fix: make api endpoint selectable

* fix: make response schema details selectable

* fix: update react-dropdown-aria to make dropdowns selectable
2020-08-04 12:19:01 +03:00
Roman Hotsiy
9fe8a4b685
chore: fix eslint errors 2020-07-25 20:15:14 +03:00
Roman Hotsiy
aedfa47ba4
chore: upgrade deps
closes #1316
2020-07-25 20:15:14 +03:00
Roman Hotsiy
1976dd4ee2
chore: minor refactor in theme.ts 2020-07-25 20:15:14 +03:00
Barış
c9596d4b6c
fix: highlight json keys using different color (#1287) 2020-07-25 19:52:27 +03:00
Oleksiy Kachynskyy
de27ac0308
fix: update EnumValues component (#1324) 2020-07-24 10:15:36 +03:00
Oleksiy Kachynskyy
14e7db9403
feat: add maxDisplayedEnumValues config and buttons for show/hide enums (#1322) 2020-07-21 16:54:17 +03:00
Roman Hotsiy
a96a11a4dc
feat: new option sortEnumValuesAlphabetically (#1321) 2020-07-21 16:10:48 +03:00
Roman Hotsiy
371f3dfc4e chore: fix tests 2020-07-13 11:29:53 +03:00
Anya Stasiuk
30a27c116b fix: update focus styling 2020-07-13 11:29:53 +03:00
Anya Stasiuk
3d25005f08 fix: make endpoint dropdown accessible 2020-07-13 11:29:53 +03:00
Anya Stasiuk
e8a0d105ca fix: make dropdowns accessible by keyboard 2020-07-13 11:29:53 +03:00
Anya Stasiuk
006031c517 fix: make sample controls focusable 2020-07-13 11:29:53 +03:00
Anya Stasiuk
05fd7543a2 fix: make properties focusable 2020-07-13 11:29:53 +03:00
Anya Stasiuk
442014c06d fix: make response sections focusable 2020-07-13 11:29:53 +03:00
Anya Stasiuk
47c6319206 fix: fix contrast ratio for response titles 2020-07-13 11:29:53 +03:00
Roman Hotsiy
0904b3fec2
fix: fix expand variable for vars with hyphens or dots
fixes #926
2020-06-27 19:51:39 +03:00
Roman Hotsiy
633d71293f
fix: default style and explode for params
fixes #1016
2020-06-27 19:22:49 +03:00
Moshe Eshel
644e96ae45
feat: array size info based on min max Items properties (#1308) 2020-06-27 18:45:00 +03:00
Petr Flaks
865a56a2a9
fix: prevent body scrolling when user scrolls side menu (#1300) 2020-06-23 11:53:00 +03:00
Anna Stasiuk
2ede22c45c
fix: do not display long regexps (#1295) 2020-06-09 13:36:43 +03:00
Roman Hotsiy
c69f6de4c9
chore: remove global Dict<T> and replace it with Record<string, T> 2020-05-25 16:37:45 +03:00
Roman Hotsiy
9dd129d90b
fix: proper search-index dispose 2020-05-25 16:37:45 +03:00
Roman Hotsiy
8d1d4c82e1
fix: keep 3-column layout on 13-inch mbp 2020-05-25 16:37:45 +03:00
Roman Hotsiy
becc2f5856
fix: depreacate x-code-samples, rename to x-codeSamples for consistency 2020-05-10 22:11:01 +03:00
Roman Hotsiy
6e607b9a29
fix: do not crash on incompatible allOf, console.warn instead
fixes #1156
2020-05-10 21:59:53 +03:00
Roman Hotsiy
846065916d
fix: fix broken md headings with ampersand
fixes #1173
2020-05-10 21:56:37 +03:00
Roman Hotsiy
b59faada82
fix: download button opens in new tab instead of downloading
fixes #1247
2020-05-09 14:54:13 +03:00
Roman Hotsiy
62c01da420
fix: encode URLs in json samples linkify (xss)
thanks to @masatokinugawa
2020-04-27 19:47:32 +03:00
Oleksiy Kachynskyy
57e93ec435
feat: add callbacks support (#1224)
Co-authored-by: Jonathan Bailey <jonathan_bailey@bose.com>
Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>
2020-04-08 14:04:58 +03:00
Roman Hotsiy
3908a7c464
fix: crash to wrong spelling in localeCompare
fixes #1218
2020-03-29 20:19:25 +03:00
Roman Hotsiy
a0bd27c754
fix: improve names for some theme settings 2020-03-27 18:35:07 +02:00
Mohamed Zenadi
ac4f915494
fix: sort discriminator entries by mapping order (#1216)
* sort discriminator entries by mapping order

* fix string compare
2020-03-27 13:09:51 +02:00
Mohamed Zenadi
ea5b0aabf9
feat: add x-explicitMappingOnly extension (#1215) 2020-03-27 12:09:44 +02:00
Oleksiy Kachynskyy
830371b5d1
fix: do not collapse top level on Collapse All in json samples (#1209)
* fix: update collapseAll method
to avoid collapsing whole object/array

* fix: remove extra "slice()" call
2020-03-20 15:05:07 +02:00
GreenHedgehog
c6eaa0281b
fix: fix passing boolean value to showExtensions options (#1211)
Co-authored-by: Alef <aleksey.pavlov@corp.mail.ru>
2020-03-20 14:37:22 +02:00
Roman Hotsiy
11377c903c
chore: fix ts error, use name but cannot be named 2020-03-17 13:41:55 +02:00
Roman Hotsiy
7ba3de2e28
chore: fix lint issues 2020-03-17 13:18:23 +02:00
Roman Hotsiy
54eb2a0dce
chore: prettier all 2020-03-17 12:01:32 +02:00
Roman Hotsiy
6fd6da0c37
chore: fix tslint and tests 2020-03-16 19:15:40 +02:00
Roman Hotsiy
8c053cc474
fix: fix major search performance due to wrong marker element
fixes #1109
2020-03-16 16:58:38 +02:00
Roman Hotsiy
7608800d0a
feat: new option expandSingleSchemaField 2020-03-16 16:58:28 +02:00
Faheem Abrar
373f018d0c
fix: Add debounce for 300 ms when searching (#1089)
Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>
2020-03-16 16:01:21 +02:00
Nick Oliver
af415e89e8
fix: do not load SearchWorker if disableSearch is true (#1191)
Blob URLs may be disabled by CORS (ex: #764) but should not block execution when the disableSearch option is true
2020-03-01 12:38:15 +08:00
Roman Hotsiy
1a2a7dd833
fix: fix broken sticky sidebar in Chrome 80
fixes #1167
2020-02-09 20:59:17 +07:00
Roman Hotsiy
56ddce1b11
chore: minor perf optimizations 2020-01-15 23:05:51 +02:00
Roman Hotsiy
5248415791
fix: do not process oneOf if inherited from parent with discriminator 2020-01-14 22:53:45 +02:00
Kryštof Korb
27a4af7076 feat: add HTTP syntax highlighting (#1157) 2020-01-14 09:59:05 +02:00
Roman Hotsiy
ed1db0c902
fix: empty servers behaviour per OAS spec
fixes #1151
2020-01-10 15:54:16 +02:00
Roman Hotsiy
a260c8414c
fix: fix duplicated content in tags when using md headings
fixes #1150, fixes #1152
2020-01-10 15:19:05 +02:00
Anna Stasiuk
41a9b3c182 fix: use mobile menu background color value from theme (#1144) 2019-12-16 11:59:22 +02:00
Roman Hotsiy
942d782b5a
fix: fix missing parameters
fixes #1142
2019-12-13 19:25:31 +02:00
Nan Yan
d92434d11b fix: fix sortByRequired (stabilise sort) (#1136)
fixes #1104
fixes #1121
fixes #1061
2019-12-13 11:34:41 +02:00
Roman Hotsiy
1bf490c05b
fix: search-box use theme 2019-12-13 11:29:12 +02:00
Roman Hotsiy
eaaa99d68e
feat: new option payloadSampleIdx 2019-12-12 19:12:50 +02:00
Roman Hotsiy
448b1b48c8
chore: refactor request samples 2019-12-12 18:37:47 +02:00
Roman Hotsiy
cbb9f50fa0
fix: remove implicit discriminator mapping when explicit is present 2019-12-12 18:05:37 +02:00
Roman Hotsiy
11cc4c4c3e
feat: new option hideSchemaTitles 2019-12-12 17:32:03 +02:00
Roman Hotsiy
4a25aaef69
fix: python comment stripped in headings
fixes #1116
2019-12-12 17:32:02 +02:00
Roman Hotsiy
7ed1a7ef0e
fix: h2 padding on mobile
fixes #1118
2019-12-12 17:32:02 +02:00
Roman Hotsiy
094ce914e3
fix: remove hardcoded fontFamily for oneOf labels
fixes #1120
2019-12-12 17:32:02 +02:00
Roman Hotsiy
6e390f9c79
fix: support discriminator mapping 1-n
fixes #1111
2019-12-12 17:32:02 +02:00
Roman Hotsiy
5d81abeb28
feat: enable menuToggle by default 2019-12-12 17:32:02 +02:00
Roman Hotsiy
4bb59d5d4d
chore: upgrade deps 2019-12-12 17:32:02 +02:00
Roman Hotsiy
6aeb0bf68d
fix: do not URI-encode parameter values for better readability
fixes #1138
2019-12-12 17:32:02 +02:00
Chris Faulkner
42696a01ba doc: fix some typos (#1117) 2019-12-10 08:13:37 +02:00
torbenw
289c8e6ae1 fix: change the title of "Security Scheme Type" to match "HTTP Authorization Scheme" (#1126) 2019-12-10 08:04:42 +02:00
Dimitar Nanov
3e90133664 feat: display multipleOf constrains (#1065) 2019-12-08 11:54:07 +02:00
Andrii Tykhan
dc5430e53d fix: wrap json examples in code tag (#1064) 2019-10-22 16:37:32 +03:00
Roman Hotsiy
cd9fd61831
fix: add oneOf buttons vertical space when wrapped to new line 2019-10-16 17:21:32 +03:00