Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+```html
+
-
-
-
Dropdown with text
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
-
-
+
+
Dropdown with list
+
+
+
+
+## Dropdown Attributes
+
+|Attribute|Value|Descriptoin|
+|:-------|:--------|:----|
+|position|left/right|Default is `right`, you can use `left` also, TODO: CONTENT REVIEW|
+|data-action|click/hover| Default is `hover` Note: data-action must be no `list item`|
+
diff --git a/docs/index.html b/docs/index.html
index 87075618..66e77ef8 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -47,12 +47,18 @@
// Asynchronously load CSS/JS
(function() {
var styleSrc = [
+ '_media/css/joomla-accordion.min.css',
'_media/css/joomla-alert.min.css',
'_media/css/joomla-collapse.min.css',
'_media/css/joomla-dropdown.min.css',
'_media/css/joomla-modal.min.css',
+ '_media/css/joomla-tab.min.css',
'_media/css/joomla-panels.min.css',
'_media/css/joomla-tip.min.css',
+ '_media/css/joomla-callout.min.css',
+ '_media/css/joomla-breadcrumb.min.css',
+ '_media/css/joomla-pagination.min.css',
+ '_media/css/joomla-progress.min.css'
];
var scriptSrc = [
@@ -63,12 +69,18 @@
'https://unpkg.com/prismjs/components/prism-nginx.min.js',
'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js',
+ '_media/js/joomla-accordion-es5.min.js',
'_media/js/joomla-alert-es5.min.js',
'_media/js/joomla-collapse-es5.min.js',
'_media/js/joomla-dropdown-es5.min.js',
'_media/js/joomla-modal-es5.min.js',
+ '_media/js/joomla-tab-es5.min.js',
'_media/js/joomla-panels-es5.min.js',
'_media/js/joomla-tip-es5.min.js',
+ '_media/js/joomla-callout-es5.min.js',
+ '_media/js/joomla-breadcrumb-es5.min.js',
+ '_media/js/joomla-pagination-es5.min.js',
+ '_media/js/joomla-progress-es5.min.js',
];
for (var i = 0; i < styleSrc.length; i++) {
diff --git a/docs/modal.md b/docs/modal.md
index 75e3f709..80444b68 100644
--- a/docs/modal.md
+++ b/docs/modal.md
@@ -10,30 +10,53 @@ The simplified version of the custom elements
```html
Launch demo modal
-
-
+
- I'm a Modal
+ I'm a Modal
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard
+ dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen
+ book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially
+ unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more
+ recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum
```
+
+## Attibutes
+Control the design and functionality of the custom element through attributes.
+
+
+|Attribute |Description|
+|---------------|-----------------------------------------------------------------------------------------------|
+|title |This attribute is responsible for showing modal heading/title.|
+|class |Use `scrollable` and `bordered` class to make a Scrollable and Bordered style modal|
+|iframe |Iframe source url|
+
+
### Modal demo:
Launch demo modal
-
-
-
+
+
+
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard
+ dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen
+ book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially
+ unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more
+ recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum
+
+
+
+ Close
+ Save changes
+
Modal with iframe
diff --git a/docs/pagination.md b/docs/pagination.md
new file mode 100644
index 00000000..fd595ab4
--- /dev/null
+++ b/docs/pagination.md
@@ -0,0 +1,50 @@
+# Pagination
+
+## What is this
+
+**Purpose**: Use it to create a responsive pagination.
+
+**Description**: It's a fully responsive pagination. This pagination is responsive fully manage by javascript. So don't take any panic for your big pagination.
+
+## Usage
+
+In order to use the pagination custom element you need to import the element in the document's head:
+
+```html
+
+
+```
+
+```html
+
+```
+
+### pagination Demo:
+
+
+
+
+## li Attributes
+
+|Attribute|Value|
+|:--------|:----|
+|href|By this attribute anchor `a` tag will get href value ``|
+|text|By this attribute anchor `a` tag will get innertext ` text `|
+|value|By this attribute anchor `a` tag will get value ` `|
+|class|Add custom classes or extra classes with this attribute `class="myclass custom-class"`|
+|activeClass|Add active class with this attribute `activeClass="active"`|
+
diff --git a/docs/popover.md b/docs/popover.md
deleted file mode 100644
index e69de29b..00000000
diff --git a/docs/progress.md b/docs/progress.md
new file mode 100644
index 00000000..4b7a81d1
--- /dev/null
+++ b/docs/progress.md
@@ -0,0 +1,29 @@
+# Progress (Circle)
+
+In order to use the callout custom element you need to import the element in the document's head:
+```html
+
+
+```
+
+The simplified version of the custom elements
+```html
+
+ %
+ Updated
+
+```
+
+ %
+ Updated
+
+
+## Progress Attributes
+
+|Attribute|Value|Descriptoin|
+|:-------|:--------|:----|
+|radius|round-value|Default is `50`, you can use `custom`|
+|stroke|round-value| Default is `4`|
+|fill|color-name/color-code| Set custom color for fill color|
+|empty-fill|color-name/color-code| Set custom color for fill color|
+
diff --git a/docs/smile.svg b/docs/smile.svg
new file mode 100644
index 00000000..04747d20
--- /dev/null
+++ b/docs/smile.svg
@@ -0,0 +1,11 @@
+
+
+
+ Shape
+ Created with Sketch.
+
+
+
+
+
+
diff --git a/docs/tab.md b/docs/tab.md
new file mode 100644
index 00000000..c7192d30
--- /dev/null
+++ b/docs/tab.md
@@ -0,0 +1,91 @@
+# Tab
+
+## What is this
+
+**Purpose**: Tab Purpose here
+
+**Description**: Description here
+
+## Usage
+
+In order to use the alert custom element you need to import the element in the document's head:
+
+```html
+
+
+```
+```html
+
+
+ Tab panel 1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+ Tab panel 2
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+ Tab panel 1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+
+
+
+ Tab panel 1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+ Tab panel 2
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+ Tab panel 1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+ ```
+
+
+ Tab panel 1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+ Tab panel 2
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+ Tab panel 1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+
+
+
+ Tab panel 1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+ Tab panel 2
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+ Tab panel 1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+
+## Tab Attributes
+
+|Attribute|Value|
+|:--------|:----|
+|orientation|This attribute is responsible for tab orientation, Possible values: `vertical`, `horizontal`|
+
+## Section Attributes
+
+|Attribute|Value|
+|:--------|:----|
+|name|This attribute is responsible for tab menu name|
+|id|`id` attribute is required & value must be unique|
+|disabled|This attribute is responsible for disable an item|
+
diff --git a/docs/tip.md b/docs/tip.md
index 0bae9cbf..a8b7e2eb 100644
--- a/docs/tip.md
+++ b/docs/tip.md
@@ -8,28 +8,27 @@ In order to use the tip custom element you need to import the element in the doc
The simplified version of the custom elements
```html
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
```
-### tip demo:
+### Tip demo:
+
-
-
+
+
-
+
-
+
+
+
diff --git a/package-lock.json b/package-lock.json
index a196cd8a..5238d43e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,17 +13,17 @@
}
},
"@babel/core": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz",
- "integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==",
+ "version": "7.6.4",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.4.tgz",
+ "integrity": "sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ==",
"requires": {
"@babel/code-frame": "^7.5.5",
- "@babel/generator": "^7.5.5",
- "@babel/helpers": "^7.5.5",
- "@babel/parser": "^7.5.5",
- "@babel/template": "^7.4.4",
- "@babel/traverse": "^7.5.5",
- "@babel/types": "^7.5.5",
+ "@babel/generator": "^7.6.4",
+ "@babel/helpers": "^7.6.2",
+ "@babel/parser": "^7.6.4",
+ "@babel/template": "^7.6.0",
+ "@babel/traverse": "^7.6.3",
+ "@babel/types": "^7.6.3",
"convert-source-map": "^1.1.0",
"debug": "^4.1.0",
"json5": "^2.1.0",
@@ -34,15 +34,14 @@
}
},
"@babel/generator": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz",
- "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==",
+ "version": "7.6.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz",
+ "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==",
"requires": {
- "@babel/types": "^7.5.5",
+ "@babel/types": "^7.6.3",
"jsesc": "^2.5.1",
"lodash": "^4.17.13",
- "source-map": "^0.5.0",
- "trim-right": "^1.0.1"
+ "source-map": "^0.5.0"
}
},
"@babel/helper-annotate-as-pure": {
@@ -75,6 +74,20 @@
"@babel/types": "^7.4.4"
}
},
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz",
+ "integrity": "sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-member-expression-to-functions": "^7.5.5",
+ "@babel/helper-optimise-call-expression": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.5.5",
+ "@babel/helper-split-export-declaration": "^7.4.4"
+ }
+ },
"@babel/helper-define-map": {
"version": "7.5.5",
"resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz",
@@ -235,13 +248,13 @@
}
},
"@babel/helpers": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz",
- "integrity": "sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==",
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz",
+ "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==",
"requires": {
- "@babel/template": "^7.4.4",
- "@babel/traverse": "^7.5.5",
- "@babel/types": "^7.5.5"
+ "@babel/template": "^7.6.0",
+ "@babel/traverse": "^7.6.2",
+ "@babel/types": "^7.6.0"
}
},
"@babel/highlight": {
@@ -255,9 +268,9 @@
}
},
"@babel/parser": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz",
- "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g=="
+ "version": "7.6.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.4.tgz",
+ "integrity": "sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A=="
},
"@babel/plugin-external-helpers": {
"version": "7.2.0",
@@ -279,6 +292,16 @@
"@babel/plugin-syntax-async-generators": "^7.2.0"
}
},
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz",
+ "integrity": "sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.5.5",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
"@babel/plugin-proposal-dynamic-import": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz",
@@ -300,9 +323,9 @@
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz",
- "integrity": "sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==",
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz",
+ "integrity": "sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
@@ -320,14 +343,14 @@
}
},
"@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz",
- "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==",
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz",
+ "integrity": "sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/helper-regex": "^7.4.4",
- "regexpu-core": "^4.5.4"
+ "regexpu-core": "^4.6.0"
}
},
"@babel/plugin-syntax-async-generators": {
@@ -414,9 +437,9 @@
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz",
- "integrity": "sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg==",
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz",
+ "integrity": "sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
@@ -449,23 +472,23 @@
}
},
"@babel/plugin-transform-destructuring": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz",
- "integrity": "sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz",
+ "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0"
}
},
"@babel/plugin-transform-dotall-regex": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz",
- "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==",
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz",
+ "integrity": "sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/helper-regex": "^7.4.4",
- "regexpu-core": "^4.5.4"
+ "regexpu-core": "^4.6.0"
}
},
"@babel/plugin-transform-duplicate-keys": {
@@ -545,9 +568,9 @@
}
},
"@babel/plugin-transform-modules-commonjs": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz",
- "integrity": "sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz",
+ "integrity": "sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==",
"dev": true,
"requires": {
"@babel/helper-module-transforms": "^7.4.4",
@@ -578,12 +601,12 @@
}
},
"@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.4.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz",
- "integrity": "sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==",
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.3.tgz",
+ "integrity": "sha512-jTkk7/uE6H2s5w6VlMHeWuH+Pcy2lmdwFoeWCVnvIrDUnB5gQqTVI8WfmEAhF2CDEarGrknZcmSFg1+bkfCoSw==",
"dev": true,
"requires": {
- "regexp-tree": "^0.1.6"
+ "regexpu-core": "^4.6.0"
}
},
"@babel/plugin-transform-new-target": {
@@ -653,9 +676,9 @@
}
},
"@babel/plugin-transform-spread": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz",
- "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==",
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz",
+ "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0"
@@ -691,20 +714,20 @@
}
},
"@babel/plugin-transform-unicode-regex": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz",
- "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==",
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz",
+ "integrity": "sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/helper-regex": "^7.4.4",
- "regexpu-core": "^4.5.4"
+ "regexpu-core": "^4.6.0"
}
},
"@babel/preset-env": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.5.5.tgz",
- "integrity": "sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A==",
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.3.tgz",
+ "integrity": "sha512-CWQkn7EVnwzlOdR5NOm2+pfgSNEZmvGjOhlCHBDq0J8/EStr+G+FvPEiz9B56dR6MoiUFjXhfE4hjLoAKKJtIQ==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.0.0",
@@ -712,9 +735,9 @@
"@babel/plugin-proposal-async-generator-functions": "^7.2.0",
"@babel/plugin-proposal-dynamic-import": "^7.5.0",
"@babel/plugin-proposal-json-strings": "^7.2.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.5.5",
+ "@babel/plugin-proposal-object-rest-spread": "^7.6.2",
"@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.6.2",
"@babel/plugin-syntax-async-generators": "^7.2.0",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/plugin-syntax-json-strings": "^7.2.0",
@@ -723,11 +746,11 @@
"@babel/plugin-transform-arrow-functions": "^7.2.0",
"@babel/plugin-transform-async-to-generator": "^7.5.0",
"@babel/plugin-transform-block-scoped-functions": "^7.2.0",
- "@babel/plugin-transform-block-scoping": "^7.5.5",
+ "@babel/plugin-transform-block-scoping": "^7.6.3",
"@babel/plugin-transform-classes": "^7.5.5",
"@babel/plugin-transform-computed-properties": "^7.2.0",
- "@babel/plugin-transform-destructuring": "^7.5.0",
- "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/plugin-transform-destructuring": "^7.6.0",
+ "@babel/plugin-transform-dotall-regex": "^7.6.2",
"@babel/plugin-transform-duplicate-keys": "^7.5.0",
"@babel/plugin-transform-exponentiation-operator": "^7.2.0",
"@babel/plugin-transform-for-of": "^7.4.4",
@@ -735,10 +758,10 @@
"@babel/plugin-transform-literals": "^7.2.0",
"@babel/plugin-transform-member-expression-literals": "^7.2.0",
"@babel/plugin-transform-modules-amd": "^7.5.0",
- "@babel/plugin-transform-modules-commonjs": "^7.5.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.6.0",
"@babel/plugin-transform-modules-systemjs": "^7.5.0",
"@babel/plugin-transform-modules-umd": "^7.2.0",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.3",
"@babel/plugin-transform-new-target": "^7.4.4",
"@babel/plugin-transform-object-super": "^7.5.5",
"@babel/plugin-transform-parameters": "^7.4.4",
@@ -746,12 +769,12 @@
"@babel/plugin-transform-regenerator": "^7.4.5",
"@babel/plugin-transform-reserved-words": "^7.2.0",
"@babel/plugin-transform-shorthand-properties": "^7.2.0",
- "@babel/plugin-transform-spread": "^7.2.0",
+ "@babel/plugin-transform-spread": "^7.6.2",
"@babel/plugin-transform-sticky-regex": "^7.2.0",
"@babel/plugin-transform-template-literals": "^7.4.4",
"@babel/plugin-transform-typeof-symbol": "^7.2.0",
- "@babel/plugin-transform-unicode-regex": "^7.4.4",
- "@babel/types": "^7.5.5",
+ "@babel/plugin-transform-unicode-regex": "^7.6.2",
+ "@babel/types": "^7.6.3",
"browserslist": "^4.6.0",
"core-js-compat": "^3.1.1",
"invariant": "^2.2.2",
@@ -760,44 +783,52 @@
}
},
"@babel/runtime": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz",
- "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==",
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.3.tgz",
+ "integrity": "sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA==",
"dev": true,
"requires": {
"regenerator-runtime": "^0.13.2"
+ },
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
+ "dev": true
+ }
}
},
"@babel/template": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz",
- "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz",
+ "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==",
"requires": {
"@babel/code-frame": "^7.0.0",
- "@babel/parser": "^7.4.4",
- "@babel/types": "^7.4.4"
+ "@babel/parser": "^7.6.0",
+ "@babel/types": "^7.6.0"
}
},
"@babel/traverse": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz",
- "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==",
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz",
+ "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==",
"requires": {
"@babel/code-frame": "^7.5.5",
- "@babel/generator": "^7.5.5",
+ "@babel/generator": "^7.6.3",
"@babel/helper-function-name": "^7.1.0",
"@babel/helper-split-export-declaration": "^7.4.4",
- "@babel/parser": "^7.5.5",
- "@babel/types": "^7.5.5",
+ "@babel/parser": "^7.6.3",
+ "@babel/types": "^7.6.3",
"debug": "^4.1.0",
"globals": "^11.1.0",
"lodash": "^4.17.13"
}
},
"@babel/types": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
- "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz",
+ "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==",
"requires": {
"esutils": "^2.0.2",
"lodash": "^4.17.13",
@@ -877,9 +908,9 @@
}
},
"@types/bluebird": {
- "version": "3.5.27",
- "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.27.tgz",
- "integrity": "sha512-6BmYWSBea18+tSjjSC3QIyV93ZKAeNWGM7R6aYt1ryTZXrlHF+QLV0G2yV0viEGVyRkyQsWfMoJ0k/YghBX5sQ==",
+ "version": "3.5.28",
+ "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.28.tgz",
+ "integrity": "sha512-0Vk/kqkukxPKSzP9c8WJgisgGDx5oZDbsLLWIP5t70yThO/YleE+GEm2S1GlRALTaack3O7U5OS5qEm7q2kciA==",
"dev": true
},
"@types/body-parser": {
@@ -893,9 +924,9 @@
}
},
"@types/chai": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.0.tgz",
- "integrity": "sha512-zw8UvoBEImn392tLjxoavuonblX/4Yb9ha4KBU10FirCfwgzhKO0dvyJSF9ByxV1xK1r2AgnAi/tvQaLgxQqxA==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.4.tgz",
+ "integrity": "sha512-7qvf9F9tMTzo0akeswHPGqgUx/gIaJqrOEET/FCD8CFRkSUHlygQiM5yB6OvjrtdxBVLSyw7COJubsFYs0683g==",
"dev": true
},
"@types/chai-subset": {
@@ -983,9 +1014,9 @@
"dev": true
},
"@types/express": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.1.tgz",
- "integrity": "sha512-VfH/XCP0QbQk5B5puLqTLEeFgR8lfCJHZJKkInZ9mkYd+u8byX0kztXEQxEk4wZXJs8HI+7km2ALXjn4YKcX9w==",
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.2.tgz",
+ "integrity": "sha512-5mHFNyavtLoJmnusB8OKJ5bshSzw+qkMIBAobLrIM48HJvunFva9mOa6aBwh64lBFyNwBbs0xiEFuj4eU/NjCA==",
"dev": true,
"requires": {
"@types/body-parser": "*",
@@ -994,9 +1025,9 @@
}
},
"@types/express-serve-static-core": {
- "version": "4.16.9",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.9.tgz",
- "integrity": "sha512-GqpaVWR0DM8FnRUJYKlWgyARoBUAVfRIeVDZQKOttLFp5SmhhF9YFIYeTPwMd/AXfxlP7xVO2dj1fGu0Q+krKQ==",
+ "version": "4.16.11",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.11.tgz",
+ "integrity": "sha512-K8d2M5t3tBQimkyaYTXxtHYyoJPUEhy2/omVRnTAKw5FEdT+Ft6lTaTOpoJdHeG+mIwQXXtqiTcYZ6IR8LTzjQ==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -1088,9 +1119,9 @@
}
},
"@types/node": {
- "version": "12.7.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.3.tgz",
- "integrity": "sha512-3SiLAIBkDWDg6vFo0+5YJyHPWU9uwu40Qe+v+0MH8wRKYBimHvvAOyk3EzMrD/TrIlLYfXrqDqrg913PynrMJQ==",
+ "version": "12.12.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.5.tgz",
+ "integrity": "sha512-KEjODidV4XYUlJBF3XdjSH5FWoMCtO0utnhtdLf1AgeuZLOrRbvmU/gaRCVg7ZaQDjVf3l84egiY0mRNe5xE4A==",
"dev": true
},
"@types/opn": {
@@ -1190,9 +1221,9 @@
}
},
"@types/uuid": {
- "version": "3.4.5",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.5.tgz",
- "integrity": "sha512-MNL15wC3EKyw1VLF+RoVO4hJJdk9t/Hlv3rt1OL65Qvuadm4BYo6g9ZJQqoq7X8NBFSsQXgAujWciovh2lpVjA==",
+ "version": "3.4.6",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.6.tgz",
+ "integrity": "sha512-cCdlC/1kGEZdEglzOieLDYBxHsvEOIg7kp/2FYyVR9Pxakq+Qf/inL3RKQ+PA8gOlI/NnL+fXmQH12nwcGzsHw==",
"dev": true,
"requires": {
"@types/node": "*"
@@ -1228,28 +1259,28 @@
}
},
"@types/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@types/which/-/which-1.3.1.tgz",
- "integrity": "sha512-ZrJDWpvg75LTGX4XwuneY9s6bF3OeZcGTpoGh3zDV9ytzcHMFsRrMIaLBRJZQMBoGyKs6unBQfVdrLZiYfb1zQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@types/which/-/which-1.3.2.tgz",
+ "integrity": "sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA==",
"dev": true,
"optional": true
},
"@webcomponents/custom-elements": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@webcomponents/custom-elements/-/custom-elements-1.2.4.tgz",
- "integrity": "sha512-WiTlgz6/kuwajYIcgyq64rSlCtb2AvbxwwrExP3wr6rKbJ72I3hi/sb4KdGUumfC+isDn2F0btZGk4MnWpyO1Q==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@webcomponents/custom-elements/-/custom-elements-1.3.0.tgz",
+ "integrity": "sha512-Mj2g0ZlqHgV+HFFb4ErPbu64l3Bq//wTv/jOBcMBYM178zLF5YN77mBd9er8xLjekeqvI6FFUuQxwEsnbKL3CQ==",
"dev": true
},
"@webcomponents/shadycss": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.9.1.tgz",
- "integrity": "sha512-IaZOnWOKXHghqk/WfPNDRIgDBi3RsVPY2IFAw6tYiL9UBGvQRy5R6uC+Fk7qTZsReTJ0xh5MTT8yAcb3MUR4mQ==",
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.9.2.tgz",
+ "integrity": "sha512-GsD7RpDVrVdgC6e+D8zQia8RGNmEGQ9/qotnVPQYPrIXhGS5xSt6ZED9YmuHz3HbLqY+E54tE1EK3tjLzSCGrw==",
"dev": true
},
"@webcomponents/webcomponentsjs": {
- "version": "2.2.10",
- "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.2.10.tgz",
- "integrity": "sha512-5dzhUhP+h0qMiK0IWb7VNb0OGBoXO3AuI6Qi8t9PoKT50s5L1jv0xnwnLq+cFgPuTB8FLTNP8xIDmyoOsKBy9Q==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.3.0.tgz",
+ "integrity": "sha512-sR6FOrNnnncRuoJDqq9QxtRsJMbIvASw4vnJwIYKVlKO3AMc+NAr/bIQNnUiTTE9pBDTJkFpVaUdjJaRdsjmyA==",
"dev": true
},
"JSONStream": {
@@ -1297,9 +1328,9 @@
"dev": true
},
"acorn-jsx": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz",
- "integrity": "sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
+ "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==",
"dev": true
},
"acorn-node": {
@@ -1416,10 +1447,13 @@
}
},
"ansi-escapes": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
- "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
- "dev": true
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.2.1.tgz",
+ "integrity": "sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.5.2"
+ }
},
"ansi-regex": {
"version": "2.1.1",
@@ -1497,9 +1531,9 @@
}
},
"glob": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
- "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz",
+ "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
@@ -1555,9 +1589,9 @@
},
"dependencies": {
"glob": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
- "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz",
+ "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
@@ -1569,9 +1603,9 @@
}
},
"graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
"dev": true
},
"normalize-path": {
@@ -1635,6 +1669,12 @@
"integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
"dev": true
},
+ "array-differ": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
+ "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
+ "dev": true
+ },
"array-filter": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
@@ -1675,6 +1715,12 @@
"integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
"dev": true
},
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true
+ },
"array-unique": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
@@ -1687,6 +1733,12 @@
"integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
"dev": true
},
+ "arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+ "dev": true
+ },
"asn1": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
@@ -1801,18 +1853,18 @@
"dev": true
},
"autoprefixer": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz",
- "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==",
+ "version": "9.7.1",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.1.tgz",
+ "integrity": "sha512-w3b5y1PXWlhYulevrTJ0lizkQ5CyqfeU6BIRDbuhsMupstHQOeb1Ur80tcB1zxSu7AwyY/qCQ7Vvqklh31ZBFw==",
"dev": true,
"requires": {
- "browserslist": "^4.6.3",
- "caniuse-lite": "^1.0.30000980",
+ "browserslist": "^4.7.2",
+ "caniuse-lite": "^1.0.30001006",
"chalk": "^2.4.2",
"normalize-range": "^0.1.2",
"num2fraction": "^1.2.2",
- "postcss": "^7.0.17",
- "postcss-value-parser": "^4.0.0"
+ "postcss": "^7.0.21",
+ "postcss-value-parser": "^4.0.2"
}
},
"aws-sign2": {
@@ -1918,6 +1970,30 @@
}
}
},
+ "babel-helper-call-delegate": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
+ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-define-map": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
+ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
"babel-helper-evaluate-path": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz",
@@ -1930,6 +2006,39 @@
"integrity": "sha1-NpZzahKKwYvCUlS19AoizrPB0/0=",
"dev": true
},
+ "babel-helper-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
+ "dev": true,
+ "requires": {
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-get-function-arity": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
+ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-hoist-variables": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
+ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
"babel-helper-is-nodes-equiv": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz",
@@ -1948,12 +2057,47 @@
"integrity": "sha1-0kSjvvmESHJgP/tG4izorN9VFWI=",
"dev": true
},
+ "babel-helper-optimise-call-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
+ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-regex": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
+ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
"babel-helper-remove-or-void": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz",
"integrity": "sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA=",
"dev": true
},
+ "babel-helper-replace-supers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
+ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
+ "dev": true,
+ "requires": {
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
"babel-helper-to-multiple-sequence-expressions": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz",
@@ -1984,6 +2128,15 @@
"yargs-parser": "^10.0.0"
}
},
+ "babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
"babel-plugin-dynamic-import-node": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
@@ -2100,6 +2253,274 @@
"resolve": "^1.11.1"
}
},
+ "babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
+ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-plugin-transform-es2015-classes": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
+ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
+ "dev": true,
+ "requires": {
+ "babel-helper-define-map": "^6.24.1",
+ "babel-helper-function-name": "^6.24.1",
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
+ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
+ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
+ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
+ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
+ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-strict-mode": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-types": "^6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
+ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
+ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-object-super": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
+ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
+ "dev": true,
+ "requires": {
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-parameters": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
+ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
+ "dev": true,
+ "requires": {
+ "babel-helper-call-delegate": "^6.24.1",
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
+ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-sticky-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
+ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-unicode-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
+ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "regexpu-core": "^2.0.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ }
+ }
+ }
+ },
"babel-plugin-transform-inline-consecutive-adds": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz",
@@ -2133,6 +2554,28 @@
"esutils": "^2.0.2"
}
},
+ "babel-plugin-transform-regenerator": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.10.0"
+ },
+ "dependencies": {
+ "regenerator-transform": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.18.0",
+ "babel-types": "^6.19.0",
+ "private": "^0.1.6"
+ }
+ }
+ }
+ },
"babel-plugin-transform-regexp-constructors": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz",
@@ -2166,12 +2609,54 @@
"integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=",
"dev": true
},
+ "babel-plugin-transform-strict-mode": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
+ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
"babel-plugin-transform-undefined-to-void": {
"version": "6.9.4",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz",
"integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=",
"dev": true
},
+ "babel-preset-es2015": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
+ "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-check-es2015-constants": "^6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "^6.24.1",
+ "babel-plugin-transform-es2015-classes": "^6.24.1",
+ "babel-plugin-transform-es2015-computed-properties": "^6.24.1",
+ "babel-plugin-transform-es2015-destructuring": "^6.22.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1",
+ "babel-plugin-transform-es2015-for-of": "^6.22.0",
+ "babel-plugin-transform-es2015-function-name": "^6.24.1",
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1",
+ "babel-plugin-transform-es2015-modules-umd": "^6.24.1",
+ "babel-plugin-transform-es2015-object-super": "^6.24.1",
+ "babel-plugin-transform-es2015-parameters": "^6.24.1",
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1",
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "^6.24.1",
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0",
+ "babel-plugin-transform-es2015-unicode-regex": "^6.24.1",
+ "babel-plugin-transform-regenerator": "^6.24.1"
+ }
+ },
"babel-preset-minify": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.5.1.tgz",
@@ -2211,14 +2696,19 @@
"requires": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
- },
- "dependencies": {
- "regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
- "dev": true
- }
+ }
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
}
},
"babel-traverse": {
@@ -2238,12 +2728,6 @@
"lodash": "^4.17.4"
},
"dependencies": {
- "babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
- "dev": true
- },
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -2294,9 +2778,9 @@
"dev": true
},
"babylon": {
- "version": "7.0.0-beta.47",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz",
- "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==",
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
"dev": true
},
"backo2": {
@@ -2308,8 +2792,7 @@
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
- "dev": true
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"base": {
"version": "0.11.2",
@@ -2379,9 +2862,9 @@
"dev": true
},
"base64id": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
- "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
+ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
"dev": true
},
"bcrypt-pbkdf": {
@@ -2440,6 +2923,38 @@
"integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
"dev": true
},
+ "body": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz",
+ "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=",
+ "requires": {
+ "continuable-cache": "^0.3.1",
+ "error": "^7.0.0",
+ "raw-body": "~1.1.0",
+ "safe-json-parse": "~1.0.1"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
+ "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g="
+ },
+ "raw-body": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
+ "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=",
+ "requires": {
+ "bytes": "1",
+ "string_decoder": "0.10"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ }
+ }
+ },
"body-parser": {
"version": "1.19.0",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
@@ -2551,7 +3066,6 @@
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -2816,14 +3330,14 @@
}
},
"browserslist": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz",
- "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==",
+ "version": "4.7.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.2.tgz",
+ "integrity": "sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30000989",
- "electron-to-chromium": "^1.3.247",
- "node-releases": "^1.1.29"
+ "caniuse-lite": "^1.0.30001004",
+ "electron-to-chromium": "^1.3.295",
+ "node-releases": "^1.1.38"
}
},
"browserstack": {
@@ -2997,17 +3511,17 @@
},
"dependencies": {
"@types/node": {
- "version": "4.9.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-4.9.3.tgz",
- "integrity": "sha512-Q9eESThBvAbfEzznF1qTAKUoPbJEbK3lTSO0S3mICvmG/vUSZ+HnCtidpuB58Po7CJt5A2goKsDiYScN8d1V4A==",
+ "version": "4.9.4",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-4.9.4.tgz",
+ "integrity": "sha512-nKoiCZ87x6+fs26bNHjy07AQt6f46nFEitGH0P9JmWbY6tEyum6LLfLf7SIsKFh4DnBWsyUM2gYhaQAt+aA0Sw==",
"dev": true
}
}
},
"caniuse-lite": {
- "version": "1.0.30000989",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz",
- "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==",
+ "version": "1.0.30001008",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001008.tgz",
+ "integrity": "sha512-b8DJyb+VVXZGRgJUa30cbk8gKHZ3LOZTBLaUEEVr2P4xpmFigOCc62CO4uzquW641Ouq1Rm9N+rWLWdSYDaDIw==",
"dev": true
},
"capture-stack-trace": {
@@ -3173,12 +3687,12 @@
"dev": true
},
"cli-cursor": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
- "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
"dev": true,
"requires": {
- "restore-cursor": "^2.0.0"
+ "restore-cursor": "^3.1.0"
}
},
"cli-width": {
@@ -3358,9 +3872,9 @@
}
},
"commander": {
- "version": "2.20.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
- "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true
},
"component-bind": {
@@ -3451,8 +3965,7 @@
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"concat-stream": {
"version": "1.6.2",
@@ -3481,9 +3994,9 @@
}
},
"confusing-browser-globals": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.8.tgz",
- "integrity": "sha512-lI7asCibVJ6Qd3FGU7mu4sfG4try4LX3+GVS+Gv8UlrEf2AeW57piecapnog2UHZSbcX/P/1UDWVaTsblowlZg==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz",
+ "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==",
"dev": true
},
"console-browserify": {
@@ -3528,6 +4041,11 @@
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
"dev": true
},
+ "continuable-cache": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz",
+ "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8="
+ },
"convert-source-map": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
@@ -3555,18 +4073,18 @@
"dev": true
},
"core-js": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
- "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==",
+ "version": "2.6.10",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz",
+ "integrity": "sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==",
"dev": true
},
"core-js-compat": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.1.tgz",
- "integrity": "sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A==",
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.3.6.tgz",
+ "integrity": "sha512-YnwZG/+0/f7Pf6Lr3jxtVAFjtGBW9lsLYcqrxhYJai1GfvrP8DEyEpnNzj/FRQfIkOOfk1j5tTBvPBLWVVJm4A==",
"dev": true,
"requires": {
- "browserslist": "^4.6.6",
+ "browserslist": "^4.7.2",
"semver": "^6.3.0"
},
"dependencies": {
@@ -4130,9 +4648,9 @@
"dev": true
},
"electron-to-chromium": {
- "version": "1.3.251",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.251.tgz",
- "integrity": "sha512-C5oOBdqJTYago4PBeew9duLqWZ3SlDnTRM+PMIgZd/ILFrT5AfaAGd3jRNEfuPklFHFqOjfwbCvXpyzEYb5sXg==",
+ "version": "1.3.302",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.302.tgz",
+ "integrity": "sha512-1qConyiVEbj4xZRBXqtGR003+9tV0rJF0PS6aeO0Ln/UL637js9hdwweCl07meh/kJoI2N4W8q3R3g3F5z46ww==",
"dev": true
},
"elliptic": {
@@ -4157,9 +4675,9 @@
"dev": true
},
"emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
"enabled": {
@@ -4178,26 +4696,26 @@
"dev": true
},
"end-of-stream": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
- "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dev": true,
"requires": {
"once": "^1.4.0"
}
},
"engine.io": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz",
- "integrity": "sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.0.tgz",
+ "integrity": "sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w==",
"dev": true,
"requires": {
"accepts": "~1.3.4",
- "base64id": "1.0.0",
+ "base64id": "2.0.0",
"cookie": "0.3.1",
- "debug": "~3.1.0",
- "engine.io-parser": "~2.1.0",
- "ws": "~6.1.0"
+ "debug": "~4.1.0",
+ "engine.io-parser": "~2.2.0",
+ "ws": "^7.1.2"
},
"dependencies": {
"cookie": {
@@ -4205,34 +4723,19 @@
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
"dev": true
- },
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
}
}
},
"engine.io-client": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.2.tgz",
- "integrity": "sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz",
+ "integrity": "sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==",
"dev": true,
"requires": {
"component-emitter": "1.2.1",
"component-inherit": "0.0.3",
- "debug": "~3.1.0",
- "engine.io-parser": "~2.1.1",
+ "debug": "~4.1.0",
+ "engine.io-parser": "~2.2.0",
"has-cors": "1.1.0",
"indexof": "0.0.1",
"parseqs": "0.0.5",
@@ -4248,27 +4751,21 @@
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
"dev": true
},
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "ws": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
+ "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
"dev": true,
"requires": {
- "ms": "2.0.0"
+ "async-limiter": "~1.0.0"
}
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
}
}
},
"engine.io-parser": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
- "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz",
+ "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==",
"dev": true,
"requires": {
"after": "0.8.2",
@@ -4284,6 +4781,14 @@
"integrity": "sha512-zoB603vQReOFvTg5xMl9I1P2PnHsHQQKTEowsKKD7nseUfJq6UWzK+4YtlWUO1nhiQUxe6XMkk+JleSZD1NZFA==",
"dev": true
},
+ "error": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/error/-/error-7.2.0.tgz",
+ "integrity": "sha512-M6t3j3Vt3uDicrViMP5fLq2AeADNrCVFD8Oj4Qt2MHsX0mPYG7D5XdnEfSdRpaHQzjAJ19wu+I1mw9rQYMTAPg==",
+ "requires": {
+ "string-template": "~0.2.1"
+ }
+ },
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -4294,9 +4799,9 @@
}
},
"es-abstract": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.0.tgz",
- "integrity": "sha512-lri42nNq1tIohUuwFBYEM3wKwcrcJa78jukGDdWsuaNxTtxBFGFkKUQ15nc9J+ipje4mhbQR6JwABb4VvawR3A==",
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz",
+ "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==",
"dev": true,
"requires": {
"es-to-primitive": "^1.2.0",
@@ -4307,8 +4812,8 @@
"is-regex": "^1.0.4",
"object-inspect": "^1.6.0",
"object-keys": "^1.1.1",
- "string.prototype.trimleft": "^2.0.0",
- "string.prototype.trimright": "^2.0.0"
+ "string.prototype.trimleft": "^2.1.0",
+ "string.prototype.trimright": "^2.1.0"
}
},
"es-to-primitive": {
@@ -4346,9 +4851,9 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"eslint": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.3.0.tgz",
- "integrity": "sha512-ZvZTKaqDue+N8Y9g0kp6UPZtS4FSY3qARxBs7p4f0H0iof381XHduqVerFWtK8DPtKmemqbqCFENWSQgPR/Gow==",
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.6.0.tgz",
+ "integrity": "sha512-PpEBq7b6qY/qrOmpYQ/jTMDYfuQMELR4g4WI1M/NaSDDD/bdcMb+dj4Hgks7p41kW2caXsPsEZAEAyAgjVVC0g==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
@@ -4358,9 +4863,9 @@
"debug": "^4.0.1",
"doctrine": "^3.0.0",
"eslint-scope": "^5.0.0",
- "eslint-utils": "^1.4.2",
+ "eslint-utils": "^1.4.3",
"eslint-visitor-keys": "^1.1.0",
- "espree": "^6.1.1",
+ "espree": "^6.1.2",
"esquery": "^1.0.1",
"esutils": "^2.0.2",
"file-entry-cache": "^5.0.1",
@@ -4370,7 +4875,7 @@
"ignore": "^4.0.6",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
- "inquirer": "^6.4.1",
+ "inquirer": "^7.0.0",
"is-glob": "^4.0.0",
"js-yaml": "^3.13.1",
"json-stable-stringify-without-jsonify": "^1.0.1",
@@ -4550,23 +5055,31 @@
"emoji-regex": "^7.0.2",
"has": "^1.0.3",
"jsx-ast-utils": "^2.2.1"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ }
}
},
"eslint-plugin-react": {
- "version": "7.14.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz",
- "integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==",
+ "version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.16.0.tgz",
+ "integrity": "sha512-GacBAATewhhptbK3/vTP09CbFrgUJmBSaaRcWdbQLFvUZy9yVcQxigBNHGPU/KE2AyHpzj3AWXpxoMTsIDiHug==",
"dev": true,
"requires": {
"array-includes": "^3.0.3",
"doctrine": "^2.1.0",
"has": "^1.0.3",
- "jsx-ast-utils": "^2.1.0",
+ "jsx-ast-utils": "^2.2.1",
"object.entries": "^1.1.0",
"object.fromentries": "^2.0.0",
"object.values": "^1.1.0",
"prop-types": "^15.7.2",
- "resolve": "^1.10.1"
+ "resolve": "^1.12.0"
},
"dependencies": {
"doctrine": {
@@ -4591,12 +5104,12 @@
}
},
"eslint-utils": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz",
- "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==",
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
"dev": true,
"requires": {
- "eslint-visitor-keys": "^1.0.0"
+ "eslint-visitor-keys": "^1.1.0"
}
},
"eslint-visitor-keys": {
@@ -4606,20 +5119,20 @@
"dev": true
},
"espree": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.1.tgz",
- "integrity": "sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==",
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz",
+ "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==",
"dev": true,
"requires": {
- "acorn": "^7.0.0",
- "acorn-jsx": "^5.0.2",
+ "acorn": "^7.1.0",
+ "acorn-jsx": "^5.1.0",
"eslint-visitor-keys": "^1.1.0"
},
"dependencies": {
"acorn": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.0.0.tgz",
- "integrity": "sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
+ "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
"dev": true
}
}
@@ -4672,9 +5185,9 @@
"dev": true
},
"eventemitter3": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
- "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz",
+ "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==",
"dev": true
},
"events": {
@@ -5055,11 +5568,19 @@
"dev": true
},
"fast-safe-stringify": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz",
- "integrity": "sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg==",
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
+ "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==",
"dev": true
},
+ "faye-websocket": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
"fd-slicer": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
@@ -5246,9 +5767,9 @@
"dev": true
},
"follow-redirects": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.8.1.tgz",
- "integrity": "sha512-micCIbldHioIegeKs41DoH0KS3AXfFzgS30qVkM6z/XOE/GJgvmsoc839NUqa1B9udYe9dQxgv7KFwng6+p/dw==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz",
+ "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==",
"dev": true,
"requires": {
"debug": "^3.0.0"
@@ -5355,8 +5876,7 @@
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "dev": true
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"fsevents": {
"version": "1.2.9",
@@ -5378,7 +5898,8 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"aproba": {
"version": "1.2.0",
@@ -5399,12 +5920,14 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -5419,17 +5942,20 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"core-util-is": {
"version": "1.0.2",
@@ -5546,7 +6072,8 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"ini": {
"version": "1.3.5",
@@ -5558,6 +6085,7 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -5572,6 +6100,7 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -5579,12 +6108,14 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"minipass": {
"version": "2.3.5",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -5603,6 +6134,7 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -5683,7 +6215,8 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"object-assign": {
"version": "4.1.1",
@@ -5695,6 +6228,7 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"wrappy": "1"
}
@@ -5780,7 +6314,8 @@
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -5816,6 +6351,7 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -5835,6 +6371,7 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -5878,12 +6415,14 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"yallist": {
"version": "3.0.3",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -5931,7 +6470,6 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
"integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
- "dev": true,
"requires": {
"globule": "^1.0.0"
}
@@ -5985,7 +6523,6 @@
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
- "dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -6032,9 +6569,9 @@
}
},
"glob-parent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz",
- "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
+ "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
"dev": true,
"requires": {
"is-glob": "^4.0.1"
@@ -6265,7 +6802,6 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
"integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
- "dev": true,
"requires": {
"glob": "~7.1.1",
"lodash": "~4.17.10",
@@ -6543,6 +7079,27 @@
}
}
},
+ "grunt-contrib-watch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz",
+ "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==",
+ "requires": {
+ "async": "^2.6.0",
+ "gaze": "^1.1.0",
+ "lodash": "^4.17.10",
+ "tiny-lr": "^1.1.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ }
+ }
+ },
"grunt-known-options": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
@@ -6586,6 +7143,38 @@
"which": "~1.3.0"
}
},
+ "grunt-postcss-x": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/grunt-postcss-x/-/grunt-postcss-x-0.9.2.tgz",
+ "integrity": "sha512-nSw+5n7fFz9arZO5lZjPuatRITKzJBAUcPtq7KZ2AjLQtkGr81R//4ryquGuvtAU3dsDTx0H4VyAK4jL2nsW0A==",
+ "requires": {
+ "chalk": "^2.1.0",
+ "diff": "^3.3.1",
+ "postcss": "^6.0.11"
+ },
+ "dependencies": {
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="
+ },
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
"grunt-sass": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/grunt-sass/-/grunt-sass-3.1.0.tgz",
@@ -6915,13 +7504,18 @@
"toidentifier": "1.0.0"
}
},
+ "http-parser-js": {
+ "version": "0.4.10",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz",
+ "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q="
+ },
"http-proxy": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
- "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz",
+ "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==",
"dev": true,
"requires": {
- "eventemitter3": "^3.0.0",
+ "eventemitter3": "^4.0.0",
"follow-redirects": "^1.0.0",
"requires-port": "^1.0.0"
}
@@ -7066,9 +7660,9 @@
"dev": true
},
"https-proxy-agent": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz",
- "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==",
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
+ "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
"dev": true,
"optional": true,
"requires": {
@@ -7162,7 +7756,6 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true,
"requires": {
"once": "^1.3.0",
"wrappy": "1"
@@ -7171,8 +7764,7 @@
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "dev": true
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ini": {
"version": "1.3.5",
@@ -7190,66 +7782,56 @@
}
},
"inquirer": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
- "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz",
+ "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==",
"dev": true,
"requires": {
- "ansi-escapes": "^3.2.0",
+ "ansi-escapes": "^4.2.1",
"chalk": "^2.4.2",
- "cli-cursor": "^2.1.0",
+ "cli-cursor": "^3.1.0",
"cli-width": "^2.0.0",
"external-editor": "^3.0.3",
- "figures": "^2.0.0",
- "lodash": "^4.17.12",
- "mute-stream": "0.0.7",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.15",
+ "mute-stream": "0.0.8",
"run-async": "^2.2.0",
"rxjs": "^6.4.0",
- "string-width": "^2.1.0",
+ "string-width": "^4.1.0",
"strip-ansi": "^5.1.0",
"through": "^2.3.6"
},
"dependencies": {
"ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
"figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
+ "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
"dev": true,
"requires": {
"escape-string-regexp": "^1.0.5"
}
},
"is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
"string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz",
+ "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "dependencies": {
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^5.2.0"
}
},
"strip-ansi": {
@@ -7259,14 +7841,6 @@
"dev": true,
"requires": {
"ansi-regex": "^4.1.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- }
}
}
}
@@ -7568,9 +8142,9 @@
}
},
"is-retry-allowed": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
- "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+ "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
"dev": true
},
"is-stream": {
@@ -7714,9 +8288,9 @@
"dev": true
},
"json5": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
- "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
+ "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==",
"requires": {
"minimist": "^1.2.0"
},
@@ -7759,9 +8333,9 @@
}
},
"jsx-ast-utils": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz",
- "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz",
+ "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==",
"dev": true,
"requires": {
"array-includes": "^3.0.3",
@@ -7809,9 +8383,9 @@
}
},
"launchpad": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/launchpad/-/launchpad-0.7.2.tgz",
- "integrity": "sha512-nmfx8QWqCvAmukHPticyO3+frnUKp0tDKXz3Au570XHBE0G1lNyN+KSODHgTqIIEuCIAlAgpbWjI36Vjk1mDKA==",
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/launchpad/-/launchpad-0.7.3.tgz",
+ "integrity": "sha512-xiQLy+QvzC7ei6/R1Q2SXygL5YEsMf56WlbQNjcVWsDl6Hl7inJJXfAWIsdk6XIwNU3DdFFLbz81I/IMdS8E6Q==",
"dev": true,
"optional": true,
"requires": {
@@ -7887,6 +8461,23 @@
"type-check": "~0.3.2"
}
},
+ "livereload-js": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz",
+ "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw=="
+ },
+ "load-grunt-tasks": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-5.1.0.tgz",
+ "integrity": "sha512-oNj0Jlka1TsfDe+9He0kcA1cRln+TMoTsEByW7ij6kyktNLxBKJtslCFEvFrLC2Dj0S19IWJh3fOCIjLby2Xrg==",
+ "dev": true,
+ "requires": {
+ "arrify": "^2.0.1",
+ "multimatch": "^4.0.0",
+ "pkg-up": "^3.1.0",
+ "resolve-pkg": "^2.0.0"
+ }
+ },
"load-json-file": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
@@ -8089,9 +8680,9 @@
},
"dependencies": {
"colors": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz",
- "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true
}
}
@@ -8426,9 +9017,9 @@
}
},
"mimic-fn": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true
},
"minimalistic-assert": {
@@ -8447,7 +9038,6 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -8628,6 +9218,19 @@
"xtend": "^4.0.0"
}
},
+ "multimatch": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz",
+ "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==",
+ "dev": true,
+ "requires": {
+ "@types/minimatch": "^3.0.3",
+ "array-differ": "^3.0.0",
+ "array-union": "^2.1.0",
+ "arrify": "^2.0.1",
+ "minimatch": "^3.0.4"
+ }
+ },
"multipipe": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/multipipe/-/multipipe-1.0.2.tgz",
@@ -8639,9 +9242,9 @@
}
},
"mute-stream": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
- "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
"dev": true
},
"mz": {
@@ -8742,12 +9345,20 @@
}
},
"node-releases": {
- "version": "1.1.29",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.29.tgz",
- "integrity": "sha512-R5bDhzh6I+tpi/9i2hrrvGJ3yKPYzlVOORDkXhnZuwi5D3q1I5w4vYy24PJXTcLk9Q0kws9TO77T75bcK8/ysQ==",
+ "version": "1.1.39",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.39.tgz",
+ "integrity": "sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA==",
"dev": true,
"requires": {
- "semver": "^5.3.0"
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
}
},
"node-sass": {
@@ -8925,8 +9536,7 @@
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"object-component": {
"version": "0.0.3",
@@ -9011,15 +9621,15 @@
}
},
"object.fromentries": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz",
- "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.1.tgz",
+ "integrity": "sha512-PUQv8Hbg3j2QX0IQYv3iAGCbGcu4yY4KQ92/dhA4sFSixBmSmp13UpDLs6jGK8rBtbmhNNIK99LD2k293jpiGA==",
"dev": true,
"requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.11.0",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.15.0",
"function-bind": "^1.1.1",
- "has": "^1.0.1"
+ "has": "^1.0.3"
}
},
"object.getownpropertydescriptors": {
@@ -9088,7 +9698,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
"requires": {
"wrappy": "1"
}
@@ -9100,12 +9709,12 @@
"dev": true
},
"onetime": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+ "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
"dev": true,
"requires": {
- "mimic-fn": "^1.0.0"
+ "mimic-fn": "^2.1.0"
}
},
"opn": {
@@ -9398,8 +10007,7 @@
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"path-is-inside": {
"version": "1.0.2",
@@ -9453,9 +10061,9 @@
}
},
"pem": {
- "version": "1.14.2",
- "resolved": "https://registry.npmjs.org/pem/-/pem-1.14.2.tgz",
- "integrity": "sha512-TOnPtq3ZFnCniOZ+rka4pk8UIze9xG1qI+wNE7EmkiR/cg+53uVvk5QbkWZ7M6RsuOxzz62FW1hlAobJr/lTOA==",
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/pem/-/pem-1.14.3.tgz",
+ "integrity": "sha512-Q+AMVMD3fzeVvZs5PHeI+pVt0hgZY2fjhkliBW43qyONLgCXPVk1ryim43F9eupHlNGLJNT5T/NNrzhUdiC5Zg==",
"dev": true,
"requires": {
"es6-promisify": "^6.0.0",
@@ -9518,6 +10126,66 @@
}
}
},
+ "pkg-up": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
+ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ }
+ }
+ },
"plist": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/plist/-/plist-2.1.0.tgz",
@@ -9601,6 +10269,12 @@
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
},
+ "babylon": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz",
+ "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==",
+ "dev": true
+ },
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
@@ -9728,10 +10402,10 @@
"@types/node": "*"
}
},
- "regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "babylon": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz",
+ "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==",
"dev": true
}
}
@@ -9867,9 +10541,9 @@
"dev": true
},
"postcss": {
- "version": "7.0.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz",
- "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==",
+ "version": "7.0.21",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz",
+ "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==",
"dev": true,
"requires": {
"chalk": "^2.4.2",
@@ -10013,8 +10687,7 @@
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
- "dev": true
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
},
"querystring": {
"version": "0.2.0",
@@ -10111,9 +10784,9 @@
}
},
"react-is": {
- "version": "16.9.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz",
- "integrity": "sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==",
+ "version": "16.11.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.11.0.tgz",
+ "integrity": "sha512-gbBVYR2p8mnriqAwWx9LbuUrShnAuSCNnuPGyc7GJrMVQtPDAh8iLpv7FRuMPFb56KkaVZIYSz1PrjI9q0QPCw==",
"dev": true
},
"read-only-stream": {
@@ -10215,9 +10888,9 @@
}
},
"regenerator-runtime": {
- "version": "0.13.3",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
- "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
"dev": true
},
"regenerator-transform": {
@@ -10248,12 +10921,6 @@
"safe-regex": "^1.1.0"
}
},
- "regexp-tree": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.13.tgz",
- "integrity": "sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw==",
- "dev": true
- },
"regexpp": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
@@ -10261,9 +10928,9 @@
"dev": true
},
"regexpu-core": {
- "version": "4.5.5",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.5.tgz",
- "integrity": "sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz",
+ "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==",
"dev": true,
"requires": {
"regenerate": "^1.4.0",
@@ -10294,9 +10961,9 @@
}
},
"regjsgen": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz",
- "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==",
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz",
+ "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==",
"dev": true
},
"regjsparser": {
@@ -10431,6 +11098,23 @@
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
+ "resolve-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-2.0.0.tgz",
+ "integrity": "sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^5.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ }
+ }
+ },
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
@@ -10438,12 +11122,12 @@
"dev": true
},
"restore-cursor": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
"dev": true,
"requires": {
- "onetime": "^2.0.0",
+ "onetime": "^5.1.0",
"signal-exit": "^3.0.2"
}
},
@@ -10473,20 +11157,20 @@
}
},
"rollup": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.20.3.tgz",
- "integrity": "sha512-/OMCkY0c6E8tleeVm4vQVDz24CkVgvueK3r8zTYu2AQNpjrcaPwO9hE+pWj5LTFrvvkaxt4MYIp2zha4y0lRvg==",
+ "version": "1.26.3",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.26.3.tgz",
+ "integrity": "sha512-8MhY/M8gnv3Q/pQQSWYWzbeJ5J1C5anCNY5BK1kV8Yzw9RFS0FF4lbLt+uyPO3wLKWXSXrhAL5pWL85TZAh+Sw==",
"dev": true,
"requires": {
- "@types/estree": "0.0.39",
- "@types/node": "^12.7.2",
- "acorn": "^7.0.0"
+ "@types/estree": "*",
+ "@types/node": "*",
+ "acorn": "^7.1.0"
},
"dependencies": {
"acorn": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.0.0.tgz",
- "integrity": "sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
+ "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
"dev": true
}
}
@@ -10501,9 +11185,9 @@
}
},
"rxjs": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
- "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
+ "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
"dev": true,
"requires": {
"tslib": "^1.9.0"
@@ -10514,6 +11198,11 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
+ "safe-json-parse": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz",
+ "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c="
+ },
"safe-regex": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
@@ -10548,15 +11237,15 @@
}
},
"sauce-connect-launcher": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/sauce-connect-launcher/-/sauce-connect-launcher-1.2.7.tgz",
- "integrity": "sha512-v07+QhFrxgz3seMFuRSonu3gW1s6DbcLQlFhjsRrmKUauzPbbudHdnn91WYgEwhoZVdPNzeZpAEJwcQyd9xnTA==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/sauce-connect-launcher/-/sauce-connect-launcher-1.3.1.tgz",
+ "integrity": "sha512-vIf9qDol3q2FlYzrKt0dr3kvec6LSjX2WS+/mVnAJIhqh1evSkPKCR2AzcJrnSmx9Xt9PtV0tLY7jYh0wsQi8A==",
"dev": true,
"optional": true,
"requires": {
"adm-zip": "~0.4.3",
"async": "^2.1.2",
- "https-proxy-agent": "^2.2.1",
+ "https-proxy-agent": "^3.0.0",
"lodash": "^4.16.6",
"rimraf": "^2.5.4"
},
@@ -10570,6 +11259,27 @@
"requires": {
"lodash": "^4.17.14"
}
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz",
+ "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "agent-base": "^4.3.0",
+ "debug": "^3.1.0"
+ }
}
}
},
@@ -11070,17 +11780,17 @@
}
},
"socket.io": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz",
- "integrity": "sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz",
+ "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==",
"dev": true,
"requires": {
"debug": "~4.1.0",
- "engine.io": "~3.3.1",
+ "engine.io": "~3.4.0",
"has-binary2": "~1.0.2",
"socket.io-adapter": "~1.1.0",
- "socket.io-client": "2.2.0",
- "socket.io-parser": "~3.3.0"
+ "socket.io-client": "2.3.0",
+ "socket.io-parser": "~3.4.0"
}
},
"socket.io-adapter": {
@@ -11090,17 +11800,17 @@
"dev": true
},
"socket.io-client": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz",
- "integrity": "sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz",
+ "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==",
"dev": true,
"requires": {
"backo2": "1.0.2",
"base64-arraybuffer": "0.1.5",
"component-bind": "1.0.0",
"component-emitter": "1.2.1",
- "debug": "~3.1.0",
- "engine.io-client": "~3.3.1",
+ "debug": "~4.1.0",
+ "engine.io-client": "~3.4.0",
"has-binary2": "~1.0.2",
"has-cors": "1.1.0",
"indexof": "0.0.1",
@@ -11117,31 +11827,50 @@
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
"dev": true
},
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+ "dev": true
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
+ },
+ "socket.io-parser": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz",
+ "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==",
+ "dev": true,
+ "requires": {
+ "component-emitter": "1.2.1",
+ "debug": "~3.1.0",
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
}
}
},
"socket.io-parser": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz",
- "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz",
+ "integrity": "sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==",
"dev": true,
"requires": {
"component-emitter": "1.2.1",
- "debug": "~3.1.0",
+ "debug": "~4.1.0",
"isarray": "2.0.1"
},
"dependencies": {
@@ -11151,26 +11880,11 @@
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
"dev": true
},
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
"isarray": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
"integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
"dev": true
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
}
}
},
@@ -11492,6 +12206,11 @@
"integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=",
"dev": true
},
+ "string-template": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
+ "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0="
+ },
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -11504,23 +12223,23 @@
}
},
"string.prototype.trimleft": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz",
- "integrity": "sha1-aLaqjhYsaoDnbjqKDC50cYbicf8=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
+ "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
"dev": true,
"requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.0.2"
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
}
},
"string.prototype.trimright": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz",
- "integrity": "sha1-q0pW2AKgH75yk+EehPJNyBZGYd0=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
+ "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
"dev": true,
"requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.0.2"
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
}
},
"string_decoder": {
@@ -11694,6 +12413,12 @@
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
@@ -11792,23 +12517,13 @@
}
},
"temp": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz",
- "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=",
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
+ "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
"dev": true,
"optional": true,
"requires": {
- "os-tmpdir": "^1.0.0",
- "rimraf": "~2.2.6"
- },
- "dependencies": {
- "rimraf": {
- "version": "2.2.8",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
- "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
- "dev": true,
- "optional": true
- }
+ "rimraf": "~2.6.2"
}
},
"term-size": {
@@ -11909,6 +12624,29 @@
"process": "~0.11.0"
}
},
+ "tiny-lr": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz",
+ "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==",
+ "requires": {
+ "body": "^5.1.0",
+ "debug": "^3.1.0",
+ "faye-websocket": "~0.10.0",
+ "livereload-js": "^2.3.0",
+ "object-assign": "^4.1.0",
+ "qs": "^6.4.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -12033,7 +12771,8 @@
"trim-right": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
- "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "dev": true
},
"triple-beam": {
"version": "1.3.0",
@@ -12092,6 +12831,12 @@
"integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=",
"dev": true
},
+ "type-fest": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz",
+ "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==",
+ "dev": true
+ },
"type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -12389,9 +13134,9 @@
"dev": true
},
"urijs": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.1.tgz",
- "integrity": "sha512-xVrGVi94ueCJNrBSTjWqjvtgvl3cyOTThp2zaMaFNGp3F542TR6sM3f2o8RqZl+AwteClSVmoCyt0ka4RjQOQg==",
+ "version": "1.19.2",
+ "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.2.tgz",
+ "integrity": "sha512-s/UIq9ap4JPZ7H1EB5ULo/aOUbWqfDi7FKzMC2Nz+0Si8GiT1rIEaprt8hy3Vy2Ex2aJPpOQv4P4DuOZ+K1c6w==",
"dev": true
},
"urix": {
@@ -12896,6 +13641,21 @@
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
"dev": true
},
+ "websocket-driver": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz",
+ "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==",
+ "requires": {
+ "http-parser-js": ">=0.4.0 <0.4.11",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg=="
+ },
"whatwg-url": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz",
@@ -13000,9 +13760,9 @@
}
},
"colors": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz",
- "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true
},
"logform": {
@@ -13078,8 +13838,7 @@
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"write": {
"version": "1.0.3",
@@ -13102,12 +13861,12 @@
}
},
"ws": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
- "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.0.tgz",
+ "integrity": "sha512-+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg==",
"dev": true,
"requires": {
- "async-limiter": "~1.0.0"
+ "async-limiter": "^1.0.0"
}
},
"xdg-basedir": {
diff --git a/package.json b/package.json
index 32c92f04..8efe30a3 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,9 @@
],
"author": "Dimitrios Grammatikogiannis",
"devDependencies": {
- "@babel/preset-env": "latest",
+ "@babel/plugin-proposal-class-properties": "^7.5.5",
+ "@babel/preset-env": "^7.6.0",
+ "@lodder/grunt-postcss": "latest",
"@polymer/test-fixture": "latest",
"@webcomponents/custom-elements": "latest",
"@webcomponents/webcomponentsjs": "latest",
@@ -29,6 +31,7 @@
"babel-eslint": "latest",
"babel-minify": "latest",
"babel-plugin-static-fs": "latest",
+ "babel-preset-es2015": "^6.24.1",
"babelify": "latest",
"browserify": ">=16.5.0",
"eslint": "latest",
@@ -37,21 +40,22 @@
"eslint-plugin-import": "latest",
"eslint-plugin-jsx-a11y": "latest",
"eslint-plugin-react": "latest",
- "grunt": "latest",
- "grunt-babel": "latest",
+ "grunt": "^1.0.4",
+ "grunt-babel": "^8.0.0",
"grunt-browserify": "latest",
"grunt-contrib-copy": "latest",
"grunt-contrib-cssmin": "latest",
"grunt-contrib-uglify-es": "git://github.com/gruntjs/grunt-contrib-uglify.git#harmony",
- "@lodder/grunt-postcss": "latest",
"grunt-sass": "^3.0.2",
"grunt-shell": "latest",
+ "load-grunt-tasks": "^5.1.0",
"node-sass": "^4.12.0",
"wct-browser-legacy": "latest",
"web-component-tester": "latest"
},
"scripts": {
"build": "grunt",
+ "watch": "grunt watch",
"lint": "eslint src",
"lint-fix": "eslint src --fix"
},
@@ -79,12 +83,19 @@
"collapse",
"modal",
"panels",
- "tip"
+ "tip",
+ "callout",
+ "breadcrumb",
+ "flextable",
+ "accordion",
+ "progress"
],
"browsers": "last 1 version"
},
"dependencies": {
"@babel/core": "latest",
- "bootstrap": "^4.3.1"
+ "bootstrap": "^4.3.1",
+ "grunt-contrib-watch": "^1.1.0",
+ "grunt-postcss-x": "^0.9.2"
}
}
diff --git a/src/js/accordion/accordion.js b/src/js/accordion/accordion.js
new file mode 100644
index 00000000..186b0a3a
--- /dev/null
+++ b/src/js/accordion/accordion.js
@@ -0,0 +1,84 @@
+(() => {
+ class JoomlaAccordionElement extends HTMLElement {
+ /* Attributes to monitor */
+ static get observedAttributes() { return ['toggle']; }
+
+ get toggle() { return this.getAttribute('toggle'); }
+
+ /* Lifecycle, element created */
+ constructor() {
+ super();
+
+ this.hasActive = false;
+ this.currentActive = '';
+ this.hasNested = false;
+ this.isNested = false;
+ }
+
+ /* Lifecycle, element appended to the DOM */
+ connectedCallback() {
+ this.sections = [...this.querySelectorAll('.accordion-item')];
+ this.generateNavigation(this.sections);
+ }
+
+ generateNavigation(sections) {
+ sections.forEach((section, index) => {
+ const accordionTitle = document.createElement('div');
+ accordionTitle.setAttribute('area-expanded', 'false');
+ accordionTitle.classList.add('joomla-accordion-title');
+ accordionTitle.setAttribute('target', section.id);
+ if (section.classList.contains('show')) {
+ accordionTitle.classList.add('active');
+ }
+ // accordion icon
+ if (section.hasAttribute('icon')) {
+ const iconClass = section.getAttribute('icon');
+ const icon = ` `;
+ accordionTitle.insertAdjacentHTML('afterbegin', icon);
+ }
+
+ // accordion title
+ const title = section.getAttribute('name') || `Accordion ${index}`;
+ const navTitle = document.createTextNode(title);
+ accordionTitle.appendChild(navTitle);
+ accordionTitle.innerHTML += ' ';
+ this.insertBefore(accordionTitle, section);
+ accordionTitle.addEventListener('click', this.activateAccordionFromButton.bind(this, accordionTitle));
+ });
+ }
+
+ activateAccordionFromButton(accordionTitle) {
+ const target = accordionTitle;
+ const section = target.nextSibling;
+ const toggle = this.getAttribute('toggle');
+ if (!toggle || toggle === 'false') {
+ target.classList.toggle('active');
+ if (section.classList.contains('show')) {
+ section.classList.remove('show');
+ target.setAttribute('area-expanded', 'false');
+ } else {
+ section.classList.add('show');
+ target.setAttribute('area-expanded', 'true');
+ }
+ } else {
+ // eslint-disable-next-line no-lonely-if
+ if (target.classList.contains('active')) {
+ target.classList.remove('active');
+ section.classList.remove('show');
+ target.setAttribute('area-expanded', 'false');
+ } else {
+ this.sections.forEach((s) => {
+ if (s.previousSibling.classList.contains('active')) {
+ s.previousSibling.classList.remove('active');
+ }
+ s.classList.remove('show');
+ });
+ target.classList.add('active');
+ section.classList.add('show');
+ target.setAttribute('area-expanded', 'true');
+ }
+ }
+ }
+ }
+ customElements.define('joomla-accordion', JoomlaAccordionElement);
+})();
diff --git a/src/js/alert/alert.js b/src/js/alert/alert.js
index 5aeaa8a5..4c36e445 100644
--- a/src/js/alert/alert.js
+++ b/src/js/alert/alert.js
@@ -1,7 +1,7 @@
(() => {
class JoomlaAlertElement extends HTMLElement {
/* Attributes to monitor */
- static get observedAttributes() { return ['type', 'role', 'dismiss', 'acknowledge', 'href']; }
+ static get observedAttributes() { return ['type', 'role', 'dismiss', 'acknowledge', 'href', 'collapse']; }
get type() { return this.getAttribute('type'); }
@@ -24,16 +24,21 @@
this.classList.add('joomla-alert--show');
// Default to info
- if (!this.type || ['info', 'warning', 'danger', 'success'].indexOf(this.type) === -1) {
+ if (!this.type || ['info', 'warning', 'danger', 'success', 'default'].indexOf(this.type) === -1) {
this.setAttribute('type', 'info');
}
// Default to alert
if (!this.role || ['alert', 'alertdialog'].indexOf(this.role) === -1) {
this.setAttribute('role', 'alert');
}
+ // Check if its collapsable
+ if (this.hasAttribute('collapse') && this.getAttribute('collapse') !== '' && this.getAttribute('collapse') !== 'false'
+ && !this.querySelector('.joomla-alert--collapse-header') && this.querySelector('.joomla-alert--collapse')) {
+ this.appendCollapseContainer();
+ }
// Append button
if ((this.hasAttribute('dismiss') || this.hasAttribute('acknowledge')) || ((this.hasAttribute('href') && this.getAttribute('href') !== '')
- && !this.querySelector('button.joomla-alert--close') && !this.querySelector('button.joomla-alert-button--close'))) {
+ && !this.querySelector('button.joomla-alert--close') && !this.querySelector('button.joomla-alert-button--close'))) {
this.appendCloseButton();
}
@@ -59,7 +64,7 @@
attributeChangedCallback(attr, oldValue, newValue) {
switch (attr) {
case 'type':
- if (!newValue || (newValue && ['info', 'warning', 'danger', 'success'].indexOf(newValue) === -1)) {
+ if (!newValue || (newValue && ['info', 'warning', 'danger', 'success', 'default'].indexOf(newValue) === -1)) {
this.type = 'info';
}
break;
@@ -68,6 +73,13 @@
this.role = 'alert';
}
break;
+ case 'collapse':
+ if (!newValue || newValue === 'true') {
+ this.appendCollapseContainer();
+ } else {
+ this.removeCollapseContainer();
+ }
+ break;
case 'dismiss':
case 'acknowledge':
if (!newValue || newValue === 'true') {
@@ -118,13 +130,12 @@
if (this.querySelector('button.joomla-alert--close') || this.querySelector('button.joomla-alert-button--close')) {
return;
}
-
const self = this;
const closeButton = document.createElement('button');
if (this.hasAttribute('dismiss')) {
closeButton.classList.add('joomla-alert--close');
- closeButton.innerHTML = '× ';
+ closeButton.innerHTML = ' ';
closeButton.setAttribute('aria-label', this.getText('JCLOSE', 'Close'));
} else {
closeButton.classList.add('joomla-alert-button--close');
@@ -178,14 +189,66 @@
/* Method to remove the close button */
removeCloseButton() {
- const button = this.querySelector('button');
+ let button = this.querySelector('button.joomla-alert-button--close');
+ if (button === null) {
+ button = this.querySelector('button.joomla-alert--close');
+ }
if (button) {
button.removeEventListener('click', this);
button.parentNode.removeChild(button);
}
}
+ appendCollapseContainer() {
+ if (this.querySelector('.joomla-alert--collapse') === null || this.querySelector('.joomla-alert--collapse-header') !== null) {
+ return;
+ }
+ const collapseBox = this.querySelector('.joomla-alert--collapse');
+
+ const collapseContainer = document.createElement('div');
+ collapseContainer.classList.add('joomla-alert--collapse-container');
+ collapseBox.parentNode.insertBefore(collapseContainer, collapseBox);
+ collapseContainer.append(this.querySelector('.joomla-alert--collapse'));
+
+
+ const collapseHeader = document.createElement('div');
+ collapseHeader.classList.add('joomla-alert--collapse-header');
+ collapseHeader.setAttribute('area-expanded', 'false');
+
+ const collapseHeaderTitle = this.getAttribute('collapse-title') === null ? this.getAttribute('type') : this.getAttribute('collapse-title');
+ collapseHeader.innerHTML = collapseHeaderTitle;
+
+ const chevronIcon = document.createElement('button');
+ chevronIcon.classList.add('joomla-alert--collapse-icon');
+ chevronIcon.innerHTML = '^';
+ collapseHeader.append(chevronIcon);
+ collapseContainer.prepend(collapseHeader);
+
+ chevronIcon.addEventListener('click', () => {
+ if (collapseBox.classList.contains('show')) {
+ collapseBox.classList.remove('show');
+ collapseHeader.setAttribute('area-expanded', 'false');
+ } else {
+ collapseBox.classList.add('show');
+ collapseHeader.setAttribute('area-expanded', 'true');
+ }
+ });
+ }
+
+ removeCollapseContainer() {
+ if (this.querySelector('.joomla-alert--collapse-container') === null) {
+ return;
+ }
+ const collapseContainer = this.querySelector('.joomla-alert--collapse-container');
+ const collapseBox = collapseContainer.querySelector('.joomla-alert--collapse');
+ collapseContainer.removeChild(collapseContainer.querySelector('.joomla-alert--collapse-header'));
+ collapseContainer.parentNode.insertBefore(collapseBox, collapseContainer);
+ this.removeChild(collapseContainer);
+ collapseBox.classList.remove('joomla-alert--collapse');
+ }
+
/* Method to get the translated text */
+ // eslint-disable-next-line class-methods-use-this
getText(str, fallback) {
// TODO: Remove coupling to Joomla CMS Core JS here
/* eslint-disable-next-line no-undef */
diff --git a/src/js/breadcrumb/breadcrumb.js b/src/js/breadcrumb/breadcrumb.js
new file mode 100644
index 00000000..4efff788
--- /dev/null
+++ b/src/js/breadcrumb/breadcrumb.js
@@ -0,0 +1,104 @@
+(() => {
+ class joomlaBreadcrumb extends HTMLElement {
+ /* Lifecycle, element appended to the DOM */
+ connectedCallback() {
+ const self = this;
+ const nav = document.createElement('nav');
+ const breadcrumbList = document.createElement('ol');
+ const singleLi = document.createElement('li');
+ const minimizeWrapper = document.createElement('div');
+ const minimizeItemsWrapper = document.createElement('div');
+ const toggleButton = document.createElement('span');
+ const minimizeList = document.createElement('ol');
+
+ toggleButton.classList.add('items-toggler');
+ toggleButton.innerHTML = '...';
+ singleLi.classList.add('minimize-list');
+ minimizeItemsWrapper.classList.add('minimize-items-wrapper');
+ minimizeWrapper.appendChild(toggleButton);
+ minimizeWrapper.appendChild(minimizeItemsWrapper);
+ minimizeWrapper.classList.add('minimize-items');
+ toggleButton.addEventListener('click', () => {
+ minimizeItemsWrapper.classList.toggle('active');
+ });
+
+ /* item manipulate */
+ const items = [...this.querySelectorAll('li')];
+ items.forEach((item) => {
+ const createItem = document.createElement('li');
+ const createLink = document.createElement('a');
+
+ createItem.classList.add('joomla-breadcrumb-item');
+ if (item.getAttribute('class')) {
+ createLink.className = item.getAttribute('class');
+ }
+ if (item.getAttribute('activeClass')) {
+ createLink.className += ` ${item.getAttribute('activeClass')}`;
+ }
+ createLink.setAttribute('href', item.getAttribute('href'));
+ createLink.innerHTML = item.getAttribute('text');
+ createItem.appendChild(createLink);
+ breadcrumbList.append(createItem);
+ item.parentNode.removeChild(item);
+ });
+ nav.append(breadcrumbList);
+ self.append(nav);
+ /* store items */
+ const breadcrumbItems = breadcrumbList;
+ const allItems = Array.from(breadcrumbItems.children);
+
+ /* minimize items */
+ const minimizeItemsFun = () => {
+ if (allItems.length > 0) {
+ breadcrumbList.innerHTML = '';
+ const filterItems = allItems.filter((item, key) => key > 0);
+ breadcrumbList.appendChild(allItems[0]);
+ breadcrumbList.appendChild(singleLi);
+ singleLi.append(minimizeWrapper);
+ for (let i = filterItems.length - 1; i >= 0; i--) {
+ if (breadcrumbList.offsetWidth < nav.offsetWidth) {
+ singleLi.parentNode.insertBefore(filterItems[i], singleLi.nextSibling);
+ } else {
+ minimizeList.prepend(filterItems[i]);
+ }
+ }
+ minimizeItemsWrapper.append(minimizeList);
+ /* when responsive works */
+ self.setAttribute('responsive', true);
+ }
+ };
+ /* init minimizeItems function */
+ if (breadcrumbList.offsetWidth + 100 > breadcrumbList.parentElement.offsetWidth) {
+ minimizeItemsFun();
+ }
+ /* check on reisze */
+ window.addEventListener('resize', () => {
+ setTimeout(() => {
+ if (breadcrumbList.offsetWidth + 100 > nav.offsetWidth) {
+ minimizeItemsFun();
+ } else if (breadcrumbList.offsetWidth < nav.offsetWidth) {
+ if (self.getAttribute('responsive')) {
+ if (allItems.length > 0) {
+ const upated = Array.from(minimizeList.children);
+ if (upated.length !== 0) {
+ for (let i = upated.length - 1; i >= 0; i--) {
+ if (breadcrumbList.offsetWidth + 100 < nav.offsetWidth) {
+ singleLi.parentNode.insertBefore(upated[i], singleLi.nextSibling);
+ }
+ }
+ }
+ }
+ }
+ }
+ setTimeout(() => {
+ if (minimizeList.children.length === 0) {
+ singleLi.remove();
+ self.setAttribute('responsive', false);
+ }
+ }, 200);
+ }, 300);
+ });
+ }
+ }
+ customElements.define('joomla-breadcrumb', joomlaBreadcrumb);
+})();
diff --git a/src/js/callout/callout.js b/src/js/callout/callout.js
new file mode 100644
index 00000000..70acbfc4
--- /dev/null
+++ b/src/js/callout/callout.js
@@ -0,0 +1,247 @@
+(() => {
+ class JoomlaCalloutElement extends HTMLElement {
+ constructor() {
+ super();
+ this.space = 15; // Minimum Space
+ this.action = 'click'; // Action
+ this.disableEvent = this.disableEvent.bind(this);
+ this.setPositionOnScroll = this.setPositionOnScroll.bind(this);
+ }
+
+ /* Attributes to monitor */
+ static get observedAttributes() {
+ return ['for', 'dismiss', 'position'];
+ }
+
+ get for() { return this.getAttribute('for'); }
+
+ set for(value) { return this.setAttribute('for', value); }
+
+ get dismiss() { return this.getAttribute('dismiss'); }
+
+ get position() { return this.getAttribute('position'); }
+
+ set position(value) { return this.setAttribute('position', value); }
+
+ connectedCallback() {
+ if (!this.position || (this.position && ['top', 'bottom', 'left', 'right'].indexOf(this.position) === -1)) {
+ this.position = 'right';
+ }
+
+ const action = this.getAttribute('action');
+ this.action = action && action === 'hover' ? 'mouseenter' : this.action;
+ this.setAttribute('aria-labelledby', this.for.substring(1));
+ this.button = document.querySelector(this.for);
+
+ if (!this.button.id) {
+ return;
+ }
+ if (this.hasAttribute('dismiss')) {
+ this.appendCloseButton();
+ }
+
+ this.button.setAttribute('aria-haspopup', true);
+ this.button.setAttribute('aria-expanded', false);
+
+ this.button.addEventListener(this.action, (event) => {
+ event.preventDefault();
+ this.open(event);
+ });
+ }
+
+ /**
+ * Open callout method
+ * @param {Object} event
+ */
+ open(event) {
+ const innerLinks = this.querySelectorAll('a');
+ if (this.hasAttribute('expanded')) {
+ this.removeAttribute('expanded');
+ event.target.setAttribute('aria-expanded', false);
+ } else {
+ this.setAttribute('expanded', '');
+ event.target.setAttribute('aria-expanded', true);
+ const buttonRect = this.button.getBoundingClientRect();
+ const calloutRect = this.getBoundingClientRect();
+ const copyPosition = this.checkPosition(this.position, buttonRect, calloutRect);
+ this.calloutPosition(copyPosition, buttonRect, calloutRect, this.space);
+ }
+ const trigger = this.action === 'mouseenter' ? 'mouseover' : this.action;
+ document.addEventListener(trigger, this.disableEvent, true);
+ // Check position when browser scroll
+ window.addEventListener('scroll', this.setPositionOnScroll, true);
+
+ innerLinks.forEach((innerLink) => {
+ innerLink.addEventListener('click', () => {
+ this.close();
+ });
+ });
+ }
+
+ /**
+ * Close callout on outside trigger
+ * @param {object} event
+ */
+ disableEvent(event) {
+ if (
+ !this.button.contains(event.target)
+ && event.target !== this.button
+ && event.target !== this) {
+ if (!this.findAncestor(event.target, 'joomla-callout')) {
+ this.close();
+ }
+ }
+ }
+
+ /**
+ * Check callout position on scroll and set the inline style
+ * @param {Object} event
+ */
+ setPositionOnScroll(event) {
+ event.preventDefault();
+ if (this.hasAttribute('expanded')) {
+ const buttonRect = this.button.getBoundingClientRect();
+ const calloutRect = this.getBoundingClientRect();
+ const copyPosition = this.checkPosition(this.position, buttonRect, calloutRect);
+ this.calloutPosition(copyPosition, buttonRect, calloutRect, this.space);
+ }
+ }
+
+ // eslint-disable-next-line class-methods-use-this
+ /**
+ * Check the callout position
+ * If position right and have no space then set position to oposite
+ * Same as for top|bottom|left
+ * @param {String} currentPosition
+ * @param {Object} buttonRect
+ * @param {Object} calloutRect
+ */
+ checkPosition(currentPosition, buttonRect, calloutRect) {
+ if (currentPosition === 'bottom' && (buttonRect.top + calloutRect.height) > window.innerHeight) {
+ this.setAttribute('position', 'top');
+ return 'top';
+ } if (currentPosition === 'top' && buttonRect.top < (buttonRect.height + calloutRect.height)) {
+ this.setAttribute('position', 'bottom');
+ return 'bottom';
+ } if (currentPosition === 'right' && (buttonRect.right + calloutRect.width) > window.innerWidth) {
+ this.setAttribute('position', 'left');
+ return 'left';
+ } if (currentPosition === 'left' && (buttonRect.width + calloutRect.width) > buttonRect.right) {
+ this.setAttribute('position', 'right');
+ return 'right';
+ }
+ return currentPosition;
+ }
+
+ /**
+ * Calculate position and set inline style in element
+ * @param {Object} copyPosition
+ * @param {Object} buttonRect
+ * @param {Object} calloutRect
+ * @param {Int} space
+ */
+ calloutPosition(copyPosition, buttonRect, calloutRect, space) {
+ const diffWidth = Math.round(Math.abs(calloutRect.width - buttonRect.width) / 2);
+ const diffHeight = Math.round(Math.abs(calloutRect.height - buttonRect.height) / 2);
+ switch (copyPosition) {
+ case 'top':
+ this.style.top = `${Math.round(buttonRect.top - (calloutRect.height + space))}px`;
+ if (buttonRect.width < calloutRect.width) {
+ this.style.left = `${Math.round(buttonRect.left - diffWidth)}px`;
+ } else {
+ this.style.left = `${Math.round(buttonRect.left + diffWidth)}px`;
+ }
+ break;
+ case 'bottom':
+ this.style.top = `${Math.round(buttonRect.bottom) + space}px`;
+ if (buttonRect.width < calloutRect.width) {
+ this.style.left = `${Math.round(buttonRect.left - diffWidth)}px`;
+ } else {
+ this.style.left = `${Math.round(buttonRect.left + diffWidth)}px`;
+ }
+ break;
+ case 'left':
+ this.style.left = `${Math.round((buttonRect.left) - (calloutRect.width + space))}px`;
+ if (buttonRect.height < calloutRect.height) {
+ this.style.top = `${Math.round(buttonRect.top - diffHeight)}px`;
+ } else {
+ this.style.top = `${Math.round(buttonRect.top + diffHeight)}px`;
+ }
+ break;
+ default:
+ this.style.left = `${Math.round((buttonRect.left) + (buttonRect.width + space))}px`;
+ if (buttonRect.height < calloutRect.height) {
+ this.style.top = `${Math.round(buttonRect.top - diffHeight)}px`;
+ } else {
+ this.style.top = `${Math.round(buttonRect.top + diffHeight)}px`;
+ }
+ break;
+ }
+ }
+
+ /* Method to dispatch events */
+ dispatchCustomEvent(eventName) {
+ const OriginalCustomEvent = new CustomEvent(eventName);
+ OriginalCustomEvent.relatedTarget = this;
+ this.dispatchEvent(OriginalCustomEvent);
+ this.removeEventListener(eventName, this);
+ }
+
+ /**
+ * Close method for close the callout
+ */
+ close() {
+ const button = document.querySelector(`#${this.getAttribute('aria-labelledby')}`);
+ this.removeAttribute('expanded');
+ button.setAttribute('aria-expanded', false);
+ const trigger = this.action === 'mouseenter' ? 'mouseover' : this.action;
+ document.removeEventListener(trigger, this.disableEvent, true);
+ window.removeEventListener('scroll', this.setPositionOnScroll, true);
+ }
+
+ /**
+ * Append close button if dismiss set to true
+ */
+ appendCloseButton() {
+ const self = this;
+ const closeButton = document.createElement('button');
+ if (this.hasAttribute('dismiss')) {
+ closeButton.classList.add('joomla-callout--close');
+ closeButton.innerHTML = '× ';
+ closeButton.setAttribute('aria-label', this.getText('JCLOSE', 'Close'));
+ }
+ if (this.firstChild) {
+ this.insertBefore(closeButton, this.firstChild);
+ } else {
+ this.appendChild(closeButton);
+ }
+ /* Add the required listener */
+ if (closeButton) {
+ closeButton.addEventListener('click', (e) => {
+ e.preventDefault();
+ self.dispatchCustomEvent('joomla.alert.buttonClicked');
+ self.close();
+ });
+ }
+ }
+ /* eslint-disable */
+ /**
+ * Find the ancestor element from target element
+ * @param {Object} el
+ * @param {String} tagName
+ */
+ findAncestor(el, tagName) {
+ while ((el = el.parentElement) && el.nodeName.toLowerCase() !== tagName);
+ return el;
+ }
+
+ /* Method to get the translated text */
+ getText(str, fallback) {
+ // TODO: Remove coupling to Joomla CMS Core JS here
+ /* eslint-disable-next-line no-undef */
+ return (window.Joomla && Joomla.JText && Joomla.JText._ && typeof Joomla.JText._ === 'function' && Joomla.JText._(str)) ? Joomla.JText._(str) : fallback;
+ }
+ }
+
+ customElements.define('joomla-callout', JoomlaCalloutElement);
+})();
diff --git a/src/js/card/card.js b/src/js/card/card.js
new file mode 100644
index 00000000..a5bfe098
--- /dev/null
+++ b/src/js/card/card.js
@@ -0,0 +1,28 @@
+(() => {
+ class JoomlaCardElement extends HTMLElement {
+ /* Attributes to monitor */
+ static get observedAttributes() { return ['dropdown']; }
+
+ get dropdown() { return this.getAttribute('dropdown') || false; }
+
+ /* Lifecycle, element appended to the DOM */
+ connectedCallback() {
+ if (this.dropdown === 'true') {
+ this.generateDropdown();
+ this.classList.add('joomla-dropdown-container');
+ } else {
+ this.classList.remove('joomla-dropdown-conotainer');
+ }
+ }
+
+ generateDropdown() {
+ const dropdownIcon = document.createElement('span');
+ dropdownIcon.classList.add('dropdown-icon');
+ dropdownIcon.setAttribute('id', 'dropdownID');
+ dropdownIcon.innerHTML = '...';
+ this.appendChild(dropdownIcon);
+ this.querySelector('joomla-dropdown').setAttribute('for', '#dropdownID');
+ }
+ }
+ customElements.define('joomla-card', JoomlaCardElement);
+})();
diff --git a/src/js/dropdown/dropdown.js b/src/js/dropdown/dropdown.js
index 10b5c1a3..c0ad6742 100644
--- a/src/js/dropdown/dropdown.js
+++ b/src/js/dropdown/dropdown.js
@@ -1,8 +1,17 @@
+/* eslint-disable no-cond-assign */
(() => {
class JoomlaDropdownElement extends HTMLElement {
+ constructor() {
+ super();
+ this.position = 'right';
+ this.checkSubmenu = this.checkSubmenu.bind(this);
+ this.clickOutside = this.clickOutside.bind(this);
+ this.toggleMenu = this.toggleMenu.bind(this);
+ }
+
/* Attributes to monitor */
static get observedAttributes() {
- return ['for'];
+ return ['for', 'position'];
}
get for() { return this.getAttribute('for'); }
@@ -11,76 +20,192 @@
connectedCallback() {
this.setAttribute('aria-labelledby', this.for.substring(1));
- const button = document.querySelector(this.for);
+ this.button = document.querySelector(`[data-target=${this.for}]`);
const innerLinks = this.querySelectorAll('a');
- if (!button.id) {
+ if (!this.button.hasAttribute('data-target')) {
return;
}
- // var children = [].slice.call( menu[getElementsByTagName]('*'));
- // this.classList.add('dropdown');
-
- button.setAttribute('aria-haspopup', true);
- button.setAttribute('aria-expanded', false);
-
- button.addEventListener('click', (event) => {
- if (this.hasAttribute('expanded')) {
- this.removeAttribute('expanded');
- event.target.setAttribute('aria-expanded', false);
- } else {
- this.setAttribute('expanded', '');
- event.target.setAttribute('aria-expanded', true);
+
+ this.position = this.getAttribute('position') ? this.getAttribute('position') : this.position;
+ // set the position for submenu items
+ innerLinks.forEach((link) => {
+ if (link.parentElement.classList.contains('has-submenu')) {
+ link.parentElement.classList.add(this.position);
}
+ });
+ this.button.setAttribute('aria-haspopup', true);
+ this.button.setAttribute('aria-expanded', false);
+ this.button.addEventListener('click', this.toggleMenu, true);
+ }
- document.addEventListener('click', (evt) => {
- if (evt.target !== button) {
- if (!this.findAncestor(evt.target, 'joomla-dropdown')) {
- this.close();
- }
- }
- });
+ disconnectedCallback() {
+ this.button.removeEventListener('click', this.toggleMenu, true);
+ }
- innerLinks.forEach((innerLink) => {
- innerLink.addEventListener('click', () => {
- this.close();
- });
- });
+ /**
+ * Hide or Show menu when click on target element
+ * @param {Object} event
+ */
+ toggleMenu(event) {
+ if (event.target.tagName === 'A') {
+ event.preventDefault();
+ }
+ if (this.hasAttribute('expanded')) {
+ this.removeAttribute('expanded');
+ event.target.setAttribute('aria-expanded', false);
+ } else {
+ this.setAttribute('expanded', '');
+ event.target.setAttribute('aria-expanded', true);
+ }
+ this.setPosition();
+
+ document.addEventListener('click', this.clickOutside, true);
+
+ const innerLinks = this.querySelectorAll('a');
+ innerLinks.forEach((innerLink) => {
+ innerLink.addEventListener('click', this.checkSubmenu, true);
+ });
+ // toggle dropdown onhover
+ const lists = this.querySelectorAll('li.has-submenu');
+ lists.forEach((list) => {
+ if (list.getAttribute('data-action') !== 'click'
+ && document.body.getBoundingClientRect().width > 1024) {
+ list.addEventListener('mouseenter', this.showSubmenu, true);
+ list.addEventListener('mouseleave', this.hideSubmenu, true);
+ }
});
}
- /*eslint-disable */
- /* Method to dispatch events */
- dispatchCustomEvent(eventName) {
- const OriginalCustomEvent = new CustomEvent(eventName);
- OriginalCustomEvent.relatedTarget = this;
- this.dispatchEvent(OriginalCustomEvent);
- this.removeEventListener(eventName, this);
+ /**
+ * Show sub-menu when trigger on parent link
+ * @param {Object} event
+ */
+ showSubmenu(event) {
+ event.preventDefault();
+ if (document.body.getBoundingClientRect().width > 1024) {
+ if (event.target.classList.contains('has-submenu')) {
+ event.target.toggleAttribute('open');
+ }
+ }
}
- adoptedCallback(oldDocument, newDocument) { }
+ /**
+ * Hide sub-menu
+ * @param {Obejct} event
+ */
+ hideSubmenu(event) {
+ event.preventDefault();
+ if (document.body.getBoundingClientRect().width > 1024) {
+ if (event.target.classList.contains('has-submenu') && event.target.hasAttribute('open')) {
+ event.target.toggleAttribute('open');
+ }
+ }
+ }
+ /**
+ * Check if click outside of dropdown
+ * If click outside then close dropdown
+ * @param {Object} event
+ */
+ clickOutside(event) {
+ if (this.button.contains(event.target) === false && event.target !== this.button) {
+ if (!this.findAncestor(event.target, 'joomla-dropdown')) {
+ this.close();
+ }
+ }
+ }
+ /**
+ * Check if dropdown has sub-menu
+ * @param {Object} event
+ */
+ checkSubmenu(event) {
+ // check for drop-down items
+ const hasSubmenu = event.target.parentElement.classList.contains('has-submenu');
+ const clickable = event.target.parentElement.getAttribute('data-action') === 'click';
+ if (hasSubmenu && (clickable || document.body.getBoundingClientRect().width <= 1024)) {
+ const allDropdowns = this.querySelectorAll('.has-submenu');
+ allDropdowns.forEach((dropdown) => {
+ if (dropdown.hasAttribute('open') && dropdown !== event.target.parentElement) {
+ dropdown.toggleAttribute('open');
+ }
+ });
+ event.target.parentElement.toggleAttribute('open');
+ } else {
+ this.close();
+ }
+ }
+
+ /**
+ * Check if the attribute changed
+ * If position change then update the position
+ * @param {String} attr
+ * @param {String} oldValue
+ * @param {String} newValue
+ */
attributeChangedCallback(attr, oldValue, newValue) {
switch (attr) {
- // case 'name':
- // console.log(newValue);
- // break;
+ case 'position':
+ if (!newValue || newValue === '') {
+ this.position = newValue;
+ this.setPosition();
+ }
+ break;
+ default:
+ break;
}
}
- /* eslint-enable */
+ /**
+ * Check dropdown position only for left and right
+ * If current position not satisfied then move it to oposite
+ */
+ setPosition() {
+ const dropdownRect = this.getBoundingClientRect();
+ const button = document.querySelector(`[data-target=${this.for}]`);
+ const buttonRect = button.getBoundingClientRect();
+
+ if (this.position === 'left' && (dropdownRect.width + buttonRect.width) > dropdownRect.right) {
+ this.setAttribute('position', 'left');
+ } else if (this.position === 'right' && (buttonRect.right + dropdownRect.width) > window.innerWidth) {
+ this.setAttribute('position', 'right');
+ }
+ }
+
+ /* Method to dispatch events */
+ dispatchCustomEvent(eventName) {
+ const OriginalCustomEvent = new CustomEvent(eventName);
+ OriginalCustomEvent.relatedTarget = this;
+ this.dispatchEvent(OriginalCustomEvent);
+ this.removeEventListener(eventName, this);
+ }
+
+ /**
+ * Close the dropdown
+ */
close() {
- const button = document.querySelector(`#${this.getAttribute('aria-labelledby')}`);
+ // removing 'open' attribute of dropdown items
+ const dropdownItems = document.querySelectorAll('.has-submenu');
+ dropdownItems.forEach((item) => {
+ if (item.hasAttribute('open')) {
+ item.toggleAttribute('open');
+ }
+ });
+ const button = document.querySelector(`[data-target=${this.getAttribute('aria-labelledby')}]`);
this.removeAttribute('expanded');
- button.setAttribute('aria-expanded', false);
+ if (button) button.setAttribute('aria-expanded', false);
+
+ // remove unnecessary events when dropdown closed
+ window.removeEventListener('click', this.checkSubmenu, true);
+ document.removeEventListener('click', this.clickOutside, true);
}
- /* eslint-disable */
findAncestor(el, tagName) {
+ // eslint-disable-next-line no-param-reassign
while ((el = el.parentElement) && el.nodeName.toLowerCase() !== tagName);
return el;
}
- /* eslint-enable */
}
customElements.define('joomla-dropdown', JoomlaDropdownElement);
diff --git a/src/js/modal/modal.js b/src/js/modal/modal.js
index d35f3058..1cb4a091 100644
--- a/src/js/modal/modal.js
+++ b/src/js/modal/modal.js
@@ -1,14 +1,8 @@
(() => {
- // Keycodes
- const KEYCODE = {
- TAB: 9,
- ESC: 27,
- };
-
customElements.define('joomla-modal', class extends HTMLElement {
constructor() {
super();
-
+ this.KEYCODE = { tab: 9, esc: 27 };
this.triggerBtn = '';
this.focusableElements = null;
this.focusableSelectors = ['a[href]', 'area[href]', 'input:not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'iframe', 'object', 'embed', '[contenteditable]', '[tabindex]:not([tabindex^="-"])'];
@@ -70,7 +64,6 @@
this.header = this.container.querySelector('header');
this.body = this.container.querySelector('section');
this.footer = this.container.querySelector('footer');
-
this.triggerBtn = document.querySelector(`[data-href="#${this.id}"]`);
if (this.triggerBtn) {
this.triggerBtn.addEventListener('click', this.open.bind(this));
@@ -139,7 +132,8 @@
});
}
- close() {
+ close(event) {
+ event.preventDefault();
this.removeEventListener('keydown', this.evKeypress);
document.removeEventListener('click', this.evDocumentClose);
@@ -154,7 +148,10 @@
if (dropShadow) document.body.removeChild(dropShadow);
this.setAttribute('aria-hidden', 'true');
this.classList.remove('show');
- this.main.innerHTML = '';
+ // this.main.innerHTML = '';
+ if (this.main.querySelector('iframe')) {
+ this.main.removeChild(this.main.querySelector('iframe'));
+ }
this.triggerBtn.focus();
}
@@ -166,11 +163,11 @@
keyPress(e) {
// ESC key
- if (e.keyCode === KEYCODE.ESC) {
+ if (e.keyCode === this.KEYCODE.esc) {
this.close();
}
// TAB key
- if (e.keyCode === KEYCODE.TAB) {
+ if (e.keyCode === this.KEYCODE.tab) {
// this.handleTabEvent(e);
// Get the index of the current active element within the modal
const focusedIndex = this.focusableElements.indexOf(document.activeElement);
diff --git a/src/js/pagination/pagination.js b/src/js/pagination/pagination.js
new file mode 100644
index 00000000..3befc849
--- /dev/null
+++ b/src/js/pagination/pagination.js
@@ -0,0 +1,508 @@
+(() => {
+ class JoomlaPagination extends HTMLElement {
+ constructor() {
+ super();
+
+ this.keyCode = { TAB: 9, ESC: 27 };
+
+ this.defaultSettings = {
+ totalVisible: 10,
+ resultMsg: '',
+ nextText: 'Next',
+ nextIcon: '>',
+ prevText: 'Prev',
+ prevIcon: '<',
+ firstText: 'First',
+ firstIcon: '<<',
+ lastText: 'Last',
+ lastIcon: '>>',
+ navBtnsState: 'icon', // allowed values are ['icon', 'text', 'text-icon'],
+ disableBtns: [], // this allowes disable the navigation buttons
+ // if anywant wants, allowed texts [next, prev, first, last]
+ limit: 10, // how many steps it will go after clicking next
+ inputSelector: '#list_limit', // the hidden input field name
+ formSelector: '#adminForm', // the form id
+ pagination: false,
+ };
+
+ this.windowHeight = window.innerHeight;
+
+ this.nextPage = this.nextPage.bind(this);
+ this.prevPage = this.prevPage.bind(this);
+ this.goToFirstPage = this.goToFirstPage.bind(this);
+ this.goToLastPage = this.goToLastPage.bind(this);
+ this.resizeWindow = this.resizeWindow.bind(this);
+
+ this.resizeTimer = null;
+ this.dotItems = [];
+
+ this.disableNext = false;
+ this.disableLast = false;
+ this.disableFirst = false;
+ this.disablePrev = false;
+
+ this.currentItemIndex = 0;
+
+ if (window.innerWidth >= 180) {
+ this.pageCount = Math.floor((window.innerWidth - 180) / 45);
+ } else {
+ this.pageCount = Math.floor((window.innerWidth) / 45);
+ }
+
+ this.options = {};
+
+ this.rawItems = this.getAllSiblings();
+ this.listItems = this.getAllSiblings();
+ this.removeRawElements();
+
+ this.preparePaginationContainer();
+ }
+
+ /**
+ * Getter methods
+ */
+ get customClass() { return this.getAttribute('class'); }
+
+ get totalVisible() { return this.getAttribute('total-visible'); }
+
+ get resultMsg() { return this.getAttribute('result-msg'); }
+
+ get nextText() { return this.getAttribute('next-text'); }
+
+ get nextIcon() { return this.getAttribute('next-icon'); }
+
+ get prevText() { return this.getAttribute('prev-text'); }
+
+ get prevIcon() { return this.getAttribute('prev-icon'); }
+
+ get firstText() { return this.getAttribute('first-text'); }
+
+ get firstIcon() { return this.getAttribute('first-icon'); }
+
+ get lastText() { return this.getAttribute('last-text'); }
+
+ get lastIcon() { return this.getAttribute('last-icon'); }
+
+ get navBtnsState() { return this.getAttribute('navbtns-state'); }
+
+ get disableBtns() { return this.getAttribute('disable-btns'); }
+
+ get limit() { return this.getAttribute('limit'); }
+
+ get inputSelector() { return this.getAttribute('input-selector'); }
+
+ get formSelector() { return this.getAttribute('form-selector'); }
+
+ get pagination() { return this.getAttribute('pagination'); }
+
+ preparePaginationContainer() {
+ this.pageNav = JoomlaPagination.createDOMElement('nav', {
+ class: 'pagination-navigation', role: 'navigation', 'aria-label': 'Pagination', tabindex: '-1',
+ });
+ this.pageLabel = JoomlaPagination.createDOMElement('span', { class: 'pagination-label d-none d-sm-block' });
+ this.pageUl = JoomlaPagination.createDOMElement('ul', { class: 'pagination-list' });
+ this.pageNav.appendChild(this.pageLabel);
+ this.pageNav.appendChild(this.pageUl);
+ this.appendChild(this.pageNav);
+ }
+
+ /**
+ * Get all direct children elements of joomla-pagination
+ */
+ getAllSiblings() {
+ const result = [];
+ let index = 0;
+ let node = this.firstChild;
+
+ while (node) {
+ if (node !== this && node.nodeType === Node.ELEMENT_NODE) {
+ node.removeAttribute('style');
+ result.push(node);
+ if (node.classList.contains('active')) { this.currentItemIndex = index - 1; }
+ }
+ index += 1;
+ node = node.nextElementSibling || node.nextSibling;
+ }
+ return result;
+ }
+
+ removeRawElements() {
+ while (this.firstChild) this.removeChild(this.firstChild);
+ }
+
+ static clearChildren(element) {
+ while (element.firstChild) { element.removeChild(element.firstChild); }
+ }
+
+ removeActiveElement() {
+ for (let i = 0, l = this.rawItems.length; i < l; i += 1) {
+ if (this.rawItems[i].classList.contains('active')) {
+ this.rawItems[i].classList.remove('active');
+ this.rawItems[i].removeAttribute('aria-current');
+ break;
+ }
+ }
+ }
+
+ setAsActiveElement(index) {
+ this.rawItems[index].classList.add('active');
+ this.rawItems[index].setAttribute('aria-current', true);
+ this.rawItems[index].setAttribute('aria-label', `Page ${index + 1}`);
+ }
+
+ submitLimitForm() {
+ this.inputField.value = this.rawItems[this.currentItemIndex].value;
+ this.adminForm.submit();
+ }
+
+ submitPaginationForm() {
+ // eslint-disable-next-line max-len
+ this.inputField.value = parseInt(this.options.limit, 10) * parseInt(this.currentItemIndex, 10);
+ this.adminForm.submit();
+ }
+
+ static createRange(start, end) {
+ const arr = [];
+ if (start > end) return arr;
+
+ for (let i = start; i <= end; i += 1) {
+ arr.push(i);
+ }
+ return arr;
+ }
+
+ static generatePaginationList(current, total, visibleLength) {
+ const flag = visibleLength % 2 === 0 ? 1 : 0;
+ const head = Math.floor(visibleLength / 2);
+ const tail = total - head + 1;
+
+ if (total <= visibleLength) {
+ return JoomlaPagination.createRange(1, total);
+ }
+
+ if (visibleLength <= 4) {
+ return [1, current, total];
+ }
+
+ if (current > head && current < tail) {
+ const start = current - head + 2;
+ const end = current + head - 2 - flag;
+ return [1, '...', ...JoomlaPagination.createRange(start, end), '...', total];
+ }
+
+ if (current === head) {
+ const end = current + head - 1 - flag;
+ return [...JoomlaPagination.createRange(1, end), '...', total];
+ }
+
+ if (current === tail) {
+ const start = current - head + 1;
+ return [1, '...', ...JoomlaPagination.createRange(start, total)];
+ }
+
+ return [
+ ...JoomlaPagination.createRange(1, head),
+ '...',
+ ...JoomlaPagination.createRange(tail, total),
+ ];
+ }
+
+ renderPagination(current, total) {
+ // enable disable navigation buttons
+
+ if (this.options.resultMsg) {
+ this.pageLabel.innerHTML = this.options.resultMsg;
+ }
+
+ if (current === 0) {
+ this.disablePrev = true;
+ this.disableFirst = true;
+ this.disableNext = false;
+ this.disableLast = false;
+ } else if (current === total - 1) {
+ this.disablePrev = false;
+ this.disableFirst = false;
+ this.disableNext = true;
+ this.disableLast = true;
+ } else {
+ this.disablePrev = false;
+ this.disableFirst = false;
+ this.disableNext = false;
+ this.disableLast = false;
+ }
+
+ JoomlaPagination.clearChildren(this.pageUl);
+ this.removeActiveElement();
+
+ const visibleLength = (this.options.totalVisible > this.pageCount
+ ? this.pageCount
+ : this.options.totalVisible) || this.pageCount;
+ const paginationArray = JoomlaPagination.generatePaginationList(
+ this.currentItemIndex + 1,
+ this.rawItems.length, visibleLength,
+ );
+ this.dotItems = [];
+ if (paginationArray.length > 0) {
+ paginationArray.forEach((itemIndex, index) => {
+ if (itemIndex !== '...') {
+ if (itemIndex - 1 !== this.currentItemIndex) {
+ this.rawItems[itemIndex - 1].setAttribute('aria-label', `Go to page ${itemIndex}`);
+ }
+ this.pageUl.appendChild(this.rawItems[itemIndex - 1]);
+ } else {
+ const dotItem = JoomlaPagination.createDOMElement('li', { class: 'pagination-item dot-item' }, '...');
+ const dotItemObject = {
+ item: dotItem,
+ left: paginationArray[index - 1],
+ right: paginationArray[index + 1],
+ };
+ this.dotItems.push(dotItemObject);
+ this.pageUl.appendChild(dotItem);
+ }
+ });
+ this.setAsActiveElement(current);
+ this.createNavigationButtons();
+ }
+
+ this.getDotItemsHiddenList();
+ }
+
+ getDotItemsHiddenList() {
+ if (this.dotItems.length) {
+ this.dotItems.forEach((item) => {
+ item.item.addEventListener('click', (event) => this.handleDotItemClick(event, item.left, item.right), false);
+ });
+ }
+ }
+
+ handleDotItemClick(event, start, end) {
+ event.preventDefault();
+
+ const dotElements = document.querySelector(`.dot-item-${start}`);
+ JoomlaPagination.clearDropdown();
+ if (dotElements) {
+ return;
+ }
+
+ const list = JoomlaPagination.createRange(start + 1, end - 1);
+
+ const clientRect = event.target.getBoundingClientRect();
+ const style = `left: ${clientRect.left}px; top: ${clientRect.top + clientRect.height}px`;
+
+ if (list.length > 0) {
+ const dotItemsUl = JoomlaPagination.createDOMElement('ul', { class: `dot-item-list dot-item-${start}`, style });
+ list.forEach((item) => {
+ dotItemsUl.appendChild(this.rawItems[item - 1]);
+ });
+ this.appendChild(dotItemsUl);
+ }
+ }
+
+ resizeWindow(event) {
+ event.preventDefault();
+ this.resizeTimer = setTimeout(() => {
+ if (window.innerHeight !== this.windowHeight) return;
+ let elWidth = window.innerWidth;
+ if (window.innerWidth >= 180) {
+ elWidth = window.innerWidth - 180;
+ }
+ this.pageCount = Math.floor(elWidth / 45);
+ this.renderPagination(this.currentItemIndex, this.rawItems.length);
+ }, 1000);
+ }
+
+ connectedCallback() {
+ // const paginationLength = this.getAllSiblings();
+ const extendedSettings = {};
+ if (this.totalVisible !== null) extendedSettings.totalVisible = this.totalVisible;
+ if (this.resultMsg !== null) extendedSettings.resultMsg = this.resultMsg;
+ if (this.nextText !== null) extendedSettings.nextText = this.nextText;
+ if (this.nextIcon !== null) extendedSettings.nextIcon = this.nextIcon;
+ if (this.prevText !== null) extendedSettings.prevText = this.prevText;
+ if (this.prevIcon !== null) extendedSettings.prevIcon = this.prevIcon;
+ if (this.firstText !== null) extendedSettings.firstText = this.firstText;
+ if (this.firstIcon !== null) extendedSettings.firstIcon = this.firstIcon;
+ if (this.lastText !== null) extendedSettings.lastText = this.lastText;
+ if (this.lastIcon !== null) extendedSettings.lastIcon = this.lastIcon;
+ if (this.navBtnsState !== null) extendedSettings.navBtnsState = this.navBtnsState;
+ if (this.disableBtns !== null) extendedSettings.disableBtns = this.disableBtns.split(',').map((btn) => btn.trim());
+ if (this.inputSelector !== null) extendedSettings.inputSelector = this.inputSelector;
+ if (this.formSelector !== null) extendedSettings.formSelector = this.formSelector;
+ if (this.limit !== null) extendedSettings.limit = this.limit;
+ if (this.pagination !== null) extendedSettings.pagination = (this.pagination === 'true' || this.pagination === '1');
+
+ this.options = { ...this.defaultSettings, ...extendedSettings };
+
+ this.inputField = document.querySelector(`${this.options.inputSelector}`);
+ this.adminForm = document.querySelector(`${this.options.formSelector}`);
+
+ this.renderPagination(this.currentItemIndex, this.rawItems.length);
+ this.clickHandlers();
+
+ window.addEventListener('resize', this.resizeWindow, false);
+ document.querySelector('html,body').addEventListener('click', JoomlaPagination.closeDropdown, false);
+ }
+
+ // lifecycle hook
+ disconnectedCallback() {
+ this.nextBtn.removeEventListener('click', this.nextPage);
+ this.prevBtn.removeEventListener('click', this.prevPage);
+ this.firstBtn.removeEventListener('click', this.goToFirstPage);
+ this.lastBtn.removeEventListener('click', this.goToLastPage);
+ if (this.resizeTimer) clearTimeout(this.resizeTimer);
+ if (this.dotItems) this.dotItems.forEach((elem) => { elem.removeEventListener('click', this); });
+ document.querySelector('html,body').removeEventListener('click', JoomlaPagination.closeDropdown);
+ window.removeEventListener('resize', this.resizeWindow, false);
+ }
+
+ /**
+ * Create a HTMLElement
+ * @param {string} tagName - e.g. div, strong, span etc.
+ * @param {object} attr - element attribute object
+ * @param {string} innerHTML - text to elements innerHTML
+ *
+ * @return {HTMLElement}
+ */
+ createDOMElement(tag, attributes = {}, text = '') {
+ const tagName = typeof (tag) === 'string' && tag.length > 0 ? tag : 'div';
+ const attr = typeof (attributes) === 'object' && Object.keys(attributes).length ? attributes : false;
+ const innerHTML = typeof (text) === 'string' && text.length > 0 ? text : false;
+
+ // IF tag name given then create element, otherwise create element div
+ const el = document.createElement(tagName);
+
+ // If attributes given then set attributes for the element
+ if (attr) {
+ Object.keys(attr).forEach((key) => {
+ el.setAttribute(key, attr[key]);
+ });
+ }
+
+ // Add inner HTML
+ if (innerHTML) {
+ el.innerHTML = innerHTML;
+ }
+
+ return el;
+ }
+
+ createNavigationButtons() {
+ // creating navigation buttons
+ const navBtns = {
+ next: {
+ text: this.options.nextText,
+ icon: this.options.nextIcon,
+ position: 'right',
+ isShown: this.options.disableBtns.indexOf('next') > -1,
+ },
+ last: {
+ text: this.options.lastText,
+ icon: this.options.lastIcon,
+ position: 'right',
+ isShown: this.options.disableBtns.indexOf('last') > -1,
+ },
+ prev: {
+ text: this.options.prevText,
+ icon: this.options.prevIcon,
+ position: 'left',
+ isShown: this.options.disableBtns.indexOf('prev') > -1,
+ },
+ first: {
+ text: this.options.firstText,
+ icon: this.options.firstIcon,
+ position: 'left',
+ isShown: this.options.disableBtns.indexOf('first') > -1,
+ },
+ };
+ this.nextBtn = JoomlaPagination.createDOMElement('li', { class: `pagination-item is-next-btn ${this.disableNext ? 'disabled' : ''}` }, this.generateNavBtnsText(navBtns.next));
+ this.prevBtn = JoomlaPagination.createDOMElement('li', { class: `pagination-item is-prev-btn ${this.disablePrev ? 'disabled' : ''}` }, this.generateNavBtnsText(navBtns.prev));
+ this.firstBtn = JoomlaPagination.createDOMElement('li', { class: `pagination-item is-first-btn ${this.disableFirst ? 'disabled' : ''}` }, this.generateNavBtnsText(navBtns.first));
+ this.lastBtn = JoomlaPagination.createDOMElement('li', { class: `pagination-item is-last-btn ${this.disableLast ? 'disabled' : ''}` }, this.generateNavBtnsText(navBtns.last));
+
+ if (!navBtns.next.isShown) this.pageUl.appendChild(this.nextBtn);
+ if (!navBtns.last.isShown) this.pageUl.appendChild(this.lastBtn);
+ if (!navBtns.prev.isShown) this.pageUl.insertBefore(this.prevBtn, this.pageUl.firstChild);
+ if (!navBtns.first.isShown) this.pageUl.insertBefore(this.firstBtn, this.pageUl.firstChild);
+
+ if (!this.disableNext) this.nextBtn.addEventListener('click', this.nextPage, false);
+ if (!this.disablePrev) this.prevBtn.addEventListener('click', this.prevPage, false);
+ if (!this.disableFirst) this.firstBtn.addEventListener('click', this.goToFirstPage, false);
+ if (!this.disableLast) this.lastBtn.addEventListener('click', this.goToLastPage, false);
+ }
+
+ generateNavBtnsText(navBtn) {
+ let navBtnText = '';
+ switch (this.options.navBtnsState) {
+ case 'icon':
+ navBtnText = `${navBtn.icon.length <= 2 ? navBtn.icon : ` `}`;
+ break;
+ case 'text':
+ navBtnText = `${navBtn.text}`;
+ break;
+ case 'text-icon':
+ navBtnText = `${navBtn.position === 'left' ? `${navBtn.icon.length <= 2 ? navBtn.icon : ` `} ${navBtn.text}` : `${navBtn.text} ${navBtn.icon.length <= 2 ? navBtn.icon : ` `}`}`;
+ break;
+ default:
+ navBtnText = `${navBtn.icon.length <= 2 ? navBtn.icon : ` `}`;
+ }
+ return navBtnText;
+ }
+
+ static clearDropdown() {
+ document.querySelectorAll('.dot-item-list').forEach((elem) => {
+ elem.parentNode.removeChild(elem);
+ });
+ }
+
+ closeDropdown(event) {
+ event.preventDefault();
+ if (event.target.classList.contains('dot-item') === false) {
+ JoomlaPagination.clearDropdown();
+ }
+ }
+
+ clickHandlers() {
+ if (this.listItems) {
+ this.rawItems.forEach((elem, index) => {
+ elem.addEventListener('click', (event) => this.goToPage(event, index), false);
+ });
+ }
+ }
+
+ nextPage(event) {
+ event.preventDefault();
+ if (this.currentItemIndex < this.rawItems.length - 1) this.currentItemIndex += 1;
+ this.renderPagination(this.currentItemIndex, this.rawItems.length);
+ this.clearDropdown();
+ }
+
+ prevPage(event) {
+ event.preventDefault();
+ if (this.currentItemIndex > 0) this.currentItemIndex -= 1;
+ this.renderPagination(this.currentItemIndex, this.rawItems.length);
+ this.clearDropdown();
+ }
+
+ goToLastPage(event) {
+ event.preventDefault();
+ this.currentItemIndex = this.rawItems.length - 1;
+ this.renderPagination(this.currentItemIndex, this.rawItems.length);
+ this.clearDropdown();
+ }
+
+ goToFirstPage(event) {
+ event.preventDefault();
+ this.currentItemIndex = 0;
+ this.renderPagination(this.currentItemIndex, this.rawItems.length);
+ this.clearDropdown();
+ }
+
+ goToPage(event, pageIndex) {
+ event.preventDefault();
+ this.currentItemIndex = pageIndex;
+ this.renderPagination(this.currentItemIndex, this.rawItems.length);
+ this.clearDropdown();
+ }
+ }
+ customElements.define('joomla-pagination', JoomlaPagination);
+})();
diff --git a/src/js/progress/progress.js b/src/js/progress/progress.js
new file mode 100644
index 00000000..98196a39
--- /dev/null
+++ b/src/js/progress/progress.js
@@ -0,0 +1,162 @@
+(() => {
+ class JoomlaProgress extends HTMLElement {
+ constructor() {
+ super();
+ this.size = (this.radius * 2) - this.stroke;
+ this.normalizedRadius = this.radius - this.stroke;
+ this.cxy = this.radius - (this.stroke / 2);
+ this.defaultDashOffset = (this.radius - this.stroke) * Math.PI * 2;
+
+ this.isRendered = false;
+ this.renderInViewPort = this.renderInViewPort.bind(this);
+ this.setDefaultHeight();
+ this.render();
+ }
+
+ static get observedAttributes() {
+ return ['progress'];
+ }
+
+ get stroke() {
+ return this.getAttribute('stroke') || 4;
+ }
+
+ get radius() {
+ return this.getAttribute('radius') || 50;
+ }
+
+ get progress() {
+ return this.getAttribute('progress') || 0;
+ }
+
+ get fill() {
+ return this.getAttribute('fill') || '#0184FF';
+ }
+
+ get emptyFill() {
+ return this.getAttribute('empty-fill') || '#F0F3F8';
+ }
+
+ get duration() {
+ return Number(this.getAttribute('duration')) || 600;
+ }
+
+ connectedCallback() {
+ window.addEventListener('scroll', this.renderInViewPort, true);
+ this.renderInViewPort();
+ }
+
+ setDefaultHeight() {
+ this.style.height = `${this.size}px`;
+ this.style.width = `${this.size}px`;
+ this.style.opacity = '0';
+ }
+
+ renderInViewPort() {
+ // render if item in viewport
+ if (!this.isRendered && this.isInViewport(this)) {
+ this.isRendered = true;
+ this.querySelector('svg').style.transform = 'rotate(-90deg)';
+ this.calculateProgress();
+ }
+
+ // remove scroll event if already rendered
+ if (this.isRendered) {
+ window.removeEventListener('scroll', this.renderInViewPort, true);
+ }
+ }
+
+ // eslint-disable-next-line no-unused-vars
+ attributeChangedCallback(name, oldValue, newValue) {
+ if (oldValue !== null && oldValue) {
+ this.calculateProgress();
+ }
+ }
+
+ calculateProgress() {
+ this.style.opacity = '';
+ const circleFg = this.querySelector('#circleFg');
+ this.dashSize = circleFg.getTotalLength();
+ this.dashParcent = this.dashSize - ((this.progress / 100) * this.dashSize);
+ circleFg.style.strokeLinecap = 'round';
+ circleFg.style.transition = `${this.duration}ms`;
+ circleFg.style.strokeDasharray = `${this.dashSize} ${this.dashSize}`;
+ circleFg.style.strokeDashoffset = this.dashParcent;
+ this.animateValue(this.querySelector('[data-counter="true"]'), 0, this.progress, this.duration);
+ }
+
+ // eslint-disable-next-line class-methods-use-this
+ animateValue(elem, start, end, duration) {
+ // assumes integer values for start and end
+ const element = elem;
+ if (!element) {
+ return;
+ }
+ const range = end - start;
+ // no timer shorter than 50ms (not really visible any way)
+ const minTimer = 50;
+ // calc step time to show all interediate values
+ let stepTime = Math.abs(Math.floor(duration / range));
+
+ // never go below minTimer
+ stepTime = Math.max(stepTime, minTimer);
+
+ // get current time and calculate desired end time
+ const startTime = new Date().getTime();
+ const endTime = startTime + duration;
+ let timer;
+
+ const startAnimation = () => {
+ const now = new Date().getTime();
+ const remaining = Math.max((endTime - now) / duration, 0);
+ const value = Math.round(end - (remaining * range));
+ element.innerHTML = value;
+ if (value >= Math.floor(end)) {
+ clearInterval(timer);
+ }
+ };
+
+ timer = setInterval(startAnimation, stepTime);
+ startAnimation();
+ }
+
+ // eslint-disable-next-line class-methods-use-this
+ isInViewport(elem) {
+ const bounding = elem.getBoundingClientRect();
+ return (
+ bounding.top >= 0 && bounding.left >= 0
+ && bounding.bottom <= (window.innerHeight
+ || document.documentElement.clientHeight)
+ && bounding.right <= (window.innerWidth
+ || document.documentElement.clientWidth)
+ );
+ }
+
+ render() {
+ this.style.display = 'inline-flex';
+ this.innerHTML = this.innerHTML.trim() !== '' ? `${this.innerHTML}
` : '';
+ this.innerHTML += `
+
+
+
+
+
+
+ `;
+ }
+ }
+ customElements.define('joomla-progress', JoomlaProgress);
+})();
diff --git a/src/js/tab/tab.js b/src/js/tab/tab.js
index 564e5cfe..ad4603e5 100644
--- a/src/js/tab/tab.js
+++ b/src/js/tab/tab.js
@@ -196,7 +196,8 @@
/** Activate Tab */
const activateTabFromLink = (e) => {
e.preventDefault();
-
+ const isDisable = e.target.getAttribute('disabled');
+ if (isDisable === 'true') return;
if (this.hasActive) {
this.hideCurrent();
}
@@ -225,7 +226,8 @@
const active = tab.hasAttribute('active');
const liElement = document.createElement('li');
const aElement = document.createElement('a');
-
+ let isDisable = tab.getAttribute('disabled');
+ isDisable = isDisable !== null && isDisable === 'true';
liElement.setAttribute('role', 'presentation');
aElement.setAttribute('role', 'tab');
aElement.setAttribute('aria-controls', tab.id);
@@ -239,6 +241,10 @@
aElement.setAttribute('active', '');
}
+ if (isDisable) {
+ aElement.setAttribute('disabled', 'true');
+ }
+
aElement.addEventListener('click', activateTabFromLink);
liElement.appendChild(aElement);
@@ -315,6 +321,11 @@
nextTabItem.querySelector('a').focus();
e.preventDefault();
break;
+ case 9:
+ nextTabItem.querySelector('a').click();
+ nextTabItem.querySelector('a').focus();
+ e.preventDefault();
+ break;
default:
break;
}
diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss
index 21d48d17..feffb489 100644
--- a/src/scss/_variables.scss
+++ b/src/scss/_variables.scss
@@ -1,6 +1,28 @@
//
// Variables
//
+:root{
+ --background: #f4f7fc;
+ --inverse-background: #1d2427;
+ --color: #252732;
+ --white: #ffffff;
+ --color-rgb: 37, 39, 50;
+ --inverse-color: #ffffff;
+ --secondary-color: #5e727c;
+ --icon-color: #808f94;
+ --secondary-icon-color: #bdc5c8;
+ --button-background: #e5f2ff;
+ --cancel-button-background: #f0f3f8;
+ --disabled-button-background: #eaeaea;
+ --link-color: #0184ff;
+ --link-color-light-rgb: 229, 242, 255;
+ --primary-color: #0184ff;
+ --primary-gradient-color: #198df8;
+ --success-color: #7ac143;
+ --warning-color: #f9a541;
+ --danger-color: #f44321;
+ --overlay: rgba(23, 23, 23, 0.5);
+}
// Color system
$white: #fff;
@@ -26,6 +48,7 @@ $green: #438243;
$teal: #20c997;
$cyan: #17a2b8;
+
$colors: (
blue: $blue,
indigo: $indigo,
@@ -124,13 +147,4 @@ $tab-vertical-ul-border: 1px solid #ccc;
// Dropdown
-$dropdown-bg: $white;
-$dropdown-border-width: 1px;
-$dropdown-border-style: solid;
-$dropdown-border-colour: $black;
-$dropdown-border-opacity: .15;
-
-$dropdown-item-padding: .5rem .75rem;
-$dropdown-item-bg-hover: $gray-700;
-$dropdown-item-color: $gray-900;
-$dropdown-item-color-hover: $white;
+$dropdown-shadow-color: rgba(0, 28, 73, 0.15);
diff --git a/src/scss/accordion/accordion.scss b/src/scss/accordion/accordion.scss
new file mode 100644
index 00000000..99f6cb05
--- /dev/null
+++ b/src/scss/accordion/accordion.scss
@@ -0,0 +1,117 @@
+@import "../variables";
+
+
+
+/* Style the accordion panel. Note: hidden by default */
+joomla-accordion > .accordion-item {
+ padding: 0 18px;
+ background-color: white;
+ display: none;
+ overflow: hidden;
+}
+joomla-accordion>.joomla-accordion-title.active ~ section.show {
+ display: block;
+}
+
+
+joomla-accordion {
+ display: block;
+ margin-top: 1px;
+ > .joomla-accordion-title {
+ font-size: 1.5rem;
+ line-height: 1.614rem;
+ font-weight: 400;
+ color: var(--secondary-color);
+ border-top: 1px solid var(--background);
+ border-bottom: 1px solid var(--background);
+ margin: -1px 0 0;
+ padding: 0.643rem 1.143rem;
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ transition: 300ms;
+ &:hover{
+ background: var(--button-background);
+ }
+ &.active{
+ color: var(--color);
+ border-bottom-color: transparent;
+ }
+ > span{
+ height: 12px;
+ width: 12px;
+ background-size: contain;
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='7' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.707 6.283a1 1 0 0 1-1.414 0L.7 1.69A.99.99 0 0 1 2.1.29L6 4.19 9.9.29a.99.99 0 0 1 1.4 1.4L6.707 6.283z' fill='%23C1C7D0' fill-rule='nonzero'/%3E%3C/svg%3E");
+ display: inline-block;
+ background-position: center center;
+ background-repeat: no-repeat;
+ transition: 300ms;
+ }
+ &.active > span{
+ transform: rotate(180deg);
+ }
+ &:focus{
+ outline: 1px solid var(--link-color);
+ }
+ }
+
+
+ &[state="closed"] {
+ display: none;
+ }
+
+ &[state="open"] {
+ display: block;
+ .accordion-panel-body{
+ border-bottom: 1px solid #ccd3d7;
+ }
+ }
+ &.accordion{
+ >div:first-child{
+ border-top: 1px solid #ccd3d7;
+ }
+ &.disabled{
+ pointer-events: none;
+ opacity: 0.5;
+ color: #6c757d;
+ a{
+ color: #6c757d;
+ }
+ }
+ .accordion-panel-title{
+ border-bottom: 1px solid #ccd3d7;
+ text-decoration: none;
+ padding: 10px 15px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ transition: .3s;
+ color: var(--secondary-color);
+ .accordion-arrow{
+ pointer-events: none;
+ font-size: 50%;
+ margin-left: 5px;
+ transition: .3s;
+ transform: rotate(0deg);
+ }
+ &[aria-expanded="true"]{
+ color: var(--color);
+ .accordion-arrow{
+ transform: rotate(180deg);
+ }
+ }
+ &:hover{
+ background-color: #edf4fa;
+ }
+ &:focus{
+ box-shadow: 0px 0px 0px 2px #198df8;
+ outline: none;
+ }
+ }
+ .accordion-panel-body{
+ padding: 15px;
+ }
+ }
+ }
+
diff --git a/src/scss/alert/alert.scss b/src/scss/alert/alert.scss
index 8b60b880..02e93f40 100644
--- a/src/scss/alert/alert.scss
+++ b/src/scss/alert/alert.scss
@@ -1,64 +1,11 @@
// Alerts
-//
-// Functions
-//
-
-// Retrieve color Sass maps
-@function color($key: "blue") {
- @return map-get($colors, $key);
-}
-
-@function theme-color($key: "primary") {
- @return map-get($theme-colors, $key);
-}
-
-@function gray($key: "100") {
- @return map-get($grays, $key);
-}
-
-// Request a theme color level
-@function theme-color-level($color-name: "primary", $level: 0) {
- $color: theme-color($color-name);
- $color-base: if($level > 0, $black, $white);
- $level: abs($level);
-
- @return mix($color-base, $color, $level * $theme-color-interval);
-}
-
-
-//
-// Mixins
-//
-
-@mixin hover-focus {
- &:hover,
- &:focus {
- @content;
- }
-}
-
-@mixin alert-variant($background, $border, $color) {
- color: $color;
- background-color: $background;
- border-color: $border;
-
- hr {
- border-top-color: darken($border, 5%);
- }
-
- .alert-link {
- color: darken($color, 10%);
- }
-}
-
//
// Variables
//
@import "../variables";
-
//
// Base styles
//
@@ -66,83 +13,212 @@
joomla-alert {
display: block;
min-width: 250px;
- padding: $alert-padding-y $alert-padding-x;
- margin-bottom: $alert-margin-bottom;
- border: $alert-border-width solid transparent;
+ padding: 1.143rem 1.500rem;
+ margin-bottom: 1.143rem;
+ border: 1px solid transparent;
opacity: 0;
- border-radius: $alert-border-radius;
- transition: $transition-fade;
-
+ border-radius: 3px;
+ transition: 300ms;
+ box-shadow: 0 8px 16px -4px rgba(9, 30, 66, 0.25), 0 0 1px 0 rgba(9, 30, 66, 0.31);
+ color: var(--color);
+ position: relative;
+ line-height: 1.643rem;
+ a{
+ color: var(--primary-color)
+ }
@media screen and (prefers-reduced-motion: reduce) {
transition: none;
- }
+ }
+
+ &[type='danger']{
+ background-color: var(--danger-color);
+ color: var(--inverse-color);
+ }
+
+ &[type='warning']{
+ background-color: var(--warning-color);
+ }
+
+ &[type='success']{
+ background-color: var(--success-color);
+ color: var(--inverse-color);
+ }
- &.joomla-alert--show {
- display: block;
- opacity: 1;
- }
-
- .joomla-alert--close, .joomla-alert-button--close {
- position: relative;
- top: -$alert-padding-y;
- right: -$alert-padding-x;
- padding: .2rem 1rem;
- color: inherit;
- }
-
- .joomla-alert--close {
- font-size: $close-font-size;
- font-weight: $close-font-weight;
- line-height: 1;
- text-shadow: $close-text-shadow;
- }
-
- .joomla-alert--close, .joomla-alert-button--close {
- float: right;
- color: $close-color;
- background: transparent;
- border: 0;
- opacity: .5;
-
- @include hover-focus {
- color: $close-color;
- text-decoration: none;
- cursor: pointer;
- opacity: .75;
- }
- }
-
- // Additional properties for button version
- // iOS requires the button element instead of an anchor tag.
- // If you want the anchor version, it requires `href="#"`.
- // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
-
- // scss-lint:disable QualifyingElement
- button.joomla-alert-button--close {
- padding-top: .75rem;
- font-size: 100%;
- line-height: 1.15;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
- }
-}
+ &.joomla-alert--show {
+ display: flex;
+ opacity: 1;
+ }
+
+ .joomla-alert--collapse-container,
+ .joomla-alert-content{
+ flex-grow: 1;
+ }
+
+ .joomla-alert--icon{
+ padding-right: 1.357rem;
+ margin-top: 0.286rem;
+ }
+
+ .joomla-alert--collapse-header{
+ display: flex;
+ position: relative;
+ justify-content: space-between;
+ &[area-expanded='true']{
+ margin-bottom: 0.786rem;
+ }
+ .joomla-alert--collapse-icon{
+ width: 14px;
+ height: 14px;
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='7' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M5.293 6.697L.7 2.104a.99.99 0 0 1 1.4-1.4l3.9 3.9 3.9-3.9a.99.99 0 1 1 1.4 1.4L6.707 6.697a1 1 0 0 1-1.414 0z' fill='%23FFF'/%3E%3Cpath d='M-1-4h14v14H-1z'/%3E%3C/g%3E%3C/svg%3E");
+ background-position: center center;
+ background-repeat: no-repeat;
+ text-indent: 9999px;
+ display: inline-block;
+ border:none;
+ background-color: transparent;
+ cursor: pointer;
+ overflow: hidden;
+ }
+ }
+
+ &[type="info"] .joomla-alert--collapse-header .joomla-alert--collapse-icon{
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='7' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.707 6.283a1 1 0 0 1-1.414 0L.7 1.69A.99.99 0 0 1 2.1.29L6 4.19 9.9.29a.99.99 0 0 1 1.4 1.4L6.707 6.283z' fill='%23C1C7D0' fill-rule='nonzero'/%3E%3C/svg%3E");
+ }
+
+ .joomla-alert--collapse{
+ display: none;
+ &.show{
+ display: block;
+ }
+ }
+
+ .joomla-alert--close{
+ position: absolute;
+ width: 14px;
+ height: 14px;
+ background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L7 5.585 12.293.293a1 1 0 0 1 1.32-.083l.094.083a1 1 0 0 1 0 1.414L8.415 7l5.292 5.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.414 0L7 8.415l-5.293 5.292a1 1 0 0 1-1.32.083l-.094-.083a1 1 0 0 1 0-1.414L5.585 7 .293 1.707A1 1 0 0 1 .21.387z' fill='%23FFF' fill-rule='nonzero'/%3E%3Cpath d='M-5-5h24v24H-5z'/%3E%3C/g%3E%3C/svg%3E");
+ background-position: center center;
+ background-repeat: no-repeat;
+ text-indent: 9999px;
+ display: inline-block;
+ border:none;
+ background-color: transparent;
+ right: 1.500rem;
+ top: 1.286rem;
+ cursor: pointer;
+ overflow: hidden;
+ span{
+ display: none;
+ }
+ }
+
+ &[type='info'] .joomla-alert--close{
+ background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L7 5.585 12.293.293a1 1 0 0 1 1.32-.083l.094.083a1 1 0 0 1 0 1.414L8.415 7l5.292 5.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.414 0L7 8.415l-5.293 5.292a1 1 0 0 1-1.32.083l-.094-.083a1 1 0 0 1 0-1.414L5.585 7 .293 1.707A1 1 0 0 1 .21.387z' fill='%23C1C7D0' fill-rule='nonzero'/%3E%3Cpath d='M-5-5h24v24H-5z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+
+ &[dismiss='false'] .joomla-alert--close{
+ display: none;
+ }
+ &[collapse='true'][dismiss='true'] .joomla-alert--collapse-header{
+ padding-right: 1.5rem;
+ }
+
+ .joomla-alert-button-group{
+ padding-top: 1.214rem;
+ }
+
+ .joomla-alert-button-group a,
+ button{
+ padding: 0 0.857rem;
+ line-height: 1.643rem;
+ border: none;
+ background: rgba($color: #000000, $alpha: 0.07);
+ border-radius: 3px;
+ display: inline-block;
+ cursor: pointer;
+ transition: 300ms;
+ color: inherit;
+ }
+
+
+ .joomla-alert-button-group a,
+ .joomla-alert-button-group button{
+ margin-right: 4px;
+ &:hover{
+ background: rgba($color: #000000, $alpha: 0.13);
+ }
+ }
+
+ .joomla-alert-link-group{
+ padding-top: 0.714rem;
+ a{
+ margin-right: 8px;
+ display: inline-block;
+ position: relative;
+ padding-right: 12px;
+ &::after{
+ content: '';
+ position: absolute;
+ right: 0;
+ top: 50%;
+ margin-top: -2px;
+ height: 4px;
+ width: 4px;
+ border-radius: 50%;
+ background: var(--primary-color);
+ }
+ &:last-child{
+ margin-right: 0;
+ padding-right: 0;
+ &::after{
+ display: none;
+ }
+ }
+ }
+ }
-// Alternate styles
-@each $color, $value in $alert-colors {
- joomla-alert[type="#{$color}"] {
- @include alert-variant(theme-color-level($color, -10), theme-color-level($color, -9), theme-color-level($color, 6));
- }
}
// RTL overrides
html[dir=rtl] joomla-alert {
- .joomla-alert--close,
- .joomla-alert-button--close {
- right: auto;
- left: -1.25rem;
- float: left;
- }
+ .joomla-alert--icon{
+ padding-right: 0;
+ padding-left: 1.357rem;
+ }
+ .joomla-alert--close{
+ right: auto;
+ left: 1.5000rem;
+ }
+ &[collapse='true'][dismiss='true'] .joomla-alert--collapse-header{
+ padding-right: 0;
+ padding-left: 1.5rem;
+ }
+ .joomla-alert-button-group a,
+ .joomla-alert-button-group button{
+ margin-right: 0;
+ margin-left: 4px;
+ &:hover{
+ background: rgba($color: #000000, $alpha: 0.13);
+ }
+ }
+
+
+ .joomla-alert-link-group{
+ a{
+ margin-right: 0;
+ padding-right: 0;
+ margin-left: 8px;
+ padding-left: 12px;
+ &::after{
+ right: auto;
+ left: 0;
+ }
+ &:last-child{
+ margin-left: 0;
+ padding-left: 0;
+ }
+ }
+ }
+
}
diff --git a/src/scss/breadcrumb/breadcrumb.scss b/src/scss/breadcrumb/breadcrumb.scss
new file mode 100644
index 00000000..90bd084a
--- /dev/null
+++ b/src/scss/breadcrumb/breadcrumb.scss
@@ -0,0 +1,112 @@
+// Callout
+
+//
+// Variables
+//
+
+@import "../variables";
+
+
+//
+// Base styles
+//
+joomla-breadcrumb{
+ nav{
+ display: -ms-flexbox;
+ display: flex;
+ ol{
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ align-items: center;
+ list-style: none;
+ font-size: 1rem;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ a{
+ transition: .3s;
+ }
+ }
+ }
+ .joomla-breadcrumb-item{
+ margin-right: 10px;
+ &:not(:last-child)>a:after {
+ content: ">";
+ margin-left: 8px;
+ color: var(--secondary-color);
+ }
+ a{
+ color: var(--secondary-color);
+ text-decoration: none;
+ display: block;
+ line-height: 1.4rem;
+ white-space: nowrap;
+ max-width: 500px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ &:hover, &:focus{
+ color: var(--inverse-background);
+ }
+ &.active{
+ color: var(--inverse-background);
+ pointer-events: none;
+ }
+ }
+ }
+ .minimize-list{
+ margin-right: 12px;
+ }
+ .minimize-items{
+ position: relative;
+ }
+ .minimize-items-wrapper{
+ background-color: #fff;
+ box-shadow: 0 10px 20px -5px rgba(0, 28, 73, 0.15);
+ display: none;
+ position: absolute;
+ top: calc(100% + 10px);
+ left: -10px;
+
+ &:before{
+ content: "";
+ position: absolute;
+ left: 15px;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-bottom: 4px solid #fff;
+ width: 0;
+ height: 0;
+ top: -4px;
+ }
+ ol{
+ -ms-flex-direction: column;
+ flex-direction: column;
+ max-height: 105px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ position: relative;
+ padding: 0;
+ margin: 0;
+ .joomla-breadcrumb-item{
+ margin-right: 0;
+ >a{
+ padding: 6px 18px;
+ &:hover, &:focus{
+ background-color: var(--button-background);
+ color: var(--inverse-background);
+ }
+ &:after{
+ display: none;
+ }
+ }
+ }
+ }
+ }
+ .items-toggler{
+ color: var(--primary-gradient-color);
+ cursor: pointer;
+ }
+ .minimize-items-wrapper.active {
+ display: block;
+ }
+}
\ No newline at end of file
diff --git a/src/scss/callout/callout.scss b/src/scss/callout/callout.scss
new file mode 100644
index 00000000..7b91ef3f
--- /dev/null
+++ b/src/scss/callout/callout.scss
@@ -0,0 +1,95 @@
+// Callout
+
+//
+// Variables
+//
+
+@import "../variables";
+
+
+//
+// Base styles
+//
+joomla-callout {
+ background-color: var(--inverse-color);
+ box-shadow: 0 1.2px 3.6px -1px rgba(29, 36, 39, 0.1), 0 6.4px 14.4px -3px rgba(29, 36, 39, 0.15);
+ display: none;
+ position: fixed;
+ padding: 1.6rem 1.8rem .8rem 1.8rem;
+ border-radius: 3px;
+ min-height: 50px;
+ width: 300px;
+ z-index: 999999999;
+ &[position="top"]::before{
+ bottom: -20px;
+ top: auto;
+ transform: rotate(-90deg);
+ right: 0;
+ left: 0;
+ }
+ &[position="bottom"]::before{
+ top: -20px;
+ transform: rotate(90deg);
+ right: 0;
+ left: 0;
+ bottom: auto;
+ }
+ &[position="left"]::before{
+ transform: rotate(180deg);
+ right: -20px;
+ left: auto;
+ }
+}
+joomla-callout[expanded] {
+ display: block
+}
+
+joomla-callout::before {
+ content: "";
+ width: 0px;
+ height: 0px;
+ border: .7rem solid transparent;
+ position: absolute;
+ left: -20px;
+ border-right: 0.7rem solid var(--white);
+ top: 0;
+ margin: auto;
+ bottom: 0;
+}
+.callout-title{
+ font-size: 1.143rem;
+ color: var(--primary-text-color);
+ margin-bottom: .8rem;
+}
+.callout-content{
+ font-size: 1rem;
+ line-height: 1.61;
+ color: var(--secondary-text-color);
+}
+.callout-link{
+ display: inline-block;
+ font-size: 1rem;
+ font-weight: 500;
+ line-height: 1.61;
+ color: var(--primary-color);
+ text-decoration: none;
+ margin-top: .65rem;
+}
+.callout-footer{
+ border-top: 1px solid rgba(29, 36, 39, 0.15);
+ margin-top: .2rem;
+}
+.joomla-callout--close{
+ border: 0;
+ color: #605e5c;
+ padding: 0;
+ position: absolute;
+ top: 5px;
+ right: 10px;
+ font-size: 1.4rem;
+ line-height: 1;
+ cursor: pointer;
+ &:focus{
+ outline: none;
+ }
+}
diff --git a/src/scss/card/card.scss b/src/scss/card/card.scss
new file mode 100644
index 00000000..302ad8ce
--- /dev/null
+++ b/src/scss/card/card.scss
@@ -0,0 +1,15 @@
+
+joomla-card {
+ display: flex;
+ width: fit-content;
+ background: #f4f7fc;
+ padding: 5px;
+}
+.card-body {
+ padding: 50px;
+}
+span#dropdownID {
+ position: absolute;
+ right: 10px;
+ bottom: 5px;
+}
\ No newline at end of file
diff --git a/src/scss/collapse/collapse.scss b/src/scss/collapse/collapse.scss
index 3abe92cb..f85b1f87 100644
--- a/src/scss/collapse/collapse.scss
+++ b/src/scss/collapse/collapse.scss
@@ -6,7 +6,6 @@
@import "../variables";
-
//
// Base styles
//
@@ -19,6 +18,55 @@ joomla-collapse {
&[state="open"] {
display: block;
+ .accordion-panel-body{
+ border-bottom: 1px solid #ccd3d7;
+ }
}
}
+.accordion{
+ >div:first-child{
+ border-top: 1px solid #ccd3d7;
+ }
+ &.disabled{
+ pointer-events: none;
+ opacity: 0.5;
+ color: #6c757d;
+ a{
+ color: #6c757d;
+ }
+ }
+}
+.accordion-panel-title{
+ border-bottom: 1px solid #ccd3d7;
+ text-decoration: none;
+ padding: 10px 15px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ transition: .3s;
+ color: var(--secondary-color);
+ .accordion-arrow{
+ pointer-events: none;
+ font-size: 50%;
+ margin-left: 5px;
+ transition: .3s;
+ transform: rotate(0deg);
+ }
+ &[aria-expanded="true"]{
+ color: var(--color);
+ .accordion-arrow{
+ transform: rotate(180deg);
+ }
+ }
+ &:hover{
+ background-color: #edf4fa;
+ }
+ &:focus{
+ box-shadow: 0px 0px 0px 2px #198df8;
+ outline: none;
+ }
+}
+.accordion-panel-body{
+ padding: 15px;
+}
diff --git a/src/scss/dropdown/dropdown.scss b/src/scss/dropdown/dropdown.scss
index 31abd775..c68df085 100644
--- a/src/scss/dropdown/dropdown.scss
+++ b/src/scss/dropdown/dropdown.scss
@@ -11,22 +11,88 @@
// Base styles
//
-
joomla-dropdown {
position: absolute;
- top: 30px;
- left: 0;
- z-index: 1000;
+ top: 100%;
+ z-index: 9999;
display: none;
- box-sizing: border-box;
- min-width: 10rem;
- margin-top: .5rem;
+ min-width: 16.071rem;
+ margin-top: 0.214rem;
font-size: 1rem;
text-align: left;
list-style: none;
- background-color: $dropdown-bg;
- background-clip: padding-box;
- border: $dropdown-border-width $dropdown-border-style rgba($dropdown-border-colour, $dropdown-border-opacity);
+ background-color: #ffffff;
+ box-shadow: 0 30px 60px -10px rgba(0, 28, 73, 0.15);
+ border-radius: 3px;
+ &.j-dropdown-sm {
+ line-height: 1;
+ }
+ ul {
+ list-style: none;
+ }
+ li{
+ position: relative;
+ ul{
+ position: absolute;
+ left: 100%;
+ top: 0;
+ background-color: #ffffff;
+ border: 1px solid #eaeef5;
+ box-shadow: 0 30px 60px -10px rgba(0, 28, 73, 0.15);
+ min-width: 16.071rem;
+ padding: 0;
+ list-style: none;
+ opacity: 0;
+ visibility: hidden;
+ transition: 300ms;
+ }
+ &.left ul{
+ left: auto;
+ right: 100%;
+ }
+ &[open] > ul{
+ visibility: visible;
+ opacity: 1;
+ }
+ &.has-submenu{
+ > a{
+ position: relative;
+ &::after{
+ content: '';
+ position: absolute;
+ right: 10px;
+ top: 50%;
+ transform: translateY(-50%);
+ height: 12px;
+ width: 12px;
+ background-size: contain;
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='7' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.707 6.283a1 1 0 0 1-1.414 0L.7 1.69A.99.99 0 0 1 2.1.29L6 4.19 9.9.29a.99.99 0 0 1 1.4 1.4L6.707 6.283z' fill='%23C1C7D0' fill-rule='nonzero'/%3E%3C/svg%3E");
+ display: inline-block;
+ background-position: center center;
+ background-repeat: no-repeat;
+ transition: 300ms;
+ }
+ }
+ &[open] > a::after{
+ transform: translateY(-50%) rotate(-90deg)
+ }
+ &.left > a{
+ padding-left: 30px;
+ &::after{
+ right: auto;
+ left: 10px;
+ }
+ }
+ &[open].left > a::after{
+ transform: translateY(-50%) rotate(90deg)
+ }
+ }
+ &:last-child {
+ .dropdown-item {
+ border-bottom: 0;
+ }
+ }
+ }
&[expanded] {
display: block;
@@ -34,24 +100,70 @@ joomla-dropdown {
.dropdown-item {
display: block;
- padding: $dropdown-item-padding;
+ padding: 0.571rem 1.143rem;
clear: both;
- font-weight: $font-weight-normal;
- color: $dropdown-item-color;
text-align: inherit;
white-space: nowrap;
background-color: transparent;
border: 0;
-
- &:hover,
+ text-decoration: none;
+ border-bottom: 1px solid var(--bg-color);
+ cursor: pointer;
+ color: var(--text-color);
+ transition: 300ms;
+ min-width: 100%;
+ &:not([href]):not([tabindex]):hover,
+ &:hover{
+ color: var(--primary-color);
+ background-color: var(--primary-lighter-color);
+ .menu-item-title {
+ color: var(--primary-color);
+ }
+ }
+ &:active{
+ background: #ffffff;
+ }
&:focus {
- color: $dropdown-item-color-hover;
- text-decoration: none;
- cursor: pointer;
- background: $dropdown-item-bg-hover;
+ outline: 2px solid var(--primary-color);
+ background: #ffffff;
+ }
+ > p{
+ padding-left: 1.143rem;
+ padding-right: 1.143rem;
+ &:first-child{
+ margin-top: 1.143rem;
+ }
+ &:last-child{
+ margin-bottom: 1.143rem;
+ }
+ }
+ &[position="right"]{
+ right: 0;
+ }
+ &[position="left"] {
+ left: 0;
+ }
+ .menu-item-title {
+ color: var(--secondary-text-color);
+ font-weight: 500;
+ }
+ .text-mute {
+ color: var(--icon-color);
+ font-size: 12px;
}
}
-
+ &[position="right"]{
+ right: 0;
+ }
+ &[position="left"] {
+ left: 0;
+ }
+ &[position="right"]{
+ right: 0;
+ }
+ &[position="left"] {
+ left: 0;
+ }
}
.joomla-dropdown-container {
@@ -59,7 +171,11 @@ joomla-dropdown {
display: inline-flex;
vertical-align: middle;
}
-
+.j-has-dropdown {
+ span {
+ margin-left: .5rem;
+ }
+}
// RTL overrides
html[dir=rtl] joomla-dropdown {
right: 0;
diff --git a/src/scss/flextable/flextable.scss b/src/scss/flextable/flextable.scss
new file mode 100644
index 00000000..bc8945e6
--- /dev/null
+++ b/src/scss/flextable/flextable.scss
@@ -0,0 +1,69 @@
+// Callout
+
+//
+// Variables
+//
+
+@import "../variables";
+
+
+//
+// Base styles
+//
+.flextable{
+ z-index: 10;
+ .flextable-item{
+ border-radius: 3px;
+ box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.15);
+ background-color: #ffffff;
+ padding: 10px;
+ margin-bottom: 10px;
+ }
+ .flextable-main-parent{
+ position: relative;
+ &:before{
+ content: "";
+ position: absolute;
+ top: 0;
+ bottom: 20px;
+ left:20px;
+ width: 1px;
+ background-color: #ccd3d7;
+ z-index: -1;
+ }
+ >.flextable-child{
+ padding-left: 40px;
+ .flextable-item{
+ position: relative;
+ padding: 7px 10px;
+ &:after{
+ content: "";
+ position: absolute;
+ bottom: 20px;
+ left: -20px;
+ width: 40px;
+ background-color: #ccd3d7;
+ z-index: -1;
+ height: 1px;
+ }
+ }
+ }
+ .flextable-child-parent{
+ >.flextable-child{
+ padding-left: 40px;
+ .flextable-item{
+ &:before{
+ content: "";
+ position: absolute;
+ bottom: 20px;
+ left: -20px;
+ background-color: #ccd3d7;
+ z-index: -1;
+ top: -30px;
+ width: 1px;
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/scss/modal/modal.scss b/src/scss/modal/modal.scss
index 62d1ea3d..b91d98ba 100644
--- a/src/scss/modal/modal.scss
+++ b/src/scss/modal/modal.scss
@@ -13,116 +13,81 @@
joomla-modal {
position: fixed;
+ display: flex;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1050;
box-sizing: inherit;
- display: none;
- max-width: 500px;
+ opacity: 0;
+ visibility: hidden;
+ width: 100%;
+ height: 100%;
margin: 10px auto;
- overflow: hidden;
border-radius: 5px;
- outline: 0;
-
- &.jviewport-width10 {
- width: 10vw;
- margin-left: -5vw;
- }
- &.jviewport-width20 {
- width: 20vw;
- margin-left: -10vw;
- }
- &.jviewport-width30 {
- width: 30vw;
- margin-left: -15vw;
- }
- &.jviewport-width40 {
- width: 40vw;
- margin-left: -20vw;
- }
- &.jviewport-width50 {
- width: 50vw;
- margin-left: -25vw;
- }
- &.jviewport-width60 {
- width: 60vw;
- margin-left: -30vw;
- }
- &.jviewport-width70 {
- width: 70vw;
- margin-left: -35vw;
- }
- &.jviewport-width80 {
- width: 80vw;
- margin-left: -40vw;
- }
- &.jviewport-width90 {
- width: 90vw;
- margin-left: -45vw;
- }
- &.jviewport-width100 {
- width: 100vw;
- margin-left: -50vw;
- }
-
+ outline: 0;
+ align-items: center;
+ justify-content: center;
+ &,
+ *{
+ box-sizing: border-box;
+ }
&.show {
- display: block;
- }
-
+ opacity: 1;
+ visibility: visible;
+ }
+
+ &.fade {
+ opacity: 0;
+ transition: .3s;
+ }
+ &.fade.show {
+ opacity: 1;
+ }
.joomla-modal-dialog {
position: relative;
- display: flex;
- flex-direction: column;
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0, 0, 0, .2);
- border-radius: .3rem;
- outline: 0;
-
- &.fade {
- opacity: 0;
- transition: opacity .15s linear;
- }
-
- &.fade.show {
- opacity: 1;
- }
-
+ border-radius: 3px;
+ outline: 0;
+ width: 100%;
+ max-width: 600px;
+ max-height: 90%;
+ overflow-x: hidden;
+ overflow-y: auto;
header {
display: flex;
align-items: center;
justify-content: space-between;
- padding: 15px;
- border-bottom: 1px solid #e9ecef;
-
+ padding: 1.714rem 1.714rem 0.929rem 1.714rem;
+ h5{
+ margin: 0;
+ font-size: 1.714rem;
+ line-height: 1.3rem;
+ }
button {
- float: right;
- padding: 0;
- font-size: 1.5rem;
- font-weight: 700;
- line-height: 1;
- color: #000;
- text-shadow: 0 1px 0 #fff;
- cursor: pointer;
- background: 0 0;
- border: 0;
- opacity: .5;
- -webkit-appearance: none;
+ width: 14px;
+ height: 14px;
+ background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L7 5.585 12.293.293a1 1 0 0 1 1.32-.083l.094.083a1 1 0 0 1 0 1.414L8.415 7l5.292 5.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.414 0L7 8.415l-5.293 5.292a1 1 0 0 1-1.32.083l-.094-.083a1 1 0 0 1 0-1.414L5.585 7 .293 1.707A1 1 0 0 1 .21.387z' fill='%23C1C7D0' fill-rule='nonzero'/%3E%3Cpath d='M-5-5h24v24H-5z'/%3E%3C/g%3E%3C/svg%3E");
+ background-position: center center;
+ background-repeat: no-repeat;
+ text-indent: 9999px;
+ display: inline-block;
+ border:none;
+ background-color: transparent;
+ cursor: pointer;
+ transition: 300ms;
+ &:hover{
+ filter: contrast(0);
+ }
}
-
- h5 {
- margin-bottom: 0;
- font-size: 1.25rem;
- line-height: 1.5;
- }
- }
-
+ }
section {
position: relative;
flex: 1 1 auto;
- padding: 15px;
+ padding: 0 1.714rem;
&.jviewport-height10 {
height: 10vh;
@@ -168,18 +133,80 @@ joomla-modal {
align-items: center;
-ms-flex-pack: end;
justify-content: flex-end;
- padding: 15px;
- border-top: 1px solid #e9ecef;
-
+ padding: 0.929rem 1.714rem 1.714rem 1.714rem;
+ .modal-footer-left-text{
+ flex-grow: 1;
+ text-align: left;
+ color: var(--secondary-color);
+ }
.btn {
margin-left: 10px;
}
}
+ }
+
+ &.bordered header{
+ border-bottom: 2px solid #ecedf0;
+ padding-bottom: 1.714rem;
+ }
+
+ &.bordered footer{
+ border-top: 2px solid #ecedf0;
+ padding-top: 1.714rem;
+ }
+
+ &.bordered .joomla-modal-dialog section{
+ padding-top: 1.143rem;
+ padding-bottom: 1.143rem;
+ }
+
+ &.scrollable .joomla-modal-dialog section{
+ max-height: 320px;
+ overflow: auto;
+ }
+
+ &.jviewport-width10 .joomla-modal-dialog {
+ max-width: 10vw;
+ }
+ &.jviewport-width20 .joomla-modal-dialog {
+ max-width: 20vw;
+ }
+ &.jviewport-width30 .joomla-modal-dialog {
+ max-width: 30vw;
}
+ &.jviewport-width40 .joomla-modal-dialog {
+ max-width: 40vw;
+ }
+ &.jviewport-width50 .joomla-modal-dialog {
+ max-width: 50vw;
+ }
+ &.jviewport-width60 .joomla-modal-dialog {
+ max-width: 60vw;
+ }
+ &.jviewport-width70 .joomla-modal-dialog {
+ max-width: 70vw;
+ }
+ &.jviewport-width80 .joomla-modal-dialog {
+ max-width: 80vw;
+ }
+ &.jviewport-width90 .joomla-modal-dialog {
+ max-width: 90vw;
+ }
+ &.jviewport-width100 .joomla-modal-dialog {
+ max-width: 100vw;
+ }
+
}
.modal-backdrop.show {
- opacity: .5;
+ opacity: 1;
+ &.fade {
+ opacity: 0;
+ transition: .3s;
+ }
+ &.fade.show {
+ opacity: 1;
+ }
}
.modal-backdrop {
position: fixed;
@@ -188,5 +215,5 @@ joomla-modal {
bottom: 0;
left: 0;
z-index: 1040;
- background-color: #000;
+ background-color:var(--overlay);
}
diff --git a/src/scss/pagination/pagination.scss b/src/scss/pagination/pagination.scss
new file mode 100644
index 00000000..6aa591ea
--- /dev/null
+++ b/src/scss/pagination/pagination.scss
@@ -0,0 +1,177 @@
+//
+// Variables
+//
+
+@import "../variables";
+
+joomla-pagination {
+ display: block;
+ nav{
+ display: -ms-flexbox;
+ display: flex;
+ align-items: center;
+ .pagination-label {
+ padding: 0 10px;
+ color: var(--secondary-text-color);
+ }
+ ul{
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ list-style: none;
+ font-size: 1rem;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ .pagination-item {
+ padding: 2px 7px;
+ margin: 0 5px 0 0;
+ color: var(--secondary-text-color);;
+ width: 100%;
+ text-align: center;
+ cursor: pointer;
+ font-size: 1rem;
+
+ &.active,
+ &:not(.disabled):hover,
+ &:active {
+ background: #ffffff;
+ border-radius: 3px;
+ color: var(--primary-text-color);
+ box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.15);
+ }
+ &.dot-item {
+ &:hover {
+ color: var(--primary-color);
+ }
+ }
+ }
+
+ .pagination-item.disabled {
+ cursor: not-allowed;
+ }
+ a{
+ transition: .3s;
+ }
+ }
+ }
+ .has-arrow{
+ text-decoration: none;
+ color: var(--secondary-icon-color);
+ &:hover, &:focus{
+ color: var(--icon-color);
+ }
+ &.first-page, &.next-page{
+ margin-right: 5px;
+ }
+ &.last-page, &.prev-page{
+ margin-left: 5px;
+ }
+ }
+ .pagination-item{
+ a{
+ color: var(--secondary-text-color);
+ text-decoration: none;
+ display: block;
+ line-height: 1.4rem;
+ padding: 1px 6px;
+ border-radius: 3px;
+ &:hover, &:focus, &.active{
+ color: var(--primary-text-color);
+ box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.15);
+ background-color: #ffffff;
+ }
+ }
+ }
+ .minimize-list{
+ margin-right: 12px;
+ }
+ .minimize-items-wrapper{
+ background-color: #fff;
+ box-shadow: 0 10px 20px -5px rgba(0, 28, 73, 0.15);
+ display: none;
+ position: absolute;
+ ul{
+ -ms-flex-direction: column;
+ flex-direction: column;
+ max-height: 105px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ position: relative;
+ &:before{
+ content: "";
+ position: absolute;
+ left: 15px;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-bottom: 4px solid #fff;
+ width: 0;
+ height: 0;
+ top: -4px;
+ }
+ .pagination-item{
+ margin-right: 0;
+ >a{
+ padding: 1px 5px;
+ border-bottom: 1px solid var(--bg-color);
+ border-radius: 0px;
+ &:hover, &:focus{
+ color: var(--primary-color);
+
+ }
+ &:after{
+ display: none;
+ }
+ }
+ }
+ }
+ }
+ .items-toggler{
+ color: var(var(--primary-light-color));
+ cursor: pointer;
+ }
+ .minimize-items-wrapper.active {
+ display: block;
+ }
+}
+
+.dot-item-list {
+ list-style: none;
+ box-shadow: 0 30px 60px -10px rgba(0, 28, 73, 0.15);
+ padding: 5px 0;
+ margin: 0;
+ position: -webkit-sticky;
+ position: sticky;
+ max-height: 180px;
+ overflow-y: auto;
+ border: solid 1px #eaeef5;
+ background: #fff;
+ min-width: 40px;
+ max-width: 40px;
+
+ .pagination-item {
+ color: var(--secondary-text-color);
+ padding: 6px 8px;
+ border-bottom: 1px solid var(--bg-color);
+ cursor: pointer;
+ transition: all .3s ease;
+ width: 100%;
+ line-height: 1;
+ &:hover {
+ color: var(--primary-color);
+ background-color: var(--primary-lighter-color);
+ }
+ }
+}
+.dot-item-list {
+ -ms-overflow-style: none; // IE 10+
+ scrollbar-width: none; // Firefox
+}
+
+.dot-item-list::-webkit-scrollbar {
+ display: none; // Safari and Chrome
+}
+
+.j-pagination-footer {
+ display: flex;
+ justify-content: space-between;
+}
diff --git a/src/scss/progress/progress.scss b/src/scss/progress/progress.scss
new file mode 100644
index 00000000..878d23f9
--- /dev/null
+++ b/src/scss/progress/progress.scss
@@ -0,0 +1,11 @@
+joomla-progress{
+ position: relative;
+ display: none;
+ align-items: center;
+ justify-content: center;
+ .progress-inner-text{
+ position: absolute;
+ width: 100%;
+ text-align: center;
+ }
+}
diff --git a/src/scss/tab/tab.scss b/src/scss/tab/tab.scss
index ce6840a7..95553b78 100644
--- a/src/scss/tab/tab.scss
+++ b/src/scss/tab/tab.scss
@@ -12,130 +12,182 @@
//
joomla-tab {
- display: flex;
- flex-direction: column; }
+ display: flex;
+ flex-direction: column;
+}
joomla-tab > ul {
- display: flex;
- background-color: #f5f5f5;
- border-color: #ccc #ccc currentcolor;
- border-image: none;
- border-radius: .25rem .25rem 0 0;
- border-style: solid solid none;
- border-width: 1px 1px 0;
- box-shadow: 0 1px #fff inset, 0 2px 3px -3px rgba(0, 0, 0, 0.15), 0 -4px 0 rgba(0, 0, 0, 0.05) inset, 0 0 3px rgba(0, 0, 0, 0.04);
- margin: 0;
- padding: 0;
- list-style: outside none none;
- overflow-x: auto;
- overflow-y: hidden;
- white-space: nowrap; }
+ display: flex;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ white-space: nowrap;
+ position: relative;
+ z-index: 1;
+}
joomla-tab a[role=tab] {
- display: block;
- color: #0d1321;
- padding: .75em 1em;
- position: relative;
- box-shadow: 1px 0 0 rgba(0, 0, 0, 0.05);
- text-decoration: none; }
+ display: block;
+ color: var(--secondary-color);
+ padding: .75em 1em;
+ position: relative;
+ text-decoration: none;
+}
joomla-tab a[role=tab][active] {
- background-color: rgba(0, 0, 0, 0.03);
- background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.05) 100%);
- border-left: 0 none;
- border-right: 0 none;
- border-top-left-radius: 0;
- border-top-right-radius: 0;
- box-shadow: 2px 0 1px -1px rgba(0, 0, 0, 0.08) inset, -2px 0 1px -1px rgba(0, 0, 0, 0.08) inset, 0 1px 0 rgba(0, 0, 0, 0.02) inset; }
-
+ color: var(--color);
+}
+joomla-tab a[role=tab]:after {
+ background-color: var(--primary-gradient-color);
+ bottom: -1px;
+ content: "";
+ height: 4px;
+ left: 0;
+ position: absolute;
+ right: 0;
+ opacity: 0;
+ visibility: hidden;
+ transition: .35s;
+ border-top-left-radius: 2px;
+ border-top-right-radius: 2px;
+}
+joomla-tab a[role=tab][active]:hover:after {
+ background-color: var(--primary-gradient-color);
+}
+joomla-tab a[role=tab]:hover:after,
joomla-tab a[role=tab][active]:after {
- background-color: #006898;
- bottom: -1px;
- content: "";
- height: 5px;
- left: 0;
- opacity: .8;
- position: absolute;
- right: 0; }
-
+ opacity: 1;
+ visibility: visible;
+}
+joomla-tab a[role=tab]:hover{
+ color: var(--color);
+}
+joomla-tab a[role=tab]:hover:after{
+ background-color: var(--secondary-icon-color);
+}
+joomla-tab a[role=tab]:focus{
+ outline: none;
+}
+joomla-tab a[role=tab]:focus {
+ outline: var(--primary-color) solid 2px;
+ &::after{
+ opacity: 0;
+ visibility: hidden;
+ }
+}
+joomla-tab a[disabled=true]:hover,
+joomla-tab a[disabled=true]{
+ color: var(--secondary-icon-color);
+ &::before,
+ &::after{
+ display: none
+ }
+ &:active{
+ outline: none;
+ }
+}
joomla-tab > section {
- position: relative;
- display: none;
- background-color: #fefefe;
- border: 1px solid #ccc;
- border-radius: 0 0 .25rem .25rem;
- box-shadow: 0 0 3px rgba(0, 0, 0, 0.04);
- padding: 15px; }
+ position: relative;
+ display: none;
+ padding: 15px;
+ border-radius: 3px;
+ box-shadow: 0 1px 1px 0 rgba(94, 114, 124, 0.05), 0 1px 0 0 rgba(94, 114, 124, 0.03);
+ border: solid 1px var(--secondary-icon-color);
+}
joomla-tab > section[active] {
- display: block; }
+ display: block;
+}
joomla-tab[orientation=vertical] {
- flex-direction: row;
- align-items: flex-start; }
+ flex-direction: row;
+ align-items: flex-start;
+}
joomla-tab[orientation=vertical] > ul {
- flex-direction: column;
- min-width: 30%;
- height: auto;
- border: 1px solid #ccc;
- border-radius: .25rem;
- box-shadow: none;
- overflow: hidden; }
-
-joomla-tab[orientation=vertical] li:last-of-type a {
- border-bottom: 0; }
-
+ flex-direction: column;
+ min-width: 30%;
+ height: auto;
+ border-left: 1px solid var(--secondary-icon-color);
+}
+
+joomla-tab[orientation=vertical] a[disabled=true]:hover,
+joomla-tab[orientation=vertical] a[disabled=true] {
+ color: var(--secondary-icon-color);
+}
joomla-tab[orientation=vertical] a {
- display: block;
- color: #0d1321;
- padding: .75em 1em;
- position: relative;
- border-bottom: 1px solid #ddd;
- box-shadow: none;
- text-decoration: none; }
-
+ display: block;
+ color: var(--secondary-color);
+ padding: .45rem 1rem;
+ position: relative;
+ border-top: 1px solid var(--background);
+ box-shadow: none;
+ text-decoration: none;
+}
+joomla-tab[orientation=vertical] a[role=tab]:after{
+ right: auto;
+ border-radius: 0;
+}
+joomla-tab[orientation=vertical] a:hover {
+ color: var(--secondary-color);
+}
joomla-tab[orientation=vertical] a[active] {
- border-left: 0 none;
- border-right: 0 none;
- background-color: #fff;
- background-image: none;
- box-shadow: none; }
+ box-shadow: 0 4px 8px -3px rgba(29, 36, 39, 0.2);
+ color: var(--color);
+ font-weight: 500;
+}
+joomla-tab[orientation=vertical] a[role=tab]:active {
+ outline: none;
+}
joomla-tab[orientation=vertical] a[active]:after {
- left: -1px;
- width: 5px;
- height: auto;
- top: 0;
- bottom: 0; }
-
-joomla-tab[orientation=vertical] > section {
- border: 0 none;
- box-shadow: none;
- padding: 15px; }
+ left: 0;
+ width: 3px;
+ height: auto;
+ top: 0;
+ bottom: 0;
+}
joomla-tab[view=accordion] > ul {
- flex-direction: column;
- border-radius: .25rem;
- white-space: normal;
- box-shadow: 0 1px #fff inset, 0 0 3px rgba(0, 0, 0, 0.04); }
+ flex-direction: column;
+ border-radius: 0;
+ white-space: normal;
+}
joomla-tab[view=accordion] section {
- display: none;
- padding: 15px; }
+ display: none;
+ padding: 15px;
+}
joomla-tab[view=accordion] section[active] {
- display: block;
- border-bottom: 1px solid #ddd; }
-
-joomla-tab[view=accordion] [active] {
- background-color: #fff; }
+ display: block;
+ border-bottom: 1px solid var(--background);
+}
joomla-tab[view=accordion] a[role=tab] {
- border-bottom: 1px solid #ddd; }
+ border-bottom: 1px solid var(--background);
+}
joomla-tab[view=accordion] a[role=tab][active]:after {
- width: 5px;
- height: 100%;
- top: 0;
- left: 0; }
+ display: none;
+}
+joomla-tab[view=accordion] a[role=tab][active]::before {
+ content: "";
+ background-color: var(--primary-color);
+ width: 3px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: -1px;
+}
+html[dir=rtl],
+body[dir=rtl]{
+ joomla-tab[orientation=vertical] a[role=tab][active]::after {
+ left: auto;
+ right: 0;
+ }
+ joomla-tab[orientation=vertical] > ul {
+ border-left: 0;
+ border-right: 1px solid var(--secondary-icon-color);
+ }
+}
\ No newline at end of file
diff --git a/src/scss/tip/tip.scss b/src/scss/tip/tip.scss
index 0b8da147..0eb6c88d 100644
--- a/src/scss/tip/tip.scss
+++ b/src/scss/tip/tip.scss
@@ -14,7 +14,34 @@
joomla-tip {
position: relative;
display: inline-block;
-
+
+ &[mode=light]{
+ .toggletip-bubble {
+ background: #fff;
+ color: #222;
+ &.top {
+ &::after {
+ border-color: #fff transparent transparent;
+ }
+ }
+ &.left {
+ &::after {
+ border-color: transparent transparent transparent #fff;
+ }
+ }
+ &.right {
+ &::after {
+ border-color: transparent #fff transparent transparent;
+ }
+ }
+ &.bottom {
+ &::after {
+ border-color: transparent transparent #fff;
+ }
+ }
+ }
+ }
+
button {
width: 1.6rem;
height: 1.6rem;
@@ -27,7 +54,7 @@ joomla-tip {
border: 0;
border-radius: 50%;
}
-
+
.toggletip-bubble {
position: absolute;
z-index: 1040;
@@ -42,7 +69,7 @@ joomla-tip {
box-shadow: 0 0 5px rgba(0,0,0,.4);
transition: all ease-in;
animation-duration: .3s;
-
+
&::after {
position: absolute;
top: .6rem;
@@ -52,14 +79,14 @@ joomla-tip {
content: "";
border-style: solid;
}
-
+
&.top {
bottom: 100%;
left: 50%;
margin-bottom: .6rem;
transform: translate(-50%, 0);
animation-name: toggletip-fadeInTop;
-
+
&::after {
top: 100%;
bottom: auto;
@@ -68,16 +95,16 @@ joomla-tip {
border-width: 6px 6px 0;
transform: translateX(-50%);
}
-
+
}
-
+
&.left {
top: 50%;
right: 100%;
margin-right: .6rem;
transform: translate(0, -50%);
animation-name: toggletip-fadeInLeft;
-
+
&::after {
top: 50%;
bottom: auto;
@@ -86,16 +113,16 @@ joomla-tip {
border-width: 6px 0 6px 6px;
transform: translateY(-50%);
}
-
+
}
-
+
&.right {
top: 50%;
left: 100%;
margin-left: .6rem;
transform: translate(0, -50%);
animation-name: toggletip-fadeInRight;
-
+
&::after {
top: 50%;
right: 100%;
@@ -104,16 +131,16 @@ joomla-tip {
border-width: 6px 6px 6px 0;
transform: translateY(-50%);
}
-
+
}
-
+
&.bottom {
top: 100%;
left: 50%;
margin-top: .6rem;
transform: translate(-50%, 0);
animation-name: toggletip-fadeInBottom;
-
+
&::after {
top: -6px;
left: 50%;
@@ -121,11 +148,11 @@ joomla-tip {
border-width: 0 6px 6px;
transform: translateX(-50%);
}
-
+
}
-
+
}
-
+
}
@keyframes toggletip-fadeInRight {
diff --git a/test/accordion-test.html b/test/accordion-test.html
new file mode 100644
index 00000000..58c093ea
--- /dev/null
+++ b/test/accordion-test.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+ Document
+
+
+
+
+ Tab panel 1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+ Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
+ irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+ Tab panel 2
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Duis aute
+ irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
+ cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+
+
+ Tab panel 3
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+ Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
+ irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+
+ No toggle
+
+
+
+
+ Tab panel 1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+ Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
+ irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+ Tab panel 2
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Duis aute
+ irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
+ cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+
+
+ Tab panel 3
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+ Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
+ irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+
+
+
+
diff --git a/test/callout-test.html b/test/callout-test.html
new file mode 100644
index 00000000..59dfda28
--- /dev/null
+++ b/test/callout-test.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+ Document
+
+
+ div
+
+
Show Callout
+
+ link
+ I am callout
+
+
+
+
+
\ No newline at end of file
diff --git a/test/card-test.html b/test/card-test.html
new file mode 100644
index 00000000..d182c53b
--- /dev/null
+++ b/test/card-test.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ Card
+
+
+
+
+
+
+
+ This is some text within a card body.
+
+ Item 1
+ Item 2
+ Item 3
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/modal-test.html b/test/modal-test.html
new file mode 100644
index 00000000..a6423765
--- /dev/null
+++ b/test/modal-test.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ Modal-fix
+
+
+
+ Launch demo modal
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file