linear-react-components-ui 0.4.75 → 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.
Files changed (128) hide show
  1. package/.eslintrc.js +2 -5
  2. package/.tool-versions +1 -0
  3. package/.vscode/settings.json +8 -9
  4. package/README.md +23 -0
  5. package/config/jest/cssTransform.js +14 -0
  6. package/config/jest/fileTransform.js +12 -0
  7. package/config/jest/storageMock.js +40 -0
  8. package/jest.config.js +18 -0
  9. package/lib/alerts/alert.spec.js +133 -0
  10. package/lib/assets/styles/dropdown.scss +25 -2
  11. package/lib/assets/styles/effects.scss +12 -0
  12. package/lib/assets/styles/floatMenu.scss +0 -1
  13. package/lib/assets/styles/multiSelect.scss +105 -0
  14. package/lib/assets/styles/panel.scss +0 -1
  15. package/lib/assets/styles/periodpicker.scss +65 -0
  16. package/lib/assets/styles/popover.scss +9 -11
  17. package/lib/assets/styles/progress.scss +8 -1
  18. package/lib/assets/styles/select.scss +1 -0
  19. package/lib/assets/styles/table.scss +13 -5
  20. package/lib/assets/styles/tabs.scss +77 -43
  21. package/lib/assets/styles/treeview.scss +32 -0
  22. package/lib/avatar/avatar.spec.js +190 -0
  23. package/lib/avatar/index.js +6 -2
  24. package/lib/badge/badge.spec.js +127 -0
  25. package/lib/badge/index.js +3 -5
  26. package/lib/buttons/DefaultButton.js +7 -1
  27. package/lib/buttons/buttons.spec.js +504 -0
  28. package/lib/calendar/calendar.spec.js +171 -0
  29. package/lib/checkbox/Label.js +37 -0
  30. package/lib/checkbox/checkbox.spec.js +215 -0
  31. package/lib/checkbox/index.js +21 -6
  32. package/lib/dialog/Custom.js +7 -1
  33. package/lib/dialog/base/index.js +18 -6
  34. package/lib/dialog/dialog.spec.js +488 -0
  35. package/lib/dialog/form/index.js +23 -4
  36. package/lib/drawer/Drawer.js +3 -0
  37. package/lib/drawer/Drawer.spec.js +258 -0
  38. package/lib/drawer/Header.js +4 -1
  39. package/lib/drawer/index.js +4 -1
  40. package/lib/dropdown/Popup.js +1 -0
  41. package/lib/dropdown/dropdown.spec.js +168 -0
  42. package/lib/dropdown/withDropdown.js +10 -4
  43. package/lib/fieldset/fieldset.spec.js +329 -0
  44. package/lib/form/Field.js +2 -0
  45. package/lib/form/FieldNumber.js +10 -2
  46. package/lib/form/FieldPeriod.js +100 -0
  47. package/lib/form/form.spec.js +285 -0
  48. package/lib/form/helpers.js +9 -1
  49. package/lib/form/index.js +76 -10
  50. package/lib/form/withFieldHOC.js +2 -0
  51. package/lib/form/withFormSecurity.js +106 -0
  52. package/lib/gridlayout/GridRow.js +1 -1
  53. package/lib/gridlayout/gridLayout.spec.js +169 -0
  54. package/lib/icons/helper.js +16 -0
  55. package/lib/icons/icons.spec.js +86 -0
  56. package/lib/icons/index.js +2 -0
  57. package/lib/inputs/base/InputTextBase.js +15 -5
  58. package/lib/inputs/base/base.spec.js +690 -0
  59. package/lib/inputs/color/color_input.spec.js +174 -0
  60. package/lib/inputs/color/index.js +2 -2
  61. package/lib/inputs/date/date.spec.js +344 -0
  62. package/lib/inputs/date/index.js +7 -6
  63. package/lib/inputs/mask/Cpf.js +9 -9
  64. package/lib/inputs/mask/input_mask.spec.js +590 -0
  65. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  66. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  67. package/lib/inputs/multiSelect/helper.js +18 -0
  68. package/lib/inputs/multiSelect/index.js +343 -0
  69. package/lib/inputs/number/BaseNumber.js +1 -1
  70. package/lib/inputs/number/index.js +7 -5
  71. package/lib/inputs/number/numberfield.spec.js +215 -0
  72. package/lib/inputs/period/Dialog.js +38 -0
  73. package/lib/inputs/period/Dropdown.js +90 -0
  74. package/lib/inputs/period/PeriodList.js +79 -0
  75. package/lib/inputs/period/helper.js +118 -0
  76. package/lib/inputs/period/index.js +490 -0
  77. package/lib/inputs/search/search_input.spec.js +209 -0
  78. package/lib/inputs/select/Dropdown.js +4 -4
  79. package/lib/inputs/select/index.js +26 -3
  80. package/lib/inputs/select/multiple/index.js +9 -7
  81. package/lib/inputs/select/select.spec.js +391 -0
  82. package/lib/inputs/select/simple/index.js +30 -18
  83. package/lib/inputs/text/textfield.spec.js +215 -0
  84. package/lib/inputs/textarea/textarea.spec.js +59 -0
  85. package/lib/internals/withTooltip.js +83 -82
  86. package/lib/labelMessages/index.js +3 -2
  87. package/lib/labelMessages/labelMessages.spec.js +176 -0
  88. package/lib/labels/label.spec.js +162 -0
  89. package/lib/list/Item.js +3 -3
  90. package/lib/list/index.js +21 -10
  91. package/lib/list/list.spec.js +611 -0
  92. package/lib/menus/float/MenuItem.js +25 -8
  93. package/lib/menus/float/float-menu.spec.js +221 -0
  94. package/lib/menus/sidenav/index.js +7 -3
  95. package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
  96. package/lib/menus/sidenav/sidenav.spec.js +312 -0
  97. package/lib/noPermission/index.js +2 -1
  98. package/lib/panel/panel.spec.js +216 -0
  99. package/lib/popover/index.js +2 -1
  100. package/lib/popover/popover.spec.js +146 -0
  101. package/lib/progress/Bar.js +40 -9
  102. package/lib/progress/index.js +12 -4
  103. package/lib/progress/progress.spec.js +86 -0
  104. package/lib/radio/radio.spec.js +189 -0
  105. package/lib/spinner/SpinnerLoading.js +14 -24
  106. package/lib/spinner/index.js +6 -1
  107. package/lib/spinner/spinner.spec.js +152 -0
  108. package/lib/split/Split.js +10 -12
  109. package/lib/split/split.spec.js +151 -0
  110. package/lib/table/Header.js +3 -1
  111. package/lib/table/Row.js +2 -5
  112. package/lib/table/index.js +1 -4
  113. package/lib/table/table.spec.js +352 -0
  114. package/lib/tabs/DropdownItems.js +84 -0
  115. package/lib/tabs/Menu.js +18 -5
  116. package/lib/tabs/MenuItems.js +7 -7
  117. package/lib/tabs/Panel.js +1 -3
  118. package/lib/tabs/index.js +126 -17
  119. package/lib/tabs/tabs.spec.js +346 -0
  120. package/lib/toolbar/index.js +8 -4
  121. package/lib/toolbar/toolbar.spec.js +394 -0
  122. package/lib/tooltip/index.js +13 -0
  123. package/lib/tooltip/tooltip.spec.js +203 -0
  124. package/lib/treeview/Node.js +288 -18
  125. package/lib/treeview/index.js +448 -35
  126. package/lib/treeview/treeview.spec.js +261 -0
  127. package/package.json +19 -9
  128. 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
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "files.exclude": {
3
- "__error": "Not found",
4
- "config": true,
5
- "coverage": true,
6
- "node_modules": true,
7
- "scripts": true,
8
- "yarn.lock": true,
9
- ".eslintrc.js": false,
10
- ".gitignore": false,
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
- > .floatmenulink {
79
+ > .floatmenuitem {
80
80
  text-decoration: none;
81
81
  color: #666666;
82
82
  text-align: center;
83
83
  }
84
- > .floatmenulink .-items {
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
+ }
@@ -15,4 +15,3 @@
15
15
  }
16
16
  }
17
17
  }
18
-
@@ -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
+ }
@@ -48,7 +48,6 @@
48
48
  }
49
49
  > .panel-content {
50
50
  height: auto;
51
- overflow: auto;
52
51
  padding: 15px;
53
52
  }
54
53
  }
@@ -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
- > .text {
21
- .title:first-child {
22
- margin-top: 0px;
23
- }
24
- > .title {
25
- font-weight: bold;
26
- width: 100%;
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;
@@ -3,6 +3,7 @@
3
3
  .select-component {
4
4
  width: 100%;
5
5
  display: block;
6
+ position: relative;
6
7
  .selectwrapper {
7
8
  height: auto;
8
9
  }