@dhis2-ui/file-input 9.5.0-alpha.1 → 9.6.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/build/cjs/file-input/features/accepts_multiple_files/index.js +4 -6
- package/build/cjs/file-input/features/can_be_blurred/index.js +4 -4
- package/build/cjs/file-input/features/can_be_changed/index.js +4 -6
- package/build/cjs/file-input/features/can_be_focused/index.js +4 -4
- package/build/cjs/file-input/features/common/index.js +3 -3
- package/build/cjs/file-input-field/features/can_be_required/index.js +3 -3
- package/build/cjs/file-input-field/features/has_default_button_label/index.js +3 -3
- package/build/cjs/file-input-field/features/has_default_placeholder/index.js +3 -3
- package/build/cjs/file-input-field-with-list/features/common/index.js +3 -3
- package/build/cjs/file-input-field-with-list/features/deduplicates_the_file_list/index.js +4 -6
- package/build/cjs/file-input-field-with-list/features/disables_button_when_full/index.js +4 -4
- package/build/cjs/file-input-field-with-list/features/displays_files_in_a_list/index.js +2 -4
- package/build/cjs/file-input-field-with-list/features/files_can_be_removed/index.js +3 -5
- package/build/cjs/file-input-field-with-list/features/has_default_button_label/index.js +3 -3
- package/build/cjs/file-input-field-with-list/features/has_default_placeholder/index.js +3 -3
- package/build/cjs/file-input-field-with-list/features/has_default_remove_text/index.js +3 -3
- package/build/cjs/file-list/features/accepts_cancel_text/index.js +3 -3
- package/build/cjs/file-list/features/accepts_label/index.js +3 -3
- package/build/cjs/file-list/features/accepts_remove_text/index.js +3 -3
- package/build/cjs/file-list/features/can_be_removed/index.js +4 -4
- package/build/cjs/file-list/features/file-list-item-accepts_children/index.js +3 -3
- package/build/cjs/file-list/features/file-list-placeholder-accepts_children/index.js +3 -3
- package/build/cjs/file-list/features/loading_can_be_cancelled/index.js +4 -4
- package/build/cjs/file-list/file-list-item.js +20 -7
- package/build/cjs/locales/lo/translations.json +2 -2
- package/build/es/file-input/features/accepts_multiple_files/index.js +1 -2
- package/build/es/file-input/features/can_be_blurred/index.js +1 -1
- package/build/es/file-input/features/can_be_changed/index.js +1 -2
- package/build/es/file-input/features/can_be_focused/index.js +1 -1
- package/build/es/file-input/features/common/index.js +1 -1
- package/build/es/file-input-field/features/can_be_required/index.js +1 -1
- package/build/es/file-input-field/features/has_default_button_label/index.js +1 -1
- package/build/es/file-input-field/features/has_default_placeholder/index.js +1 -1
- package/build/es/file-input-field-with-list/features/common/index.js +1 -1
- package/build/es/file-input-field-with-list/features/deduplicates_the_file_list/index.js +1 -2
- package/build/es/file-input-field-with-list/features/disables_button_when_full/index.js +1 -1
- package/build/es/file-input-field-with-list/features/displays_files_in_a_list/index.js +1 -2
- package/build/es/file-input-field-with-list/features/files_can_be_removed/index.js +1 -2
- package/build/es/file-input-field-with-list/features/has_default_button_label/index.js +1 -1
- package/build/es/file-input-field-with-list/features/has_default_placeholder/index.js +1 -1
- package/build/es/file-input-field-with-list/features/has_default_remove_text/index.js +1 -1
- package/build/es/file-list/features/accepts_cancel_text/index.js +1 -1
- package/build/es/file-list/features/accepts_label/index.js +1 -1
- package/build/es/file-list/features/accepts_remove_text/index.js +1 -1
- package/build/es/file-list/features/can_be_removed/index.js +1 -1
- package/build/es/file-list/features/file-list-item-accepts_children/index.js +1 -1
- package/build/es/file-list/features/file-list-placeholder-accepts_children/index.js +1 -1
- package/build/es/file-list/features/loading_can_be_cancelled/index.js +1 -1
- package/build/es/file-list/file-list-item.js +20 -7
- package/build/es/locales/lo/translations.json +2 -2
- package/package.json +8 -8
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
(0, _steps.Given)('a FileInput with multiple and onChange handler is rendered', () => {
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a FileInput with multiple and onChange handler is rendered', () => {
|
|
8
6
|
cy.visitStory('FileInput', 'With onChange and multiple');
|
|
9
7
|
});
|
|
10
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.When)('the user selected multiple files', () => {
|
|
11
9
|
cy.get('[data-test="dhis2-uicore-fileinput"] input').uploadMultipleFiles([{
|
|
12
10
|
fileType: 'md',
|
|
13
11
|
fixture: 'FileInput/file.md'
|
|
@@ -16,7 +14,7 @@ var _steps = require("cypress-cucumber-preprocessor/steps");
|
|
|
16
14
|
fixture: 'FileInput/file.txt'
|
|
17
15
|
}], true);
|
|
18
16
|
});
|
|
19
|
-
(0,
|
|
17
|
+
(0, _cypressCucumberPreprocessor.Then)("the onChange handler's payload contains multiple files", () => {
|
|
20
18
|
cy.window().should(win => {
|
|
21
19
|
const calls = win.onChange.getCalls();
|
|
22
20
|
const callArgs = calls[0].args;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('an FileInput with initialFocus and onBlur handler is rendered', () => {
|
|
6
6
|
cy.visitStory('FileInput', 'With initialFocus and onBlur');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.When)('the FileInput is blurred', () => {
|
|
9
9
|
cy.focused();
|
|
10
10
|
cy.get('[data-test="dhis2-uicore-fileinput"] button').blur();
|
|
11
11
|
});
|
|
12
|
-
(0,
|
|
12
|
+
(0, _cypressCucumberPreprocessor.Then)('the onBlur handler is called', () => {
|
|
13
13
|
cy.window().then(win => {
|
|
14
14
|
cy.get('[data-test="dhis2-uicore-fileinput"] input').should(fileInput => {
|
|
15
15
|
expect(win.onBlur).to.be.calledWith({
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
(0, _steps.Given)('a FileInput with onChange handler is rendered', () => {
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a FileInput with onChange handler is rendered', () => {
|
|
8
6
|
cy.visitStory('FileInput', 'With onChange');
|
|
9
7
|
});
|
|
10
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.When)('a file is selected', () => {
|
|
11
9
|
cy.get('[data-test="dhis2-uicore-fileinput"] input').uploadSingleFile('.md', 'FileInput/file.md');
|
|
12
10
|
});
|
|
13
|
-
(0,
|
|
11
|
+
(0, _cypressCucumberPreprocessor.Then)("the onChange handler's payload contains the file", () => {
|
|
14
12
|
cy.window().should(win => {
|
|
15
13
|
const calls = win.onChange.getCalls();
|
|
16
14
|
const callArgs = calls[0].args;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a FileInput with onFocus handler is rendered', () => {
|
|
6
6
|
cy.visitStory('FileInput', 'With onFocus');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.When)('the FileInput is focused', () => {
|
|
9
9
|
cy.get('[data-test="dhis2-uicore-fileinput"] button').focus();
|
|
10
10
|
});
|
|
11
|
-
(0,
|
|
11
|
+
(0, _cypressCucumberPreprocessor.Then)('the onFocus handler is called', () => {
|
|
12
12
|
cy.window().then(win => {
|
|
13
13
|
cy.get('[data-test="dhis2-uicore-fileinput"] input').should(fileInput => {
|
|
14
14
|
expect(win.onFocus).to.be.calledWith({
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('the FileInput does not have any files', () => {
|
|
6
6
|
cy.get('[data-test="dhis2-uicore-fileinput"] input').then($input => {
|
|
7
7
|
const files = $input[0].files;
|
|
8
8
|
expect(files).to.have.lengthOf(0);
|
|
9
9
|
});
|
|
10
10
|
});
|
|
11
|
-
(0,
|
|
11
|
+
(0, _cypressCucumberPreprocessor.Then)('the onChange handler is called', () => {
|
|
12
12
|
cy.window().should(win => {
|
|
13
13
|
const calls = win.onChange.getCalls();
|
|
14
14
|
expect(calls).to.have.lengthOf(1);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a FileInputField with label and a required flag is rendered', () => {
|
|
6
6
|
cy.visitStory('FileInputField', 'With label and required');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.Then)('the required indicator is visible', () => {
|
|
9
9
|
cy.get('[data-test="dhis2-uicore-label-required"]').should('be.visible');
|
|
10
10
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a default FileInputField is rendered', () => {
|
|
6
6
|
cy.visitStory('FileInputField', 'Default');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.Then)('the default button label is visible', () => {
|
|
9
9
|
cy.contains('Upload a file').should('be.visible');
|
|
10
10
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a default FileInputField is rendered', () => {
|
|
6
6
|
cy.visitStory('FileInputField', 'Default');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.Then)('the default placeholder is visible', () => {
|
|
9
9
|
cy.contains('No file uploaded yet').should('be.visible');
|
|
10
10
|
});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a FileInputFieldWithList with multiple files is rendered', () => {
|
|
6
6
|
cy.visitStory('FileInputFieldWithList', 'Multiple files - with files');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.Then)('the onChange handler is called', () => {
|
|
9
9
|
cy.window().should(win => {
|
|
10
10
|
const calls = win.onChange.getCalls();
|
|
11
11
|
expect(calls).to.have.lengthOf(1);
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
(0, _steps.Given)('the list contains the file duplicate.md', () => {
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('the list contains the file duplicate.md', () => {
|
|
8
6
|
cy.contains('duplicate.md').should('have.lengthOf', 1).should('have.class', 'label').closest('[data-test="dhis2-uicore-filelistitem"]').should('have.lengthOf', 1);
|
|
9
7
|
});
|
|
10
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.When)('the file duplicate.md is selected', () => {
|
|
11
9
|
cy.window().then(win => {
|
|
12
10
|
cy.get('[data-test="dhis2-uicore-fileinput"] input').then($input => {
|
|
13
11
|
// name, lastModified, size and type are equal to the file created in the story
|
|
@@ -20,7 +18,7 @@ var _steps = require("cypress-cucumber-preprocessor/steps");
|
|
|
20
18
|
});
|
|
21
19
|
});
|
|
22
20
|
});
|
|
23
|
-
(0,
|
|
21
|
+
(0, _cypressCucumberPreprocessor.Then)("the onChange handler's payload contains a single entry for file.md", () => {
|
|
24
22
|
cy.window().should(win => {
|
|
25
23
|
const calls = win.onChange.getCalls();
|
|
26
24
|
const callArgs = calls[0].args;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a FileInputFieldWithList without multiple is rendered', () => {
|
|
6
6
|
cy.visitStory('FileInputFieldWithList', 'Single file - with file');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.Given)('the FileInputFieldWithList holds a file', () => {
|
|
9
9
|
cy.get('[data-test="dhis2-uicore-filelistitem"]').should('have.lengthOf', 1);
|
|
10
10
|
});
|
|
11
|
-
(0,
|
|
11
|
+
(0, _cypressCucumberPreprocessor.Then)('the button is disabled', () => {
|
|
12
12
|
cy.get('[data-test="dhis2-uicore-button"]').should('have.attr', 'disabled');
|
|
13
13
|
});
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
(0, _steps.Then)('the files are displayed in a list', () => {
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Then)('the files are displayed in a list', () => {
|
|
8
6
|
cy.get('[data-test="dhis2-uicore-filelistitem"] .label').then($labels => $labels.map((_, el) => el.innerHTML).toArray()).should('deep.equal', ['test1.md', 'duplicate.md', 'test2.md']);
|
|
9
7
|
});
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
(0, _steps.When)('the remove handle behind a file is clicked', () => {
|
|
5
|
+
(0, _cypressCucumberPreprocessor.When)('the remove handle behind a file is clicked', () => {
|
|
8
6
|
cy.contains('test1.md').siblings('[data-test="dhis2-uicore-filelistitem-remove"]').click();
|
|
9
7
|
});
|
|
10
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.Then)("the onChange handler's payload does not contain an entry for that file", () => {
|
|
11
9
|
cy.window().should(win => {
|
|
12
10
|
const calls = win.onChange.getCalls();
|
|
13
11
|
const callArgs = calls[0].args;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a default FileInputFieldWithList is rendered', () => {
|
|
6
6
|
cy.visitStory('FileInputFieldWithList', 'With default texts');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.Then)('the default button label is visible', () => {
|
|
9
9
|
cy.contains('Upload a file').should('be.visible');
|
|
10
10
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a default FileInputFieldWithList is rendered', () => {
|
|
6
6
|
cy.visitStory('FileInputFieldWithList', 'With default texts');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.Then)('the default placeholder is visible', () => {
|
|
9
9
|
cy.contains('No file uploaded yet').should('be.visible');
|
|
10
10
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a default FileInputFieldWithList is rendered', () => {
|
|
6
6
|
cy.visitStory('FileInputFieldWithList', 'With file and default texts');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.Then)('the default remove text is visible', () => {
|
|
9
9
|
cy.contains('Remove').should('be.visible');
|
|
10
10
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a loading FileListItem with onCancel handler and cancelText is rendered', () => {
|
|
6
6
|
cy.visitStory('FileListItem', 'Loading with onCancel and cancelText');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.Then)('the cancelText will be visible', () => {
|
|
9
9
|
cy.get('[data-test="dhis2-uicore-filelistitem-cancel"]').contains('Cancel').should('be.visible');
|
|
10
10
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a FileListItem with label is rendered', () => {
|
|
6
6
|
cy.visitStory('FileListItem', 'With label');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.Then)('the label will be visible', () => {
|
|
9
9
|
cy.get('[data-test="dhis2-uicore-filelistitem"]').contains('Label').should('be.visible');
|
|
10
10
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a FileListItem with removeText is rendered', () => {
|
|
6
6
|
cy.visitStory('FileListItem', 'With removeText');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.Then)('the removeText will be visible', () => {
|
|
9
9
|
cy.get('[data-test="dhis2-uicore-filelistitem-remove"]').contains('Remove').should('be.visible');
|
|
10
10
|
});
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a FileListItem with Onremove handler is rendered', () => {
|
|
6
6
|
cy.visitStory('FileListItem', 'With onRemove');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.When)('the user clicks on the remove text', () => {
|
|
9
9
|
cy.get('[data-test="dhis2-uicore-filelistitem-remove"]').click();
|
|
10
10
|
});
|
|
11
|
-
(0,
|
|
11
|
+
(0, _cypressCucumberPreprocessor.Then)('the onRemove handler is called', () => {
|
|
12
12
|
cy.window().should(win => {
|
|
13
13
|
expect(win.onRemove).to.be.calledWith({});
|
|
14
14
|
});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a FileList with children is rendered', () => {
|
|
6
6
|
cy.visitStory('FileList', 'With children');
|
|
7
7
|
cy.get('[data-test="dhis2-uicore-filelist"]').should('be.visible');
|
|
8
8
|
});
|
|
9
|
-
(0,
|
|
9
|
+
(0, _cypressCucumberPreprocessor.Then)('the children are visible', () => {
|
|
10
10
|
cy.contains('I am a child').should('be.visible');
|
|
11
11
|
});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a FileListPlaceholder with children is rendered', () => {
|
|
6
6
|
cy.visitStory('FileListPlaceholder', 'With children');
|
|
7
7
|
cy.get('[data-test="dhis2-uicore-filelistplaceholder"]').should('be.visible');
|
|
8
8
|
});
|
|
9
|
-
(0,
|
|
9
|
+
(0, _cypressCucumberPreprocessor.Then)('the children are visible', () => {
|
|
10
10
|
cy.contains('I am a child').should('be.visible');
|
|
11
11
|
});
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _cypressCucumberPreprocessor = require("@badeball/cypress-cucumber-preprocessor");
|
|
4
4
|
|
|
5
|
-
(0,
|
|
5
|
+
(0, _cypressCucumberPreprocessor.Given)('a loading FileListItem with onCancel handler is rendered', () => {
|
|
6
6
|
cy.visitStory('FileListItem', 'Loading with onCancel');
|
|
7
7
|
});
|
|
8
|
-
(0,
|
|
8
|
+
(0, _cypressCucumberPreprocessor.When)('the user clicks on the cancel text', () => {
|
|
9
9
|
cy.get('[data-test="dhis2-uicore-filelistitem-cancel"]').click();
|
|
10
10
|
});
|
|
11
|
-
(0,
|
|
11
|
+
(0, _cypressCucumberPreprocessor.Then)('the onCancel handler is called', () => {
|
|
12
12
|
cy.window().should(win => {
|
|
13
13
|
expect(win.onCancel).to.be.calledWith({});
|
|
14
14
|
});
|
|
@@ -32,29 +32,42 @@ const FileListItem = _ref => {
|
|
|
32
32
|
cancelText,
|
|
33
33
|
dataTest
|
|
34
34
|
} = _ref;
|
|
35
|
+
|
|
36
|
+
const handleKeyDown = event => {
|
|
37
|
+
if (!onRemove) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (event.key === 'Enter' || event.key === 'Backspace' || event.key === 'Delete') {
|
|
42
|
+
onRemove({}, event);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
35
46
|
return /*#__PURE__*/_react.default.createElement("p", {
|
|
36
47
|
"data-test": dataTest,
|
|
37
|
-
className: _style.default.dynamic([["
|
|
48
|
+
className: _style.default.dynamic([["513536609", [_uiConstants.spacers.dp4, _uiConstants.colors.grey900, _uiConstants.colors.grey700, _uiConstants.colors.red700, _uiConstants.colors.red800, _uiConstants.theme.focus]]]) + " " + ((0, _classnames.default)('selected-file', className) || "")
|
|
38
49
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
39
|
-
className: _style.default.dynamic([["
|
|
50
|
+
className: _style.default.dynamic([["513536609", [_uiConstants.spacers.dp4, _uiConstants.colors.grey900, _uiConstants.colors.grey700, _uiConstants.colors.red700, _uiConstants.colors.red800, _uiConstants.theme.focus]]]) + " " + "icon"
|
|
40
51
|
}, loading ? /*#__PURE__*/_react.default.createElement(_loader.CircularLoader, {
|
|
41
52
|
extrasmall: true
|
|
42
53
|
}) : /*#__PURE__*/_react.default.createElement(_uiIcons.IconAttachment16, {
|
|
43
54
|
color: _uiConstants.colors.grey700
|
|
44
55
|
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
45
|
-
className: _style.default.dynamic([["
|
|
56
|
+
className: _style.default.dynamic([["513536609", [_uiConstants.spacers.dp4, _uiConstants.colors.grey900, _uiConstants.colors.grey700, _uiConstants.colors.red700, _uiConstants.colors.red800, _uiConstants.theme.focus]]]) + " " + "text"
|
|
46
57
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
47
|
-
className: _style.default.dynamic([["
|
|
58
|
+
className: _style.default.dynamic([["513536609", [_uiConstants.spacers.dp4, _uiConstants.colors.grey900, _uiConstants.colors.grey700, _uiConstants.colors.red700, _uiConstants.colors.red800, _uiConstants.theme.focus]]]) + " " + "label"
|
|
48
59
|
}, label), loading && onCancel && cancelText && /*#__PURE__*/_react.default.createElement("span", {
|
|
49
60
|
onClick: event => onCancel({}, event),
|
|
50
61
|
"data-test": "".concat(dataTest, "-cancel"),
|
|
51
|
-
className: _style.default.dynamic([["
|
|
62
|
+
className: _style.default.dynamic([["513536609", [_uiConstants.spacers.dp4, _uiConstants.colors.grey900, _uiConstants.colors.grey700, _uiConstants.colors.red700, _uiConstants.colors.red800, _uiConstants.theme.focus]]]) + " " + "action"
|
|
52
63
|
}, cancelText), !loading && /*#__PURE__*/_react.default.createElement("span", {
|
|
53
64
|
onClick: event => onRemove({}, event),
|
|
54
65
|
"data-test": "".concat(dataTest, "-remove"),
|
|
55
|
-
|
|
66
|
+
tabIndex: 0,
|
|
67
|
+
onKeyDown: handleKeyDown,
|
|
68
|
+
className: _style.default.dynamic([["513536609", [_uiConstants.spacers.dp4, _uiConstants.colors.grey900, _uiConstants.colors.grey700, _uiConstants.colors.red700, _uiConstants.colors.red800, _uiConstants.theme.focus]]]) + " " + "action"
|
|
56
69
|
}, removeText)), /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
57
|
-
id: "
|
|
70
|
+
id: "513536609",
|
|
58
71
|
dynamic: [_uiConstants.spacers.dp4, _uiConstants.colors.grey900, _uiConstants.colors.grey700, _uiConstants.colors.red700, _uiConstants.colors.red800, _uiConstants.theme.focus]
|
|
59
72
|
}, ["p.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0;padding-top:".concat(_uiConstants.spacers.dp4, ";}"), "span.__jsx-style-dynamic-selector{display:inline-block;}", ".icon.__jsx-style-dynamic-selector{margin-inline-end:4px;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-top:1px;}", ".text.__jsx-style-dynamic-selector{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;}", ".label.__jsx-style-dynamic-selector{font-size:14px;color:".concat(_uiConstants.colors.grey900, ";word-break:break-all;}"), ".label.__jsx-style-dynamic-selector::after{content:' ';display:inline-block;width:12px;}", ".action.__jsx-style-dynamic-selector{font-size:12px;line-height:12px;margin-top:0;-webkit-text-decoration:underline;text-decoration:underline;cursor:pointer;color:".concat(_uiConstants.colors.grey700, ";}"), ".action.__jsx-style-dynamic-selector:hover{color:".concat(_uiConstants.colors.red700, ";}"), ".action.__jsx-style-dynamic-selector:active{color:".concat(_uiConstants.colors.red800, ";}"), ".action.__jsx-style-dynamic-selector:focus{outline:3px solid ".concat(_uiConstants.theme.focus, ";outline-offset:2px;}")]));
|
|
60
73
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps';
|
|
1
|
+
import { Given, When, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
3
2
|
Given('a FileInput with multiple and onChange handler is rendered', () => {
|
|
4
3
|
cy.visitStory('FileInput', 'With onChange and multiple');
|
|
5
4
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, When, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, When, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('an FileInput with initialFocus and onBlur handler is rendered', () => {
|
|
3
3
|
cy.visitStory('FileInput', 'With initialFocus and onBlur');
|
|
4
4
|
});
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps';
|
|
1
|
+
import { Given, When, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
3
2
|
Given('a FileInput with onChange handler is rendered', () => {
|
|
4
3
|
cy.visitStory('FileInput', 'With onChange');
|
|
5
4
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('the FileInput does not have any files', () => {
|
|
3
3
|
cy.get('[data-test="dhis2-uicore-fileinput"] input').then($input => {
|
|
4
4
|
const files = $input[0].files;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('a FileInputField with label and a required flag is rendered', () => {
|
|
3
3
|
cy.visitStory('FileInputField', 'With label and required');
|
|
4
4
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('a FileInputFieldWithList with multiple files is rendered', () => {
|
|
3
3
|
cy.visitStory('FileInputFieldWithList', 'Multiple files - with files');
|
|
4
4
|
});
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps';
|
|
1
|
+
import { Given, When, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
3
2
|
Given('the list contains the file duplicate.md', () => {
|
|
4
3
|
cy.contains('duplicate.md').should('have.lengthOf', 1).should('have.class', 'label').closest('[data-test="dhis2-uicore-filelistitem"]').should('have.lengthOf', 1);
|
|
5
4
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('a FileInputFieldWithList without multiple is rendered', () => {
|
|
3
3
|
cy.visitStory('FileInputFieldWithList', 'Single file - with file');
|
|
4
4
|
});
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import { Then } from 'cypress-cucumber-preprocessor/steps';
|
|
1
|
+
import { Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
3
2
|
Then('the files are displayed in a list', () => {
|
|
4
3
|
cy.get('[data-test="dhis2-uicore-filelistitem"] .label').then($labels => $labels.map((_, el) => el.innerHTML).toArray()).should('deep.equal', ['test1.md', 'duplicate.md', 'test2.md']);
|
|
5
4
|
});
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import { When, Then } from 'cypress-cucumber-preprocessor/steps';
|
|
1
|
+
import { When, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
3
2
|
When('the remove handle behind a file is clicked', () => {
|
|
4
3
|
cy.contains('test1.md').siblings('[data-test="dhis2-uicore-filelistitem-remove"]').click();
|
|
5
4
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('a default FileInputFieldWithList is rendered', () => {
|
|
3
3
|
cy.visitStory('FileInputFieldWithList', 'With default texts');
|
|
4
4
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('a default FileInputFieldWithList is rendered', () => {
|
|
3
3
|
cy.visitStory('FileInputFieldWithList', 'With default texts');
|
|
4
4
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('a default FileInputFieldWithList is rendered', () => {
|
|
3
3
|
cy.visitStory('FileInputFieldWithList', 'With file and default texts');
|
|
4
4
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('a loading FileListItem with onCancel handler and cancelText is rendered', () => {
|
|
3
3
|
cy.visitStory('FileListItem', 'Loading with onCancel and cancelText');
|
|
4
4
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, When, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, When, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('a FileListItem with Onremove handler is rendered', () => {
|
|
3
3
|
cy.visitStory('FileListItem', 'With onRemove');
|
|
4
4
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('a FileList with children is rendered', () => {
|
|
3
3
|
cy.visitStory('FileList', 'With children');
|
|
4
4
|
cy.get('[data-test="dhis2-uicore-filelist"]').should('be.visible');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('a FileListPlaceholder with children is rendered', () => {
|
|
3
3
|
cy.visitStory('FileListPlaceholder', 'With children');
|
|
4
4
|
cy.get('[data-test="dhis2-uicore-filelistplaceholder"]').should('be.visible');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Given, When, Then } from 'cypress-cucumber-preprocessor
|
|
1
|
+
import { Given, When, Then } from '@badeball/cypress-cucumber-preprocessor';
|
|
2
2
|
Given('a loading FileListItem with onCancel handler is rendered', () => {
|
|
3
3
|
cy.visitStory('FileListItem', 'Loading with onCancel');
|
|
4
4
|
});
|
|
@@ -17,29 +17,42 @@ const FileListItem = _ref => {
|
|
|
17
17
|
cancelText,
|
|
18
18
|
dataTest
|
|
19
19
|
} = _ref;
|
|
20
|
+
|
|
21
|
+
const handleKeyDown = event => {
|
|
22
|
+
if (!onRemove) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (event.key === 'Enter' || event.key === 'Backspace' || event.key === 'Delete') {
|
|
27
|
+
onRemove({}, event);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
20
31
|
return /*#__PURE__*/React.createElement("p", {
|
|
21
32
|
"data-test": dataTest,
|
|
22
|
-
className: _JSXStyle.dynamic([["
|
|
33
|
+
className: _JSXStyle.dynamic([["513536609", [spacers.dp4, colors.grey900, colors.grey700, colors.red700, colors.red800, theme.focus]]]) + " " + (cx('selected-file', className) || "")
|
|
23
34
|
}, /*#__PURE__*/React.createElement("span", {
|
|
24
|
-
className: _JSXStyle.dynamic([["
|
|
35
|
+
className: _JSXStyle.dynamic([["513536609", [spacers.dp4, colors.grey900, colors.grey700, colors.red700, colors.red800, theme.focus]]]) + " " + "icon"
|
|
25
36
|
}, loading ? /*#__PURE__*/React.createElement(CircularLoader, {
|
|
26
37
|
extrasmall: true
|
|
27
38
|
}) : /*#__PURE__*/React.createElement(IconAttachment16, {
|
|
28
39
|
color: colors.grey700
|
|
29
40
|
})), /*#__PURE__*/React.createElement("span", {
|
|
30
|
-
className: _JSXStyle.dynamic([["
|
|
41
|
+
className: _JSXStyle.dynamic([["513536609", [spacers.dp4, colors.grey900, colors.grey700, colors.red700, colors.red800, theme.focus]]]) + " " + "text"
|
|
31
42
|
}, /*#__PURE__*/React.createElement("span", {
|
|
32
|
-
className: _JSXStyle.dynamic([["
|
|
43
|
+
className: _JSXStyle.dynamic([["513536609", [spacers.dp4, colors.grey900, colors.grey700, colors.red700, colors.red800, theme.focus]]]) + " " + "label"
|
|
33
44
|
}, label), loading && onCancel && cancelText && /*#__PURE__*/React.createElement("span", {
|
|
34
45
|
onClick: event => onCancel({}, event),
|
|
35
46
|
"data-test": "".concat(dataTest, "-cancel"),
|
|
36
|
-
className: _JSXStyle.dynamic([["
|
|
47
|
+
className: _JSXStyle.dynamic([["513536609", [spacers.dp4, colors.grey900, colors.grey700, colors.red700, colors.red800, theme.focus]]]) + " " + "action"
|
|
37
48
|
}, cancelText), !loading && /*#__PURE__*/React.createElement("span", {
|
|
38
49
|
onClick: event => onRemove({}, event),
|
|
39
50
|
"data-test": "".concat(dataTest, "-remove"),
|
|
40
|
-
|
|
51
|
+
tabIndex: 0,
|
|
52
|
+
onKeyDown: handleKeyDown,
|
|
53
|
+
className: _JSXStyle.dynamic([["513536609", [spacers.dp4, colors.grey900, colors.grey700, colors.red700, colors.red800, theme.focus]]]) + " " + "action"
|
|
41
54
|
}, removeText)), /*#__PURE__*/React.createElement(_JSXStyle, {
|
|
42
|
-
id: "
|
|
55
|
+
id: "513536609",
|
|
43
56
|
dynamic: [spacers.dp4, colors.grey900, colors.grey700, colors.red700, colors.red800, theme.focus]
|
|
44
57
|
}, ["p.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0;padding-top:".concat(spacers.dp4, ";}"), "span.__jsx-style-dynamic-selector{display:inline-block;}", ".icon.__jsx-style-dynamic-selector{margin-inline-end:4px;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-top:1px;}", ".text.__jsx-style-dynamic-selector{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;}", ".label.__jsx-style-dynamic-selector{font-size:14px;color:".concat(colors.grey900, ";word-break:break-all;}"), ".label.__jsx-style-dynamic-selector::after{content:' ';display:inline-block;width:12px;}", ".action.__jsx-style-dynamic-selector{font-size:12px;line-height:12px;margin-top:0;-webkit-text-decoration:underline;text-decoration:underline;cursor:pointer;color:".concat(colors.grey700, ";}"), ".action.__jsx-style-dynamic-selector:hover{color:".concat(colors.red700, ";}"), ".action.__jsx-style-dynamic-selector:active{color:".concat(colors.red800, ";}"), ".action.__jsx-style-dynamic-selector:focus{outline:3px solid ".concat(theme.focus, ";outline-offset:2px;}")]));
|
|
45
58
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dhis2-ui/file-input",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.6.0",
|
|
4
4
|
"description": "UI FileInput",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@dhis2/prop-types": "^3.1.2",
|
|
37
|
-
"@dhis2-ui/button": "9.
|
|
38
|
-
"@dhis2-ui/field": "9.
|
|
39
|
-
"@dhis2-ui/label": "9.
|
|
40
|
-
"@dhis2-ui/loader": "9.
|
|
41
|
-
"@dhis2-ui/status-icon": "9.
|
|
42
|
-
"@dhis2/ui-constants": "9.
|
|
43
|
-
"@dhis2/ui-icons": "9.
|
|
37
|
+
"@dhis2-ui/button": "9.6.0",
|
|
38
|
+
"@dhis2-ui/field": "9.6.0",
|
|
39
|
+
"@dhis2-ui/label": "9.6.0",
|
|
40
|
+
"@dhis2-ui/loader": "9.6.0",
|
|
41
|
+
"@dhis2-ui/status-icon": "9.6.0",
|
|
42
|
+
"@dhis2/ui-constants": "9.6.0",
|
|
43
|
+
"@dhis2/ui-icons": "9.6.0",
|
|
44
44
|
"classnames": "^2.3.1",
|
|
45
45
|
"prop-types": "^15.7.2"
|
|
46
46
|
},
|