linear-react-components-ui 0.4.75-beta.8 → 0.4.76-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +2 -5
- package/.tool-versions +1 -0
- package/.vscode/settings.json +8 -9
- package/README.md +23 -0
- package/config/jest/cssTransform.js +14 -0
- package/config/jest/fileTransform.js +12 -0
- package/config/jest/storageMock.js +40 -0
- package/jest.config.js +18 -0
- package/lib/alerts/alert.spec.js +133 -0
- package/lib/assets/styles/dropdown.scss +25 -2
- package/lib/assets/styles/effects.scss +12 -0
- package/lib/assets/styles/floatMenu.scss +0 -1
- package/lib/assets/styles/multiSelect.scss +105 -0
- package/lib/assets/styles/panel.scss +0 -1
- package/lib/assets/styles/periodpicker.scss +65 -0
- package/lib/assets/styles/popover.scss +9 -11
- package/lib/assets/styles/progress.scss +8 -1
- package/lib/assets/styles/select.scss +1 -0
- package/lib/assets/styles/table.scss +13 -5
- package/lib/assets/styles/tabs.scss +77 -43
- package/lib/avatar/avatar.spec.js +190 -0
- package/lib/avatar/index.js +6 -2
- package/lib/badge/badge.spec.js +127 -0
- package/lib/badge/index.js +3 -5
- package/lib/buttons/buttons.spec.js +504 -0
- package/lib/calendar/calendar.spec.js +171 -0
- package/lib/checkbox/checkbox.spec.js +215 -0
- package/lib/checkbox/index.js +1 -0
- package/lib/dialog/Custom.js +7 -1
- package/lib/dialog/base/index.js +18 -6
- package/lib/dialog/dialog.spec.js +488 -0
- package/lib/dialog/form/index.js +23 -4
- package/lib/drawer/Drawer.js +3 -0
- package/lib/drawer/Drawer.spec.js +258 -0
- package/lib/drawer/Header.js +4 -1
- package/lib/drawer/index.js +4 -1
- package/lib/dropdown/Popup.js +1 -0
- package/lib/dropdown/dropdown.spec.js +168 -0
- package/lib/dropdown/withDropdown.js +10 -4
- package/lib/fieldset/fieldset.spec.js +329 -0
- package/lib/form/Field.js +2 -0
- package/lib/form/FieldNumber.js +10 -2
- package/lib/form/FieldPeriod.js +100 -0
- package/lib/form/form.spec.js +285 -0
- package/lib/form/helpers.js +9 -1
- package/lib/form/index.js +76 -10
- package/lib/form/withFieldHOC.js +2 -0
- package/lib/form/withFormSecurity.js +106 -0
- package/lib/gridlayout/GridRow.js +1 -1
- package/lib/gridlayout/gridLayout.spec.js +169 -0
- package/lib/icons/helper.js +16 -0
- package/lib/icons/icons.spec.js +86 -0
- package/lib/icons/index.js +2 -0
- package/lib/inputs/base/InputTextBase.js +15 -5
- package/lib/inputs/base/base.spec.js +690 -0
- package/lib/inputs/color/color_input.spec.js +174 -0
- package/lib/inputs/color/index.js +2 -2
- package/lib/inputs/date/date.spec.js +344 -0
- package/lib/inputs/date/index.js +7 -6
- package/lib/inputs/mask/Cpf.js +9 -9
- package/lib/inputs/mask/input_mask.spec.js +590 -0
- package/lib/inputs/multiSelect/ActionButtons.js +68 -0
- package/lib/inputs/multiSelect/Dropdown.js +200 -0
- package/lib/inputs/multiSelect/helper.js +18 -0
- package/lib/inputs/multiSelect/index.js +343 -0
- package/lib/inputs/number/BaseNumber.js +1 -1
- package/lib/inputs/number/index.js +7 -5
- package/lib/inputs/number/numberfield.spec.js +215 -0
- package/lib/inputs/period/Dialog.js +38 -0
- package/lib/inputs/period/Dropdown.js +90 -0
- package/lib/inputs/period/PeriodList.js +79 -0
- package/lib/inputs/period/helper.js +118 -0
- package/lib/inputs/period/index.js +490 -0
- package/lib/inputs/search/search_input.spec.js +209 -0
- package/lib/inputs/select/Dropdown.js +4 -4
- package/lib/inputs/select/index.js +26 -3
- package/lib/inputs/select/multiple/index.js +9 -7
- package/lib/inputs/select/select.spec.js +391 -0
- package/lib/inputs/select/simple/index.js +30 -18
- package/lib/inputs/text/textfield.spec.js +215 -0
- package/lib/inputs/textarea/textarea.spec.js +59 -0
- package/lib/internals/withTooltip.js +83 -82
- package/lib/labelMessages/index.js +3 -2
- package/lib/labelMessages/labelMessages.spec.js +176 -0
- package/lib/labels/label.spec.js +162 -0
- package/lib/list/Item.js +3 -3
- package/lib/list/index.js +21 -10
- package/lib/list/list.spec.js +611 -0
- package/lib/menus/float/MenuItem.js +25 -8
- package/lib/menus/float/float-menu.spec.js +221 -0
- package/lib/menus/sidenav/index.js +7 -3
- package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
- package/lib/menus/sidenav/sidenav.spec.js +312 -0
- package/lib/noPermission/index.js +2 -1
- package/lib/panel/panel.spec.js +216 -0
- package/lib/popover/index.js +2 -1
- package/lib/popover/popover.spec.js +146 -0
- package/lib/progress/Bar.js +40 -9
- package/lib/progress/index.js +12 -4
- package/lib/progress/progress.spec.js +86 -0
- package/lib/radio/radio.spec.js +189 -0
- package/lib/spinner/SpinnerLoading.js +14 -24
- package/lib/spinner/index.js +6 -1
- package/lib/spinner/spinner.spec.js +152 -0
- package/lib/split/Split.js +10 -12
- package/lib/split/split.spec.js +151 -0
- package/lib/table/Header.js +3 -1
- package/lib/table/Row.js +2 -5
- package/lib/table/index.js +1 -4
- package/lib/table/table.spec.js +352 -0
- package/lib/tabs/DropdownItems.js +84 -0
- package/lib/tabs/Menu.js +18 -5
- package/lib/tabs/MenuItems.js +7 -7
- package/lib/tabs/Panel.js +1 -3
- package/lib/tabs/index.js +126 -17
- package/lib/tabs/tabs.spec.js +346 -0
- package/lib/toolbar/index.js +8 -4
- package/lib/toolbar/toolbar.spec.js +394 -0
- package/lib/tooltip/index.js +13 -0
- package/lib/tooltip/tooltip.spec.js +203 -0
- package/lib/treeview/Node.js +55 -32
- package/lib/treeview/index.js +30 -3
- package/lib/treeview/treeview.spec.js +261 -0
- package/package.json +19 -9
- package/.DS_Store +0 -0
package/.eslintrc.js
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
"extends": "airbnb",
|
|
3
3
|
"env": {
|
|
4
|
-
"browser": true
|
|
4
|
+
"browser": true,
|
|
5
|
+
"jest": true
|
|
5
6
|
},
|
|
6
7
|
"parser": "babel-eslint",
|
|
7
8
|
"rules": {
|
|
8
9
|
"prefer-destructuring": ["error", {"object": true, "array": false}],
|
|
9
|
-
// overried eslint-config-airbnb defaults
|
|
10
|
-
//react.js
|
|
11
10
|
'react/forbid-prop-types': ['error', { forbid: ['array'] }],
|
|
12
11
|
'react/jsx-first-prop-new-line': ['error', 'multiline-multiprop'],
|
|
13
12
|
'react/jsx-closing-bracket-location': ['error', 'after-props'],
|
|
14
13
|
'react/no-unused-prop-types': ['0'],
|
|
15
|
-
|
|
16
|
-
//react-a11y.js
|
|
17
14
|
"jsx-a11y/anchor-is-valid": [ "error", {
|
|
18
15
|
"components": [ "Link" ],
|
|
19
16
|
"specialLink": [ "hrefLeft", "hrefRight" ],
|
package/.tool-versions
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
nodejs 10.16.0
|
package/.vscode/settings.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files.exclude": {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
3
|
+
"config": true,
|
|
4
|
+
"coverage": true,
|
|
5
|
+
"node_modules": true,
|
|
6
|
+
"scripts": true,
|
|
7
|
+
"yarn.lock": true,
|
|
8
|
+
".eslintrc.js": true,
|
|
9
|
+
".gitignore": true,
|
|
10
|
+
}
|
|
12
11
|
}
|
package/README.md
CHANGED
|
@@ -36,6 +36,29 @@ Compilar para publicação:
|
|
|
36
36
|
|
|
37
37
|
`npm run demo:prod`
|
|
38
38
|
|
|
39
|
+
### Publicação da lib no NPM
|
|
40
|
+
A princípio precisaremos fazer o login no npm para isso rode o comando abaixo:
|
|
41
|
+
|
|
42
|
+
`npm login`
|
|
43
|
+
|
|
44
|
+
Para gerar uma build nova e fazer a publicação no npm rode os comandos a seguir:
|
|
45
|
+
|
|
46
|
+
`npm version <versão>`
|
|
47
|
+
|
|
48
|
+
`npm run publish:npm`
|
|
49
|
+
|
|
50
|
+
Caso queira gerar uma build com versão beta e fazer a publicação no npm rode os comandos da seguinte forma:
|
|
51
|
+
|
|
52
|
+
`npm version <versão>`
|
|
53
|
+
|
|
54
|
+
`npm run publish:npm --tag beta`
|
|
55
|
+
|
|
56
|
+
no local onde esta denominado o campo versão, você deverá colocar a nova versão do pacote, um exemplo: 0.4.75 ou para o caso de uma
|
|
57
|
+
versão beta siga o seguinte exemplo: 0.4.75-beta.1, ficando da seguinte maneira:
|
|
58
|
+
|
|
59
|
+
`npm version 0.4.75`
|
|
60
|
+
|
|
61
|
+
|
|
39
62
|
### Publicar versão de demonstração no Heroku
|
|
40
63
|
|
|
41
64
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// This is a custom Jest transformer turning style imports into empty objects.
|
|
4
|
+
// http://facebook.github.io/jest/docs/en/webpack.html
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
process() {
|
|
8
|
+
return 'module.exports = {};';
|
|
9
|
+
},
|
|
10
|
+
getCacheKey() {
|
|
11
|
+
// The output is always the same.
|
|
12
|
+
return 'cssTransform';
|
|
13
|
+
},
|
|
14
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
// This is a custom Jest transformer turning file imports into filenames.
|
|
6
|
+
// http://facebook.github.io/jest/docs/en/webpack.html
|
|
7
|
+
|
|
8
|
+
module.exports = {
|
|
9
|
+
process(src, filename) {
|
|
10
|
+
return `module.exports = ${JSON.stringify(path.basename(filename))};`;
|
|
11
|
+
},
|
|
12
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export const sessionStorageValueMock = '{"SG_CADASTROS":[{"nome":"Empresas","codigo":"SG_CADASTROS_EMPRESAS","permissoes":[{"codigo":"SG_CADASTROS_EMPRESAS_GRAVAR"},{"codigo":"SG_CADASTROS_EMPRESAS_CONSULTAR"},{"codigo":"SG_CADASTROS_EMPRESAS_EXCLUIR"},{"codigo":"SG_CADASTROS_EMPRESAS_RESTAURAR"},{"codigo":"SG_CADASTROS_EMPRESAS_ATIVAR"},{"codigo":"SG_CADASTROS_EMPRESAS_INATIVAR"}],"descricao":"Gestão das Empresas","itens":[]},{"nome":"Parceiros","codigo":"SG_CADASTROS_PARCEIROS","permissoes":[{"codigo":"SG_CADASTROS_PARCEIROS_GRAVAR"},{"codigo":"SG_CADASTROS_PARCEIROS_CONSULTAR"},{"codigo":"SG_CADASTROS_PARCEIROS_EXCLUIR"},{"codigo":"SG_CADASTROS_PARCEIROS_CONTATOS_GRAVAR"},{"codigo":"SG_CADASTROS_PARCEIROS_CONTATOS_CONSULTAR"},{"codigo":"SG_CADASTROS_PARCEIROS_RESTAURAR"},{"codigo":"SG_CADASTROS_PARCEIROS_ATIVAR"},{"codigo":"SG_CADASTROS_PARCEIROS_INATIVAR"}],"descricao":"Gestão de Pessoas que se relacionam com as Empresas","itens":[]},{"nome":"Produtos","codigo":"SG_CADASTROS_PRODUTOS","permissoes":[],"itens":[{"nome":"Produtos em Promoção","codigo":"SG_CADASTROS_PRODUTOS_EM_PROMOCAO","permissoes":[{"codigo":"SG_CADASTROS_PRODUTOS_EM_PROMOCAO_CONSULTAR"},{"codigo":"SG_CADASTROS_PRODUTOS_EM_PROMOCAO_VISUALIZAR"},{"codigo":"SG_CADASTROS_PRODUTOS_EM_PROMOCAO_NAO_EXPIRADAS"},{"codigo":"SG_CADASTROS_PRODUTOS_EM_PROMOCAO_UPLOAD_IMAGEM"},{"codigo":"SG_CADASTROS_PRODUTOS_EM_PROMOCAO_TROCAR_IMAGEM"}],"descricao":"Manutenção de Produtos em Promoção E-PROMO","itens":[]},{"nome":"Imagens dos Produtos","codigo":"SG_CADASTROS_PRODUTOS_IMAGENS","permissoes":[{"codigo":"SG_CADASTROS_PRODUTOS_IMAGENS_CONSULTAR"},{"codigo":"SG_CADASTROS_PRODUTOS_IMAGENS_VISUALIZAR"},{"codigo":"SG_CADASTROS_PRODUTOS_IMAGENS_INCLUIR"},{"codigo":"SG_CADASTROS_PRODUTOS_IMAGENS_EDITAR"},{"codigo":"SG_CADASTROS_PRODUTOS_IMAGENS_EXCLUIR"}],"descricao":"Manutenção das imagens privadas dos produtos","itens":[]}]},{"nome":"Tabelas Auxiliares","codigo":"SG_CADASTROS_TABELAS_AUXILIARES","permissoes":[],"descricao":"Cadastros de Tabelas Auxliliares","itens":[{"nome":"Grupo vendedor","codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR","permissoes":[{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR_INCLUIR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR_ALTERAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR_PESQUISAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR_VISUALIZAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR_EXCLUIR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR_RESTAURAR"}],"descricao":"Gestão de grupos de vendedores","itens":[]},{"nome":"Cadastro de Setor Colaborador","codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR","permissoes":[{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR_INCLUIR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR_ALTERAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR_PESQUISAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR_VISUALIZAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR_EXCLUIR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR_RESTAURAR"}],"descricao":"Permite o cadastro de setor colaborador","itens":[]},{"nome":"Grupos de empresas","codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA","permissoes":[{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA_INCLUIR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA_ALTERAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA_PESQUISAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA_VISUALIZAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA_EXCLUIR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA_RESTAURAR"}],"descricao":"Gestão de grupos de empresas","itens":[]}]},{"nome":"Cadastro de turnos","codigo":"SG_CADASTROS_TURNO","permissoes":[{"codigo":"SG_CADASTROS_TURNO_INCLUIR"},{"codigo":"SG_CADASTROS_TURNO_ALTERAR"},{"codigo":"SG_CADASTROS_TURNO_PESQUISAR"},{"codigo":"SG_CADASTROS_TURNO_VISUALIZAR"},{"codigo":"SG_CADASTROS_TURNO_EXCLUIR"},{"codigo":"SG_CADASTROS_TURNO_RESTAURAR"}],"descricao":"Permite o cadastro de turnos","itens":[],"codigoPaiExibicao":"SG_ADMINISTRATIVO_TABELAS_SISTEMA"}]}';
|
|
2
|
+
|
|
3
|
+
const storageMock = () => {
|
|
4
|
+
const storage = {
|
|
5
|
+
permissionsStorage: sessionStorageValueMock,
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
return {
|
|
9
|
+
setItem: (key, value) => {
|
|
10
|
+
storage[key] = value || '';
|
|
11
|
+
},
|
|
12
|
+
getItem: key => storage[key] || null,
|
|
13
|
+
removeItem: (key) => {
|
|
14
|
+
delete storage[key];
|
|
15
|
+
},
|
|
16
|
+
get length() {
|
|
17
|
+
return Object.keys(storage).length;
|
|
18
|
+
},
|
|
19
|
+
key: (i) => {
|
|
20
|
+
const keys = Object.keys(storage);
|
|
21
|
+
return keys[i] || null;
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export default storageMock;
|
|
27
|
+
|
|
28
|
+
export const permissionAttrMockAuthorized = onDenied => ({
|
|
29
|
+
module: 'SG_CADASTROS',
|
|
30
|
+
feature: 'SG_CADASTROS_EMPRESAS',
|
|
31
|
+
operation: 'SG_CADASTROS_EMPRESAS_GRAVAR',
|
|
32
|
+
onDenied,
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
export const permissionAttrMockUnauthorized = onDenied => ({
|
|
36
|
+
module: 'SG_COMPRAS_CADASTROS',
|
|
37
|
+
feature: 'SG_COMPRAS_CADASTROS_MOTIVO_BAIXAS_PEDIDOS_COMPRAS',
|
|
38
|
+
operation: 'SG_COMPRAS_CADASTROS_MOTIVO_BAIXAS_PEDIDOS_COMPRAS_INCLUIR',
|
|
39
|
+
onDenied,
|
|
40
|
+
});
|
package/jest.config.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
roots: ['<rootDir>'],
|
|
3
|
+
transform: {
|
|
4
|
+
'\\.(js|jsx)?$': 'babel-jest',
|
|
5
|
+
},
|
|
6
|
+
testMatch: [
|
|
7
|
+
'<rootDir>/src/**/?(*.)(spec|test).{js,jsx,mjs}',
|
|
8
|
+
],
|
|
9
|
+
moduleFileExtensions: ['js', 'jsx', 'json', 'node'],
|
|
10
|
+
testPathIgnorePatterns: ['/node_modules/', '/public/'],
|
|
11
|
+
setupFilesAfterEnv: [
|
|
12
|
+
'@testing-library/jest-dom/extend-expect',
|
|
13
|
+
],
|
|
14
|
+
moduleNameMapper: {
|
|
15
|
+
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '<rootDir>/config/jest/fileTransform.js',
|
|
16
|
+
'.+\\.(css|scss)$': 'identity-obj-proxy',
|
|
17
|
+
},
|
|
18
|
+
};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
4
|
+
|
|
5
|
+
require("babel-polyfill");
|
|
6
|
+
|
|
7
|
+
require("@testing-library/jest-dom");
|
|
8
|
+
|
|
9
|
+
var _react2 = require("@testing-library/react");
|
|
10
|
+
|
|
11
|
+
var _Message = _interopRequireDefault(require("./Message"));
|
|
12
|
+
|
|
13
|
+
var _icons = _interopRequireDefault(require("../icons"));
|
|
14
|
+
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
16
|
+
|
|
17
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
18
|
+
|
|
19
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
20
|
+
|
|
21
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
22
|
+
|
|
23
|
+
var mockAlert = function mockAlert(props) {
|
|
24
|
+
return /*#__PURE__*/_react["default"].createElement(_Message["default"], _extends({
|
|
25
|
+
id: 3,
|
|
26
|
+
message: "Alerta",
|
|
27
|
+
position: "rightTop",
|
|
28
|
+
closeButton: true,
|
|
29
|
+
customClass: "mock-alert",
|
|
30
|
+
timeout: 500
|
|
31
|
+
}, props));
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
describe('Alert', function () {
|
|
35
|
+
describe('Message', function () {
|
|
36
|
+
it('should render correctly', function () {
|
|
37
|
+
var mockHandleClose = jest.fn();
|
|
38
|
+
|
|
39
|
+
var _render = (0, _react2.render)(mockAlert({
|
|
40
|
+
handleClose: mockHandleClose
|
|
41
|
+
})),
|
|
42
|
+
container = _render.container;
|
|
43
|
+
|
|
44
|
+
expect(container.firstChild).toBeTruthy();
|
|
45
|
+
expect(container.firstChild).toHaveTextContent('Alerta');
|
|
46
|
+
});
|
|
47
|
+
it('should close with timeout 500ms', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
48
|
+
var mockHandleClose;
|
|
49
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
50
|
+
while (1) {
|
|
51
|
+
switch (_context.prev = _context.next) {
|
|
52
|
+
case 0:
|
|
53
|
+
mockHandleClose = jest.fn();
|
|
54
|
+
(0, _react2.render)(mockAlert({
|
|
55
|
+
handleClose: mockHandleClose
|
|
56
|
+
}));
|
|
57
|
+
_context.next = 4;
|
|
58
|
+
return (0, _react2.waitFor)(function () {
|
|
59
|
+
return expect(mockHandleClose).toBeCalledTimes(1);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
case 4:
|
|
63
|
+
case "end":
|
|
64
|
+
return _context.stop();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}, _callee);
|
|
68
|
+
})));
|
|
69
|
+
it('should apply custom class', function () {
|
|
70
|
+
var mockHandleClose = jest.fn();
|
|
71
|
+
|
|
72
|
+
var _render2 = (0, _react2.render)(mockAlert({
|
|
73
|
+
handleClose: mockHandleClose
|
|
74
|
+
})),
|
|
75
|
+
container = _render2.container;
|
|
76
|
+
|
|
77
|
+
expect(container.firstChild).toHaveClass('mock-alert');
|
|
78
|
+
});
|
|
79
|
+
it('should render icon', function () {
|
|
80
|
+
var mockHandleClose = jest.fn();
|
|
81
|
+
|
|
82
|
+
var _render3 = (0, _react2.render)(mockAlert({
|
|
83
|
+
handleClose: mockHandleClose,
|
|
84
|
+
icon: /*#__PURE__*/_react["default"].createElement(_icons["default"], {
|
|
85
|
+
name: "user"
|
|
86
|
+
})
|
|
87
|
+
})),
|
|
88
|
+
container = _render3.container,
|
|
89
|
+
getByTestId = _render3.getByTestId;
|
|
90
|
+
|
|
91
|
+
expect(container.querySelector('.-icon')).toContainElement(getByTestId('icon'));
|
|
92
|
+
});
|
|
93
|
+
it('should render icon by iconName', function () {
|
|
94
|
+
var mockHandleClose = jest.fn();
|
|
95
|
+
|
|
96
|
+
var _render4 = (0, _react2.render)(mockAlert({
|
|
97
|
+
handleClose: mockHandleClose,
|
|
98
|
+
iconName: 'user'
|
|
99
|
+
})),
|
|
100
|
+
container = _render4.container,
|
|
101
|
+
getByTestId = _render4.getByTestId;
|
|
102
|
+
|
|
103
|
+
expect(container.querySelector('.-icon')).toContainElement(getByTestId('icon'));
|
|
104
|
+
});
|
|
105
|
+
it('should change icon color', function () {
|
|
106
|
+
var mockHandleClose = jest.fn();
|
|
107
|
+
|
|
108
|
+
var _render5 = (0, _react2.render)(mockAlert({
|
|
109
|
+
handleClose: mockHandleClose,
|
|
110
|
+
iconName: 'user',
|
|
111
|
+
color: 'red'
|
|
112
|
+
})),
|
|
113
|
+
getByTestId = _render5.getByTestId;
|
|
114
|
+
|
|
115
|
+
expect(getByTestId('icon')).toHaveAttribute('fill', 'red');
|
|
116
|
+
});
|
|
117
|
+
it('should fire event on click', function () {
|
|
118
|
+
var mockHandleClose = jest.fn();
|
|
119
|
+
|
|
120
|
+
var _render6 = (0, _react2.render)(mockAlert({
|
|
121
|
+
handleClose: mockHandleClose
|
|
122
|
+
})),
|
|
123
|
+
container = _render6.container,
|
|
124
|
+
getByRole = _render6.getByRole;
|
|
125
|
+
|
|
126
|
+
_react2.fireEvent.click(getByRole('button'));
|
|
127
|
+
|
|
128
|
+
expect(container.querySelector('.close')).toBeInTheDocument();
|
|
129
|
+
expect(container.querySelector('.close-button')).toBeInTheDocument();
|
|
130
|
+
expect(mockHandleClose).toBeCalledTimes(1);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
});
|
|
@@ -76,12 +76,12 @@
|
|
|
76
76
|
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
|
|
77
77
|
animation: revealelement 0.3s forwards ease-in-out;
|
|
78
78
|
margin-right: 7px;
|
|
79
|
-
> .
|
|
79
|
+
> .floatmenuitem {
|
|
80
80
|
text-decoration: none;
|
|
81
81
|
color: #666666;
|
|
82
82
|
text-align: center;
|
|
83
83
|
}
|
|
84
|
-
> .
|
|
84
|
+
> .floatmenuitem .-items {
|
|
85
85
|
border: solid 1px $default-hover-color;
|
|
86
86
|
margin: 0 5px 5px 0;
|
|
87
87
|
font-size: 12px;
|
|
@@ -106,6 +106,29 @@
|
|
|
106
106
|
transition: all 0.2s ease-in-out;
|
|
107
107
|
&:hover {
|
|
108
108
|
background: $default-hover-color;
|
|
109
|
+
|
|
110
|
+
> .floatmenudropdown {
|
|
111
|
+
visibility: visible;
|
|
112
|
+
pointer-events: initial;
|
|
113
|
+
opacity: 1;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
> .floatmenudropdown {
|
|
117
|
+
position: absolute;
|
|
118
|
+
padding: 0;
|
|
119
|
+
top: 5px;
|
|
120
|
+
right: 5px;
|
|
121
|
+
visibility: hidden;
|
|
122
|
+
opacity: 0;
|
|
123
|
+
pointer-events: none;
|
|
124
|
+
}
|
|
125
|
+
> .floatmenulink {
|
|
126
|
+
display: flex;
|
|
127
|
+
flex-direction: column;
|
|
128
|
+
align-items: center;
|
|
129
|
+
justify-content: center;
|
|
130
|
+
flex: 1;
|
|
131
|
+
width: 100%;
|
|
109
132
|
}
|
|
110
133
|
&.iconcontainer {
|
|
111
134
|
padding-bottom: 10px;
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
@keyframes slideInFromTop {
|
|
3
3
|
0% {
|
|
4
4
|
transform: translateY(-60%);
|
|
5
|
+
-webkit-font-smoothing: subpixel-antialiased;
|
|
5
6
|
}
|
|
6
7
|
30% {
|
|
7
8
|
transform: translateY(0);
|
|
9
|
+
-webkit-font-smoothing: subpixel-antialiased;
|
|
8
10
|
}
|
|
9
11
|
}
|
|
10
12
|
|
|
@@ -719,3 +721,13 @@
|
|
|
719
721
|
-webkit-transform: scale(1.1);
|
|
720
722
|
transform: scale(1.1);
|
|
721
723
|
}
|
|
724
|
+
|
|
725
|
+
// SlideWithPosition
|
|
726
|
+
@keyframes slideWithPositionFromLeft {
|
|
727
|
+
from {
|
|
728
|
+
left: -100%;
|
|
729
|
+
}
|
|
730
|
+
to {
|
|
731
|
+
left: 100%;
|
|
732
|
+
}
|
|
733
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
@import "commons.scss";
|
|
2
|
+
@import "effects.scss";
|
|
3
|
+
.multiSelect-component {
|
|
4
|
+
width: 100%;
|
|
5
|
+
display: block;
|
|
6
|
+
.selectwrapper {
|
|
7
|
+
height: auto;
|
|
8
|
+
|
|
9
|
+
> .multiselect {
|
|
10
|
+
flex-wrap: wrap;
|
|
11
|
+
position: relative;
|
|
12
|
+
> .textinput {
|
|
13
|
+
order: 1;
|
|
14
|
+
display: inline-block;
|
|
15
|
+
}
|
|
16
|
+
> .selecteditem {
|
|
17
|
+
font-size: 14px;
|
|
18
|
+
position: absolute;
|
|
19
|
+
top: 50%;
|
|
20
|
+
left: 10px;
|
|
21
|
+
transform: translateY(-50%);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
> .actionbutton {
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
cursor: pointer;
|
|
29
|
+
margin: 0 3px;
|
|
30
|
+
padding: 0 3px;
|
|
31
|
+
|
|
32
|
+
> svg {
|
|
33
|
+
margin: 0;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.multiSelect-component > .dropdown {
|
|
40
|
+
animation: 0.5s ease-in 0s 1 slideDown;
|
|
41
|
+
background-color: #fff;
|
|
42
|
+
border: $component-border-color;
|
|
43
|
+
@extend %component-menu-dropdown;
|
|
44
|
+
display: grid;
|
|
45
|
+
grid-template-rows: auto;
|
|
46
|
+
height: auto;
|
|
47
|
+
overflow-y: auto;
|
|
48
|
+
overflow-x: hidden;
|
|
49
|
+
position: absolute;
|
|
50
|
+
z-index: 9999;
|
|
51
|
+
> .filtercontainer {
|
|
52
|
+
position: relative;
|
|
53
|
+
display: grid;
|
|
54
|
+
grid-template-columns: 1fr 20px;
|
|
55
|
+
border: 1px solid $component-border-color;
|
|
56
|
+
margin: 4px;
|
|
57
|
+
> .filterinput {
|
|
58
|
+
border: 0;
|
|
59
|
+
font-size: 13px;
|
|
60
|
+
text-indent: 4px;
|
|
61
|
+
padding: 10px 5px;
|
|
62
|
+
}
|
|
63
|
+
> .filtericon {
|
|
64
|
+
position: absolute;
|
|
65
|
+
right: 5px;
|
|
66
|
+
top: 10px;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
> .listcontainer > .item {
|
|
70
|
+
margin: 0;
|
|
71
|
+
padding: 6px 10px;
|
|
72
|
+
display: flex;
|
|
73
|
+
cursor: pointer;
|
|
74
|
+
justify-content: stretch;
|
|
75
|
+
border-bottom: solid 1px #e1e1e1;
|
|
76
|
+
&:last-child {
|
|
77
|
+
border-bottom: none;
|
|
78
|
+
}
|
|
79
|
+
&:hover {
|
|
80
|
+
background-color: $default-hover-color;
|
|
81
|
+
}
|
|
82
|
+
&.-selected {
|
|
83
|
+
background-color: $default-hover-color;
|
|
84
|
+
}
|
|
85
|
+
.menubutton {
|
|
86
|
+
background-color: transparent;
|
|
87
|
+
border: 0;
|
|
88
|
+
padding: 0;
|
|
89
|
+
margin: 0;
|
|
90
|
+
display: flex;
|
|
91
|
+
justify-content: space-between;
|
|
92
|
+
align-items: center;
|
|
93
|
+
width: 100%;
|
|
94
|
+
> .checkboxicon {
|
|
95
|
+
margin-right: 5px;
|
|
96
|
+
}
|
|
97
|
+
> .label {
|
|
98
|
+
flex-grow: 1;
|
|
99
|
+
}
|
|
100
|
+
> .menuicon {
|
|
101
|
+
margin-right: 5px;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
@import "commons.scss";
|
|
2
|
+
@import "effects.scss";
|
|
3
|
+
.periodpicker-component {
|
|
4
|
+
height: auto;
|
|
5
|
+
position: relative;
|
|
6
|
+
display: flex;
|
|
7
|
+
border-radius: 2px;
|
|
8
|
+
border: 1px solid #dae1e8;
|
|
9
|
+
|
|
10
|
+
.inputwrapper {
|
|
11
|
+
border: none;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.separation_icon {
|
|
15
|
+
font-size: 16px;
|
|
16
|
+
flex: 0 0 10px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.calendar-button {
|
|
20
|
+
flex: 0 0 20px;
|
|
21
|
+
padding: 4px;
|
|
22
|
+
border: none;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.input-base-component {
|
|
26
|
+
flex: 1;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.dropdown-period>.item {
|
|
32
|
+
margin: 0;
|
|
33
|
+
padding: 6px 10px;
|
|
34
|
+
display: flex;
|
|
35
|
+
cursor: pointer;
|
|
36
|
+
justify-content: stretch;
|
|
37
|
+
border-bottom: solid 1px #e1e1e1;
|
|
38
|
+
|
|
39
|
+
&:hover {
|
|
40
|
+
background-color: $default-hover-color;
|
|
41
|
+
}
|
|
42
|
+
&.-selected {
|
|
43
|
+
background-color: $default-hover-color;
|
|
44
|
+
}
|
|
45
|
+
&.-disabled {
|
|
46
|
+
@extend %component-menu-disabled;
|
|
47
|
+
&:hover {
|
|
48
|
+
background-color: transparent;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.dropdown-period {
|
|
54
|
+
width: 100%;
|
|
55
|
+
/* animation: 0.5s ease-in 0s 1 slideDown; */
|
|
56
|
+
background-color: #FFF;
|
|
57
|
+
border: #dae1e8;
|
|
58
|
+
display: grid;
|
|
59
|
+
grid-template-rows: auto;
|
|
60
|
+
height: auto;
|
|
61
|
+
overflow-y: auto;
|
|
62
|
+
overflow-x: hidden;
|
|
63
|
+
/* margin-top: 2px; */
|
|
64
|
+
z-index: 99999999999;
|
|
65
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.popover-component {
|
|
2
2
|
> .buttonicon {
|
|
3
|
-
width: auto!important;
|
|
4
|
-
height: auto!important;
|
|
3
|
+
width: auto !important;
|
|
4
|
+
height: auto !important;
|
|
5
5
|
margin-top: 0 !important;
|
|
6
6
|
}
|
|
7
7
|
&:hover {
|
|
@@ -17,15 +17,13 @@
|
|
|
17
17
|
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
|
|
18
18
|
max-width: 350px;
|
|
19
19
|
padding: 10px 12px;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
margin: 10px 0 5px;
|
|
28
|
-
}
|
|
20
|
+
.title:first-child {
|
|
21
|
+
margin-top: 0px;
|
|
22
|
+
}
|
|
23
|
+
> .title {
|
|
24
|
+
font-weight: bold;
|
|
25
|
+
width: 100%;
|
|
26
|
+
margin: 10px 0 5px;
|
|
29
27
|
}
|
|
30
28
|
&.-dark {
|
|
31
29
|
background: #777;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
@import "colors.scss";
|
|
2
2
|
@import "commons.scss";
|
|
3
|
+
|
|
3
4
|
.container-progress {
|
|
4
5
|
display: flex;
|
|
5
6
|
overflow: hidden;
|
|
6
|
-
height: 24px;
|
|
7
7
|
margin-bottom: 20px;
|
|
8
8
|
background-color: #f5f5f5;
|
|
9
9
|
border-radius: 4px;
|
|
10
10
|
-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
|
|
11
11
|
box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
|
|
12
|
+
position: relative;
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
.bar {
|
|
@@ -50,6 +51,12 @@
|
|
|
50
51
|
-o-animation: progress-bar-stripes 2s linear infinite;
|
|
51
52
|
animation: progress-bar-stripes 2s linear infinite;
|
|
52
53
|
}
|
|
54
|
+
&.-indeterminate {
|
|
55
|
+
animation: slideWithPositionFromLeft infinite;
|
|
56
|
+
position: absolute;
|
|
57
|
+
left: -100%;
|
|
58
|
+
top: 0;
|
|
59
|
+
}
|
|
53
60
|
>.progressbar-label {
|
|
54
61
|
display: flex;
|
|
55
62
|
align-items: center;
|