From b2a3acea0d0f66028c9ce5fad02d4ecc64abf70c Mon Sep 17 00:00:00 2001 From: Israel Lavi Date: Tue, 7 Aug 2018 10:54:17 +0300 Subject: Initial commit. Adding files needed for Linux Foundation. Change-Id: I9f2b4851a5ae01f83800c7f8bab8608a2221c730 Issue-ID: SDC-1608 Signed-off-by: Israel Lavi --- .babelrc | 4 - .editorconfig | 19 +- .env | 1 + .eslintrc | 135 - .gitignore | 53 +- .gitreview | 2 +- .ng2-component-lab/lab-configuration.module.ts | 36 - .ng2-component-lab/ng2-component-lab.config.js | 11 - .ng2-component-lab/ng2-component-lab.scss | 58 - .../themes/ng2-component-lab-theme-1802.scss | 58 - .npmignore | 6 - .storybook/addons.js | 7 + .storybook/config.js | 15 +- .storybook/storybook.scss | 231 - .storybook/tsconfig.json | 10 + .storybook/typography.scss | 30 - .storybook/webpack.config.js | 50 +- .travis.yml | 19 +- INFO.yaml | 55 - README.md | 107 +- angular.json | 105 + assets/README.md | 9 - assets/icons/angleDoubleLeft.svg | 15 - assets/icons/angleDoubleRight.svg | 11 - assets/icons/angleLeft.svg | 9 - assets/icons/angleRight.svg | 9 - assets/icons/artifacts.svg | 1 - assets/icons/back.svg | 6 - assets/icons/base.svg | 1 - assets/icons/calendar.svg | 1 - assets/icons/caretDown.svg | 6 - assets/icons/check.svg | 9 - assets/icons/checkCircle.svg | 1 - assets/icons/chevronDown.svg | 9 - assets/icons/chevronUp.svg | 9 - assets/icons/close.svg | 10 - assets/icons/download.svg | 1 - assets/icons/empty.txt | 0 assets/icons/env.svg | 1 - assets/icons/error.svg | 1 - assets/icons/errorCircle.svg | 1 - assets/icons/exclamationTriangleFull.svg | 9 - assets/icons/exclamationTriangleLine.svg | 25 - assets/icons/expand.svg | 1 - assets/icons/filter.svg | 9 - assets/icons/locked.svg | 3 - assets/icons/module.svg | 1 - assets/icons/nestedHeat.svg | 1 - assets/icons/network.svg | 1 - assets/icons/notificationBell.svg | 18 - assets/icons/notificationFullBell.svg | 11 - assets/icons/others.svg | 1 - assets/icons/pencil.svg | 17 - assets/icons/plus.svg | 9 - assets/icons/plusCircle.svg | 9 - assets/icons/plusThin.svg | 7 - assets/icons/proceedToOverview.svg | 1 - assets/icons/questionMark.svg | 1 - assets/icons/search.svg | 8 - assets/icons/sliders.svg | 19 - assets/icons/trashO.svg | 17 - assets/icons/unlocked.svg | 3 - assets/icons/upload.svg | 1 - assets/icons/user.svg | 10 - assets/icons/vendor.svg | 1 - assets/icons/versionControllerCommit.svg | 1 - assets/icons/versionControllerLockClosed.svg | 17 - assets/icons/versionControllerLockOpen.svg | 17 - assets/icons/versionControllerPermissions.svg | 1 - assets/icons/versionControllerRevert.svg | 14 - assets/icons/versionControllerSave.svg | 10 - assets/icons/versionControllerSubmit.svg | 10 - assets/icons/versionControllerSync.svg | 1 - assets/icons/versionControllerUndo.svg | 1 - assets/icons/viewModule.svg | 9 - assets/icons/vlm.svg | 1 - assets/icons/vsp.svg | 1 - assets/icons/zip.svg | 1 - assets/images/empty.txt | 0 assets/images/illustration.png | Bin 29534 -> 0 bytes assets/images/logo_onap.png | Bin 21360 -> 0 bytes assets/images/logo_onap_2017.png | Bin 21360 -> 0 bytes assets/sdc-icons/README.md | 9 - assets/sdc-icons/alert-triangle-o.svg | 3 - assets/sdc-icons/alert-triangle.svg | 5 - assets/sdc-icons/api-o.svg | 3 - assets/sdc-icons/arrow2-right-child.svg | 3 - assets/sdc-icons/arrow2-right.svg | 3 - assets/sdc-icons/arrow3-down-o.svg | 3 - assets/sdc-icons/arrow3-up-o.svg | 3 - assets/sdc-icons/attachment.svg | 3 - assets/sdc-icons/bedge.svg | 5 - assets/sdc-icons/browse.svg | 3 - assets/sdc-icons/calendar-o.svg | 3 - assets/sdc-icons/camera-o.svg | 3 - assets/sdc-icons/caret1-down-o.svg | 3 - assets/sdc-icons/caret2-right-circle-o.svg | 3 - assets/sdc-icons/caret2-right-circle.svg | 4 - assets/sdc-icons/caret3-right.svg | 3 - assets/sdc-icons/close.svg | 3 - assets/sdc-icons/commit-o.svg | 3 - assets/sdc-icons/components/checkbox_checked.svg | 3 - assets/sdc-icons/components/checkbox_disabled.svg | 9 - assets/sdc-icons/components/radio_checked .svg | 6 - assets/sdc-icons/components/radio_disabled.svg | 6 - assets/sdc-icons/composition-o.svg | 3 - assets/sdc-icons/copy-o.svg | 3 - assets/sdc-icons/deployment-artifacts-o.svg | 3 - assets/sdc-icons/description-o.svg | 3 - assets/sdc-icons/distributed.svg | 3 - assets/sdc-icons/download-o.svg | 3 - assets/sdc-icons/edit-file-o.svg | 3 - assets/sdc-icons/edit-o.svg | 3 - assets/sdc-icons/expand-o.svg | 3 - assets/sdc-icons/eye-o.svg | 3 - assets/sdc-icons/filter-o.svg | 3 - assets/sdc-icons/info-circle-o.svg | 3 - assets/sdc-icons/info-circle.svg | 5 - assets/sdc-icons/info-square-o.svg | 3 - assets/sdc-icons/inputs-o.svg | 3 - assets/sdc-icons/locked.svg | 3 - assets/sdc-icons/minus-circle.svg | 3 - assets/sdc-icons/minus.svg | 3 - assets/sdc-icons/notifications-o.svg | 3 - assets/sdc-icons/plus-circle-o.svg | 3 - assets/sdc-icons/plus-circle.svg | 5 - assets/sdc-icons/plus.svg | 3 - assets/sdc-icons/profile-o.svg | 3 - assets/sdc-icons/profiles-o.svg | 3 - assets/sdc-icons/question-mark-circle-o.svg | 3 - assets/sdc-icons/question-mark-circle.svg | 5 - assets/sdc-icons/req-capabilities-o.svg | 3 - assets/sdc-icons/revert-o.svg | 3 - assets/sdc-icons/save-o.svg | 3 - assets/sdc-icons/search-o.svg | 3 - assets/sdc-icons/settings-o.svg | 3 - assets/sdc-icons/spinner.svg | 50 - assets/sdc-icons/success-circle-o.svg | 3 - assets/sdc-icons/success.svg | 3 - assets/sdc-icons/sync-o.svg | 3 - assets/sdc-icons/trash-o.svg | 3 - assets/sdc-icons/undo-o.svg | 3 - assets/sdc-icons/unlocked-o.svg | 3 - assets/sdc-icons/upload-o.svg | 3 - assets/sdc-icons/v-circle-o.svg | 3 - assets/sdc-icons/v-circle.svg | 3 - assets/sdc-icons/x-circle-o.svg | 3 - assets/sdc-icons/x-circle.svg | 5 - components/accordion/accordion-basic.html | 22 - components/accordion/accordion.scss | 50 - components/autocomplete/_autocomplete.scss | 43 - components/autocomplete/autocomlete-close.html | 22 - components/autocomplete/autocomplete-open.html | 24 - components/button/_button.scss | 168 - components/button/button-link-auto.html | 3 - components/button/button-link-disabled.html | 3 - components/button/button-link-extra-small.html | 3 - components/button/button-link-large.html | 3 - components/button/button-link-medium.html | 3 - components/button/button-link-small.html | 3 - components/button/button-link.html | 3 - components/button/button-primary-auto.html | 3 - components/button/button-primary-disabled.html | 3 - components/button/button-primary-extra-small.html | 3 - components/button/button-primary-large.html | 3 - components/button/button-primary-medium.html | 3 - components/button/button-primary-small.html | 3 - components/button/button-primary.html | 3 - components/button/button-secondary-auto.html | 3 - components/button/button-secondary-disabled.html | 3 - .../button/button-secondary-extra-small.html | 3 - components/button/button-secondary-large.html | 3 - components/button/button-secondary-medium.html | 3 - components/button/button-secondary-small.html | 3 - components/button/button-secondary.html | 3 - components/checkbox/_checkbox.scss | 66 - components/checkbox/checkbox-checked.html | 6 - components/checkbox/checkbox-disabled-checked.html | 6 - components/checkbox/checkbox-disabled.html | 6 - components/checkbox/checkbox-unchecked.html | 6 - components/checklist/_checklist.scss | 21 - .../checklist/checklist-with-checked-items.html | 24 - .../checklist/checklist-with-disabled-items.html | 25 - components/checklist/multi-levels-checklist.html | 50 - components/checklist/simple-checklist.html | 24 - components/dropdown/_dropdown.scss | 346 - components/dropdown/dropdown-disabled.html | 11 - components/dropdown/dropdown-groups.html | 10 - components/dropdown/dropdown-requiered.html | 18 - components/dropdown/dropdown.html | 9 - components/filter-bar/_filter-bar.scss | 51 - components/filter-bar/filter-bar-with-text.html | 16 - components/filter-bar/filter-bar.html | 17 - components/icon/_icon.scss | 250 - components/input/_input.scss | 78 - components/input/input-disabled.html | 4 - components/input/input-error.html | 17 - components/input/input-number.html | 6 - components/input/input-placeholder.html | 4 - components/input/input-required.html | 4 - components/input/input-view-only.html | 4 - components/input/input.html | 8 - components/menu/_menu.scss | 68 - components/menu/popup-menu.html | 8 - components/menu/relative-popup-menu.html | 8 - components/modal/_modal.scss | 194 - components/modal/alert-modal.html | 45 - components/modal/custom-modal.html | 27 - components/modal/error-modal.html | 32 - components/modal/standard-modal.html | 46 - components/notification/_notification.scss | 59 - components/notification/notification-info.html | 3 - .../_notifications-container.scss | 8 - components/panel/basic-panel.html | 21 - components/panel/panel.scss | 8 - components/radio/_radio.scss | 69 - components/radio/radio-checked.html | 4 - components/radio/radio-disabled-checked.html | 4 - components/radio/radio-disabled.html | 4 - components/radio/radio-unchecked.html | 4 - components/radioGroup/_radioGroup.scss | 20 - components/radioGroup/radio-group-disabled.html | 13 - components/radioGroup/radio-group-no-title.html | 12 - components/radioGroup/radio-group-value.html | 13 - components/radioGroup/radio-group.html | 13 - components/search-bar/_search-bar.scss | 61 - components/search-bar/search-bar-with-text.html | 17 - components/search-bar/search-bar.html | 16 - components/tabs/tabs-disabled.html | 8 - components/tabs/tabs-header.html | 8 - components/tabs/tabs-menu.html | 8 - components/tabs/tabs.scss | 35 - components/tag-cloud/_tag-cloud.scss | 116 - components/tag-cloud/disabled-list.html | 31 - .../tag-cloud/list-with-active-add-button.html | 50 - .../tag-cloud/list-with-some-read-only-items.html | 61 - components/tag-cloud/list-with-unique-error.html | 52 - components/tag-cloud/simple-list.html | 50 - components/tile/_tile.scss | 172 - components/tile/tile-without-footer.html | 14 - components/tile/vendor-tile.html | 26 - components/tile/vfc-tile.html | 17 - components/tile/vlm-tile.html | 22 - components/tile/vsp-tile.html | 17 - components/tooltip/_tooltip.scss | 124 - components/validation/_validation.scss | 9 - demo/.gitignore | 7 - demo/README.md | 35 - demo/assests/README.md | 9 - demo/assests/icons/empty.txt | 0 demo/assests/icons/locked.svg | 39 - demo/assests/icons/plus.svg | 9 - demo/assests/icons/unlocked.svg | 39 - demo/assests/icons/vendor.svg | 1 - demo/assests/icons/vlm.svg | 1 - demo/assests/icons/vsp.svg | 1 - demo/assests/images/empty.txt | 0 demo/components/button.html | 15 - demo/components/colors.html | 26 - demo/components/tiles-generic.html | 106 - demo/components/tiles.html | 105 - demo/index.css | 178 - demo/index.html | 53 - demo/index.js | 84 - demo/package.json | 23 - designs/README.md | 3 - jest.config.js | 30 - json-typing.d.ts | 4 - karma.conf.js | 87 - karma.entry.js | 66 - ng2-component-lab.webpack.config.js | 62 - package-lock.json | 16342 +++++++++++++++++++ package.json | 201 +- pom.xml | 162 - rollup.angular.module.config.js | 33 - rollup.angular.umd.config.js | 38 - src/README.md | 9 - src/angular/accordion/accordion.component.html.ts | 2 +- src/angular/accordion/accordion.component.ts | 10 +- src/angular/accordion/accordion.module.ts | 7 +- .../autocomplete/autocomplete.component.html.ts | 2 +- src/angular/autocomplete/autocomplete.component.ts | 39 +- src/angular/autocomplete/autocomplete.module.ts | 17 +- .../buttons/button-file-opener.component.html.ts | 18 + .../buttons/button-file-opener.component.ts | 61 + src/angular/buttons/button.component.html.ts | 4 +- src/angular/buttons/button.component.ts | 16 +- src/angular/buttons/buttons.module.ts | 8 +- src/angular/buttons/ibutton.interface.ts | 14 + src/angular/checklist/checklist.component.html.ts | 2 +- src/angular/checklist/checklist.component.ts | 4 +- src/angular/checklist/models/ChecklistItem.ts | 4 +- src/angular/common/enums.ts | 25 + src/angular/common/index.ts | 7 +- src/angular/components.ts | 30 +- src/angular/favicon.ico | Bin 0 -> 5430 bytes src/angular/filterbar/filter-bar.component.html.ts | 2 +- src/angular/filterbar/filter-bar.component.ts | 5 +- src/angular/filterbar/filter-bar.module.ts | 6 +- .../checkbox/checkbox.component.html.ts | 4 +- .../checkbox/checkbox.component.spec.ts | 1 - .../form-elements/checkbox/checkbox.component.ts | 3 +- .../form-elements/dropdown/dropdown-models.ts | 14 +- .../dropdown/dropdown.component.html.ts | 2 +- .../form-elements/dropdown/dropdown.component.ts | 20 +- src/angular/form-elements/form-elements.module.ts | 7 +- .../form-elements/input/input.component.html.ts | 19 - src/angular/form-elements/input/input.component.ts | 54 - .../radios/radio-buttons-group.component.html.ts | 6 +- .../radios/radio-buttons-group.component.ts | 8 +- .../text-elements/base-text-element.component.ts | 46 + .../text-elements/input/input.component.html.ts | 19 + .../text-elements/input/input.component.ts | 18 + .../textarea/textarea.component.html.ts | 18 + .../text-elements/textarea/textarea.component.ts | 14 + .../validation/validatable.component.ts | 8 +- .../validation/validation-group.component.html.ts | 2 +- .../validation/validation-group.component.ts | 12 +- .../validation/validation.component.html.ts | 4 +- .../validation/validation.component.ts | 9 +- .../form-elements/validation/validation.module.ts | 1 - .../validators/base.validator.component.html.ts | 4 +- .../validators/base.validator.component.ts | 8 +- .../validators/custom.validator.component.ts | 2 +- .../validators/regex.validator.component.ts | 2 +- .../validators/required.validator.component.ts | 2 +- src/angular/index.html | 14 + src/angular/index.ts | 31 +- src/angular/loader/loader.component.html.ts | 13 + src/angular/loader/loader.component.ts | 53 + src/angular/loader/loader.module.ts | 21 + src/angular/loader/loader.service.ts | 37 + src/angular/modals/modal-button.component.ts | 10 +- src/angular/modals/modal-close-button.component.ts | 11 +- src/angular/modals/modal.component.html.ts | 24 +- src/angular/modals/modal.component.spec.ts | 129 +- src/angular/modals/modal.component.ts | 100 +- src/angular/modals/modal.service.ts | 90 +- src/angular/modals/models/modal-config.ts | 31 +- .../multiline-ellipsis.component.html.ts | 8 + .../multiline-ellipsis.component.ts | 70 + .../multiline-ellipsis.module.ts | 11 + src/angular/ng1.module.ts | 15 +- .../container/notifcontainer.component.html.ts | 2 +- .../container/notifcontainer.component.ts | 10 +- ...notification-inner-content-example.component.ts | 5 +- src/angular/notifications/notification.module.ts | 5 +- .../notification/notification.component.html.ts | 2 +- .../notification/notification.component.ts | 18 +- .../services/notifications.service.ts | 18 +- .../notifications/utilities/notification.config.ts | 10 +- src/angular/polyfills.ts | 67 + .../popup-menu/popup-menu-item.component.spec.ts | 3 - src/angular/popup-menu/popup-menu.module.ts | 1 - src/angular/searchbar/search-bar.component.html.ts | 2 +- src/angular/searchbar/search-bar.component.ts | 11 +- src/angular/services.ts | 13 + src/angular/styles.css | 9 + .../svg-icon/svg-icon-label.component.html.ts | 2 +- src/angular/svg-icon/svg-icon-label.component.ts | 4 +- src/angular/svg-icon/svg-icon.component.html.ts | 2 +- src/angular/svg-icon/svg-icon.component.ts | 51 +- src/angular/tabs/children/tab.component.html.ts | 2 +- src/angular/tabs/children/tab.component.ts | 2 +- src/angular/tabs/tabs.component.html.ts | 2 +- src/angular/tabs/tabs.component.ts | 31 +- src/angular/tabs/tabs.module.ts | 1 - src/angular/tag-cloud/tag-cloud.component.html.ts | 2 +- src/angular/tag-cloud/tag-cloud.component.ts | 12 +- .../tag-cloud/tag-item/tag-item.component.html.ts | 2 +- .../tag-cloud/tag-item/tag-item.component.ts | 2 +- src/angular/test.ts | 29 + src/angular/tiles/tile.component.html.ts | 2 +- src/angular/tiles/tile.component.ts | 2 +- src/angular/tooltip/tooltip.directive.ts | 2 +- src/angular/tooltip/tooltip.module.ts | 2 + src/angular/tsconfig.app.json | 15 + src/angular/tsconfig.spec.json | 20 + src/angular/typings.d.ts | 10 + .../utils/create-dynamic-component.service.ts | 3 +- src/assets/styles/_svg_icon.scss | 248 + src/assets/styles/_tooltip_custom_style.scss | 9 + src/assets/styles/style.scss | 5 + src/environments/environment.prod.ts | 3 + src/environments/environment.ts | 7 + src/react/Accordion.js | 40 - src/react/Button.js | 37 - src/react/Checkbox.js | 45 - src/react/Checklist.js | 43 - src/react/Input.js | 88 - src/react/Modal.js | 55 - src/react/ModalBody.js | 19 - src/react/ModalFooter.js | 36 - src/react/ModalHeader.js | 41 - src/react/ModalTitle.js | 19 - src/react/Panel.js | 18 - src/react/PopupMenu.js | 39 - src/react/PopupMenuItem.js | 34 - src/react/Portal.js | 52 - src/react/Radio.js | 58 - src/react/RadioGroup.js | 40 - src/react/SVGIcon.js | 47 - src/react/Tab.js | 20 - src/react/TabPane.js | 12 - src/react/Tabs.js | 29 - src/react/Tile.js | 33 - src/react/TileFooter.js | 10 - src/react/TileFooterCell.js | 7 - src/react/TileInfo.js | 10 - src/react/TileInfoLine.js | 7 - src/react/index.js | 74 - src/style/scss/_common.scss | 7 - src/style/scss/_components.scss | 22 - src/style/scss/angular/_svg_icon.scss | 210 - src/style/scss/angular/_tooltip_custom_style.scss | 9 - src/style/scss/common/_animation.scss | 149 - src/style/scss/common/_icons.scss | 19 - src/style/scss/common/_normalize.scss | 578 - src/style/scss/common/_typography.scss | 96 - src/style/scss/common/base.scss | 96 - src/style/scss/common/mixins.scss | 337 - src/style/scss/common/variables.scss | 35 - src/style/scss/style.scss | 6 - src/style/scss/themes/1802/_components.scss | 23 - src/style/scss/themes/1802/button.scss | 148 - src/style/scss/themes/1802/modal.scss | 193 - src/style/scss/themes/1802/style.scss | 5 - src/style/scss/themes/1802/tabs.scss | 39 - stories/README.md | 9 - stories/angular/accordion.stories.ts | 154 + stories/angular/autocomplete.stories.ts | 127 + stories/angular/button.stories.ts | 229 + stories/angular/checkbox.stories.ts | 50 + stories/angular/checklist.stories.ts | 51 + stories/angular/colors.stories.ts | 81 + stories/angular/dropdown.stories.ts | 297 + stories/angular/filter-bar.stories.ts | 51 + .../angular/helpers/autocomplete-server-mock.json | 8 + stories/angular/helpers/colors-table.component.ts | 28 + stories/angular/helpers/index.ts | 21 + stories/angular/helpers/keys.pipe.ts | 13 + .../angular/helpers/modal-consumer.component.ts | 151 + .../modal-inner-content-example.component.ts | 16 + stories/angular/index.ts | 112 + stories/angular/infinite-scroll.stories.ts | 181 + stories/angular/input.stories.ts | 120 + stories/angular/loader.stories.ts | 147 + stories/angular/modal.stories.ts | 59 + stories/angular/multiline-ellipsis.stories.ts | 77 + stories/angular/notifications.stories.ts | 55 + stories/angular/popup-menu.stories.ts | 185 + stories/angular/radio-button-group.stories.ts | 84 + stories/angular/search-bar.stories.ts | 49 + stories/angular/styles.scss | 104 + stories/angular/svg-icon.stories.ts | 124 + stories/angular/tabs.stories.ts | 55 + stories/angular/tag-cloud.stories.ts | 64 + stories/angular/tile.stories.ts | 81 + stories/angular/tooltip.stories.ts | 87 + stories/angular/validation.stories.ts | 184 + .../ng2-component-lab/accordion.component.exp.ts | 146 - .../autocomplete.component.exp.ts | 77 - stories/ng2-component-lab/button.component.exp.ts | 164 - .../ng2-component-lab/checkbox.component.exp.ts | 33 - .../ng2-component-lab/checklist.component.exp.ts | 213 - stories/ng2-component-lab/colors.component.exp.ts | 42 - stories/ng2-component-lab/components.module.ts | 45 - .../components/colors-table.component.ts | 26 - .../components/modal-consumer.component.ts | 106 - .../modal-inner-content-example.component.ts | 16 - .../components/notifications-example.component.ts | 57 - .../components/svg-icons-table.component.ts | 189 - .../ng2-component-lab/dropdown.component.exp.ts | 195 - .../ng2-component-lab/filter-bar.component.exp.ts | 56 - .../infinite-scroll.component.exp.ts | 166 - stories/ng2-component-lab/input.component.exp.ts | 79 - stories/ng2-component-lab/modals.component.exp.ts | 126 - .../notification.component.exp.ts | 11 - .../ng2-component-lab/pipes/search-filter-pipe.ts | 15 - .../ng2-component-lab/popup-menu.component.exp.ts | 104 - stories/ng2-component-lab/radio.component.exp.ts | 179 - .../ng2-component-lab/search-bar.component.exp.ts | 19 - .../ng2-component-lab/svg-icon.component.exp.ts | 14 - stories/ng2-component-lab/tabs.component.exp.ts | 28 - .../ng2-component-lab/tag-cloud.component.exp.ts | 61 - stories/ng2-component-lab/tiles.component.exp.ts | 194 - stories/ng2-component-lab/tooltip.directive.exp.ts | 231 - stories/ng2-component-lab/utils/mock.json | 6 - stories/ng2-component-lab/utils/pipes/keys.pipe.ts | 13 - .../ng2-component-lab/validation.component.exp.ts | 162 - stories/react/Accordion.stories.js | 16 - stories/react/Checkbox.stories.js | 33 - stories/react/Checklist.stories.js | 65 - stories/react/Colors.stories.js | 53 - stories/react/Input.stories.js | 51 - stories/react/Modal.stories.js | 133 - stories/react/Panel.stories.js | 22 - stories/react/PopupMenu.stories.js | 37 - stories/react/Radio.stories.js | 33 - stories/react/RadioGroup.stories.js | 34 - stories/react/SVGIcon.stories.js | 103 - stories/react/Tabs.stories.js | 48 - stories/react/Tiles.stories.js | 89 - stories/react/Typography.stories.js | 62 - stories/react/buttons/LinkButtons.stories.js | 49 - stories/react/buttons/PrimaryButtons.stories.js | 49 - stories/react/buttons/SecondaryButtons.stories.js | 49 - stories/react/index.js | 66 - stories/react/utils/BeautifyHTML.js | 33 - stories/react/utils/Examples.js | 23 - stories/react/utils/InsertSVGIcons.js | 15 - stories/react/utils/SourceToggle.js | 73 - stories/react/utils/components/DropdownMenu.js | 14 - stories/react/utils/jsxToString.js | 74 - test/react/Accordion.spec.js | 11 - test/react/Button.spec.js | 77 - test/react/Checkbox.spec.js | 60 - test/react/Checklist.spec.js | 64 - test/react/Input.spec.js | 69 - test/react/Modal.spec.js | 68 - test/react/ModalBody.spec.js | 11 - test/react/ModalFooter.spec.js | 11 - test/react/ModalHeader.spec.js | 11 - test/react/ModalTitle.spec.js | 11 - test/react/Panel.spec.js | 11 - test/react/PopupMenu.spec.js | 62 - test/react/PopupMenuItem.spec.js | 56 - test/react/Portal.spec.js | 10 - test/react/Radio.spec.js | 60 - test/react/RadioGroup.spec.js | 69 - test/react/Tabs.spec.js | 55 - test/react/Tile.spec.js | 30 - test/react/__snapshots__/Accordion.spec.js.snap | 32 - test/react/__snapshots__/Button.spec.js.snap | 163 - test/react/__snapshots__/Checkbox.spec.js.snap | 49 - test/react/__snapshots__/Checklist.spec.js.snap | 165 - test/react/__snapshots__/Input.spec.js.snap | 179 - test/react/__snapshots__/Modal.spec.js.snap | 9 - test/react/__snapshots__/ModalBody.spec.js.snap | 7 - test/react/__snapshots__/ModalFooter.spec.js.snap | 17 - test/react/__snapshots__/ModalHeader.spec.js.snap | 24 - test/react/__snapshots__/ModalTitle.spec.js.snap | 9 - test/react/__snapshots__/Panel.spec.js.snap | 9 - test/react/__snapshots__/PopupMenu.spec.js.snap | 26 - .../react/__snapshots__/PopupMenuItem.spec.js.snap | 19 - test/react/__snapshots__/Radio.spec.js.snap | 49 - test/react/__snapshots__/RadioGroup.spec.js.snap | 60 - test/react/__snapshots__/Tabs.spec.js.snap | 52 - test/react/__snapshots__/Tile.spec.js.snap | 108 - test/react/utils/htmlLoader.js | 7 - test/react/utils/svgMock.js | 3 - tsconfig-aot.json | 30 + tsconfig-sitebook.json | 22 + tsconfig.angular.build-es5.json | 24 - tsconfig.json | 31 - tslint.json | 77 - utils/build-demo.js | 73 - utils/create-icon-map.js | 26 - utils/create-svg-icons-map.js | 95 - utils/index-for-gh-pages.html | 98 - utils/main-page.html | 62 - utils/scripts/map-sources.js | 9 - webpack-umd.config.ts | 97 + webpack.build.config.js | 63 - webpack/helpers.js | 10 - webpack/webpack.test.js | 71 - wiki/Adding_a_new_component.md | 100 + wiki/Adding_a_new_component_to_storybook.md | 62 + wiki/Contribution_guide.md | 30 + .../Deploying_storybook_to_a_forks_github_pages.md | 13 + wiki/Understanding_project_build.md | 76 + wiki/home.md | 1 + 572 files changed, 21526 insertions(+), 15628 deletions(-) delete mode 100644 .babelrc create mode 100644 .env delete mode 100644 .eslintrc delete mode 100644 .ng2-component-lab/lab-configuration.module.ts delete mode 100644 .ng2-component-lab/ng2-component-lab.config.js delete mode 100644 .ng2-component-lab/ng2-component-lab.scss delete mode 100644 .ng2-component-lab/themes/ng2-component-lab-theme-1802.scss delete mode 100644 .npmignore create mode 100644 .storybook/addons.js delete mode 100644 .storybook/storybook.scss create mode 100644 .storybook/tsconfig.json delete mode 100644 .storybook/typography.scss delete mode 100644 INFO.yaml create mode 100644 angular.json delete mode 100644 assets/README.md delete mode 100644 assets/icons/angleDoubleLeft.svg delete mode 100644 assets/icons/angleDoubleRight.svg delete mode 100644 assets/icons/angleLeft.svg delete mode 100644 assets/icons/angleRight.svg delete mode 100644 assets/icons/artifacts.svg delete mode 100644 assets/icons/back.svg delete mode 100644 assets/icons/base.svg delete mode 100644 assets/icons/calendar.svg delete mode 100644 assets/icons/caretDown.svg delete mode 100644 assets/icons/check.svg delete mode 100644 assets/icons/checkCircle.svg delete mode 100644 assets/icons/chevronDown.svg delete mode 100644 assets/icons/chevronUp.svg delete mode 100644 assets/icons/close.svg delete mode 100644 assets/icons/download.svg delete mode 100644 assets/icons/empty.txt delete mode 100644 assets/icons/env.svg delete mode 100644 assets/icons/error.svg delete mode 100644 assets/icons/errorCircle.svg delete mode 100644 assets/icons/exclamationTriangleFull.svg delete mode 100644 assets/icons/exclamationTriangleLine.svg delete mode 100644 assets/icons/expand.svg delete mode 100644 assets/icons/filter.svg delete mode 100644 assets/icons/locked.svg delete mode 100644 assets/icons/module.svg delete mode 100644 assets/icons/nestedHeat.svg delete mode 100644 assets/icons/network.svg delete mode 100644 assets/icons/notificationBell.svg delete mode 100644 assets/icons/notificationFullBell.svg delete mode 100644 assets/icons/others.svg delete mode 100644 assets/icons/pencil.svg delete mode 100644 assets/icons/plus.svg delete mode 100644 assets/icons/plusCircle.svg delete mode 100644 assets/icons/plusThin.svg delete mode 100644 assets/icons/proceedToOverview.svg delete mode 100644 assets/icons/questionMark.svg delete mode 100644 assets/icons/search.svg delete mode 100644 assets/icons/sliders.svg delete mode 100644 assets/icons/trashO.svg delete mode 100644 assets/icons/unlocked.svg delete mode 100644 assets/icons/upload.svg delete mode 100644 assets/icons/user.svg delete mode 100644 assets/icons/vendor.svg delete mode 100644 assets/icons/versionControllerCommit.svg delete mode 100644 assets/icons/versionControllerLockClosed.svg delete mode 100644 assets/icons/versionControllerLockOpen.svg delete mode 100644 assets/icons/versionControllerPermissions.svg delete mode 100644 assets/icons/versionControllerRevert.svg delete mode 100644 assets/icons/versionControllerSave.svg delete mode 100644 assets/icons/versionControllerSubmit.svg delete mode 100644 assets/icons/versionControllerSync.svg delete mode 100644 assets/icons/versionControllerUndo.svg delete mode 100644 assets/icons/viewModule.svg delete mode 100644 assets/icons/vlm.svg delete mode 100644 assets/icons/vsp.svg delete mode 100644 assets/icons/zip.svg delete mode 100644 assets/images/empty.txt delete mode 100644 assets/images/illustration.png delete mode 100644 assets/images/logo_onap.png delete mode 100644 assets/images/logo_onap_2017.png delete mode 100644 assets/sdc-icons/README.md delete mode 100644 assets/sdc-icons/alert-triangle-o.svg delete mode 100644 assets/sdc-icons/alert-triangle.svg delete mode 100644 assets/sdc-icons/api-o.svg delete mode 100644 assets/sdc-icons/arrow2-right-child.svg delete mode 100644 assets/sdc-icons/arrow2-right.svg delete mode 100644 assets/sdc-icons/arrow3-down-o.svg delete mode 100644 assets/sdc-icons/arrow3-up-o.svg delete mode 100644 assets/sdc-icons/attachment.svg delete mode 100644 assets/sdc-icons/bedge.svg delete mode 100644 assets/sdc-icons/browse.svg delete mode 100644 assets/sdc-icons/calendar-o.svg delete mode 100644 assets/sdc-icons/camera-o.svg delete mode 100644 assets/sdc-icons/caret1-down-o.svg delete mode 100644 assets/sdc-icons/caret2-right-circle-o.svg delete mode 100644 assets/sdc-icons/caret2-right-circle.svg delete mode 100644 assets/sdc-icons/caret3-right.svg delete mode 100644 assets/sdc-icons/close.svg delete mode 100644 assets/sdc-icons/commit-o.svg delete mode 100644 assets/sdc-icons/components/checkbox_checked.svg delete mode 100644 assets/sdc-icons/components/checkbox_disabled.svg delete mode 100644 assets/sdc-icons/components/radio_checked .svg delete mode 100644 assets/sdc-icons/components/radio_disabled.svg delete mode 100644 assets/sdc-icons/composition-o.svg delete mode 100644 assets/sdc-icons/copy-o.svg delete mode 100644 assets/sdc-icons/deployment-artifacts-o.svg delete mode 100644 assets/sdc-icons/description-o.svg delete mode 100644 assets/sdc-icons/distributed.svg delete mode 100644 assets/sdc-icons/download-o.svg delete mode 100644 assets/sdc-icons/edit-file-o.svg delete mode 100644 assets/sdc-icons/edit-o.svg delete mode 100644 assets/sdc-icons/expand-o.svg delete mode 100644 assets/sdc-icons/eye-o.svg delete mode 100644 assets/sdc-icons/filter-o.svg delete mode 100644 assets/sdc-icons/info-circle-o.svg delete mode 100644 assets/sdc-icons/info-circle.svg delete mode 100644 assets/sdc-icons/info-square-o.svg delete mode 100644 assets/sdc-icons/inputs-o.svg delete mode 100644 assets/sdc-icons/locked.svg delete mode 100644 assets/sdc-icons/minus-circle.svg delete mode 100644 assets/sdc-icons/minus.svg delete mode 100644 assets/sdc-icons/notifications-o.svg delete mode 100644 assets/sdc-icons/plus-circle-o.svg delete mode 100644 assets/sdc-icons/plus-circle.svg delete mode 100644 assets/sdc-icons/plus.svg delete mode 100644 assets/sdc-icons/profile-o.svg delete mode 100644 assets/sdc-icons/profiles-o.svg delete mode 100644 assets/sdc-icons/question-mark-circle-o.svg delete mode 100644 assets/sdc-icons/question-mark-circle.svg delete mode 100644 assets/sdc-icons/req-capabilities-o.svg delete mode 100644 assets/sdc-icons/revert-o.svg delete mode 100644 assets/sdc-icons/save-o.svg delete mode 100644 assets/sdc-icons/search-o.svg delete mode 100644 assets/sdc-icons/settings-o.svg delete mode 100644 assets/sdc-icons/spinner.svg delete mode 100644 assets/sdc-icons/success-circle-o.svg delete mode 100644 assets/sdc-icons/success.svg delete mode 100644 assets/sdc-icons/sync-o.svg delete mode 100644 assets/sdc-icons/trash-o.svg delete mode 100644 assets/sdc-icons/undo-o.svg delete mode 100644 assets/sdc-icons/unlocked-o.svg delete mode 100644 assets/sdc-icons/upload-o.svg delete mode 100644 assets/sdc-icons/v-circle-o.svg delete mode 100644 assets/sdc-icons/v-circle.svg delete mode 100644 assets/sdc-icons/x-circle-o.svg delete mode 100644 assets/sdc-icons/x-circle.svg delete mode 100644 components/accordion/accordion-basic.html delete mode 100644 components/accordion/accordion.scss delete mode 100644 components/autocomplete/_autocomplete.scss delete mode 100644 components/autocomplete/autocomlete-close.html delete mode 100644 components/autocomplete/autocomplete-open.html delete mode 100644 components/button/_button.scss delete mode 100644 components/button/button-link-auto.html delete mode 100644 components/button/button-link-disabled.html delete mode 100644 components/button/button-link-extra-small.html delete mode 100644 components/button/button-link-large.html delete mode 100644 components/button/button-link-medium.html delete mode 100644 components/button/button-link-small.html delete mode 100644 components/button/button-link.html delete mode 100644 components/button/button-primary-auto.html delete mode 100644 components/button/button-primary-disabled.html delete mode 100644 components/button/button-primary-extra-small.html delete mode 100644 components/button/button-primary-large.html delete mode 100644 components/button/button-primary-medium.html delete mode 100644 components/button/button-primary-small.html delete mode 100644 components/button/button-primary.html delete mode 100644 components/button/button-secondary-auto.html delete mode 100644 components/button/button-secondary-disabled.html delete mode 100644 components/button/button-secondary-extra-small.html delete mode 100644 components/button/button-secondary-large.html delete mode 100644 components/button/button-secondary-medium.html delete mode 100644 components/button/button-secondary-small.html delete mode 100644 components/button/button-secondary.html delete mode 100644 components/checkbox/_checkbox.scss delete mode 100644 components/checkbox/checkbox-checked.html delete mode 100644 components/checkbox/checkbox-disabled-checked.html delete mode 100644 components/checkbox/checkbox-disabled.html delete mode 100644 components/checkbox/checkbox-unchecked.html delete mode 100644 components/checklist/_checklist.scss delete mode 100644 components/checklist/checklist-with-checked-items.html delete mode 100644 components/checklist/checklist-with-disabled-items.html delete mode 100644 components/checklist/multi-levels-checklist.html delete mode 100644 components/checklist/simple-checklist.html delete mode 100644 components/dropdown/_dropdown.scss delete mode 100644 components/dropdown/dropdown-disabled.html delete mode 100644 components/dropdown/dropdown-groups.html delete mode 100644 components/dropdown/dropdown-requiered.html delete mode 100644 components/dropdown/dropdown.html delete mode 100644 components/filter-bar/_filter-bar.scss delete mode 100644 components/filter-bar/filter-bar-with-text.html delete mode 100644 components/filter-bar/filter-bar.html delete mode 100644 components/icon/_icon.scss delete mode 100644 components/input/_input.scss delete mode 100644 components/input/input-disabled.html delete mode 100644 components/input/input-error.html delete mode 100644 components/input/input-number.html delete mode 100644 components/input/input-placeholder.html delete mode 100644 components/input/input-required.html delete mode 100644 components/input/input-view-only.html delete mode 100644 components/input/input.html delete mode 100644 components/menu/_menu.scss delete mode 100644 components/menu/popup-menu.html delete mode 100644 components/menu/relative-popup-menu.html delete mode 100644 components/modal/_modal.scss delete mode 100644 components/modal/alert-modal.html delete mode 100644 components/modal/custom-modal.html delete mode 100644 components/modal/error-modal.html delete mode 100644 components/modal/standard-modal.html delete mode 100644 components/notification/_notification.scss delete mode 100644 components/notification/notification-info.html delete mode 100644 components/notifications-container/_notifications-container.scss delete mode 100644 components/panel/basic-panel.html delete mode 100644 components/panel/panel.scss delete mode 100644 components/radio/_radio.scss delete mode 100644 components/radio/radio-checked.html delete mode 100644 components/radio/radio-disabled-checked.html delete mode 100644 components/radio/radio-disabled.html delete mode 100644 components/radio/radio-unchecked.html delete mode 100644 components/radioGroup/_radioGroup.scss delete mode 100644 components/radioGroup/radio-group-disabled.html delete mode 100644 components/radioGroup/radio-group-no-title.html delete mode 100644 components/radioGroup/radio-group-value.html delete mode 100644 components/radioGroup/radio-group.html delete mode 100644 components/search-bar/_search-bar.scss delete mode 100644 components/search-bar/search-bar-with-text.html delete mode 100644 components/search-bar/search-bar.html delete mode 100644 components/tabs/tabs-disabled.html delete mode 100644 components/tabs/tabs-header.html delete mode 100644 components/tabs/tabs-menu.html delete mode 100644 components/tabs/tabs.scss delete mode 100644 components/tag-cloud/_tag-cloud.scss delete mode 100644 components/tag-cloud/disabled-list.html delete mode 100644 components/tag-cloud/list-with-active-add-button.html delete mode 100644 components/tag-cloud/list-with-some-read-only-items.html delete mode 100644 components/tag-cloud/list-with-unique-error.html delete mode 100644 components/tag-cloud/simple-list.html delete mode 100644 components/tile/_tile.scss delete mode 100644 components/tile/tile-without-footer.html delete mode 100644 components/tile/vendor-tile.html delete mode 100644 components/tile/vfc-tile.html delete mode 100644 components/tile/vlm-tile.html delete mode 100644 components/tile/vsp-tile.html delete mode 100644 components/tooltip/_tooltip.scss delete mode 100644 components/validation/_validation.scss delete mode 100644 demo/.gitignore delete mode 100644 demo/README.md delete mode 100644 demo/assests/README.md delete mode 100644 demo/assests/icons/empty.txt delete mode 100644 demo/assests/icons/locked.svg delete mode 100644 demo/assests/icons/plus.svg delete mode 100644 demo/assests/icons/unlocked.svg delete mode 100644 demo/assests/icons/vendor.svg delete mode 100644 demo/assests/icons/vlm.svg delete mode 100644 demo/assests/icons/vsp.svg delete mode 100644 demo/assests/images/empty.txt delete mode 100644 demo/components/button.html delete mode 100644 demo/components/colors.html delete mode 100644 demo/components/tiles-generic.html delete mode 100644 demo/components/tiles.html delete mode 100644 demo/index.css delete mode 100644 demo/index.html delete mode 100644 demo/index.js delete mode 100644 demo/package.json delete mode 100644 designs/README.md delete mode 100644 jest.config.js delete mode 100644 json-typing.d.ts delete mode 100644 karma.conf.js delete mode 100644 karma.entry.js delete mode 100644 ng2-component-lab.webpack.config.js create mode 100644 package-lock.json delete mode 100644 pom.xml delete mode 100644 rollup.angular.module.config.js delete mode 100644 rollup.angular.umd.config.js delete mode 100644 src/README.md create mode 100644 src/angular/buttons/button-file-opener.component.html.ts create mode 100644 src/angular/buttons/button-file-opener.component.ts create mode 100644 src/angular/buttons/ibutton.interface.ts create mode 100644 src/angular/favicon.ico delete mode 100644 src/angular/form-elements/input/input.component.html.ts delete mode 100644 src/angular/form-elements/input/input.component.ts create mode 100644 src/angular/form-elements/text-elements/base-text-element.component.ts create mode 100644 src/angular/form-elements/text-elements/input/input.component.html.ts create mode 100644 src/angular/form-elements/text-elements/input/input.component.ts create mode 100644 src/angular/form-elements/text-elements/textarea/textarea.component.html.ts create mode 100644 src/angular/form-elements/text-elements/textarea/textarea.component.ts create mode 100644 src/angular/index.html create mode 100644 src/angular/loader/loader.component.html.ts create mode 100644 src/angular/loader/loader.component.ts create mode 100644 src/angular/loader/loader.module.ts create mode 100644 src/angular/loader/loader.service.ts create mode 100644 src/angular/multiline-ellipsis/multiline-ellipsis.component.html.ts create mode 100644 src/angular/multiline-ellipsis/multiline-ellipsis.component.ts create mode 100644 src/angular/multiline-ellipsis/multiline-ellipsis.module.ts create mode 100644 src/angular/polyfills.ts create mode 100644 src/angular/services.ts create mode 100644 src/angular/styles.css create mode 100644 src/angular/test.ts create mode 100644 src/angular/tsconfig.app.json create mode 100644 src/angular/tsconfig.spec.json create mode 100644 src/angular/typings.d.ts create mode 100644 src/assets/styles/_svg_icon.scss create mode 100644 src/assets/styles/_tooltip_custom_style.scss create mode 100644 src/assets/styles/style.scss create mode 100644 src/environments/environment.prod.ts create mode 100644 src/environments/environment.ts delete mode 100644 src/react/Accordion.js delete mode 100644 src/react/Button.js delete mode 100644 src/react/Checkbox.js delete mode 100644 src/react/Checklist.js delete mode 100644 src/react/Input.js delete mode 100644 src/react/Modal.js delete mode 100644 src/react/ModalBody.js delete mode 100644 src/react/ModalFooter.js delete mode 100644 src/react/ModalHeader.js delete mode 100644 src/react/ModalTitle.js delete mode 100644 src/react/Panel.js delete mode 100644 src/react/PopupMenu.js delete mode 100644 src/react/PopupMenuItem.js delete mode 100644 src/react/Portal.js delete mode 100644 src/react/Radio.js delete mode 100644 src/react/RadioGroup.js delete mode 100644 src/react/SVGIcon.js delete mode 100644 src/react/Tab.js delete mode 100644 src/react/TabPane.js delete mode 100644 src/react/Tabs.js delete mode 100644 src/react/Tile.js delete mode 100644 src/react/TileFooter.js delete mode 100644 src/react/TileFooterCell.js delete mode 100644 src/react/TileInfo.js delete mode 100644 src/react/TileInfoLine.js delete mode 100644 src/react/index.js delete mode 100644 src/style/scss/_common.scss delete mode 100644 src/style/scss/_components.scss delete mode 100644 src/style/scss/angular/_svg_icon.scss delete mode 100644 src/style/scss/angular/_tooltip_custom_style.scss delete mode 100644 src/style/scss/common/_animation.scss delete mode 100644 src/style/scss/common/_icons.scss delete mode 100644 src/style/scss/common/_normalize.scss delete mode 100644 src/style/scss/common/_typography.scss delete mode 100644 src/style/scss/common/base.scss delete mode 100644 src/style/scss/common/mixins.scss delete mode 100644 src/style/scss/common/variables.scss delete mode 100644 src/style/scss/style.scss delete mode 100644 src/style/scss/themes/1802/_components.scss delete mode 100644 src/style/scss/themes/1802/button.scss delete mode 100644 src/style/scss/themes/1802/modal.scss delete mode 100644 src/style/scss/themes/1802/style.scss delete mode 100644 src/style/scss/themes/1802/tabs.scss delete mode 100644 stories/README.md create mode 100644 stories/angular/accordion.stories.ts create mode 100644 stories/angular/autocomplete.stories.ts create mode 100644 stories/angular/button.stories.ts create mode 100644 stories/angular/checkbox.stories.ts create mode 100644 stories/angular/checklist.stories.ts create mode 100644 stories/angular/colors.stories.ts create mode 100644 stories/angular/dropdown.stories.ts create mode 100644 stories/angular/filter-bar.stories.ts create mode 100644 stories/angular/helpers/autocomplete-server-mock.json create mode 100644 stories/angular/helpers/colors-table.component.ts create mode 100644 stories/angular/helpers/index.ts create mode 100644 stories/angular/helpers/keys.pipe.ts create mode 100644 stories/angular/helpers/modal-consumer.component.ts create mode 100644 stories/angular/helpers/modal-inner-content-example.component.ts create mode 100644 stories/angular/index.ts create mode 100644 stories/angular/infinite-scroll.stories.ts create mode 100644 stories/angular/input.stories.ts create mode 100644 stories/angular/loader.stories.ts create mode 100644 stories/angular/modal.stories.ts create mode 100644 stories/angular/multiline-ellipsis.stories.ts create mode 100644 stories/angular/notifications.stories.ts create mode 100644 stories/angular/popup-menu.stories.ts create mode 100644 stories/angular/radio-button-group.stories.ts create mode 100644 stories/angular/search-bar.stories.ts create mode 100644 stories/angular/styles.scss create mode 100644 stories/angular/svg-icon.stories.ts create mode 100644 stories/angular/tabs.stories.ts create mode 100644 stories/angular/tag-cloud.stories.ts create mode 100644 stories/angular/tile.stories.ts create mode 100644 stories/angular/tooltip.stories.ts create mode 100644 stories/angular/validation.stories.ts delete mode 100644 stories/ng2-component-lab/accordion.component.exp.ts delete mode 100644 stories/ng2-component-lab/autocomplete.component.exp.ts delete mode 100644 stories/ng2-component-lab/button.component.exp.ts delete mode 100644 stories/ng2-component-lab/checkbox.component.exp.ts delete mode 100644 stories/ng2-component-lab/checklist.component.exp.ts delete mode 100644 stories/ng2-component-lab/colors.component.exp.ts delete mode 100644 stories/ng2-component-lab/components.module.ts delete mode 100644 stories/ng2-component-lab/components/colors-table.component.ts delete mode 100644 stories/ng2-component-lab/components/modal-consumer.component.ts delete mode 100644 stories/ng2-component-lab/components/modal-inner-content-example.component.ts delete mode 100644 stories/ng2-component-lab/components/notifications-example.component.ts delete mode 100644 stories/ng2-component-lab/components/svg-icons-table.component.ts delete mode 100644 stories/ng2-component-lab/dropdown.component.exp.ts delete mode 100644 stories/ng2-component-lab/filter-bar.component.exp.ts delete mode 100644 stories/ng2-component-lab/infinite-scroll.component.exp.ts delete mode 100644 stories/ng2-component-lab/input.component.exp.ts delete mode 100644 stories/ng2-component-lab/modals.component.exp.ts delete mode 100644 stories/ng2-component-lab/notification.component.exp.ts delete mode 100644 stories/ng2-component-lab/pipes/search-filter-pipe.ts delete mode 100644 stories/ng2-component-lab/popup-menu.component.exp.ts delete mode 100644 stories/ng2-component-lab/radio.component.exp.ts delete mode 100644 stories/ng2-component-lab/search-bar.component.exp.ts delete mode 100644 stories/ng2-component-lab/svg-icon.component.exp.ts delete mode 100644 stories/ng2-component-lab/tabs.component.exp.ts delete mode 100644 stories/ng2-component-lab/tag-cloud.component.exp.ts delete mode 100644 stories/ng2-component-lab/tiles.component.exp.ts delete mode 100644 stories/ng2-component-lab/tooltip.directive.exp.ts delete mode 100644 stories/ng2-component-lab/utils/mock.json delete mode 100644 stories/ng2-component-lab/utils/pipes/keys.pipe.ts delete mode 100644 stories/ng2-component-lab/validation.component.exp.ts delete mode 100644 stories/react/Accordion.stories.js delete mode 100644 stories/react/Checkbox.stories.js delete mode 100644 stories/react/Checklist.stories.js delete mode 100644 stories/react/Colors.stories.js delete mode 100644 stories/react/Input.stories.js delete mode 100644 stories/react/Modal.stories.js delete mode 100644 stories/react/Panel.stories.js delete mode 100644 stories/react/PopupMenu.stories.js delete mode 100644 stories/react/Radio.stories.js delete mode 100644 stories/react/RadioGroup.stories.js delete mode 100644 stories/react/SVGIcon.stories.js delete mode 100644 stories/react/Tabs.stories.js delete mode 100644 stories/react/Tiles.stories.js delete mode 100644 stories/react/Typography.stories.js delete mode 100644 stories/react/buttons/LinkButtons.stories.js delete mode 100644 stories/react/buttons/PrimaryButtons.stories.js delete mode 100644 stories/react/buttons/SecondaryButtons.stories.js delete mode 100644 stories/react/index.js delete mode 100644 stories/react/utils/BeautifyHTML.js delete mode 100644 stories/react/utils/Examples.js delete mode 100644 stories/react/utils/InsertSVGIcons.js delete mode 100644 stories/react/utils/SourceToggle.js delete mode 100644 stories/react/utils/components/DropdownMenu.js delete mode 100644 stories/react/utils/jsxToString.js delete mode 100644 test/react/Accordion.spec.js delete mode 100644 test/react/Button.spec.js delete mode 100644 test/react/Checkbox.spec.js delete mode 100644 test/react/Checklist.spec.js delete mode 100644 test/react/Input.spec.js delete mode 100644 test/react/Modal.spec.js delete mode 100644 test/react/ModalBody.spec.js delete mode 100644 test/react/ModalFooter.spec.js delete mode 100644 test/react/ModalHeader.spec.js delete mode 100644 test/react/ModalTitle.spec.js delete mode 100644 test/react/Panel.spec.js delete mode 100644 test/react/PopupMenu.spec.js delete mode 100644 test/react/PopupMenuItem.spec.js delete mode 100644 test/react/Portal.spec.js delete mode 100644 test/react/Radio.spec.js delete mode 100644 test/react/RadioGroup.spec.js delete mode 100644 test/react/Tabs.spec.js delete mode 100644 test/react/Tile.spec.js delete mode 100644 test/react/__snapshots__/Accordion.spec.js.snap delete mode 100644 test/react/__snapshots__/Button.spec.js.snap delete mode 100644 test/react/__snapshots__/Checkbox.spec.js.snap delete mode 100644 test/react/__snapshots__/Checklist.spec.js.snap delete mode 100644 test/react/__snapshots__/Input.spec.js.snap delete mode 100644 test/react/__snapshots__/Modal.spec.js.snap delete mode 100644 test/react/__snapshots__/ModalBody.spec.js.snap delete mode 100644 test/react/__snapshots__/ModalFooter.spec.js.snap delete mode 100644 test/react/__snapshots__/ModalHeader.spec.js.snap delete mode 100644 test/react/__snapshots__/ModalTitle.spec.js.snap delete mode 100644 test/react/__snapshots__/Panel.spec.js.snap delete mode 100644 test/react/__snapshots__/PopupMenu.spec.js.snap delete mode 100644 test/react/__snapshots__/PopupMenuItem.spec.js.snap delete mode 100644 test/react/__snapshots__/Radio.spec.js.snap delete mode 100644 test/react/__snapshots__/RadioGroup.spec.js.snap delete mode 100644 test/react/__snapshots__/Tabs.spec.js.snap delete mode 100644 test/react/__snapshots__/Tile.spec.js.snap delete mode 100644 test/react/utils/htmlLoader.js delete mode 100644 test/react/utils/svgMock.js create mode 100644 tsconfig-aot.json create mode 100644 tsconfig-sitebook.json delete mode 100644 tsconfig.angular.build-es5.json delete mode 100644 tsconfig.json delete mode 100644 tslint.json delete mode 100644 utils/build-demo.js delete mode 100644 utils/create-icon-map.js delete mode 100644 utils/create-svg-icons-map.js delete mode 100644 utils/index-for-gh-pages.html delete mode 100644 utils/main-page.html delete mode 100644 utils/scripts/map-sources.js create mode 100644 webpack-umd.config.ts delete mode 100644 webpack.build.config.js delete mode 100644 webpack/helpers.js delete mode 100644 webpack/webpack.test.js create mode 100644 wiki/Adding_a_new_component.md create mode 100644 wiki/Adding_a_new_component_to_storybook.md create mode 100644 wiki/Contribution_guide.md create mode 100644 wiki/Deploying_storybook_to_a_forks_github_pages.md create mode 100644 wiki/Understanding_project_build.md create mode 100644 wiki/home.md diff --git a/.babelrc b/.babelrc deleted file mode 100644 index a4105e9..0000000 --- a/.babelrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "presets": ["react", "env"], - "plugins": ["transform-object-rest-spread"] -} \ No newline at end of file diff --git a/.editorconfig b/.editorconfig index 5ba69e2..6e87a00 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,18 +1,13 @@ -# EditorConfig is awesome: http://EditorConfig.org - -# top-most EditorConfig file +# Editor configuration, see http://editorconfig.org root = true -# Unix-style newlines with a newline ending every file [*] -end_of_line = lf charset = utf-8 -trim_trailing_whitespace = true +indent_style = space +indent_size = 2 insert_final_newline = true +trim_trailing_whitespace = true -# tab indentation -[framework/**.js] -[framework/**.jsx] -[resources/**.scss] -indent_style = space -indent_size = 4 +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.env b/.env new file mode 100644 index 0000000..d24e628 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +STORYBOOK_EXAMPLE_APP=true diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 5a7f317..0000000 --- a/.eslintrc +++ /dev/null @@ -1,135 +0,0 @@ -{ - "parser": "babel-eslint", - "env": { - "es6": true, - "node": true, - "jest": true - }, - "plugins": [ - "react", - "import" - ], - "ecmaFeatures": { - "jsx": true, - "classes": true, - "modules": true - }, - "globals": { - "ICON_PATH": true, - "ICON_NAMES": true - }, - "rules": { - "linebreak-style": 0, - "no-unused-vars": 2, - "no-bitwise": 0, - "no-eq-null": 2, - "eqeqeq": 2, - "wrap-iife": [ - 2, - "any" - ], - "no-unused-expressions": 2, - "indent": [ - 1, - "tab", - { - "SwitchCase": 1 - } - ], - "no-use-before-define": 2, - "new-cap": [ - 2, - { - "capIsNewExceptions": [ - "DataTable", - "V" - ] - } - ], - "no-caller": 2, - "no-empty": 2, - "no-undef": 2, - "quotes": [ - 2, - "single", - "avoid-escape" - ], - "jsx-quotes": [ - 2, - "prefer-single" - ], - "no-plusplus": 0, - "no-cond-assign": [ - 2, - "except-parens" - ], - "comma-style": [ - 2, - "last" - ], - "no-invalid-this": 0, - "dot-notation": 0, - "max-len": [ - 1, - 200 - ], - "camelcase": [ - 2, - { - "properties": "never" - } - ], - "curly": 2, - "brace-style": 0, - "semi": [ - 2, - "always" - ], - "space-in-brackets": [ - 0, - "never" - ], - "space-infix-ops": 2, - "import/default": 0, - "import/no-unresolved": 0, - "import/no-named-as-default": 2, - "import/no-duplicates": 0, - "import/imports-first": 2, - "import/export": 2, - "react/display-name": 0, - "react/forbid-prop-types": 0, - "react/jsx-boolean-value": 0, - "react/jsx-closing-bracket-location": [ - 1, - { - "nonEmpty": "after-props", - "selfClosing": "after-props" - } - ], - "react/jsx-curly-spacing": 0, - "react/jsx-indent-props": [ - 1, - "tab" - ], - "react/jsx-max-props-per-line": 0, - "react/jsx-no-duplicate-props": 1, - "react/jsx-no-literals": 0, - "react/jsx-no-undef": 1, - "react/jsx-sort-prop-types": 0, - "react/jsx-sort-props": 0, - "react/jsx-uses-react": 1, - "react/jsx-uses-vars": 1, - "react/no-danger": 1, - "react/no-did-mount-set-state": 2, - "react/no-did-update-set-state": 2, - "react/no-direct-mutation-state": 1, - "react/no-multi-comp": 0, - "react/no-set-state": 0, - "react/no-unknown-property": 1, - "react/prop-types": 0, - "react/react-in-jsx-scope": 1, - "react/self-closing-comp": 1, - "react/sort-comp": 0, - "react/jsx-wrap-multilines": 1 - } -} diff --git a/.gitignore b/.gitignore index 75d10d0..aa3e68d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,31 +1,40 @@ # See http://help.github.com/ignore-files/ for more about ignoring files. +# compiled output /dist /tmp -/lib -/build +/out-tsc +/.storybook-out + +# dependencies /node_modules -npm-debug.log* -Thumbs.db -# IDEA files -.idea -.vscode -.history -package-lock.json -# build files -lib -css -demo/gen -.out -src/react/utils/iconMap.js +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace -#coverage files -coverage +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json -#ignore generated icons files -src/common/icons-map.ts -src/common/icons-map.json +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings -/node/* -/yarn.lock +# System Files +.DS_Store +Thumbs.db diff --git a/.gitreview b/.gitreview index 50cc496..6cbd413 100644 --- a/.gitreview +++ b/.gitreview @@ -1,4 +1,4 @@ [gerrit] host=gerrit.onap.org port=29418 -project=sdc/onap-ui.git +project=sdc/onap-ui-angular.git diff --git a/.ng2-component-lab/lab-configuration.module.ts b/.ng2-component-lab/lab-configuration.module.ts deleted file mode 100644 index d9305dd..0000000 --- a/.ng2-component-lab/lab-configuration.module.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { createLab } from '@islavi/ng2-component-lab'; -import { ComponentsModule } from './../stories/ng2-component-lab/components.module'; - -const themeName:string = 'default'; -//const themeName:string = '1802'; - -// Select the theme -if (themeName === '1802') { - require('./themes/ng2-component-lab-theme-1802.scss'); -} else { - // Default theme - require('./ng2-component-lab.scss'); -} - -createLab({ - /** - * NgModule to import. All components and pipes must be exported - * by this module to be useable in your experiments - */ - ngModule: ComponentsModule, - /** - * Function that returns an array of experiments. - * - * Here is an example using webpack's `require.context` to - * load all modules ending in `.exp.ts` and returning thier - * default exports as an array: - */ - loadExperiments() { - const context = (require as any).context('./../stories/ng2-component-lab', true, /\.exp\.ts/); - var result = context.keys().map(context).map(mod => mod.default); - context.keys().forEach(key => { - console.log("Going to require: " + key); - }); - return result; - } -}); diff --git a/.ng2-component-lab/ng2-component-lab.config.js b/.ng2-component-lab/ng2-component-lab.config.js deleted file mode 100644 index 963ac45..0000000 --- a/.ng2-component-lab/ng2-component-lab.config.js +++ /dev/null @@ -1,11 +0,0 @@ -var getWebPackConfig = require('../ng2-component-lab.webpack.config.js'); - -module.exports = { - webpackConfig: getWebPackConfig, - host: 'localhost', - port: 6007, - include: [], - suites: { - feature: './.ng2-component-lab/lab-configuration.module.ts' - } -}; diff --git a/.ng2-component-lab/ng2-component-lab.scss b/.ng2-component-lab/ng2-component-lab.scss deleted file mode 100644 index 28f0f7b..0000000 --- a/.ng2-component-lab/ng2-component-lab.scss +++ /dev/null @@ -1,58 +0,0 @@ -@font-face { - font-family: 'OpenSans-Regular'; - font-style: normal; - font-weight: 400; - src: - local('Open Sans Regular'), - local('OpenSans-Regular'), - url(https://fonts.gstatic.com/s/opensans/v15/cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2) format('woff2'), - url(http://fonts.gstatic.com/s/opensans/v15/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff) format('woff'); -} -@font-face { - font-family: 'OpenSans-Italic'; - font-style: normal; - font-weight: 400; - src: - local('Open Sans Italic'), - local('OpenSans-Italic'), - url(https://fonts.gstatic.com/s/opensans/v15/xjAJXh38I15wypJXxuGMBogp9Q8gbYrhqGlRav_IXfk.woff2) format('woff2'), - url(http://fonts.gstatic.com/s/opensans/v15/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff) format('woff'); -} -@font-face { - font-family: 'OpenSans-Semibold'; - font-style: normal; - font-weight: 400; - src: - local('Open Sans Semibold'), - local('OpenSans-Semibold'), - url(https://fonts.gstatic.com/s/opensans/v15/MTP_ySUJH_bn48VBG8sNShampu5_7CjHW5spxoeN3Vs.woff2) format('woff2'), - url(http://fonts.gstatic.com/s/opensans/v15/MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff) format('woff'); -} - -@import '../src/style/scss/style.scss'; - -.colors-table { - width: 75%; - display: flex; - flex-wrap: wrap; - justify-content: flex-start; - font-size: 13px; - .color-section { - display: flex; - flex-direction: column; - margin: 10px 0; - min-width: 150px; - div { - align-self: center; - user-select: text; - } - $circle-size: 40px; - .color-circle { - height: $circle-size; - width: $circle-size; - border-radius: $circle-size; - padding: 10px; - text-align: center; - } - } -} diff --git a/.ng2-component-lab/themes/ng2-component-lab-theme-1802.scss b/.ng2-component-lab/themes/ng2-component-lab-theme-1802.scss deleted file mode 100644 index 59cf05e..0000000 --- a/.ng2-component-lab/themes/ng2-component-lab-theme-1802.scss +++ /dev/null @@ -1,58 +0,0 @@ -@font-face { - font-family: 'OpenSans-Regular'; - font-style: normal; - font-weight: 400; - src: - local('Open Sans Regular'), - local('OpenSans-Regular'), - url(https://fonts.gstatic.com/s/opensans/v15/cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2) format('woff2'), - url(http://fonts.gstatic.com/s/opensans/v15/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff) format('woff'); -} -@font-face { - font-family: 'OpenSans-Italic'; - font-style: normal; - font-weight: 400; - src: - local('Open Sans Italic'), - local('OpenSans-Italic'), - url(https://fonts.gstatic.com/s/opensans/v15/xjAJXh38I15wypJXxuGMBogp9Q8gbYrhqGlRav_IXfk.woff2) format('woff2'), - url(http://fonts.gstatic.com/s/opensans/v15/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff) format('woff'); -} -@font-face { - font-family: 'OpenSans-Semibold'; - font-style: normal; - font-weight: 400; - src: - local('Open Sans Semibold'), - local('OpenSans-Semibold'), - url(https://fonts.gstatic.com/s/opensans/v15/MTP_ySUJH_bn48VBG8sNShampu5_7CjHW5spxoeN3Vs.woff2) format('woff2'), - url(http://fonts.gstatic.com/s/opensans/v15/MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff) format('woff'); -} - -@import './../../src/style/scss/themes/1802/style.scss'; - -.colors-table { - width: 75%; - display: flex; - flex-wrap: wrap; - justify-content: flex-start; - font-size: 13px; - .color-section { - display: flex; - flex-direction: column; - margin: 10px 0; - min-width: 150px; - div { - align-self: center; - user-select: text; - } - $circle-size: 40px; - .color-circle { - height: $circle-size; - width: $circle-size; - border-radius: $circle-size; - padding: 10px; - text-align: center; - } - } -} diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 7d482d2..0000000 --- a/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -/dist - -# IDEA files -.idea -.vscode -.history diff --git a/.storybook/addons.js b/.storybook/addons.js new file mode 100644 index 0000000..2cf64c7 --- /dev/null +++ b/.storybook/addons.js @@ -0,0 +1,7 @@ +import '@storybook/addon-storysource/register'; +import '@storybook/addon-actions/register'; +import '@storybook/addon-links/register'; +import '@storybook/addon-notes/register'; +import '@storybook/addon-knobs/register'; +import '@storybook/addon-options/register'; +import '@storybook/addon-backgrounds/register'; diff --git a/.storybook/config.js b/.storybook/config.js index 5896dcc..cdfdaee 100644 --- a/.storybook/config.js +++ b/.storybook/config.js @@ -1,8 +1,17 @@ -import { configure } from '@storybook/react'; -import './storybook.scss'; +import { configure } from '@storybook/angular'; +import { setOptions } from '@storybook/addon-options'; + +setOptions({ + hierarchyRootSeparator: /\|/, +}); function loadStories() { - require('../stories/react'); + // put welcome screen at the top of the list so it's the first one displayed + require('../stories/angular'); + + // automatically import all story ts files that end with *.stories.ts + const req = require.context('../stories/angular', true, /\.stories\.ts$/); + req.keys().forEach(filename => req(filename)); } configure(loadStories, module); diff --git a/.storybook/storybook.scss b/.storybook/storybook.scss deleted file mode 100644 index ce905cf..0000000 --- a/.storybook/storybook.scss +++ /dev/null @@ -1,231 +0,0 @@ -@import 'typography.scss'; -@import '../src/style/scss/style.scss'; -@import '~prismjs/themes/prism.css'; - -body { - @include base-font-regular(); - margin: 15px; - max-width: 800px; -} - -a { - color: #1474f3; - text-decoration: none; - border-bottom: 1px solid #1474f3; - padding-bottom: 2px; -} - -.colors-table { - width: 100%; - display: flex; - flex-wrap: wrap; - justify-content: flex-start; - font-size: 13px; - .color-section { - display: flex; - flex-direction: column; - margin: 10px 0; - min-width: 150px; - div { - align-self: center; - user-select: text; - } - $circle-size: 40px; - .color-circle { - height: $circle-size; - width: $circle-size; - border-radius: $circle-size; - padding: 10px; - text-align: center; - } - } -} - -.icons-screen { - width: 1190px; - .missing-icon-section { - border-top: 1px solid $light-gray; - padding-top: 10px; - } - .icons-option-selector { - margin-top: 20px; - margin-bottom: 20px; - display: flex; - .option-container { - display: flex; - flex-direction: column; - flex-basis: 100%; - margin-right: 20px; - } - } - - .icons-table { - margin-top: 50px; - width: 100%; - display: flex; - flex-wrap: wrap; - border-top: 1px solid $light-gray; - justify-content: flex-start; - .icon-section { - display: flex; - flex-direction: column; - margin: 10px; - min-width: 150px; - .svg-icon-wrapper { - cursor: pointer; - width: 20px; - height: 42px; - margin-left: auto; - margin-right: auto; - .svg-icon-label { - font-size: 12px; - } - } - } - } - - .svg-icon { - &.storybook-big { - width: 120px; - height: 120px; - } - &.storybook-small { - width: 60px; - height: 60px; - } - } -} - -.sdc-popup-menu { - @include box-shadow(0 1px 3px 0 rgba(0, 0, 0, 0.2)); - width: 200px; - height: 200px; - border: 1px solid $light-gray; -} - -.typography-screen { - .typography-section { - margin: 20px 0; - } - ul { - font-size: 18px; - } - .typo-table { - .typo-section { - div { - display: inline-block; - //border: 1px solid black; - width: 30%; - margin: 4px 0; - } - .sample-text { - white-space: nowrap; - - } - } - } - .heading-1 { - @include heading-1; - } - .heading-2 { - @include heading-2; - } - .heading-3 { - @include heading-3; - } - .heading-4 { - @include heading-4; - } - .heading-4-emphasis { - @include heading-4-emphasis; - } - .heading-5 { - @include heading-5; - } - - .body-1 { - @include body-1; - } - - .body-1-italic { - @include body-1-italic; - } - - .body-2 { - @include body-2; - } - - .body-2-emphasis { - @include body-2-emphasis; - } - - .body-3 { - @include body-3; - } - - .body-3-emphasis { - @include body-3-emphasis; - } - - .body-4 { - @include body-4; - } -} - -.source-toggle-wrapper { - .source-toggle-title { - @include heading-2; - } - .source-toggle { - display: flex; - border-top: 1px solid $light-gray; - padding: 10px 0; - &:first-child { - border-top: none; - } - .source-toggle-example { - flex-basis: 40%; - flex-shrink: 0; - } - .source-toggle-code { - background-color: $light-silver; - padding: 5px; - margin-left: 30px; - pre { - margin-top: 0; - user-select: text; - overflow-x: auto; - overflow-y: hidden; - max-width: 800px; - code { - font-size: 15px; - font-weight: 600; - padding: 2px 5px; - border: 1px solid #eae9e9; - border-radius: 4px; - background-color: #f3f2f2; - color: #3a3a3a; - .token { - line-height: 20px; - } - } - } - .source-toggle-code-tabs { - display: flex; - margin-bottom: 10px; - .source-toggle-tab { - @include body-1; - @include base-font-semibold; - margin-right: 20px; - cursor: pointer; - &.selected { - border-bottom: 2px solid $dark-blue; - color: $dark-blue; - font-weight: bold; - } - } - } - } - } -} - diff --git a/.storybook/tsconfig.json b/.storybook/tsconfig.json new file mode 100644 index 0000000..b99b549 --- /dev/null +++ b/.storybook/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../tsconfig-sitebook.json", + "exclude": [ + "../src/angular/test.ts", + "../src/angular/**/*.spec.ts" + ], + "include": [ + "../src/angular/**/*" + ] +} diff --git a/.storybook/typography.scss b/.storybook/typography.scss deleted file mode 100644 index 36f9b02..0000000 --- a/.storybook/typography.scss +++ /dev/null @@ -1,30 +0,0 @@ -@font-face { - font-family: 'OpenSans-Regular'; - font-style: normal; - font-weight: 400; - src: - local('Open Sans Regular'), - local('OpenSans-Regular'), - url(https://fonts.gstatic.com/s/opensans/v15/cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2) format('woff2'), - url(http://fonts.gstatic.com/s/opensans/v15/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff) format('woff'); -} -@font-face { - font-family: 'OpenSans-Italic'; - font-style: normal; - font-weight: 400; - src: - local('Open Sans Italic'), - local('OpenSans-Italic'), - url(https://fonts.gstatic.com/s/opensans/v15/xjAJXh38I15wypJXxuGMBogp9Q8gbYrhqGlRav_IXfk.woff2) format('woff2'), - url(http://fonts.gstatic.com/s/opensans/v15/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff) format('woff'); -} -@font-face { - font-family: 'OpenSans-Semibold'; - font-style: normal; - font-weight: 400; - src: - local('Open Sans Semibold'), - local('OpenSans-Semibold'), - url(https://fonts.gstatic.com/s/opensans/v15/MTP_ySUJH_bn48VBG8sNShampu5_7CjHW5spxoeN3Vs.woff2) format('woff2'), - url(http://fonts.gstatic.com/s/opensans/v15/MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff) format('woff'); -} diff --git a/.storybook/webpack.config.js b/.storybook/webpack.config.js index a923d80..27e132b 100644 --- a/.storybook/webpack.config.js +++ b/.storybook/webpack.config.js @@ -1,39 +1,19 @@ - const path = require('path'); -const webpack = require('webpack'); -const svgFolder = './assets/icons/'; -const fs = require('fs'); - -let iconNames = []; -fs.readdirSync(svgFolder).forEach(file => { - let fileName = file.split('.'); - if (fileName[0] && fileName[1] === 'svg') { - iconNames.push(fileName[0]); - } -}); +module.exports = baseConfig => { + baseConfig.module.rules.push({ + test: [/\.stories\.ts?$/, /index\.ts$/], + loaders: [ + { + loader: require.resolve('@storybook/addon-storysource/loader'), + options: { + parser: 'typescript', + }, + }, + ], + include: [path.resolve(__dirname, '../stories/angular')], + enforce: 'pre', + }); -module.exports = { - module: { - rules: [ - { - test: /.scss$/, - use: ['style-loader', 'css-loader', 'sass-loader'], - include: path.resolve(__dirname, '../') - }, - { - test: /.html$/, - loader: 'html-loader', - options: { - minimize: false - } - } - ] - }, - plugins: [ - new webpack.DefinePlugin({ - 'ICON_PATH': '"./"', - 'ICON_NAMES':JSON.stringify(iconNames) - }) - ] + return baseConfig; }; diff --git a/.travis.yml b/.travis.yml index 3afac06..e2d84a0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,10 @@ language: node_js node_js: -- 6 +- 8 install: npm install script: -- npm run build-common -- npm test - npm run build -- npm run build-gh-pages +- npm run storybook:build deploy: - provider: npm email: onap.sdc@gmail.com @@ -14,18 +12,11 @@ deploy: skip_cleanup: true on: tags: true - repo: onap-sdc/sdc-ui + repo: onap-sdc/onap-ui-angular - provider: pages - repo: onap-sdc/sdc-ui + repo: onap-sdc/onap-ui-angular skip_cleanup: true github_token: $GITHUB_TOKEN - local_dir: .out + local_dir: .storybook-out on: branch: master - - provider: pages - skip_cleanup: true - github_token: $GITHUB_TOKEN - local_dir: .out - on: - all_branches: true - condition: $DEPLOY = 1 diff --git a/INFO.yaml b/INFO.yaml deleted file mode 100644 index b7cfe73..0000000 --- a/INFO.yaml +++ /dev/null @@ -1,55 +0,0 @@ ---- -project: 'sdc/onap-ui' -project_creation_date: '2018-02-23' -lifecycle_state: 'Incubation' -project_lead: &onap_releng_ptl - name: 'Michael Lando' - email: 'ml636r@att.com' - id: 'ml636r' - company: 'ATT' - timezone: 'Israel/Lod' -primary_contact: *onap_releng_ptl -issue_tracking: - type: 'jira' - url: 'https://jira.onap.org/projects/SDC' - key: 'SDC' -meetings: - - type: 'zoom' - agenda: '' - url: 'https://wiki.onap.org/pages/viewpage.action?pageId=6592847' - server: 'n/a' - channel: 'n/a' - repeats: 'weekly' - time: '14:00 UTC' -committers: - - <<: *onap_releng_ptl - - name: 'Idan Amit' - email: 'ia096e@intl.att.com' - company: 'ATT' - id: 'idanamit' - timezone: 'Israel/Aviv' - - name: 'Einav Keidar' - email: 'einavw@amdocs.com' - company: 'ATT' - id: 'einavk' - timezone: 'Israel/Aviv' - - name: 'Tal Gitelman' - email: 'tg851x@intl.att.com' - company: 'ATT' - id: 'tgitelman' - timezone: 'Israel/Aviv' - - name: 'ELI LEVY' - email: 'el489u@intl.att.com' - company: 'ATT' - id: 'el489u' - timezone: 'Israel/Lod' -tsc: - approval: 'https://lists.onap.org/pipermail/onap-tsc' - changes: - - type: 'Addition' - name: 'Michael Lando' - name: 'Idan Amit' - name: 'Einav Keidar' - name: 'Tal Gitelman' - name: 'ELI LEVY' - link: 'https://wiki.onap.org/pages/viewpage.action?pageId=25435557' diff --git a/README.md b/README.md index e83552b..edebfc1 100644 --- a/README.md +++ b/README.md @@ -1,71 +1,66 @@ -# SDC-UI Style-Guide and Components +# ONAP-UI-ANGULAR Style-Guide and Components This project aims to create a unified UI styled components for multiple development teams who work on the same web-based applications. This repository contains the definition of all the basic widgets and reusable controllers. - +Note: the project is build of 3 different projects: +1. [onap-ui-common](https://github.com/onap-sdc/onap-ui-common) - contains HTML and SCSS files for all components +2. [onap-ui-angular](https://github.com/onap-sdc/onap-ui-angular) - contains Angular components according to the HTML defined in onap-ui-common +3. [onap-ui-react](https://github.com/onap-sdc/onap-ui-react) - contains React components according to the HTML defined in onap-ui-common + + ### Usage -#### Link the library's CSS file -There are several options to link to sdc-ui CSS file: +To start using this library you need to install 2 libraris: +1. onap-ui-angular or onap-ui-react. +2. onap-ui-common -###### SCSS -```scss -@import "path_to_node_modules/sdc-ui/css/style.css"; -``` -###### HTML -```html - -``` -###### As Module (Using loading tool, i.e. [Webpack](https://webpack.github.io/)) ```js -import 'sdc-ui/css/style.css'; +npm install --save-dev onap-ui-angular +npm install --save-dev onap-ui-common ``` + +#### Link the library's CSS file +The main CSS file is defined in onap-ui-common library. +There are several options to link it to your project: + ###### Angular CLI projects -You can add this line to style.css file: +You can add this line to src/style.css file: ```js -@import "../node_modules/sdc-ui/css/style.css"; +@import "node_modules/onap-ui-common/lib/style.css"; ``` -#### React Code examples -###### Importing particular component +Angular CLI project has angular.json file, that defines location of styles files. +By default angular.json contains the following definition: ```js -import Button from 'sdc-ui/lib/react/Button.js'; - -// inside component rendering... -render(){ - return ( - - ); -} + "styles": [ + "src/styles.css" + ], ``` -###### Importing particular component from the react library -```js -import {Button} from 'sdc-ui/lib/react'; - -// inside component rendering... -render(){ - return ( - - ); -} +So you can add to src/styles.css import of onap-ui-common styles. + +###### HTML +```html + ``` -###### Importing the entire library + +###### As Module (Using loading tool, i.e. [Webpack](https://webpack.github.io/)) ```js -import SDCUI from 'sdc-ui'; - -// inside component rendering... -render(){ - return ( - I am still a Button - ); -} +import 'onap-ui-common/lib/style.css'; ``` -#### Using the library in Angular (2-5) +###### Importing SCSS typography files +onap-ui-common also contains to SCSS files: +variables.scss +mixins.scss + +You can import these files to your project and get the same color scheme and variables line onap-ui-common. + + +#### Using the library in latest Angular (6) ###### Add the library to your module ```js - import { SdcUiComponentsModule, SdcUiComponents } from 'sdc-ui/lib/angular'; + import { SdcUiComponentsModule, SdcUiComponents } from 'onap-ui-angular'; @NgModule({ declarations: [ @@ -87,25 +82,23 @@ render(){ ### Running storybook -The components in this library are displayed via [storybook](https://github.com/storybooks/storybook). Head to [http://onap-sdc.github.io/sdc-ui](http://onap-sdc.github.io/sdc-ui) to see the components that are in `master`. +The components in this library are displayed via [storybook](https://github.com/storybooks/storybook). Head to [http://onap-sdc.github.io/onap-ui-angular](http://onap-sdc.github.io/onap-ui-angular) to see the components that are in `master`. While developing, just run `npm run storybook` in your terminal to launch a local storybook server where you can see your changes. For deploying storybook to your own fork repository, refer to the guides section below. -### Running component-lab -To see angular components in design run: npm run lab +### Useful guides +[Adding a new component](https://github.com/onap-sdc/onap-ui-angular/wiki/Adding-a-new-component) +[Deploying storybook to a fork's github pages](https://github.com/onap-sdc/onap-ui-angular/wiki/Deploying-storybook-to-a-fork's-github-pages) -### Useful guides -[Adding a new component](https://github.com/onap-sdc/sdc-ui/wiki/Adding-a-new-component) +[Understanding project build](https://github.com/onap-sdc/onap-ui-angular/wiki/Understanding-project-build) -[Deploying storybook to a fork's github pages](https://github.com/onap-sdc/sdc-ui/wiki/Deploying-storybook-to-a-fork's-github-pages) - ### Having some trouble? Have an issue? -For bugs and issues, please use the [issues](https://github.com/onap-sdc/sdc-ui/issues) page +For bugs and issues, please use the [issues](https://github.com/onap-sdc/onap-ui-angular/issues) page ### How to Contribute **Contribution can be made only by following these guide lines** -* This project combines both `React` & `Angular` framework libraries. Hence, every change in the basic HTML files structure, must be followed by changes on the frameworks files accordingly (under `src/react` and `src/angular`). +* This project combines both `React` & `Angular` framework libraries. Hence, every change in the basic HTML files structure, must be followed by changes on react and angular projects ([onap-ui-angular](https://github.com/onap-sdc/onap-ui-angular), [onap-ui-react](https://github.com/onap-sdc/onap-ui-react)). * There will be no any 3rd party UI framework imported (i.e. `Bootstrap`, `Material`, `Foundation`... etc.). -* Contribution are done only by the [contribution guide](https://github.com/onap-sdc/sdc-ui/wiki/Contribution-guide). Contributions submitted not in this format and guidelines will not be considered. +* Contribution are done only by the [contribution guide](https://github.com/onap-sdc/onap-ui-angular/wiki/Contribution-guide). Contributions submitted not in this format and guidelines will not be considered. diff --git a/angular.json b/angular.json new file mode 100644 index 0000000..318d770 --- /dev/null +++ b/angular.json @@ -0,0 +1,105 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "onap-ui-angular": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "prefix": "", + "schematics": {}, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/onap-ui-angular", + "index": "src/angular/index.html", + "main": "src/angular/index.ts", + "polyfills": "src/angular/polyfills.ts", + "tsConfig": "src/angular/tsconfig.app.json", + "assets": [ + "src/angular/favicon.ico", + "src/assets" + ], + "styles": [ + "src/assets/styles/style.scss" + ], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": true, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "onap-ui-angular:build" + }, + "configurations": { + "production": { + "browserTarget": "onap-ui-angular:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "onap-ui-angular:build" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "src/tsconfig.app.json", + "src/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, + "onap-ui-angular-e2e": { + "root": "e2e/", + "projectType": "application", + "architect": { + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "onap-ui-angular:serve" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": "e2e/tsconfig.e2e.json", + "exclude": [ + "**/node_modules/**" + ] + } + } + } + } + }, + "defaultProject": "onap-ui-angular" +} \ No newline at end of file diff --git a/assets/README.md b/assets/README.md deleted file mode 100644 index 5f2681b..0000000 --- a/assets/README.md +++ /dev/null @@ -1,9 +0,0 @@ - -# Folder Structure - -### icons -Contains `svg` icons **ONLY** - - -### images -Contains large images (if any...) diff --git a/assets/icons/angleDoubleLeft.svg b/assets/icons/angleDoubleLeft.svg deleted file mode 100644 index 9e1591a..0000000 --- a/assets/icons/angleDoubleLeft.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/assets/icons/angleDoubleRight.svg b/assets/icons/angleDoubleRight.svg deleted file mode 100644 index e77031a..0000000 --- a/assets/icons/angleDoubleRight.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/assets/icons/angleLeft.svg b/assets/icons/angleLeft.svg deleted file mode 100644 index b2d2f81..0000000 --- a/assets/icons/angleLeft.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/assets/icons/angleRight.svg b/assets/icons/angleRight.svg deleted file mode 100644 index f8e6efc..0000000 --- a/assets/icons/angleRight.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/assets/icons/artifacts.svg b/assets/icons/artifacts.svg deleted file mode 100644 index 41e6c8e..0000000 --- a/assets/icons/artifacts.svg +++ /dev/null @@ -1 +0,0 @@ -Asset 1 \ No newline at end of file diff --git a/assets/icons/back.svg b/assets/icons/back.svg deleted file mode 100644 index 287355f..0000000 --- a/assets/icons/back.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - diff --git a/assets/icons/base.svg b/assets/icons/base.svg deleted file mode 100644 index 89fbd43..0000000 --- a/assets/icons/base.svg +++ /dev/null @@ -1 +0,0 @@ -base.volume \ No newline at end of file diff --git a/assets/icons/calendar.svg b/assets/icons/calendar.svg deleted file mode 100644 index 9c05902..0000000 --- a/assets/icons/calendar.svg +++ /dev/null @@ -1 +0,0 @@ -Asset 1 \ No newline at end of file diff --git a/assets/icons/caretDown.svg b/assets/icons/caretDown.svg deleted file mode 100644 index cfd3c57..0000000 --- a/assets/icons/caretDown.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - diff --git a/assets/icons/check.svg b/assets/icons/check.svg deleted file mode 100644 index 43d1881..0000000 --- a/assets/icons/check.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/assets/icons/checkCircle.svg b/assets/icons/checkCircle.svg deleted file mode 100644 index 313657e..0000000 --- a/assets/icons/checkCircle.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/assets/icons/chevronDown.svg b/assets/icons/chevronDown.svg deleted file mode 100644 index 1ebd094..0000000 --- a/assets/icons/chevronDown.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/assets/icons/chevronUp.svg b/assets/icons/chevronUp.svg deleted file mode 100644 index 7fce935..0000000 --- a/assets/icons/chevronUp.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/assets/icons/close.svg b/assets/icons/close.svg deleted file mode 100644 index 0decc7c..0000000 --- a/assets/icons/close.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/assets/icons/download.svg b/assets/icons/download.svg deleted file mode 100644 index dd64605..0000000 --- a/assets/icons/download.svg +++ /dev/null @@ -1 +0,0 @@ -Asset 2 \ No newline at end of file diff --git a/assets/icons/empty.txt b/assets/icons/empty.txt deleted file mode 100644 index e69de29..0000000 diff --git a/assets/icons/env.svg b/assets/icons/env.svg deleted file mode 100644 index ac68ae6..0000000 --- a/assets/icons/env.svg +++ /dev/null @@ -1 +0,0 @@ -env \ No newline at end of file diff --git a/assets/icons/error.svg b/assets/icons/error.svg deleted file mode 100644 index bafb73b..0000000 --- a/assets/icons/error.svg +++ /dev/null @@ -1 +0,0 @@ -error \ No newline at end of file diff --git a/assets/icons/errorCircle.svg b/assets/icons/errorCircle.svg deleted file mode 100644 index 8234753..0000000 --- a/assets/icons/errorCircle.svg +++ /dev/null @@ -1 +0,0 @@ -Asset 4 \ No newline at end of file diff --git a/assets/icons/exclamationTriangleFull.svg b/assets/icons/exclamationTriangleFull.svg deleted file mode 100644 index 7cab121..0000000 --- a/assets/icons/exclamationTriangleFull.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/assets/icons/exclamationTriangleLine.svg b/assets/icons/exclamationTriangleLine.svg deleted file mode 100644 index eae6825..0000000 --- a/assets/icons/exclamationTriangleLine.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/assets/icons/expand.svg b/assets/icons/expand.svg deleted file mode 100644 index 4095ef5..0000000 --- a/assets/icons/expand.svg +++ /dev/null @@ -1 +0,0 @@ -Asset 1 \ No newline at end of file diff --git a/assets/icons/filter.svg b/assets/icons/filter.svg deleted file mode 100644 index 1c493f4..0000000 --- a/assets/icons/filter.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/assets/icons/locked.svg b/assets/icons/locked.svg deleted file mode 100644 index ab9f0b9..0000000 --- a/assets/icons/locked.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icons/module.svg b/assets/icons/module.svg deleted file mode 100644 index fa3901c..0000000 --- a/assets/icons/module.svg +++ /dev/null @@ -1 +0,0 @@ -module \ No newline at end of file diff --git a/assets/icons/nestedHeat.svg b/assets/icons/nestedHeat.svg deleted file mode 100644 index 7e33068..0000000 --- a/assets/icons/nestedHeat.svg +++ /dev/null @@ -1 +0,0 @@ -nested_heat \ No newline at end of file diff --git a/assets/icons/network.svg b/assets/icons/network.svg deleted file mode 100644 index 018cd3f..0000000 --- a/assets/icons/network.svg +++ /dev/null @@ -1 +0,0 @@ -network \ No newline at end of file diff --git a/assets/icons/notificationBell.svg b/assets/icons/notificationBell.svg deleted file mode 100644 index 6001d59..0000000 --- a/assets/icons/notificationBell.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - -notification_icon - - - - - diff --git a/assets/icons/notificationFullBell.svg b/assets/icons/notificationFullBell.svg deleted file mode 100644 index 6e7e7cc..0000000 --- a/assets/icons/notificationFullBell.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - notification_full - - - - - - diff --git a/assets/icons/others.svg b/assets/icons/others.svg deleted file mode 100644 index 9a18e4a..0000000 --- a/assets/icons/others.svg +++ /dev/null @@ -1 +0,0 @@ -others \ No newline at end of file diff --git a/assets/icons/pencil.svg b/assets/icons/pencil.svg deleted file mode 100644 index 6701a3a..0000000 --- a/assets/icons/pencil.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - diff --git a/assets/icons/plus.svg b/assets/icons/plus.svg deleted file mode 100644 index 36f3486..0000000 --- a/assets/icons/plus.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - diff --git a/assets/icons/plusCircle.svg b/assets/icons/plusCircle.svg deleted file mode 100644 index 63781f5..0000000 --- a/assets/icons/plusCircle.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/assets/icons/plusThin.svg b/assets/icons/plusThin.svg deleted file mode 100644 index 571c303..0000000 --- a/assets/icons/plusThin.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/assets/icons/proceedToOverview.svg b/assets/icons/proceedToOverview.svg deleted file mode 100644 index 4788106..0000000 --- a/assets/icons/proceedToOverview.svg +++ /dev/null @@ -1 +0,0 @@ -proceed_to_overview \ No newline at end of file diff --git a/assets/icons/questionMark.svg b/assets/icons/questionMark.svg deleted file mode 100644 index 3b1c7bc..0000000 --- a/assets/icons/questionMark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/icons/search.svg b/assets/icons/search.svg deleted file mode 100644 index ce83104..0000000 --- a/assets/icons/search.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - diff --git a/assets/icons/sliders.svg b/assets/icons/sliders.svg deleted file mode 100644 index ade9de2..0000000 --- a/assets/icons/sliders.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/assets/icons/trashO.svg b/assets/icons/trashO.svg deleted file mode 100644 index 26336f1..0000000 --- a/assets/icons/trashO.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - diff --git a/assets/icons/unlocked.svg b/assets/icons/unlocked.svg deleted file mode 100644 index 1e341bd..0000000 --- a/assets/icons/unlocked.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icons/upload.svg b/assets/icons/upload.svg deleted file mode 100644 index 72e64ff..0000000 --- a/assets/icons/upload.svg +++ /dev/null @@ -1 +0,0 @@ -upload \ No newline at end of file diff --git a/assets/icons/user.svg b/assets/icons/user.svg deleted file mode 100644 index 3363f57..0000000 --- a/assets/icons/user.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/assets/icons/vendor.svg b/assets/icons/vendor.svg deleted file mode 100644 index a3b8f5f..0000000 --- a/assets/icons/vendor.svg +++ /dev/null @@ -1 +0,0 @@ -vendor diff --git a/assets/icons/versionControllerCommit.svg b/assets/icons/versionControllerCommit.svg deleted file mode 100644 index 5847c69..0000000 --- a/assets/icons/versionControllerCommit.svg +++ /dev/null @@ -1 +0,0 @@ -Asset 5 \ No newline at end of file diff --git a/assets/icons/versionControllerLockClosed.svg b/assets/icons/versionControllerLockClosed.svg deleted file mode 100644 index 73aae7d..0000000 --- a/assets/icons/versionControllerLockClosed.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - diff --git a/assets/icons/versionControllerLockOpen.svg b/assets/icons/versionControllerLockOpen.svg deleted file mode 100644 index 52e0b8b..0000000 --- a/assets/icons/versionControllerLockOpen.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - diff --git a/assets/icons/versionControllerPermissions.svg b/assets/icons/versionControllerPermissions.svg deleted file mode 100644 index 91ea9f4..0000000 --- a/assets/icons/versionControllerPermissions.svg +++ /dev/null @@ -1 +0,0 @@ -Asset 2 \ No newline at end of file diff --git a/assets/icons/versionControllerRevert.svg b/assets/icons/versionControllerRevert.svg deleted file mode 100644 index f9f02f9..0000000 --- a/assets/icons/versionControllerRevert.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - diff --git a/assets/icons/versionControllerSave.svg b/assets/icons/versionControllerSave.svg deleted file mode 100644 index 4a05425..0000000 --- a/assets/icons/versionControllerSave.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/assets/icons/versionControllerSubmit.svg b/assets/icons/versionControllerSubmit.svg deleted file mode 100644 index 9909ab3..0000000 --- a/assets/icons/versionControllerSubmit.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/assets/icons/versionControllerSync.svg b/assets/icons/versionControllerSync.svg deleted file mode 100644 index dfd42d3..0000000 --- a/assets/icons/versionControllerSync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/icons/versionControllerUndo.svg b/assets/icons/versionControllerUndo.svg deleted file mode 100644 index 8745f54..0000000 --- a/assets/icons/versionControllerUndo.svg +++ /dev/null @@ -1 +0,0 @@ -Asset 3 \ No newline at end of file diff --git a/assets/icons/viewModule.svg b/assets/icons/viewModule.svg deleted file mode 100644 index e121d40..0000000 --- a/assets/icons/viewModule.svg +++ /dev/null @@ -1,9 +0,0 @@ - - viewModule - - - - - - - diff --git a/assets/icons/vlm.svg b/assets/icons/vlm.svg deleted file mode 100644 index 79b4625..0000000 --- a/assets/icons/vlm.svg +++ /dev/null @@ -1 +0,0 @@ -vlm_new_icon \ No newline at end of file diff --git a/assets/icons/vsp.svg b/assets/icons/vsp.svg deleted file mode 100644 index 344755c..0000000 --- a/assets/icons/vsp.svg +++ /dev/null @@ -1 +0,0 @@ -vsp_new_icon diff --git a/assets/icons/zip.svg b/assets/icons/zip.svg deleted file mode 100644 index 51ce7fa..0000000 --- a/assets/icons/zip.svg +++ /dev/null @@ -1 +0,0 @@ -zip \ No newline at end of file diff --git a/assets/images/empty.txt b/assets/images/empty.txt deleted file mode 100644 index e69de29..0000000 diff --git a/assets/images/illustration.png b/assets/images/illustration.png deleted file mode 100644 index c0ff99a..0000000 Binary files a/assets/images/illustration.png and /dev/null differ diff --git a/assets/images/logo_onap.png b/assets/images/logo_onap.png deleted file mode 100644 index c6f6857..0000000 Binary files a/assets/images/logo_onap.png and /dev/null differ diff --git a/assets/images/logo_onap_2017.png b/assets/images/logo_onap_2017.png deleted file mode 100644 index c6f6857..0000000 Binary files a/assets/images/logo_onap_2017.png and /dev/null differ diff --git a/assets/sdc-icons/README.md b/assets/sdc-icons/README.md deleted file mode 100644 index dc3e798..0000000 --- a/assets/sdc-icons/README.md +++ /dev/null @@ -1,9 +0,0 @@ -components folder contain icon that are not part of sdc-icon component. --Icon naming: ------------------- -- ---- -- --name = if contains multiple words, use "_" --type = circle/square/triangle --o = outline (for all icons that have white background) diff --git a/assets/sdc-icons/alert-triangle-o.svg b/assets/sdc-icons/alert-triangle-o.svg deleted file mode 100644 index c1d8d0a..0000000 --- a/assets/sdc-icons/alert-triangle-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/alert-triangle.svg b/assets/sdc-icons/alert-triangle.svg deleted file mode 100644 index ed3f6f8..0000000 --- a/assets/sdc-icons/alert-triangle.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/assets/sdc-icons/api-o.svg b/assets/sdc-icons/api-o.svg deleted file mode 100644 index 169630a..0000000 --- a/assets/sdc-icons/api-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/arrow2-right-child.svg b/assets/sdc-icons/arrow2-right-child.svg deleted file mode 100644 index 0123a82..0000000 --- a/assets/sdc-icons/arrow2-right-child.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/arrow2-right.svg b/assets/sdc-icons/arrow2-right.svg deleted file mode 100644 index b8b808a..0000000 --- a/assets/sdc-icons/arrow2-right.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/arrow3-down-o.svg b/assets/sdc-icons/arrow3-down-o.svg deleted file mode 100644 index 401a7f8..0000000 --- a/assets/sdc-icons/arrow3-down-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/arrow3-up-o.svg b/assets/sdc-icons/arrow3-up-o.svg deleted file mode 100644 index 331634f..0000000 --- a/assets/sdc-icons/arrow3-up-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/attachment.svg b/assets/sdc-icons/attachment.svg deleted file mode 100644 index a1d7768..0000000 --- a/assets/sdc-icons/attachment.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/bedge.svg b/assets/sdc-icons/bedge.svg deleted file mode 100644 index f43ac9b..0000000 --- a/assets/sdc-icons/bedge.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/assets/sdc-icons/browse.svg b/assets/sdc-icons/browse.svg deleted file mode 100644 index c63620f..0000000 --- a/assets/sdc-icons/browse.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/calendar-o.svg b/assets/sdc-icons/calendar-o.svg deleted file mode 100644 index 93f8719..0000000 --- a/assets/sdc-icons/calendar-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/camera-o.svg b/assets/sdc-icons/camera-o.svg deleted file mode 100644 index 86f1f13..0000000 --- a/assets/sdc-icons/camera-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/caret1-down-o.svg b/assets/sdc-icons/caret1-down-o.svg deleted file mode 100644 index 724152a..0000000 --- a/assets/sdc-icons/caret1-down-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/caret2-right-circle-o.svg b/assets/sdc-icons/caret2-right-circle-o.svg deleted file mode 100644 index 2715dad..0000000 --- a/assets/sdc-icons/caret2-right-circle-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/caret2-right-circle.svg b/assets/sdc-icons/caret2-right-circle.svg deleted file mode 100644 index e585c1d..0000000 --- a/assets/sdc-icons/caret2-right-circle.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/assets/sdc-icons/caret3-right.svg b/assets/sdc-icons/caret3-right.svg deleted file mode 100644 index 1eefc47..0000000 --- a/assets/sdc-icons/caret3-right.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/close.svg b/assets/sdc-icons/close.svg deleted file mode 100644 index 3c884d2..0000000 --- a/assets/sdc-icons/close.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/commit-o.svg b/assets/sdc-icons/commit-o.svg deleted file mode 100644 index e71c18e..0000000 --- a/assets/sdc-icons/commit-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/components/checkbox_checked.svg b/assets/sdc-icons/components/checkbox_checked.svg deleted file mode 100644 index 520c7b6..0000000 --- a/assets/sdc-icons/components/checkbox_checked.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/components/checkbox_disabled.svg b/assets/sdc-icons/components/checkbox_disabled.svg deleted file mode 100644 index a032573..0000000 --- a/assets/sdc-icons/components/checkbox_disabled.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/assets/sdc-icons/components/radio_checked .svg b/assets/sdc-icons/components/radio_checked .svg deleted file mode 100644 index 534d05d..0000000 --- a/assets/sdc-icons/components/radio_checked .svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/assets/sdc-icons/components/radio_disabled.svg b/assets/sdc-icons/components/radio_disabled.svg deleted file mode 100644 index 0906f66..0000000 --- a/assets/sdc-icons/components/radio_disabled.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/assets/sdc-icons/composition-o.svg b/assets/sdc-icons/composition-o.svg deleted file mode 100644 index 5648cda..0000000 --- a/assets/sdc-icons/composition-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/copy-o.svg b/assets/sdc-icons/copy-o.svg deleted file mode 100644 index eeee9aa..0000000 --- a/assets/sdc-icons/copy-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/deployment-artifacts-o.svg b/assets/sdc-icons/deployment-artifacts-o.svg deleted file mode 100644 index e5091cd..0000000 --- a/assets/sdc-icons/deployment-artifacts-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/description-o.svg b/assets/sdc-icons/description-o.svg deleted file mode 100644 index d4e4345..0000000 --- a/assets/sdc-icons/description-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/distributed.svg b/assets/sdc-icons/distributed.svg deleted file mode 100644 index 956c51f..0000000 --- a/assets/sdc-icons/distributed.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/download-o.svg b/assets/sdc-icons/download-o.svg deleted file mode 100644 index f54dba7..0000000 --- a/assets/sdc-icons/download-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/edit-file-o.svg b/assets/sdc-icons/edit-file-o.svg deleted file mode 100644 index 9f17daa..0000000 --- a/assets/sdc-icons/edit-file-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/edit-o.svg b/assets/sdc-icons/edit-o.svg deleted file mode 100644 index bfa434e..0000000 --- a/assets/sdc-icons/edit-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/expand-o.svg b/assets/sdc-icons/expand-o.svg deleted file mode 100644 index c7127d7..0000000 --- a/assets/sdc-icons/expand-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/eye-o.svg b/assets/sdc-icons/eye-o.svg deleted file mode 100644 index 35cf012..0000000 --- a/assets/sdc-icons/eye-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/filter-o.svg b/assets/sdc-icons/filter-o.svg deleted file mode 100644 index 1364bc5..0000000 --- a/assets/sdc-icons/filter-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/info-circle-o.svg b/assets/sdc-icons/info-circle-o.svg deleted file mode 100644 index 4d91259..0000000 --- a/assets/sdc-icons/info-circle-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/info-circle.svg b/assets/sdc-icons/info-circle.svg deleted file mode 100644 index 551966a..0000000 --- a/assets/sdc-icons/info-circle.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/assets/sdc-icons/info-square-o.svg b/assets/sdc-icons/info-square-o.svg deleted file mode 100644 index 40a85c6..0000000 --- a/assets/sdc-icons/info-square-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/inputs-o.svg b/assets/sdc-icons/inputs-o.svg deleted file mode 100644 index 5120b24..0000000 --- a/assets/sdc-icons/inputs-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/locked.svg b/assets/sdc-icons/locked.svg deleted file mode 100644 index 5c0939f..0000000 --- a/assets/sdc-icons/locked.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/minus-circle.svg b/assets/sdc-icons/minus-circle.svg deleted file mode 100644 index d7755dc..0000000 --- a/assets/sdc-icons/minus-circle.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/minus.svg b/assets/sdc-icons/minus.svg deleted file mode 100644 index 48fdcae..0000000 --- a/assets/sdc-icons/minus.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/notifications-o.svg b/assets/sdc-icons/notifications-o.svg deleted file mode 100644 index f52a4e3..0000000 --- a/assets/sdc-icons/notifications-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/plus-circle-o.svg b/assets/sdc-icons/plus-circle-o.svg deleted file mode 100644 index c87e574..0000000 --- a/assets/sdc-icons/plus-circle-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/plus-circle.svg b/assets/sdc-icons/plus-circle.svg deleted file mode 100644 index 62840b5..0000000 --- a/assets/sdc-icons/plus-circle.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/assets/sdc-icons/plus.svg b/assets/sdc-icons/plus.svg deleted file mode 100644 index 00a6673..0000000 --- a/assets/sdc-icons/plus.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/profile-o.svg b/assets/sdc-icons/profile-o.svg deleted file mode 100644 index 802715e..0000000 --- a/assets/sdc-icons/profile-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/profiles-o.svg b/assets/sdc-icons/profiles-o.svg deleted file mode 100644 index ac9c673..0000000 --- a/assets/sdc-icons/profiles-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/question-mark-circle-o.svg b/assets/sdc-icons/question-mark-circle-o.svg deleted file mode 100644 index 59dabde..0000000 --- a/assets/sdc-icons/question-mark-circle-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/question-mark-circle.svg b/assets/sdc-icons/question-mark-circle.svg deleted file mode 100644 index ae5541a..0000000 --- a/assets/sdc-icons/question-mark-circle.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/assets/sdc-icons/req-capabilities-o.svg b/assets/sdc-icons/req-capabilities-o.svg deleted file mode 100644 index 88ace7d..0000000 --- a/assets/sdc-icons/req-capabilities-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/revert-o.svg b/assets/sdc-icons/revert-o.svg deleted file mode 100644 index d48b8d0..0000000 --- a/assets/sdc-icons/revert-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/save-o.svg b/assets/sdc-icons/save-o.svg deleted file mode 100644 index 3b95518..0000000 --- a/assets/sdc-icons/save-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/search-o.svg b/assets/sdc-icons/search-o.svg deleted file mode 100644 index 312e21a..0000000 --- a/assets/sdc-icons/search-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/settings-o.svg b/assets/sdc-icons/settings-o.svg deleted file mode 100644 index 888be2e..0000000 --- a/assets/sdc-icons/settings-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/spinner.svg b/assets/sdc-icons/spinner.svg deleted file mode 100644 index 9d0efb8..0000000 --- a/assets/sdc-icons/spinner.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/sdc-icons/success-circle-o.svg b/assets/sdc-icons/success-circle-o.svg deleted file mode 100644 index 2d58e6c..0000000 --- a/assets/sdc-icons/success-circle-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/success.svg b/assets/sdc-icons/success.svg deleted file mode 100644 index 918833b..0000000 --- a/assets/sdc-icons/success.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/sync-o.svg b/assets/sdc-icons/sync-o.svg deleted file mode 100644 index 88a64d1..0000000 --- a/assets/sdc-icons/sync-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/trash-o.svg b/assets/sdc-icons/trash-o.svg deleted file mode 100644 index 7a841fb..0000000 --- a/assets/sdc-icons/trash-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/undo-o.svg b/assets/sdc-icons/undo-o.svg deleted file mode 100644 index f6f0dd1..0000000 --- a/assets/sdc-icons/undo-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/unlocked-o.svg b/assets/sdc-icons/unlocked-o.svg deleted file mode 100644 index 6e677e0..0000000 --- a/assets/sdc-icons/unlocked-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/upload-o.svg b/assets/sdc-icons/upload-o.svg deleted file mode 100644 index bf62707..0000000 --- a/assets/sdc-icons/upload-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/v-circle-o.svg b/assets/sdc-icons/v-circle-o.svg deleted file mode 100644 index 1d6f737..0000000 --- a/assets/sdc-icons/v-circle-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/v-circle.svg b/assets/sdc-icons/v-circle.svg deleted file mode 100644 index 9baa0f2..0000000 --- a/assets/sdc-icons/v-circle.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/x-circle-o.svg b/assets/sdc-icons/x-circle-o.svg deleted file mode 100644 index ec0d80b..0000000 --- a/assets/sdc-icons/x-circle-o.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/sdc-icons/x-circle.svg b/assets/sdc-icons/x-circle.svg deleted file mode 100644 index 15982ce..0000000 --- a/assets/sdc-icons/x-circle.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/components/accordion/accordion-basic.html b/components/accordion/accordion-basic.html deleted file mode 100644 index fe85473..0000000 --- a/components/accordion/accordion-basic.html +++ /dev/null @@ -1,22 +0,0 @@ -
-
-
- - - - - - -
-
- Accordion Title -
-
-
-
- Accordion body -
-
-
\ No newline at end of file diff --git a/components/accordion/accordion.scss b/components/accordion/accordion.scss deleted file mode 100644 index ef65b9c..0000000 --- a/components/accordion/accordion.scss +++ /dev/null @@ -1,50 +0,0 @@ -.sdc-accordion { - display: flex; - flex-direction: column; - margin-bottom: 10px; - &.disabled { - opacity: .4; - pointer-events: none; - } - &:not(.disabled) { - .sdc-accordion-header { - cursor: pointer; - } - } - .sdc-accordion-header { - display: flex; - flex-direction: row; - .svg-icon-wrapper { - margin-right: 20px; - transition: transform 0.4s; - &.down { - transform: rotate(180deg); - } - .svg-icon { - fill: $gray; - width: 14px; - height: 8px; - } - } - &.arrow-right { - justify-content: space-between; - .svg-icon-wrapper{ - order:1; - margin:0; - } - } - } - .sdc-accordion-body { - padding-left: 10px; - opacity: 0; - overflow-y: hidden; - max-height: 0; - padding-top: 0px; - transition: opacity 0.33s linear, padding-top 0.3s linear; - &.open { - padding-top: 5px; - opacity: 1; - max-height: 9999px; - } - } -} diff --git a/components/autocomplete/_autocomplete.scss b/components/autocomplete/_autocomplete.scss deleted file mode 100644 index 7275156..0000000 --- a/components/autocomplete/_autocomplete.scss +++ /dev/null @@ -1,43 +0,0 @@ -.sdc-autocomplete-container{ - position: relative; - - &.results-shown{ - .sdc-input__input{ - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - } - - ul.autocomplete-results { - opacity: 0; - border: solid 1px $blue; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-top:none; - background-color: $white; - max-height: 200px; - box-shadow: 0 3px 7px -3px $dark-gray; - overflow-y: scroll; - overflow-x: hidden; - position: absolute; - box-sizing: border-box; - width: 100%; - left: 0; - top: 100%; - - li { - color:$text-black; - text-indent: 10px; - line-height: 30px; - cursor:pointer; - @include body-1; - - &:hover { - background-color: $lighter-blue; - color: $blue; - } - } - - } - - } diff --git a/components/autocomplete/autocomlete-close.html b/components/autocomplete/autocomlete-close.html deleted file mode 100644 index 93946bb..0000000 --- a/components/autocomplete/autocomlete-close.html +++ /dev/null @@ -1,22 +0,0 @@ -
-
-
- - -
- - - - - - - - - - -
-
- -
-
- diff --git a/components/autocomplete/autocomplete-open.html b/components/autocomplete/autocomplete-open.html deleted file mode 100644 index 01b1f40..0000000 --- a/components/autocomplete/autocomplete-open.html +++ /dev/null @@ -1,24 +0,0 @@ -
-
-
- - -
- - - - - - - - - - -
-
-
red
-
yellow
-
orange
-
green
-
-
diff --git a/components/button/_button.scss b/components/button/_button.scss deleted file mode 100644 index 3c21a45..0000000 --- a/components/button/_button.scss +++ /dev/null @@ -1,168 +0,0 @@ -.sdc-button { - order:1; - @include box-sizing; - display: inline-flex; - align-items: center; - justify-content: center; - flex-direction: row; - outline: none; - border-radius: 2px; - padding: 0 12px; - height: 36px; - line-height: 36px; - width: 120px; - min-width: 90px; - cursor: pointer; - text-align: center; - text-transform: uppercase; - @include body-1; - - &:disabled { - cursor: default; - } - - // Primary button - &.sdc-button__primary { - border: 1px solid transparent; - background-color: $blue; - color: $white; - - &:not(:disabled) { - &:hover, &:active { - background-color: $light-blue; - } - &:focus:not(:active) { - border: 1px solid $white; - background-color: $light-blue; - box-shadow: 0px 0px 0px 1px $light-blue; - } - } - - &:disabled{ - background: $blue-disabled; - } - } - - // Secondary button - &.sdc-button__secondary { - border: 1px solid $blue; - background-color: transparent; - color: $blue; - - &:not(:disabled) { - &:hover, &:active { - background-color: $light-blue; - color:$white; - } - &:focus:not(:active) { - color: $light-blue; - box-shadow: inset 0px 0px 0px 0px $dark-blue, 0px 0px 0px 1px $blue; - &:hover { - color: $white; - } - } - } - - &:disabled { - color: $blue-disabled; - border-color: $blue-disabled; - } - } - - // Link button - &.sdc-button__link { - background-color: transparent; - color: $blue; - fill: $blue; - border: none; - - &:not(:disabled) { - &:hover, &:active { - color: $light-blue; - } - &:focus:not(:active) { - border: 1px solid $dark-blue; - color: $light-blue; - } - } - - &:disabled{ - color: $blue-disabled; - } - } - - - // alert button - &.sdc-button__alert { - border: none; - background-color: $red; - color: $white; - - &:not(:disabled) { - &:hover, &:active { - background-color: $light-red; - } - &:focus:not(:active) { - border: 0.5px solid $white; - background-color: $light-red; - box-shadow: 0px 0px 0px 1px $light-red; - } - } - - &:disabled{ - background: $disabled-red; - } - } - - - /*** Sizes ***/ - &.btn-large{ - width: $btn-large; - } - - &.btn-medium{ - width: $btn-medium; - } - - &.btn-small{ - width: $btn-small; - } - - &.btn-x-small{ - width: $btn-extra-small; - } - - &.btn-default{ - width: $btn-default; - } - - /*** Buttons with icons ***/ - &.sdc-icon-right { - flex-direction: row-reverse; - .svg-icon { - margin-left: 15px; - } - } - - &.sdc-icon-left { - flex-direction: row; - .svg-icon { - margin-right: 15px; - } - } - - svg { - display: inline-block; - vertical-align: middle; - } -} -.sdc-button__wrapper { - display: inline-flex; -} -.sdc-button__spinner { - padding-top: 6px; - margin:0 2px; - &.left { - order:2; - } -} diff --git a/components/button/button-link-auto.html b/components/button/button-link-auto.html deleted file mode 100644 index 22ac4c8..0000000 --- a/components/button/button-link-auto.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-link-disabled.html b/components/button/button-link-disabled.html deleted file mode 100644 index 9267620..0000000 --- a/components/button/button-link-disabled.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-link-extra-small.html b/components/button/button-link-extra-small.html deleted file mode 100644 index 245f885..0000000 --- a/components/button/button-link-extra-small.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-link-large.html b/components/button/button-link-large.html deleted file mode 100644 index 6d1780c..0000000 --- a/components/button/button-link-large.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-link-medium.html b/components/button/button-link-medium.html deleted file mode 100644 index cb0293d..0000000 --- a/components/button/button-link-medium.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-link-small.html b/components/button/button-link-small.html deleted file mode 100644 index 5c195fa..0000000 --- a/components/button/button-link-small.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-link.html b/components/button/button-link.html deleted file mode 100644 index 5c2070b..0000000 --- a/components/button/button-link.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-primary-auto.html b/components/button/button-primary-auto.html deleted file mode 100644 index 125276f..0000000 --- a/components/button/button-primary-auto.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-primary-disabled.html b/components/button/button-primary-disabled.html deleted file mode 100644 index b2ef842..0000000 --- a/components/button/button-primary-disabled.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-primary-extra-small.html b/components/button/button-primary-extra-small.html deleted file mode 100644 index a3be965..0000000 --- a/components/button/button-primary-extra-small.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-primary-large.html b/components/button/button-primary-large.html deleted file mode 100644 index c0a41b1..0000000 --- a/components/button/button-primary-large.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-primary-medium.html b/components/button/button-primary-medium.html deleted file mode 100644 index 9ddedc5..0000000 --- a/components/button/button-primary-medium.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-primary-small.html b/components/button/button-primary-small.html deleted file mode 100644 index 847f753..0000000 --- a/components/button/button-primary-small.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-primary.html b/components/button/button-primary.html deleted file mode 100644 index b1524bf..0000000 --- a/components/button/button-primary.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-secondary-auto.html b/components/button/button-secondary-auto.html deleted file mode 100644 index a183ad8..0000000 --- a/components/button/button-secondary-auto.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-secondary-disabled.html b/components/button/button-secondary-disabled.html deleted file mode 100644 index 4125328..0000000 --- a/components/button/button-secondary-disabled.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-secondary-extra-small.html b/components/button/button-secondary-extra-small.html deleted file mode 100644 index 92c4784..0000000 --- a/components/button/button-secondary-extra-small.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-secondary-large.html b/components/button/button-secondary-large.html deleted file mode 100644 index 958c151..0000000 --- a/components/button/button-secondary-large.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-secondary-medium.html b/components/button/button-secondary-medium.html deleted file mode 100644 index 67f9741..0000000 --- a/components/button/button-secondary-medium.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-secondary-small.html b/components/button/button-secondary-small.html deleted file mode 100644 index d9d8cd7..0000000 --- a/components/button/button-secondary-small.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/button/button-secondary.html b/components/button/button-secondary.html deleted file mode 100644 index 64967cc..0000000 --- a/components/button/button-secondary.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/components/checkbox/_checkbox.scss b/components/checkbox/_checkbox.scss deleted file mode 100644 index c35c8e0..0000000 --- a/components/checkbox/_checkbox.scss +++ /dev/null @@ -1,66 +0,0 @@ -.sdc-checkbox { - line-height: 14px; - - label { - position: relative; - display: block; - padding-left: 14px; - } - - .sdc-checkbox__input { - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - position: absolute; - z-index: -1; - opacity: 0; - - // Checkbox not checked - + .sdc-checkbox__label:before { - display: inline-block; - position: absolute; - left: 0; - top: 0; - content: ""; - width: 14px; - height: 14px; - box-sizing: content-box; - background: no-repeat url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%3E%20%3Cdefs%3E%20%3Cpath%20id%3D%22disabled-a%22%20d%3D%22M2%2C0%20L12%2C-2.22044605e-16%20C13.1045695%2C5.56104062e-16%2014%2C0.8954305%2014%2C2%20L14%2C12%20C14%2C13.1045695%2013.1045695%2C14%2012%2C14%20L2%2C14%20C0.8954305%2C14%208.94280938e-16%2C13.1045695%20-2.22044605e-16%2C12%20L-2.22044605e-16%2C2%20C-3.57315355e-16%2C0.8954305%200.8954305%2C-1.91384796e-17%202%2C-2.22044605e-16%20Z%22%2F%3E%20%3C%2Fdefs%3E%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%20%3Cuse%20fill%3D%22%23FFFFFF%22%20xlink%3Ahref%3D%22%23disabled-a%22%2F%3E%20%3Cpath%20stroke%3D%22%23D2D2D2%22%20d%3D%22M2%2C0.5%20C1.17157288%2C0.5%200.5%2C1.17157288%200.5%2C2%20L0.5%2C12%20C0.5%2C12.8284271%201.17157288%2C13.5%202%2C13.5%20L12%2C13.5%20C12.8284271%2C13.5%2013.5%2C12.8284271%2013.5%2C12%20L13.5%2C2%20C13.5%2C1.17157288%2012.8284271%2C0.5%2012%2C0.5%20L2%2C0.5%20Z%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fsvg%3E'); - } - - // Checkbox disabled and not checked - &:disabled { - + .sdc-checkbox__label { - color: $gray; - &:before { - background: no-repeat url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%3E%20%3Cdefs%3E%20%3Cpath%20id%3D%22disabled-a%22%20d%3D%22M2%2C0%20L12%2C-2.22044605e-16%20C13.1045695%2C5.56104062e-16%2014%2C0.8954305%2014%2C2%20L14%2C12%20C14%2C13.1045695%2013.1045695%2C14%2012%2C14%20L2%2C14%20C0.8954305%2C14%208.94280938e-16%2C13.1045695%20-2.22044605e-16%2C12%20L-2.22044605e-16%2C2%20C-3.57315355e-16%2C0.8954305%200.8954305%2C-1.91384796e-17%202%2C-2.22044605e-16%20Z%22%2F%3E%20%3C%2Fdefs%3E%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%20%3Cuse%20fill%3D%22%23F2F2F2%22%20xlink%3Ahref%3D%22%23disabled-a%22%2F%3E%20%3Cpath%20stroke%3D%22%23D2D2D2%22%20d%3D%22M2%2C0.5%20C1.17157288%2C0.5%200.5%2C1.17157288%200.5%2C2%20L0.5%2C12%20C0.5%2C12.8284271%201.17157288%2C13.5%202%2C13.5%20L12%2C13.5%20C12.8284271%2C13.5%2013.5%2C12.8284271%2013.5%2C12%20L13.5%2C2%20C13.5%2C1.17157288%2012.8284271%2C0.5%2012%2C0.5%20L2%2C0.5%20Z%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fsvg%3E'); - } - } - } - - &:checked { - // Checkbox checked - + .sdc-checkbox__label:before { - background: no-repeat url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20fill%3D%22%23009fdb%22%3E%3Cpath%20d%3D%22M2%2C0%20L12%2C-2.22044605e-16%20C13.1045695%2C5.56104062e-16%2014%2C0.8954305%2014%2C2%20L14%2C12%20C14%2C13.1045695%2013.1045695%2C14%2012%2C14%20L2%2C14%20C0.8954305%2C14%208.94280938e-16%2C13.1045695%20-2.22044605e-16%2C12%20L-2.22044605e-16%2C2%20C-3.57315355e-16%2C0.8954305%200.8954305%2C-1.91384796e-17%202%2C-2.22044605e-16%20Z%20M3.85355339%2C7.54977605%20C3.65829124%2C7.35451391%203.34170876%2C7.35451391%203.14644661%2C7.54977605%20C2.95118446%2C7.7450382%202.95118446%2C8.06162069%203.14644661%2C8.25688283%20L5.71469032%2C10.8251265%20C5.93114093%2C11.0415771%206.28952386%2C11.0144698%206.47095446%2C10.7679244%20L10.8653572%2C4.79638422%20C11.0290275%2C4.57397322%2010.9814087%2C4.26099251%2010.7589977%2C4.09732224%20C10.5365867%2C3.93365198%2010.223606%2C3.98127076%2010.0599357%2C4.20368177%20L6.01038326%2C9.70660592%20L3.85355339%2C7.54977605%20Z%22%2F%3E%3C%2Fsvg%3E'); - } - - // Checkbox disabled and checked - &:disabled { - + .sdc-checkbox__label:before { - background: no-repeat url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%3E%3Cpath%20fill%3D%22%23d2d2d2%22%20fill-rule%3D%22evenodd%22%20d%3D%22M2%2C0%20L12%2C-2.22044605e-16%20C13.1045695%2C5.56104062e-16%2014%2C0.8954305%2014%2C2%20L14%2C12%20C14%2C13.1045695%2013.1045695%2C14%2012%2C14%20L2%2C14%20C0.8954305%2C14%208.94280938e-16%2C13.1045695%20-2.22044605e-16%2C12%20L-2.22044605e-16%2C2%20C-3.57315355e-16%2C0.8954305%200.8954305%2C-1.91384796e-17%202%2C-2.22044605e-16%20Z%20M3.85355339%2C7.54977605%20C3.65829124%2C7.35451391%203.34170876%2C7.35451391%203.14644661%2C7.54977605%20C2.95118446%2C7.7450382%202.95118446%2C8.06162069%203.14644661%2C8.25688283%20L5.71469032%2C10.8251265%20C5.93114093%2C11.0415771%206.28952386%2C11.0144698%206.47095446%2C10.7679244%20L10.8653572%2C4.79638422%20C11.0290275%2C4.57397322%2010.9814087%2C4.26099251%2010.7589977%2C4.09732224%20C10.5365867%2C3.93365198%2010.223606%2C3.98127076%2010.0599357%2C4.20368177%20L6.01038326%2C9.70660592%20L3.85355339%2C7.54977605%20Z%22%2F%3E%3C%2Fsvg%3E'); - } - } - } - - &:not(:disabled) { - + .sdc-checkbox__label { - cursor: pointer; - } - } - } - - .sdc-checkbox__label:not(:empty) { - padding-left: 14px; - @include body-1; - } -} diff --git a/components/checkbox/checkbox-checked.html b/components/checkbox/checkbox-checked.html deleted file mode 100644 index de0c0d8..0000000 --- a/components/checkbox/checkbox-checked.html +++ /dev/null @@ -1,6 +0,0 @@ -
- -
diff --git a/components/checkbox/checkbox-disabled-checked.html b/components/checkbox/checkbox-disabled-checked.html deleted file mode 100644 index 53e77ec..0000000 --- a/components/checkbox/checkbox-disabled-checked.html +++ /dev/null @@ -1,6 +0,0 @@ -
- -
diff --git a/components/checkbox/checkbox-disabled.html b/components/checkbox/checkbox-disabled.html deleted file mode 100644 index 2425218..0000000 --- a/components/checkbox/checkbox-disabled.html +++ /dev/null @@ -1,6 +0,0 @@ -
- -
diff --git a/components/checkbox/checkbox-unchecked.html b/components/checkbox/checkbox-unchecked.html deleted file mode 100644 index 9cc3d1c..0000000 --- a/components/checkbox/checkbox-unchecked.html +++ /dev/null @@ -1,6 +0,0 @@ -
- -
diff --git a/components/checklist/_checklist.scss b/components/checklist/_checklist.scss deleted file mode 100644 index 248993d..0000000 --- a/components/checklist/_checklist.scss +++ /dev/null @@ -1,21 +0,0 @@ -$space-lines: 14px; -$padding-for-sub-level: 28px; -.checkbox-item{ - margin: $space-lines 0; - .sdc-checkbox__label{ - @include body-2-emphasis; - } - .semi-checked{ - .sdc-checkbox__label:before{ - background: no-repeat url('data:image/svg+xml;utf8,'); - } - } -} -.checkbox-sublist{ - padding-left: $padding-for-sub-level; - .checkbox-item{ - .sdc-checkbox__label{ - @include body-2; - } - } -} diff --git a/components/checklist/checklist-with-checked-items.html b/components/checklist/checklist-with-checked-items.html deleted file mode 100644 index e1adbd7..0000000 --- a/components/checklist/checklist-with-checked-items.html +++ /dev/null @@ -1,24 +0,0 @@ -
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
diff --git a/components/checklist/checklist-with-disabled-items.html b/components/checklist/checklist-with-disabled-items.html deleted file mode 100644 index f001ec1..0000000 --- a/components/checklist/checklist-with-disabled-items.html +++ /dev/null @@ -1,25 +0,0 @@ -
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
- diff --git a/components/checklist/multi-levels-checklist.html b/components/checklist/multi-levels-checklist.html deleted file mode 100644 index 9aa136e..0000000 --- a/components/checklist/multi-levels-checklist.html +++ /dev/null @@ -1,50 +0,0 @@ -
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
diff --git a/components/checklist/simple-checklist.html b/components/checklist/simple-checklist.html deleted file mode 100644 index 1fe55da..0000000 --- a/components/checklist/simple-checklist.html +++ /dev/null @@ -1,24 +0,0 @@ -
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
diff --git a/components/dropdown/_dropdown.scss b/components/dropdown/_dropdown.scss deleted file mode 100644 index 908bbaa..0000000 --- a/components/dropdown/_dropdown.scss +++ /dev/null @@ -1,346 +0,0 @@ -.sdc-dropdown { - @include body-1; - position: relative; - display: block; - - .sdc-dropdown__error--block { - display: none; - } - - &.headless { - display: none; - } - - /************************************* - SDC DropDown styles - *************************************/ - .sdc-dropdown__component-container { - position: relative; - height: 40px; - - .sdc-dropdown__header { - background: $white; - text-align: left; - position: relative; - color: $dark-gray; - @include base-font-regular; - font-size: 14px; - text-indent: 6px; - border: solid 1px $light-gray; - width: 100%; - height: 40px; - line-height: 36px; - box-sizing: border-box; - border-radius: 2px; - - &.placeholder { - @include base-font-italic; - color: $gray; - } - - &.disabled { - border: solid 1px $light-gray; - background-color: $light-silver; - color: $light-gray; - cursor: default; - - &:focus { - border: solid 1px $light-gray; - outline: none; - .svg-icon>svg { - fill: $light-gray; - } - } - .svg-icon>svg { - fill: $light-gray; - } - } - - &:focus { - border: solid 1px $light-blue; - outline: none; - .svg-icon>svg { - fill: $light-blue; - } - } - - .sdc-dropdown-handle { - float: right; - .svg-icon>svg { - fill: $dark-gray; - } - } - - svg-icon { - margin: 10px 6px; - float: right; - } - - } - - } - - &.open-bottom { - .sdc-dropdown__header { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - - border: 1px solid $light-blue; - box-sizing: border-box; - .svg-icon>svg { - fill: $light-blue; - } - - } - } - - &.open-top { - .sdc-dropdown__header { - border-top-left-radius: 0; - border-top-right-radius: 0; - } - } - - .sdc-dropdown__options-list { - position: relative; - opacity: 0; - top: 100%; - left: 0; - width: 100%; - max-height: 0; - overflow-y: auto; - box-sizing: border-box; - border: 1px solid $light-blue; - background-color: white; - box-shadow: 0 3px 7px -3px $dark-gray; - z-index: 999; - &.sdc-dropdown__options-wrapper--top { - bottom: 40px; - border-top: 1px solid $light-blue; - } - &.sdc-dropdown__options-list--headless { - border-top: 1px solid $light-blue; - } - .sdc-dropdown__option { - @include base-font-regular; - font-size: 14px; - text-indent: 10px; - padding: 10px; - background: transparent; - cursor: pointer; - height: 40px; - box-sizing: border-box; - &.sdc-dropdown__option--hr { - height: 1px; - overflow: hidden; - border-top: 1px solid $silver; - padding: 0; - margin: 10px 20px; - } - &.sdc-dropdown__option--group { - text-indent: 30px; - } - &:hover { - background-color: $light-silver; - //@include base-font-semibold; - } - &.selected { - background-color: $lighter-blue; - color: $blue; - @include base-font-semibold; - } - &.sdc-dropdown__option--header { - @include base-font-semibold; - color: $text-black; - cursor: default; - &.sdc-dropdown__option--group { - text-indent: 10px; - } - &:hover { - background-color: transparent; - } - } - &.sdc-dropdown__option--disabled { - color: $gray; - cursor: default; - &:hover { - background-color: transparent; - } - &::after { - color: $gray; - } - &:focus { - border: solid 1px $light-gray; - outline: none; - } - } - } - } - .sdc-dropdown__select { - @include base-font-regular; - text-indent: 6px; - border: solid 1px $light-gray; - width: 100%; - &.disabled { - opacity: 0.7; - } - option { - padding: 3px; - } - } - .sdc-dropdown__label { - margin-bottom: 5px; - display: block; - @include body-3-emphasis; - color: $text-black; - &.required::before { - content: '*'; - color: $red; - margin: 0 4px 0 0; - } - } - - /************************************* - SDC Auto-DropDown styles - *************************************/ - &.open-bottom { - .sdc-dropdown-auto__wrapper { - border: 1px solid $light-blue; - box-sizing: border-box; - .svg-icon>svg { - fill: $light-blue; - } - } - } - - .sdc-dropdown-auto__wrapper { - display: flex; - border: solid 1px $light-gray; - border-radius: 2px; - - .sdc-dropdown__header { - border: none; - color: $gray; - - &:focus { - border: none; - } - } - - svg-icon { - margin: 12px 10px; - float: right; - } - } - - /************************************* - SDC Error styles - *************************************/ - &.sdc-dropdown__error { - .sdc-dropdown__header { - border: solid 1px $red; - @include font-error; - &::after { - @include font-error; - } - &:focus { - border: solid 1px $red; - .sdc-dropdown-handle { - use { - fill: $red; - } - } - } - .sdc-dropdown-handle { - use { - fill: $red; - } - } - } - .sdc-dropdown__error--block { - display: block; - @include font-error; - margin: 4px 0; - @include body-3; - } - .sdc-dropdown__options-wrapper--frame { - .sdc-dropdown__options-list { - border: 1px solid $red; - border-top: none; - } - &.sdc-dropdown__options-wrapper--top { - .sdc-dropdown__options-list { - border-top: 1px solid $red; - } - } - } - .svg-icon.__exclamationTriangleFull { - width: 12px; - height: 10px; - margin-right: 6px; - } - } -} - -.sdc-dropdown__error--icon { - fill: $red; -} - -/********************************************************/ - -/* Animation */ - -/********************************************************/ - -@include keyframes-expand-animation('top-to-bottom-exp', 244px); -@include keyframes-collapse-animation('top-to-bottom', 244px); -@include keyframes-expand-animation('bottom-to-top-exp', 244px); -@include keyframes-collapse-animation('bottom-to-top', 244px); -.sdc-dropdown__options-wrapper--frame { - overflow: hidden; - position: absolute; - top: auto; - width: 100%; - &.sdc-dropdown__options-wrapper--top { - bottom: 40px; - top: auto; - padding: 10px 0 0 0; - /* Expend animation from bottom to top */ - .sdc-dropdown__options-list { - border-top: 1px solid $light-blue; - box-shadow: 0 0 7px -1px $dark-gray; - &.sdc-dropdown__options-list--animation-init { - border-bottom: none; - padding: 0; - animation: bottom-to-top .0s forwards; - } - } - &.sdc-dropdown__options-wrapper--uncollapsed { - .sdc-dropdown__options-list { - animation: bottom-to-top-exp .0s forwards; - } - } - } -} - -/** -Fold animation from top to bottom - */ - -.sdc-dropdown { - .sdc-dropdown__options-list.sdc-dropdown__options-list--animation-init { - animation: top-to-bottom .0s forwards; - } -} - -/** -Expend animation from top to bottom - */ - -.sdc-dropdown { - .sdc-dropdown__options-wrapper--uncollapsed { - .sdc-dropdown__options-list.sdc-dropdown__options-list--animation-init { - animation: top-to-bottom-exp .0s forwards; - } - } -} diff --git a/components/dropdown/dropdown-disabled.html b/components/dropdown/dropdown-disabled.html deleted file mode 100644 index 9e0bd86..0000000 --- a/components/dropdown/dropdown-disabled.html +++ /dev/null @@ -1,11 +0,0 @@ -
- - - -
    -
  • First Option
  • -
  • Second Option
  • -
  • Third Option
  • -
- -
diff --git a/components/dropdown/dropdown-groups.html b/components/dropdown/dropdown-groups.html deleted file mode 100644 index 3e32f16..0000000 --- a/components/dropdown/dropdown-groups.html +++ /dev/null @@ -1,10 +0,0 @@ -
- - -
    -
  • Group 1 title
  • -
  • First Option
  • -
  • Second Option
  • -
  • Third Option
  • -
-
diff --git a/components/dropdown/dropdown-requiered.html b/components/dropdown/dropdown-requiered.html deleted file mode 100644 index 4fd555d..0000000 --- a/components/dropdown/dropdown-requiered.html +++ /dev/null @@ -1,18 +0,0 @@ -
- - -
    -
  • First Option
  • -
  • Second Option
  • -
  • Third Option
  • -
-
- - - Error message! -
-
- diff --git a/components/dropdown/dropdown.html b/components/dropdown/dropdown.html deleted file mode 100644 index 440f70b..0000000 --- a/components/dropdown/dropdown.html +++ /dev/null @@ -1,9 +0,0 @@ -
- - -
    -
  • First Option
  • -
  • Second Option
  • -
  • Third Option
  • -
-
diff --git a/components/filter-bar/_filter-bar.scss b/components/filter-bar/_filter-bar.scss deleted file mode 100644 index f48a3df..0000000 --- a/components/filter-bar/_filter-bar.scss +++ /dev/null @@ -1,51 +0,0 @@ -$inputHeight: 38px; - -.sdc-filter-bar { - .sdc-input { - margin: 0; - .sdc-input__input{ - padding-right: 40px; - } - } - - .filter-button{ - position: relative; - float: right; - bottom: $inputHeight; - height: $inputHeight; - right: 11px; - svg{ - position: relative; - top: 50%; - transform: translateY(-50%); - } - } - - .magnify-button { - svg{ - height: 20px; - width: 20px; - path{ - fill: $dark-gray; - } - } - } - - .clear-search-x { - cursor: pointer; - svg{ - height: 14px; - width: 14px; - path{ - fill: $dark-gray; - } - &:hover{ - path{ - fill: $blue; - } - } - } - } -} - - diff --git a/components/filter-bar/filter-bar-with-text.html b/components/filter-bar/filter-bar-with-text.html deleted file mode 100644 index de7a225..0000000 --- a/components/filter-bar/filter-bar-with-text.html +++ /dev/null @@ -1,16 +0,0 @@ -
-
- - - - - - - - - - - - -
-
diff --git a/components/filter-bar/filter-bar.html b/components/filter-bar/filter-bar.html deleted file mode 100644 index 90f580d..0000000 --- a/components/filter-bar/filter-bar.html +++ /dev/null @@ -1,17 +0,0 @@ -
-
- - - - - - - - - - - - -
-
- diff --git a/components/icon/_icon.scss b/components/icon/_icon.scss deleted file mode 100644 index cd94eb7..0000000 --- a/components/icon/_icon.scss +++ /dev/null @@ -1,250 +0,0 @@ -@mixin color-icon($primary-color, $secondary-color) { - color: $primary-color; - fill: $primary-color; - span{ - color: $primary-color; - } - &:not([disabled]):hover, &:active, &:focus { - &.clickable { - color: $secondary-color; - fill: $secondary-color; - } - } -} - -.svg-icon-wrapper { - display: inline-flex; - justify-content: center; - align-items: center; - - &[disabled] { - opacity: 0.7; - } - - &.bottom { - flex-direction: column; - .svg-icon-label { - margin-bottom: 5px; - } - } - - &.right { - float: none; - .svg-icon-label { - margin-left: 5px; - } - } - - &.top { - flex-direction: column-reverse; - .svg-icon-label { - margin-top: 5px; - } - } - - &.left { - flex-direction: row-reverse; - .svg-icon-label { - margin-right: 5px; - } - } - - &.__warning { - @include color-icon($yellow, $yellow); - } - - &.__primary { - @include color-icon($blue, $light-blue); - } - - &.__secondary { - @include color-icon($gray, $dark-gray); - } - - &.__positive { - @include color-icon($green, $green); - } - - &.__negative { - @include color-icon($red, $red); - } -} - - -.svg-icon { - width: 20px; - height: 20px; - - &.__angleDoubleLeft { - width: 14px; - height: 14px; - } - &.__angleDoubleRight { - width: 14px; - height: 14px; - } - &.__angleLeft { - width: 14px; - height: 14px; - } - &.__angleRight { - width: 14px; - height: 14px; - } - &.__artifacts { - width: 16px; - height: 20px; - } - &.__back { - width: 25px; - height: 25px; - } - &.__base { - // - } - &.__calendar { - // - } - &.__caretDown { - } - &.__check { - } - &.__checkCircle { - width: 16px; - height: 16px; - } - &.__chevronDown{ - width: 10px; - height: 7px; - } - &.__chevronUp { - width: 11px; - height: 7px; - } - &.__close { - width: 10px; - height: 10px; - } - &.__download { - width: 15px; - height: 11px; - } - &.__env { - width: 15px; - height: 14px; - } - &.__error { - width: 14px; - height: 14px; - } - &.__errorCircle { - width: 16px; - height: 16px; - } - &.__exclamationTriangleFull { - width: 15px; - height: 13px; - } - &.__exclamationTriangleLine { - width: 15px; - height: 13px; - } - &.__filter { - // - } - &.__locked { - width: 11px; - } - &.__module { - // - } - &.__nestedHeat { - width: 15px; - height: 13px; - } - &.__network { - width: 13px; - height: 13px; - } - &.__others { - width: 12px; - height: 12px; - } - &.__pencil { - width: 15px; - height: 15px; - } - &.__plus { - width: 9px; - height: 9px; - } - &.__plusCircle { - width: 19px; - height: 19px; - } - &.__plusThin { - width: 9px; - height: 9px; - } - &.__proceedToOverview { - width: 24px; - height: 20px; - } - &.__search { - // - } - &.__sliders { - } - &.__trashO { - width: 15px; - height: 16px; - } - &.__unlocked { - width: 11px; - } - &.__upload { - width: 15px; - height: 11px; - } - &.__vendor { - width: 53px; - height: 47px; - } - &.__versionControllerLockClosed { - width: 21px; - height: 23px; - } - &.__versionControllerLockOpen { - width: 24px; - height: 28px; - } - &.__versionControllerRevert { - // - } - &.__versionControllerSave { - // - } - &.__versionControllerSubmit { - // - } - &.__versionControllerPermissions { - // - } - &.__vlm { - width: 53px; - height: 47px; - } - &.__vsp { - width: 53px; - height: 47px; - } - &.__zip { - width: 29px; - height: 23px; - } -} - -.svg-icon-missing { - @include body-2; - @include font-error; -} diff --git a/components/input/_input.scss b/components/input/_input.scss deleted file mode 100644 index a84d312..0000000 --- a/components/input/_input.scss +++ /dev/null @@ -1,78 +0,0 @@ -.sdc-input { - margin-bottom: 10px; - - .sdc-input__label { - margin-bottom: 5px; - display: block; - @include body-3-emphasis; - - &.required::before { - content: '*'; - color: $red; - margin: 0 4px 0 0; - } - } - - .sdc-input__input { - @include box-sizing; - padding: 0 10px; - height: 38px; - width: 100%;//415px; - border: solid 1px $light-gray; - border-radius:2px; - color: $dark-gray; - - &.error, &.error:focus, &.error:disabled { - border: solid 1px $red; - color: $red; - outline: none; - } - - &:read-only{ - border: none; - outline: none; - color: $text-black - } - &:-moz-read-only { /* For Firefox */ - border: none; - outline: none; - color: $text-black - } - - &:focus { - border-color: $blue; - outline: 0 none; - color: $text-black; - } - - &:disabled { - background: $light-silver; - color: $gray; - } - - &::-webkit-input-placeholder /* Chrome/Opera/Safari */ { - color: $gray; - @include base-font-italic; - } - &::-moz-placeholder /* Firefox 19+ */ { - color: $gray; - @include base-font-italic; - } - &:-moz-placeholder /* Firefox 18- */ { - color: $gray; - @include base-font-italic; - } - &:-ms-input-placeholder /* IE 10+ */ - { - color: $gray; - @include base-font-italic; - } - } - - .sdc-label__error{ - margin-top: 2px; - margin-left: 2px; - @include body-3; - } - -} \ No newline at end of file diff --git a/components/input/input-disabled.html b/components/input/input-disabled.html deleted file mode 100644 index bea21b4..0000000 --- a/components/input/input-disabled.html +++ /dev/null @@ -1,4 +0,0 @@ -
- - -
diff --git a/components/input/input-error.html b/components/input/input-error.html deleted file mode 100644 index aafee55..0000000 --- a/components/input/input-error.html +++ /dev/null @@ -1,17 +0,0 @@ -
- - -
-
- - - - - This is the error message. - -
-
-
\ No newline at end of file diff --git a/components/input/input-number.html b/components/input/input-number.html deleted file mode 100644 index 59ef93c..0000000 --- a/components/input/input-number.html +++ /dev/null @@ -1,6 +0,0 @@ -
- -
- -
-
\ No newline at end of file diff --git a/components/input/input-placeholder.html b/components/input/input-placeholder.html deleted file mode 100644 index b07d75d..0000000 --- a/components/input/input-placeholder.html +++ /dev/null @@ -1,4 +0,0 @@ -
- - -
diff --git a/components/input/input-required.html b/components/input/input-required.html deleted file mode 100644 index f9dbb16..0000000 --- a/components/input/input-required.html +++ /dev/null @@ -1,4 +0,0 @@ -
- - -
diff --git a/components/input/input-view-only.html b/components/input/input-view-only.html deleted file mode 100644 index 4381b22..0000000 --- a/components/input/input-view-only.html +++ /dev/null @@ -1,4 +0,0 @@ -
- - -
\ No newline at end of file diff --git a/components/input/input.html b/components/input/input.html deleted file mode 100644 index ef2ba61..0000000 --- a/components/input/input.html +++ /dev/null @@ -1,8 +0,0 @@ -
- - -
\ No newline at end of file diff --git a/components/menu/_menu.scss b/components/menu/_menu.scss deleted file mode 100644 index fe32f32..0000000 --- a/components/menu/_menu.scss +++ /dev/null @@ -1,68 +0,0 @@ -.sdc-menu-list { - position: static; - @include box-sizing; - @include box-shadow(0 2px 4px 0 rgba($black, 0.3)); - @include border-radius(2px); - border: 1px solid $light-gray; - border-top: solid 3px $blue; - background: $white; - min-width: 150px; - width: -webkit-max-content; - width: -moz-max-content; - width: max-content; - - .sdc-menu-item:not(.separator) { - @include body-1; - height: 40px; - color: $dark-gray; - padding: 0 12px; - display: flex; - align-items: center; - - svg { - margin-right: 16px; - g, path { - fill: $dark-gray; - } - } - - &:hover { - &:not(.disabled) { - cursor: pointer; - &:not(.selected) { - background: $light-silver; - color: $text-black; - g, path { - fill: $dark-gray; - } - } - } - } - - &.disabled { - color: $gray; - g, path { - fill: $light-gray; - } - } - - &.selected { - background: $lighter-blue; - color: $light-blue; - g, path { - fill: $dark-gray; - } - } - } - - &.relative { - position: relative; - } - - .separator { - cursor: default; - border-top: 1px solid $silver; - margin: 0 0; - height: 0; - } -} diff --git a/components/menu/popup-menu.html b/components/menu/popup-menu.html deleted file mode 100644 index f4f1cbd..0000000 --- a/components/menu/popup-menu.html +++ /dev/null @@ -1,8 +0,0 @@ - -
    -
  • item 1 (selected)
  • -
  • item 2
  • -
  • -
  • item 3
  • -
  • custom action
  • -
\ No newline at end of file diff --git a/components/menu/relative-popup-menu.html b/components/menu/relative-popup-menu.html deleted file mode 100644 index e5a5449..0000000 --- a/components/menu/relative-popup-menu.html +++ /dev/null @@ -1,8 +0,0 @@ -
-
    -
  • item 1 (selected)
  • -
  • item 2
  • -
  • -
  • item 3
  • -
-
\ No newline at end of file diff --git a/components/modal/_modal.scss b/components/modal/_modal.scss deleted file mode 100644 index e87e516..0000000 --- a/components/modal/_modal.scss +++ /dev/null @@ -1,194 +0,0 @@ -.sdc-modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - overflow: auto; - margin: auto; - display: flex; - align-items: center; - z-index: 1001; - svg path { - fill: inherit; - } - .sdc-modal__wrapper { - @include body-1; - background: $white; - width: 100%; - @include box-shadow(0 0 4px 0 rgba(0, 0, 0, 0.50)); - color: $text-black; - display: flex; - flex-direction: column; - &.sdc-modal-type-info { - border-top: solid 6px $blue; - .sdc-modal__svg-use { - fill: $blue; - } - .svg-icon { - &.__errorCircle { - width: 30px; - height: 30px; - } - } - } - &.sdc-modal-type-alert { - border-top: solid 6px $yellow; - .sdc-modal__svg-use { - fill: $yellow; - } - .svg-icon { - &.__exclamationTriangleLine { - width: 30px; - height: 30px; - } - } - } - &.sdc-modal-type-error { - border-top: solid 6px $red; - .sdc-modal__svg-use { - fill: $red; - } - .svg-icon { - &.__error { - width: 30px; - height: 30px; - } - } - } - &.sdc-modal-type-custom { - padding: 0px; - border-top: none; - .sdc-custom__header { - @include box-sizing; - background-color: $blue; - color: $white; - height: 50px; - align-items: center; - padding-top: 0px; - .title { - color: $white; - padding-top: 0px; - @include heading-3; - } - .sdc-modal__close-button { - margin-top: 0px; - width: 16px; - height: 16px; - line-height: 16px; - .svg-icon > svg { - fill: $white; - color: $white; - } - &.disabled { - cursor: default; - .svg-icon > svg { - fill: $silver; - color: $silver; - } - } - } - .sdc-modal__close-button-svg { - width: 16px; - height: 16px; - .sdc-modal__svg-use { - fill: $white; - } - .svg-icon { - height: 16px; - width: 16px; - fill: $white; - } - } - } - .sdc-modal__content { - padding: 20px 40px; - } - } - .sdc-modal__header { - padding: 20px 20px 0 20px; - display: flex; - justify-content: space-between; - text-align: left; - height: 30px; - line-height: 30px; - .sdc-modal__icon { - margin-right: 10px; - } - .title { - @include heading-2; - flex: 1 1 auto; - color: $text-black; - } - .sdc-modal__close-button { - order: 3; - width: 14px; - height: 14px; - line-height: 14px; - cursor: pointer; - .sdc-modal__svg-use { - fill: $black; - } - &.disabled { - cursor: default; - } - } - } - .sdc-modal__content { - order: 2; - padding: 10px 60px 20px 60px; - } - .sdc-modal__footer { - order: 3; - background-color: $white; - border-top: solid 1px $silver; - padding: 10px; - display: flex; - justify-content: flex-end; - button { - margin-left: 10px; - } - } - } -} - -.modal-background { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: $black; - opacity: 0.70; - z-index: 1000; - &.show { - z-index: 1000; - opacity: 0.70; - transition: opacity .3s ease, z-index .3s; - } - &.hide { - z-index: -1; - opacity: 0; - transition: opacity .35s ease, z-index .35s; - } -} - -.xl { - width: 1200px; -} - -.l { - width: 875px; -} - -.md { - width: 650px; -} - -.sm { - width: 500px; -} - -.xsm { - width: 432px; -} diff --git a/components/modal/alert-modal.html b/components/modal/alert-modal.html deleted file mode 100644 index 1ed72e8..0000000 --- a/components/modal/alert-modal.html +++ /dev/null @@ -1,45 +0,0 @@ -
-
-
-
- - - - - - - - - - - - - - - - - -
-
Title
-
- - - - - -
-
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed risus nisl, egestas vitae erat non,pulvinar lacinia libero. Integer pulvinar pellentesque accumsan. Sed hendrerit lacus eu tempus pharetra
- -
-
- \ No newline at end of file diff --git a/components/modal/custom-modal.html b/components/modal/custom-modal.html deleted file mode 100644 index 1011ca6..0000000 --- a/components/modal/custom-modal.html +++ /dev/null @@ -1,27 +0,0 @@ -
-
-
-
Title
-
- - - - - -
-
-
-
-
-
-
-
-
- -
-
- \ No newline at end of file diff --git a/components/modal/error-modal.html b/components/modal/error-modal.html deleted file mode 100644 index 5a3b5fb..0000000 --- a/components/modal/error-modal.html +++ /dev/null @@ -1,32 +0,0 @@ -
-
-
-
- - error - - - - - - - -
-
Title
-
- - - - - -
-
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed risus nisl, egestas vitae erat non,pulvinar lacinia libero. Integer pulvinar pellentesque accumsan. Sed hendrerit lacus eu tempus pharetra
- -
-
- \ No newline at end of file diff --git a/components/modal/standard-modal.html b/components/modal/standard-modal.html deleted file mode 100644 index e367900..0000000 --- a/components/modal/standard-modal.html +++ /dev/null @@ -1,46 +0,0 @@ -
-
-
-
- - - Asset 4 - - - - - - - - -
-
- Standard Modal -
-
- - - - - - -
-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed risus nisl, egestas vitae erat non,pulvinar lacinia libero. Integer pulvinar pellentesque accumsan. Sed hendrerit lacus eu tempus pharetra -
- -
-
- diff --git a/components/notification/_notification.scss b/components/notification/_notification.scss deleted file mode 100644 index dafe8d4..0000000 --- a/components/notification/_notification.scss +++ /dev/null @@ -1,59 +0,0 @@ -@include mixin-keyframes-fade-in-vertically(-50px, 'keyframes-slide-notif-in'); -@include mixin-keyframes-fade-out-vertically(20px, 'keyframes-slide-notif-out'); - -.sdc-notification { - position:relative; - - .sdc-notification__wrapper { - padding: 10px; - margin-top:10px; - width: 212px; - animation: keyframes-slide-notif-in 1s; - - &.fade-out__animated { - animation: keyframes-slide-notif-out 0.8s - } - - &.type-info { - background-color: #0e90d2; } - - &.type-error { - background-color: #dd514c; } - - &.type-success { - background-color: #5eb95e; } - - &.type-warn { - background-color: #f37b1d; } - } - - .sdc-notification__content { - display:flex; - flex-direction:row; - - .sdc-notification__icon { - flex: 0 0 auto; - height: 32px; - width: 32px; - margin: 0 14px 0 7px; - background: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%2382c355%3B%7D.cls-2%7Bfill%3Anone%3Bstroke%3A%23ebf5e4%3Bstroke-miterlimit%3A10%3B%7D%3C/style%3E%3C/defs%3E%3Ctitle%3Evicon%3C/title%3E%3Cg%20id%3D%22Layer_1%22%20data-name%3D%22Layer%201%22%3E%3Ccircle%20class%3D%22cls-1%22%20cx%3D%2216%22%20cy%3D%2216%22%20r%3D%2216%22/%3E%3C/g%3E%3Cg%20id%3D%22Layer_4%22%20data-name%3D%22Layer%204%22%3E%3Cpolyline%20class%3D%22cls-2%22%20points%3D%227.46%2017.43%2015.36%2021.74%2022.54%208.57%22/%3E%3C/g%3E%3C/svg%3E') - } - - .sdc-notification__message { - flex: 1; - text-align: left; - - .sdc-notification__title { - font-size:13px; - color: white; - } - - .sdc-notification__text { - font-size: 12px; - color: white; - } - } - - } - -} diff --git a/components/notification/notification-info.html b/components/notification/notification-info.html deleted file mode 100644 index 6eab4c0..0000000 --- a/components/notification/notification-info.html +++ /dev/null @@ -1,3 +0,0 @@ -
- -
diff --git a/components/notifications-container/_notifications-container.scss b/components/notifications-container/_notifications-container.scss deleted file mode 100644 index 7a7a907..0000000 --- a/components/notifications-container/_notifications-container.scss +++ /dev/null @@ -1,8 +0,0 @@ -.sdc-notification-container { - - - position:absolute; - top: 10px; - right: 10px; - width: 232px; -} diff --git a/components/panel/basic-panel.html b/components/panel/basic-panel.html deleted file mode 100644 index 14e6461..0000000 --- a/components/panel/basic-panel.html +++ /dev/null @@ -1,21 +0,0 @@ -
-

- Panel -

-
- -
-
- -
-
\ No newline at end of file diff --git a/components/panel/panel.scss b/components/panel/panel.scss deleted file mode 100644 index 921dd74..0000000 --- a/components/panel/panel.scss +++ /dev/null @@ -1,8 +0,0 @@ -.sdc-panel { - width: 280px; - overflow-y: auto; - height: 100%; - box-shadow: 1px 0px 4px 0px $light-gray; - background-color: $white; - padding: 0; -} \ No newline at end of file diff --git a/components/radio/_radio.scss b/components/radio/_radio.scss deleted file mode 100644 index 9c51846..0000000 --- a/components/radio/_radio.scss +++ /dev/null @@ -1,69 +0,0 @@ -.sdc-radio { - line-height: 14px; - - label { - position: relative; - display: block; - padding-left: 14px; - } - - .sdc-radio__input { - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - position: absolute; - z-index: -1; - opacity: 0; - - // Radio not checked - + .sdc-radio__label:before { - display: inline-block; - position: absolute; - left: 0; - top: 0; - content: ""; - width: 14px; - height: 14px; - box-sizing: content-box; - background: no-repeat url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20fill%3D%22%23d2d2d2%22%20d%3D%22M7%2C14%20C3.13400675%2C14%200%2C10.8659932%200%2C7%20C0%2C3.13400675%203.13400675%2C0%207%2C0%20C8.35813029%2C0%209.62592397%2C0.386776975%2010.699241%2C1.0561909%20C12.6811805%2C2.29230086%2014%2C4.49213704%2014%2C7%20C14%2C10.8659932%2010.8659932%2C14%207%2C14%20Z%22%2F%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M7%2C13%20C10.3137085%2C13%2013%2C10.3137085%2013%2C7%20C13%2C3.6862915%2010.3137085%2C1%207%2C1%20C3.6862915%2C1%201%2C3.6862915%201%2C7%20C1%2C10.3137085%203.6862915%2C13%207%2C13%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); - } - - // Radio disabled and not checked - &:disabled:not(:checked) { - + .sdc-radio__label:before { - background: no-repeat url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20fill%3D%22%23d2d2d2%22%20d%3D%22M7%2C14%20C3.13400675%2C14%200%2C10.8659932%200%2C7%20C0%2C3.13400675%203.13400675%2C0%207%2C0%20C8.35813029%2C0%209.62592397%2C0.386776975%2010.699241%2C1.0561909%20C12.6811805%2C2.29230086%2014%2C4.49213704%2014%2C7%20C14%2C10.8659932%2010.8659932%2C14%207%2C14%20Z%22%2F%3E%3Cpath%20fill%3D%22%23F2F2F2%22%20d%3D%22M7%2C13%20C10.3137085%2C13%2013%2C10.3137085%2013%2C7%20C13%2C3.6862915%2010.3137085%2C1%207%2C1%20C3.6862915%2C1%201%2C3.6862915%201%2C7%20C1%2C10.3137085%203.6862915%2C13%207%2C13%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); - } - } - - &:checked { - // Radio checked - + .sdc-radio__label:before { - background: no-repeat url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%3E%3Cg%20fill-rule%3D%22evenodd%22%3E%3Cpath%20fill%3D%22%23009fdb%22%20fill-rule%3D%22nonzero%22%20d%3D%22M7%2C14%20C3.13400675%2C14%200%2C10.8659932%200%2C7%20C0%2C3.13400675%203.13400675%2C0%207%2C0%20C10.8659932%2C0%2014%2C3.13400675%2014%2C7%20C14%2C10.8659932%2010.8659932%2C14%207%2C14%20Z%20M7%2C13.1764706%20C10.4111705%2C13.1764706%2013.1764706%2C10.4111705%2013.1764706%2C7%20C13.1764706%2C3.58882949%2010.4111705%2C0.823529412%207%2C0.823529412%20C3.58882949%2C0.823529412%200.823529412%2C3.58882949%200.823529412%2C7%20C0.823529412%2C10.4111705%203.58882949%2C13.1764706%207%2C13.1764706%20Z%22%2F%3E%3Ccircle%20fill%3D%22%23009fdb%22%20cx%3D%227%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); - } - - // Radio disabled and checked - &:disabled { - + .sdc-radio__label:before { - background: no-repeat url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%3E%3Cg%20fill-rule%3D%22evenodd%22%3E%3Cpath%20fill%3D%22%23d2d2d2%22%20fill-rule%3D%22nonzero%22%20d%3D%22M7%2C14%20C3.13400675%2C14%200%2C10.8659932%200%2C7%20C0%2C3.13400675%203.13400675%2C0%207%2C0%20C10.8659932%2C0%2014%2C3.13400675%2014%2C7%20C14%2C10.8659932%2010.8659932%2C14%207%2C14%20Z%20M7%2C13.1764706%20C10.4111705%2C13.1764706%2013.1764706%2C10.4111705%2013.1764706%2C7%20C13.1764706%2C3.58882949%2010.4111705%2C0.823529412%207%2C0.823529412%20C3.58882949%2C0.823529412%200.823529412%2C3.58882949%200.823529412%2C7%20C0.823529412%2C10.4111705%203.58882949%2C13.1764706%207%2C13.1764706%20Z%22%2F%3E%3Ccircle%20fill%3D%22%23d2d2d2%22%20cx%3D%227%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); - } - } - } - - &:not(:disabled) { - + .sdc-radio__label { - cursor: pointer; - } - } - - &:disabled { - + .sdc-radio__label { - color: $gray; - } - } - } - - .sdc-radio__label:not(:empty) { - padding-left: 14px; - @include body-1; - } -} diff --git a/components/radio/radio-checked.html b/components/radio/radio-checked.html deleted file mode 100644 index 78283b3..0000000 --- a/components/radio/radio-checked.html +++ /dev/null @@ -1,4 +0,0 @@ -
- - -
diff --git a/components/radio/radio-disabled-checked.html b/components/radio/radio-disabled-checked.html deleted file mode 100644 index 9ba6f0c..0000000 --- a/components/radio/radio-disabled-checked.html +++ /dev/null @@ -1,4 +0,0 @@ -
- - -
diff --git a/components/radio/radio-disabled.html b/components/radio/radio-disabled.html deleted file mode 100644 index 332435f..0000000 --- a/components/radio/radio-disabled.html +++ /dev/null @@ -1,4 +0,0 @@ -
- - -
diff --git a/components/radio/radio-unchecked.html b/components/radio/radio-unchecked.html deleted file mode 100644 index 6f6a00d..0000000 --- a/components/radio/radio-unchecked.html +++ /dev/null @@ -1,4 +0,0 @@ -
- - -
diff --git a/components/radioGroup/_radioGroup.scss b/components/radioGroup/_radioGroup.scss deleted file mode 100644 index 6b33a79..0000000 --- a/components/radioGroup/_radioGroup.scss +++ /dev/null @@ -1,20 +0,0 @@ -.sdc-radio-group { - .sdc-radio-group__radios { - display: flex; - } - .sdc-radio-group__legend { - @include body-2-emphasis; - display: inline-block; - margin-bottom: 5px; - } - .sdc-radio__label { - @include body-1; - margin-right: 20px; - } - .vertical{ - flex-direction: column; - .sdc-radio{ - margin-bottom: 15px; - } - } -} diff --git a/components/radioGroup/radio-group-disabled.html b/components/radioGroup/radio-group-disabled.html deleted file mode 100644 index 3cdedc0..0000000 --- a/components/radioGroup/radio-group-disabled.html +++ /dev/null @@ -1,13 +0,0 @@ -
- -
-
- - -
-
- - -
-
-
diff --git a/components/radioGroup/radio-group-no-title.html b/components/radioGroup/radio-group-no-title.html deleted file mode 100644 index 76217fe..0000000 --- a/components/radioGroup/radio-group-no-title.html +++ /dev/null @@ -1,12 +0,0 @@ -
-
-
- - -
-
- - -
-
-
diff --git a/components/radioGroup/radio-group-value.html b/components/radioGroup/radio-group-value.html deleted file mode 100644 index ac604a6..0000000 --- a/components/radioGroup/radio-group-value.html +++ /dev/null @@ -1,13 +0,0 @@ -
- -
-
- - -
-
- - -
-
-
diff --git a/components/radioGroup/radio-group.html b/components/radioGroup/radio-group.html deleted file mode 100644 index baa1444..0000000 --- a/components/radioGroup/radio-group.html +++ /dev/null @@ -1,13 +0,0 @@ -
- -
-
- - -
-
- - -
-
-
diff --git a/components/search-bar/_search-bar.scss b/components/search-bar/_search-bar.scss deleted file mode 100644 index 3e2dfad..0000000 --- a/components/search-bar/_search-bar.scss +++ /dev/null @@ -1,61 +0,0 @@ -$inputHeight: 38px; -.sdc-search-bar{ - .search-bar-container{ - display: flex; - align-items: flex-end; - .sdc-input-wrapper{ - flex-grow: 1; - .sdc-input{ - margin: 0; - .sdc-input__input{ - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - } - } - .search-button{ - width: $inputHeight; - height: $inputHeight - 2; - border: solid 1px $light-gray; - border-left: none; - background-color: $light-silver; - cursor: auto; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - - svg{ - height: 20px; - width: 20px; - position: relative; - top: 50%; - left: 50%; - transform: translate(-50%,-50% ); - path{ - fill: $gray; - } - } - } - - &.not-empty{ - .sdc-input__input { - border-color: $blue; - } - .search-button{ - background-color: $lighter-blue; - border-color: $blue; - cursor: pointer; - svg path{ - fill: $blue; - } - &:hover { - background-color: $light-blue; - svg{ - path{ - fill: $white; - } - } - } - } - } - } -} diff --git a/components/search-bar/search-bar-with-text.html b/components/search-bar/search-bar-with-text.html deleted file mode 100644 index f623c2f..0000000 --- a/components/search-bar/search-bar-with-text.html +++ /dev/null @@ -1,17 +0,0 @@ - - diff --git a/components/search-bar/search-bar.html b/components/search-bar/search-bar.html deleted file mode 100644 index d1b9171..0000000 --- a/components/search-bar/search-bar.html +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/components/tabs/tabs-disabled.html b/components/tabs/tabs-disabled.html deleted file mode 100644 index 5e67f2a..0000000 --- a/components/tabs/tabs-disabled.html +++ /dev/null @@ -1,8 +0,0 @@ -
-
    - - - -
-
This is the active tab content
-
diff --git a/components/tabs/tabs-header.html b/components/tabs/tabs-header.html deleted file mode 100644 index 622dc32..0000000 --- a/components/tabs/tabs-header.html +++ /dev/null @@ -1,8 +0,0 @@ -
-
    - - - -
-
This is the active tab content
-
diff --git a/components/tabs/tabs-menu.html b/components/tabs/tabs-menu.html deleted file mode 100644 index 753886f..0000000 --- a/components/tabs/tabs-menu.html +++ /dev/null @@ -1,8 +0,0 @@ -
-
    - - - -
-
This is the active tab content
-
diff --git a/components/tabs/tabs.scss b/components/tabs/tabs.scss deleted file mode 100644 index f5df0ba..0000000 --- a/components/tabs/tabs.scss +++ /dev/null @@ -1,35 +0,0 @@ -.sdc-tabs { - .sdc-tab { - display: inline-block; - cursor: pointer; - text-transform: capitalize; - color: $dark-gray; - padding: 0px 10px 7px 10px; - margin-right: 20px; - &:last-child { - margin-right: 0; - } - &.sdc-tab-active { - color: $blue; - border-bottom: 2px solid $blue; - } - &[disabled] { - opacity: 0.3; - cursor: default; - } - } - &.sdc-tabs-header { - .sdc-tab { - @include heading-2; - } - } - &.sdc-tabs-menu { - .sdc-tab { - @include body-1; - padding: 0px 10px 4px 10px; - } - } - .sdc-tab-content { - margin-top: 30px; - } -} diff --git a/components/tag-cloud/_tag-cloud.scss b/components/tag-cloud/_tag-cloud.scss deleted file mode 100644 index 6a94a10..0000000 --- a/components/tag-cloud/_tag-cloud.scss +++ /dev/null @@ -1,116 +0,0 @@ -.sdc-tag-cloud-new-item-field{ - display: flex; - align-items: flex-end; - sdc-input{ - flex-grow: 1; - .sdc-input{ - margin-bottom: 0; - .sdc-input__input{ - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - } - } - .not-empty{ - .sdc-input__input { - border-color: $blue; - } - - } - .error{ - .sdc-input__input { - border: solid 1px $red; - color: $red; - outline: none; - } - } - .add-button{ - cursor: pointer; - height: 36px; - width: 36px; - text-align: center; - background-color: $lighter-blue; - border: solid 1px $blue; - border-left: none; - border-top-right-radius: 2px; - &.disabled{ - cursor: default; - background-color: $light-silver; - border-color: $light-gray; - .plus-icon svg g{ - fill: $gray; - } - } - .plus-icon{ - line-height: 46px; - svg{ - height: 20px; - width: 20px; - g{ - fill: $blue; - } - } - } - } - - &.not-empty{ - .add-button:hover{ - background-color: $light-blue; - svg{ - g{ - fill: $white; - } - } - } - } -} - -.sdc-list-container{ - height: 120px; - overflow-y: auto; - border: solid 1px $light-gray; - border-top: none; - border-radius: 2px; - background-color: $white; - padding: 10px 10px 0 0; - .sdc-tag-item{ - padding: 0 0 10px 10px; - display: inline-block; - .tag-item{ - min-width: 100px; - background-color: $white; - border: solid 1px $light-gray; - border-radius: 20px; - height: 28px; - line-height: 28px; - padding: 0 10px; - color: $text-black; - @include body-3; - &.view-only{ - border-color: $silver; - } - .delete-item{ - cursor: pointer; - padding-left: 10px; - float: right; - svg{ - height: 12px; - width: 12px; - margin-top: 8px; - g{ - fill: $dark-gray; - } - } - } - &:hover:not(.view-only){ - background-color: $lighter-blue; - border-color: $lighter-blue; - .delete-item{ - svg g{ - fill: $blue; - } - } - } - } - } -} diff --git a/components/tag-cloud/disabled-list.html b/components/tag-cloud/disabled-list.html deleted file mode 100644 index 6091525..0000000 --- a/components/tag-cloud/disabled-list.html +++ /dev/null @@ -1,31 +0,0 @@ -
-
- - -
-
- - - - - - - - - - -
-
-
-
-
- aaa -
-
- -
-
- bbb -
-
-
diff --git a/components/tag-cloud/list-with-active-add-button.html b/components/tag-cloud/list-with-active-add-button.html deleted file mode 100644 index 8bde59f..0000000 --- a/components/tag-cloud/list-with-active-add-button.html +++ /dev/null @@ -1,50 +0,0 @@ -
-
- - -
-
- - - - - - - - - - -
-
-
-
-
- aaa - - - - - - - - - - -
-
-
-
- bbb - - - - - - - - - - -
-
-
diff --git a/components/tag-cloud/list-with-some-read-only-items.html b/components/tag-cloud/list-with-some-read-only-items.html deleted file mode 100644 index 0db7a07..0000000 --- a/components/tag-cloud/list-with-some-read-only-items.html +++ /dev/null @@ -1,61 +0,0 @@ -
-
- - -
- -
- - - - - - - - - - -
-
-
-
-
- aaa - - - - - - - - - - -
-
-
-
- bbb -
-
-
-
- ccc - - - - - - - - - - -
-
- -
- ddd -
-
-
diff --git a/components/tag-cloud/list-with-unique-error.html b/components/tag-cloud/list-with-unique-error.html deleted file mode 100644 index 14de80c..0000000 --- a/components/tag-cloud/list-with-unique-error.html +++ /dev/null @@ -1,52 +0,0 @@ -
-
- - -
-
- - - - - - - - - - -
-
-
-
-
- aaa - - - - - - - - - - -
-
-
-
- bbb - - - - - - - - - - -
-
-
-
This value is already in the list
- diff --git a/components/tag-cloud/simple-list.html b/components/tag-cloud/simple-list.html deleted file mode 100644 index 075751f..0000000 --- a/components/tag-cloud/simple-list.html +++ /dev/null @@ -1,50 +0,0 @@ -
-
- - -
-
- - - - - - - - - - -
-
-
-
-
- aaa - - - - - - - - - - -
-
-
-
- bbb - - - - - - - - - - -
-
-
diff --git a/components/tile/_tile.scss b/components/tile/_tile.scss deleted file mode 100644 index 80629cf..0000000 --- a/components/tile/_tile.scss +++ /dev/null @@ -1,172 +0,0 @@ -.sdc-tile { - $tile-full-width: 204px; - $tile-full-height: 204px; - $tile-padding: 10px; - - $header-height: $body-font-1; - $footer-height: 23px; - $content-height: 100%; - - width: $tile-full-width; - height: $tile-full-height; - - padding: $tile-padding; - border: 1px solid $silver; - @include border-radius(2px); - @include box-sizing; - - display: flex; - flex-direction: column; - justify-content: space-between; - - position: relative; - cursor: pointer; - user-select: none; - - background: $white; - color: $text-black; - fill: $dark-gray; - transition: box-shadow 0.3s ease-in-out; - @include body-3; - @include box-shadow(0 1px 4px 0 rgba($text-black, 0.06)); - - &:hover { - border-color: $light-gray; - @include box-shadow( 0 10px 30px 0 rgba($text-black, 0.25)); - } - - .blue { - color: $blue; - fill: $blue; - } - - .purple { - color: $purple; - fill: $purple; - } - - .centered { - &.sdc-tile-footer, .sdc-tile-info-line { - text-align: center; - } - } - - .sdc-tile-header { - height: 1.1em; - line-height: 1em; - @include ellipsis($display: block); - - font-size: $body-font-1; - text-transform: uppercase; - } - - .sdc-tile-content { - display: flex; - flex-direction: column; - justify-content: space-between; - height: $content-height; - - .sdc-tile-content-icon { - margin-top: 27px; - text-align: center; - - svg { - width: 50px; - height: 50px; - - &.__vsp { - width: 60px; - height: 40px; - } - &.__vlm { - width: 45px; - height: 53px; - } - &.__vendor { - width: 53px; - height: 47px; - } - } - } - - .sdc-tile-content-info { - display: flex; - flex-direction: column; - - .sdc-tile-info-line { - text-transform: capitalize; - @include ellipsis($display: inline-block); - - button { - height: 1.67em; - width: initial; - margin-bottom: 5px; - margin-top: 1px; - padding: 0 8px; - font-size: inherit; - } - &.supertitle { - height: 1.1em; - line-height: 1.2; - color: $gray; - } - &.title { - height: 1.6em; - line-height: 1.8; - color: $text-black; - @include heading-5; - } - &.subtitle { - height: 1.5em; - line-height: 1.6; - color: $dark-gray; - } - &:last-child { - margin-bottom: 4px; - } - } - } - } - - .sdc-tile-footer { - height: $footer-height; - @include box-sizing; - - border-top: 1px solid $silver; - padding-top: 8px; - - color: $dark-gray; - fill: $dark-gray; - text-transform: capitalize; - - display: flex; - align-items: center; - justify-content: space-between; - - .sdc-tile-footer-cell { - &:first-child { - @include ellipsis; - } - svg{ - width: 20px; - height: 12px; - } - button { - width: initial; - height: initial; - @include body-2; - - .svg-icon-wrapper { - .svg-icon-label { - font-size: inherit; - } - svg { - width: 9px; - height: 9px; - } - } - } - } - - } -} diff --git a/components/tile/tile-without-footer.html b/components/tile/tile-without-footer.html deleted file mode 100644 index 514a19e..0000000 --- a/components/tile/tile-without-footer.html +++ /dev/null @@ -1,14 +0,0 @@ -
-
Header
-
-
-
- -
-
- -
-
diff --git a/components/tile/vendor-tile.html b/components/tile/vendor-tile.html deleted file mode 100644 index ede3fbf..0000000 --- a/components/tile/vendor-tile.html +++ /dev/null @@ -1,26 +0,0 @@ -
-
-
-
-
- -
-
- -
- -
diff --git a/components/tile/vfc-tile.html b/components/tile/vfc-tile.html deleted file mode 100644 index 7b4753e..0000000 --- a/components/tile/vfc-tile.html +++ /dev/null @@ -1,17 +0,0 @@ -
-
VFC
-
-
-
- -
-
- -
- -
diff --git a/components/tile/vlm-tile.html b/components/tile/vlm-tile.html deleted file mode 100644 index be629a1..0000000 --- a/components/tile/vlm-tile.html +++ /dev/null @@ -1,22 +0,0 @@ -
-
VLM
-
-
-
- -
-
- -
- -
diff --git a/components/tile/vsp-tile.html b/components/tile/vsp-tile.html deleted file mode 100644 index 1a3dc1d..0000000 --- a/components/tile/vsp-tile.html +++ /dev/null @@ -1,17 +0,0 @@ -
-
VSP
-
-
-
- -
-
- -
- -
diff --git a/components/tooltip/_tooltip.scss b/components/tooltip/_tooltip.scss deleted file mode 100644 index 3f255ed..0000000 --- a/components/tooltip/_tooltip.scss +++ /dev/null @@ -1,124 +0,0 @@ -/* Tooltip animation */ -@keyframes animation-fade-in-from-bottom { - from { - transform: translateY(10px); - opacity: 0; - } - to { - transform: translateY(0px); - opacity: 1; - } -} - -/* Tooltop styles */ -.sdc-tooltip { - @include base-font-regular; - line-height: 14px; - font-size: 12px; - max-width: 223px; - background-color: $black; - color: $white; - text-align: left; - border-radius: 2px; - padding: 5px 11px; - position: absolute; - z-index: 1000; - display: block; - opacity: 0; - transition: opacity 300ms; - border: solid 1px $black; - animation: animation-fade-in-from-bottom .75s ease-in-out; /* tooltip animation */ -} - -.sdc-tooltip-show { - opacity: 1; -} - -.sdc-tooltip::after { - content: ""; - position: absolute; - border-style: solid; -} - -.sdc-tooltip-top::after { - top: 100%; - left: 10px; - margin-left: -5px; - border-width: 5px; - border-color: $black transparent transparent transparent; -} -.sdc-tooltip-top-right__bottom::after { - right: 10px; - left:auto; -} -.sdc-tooltip-top-center__middle::after { - left: 50%; -} - -.sdc-tooltip-bottom::after { - bottom: 100%; - left: 10px; - margin-left: -5px; - border-width: 5px; - border-color: transparent transparent $black transparent; -} -.sdc-tooltip-bottom-right__bottom::after { - right: 10px; - left:auto; -} -.sdc-tooltip-bottom-center__middle::after { - left: 50%; -} - -.sdc-tooltip-left::after { - top: 10px; /*50%;*/ - left: 100%; - margin-top: -5px; - border-width: 5px; - border-color: transparent transparent transparent $black; -} -.sdc-tooltip-left-right__bottom::after { - bottom: 10px; - top: auto; -} -.sdc-tooltip-left-center__middle::after { - top: 50% -} - -.sdc-tooltip-right::after { - top: 10px; - right: 100%; - margin-top: -5px; - border-width: 5px; - border-color: transparent $black transparent transparent; -} -.sdc-tooltip-right-right__bottom::after { - bottom: 10px; - top: auto; -} -.sdc-tooltip-right-center__middle::after { - top: 50% -} - -/* Tooltip template */ -.sdc-tooltip-template-title { - @include base-font-regular; - font-size: 12px; - font-weight: normal; - background-color: $black; - color: $white; /* silver */ -} - -.sdc-tooltip-template-big-title { - font-size: 20px; - line-height: 24px; -} - -.sdc-tooltip-template-content { - @include base-font-regular; - font-size: 12px; - font-weight: normal; - background-color: $black; - color: $white; - line-height: 14px; -} diff --git a/components/validation/_validation.scss b/components/validation/_validation.scss deleted file mode 100644 index 771a242..0000000 --- a/components/validation/_validation.scss +++ /dev/null @@ -1,9 +0,0 @@ -.sdc-validation { - - font-size: $body-font-4; - display: flex; - flex-direction: column; - justify-content: space-between; - margin-top: 10px; - -} diff --git a/demo/.gitignore b/demo/.gitignore deleted file mode 100644 index 7788a08..0000000 --- a/demo/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. - -/dist -/tmp -/node_modules -npm-debug.log* -Thumbs.db diff --git a/demo/README.md b/demo/README.md deleted file mode 100644 index 6a478d8..0000000 --- a/demo/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Local DEMO - -### How to compile -Go to root folder (sdc-ui) and run: `npm run build` -This will compile all scss files and will copy generated style.css and assets folder to gen folder inside demo project. - -### How to run -Go to demo and run: `npm start` -This will open the default browser at port 2900. - -### How to build component HTML for DEMO -
    -
  • Create new HTML file for the component and put it in components folder
  • -
  • In the top of the HTML add
    Name of component
  • -
  • Inside the HTML for each type of component add header

    sub component name

  • -
  • - In order to show the HTML of the component to the user, add data-code attribute to the outerHTML of the component. - This component outerHTML will be copied and will be shown highlighted below the component. -
    You can also use data-code-ref and data-code-id where data-code-ref is a reference to the - component data-code-id, the data-code-ref will be replaced by highlighted outerHTML of the component. -
  • -
-For more info see example in tiles.html file - -### How add the new component to router for DEMO -In index.html file (under id main-navigation) add new
  • with id equal to HTML file you created above -
    Example: - diff --git a/demo/assests/README.md b/demo/assests/README.md deleted file mode 100644 index 5f2681b..0000000 --- a/demo/assests/README.md +++ /dev/null @@ -1,9 +0,0 @@ - -# Folder Structure - -### icons -Contains `svg` icons **ONLY** - - -### images -Contains large images (if any...) diff --git a/demo/assests/icons/empty.txt b/demo/assests/icons/empty.txt deleted file mode 100644 index e69de29..0000000 diff --git a/demo/assests/icons/locked.svg b/demo/assests/icons/locked.svg deleted file mode 100644 index 9785f8d..0000000 --- a/demo/assests/icons/locked.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/demo/assests/icons/plus.svg b/demo/assests/icons/plus.svg deleted file mode 100644 index 36f3486..0000000 --- a/demo/assests/icons/plus.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - diff --git a/demo/assests/icons/unlocked.svg b/demo/assests/icons/unlocked.svg deleted file mode 100644 index 6d94a94..0000000 --- a/demo/assests/icons/unlocked.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/demo/assests/icons/vendor.svg b/demo/assests/icons/vendor.svg deleted file mode 100644 index a3b8f5f..0000000 --- a/demo/assests/icons/vendor.svg +++ /dev/null @@ -1 +0,0 @@ -vendor diff --git a/demo/assests/icons/vlm.svg b/demo/assests/icons/vlm.svg deleted file mode 100644 index 79b4625..0000000 --- a/demo/assests/icons/vlm.svg +++ /dev/null @@ -1 +0,0 @@ -vlm_new_icon \ No newline at end of file diff --git a/demo/assests/icons/vsp.svg b/demo/assests/icons/vsp.svg deleted file mode 100644 index 344755c..0000000 --- a/demo/assests/icons/vsp.svg +++ /dev/null @@ -1 +0,0 @@ -vsp_new_icon diff --git a/demo/assests/images/empty.txt b/demo/assests/images/empty.txt deleted file mode 100644 index e69de29..0000000 diff --git a/demo/components/button.html b/demo/components/button.html deleted file mode 100644 index 5a68bb5..0000000 --- a/demo/components/button.html +++ /dev/null @@ -1,15 +0,0 @@ -
    Button
    - -
      -
    • - -
    • - -
    • - -
    • - -
    • - -
    • -
    \ No newline at end of file diff --git a/demo/components/colors.html b/demo/components/colors.html deleted file mode 100644 index a9bb9f9..0000000 --- a/demo/components/colors.html +++ /dev/null @@ -1,26 +0,0 @@ -
    Colors
    -

    - List of supported colors. All colors are background colors. -

    -
      -
    • sdc-bc-blue
    • -
    • sdc-bc-dark-blue
    • -
    • sdc-bc-light-blue
    • -
    • sdc-bc-green
    • -
    • sdc-bc-dark-green
    • -
    • sdc-bc-light-green
    • -
    • sdc-bc-orange
    • -
    • sdc-bc-yellow
    • -
    • sdc-bc-dark-purple
    • -
    • sdc-bc-purple
    • -
    • sdc-bc-light-purple
    • -
    • sdc-bc-black
    • -
    • sdc-bc-dark-gray
    • -
    • sdc-bc-gray
    • -
    • sdc-bc-light-gray
    • -
    • sdc-bc-white
    • -
    -

    Example of usage:

    - - <div class='sdc-bc-blue'>sdc-bc-blue</div> - \ No newline at end of file diff --git a/demo/components/tiles-generic.html b/demo/components/tiles-generic.html deleted file mode 100644 index 3d03909..0000000 --- a/demo/components/tiles-generic.html +++ /dev/null @@ -1,106 +0,0 @@ -
    Tiles Generic
    -

    - Tile do not have size, you can define the size in the wrapping container, or adding them - to css in your project. -
    Note: specific tiles like sdc-tile-catalog has specifc width & height. -
    Tiles content has overflow auto, so if the content overflow a scroll will appear. -

    - -

    Basic tile

    -

    Tile without width or height

    -
    -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec volutpat, lorem at vulputate sollicitudin, neque magna hendrerit diam, nec sagittis eros libero ut dolor. Donec tincidunt, elit nec vestibulum tristique, nulla tellus aliquam eros, at rutrum massa purus quis ipsum. In aliquet non augue quis condimentum. Praesent efficitur tellus quis mauris auctor, vel semper erat vulputate. Mauris rhoncus nunc et ante dapibus, id luctus urna sodales. Proin eu augue efficitur ligula tincidunt placerat. Suspendisse potenti. -
    -
    - -

    Tile with header & footer

    -

    - Note: The background-color is just for showing header, content & footer sections. - This is done using inline styles which should not be included in the final component. -
    The content will resize automaticly his height. -

    -
    -
    top
    -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec volutpat, lorem at vulputate sollicitudin, neque magna hendrerit diam, nec sagittis eros libero ut dolor. Donec tincidunt, elit nec vestibulum tristique, nulla tellus aliquam eros, at rutrum massa purus quis ipsum. In aliquet non augue quis condimentum. Praesent efficitur tellus quis mauris auctor, vel semper erat vulputate. Mauris rhoncus nunc et ante dapibus, id luctus urna sodales. Proin eu augue efficitur ligula tincidunt placerat. Suspendisse potenti. -
    - -
    - -

    Catalog tile (VSP)

    -

    - Specific tile of SDC. -
    Note: The differences betweeb the tiles is the color (diffrent class) and the icons. - The div with class='sdc-tile-content-info-vendor-name' is not needed in the second tile. -

    - -
    - -
    -
    -
    - vsp -
    -
    -
    -
    - - - -
    - -
    - -
    - -
    -
    -
    - vlm -
    -
    -
    -
    - - - -
    - -
    - -
    - -
    - -
    - diff --git a/demo/components/tiles.html b/demo/components/tiles.html deleted file mode 100644 index 3519817..0000000 --- a/demo/components/tiles.html +++ /dev/null @@ -1,105 +0,0 @@ -
    Tiles
    - -

    VSP Tile

    -

    - Example -

    -
    -
    -
    VSP
    -
    -
    -
    - - - -
    -
    -
    -
    -
    -
    vlm
    -
    -
    -
    lilach vsp
    -
    -
    -
    V 0.1
    -
    -
    -
    -
    Checked Out
    -
    -
    - - - -
    -
    -
    -
    -
    - -

    VLM Tile

    -
    -
    -
    VLM
    -
    -
    -
    - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    vlm
    -
    -
    -
    V 0.2
    -
    -
    -
    -
    Checked In
    -
    -
    - - - -
    -
    -
    -
    -
    - -

    Vendor Tile

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    vlm
    -
    1 VSPs
    -
    -
    -
    - - - -
    -    Create new VSP -
    -
    -
    -
    diff --git a/demo/index.css b/demo/index.css deleted file mode 100644 index ef71773..0000000 --- a/demo/index.css +++ /dev/null @@ -1,178 +0,0 @@ -/* GENERAL */ -body { - margin: 0; - color: #333333; - /*font-family: 'Open Sans Condensed';*/ - font-family: 'Overlock'; - font-size: 16px; - display: flex; - flex-wrap: wrap; - height: auto; -} - -h1 { font-size: 1.5em; } -h2 { font-size: 1.3em; } -h3 { font-size: 1.2em; } -h1, h2, h3 { margin: 2em 0 0.5em 0; color: #009fdb; } -p { margin: 6px 0; } - -/* LAYOUT */ -header { - order: 1; - width: 100%; - background-color: #ffffff; -} - -footer { - order: 4; - width: 100%; -} - -#main-navigation { - order: 2; - width: 100%; -} - -#main-content { - order: 3; - width: 100%; -} - -/* HEADER */ -header { - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.33); - height: 50px; - line-height: 50px; - z-index: 9; - display: flex; - flex-direction: row; - padding: 0 1vw; -} - -header .logo { - font-size: 22px; - font-weight: 700; -} - -header .title { - font-size: 20px; - margin-left: 2vw; -} - -/* FOOTER */ -footer { - height: 50px; - line-height: 50px; - z-index: 6; - display: flex; - flex-direction: row; - padding: 0 1vw; - border-top: solid 1px #dddddd; -} - -/* MAIN NAVIGATION */ -#main-navigation { - align-content: stretch; - z-index: 8; - box-shadow: 2px 0 0 0 rgba(68,68,68,0.2); -} - -#main-navigation .title { - font-size: 20px; - font-weight: 700; - background-color: #ffffff; - color: #009fdb; - border-bottom: 1px solid #d2d2d2; - height: 30px; - line-height: 30px; - padding: 0.3em; -} - -#main-navigation ul { - padding: 0; -} - -#main-navigation ul li { - background-color: #f8f8f8; - border-bottom: 1px solid #d2d2d2; - height: 30px; - line-height: 30px; - cursor: pointer; - padding: 0.3em; -} - -#main-navigation ul li.selected { - background-color: #009fdb; - color: #ffffff; -} - -/* MAIN CONTENT */ -#main-content { - -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */ - -moz-box-sizing: border-box; /* Firefox, other Gecko */ - box-sizing: border-box; /* Opera/IE 8+ */ - align-content: stretch; - padding: 2vh 2vw; - z-index: 7; -} - -/* RESPONSIVE */ -@media screen and (min-width: 800px) { - #main-navigation { width: 20%; } - #main-content { width: 80%; } -} - -/* OTHERS */ -.component { - background-color: #009fdb; - color: #ffffff; - font-size: 20px; - padding: 0.5em 1em; - margin: 0 0 0.5em 0; -} - -pre { - padding: 1em; - display: block; - margin: 1em 0; - font-family: 'PT Sans Narrow'; - font-size: 1em; -} - -/* SPECIFIC COMPONENT - TILE */ -.sdc-tile-showcase-tiles { - display: flex; - flex-direction: row; -} -.sdc-tile-showcase-tiles > div.sdc-tile-catalog { - margin: 0 5px 5px 5px; -} -.sdc-tile-showcase-tiles > div.sdc-tile-catalog:first-child { margin-left: 0; } -.sdc-tile-showcase-tiles > div.sdc-tile-catalog:last-child { margin-right: 0; } - -/* SPECIFIC COMPONENT - COLORS */ -.sdc-colors-showcase li { - padding: 1vw; - margin: 1vw; -} - -/* SPECIFIC COMPONENTS - BUTTONS */ -.buttons-showcase li { - display: flex; - flex-direction: column; - margin-top: 2vh; -} -.buttons-showcase li pre { - flex-grow: 1; - margin: 1vw 0 0.5vw 0; -} - -@media screen and (min-width: 600px) { - .buttons-showcase li { - margin-top: 0; - flex-direction: row; - } - .buttons-showcase li pre { - margin: 0.5vw 0 0.5vw 2vw; - } -} diff --git a/demo/index.html b/demo/index.html deleted file mode 100644 index f3b4cb4..0000000 --- a/demo/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - SDC-UI Show case - - - -
    - -
    Show case
    -
    - - - -
    - -
    - Copywrite 2017. All rights reserved. -
    - - - - diff --git a/demo/index.js b/demo/index.js deleted file mode 100644 index 1c9a4bb..0000000 --- a/demo/index.js +++ /dev/null @@ -1,84 +0,0 @@ -$( document ).ready(function() { - - initNavigation(); - registerEvents(); - doAfterComponentHtmlLoaded(); - -}); - -var initNavigation = function() { - - // Set default page - var page = window.location.hash; - if (page === '') { - page = "button"; - window.location.hash = page; - } - - // Remove # at the begining - if (page.indexOf('#')!==-1){ - page = page.substr(1); - } - console.log("page: " + page); - - // Upload the content - $("#main-content").load( "./components/" + page + ".html" ); - - // Set selected in navigation - $('#main-navigation #' + page).addClass('selected'); - -}; - -/** - * Simple router to load components HTML based on id. - */ -var registerEvents = function() { - $("#main-navigation li").click(function(e){ - page = e.target.id; - $("#main-content").load( "./components/" + page + ".html", function() { - doAfterComponentHtmlLoaded(); - }); - window.location.hash = page; - $('#main-navigation li').removeClass('selected'); - $('#main-navigation #' + page).addClass('selected'); - }); -}; - -/** - * Wait for component to load before applying javascript actions on it. - */ -var doAfterComponentHtmlLoaded = function() { - window.setTimeout(function() { - // Build code text to show to user - buildCode(); - - // highlight the code - hljs.initHighlightingOnLoad(); - },1000); -}; - -/** - * Build HTML code automaticly when attribute data-code exists - * For example: - * - * Will add the HTML of this (highlighted) button below the button. - */ -var buildCode = function() { - $('[data-code]').each(function(index, element){ - var result = $(element).removeAttr('data-code')[0].outerHTML; - var resultEncoded = $('
    ').text(result).html(); - var newElement = $('
    ' + resultEncoded + '
    ')[0]; - $(element).after(newElement); - hljs.highlightBlock(newElement); - }); - - $('[data-code-id]').each(function(index, element){ - var attVlue = $(element).attr('data-code-id'); - var codeHere = $('[data-code-ref='+attVlue+']'); - var result = $(element).removeAttr('data-code-id')[0].outerHTML; - var resultEncoded = $('
    ').text(result).html(); - var newElement = $('
    ' + resultEncoded + '
    ')[0]; - codeHere.replaceWith(newElement); - hljs.highlightBlock(newElement); - }); -}; diff --git a/demo/package.json b/demo/package.json deleted file mode 100644 index 40a7b7d..0000000 --- a/demo/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "onap-sdc", - "preferGlobal": true, - "version": "1.0.0", - "author": "Onap Sdc ", - "description": "Styles and UI components for ONAP SDC", - "license": "MIT", - "engines": { - "node": ">=0.10" - }, - "scripts": { - "start": "watch-http-server ./ -a 127.0.0.1 -p 2900 -o" - }, - "dependencies": { - "express": "~3.4.7", - "http-server": "^0.9.0" - }, - "devDependencies": { - "node-sass": "^4.5.2", - "nodemon": "^1.11.0", - "watch-http-server": "^0.7.6" - } -} diff --git a/designs/README.md b/designs/README.md deleted file mode 100644 index 5de4d30..0000000 --- a/designs/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Designs - -Reference folder for graphics and designs diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index 51e3f70..0000000 --- a/jest.config.js +++ /dev/null @@ -1,30 +0,0 @@ -module.exports = { - moduleFileExtensions: [ - 'js', - 'html' - ], - globals: { - ICON_PATH: './' - }, - transform: { - '^.+\\.js$': 'babel-jest', - '^.+\\.html$': '/test/react/utils/htmlLoader.js' - }, - moduleNameMapper: { - '^.+\\.svg$': '/test/react/utils/svgMock.js' - }, - coveragePathIgnorePatterns: [ - '/src/react/index.js', - '/src/index.js' - ], - testRegex: '/test/react/.*.(spec|test)\\.jsx?$', - testPathIgnorePatterns: [ - '/node_modules/', - ], - collectCoverageFrom: [ - 'src/**/*.{js,jsx}' - ], - coverageReporters: [ - 'lcov' - ] -}; diff --git a/json-typing.d.ts b/json-typing.d.ts deleted file mode 100644 index 4b3471f..0000000 --- a/json-typing.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module "*.json" { - const value: any; - export default value; -} diff --git a/karma.conf.js b/karma.conf.js deleted file mode 100644 index bc35fb7..0000000 --- a/karma.conf.js +++ /dev/null @@ -1,87 +0,0 @@ -/**************************************************************************************** - * Karma configuration file - ***************************************************************************************/ - -module.exports = function (config) { - config.set({ - basePath:'', - files:[ - 'karma.entry.js', - ], - - /** - * Enable / disable watching file and executing tests whenever any file changes - */ - autoWatch: true, - - /** - * Here, we tell Karma we'll be using Jasmine - */ - frameworks:['jasmine'], - - /** - * Level of logging - * possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - */ - logLevel: config.LOG_INFO, - - /** - * Currently we have the following launchers: Firefox, Chrome, PhantomJS - * Available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - */ - browsers: ['Firefox', 'PhantomJS'], - - /** - * Tells PhantomJS to shut down if Karma throws a ResourceError, If we didn't, PhantomJS might not shut down, - * and this would eat away at our system resources. - */ - phantomJsLauncher: { - exitOnResourceError: true - }, - - /** - * We tell Karma to run a list of preprocessors on our karma.entry.js file - */ - preprocessors: { - 'karma.entry.js': ['webpack', 'sourcemap'] - }, - - - /** - * dots: Tells karma to use dots reporter, which outputs a single dot for each test instead of descriptive message. - * kjhtml - Karma Jasmine HTML Reporter. Reporter that dynamically shows tests results at debug.html page. - */ - reporters: ['dots', 'kjhtml'], - - /** - * leave Jasmine Spec Runner output visible in browser - */ - client: { - clearContext: false - }, - - /** - * Keeps karma running after it completed it's tests for later rerun. - */ - singleRun: false, - - failOnEmptyTestSuite:false, - - /** - * Load webpack test configuration file - */ - webpack: require('./webpack/webpack.test.js'), - - webpackMiddleware: { - noInfo: true - }, - - /** - * Hide webpack bundle information messages - */ - webpackServer: { - noInfo: true - } - }) -}; - diff --git a/karma.entry.js b/karma.entry.js deleted file mode 100644 index acd16cc..0000000 --- a/karma.entry.js +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************************** - * Karma entry file. - * Starting point for pulling in our test and application files when using karma. - ***************************************************************************************/ - -/** - * Load dependencies: - * - core-js/es6 - Javascript polyfills support es6 code on unsupported browsers - * - reflect-metadata - support for decorators and reflection. - * - Zone library - Monkey patch all asynchronous actions and jasmine so changes could be detected - * as well as long stack traces (To get the root cause of errors). - */ - -require('core-js/es6'); - -require('reflect-metadata'); - -require('zone.js/dist/zone'); -require('zone.js/dist/async-test'); -require('zone.js/dist/fake-async-test'); -require('zone.js/dist/long-stack-trace-zone'); // Gives us a long backward trace of actions and errors -require('zone.js/dist/proxy'); -require('zone.js/dist/sync-test'); -require('zone.js/dist/jasmine-patch'); - -/** - * RxJS - */ -require('rxjs/Rx'); - - -/** - * Angular testing libraries dependencies - */ -const browserTesting = require('@angular/platform-browser-dynamic/testing'); -const coreTesting = require('@angular/core/testing'); - -coreTesting.TestBed.initTestEnvironment( - browserTesting.BrowserDynamicTestingModule, - browserTesting.platformBrowserDynamicTesting() -); - -/** - * Webpack method. requires all the files and subdirectories of a pattern. - * Checkout {@link https://webpack.github.io/docs/context.html} - */ -const context = require.context('./src/angular/', true, /\.spec\.ts$/); - -/** - * Get all the files, for each file, call the context function - * that will require the file and load it up here. Context will - * loop and require those spec files here - */ -function requireAll(requireContext) { - return requireContext.keys().map(requireContext); -} - -requireAll(context); - -/** - * These lines are the Jasmine setup . We'll make sure that we get full stack traces when we have a - * problem and that Jasmine uses two seconds as its default timeout. - * The timeout is used when we test asynchronous processes. If we don't set this properly, some of our tests could hang forever. - */ -Error.stackTraceLimit = Infinity; -jasmine.DEFAULT_TIMEOUT_INTERVAL = 2000; diff --git a/ng2-component-lab.webpack.config.js b/ng2-component-lab.webpack.config.js deleted file mode 100644 index d2f0551..0000000 --- a/ng2-component-lab.webpack.config.js +++ /dev/null @@ -1,62 +0,0 @@ -var path = require('path'); -var HtmlReplaceWebpackPlugin = require('html-replace-webpack-plugin') -var baseHref = process.env.NODE_ENV === 'build' ? '' : '' - -var webpackConfig = { - - devtool: 'source-map', - - output: { - path: path.resolve('.out/angular'), - publicPath: '' - }, - - plugins: [ - new HtmlReplaceWebpackPlugin([{ - pattern: '', - replacement: baseHref - }]) - ], - - module: { - rules: [ - // .ts files for TypeScript - { - test: /.ts$/, - use: [ - 'awesome-typescript-loader', - 'angular2-template-loader', - 'angular2-router-loader' - ] - }, - { test: /\.html$/, loader: "html-loader" }, - { - test: /.scss$/, - use: ['style-loader', 'css-loader', 'sass-loader'], - include: path.resolve(__dirname, '../') - }, - ] - }, - - resolve: { - extensions: ['.ts', '.js'], - modules: [path.resolve(__dirname, 'node_modules')], - alias: { - root: path.resolve(__dirname), - app: path.resolve(__dirname, 'src') - } - }, - - node: { - global: true, - crypto: 'empty', - __dirname: true, - __filename: true, - process: true, - Buffer: false, - clearImmediate: false, - setImmediate: false - } -}; - -module.exports = webpackConfig; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..765851a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,16342 @@ +{ + "name": "onap-ui-angular", + "version": "5.1.15", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.6.8.tgz", + "integrity": "sha512-ZKTm/zC61iY9IBHOEAKoMSzZpvhkmv+1O/HHzpHEuR551jCzu6vSyCmMY9Z7GBcccscCV+hjeSMwgFrFRcqlkw==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.6.8", + "rxjs": "^6.0.0" + } + }, + "@angular-devkit/build-angular": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.6.8.tgz", + "integrity": "sha512-VGqYAk8jpISraz2UHfsDre270NOUmV0CTSZw2p9sm5g/XIr5m+IHetFZz3gpoAr9+If2aFTs8Rt3sGdCRzwBqA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.6.8", + "@angular-devkit/build-optimizer": "0.6.8", + "@angular-devkit/core": "0.6.8", + "@ngtools/webpack": "6.0.8", + "ajv": "~6.4.0", + "autoprefixer": "^8.4.1", + "cache-loader": "^1.2.2", + "chalk": "~2.2.2", + "circular-dependency-plugin": "^5.0.2", + "clean-css": "^4.1.11", + "copy-webpack-plugin": "^4.5.1", + "file-loader": "^1.1.11", + "glob": "^7.0.3", + "html-webpack-plugin": "^3.0.6", + "istanbul": "^0.4.5", + "istanbul-instrumenter-loader": "^3.0.1", + "karma-source-map-support": "^1.2.0", + "less": "^3.0.4", + "less-loader": "^4.1.0", + "license-webpack-plugin": "^1.3.1", + "lodash": "^4.17.4", + "memory-fs": "^0.4.1", + "mini-css-extract-plugin": "~0.4.0", + "minimatch": "^3.0.4", + "node-sass": "^4.9.0", + "opn": "^5.1.0", + "parse5": "^4.0.0", + "portfinder": "^1.0.13", + "postcss": "^6.0.22", + "postcss-import": "^11.1.0", + "postcss-loader": "^2.1.5", + "postcss-url": "^7.3.2", + "raw-loader": "^0.5.1", + "resolve": "^1.5.0", + "rxjs": "^6.0.0", + "sass-loader": "^7.0.1", + "silent-error": "^1.1.0", + "source-map-support": "^0.5.0", + "stats-webpack-plugin": "^0.6.2", + "style-loader": "^0.21.0", + "stylus": "^0.54.5", + "stylus-loader": "^3.0.2", + "tree-kill": "^1.2.0", + "uglifyjs-webpack-plugin": "^1.2.5", + "url-loader": "^1.0.1", + "webpack": "~4.8.1", + "webpack-dev-middleware": "^3.1.3", + "webpack-dev-server": "^3.1.4", + "webpack-merge": "^4.1.2", + "webpack-sources": "^1.1.0", + "webpack-subresource-integrity": "^1.1.0-rc.4" + }, + "dependencies": { + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "istanbul-instrumenter-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", + "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", + "dev": true, + "requires": { + "convert-source-map": "^1.5.0", + "istanbul-lib-instrument": "^1.7.3", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0" + } + }, + "less": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/less/-/less-3.8.0.tgz", + "integrity": "sha512-746DPDyL+Wsjo7h/Z3t+A3Mg/mpDTaxW4puZyLhCQJjWJJvHggN735orjuCLIYgo7jKqv1zWLiQrxkuUOg5oGA==", + "dev": true, + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + } + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.0", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.10.3", + "vm-browserify": "0.0.4" + } + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "^5.0.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "stylus": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", + "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", + "dev": true, + "requires": { + "css-parse": "1.7.x", + "debug": "*", + "glob": "7.0.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "webpack": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.8.3.tgz", + "integrity": "sha512-/hfAjBISycdK597lxONjKEFX7dSIU1PsYwC3XlXUXoykWBlv9QV5HnO+ql3HvrrgfBJ7WXdnjO9iGPR2aAc5sw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/wasm-edit": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "acorn": "^5.0.0", + "acorn-dynamic-import": "^3.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^0.1.1", + "enhanced-resolve": "^4.0.0", + "eslint-scope": "^3.7.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^0.4.4", + "tapable": "^1.0.0", + "uglifyjs-webpack-plugin": "^1.2.4", + "watchpack": "^1.5.0", + "webpack-sources": "^1.0.1" + }, + "dependencies": { + "schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-merge": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz", + "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==", + "dev": true, + "requires": { + "lodash": "^4.17.5" + } + } + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.6.8.tgz", + "integrity": "sha512-of5syQbv3uNPp4AQkfRecfnp8AE8kvffbfYi+FFPZ6OGr7e59T1fGwk6+Zgb2qQFQg8HO2tzWI/uygtLIqmbmw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "source-map": "^0.5.6", + "typescript": "~2.9.1", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "dev": true + } + } + }, + "@angular-devkit/core": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.6.8.tgz", + "integrity": "sha512-rkIa1OSVWTt4g9leLSK/PsqOj3HZbDKHbZjqlslyfVa3AyCeiumFoOgViOVXlYgPX3HHDbE5uH24nyUWSD8uww==", + "dev": true, + "requires": { + "ajv": "~6.4.0", + "chokidar": "^2.0.3", + "rxjs": "^6.0.0", + "source-map": "^0.5.6" + } + }, + "@angular-devkit/schematics": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.7.2.tgz", + "integrity": "sha512-4mhLhXc4Tyu07sGXWOHV9zXZ8uthbUo5zr63lj0Z9gv5f/vrJj5fyEoTnHONBFzVPdElMYS2vhiEtwnN0hKQDA==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.7.2", + "rxjs": "^6.0.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.7.2.tgz", + "integrity": "sha512-1Es9oNpabOukutBe+0txXUHyhI6ypuc7WrxTutZH7Lr3n3+CTG6oEv42rOcot1aXi1n97wNqcdY3lrENFu9vhQ==", + "dev": true, + "requires": { + "ajv": "~6.4.0", + "chokidar": "^2.0.3", + "rxjs": "^6.0.0", + "source-map": "^0.5.6" + } + } + } + }, + "@angular/animations": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-6.1.0.tgz", + "integrity": "sha512-9IJs1czyoOlgcaY3QUyQI0XeTFX45Qr/o5qlPrce240gi7TXbdJs3WIbLzxx7BhMf20GholCaOvSS3BZrNlFSA==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/cli": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-6.1.2.tgz", + "integrity": "sha512-uY1/rFWqmi7MibUz4bwhkiM95PmDZn0OCaMxGafZlriZgu+81on7/7biWNHgIRAd+QV1qBJlstWT2J0K8r1vLA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.7.2", + "@angular-devkit/core": "0.7.2", + "@angular-devkit/schematics": "0.7.2", + "@schematics/angular": "0.7.2", + "@schematics/update": "0.7.2", + "opn": "^5.3.0", + "rxjs": "^6.0.0", + "semver": "^5.1.0", + "symbol-observable": "^1.2.0", + "yargs-parser": "^10.0.0" + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.7.2.tgz", + "integrity": "sha512-p7e4wE+a1AxlfCJQL1IIBltblV9VqFSMlUuPW3PUp0fguo0yaTv9paY5WlFwrj0YhypBj3zHcjSdIruHrgbErg==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.7.2", + "rxjs": "^6.0.0" + } + }, + "@angular-devkit/core": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.7.2.tgz", + "integrity": "sha512-1Es9oNpabOukutBe+0txXUHyhI6ypuc7WrxTutZH7Lr3n3+CTG6oEv42rOcot1aXi1n97wNqcdY3lrENFu9vhQ==", + "dev": true, + "requires": { + "ajv": "~6.4.0", + "chokidar": "^2.0.3", + "rxjs": "^6.0.0", + "source-map": "^0.5.6" + } + }, + "@schematics/angular": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.7.2.tgz", + "integrity": "sha512-u92urZDC9qk/4gQliajrzxgrEz3ucvOtQ0eCzbRKU86AGWrz215hQJRmLRSDAdVy0frfc8Gg8IhdHSA2nZLgVw==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.7.2", + "@angular-devkit/schematics": "0.7.2", + "typescript": ">=2.6.2 <2.8" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "@angular/common": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-6.1.0.tgz", + "integrity": "sha512-uxdjxbuTYiCsOcrfO9EumGrfXo+7nB7HlS9F4wraKcnR22oJYNUh36meFKZwpoj5pDIBLnZQu75boI16o3W+SQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/compiler": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.1.0.tgz", + "integrity": "sha512-5c8ZYCFv0xccy0F12zBRIJX0pJd9BgCThJuhVJAuaRFFOqPZl8FKEO3SFqKJNywT0UktZD9JpYFKxhUVxuSHDg==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/compiler-cli": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.1.0.tgz", + "integrity": "sha512-g4fXQwAYnxtr08BK3CiodJsUXz3fIBCVfZaWIcLMdOlyarFDEvB3TA9qfPkQtlndm87WpXjZ6Xd9OAkmG8t8dw==", + "dev": true, + "requires": { + "chokidar": "^1.4.2", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "tsickle": "^0.30.0" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "tsickle": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.30.0.tgz", + "integrity": "sha512-A4ALnEDQNrECn5xhgHmoXKM5qERCM395pKIfqcV57ex3zEInVogu/A191Btv8OPEINkr3xQ3Q2XRywyqkge3Qg==", + "dev": true, + "requires": { + "jasmine-diff": "^0.1.3", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map": "^0.6.0", + "source-map-support": "^0.5.0" + } + } + } + }, + "@angular/core": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.1.0.tgz", + "integrity": "sha512-gWu9Q7q2+fhFC5dl/BvGW7Ha7NUJtK9wQLYQlfIMim4lKTOiM1/S0MYBVMrEq58ldMr9DnA35f5jGno3x6/v+g==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/forms": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.1.0.tgz", + "integrity": "sha512-6InfsKWEL9w2RvTXjy5R3F8GRjENT9d444o95aSvf+ZK7KsYOeIwcYgN2pw+LjfNu2O3EbAqps8APQ6oD/Fn3A==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/platform-browser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.1.0.tgz", + "integrity": "sha512-LcpcHLpy+fjN+gKcnTkWuTTuF+uYT350mje1kNr4Advoco76tXYBjAda/EehG+vmQmDTd5E+uxJhKJr/1POVEw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.1.0.tgz", + "integrity": "sha512-gjOJ38ciuIgdAuG8bEs/sdJmkfm/oICLrCcQexz+EUCZAiqbKDb0HvFTDaKaLtR7iDbTXVMQhoYMOyTY40FwLQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/upgrade": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-6.1.0.tgz", + "integrity": "sha512-HWpXisVY1uyIhWXz41KciweCWAD7oHajkhnDXlNBvDaIbnYkUSSr2D5DOCR8jIooV1HqJMkXCqRR0nwm3WEjJg==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@babel/code-frame": { + "version": "7.0.0-beta.42", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.42.tgz", + "integrity": "sha512-L8i94FLSyaLQpRfDo/qqSm8Ndb44zMtXParXo0MebJICG1zoCCL4+GkzUOlB4BNTRSXXQdb3feam/qw7bKPipQ==", + "dev": true, + "requires": { + "@babel/highlight": "7.0.0-beta.42" + } + }, + "@babel/helper-module-imports": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.51.tgz", + "integrity": "sha1-zgBCgEX7t9XrwOp7+DV4nxU2arI=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.51", + "lodash": "^4.17.5" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.42", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.42.tgz", + "integrity": "sha512-X3Ur/A/lIbbP8W0pmwgqtDXIxhQmxPaiwY9SKP7kF9wvZfjZRwMvbJE92ozUhF3UDK3DCKaV7oGqmI1rP/zqWA==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "@babel/types": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@emotion/babel-utils": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@emotion/babel-utils/-/babel-utils-0.6.8.tgz", + "integrity": "sha512-W+jlIJwsHxLnySwgxvVJH5ragBgxf3+zNcZEoJl6ihq6aaZAf48ub+RjzDNy2oiU272MW1YlEaW8B5//HHUucg==", + "dev": true, + "requires": { + "@emotion/hash": "^0.6.5", + "@emotion/memoize": "^0.6.5", + "@emotion/serialize": "^0.8.6", + "convert-source-map": "^1.5.1", + "find-root": "^1.1.0", + "source-map": "^0.7.2" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "@emotion/hash": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.6.5.tgz", + "integrity": "sha512-JlZbn5+adseTdDPTUkx/O1/UZbhaGR5fCLLWQDCIJ4eP9fJcVdP/qjlTveEX6mkNoJHWFbZ47wArWQQ0Qk6nMA==", + "dev": true + }, + "@emotion/is-prop-valid": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.6.5.tgz", + "integrity": "sha512-pfjQHT3FCZkAPxqY+sI6MmMTPMCKGIV3DcC1qhf68XkE9pGtKqb5WNN2vfmLgTMGnNVXnaFyx/VjdDYmGFcRaw==", + "dev": true, + "requires": { + "@emotion/memoize": "^0.6.5" + } + }, + "@emotion/memoize": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.6.5.tgz", + "integrity": "sha512-n1USr7yICA4LFIv7z6kKsXM8rZJxd1btKCBmDewlit+3OJ2j4bDfgXTAxTHYbPkHS/eztHmFWfsbxW2Pu5mDqA==", + "dev": true + }, + "@emotion/serialize": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.8.6.tgz", + "integrity": "sha512-GSA3ANFCKBtfmTa+bH3+newHGeEfU0X78oDK5+Wxp65nOsOJEgzeMocmclgsbY7hZ4uhBkZf3GaGt4DXKjWlhA==", + "dev": true, + "requires": { + "@emotion/hash": "^0.6.5", + "@emotion/memoize": "^0.6.5", + "@emotion/unitless": "^0.6.5", + "@emotion/utils": "^0.8.0" + } + }, + "@emotion/stylis": { + "version": "0.6.12", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.6.12.tgz", + "integrity": "sha512-yS+t7l5FeYeiIyADyqjFBJvdotpphHb2S3mP4qak5BpV7ODvxuyAVF24IchEslW+A1MWHAhn5SiOW6GZIumiEQ==", + "dev": true + }, + "@emotion/unitless": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.6.5.tgz", + "integrity": "sha512-kAFHWyQTMLcOvse+RfEfJ6uwwOlVFZcUOMX0wuBvEMwnF3Zb/6VQ/xDgbx9fNlp3I6AAmijAtUtIyT2qVldpnA==", + "dev": true + }, + "@emotion/utils": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.8.0.tgz", + "integrity": "sha512-VzuAGGkfxE5lt/fWqQAQWlbYf8Rl2AzVRN0aYnCLSfXaavz0DHPOOG8xq7KfJdWIQMI42+bWOoospybg54ADmA==", + "dev": true + }, + "@ngrx/store": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-6.1.0.tgz", + "integrity": "sha512-H5BGym1WtAX84/R4pTQ2MrrP87qYfXc6CoPghCZCK9LYxCodsI7KeQfpyNCg5qapxdH2EDqlHXTBJfMTLRiRGg==" + }, + "@ngtools/webpack": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-6.0.8.tgz", + "integrity": "sha512-jorGpTd82ILbyUwg4JQekovHFaYwSMlZan4f7x+sd3+2WgyL3Z1+ZbVSGKvXZWKS/mAVx7eLkRikzJkuC4FgHw==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.6.8", + "tree-kill": "^1.0.0", + "webpack-sources": "^1.1.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz", + "integrity": "sha512-LAQ1d4OPfSJ/BMbI2DuizmYrrkD9JMaTdi2hQTlI53lQ4kRQPyZQRS4CYQ7O66bnBBnP/oYdRxbk++X0xuFU6A==", + "dev": true + }, + "@schematics/update": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.7.2.tgz", + "integrity": "sha512-YOnQhhYAAGjhWGCs7RUPKQD2G9Qg5gby4Dxa43vGP31xUcYFeYZCbU9MchnaxLPFi1NH4UEztkRFT4T3bn2d1A==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.7.2", + "@angular-devkit/schematics": "0.7.2", + "npm-registry-client": "^8.5.1", + "rxjs": "^6.0.0", + "semver": "^5.3.0", + "semver-intersect": "^1.1.2" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.7.2.tgz", + "integrity": "sha512-1Es9oNpabOukutBe+0txXUHyhI6ypuc7WrxTutZH7Lr3n3+CTG6oEv42rOcot1aXi1n97wNqcdY3lrENFu9vhQ==", + "dev": true, + "requires": { + "ajv": "~6.4.0", + "chokidar": "^2.0.3", + "rxjs": "^6.0.0", + "source-map": "^0.5.6" + } + } + } + }, + "@storybook/addon-actions": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-4.0.0-alpha.9.tgz", + "integrity": "sha512-fIYDdw3u+31gL1I5npP60qXDM1AwLsFKXfyQr2yQ5vGuM6G76H51Jj7VpRnu/mUkOId4WWLjSVd7zP+ppQjLJw==", + "dev": true, + "requires": { + "@storybook/addons": "4.0.0-alpha.9", + "@storybook/components": "4.0.0-alpha.9", + "@storybook/core-events": "4.0.0-alpha.9", + "babel-runtime": "^6.26.0", + "deep-equal": "^1.0.1", + "emotion": "^9.1.3", + "global": "^4.3.2", + "lodash.isequal": "^4.5.0", + "make-error": "^1.3.4", + "prop-types": "^15.6.1", + "react-emotion": "^9.1.3", + "react-inspector": "^2.3.0", + "uuid": "^3.2.1" + }, + "dependencies": { + "react-emotion": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/react-emotion/-/react-emotion-9.2.6.tgz", + "integrity": "sha512-3GwLQ0Vib/X0G7KWY7N1F/7NmfoBLkkg3g9Jd8t6By5QUH0PyCSUVdDmfFBbgVKsAcpkjA0vcsMbiWeZusaRrA==", + "dev": true, + "requires": { + "babel-plugin-emotion": "^9.2.6", + "create-emotion-styled": "^9.2.6" + } + } + } + }, + "@storybook/addon-backgrounds": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-4.0.0-alpha.9.tgz", + "integrity": "sha512-H/qAI9PjRCyQ42g5TGqMc7IJvy+x2W8XGBnN4MW8OwEcBVFgbnxoIA5yufGLOS8u7TaLQH+x0dxFcRhhKe5o2A==", + "dev": true, + "requires": { + "@storybook/addons": "4.0.0-alpha.9", + "@storybook/core-events": "4.0.0-alpha.9", + "babel-runtime": "^6.26.0", + "emotion": "^9.1.3", + "global": "^4.3.2", + "prop-types": "^15.6.1", + "react-emotion": "^9.1.3", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "react-emotion": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/react-emotion/-/react-emotion-9.2.6.tgz", + "integrity": "sha512-3GwLQ0Vib/X0G7KWY7N1F/7NmfoBLkkg3g9Jd8t6By5QUH0PyCSUVdDmfFBbgVKsAcpkjA0vcsMbiWeZusaRrA==", + "dev": true, + "requires": { + "babel-plugin-emotion": "^9.2.6", + "create-emotion-styled": "^9.2.6" + } + } + } + }, + "@storybook/addon-centered": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-centered/-/addon-centered-4.0.0-alpha.9.tgz", + "integrity": "sha512-B5Ohy1Kq9hpTz2r74NTWxUrGDprp3K4AZzvlXhXKBbOXwUcJbq8RLOfV/lbHD0KR79r46IevRvdCya1M5hjCpA==", + "dev": true, + "requires": { + "global": "^4.3.2" + } + }, + "@storybook/addon-jest": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-jest/-/addon-jest-4.0.0-alpha.9.tgz", + "integrity": "sha512-MjoUkaxi/6tuVNz5ns7dVZSMfSFDYqgplGZPBEg1h/zrLWzJy2RkZRkmlohJBDmEyS45eAAzyb5k+roKG+gLpw==", + "dev": true, + "requires": { + "@storybook/addons": "4.0.0-alpha.9", + "@storybook/components": "4.0.0-alpha.9", + "babel-runtime": "^6.26.0", + "emotion": "^9.1.3", + "global": "^4.3.2", + "prop-types": "^15.6.1", + "react-emotion": "^9.1.3" + }, + "dependencies": { + "react-emotion": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/react-emotion/-/react-emotion-9.2.6.tgz", + "integrity": "sha512-3GwLQ0Vib/X0G7KWY7N1F/7NmfoBLkkg3g9Jd8t6By5QUH0PyCSUVdDmfFBbgVKsAcpkjA0vcsMbiWeZusaRrA==", + "dev": true, + "requires": { + "babel-plugin-emotion": "^9.2.6", + "create-emotion-styled": "^9.2.6" + } + } + } + }, + "@storybook/addon-knobs": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-knobs/-/addon-knobs-4.0.0-alpha.9.tgz", + "integrity": "sha512-nSRje01MVThRYgw09c1DDkSL77rYaC1qXOiTuB6btsPoIvHHc1pNQXoPdYW1bSqGZbbkZ9G6OCTgNkpbg2hC4g==", + "dev": true, + "requires": { + "@storybook/addons": "4.0.0-alpha.9", + "@storybook/components": "4.0.0-alpha.9", + "@storybook/core-events": "4.0.0-alpha.9", + "babel-runtime": "^6.26.0", + "deep-equal": "^1.0.1", + "escape-html": "^1.0.3", + "global": "^4.3.2", + "insert-css": "^2.0.0", + "lodash.debounce": "^4.0.8", + "moment": "^2.22.2", + "prop-types": "^15.6.1", + "react-color": "^2.14.1", + "react-datetime": "^2.14.0", + "react-emotion": "^9.1.3", + "react-lifecycles-compat": "^3.0.4", + "react-textarea-autosize": "^6.1.0", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "react-emotion": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/react-emotion/-/react-emotion-9.2.6.tgz", + "integrity": "sha512-3GwLQ0Vib/X0G7KWY7N1F/7NmfoBLkkg3g9Jd8t6By5QUH0PyCSUVdDmfFBbgVKsAcpkjA0vcsMbiWeZusaRrA==", + "dev": true, + "requires": { + "babel-plugin-emotion": "^9.2.6", + "create-emotion-styled": "^9.2.6" + } + } + } + }, + "@storybook/addon-links": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-4.0.0-alpha.9.tgz", + "integrity": "sha512-OfNjsAJ+YOy4jIAADJaqtAaTpgveku5PSWhxkXTvXZPIxFxh3X59ZYkTzSj0LFVEsfp7o+Sv0VB6KuaDgY69kA==", + "dev": true, + "requires": { + "@storybook/addons": "4.0.0-alpha.9", + "@storybook/components": "4.0.0-alpha.9", + "@storybook/core-events": "4.0.0-alpha.9", + "babel-runtime": "^6.26.0", + "global": "^4.3.2", + "prop-types": "^15.6.1" + } + }, + "@storybook/addon-notes": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-notes/-/addon-notes-4.0.0-alpha.9.tgz", + "integrity": "sha512-nju5U4uAg0syqevQ9uh5v8jfXc0E6ZElsvyrEl1SkwOuDMogegEF85Uo+tNSbiAA+sDi7DcK6wGRK02iw8oFIg==", + "dev": true, + "requires": { + "@storybook/addons": "4.0.0-alpha.9", + "babel-runtime": "^6.26.0", + "emotion": "^9.1.3", + "marked": "^0.4.0", + "prop-types": "^15.6.1", + "react-emotion": "^9.1.3", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "react-emotion": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/react-emotion/-/react-emotion-9.2.6.tgz", + "integrity": "sha512-3GwLQ0Vib/X0G7KWY7N1F/7NmfoBLkkg3g9Jd8t6By5QUH0PyCSUVdDmfFBbgVKsAcpkjA0vcsMbiWeZusaRrA==", + "dev": true, + "requires": { + "babel-plugin-emotion": "^9.2.6", + "create-emotion-styled": "^9.2.6" + } + } + } + }, + "@storybook/addon-options": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-options/-/addon-options-4.0.0-alpha.9.tgz", + "integrity": "sha512-VNHowQzvxVoWXtBkaiMlwGwsXmbQm5Uf9QO9MSizg8DWBECfdHvPJR5QWL4ZVin3HX5loDti4LbKXojCRd3Lvg==", + "dev": true, + "requires": { + "@storybook/addons": "4.0.0-alpha.9", + "babel-runtime": "^6.26.0" + } + }, + "@storybook/addon-storyshots": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-storyshots/-/addon-storyshots-4.0.0-alpha.9.tgz", + "integrity": "sha512-96as774d4X8y0TaUj2+XUaes6NHijp3CXZkg8qgXgwFor9Og9sioHpPr6NszCCNzkDSB77aDreO6Z3nsZn0T9g==", + "dev": true, + "requires": { + "@storybook/addons": "4.0.0-alpha.9", + "@storybook/core": "4.0.0-alpha.9", + "@storybook/node-logger": "4.0.0-alpha.9", + "babel-runtime": "^6.26.0", + "glob": "^7.1.2", + "global": "^4.3.2", + "jest-image-snapshot": "^2.4.2", + "jest-specific-snapshot": "^0.5.0", + "puppeteer": "^1.4.0", + "read-pkg-up": "^3.0.0" + }, + "dependencies": { + "@storybook/core": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-4.0.0-alpha.9.tgz", + "integrity": "sha512-rMmCJi5fAVHUQfBqIHrxnzprsQQZMTWkTWMM6bA7uqsp8tgqN7PUfgKRUDl7mbfTFOzjIgle7AAPO/EmqKh+vw==", + "dev": true, + "requires": { + "@storybook/addons": "4.0.0-alpha.9", + "@storybook/channel-postmessage": "4.0.0-alpha.9", + "@storybook/client-logger": "4.0.0-alpha.9", + "@storybook/core-events": "4.0.0-alpha.9", + "@storybook/node-logger": "4.0.0-alpha.9", + "@storybook/react-dev-utils": "^5.0.0", + "@storybook/ui": "4.0.0-alpha.9", + "airbnb-js-shims": "^1.6.0", + "autoprefixer": "^8.6.0", + "babel-loader": "^7.1.4", + "babel-plugin-macros": "^2.2.2", + "babel-plugin-transform-regenerator": "^6.26.0", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-env": "^1.7.0", + "babel-preset-minify": "0.4.1", + "babel-preset-stage-0": "^6.24.1", + "babel-runtime": "^6.26.0", + "case-sensitive-paths-webpack-plugin": "^2.1.2", + "chalk": "^2.4.1", + "commander": "^2.15.1", + "core-js": "^2.5.7", + "css-loader": "^0.28.11", + "dotenv": "^5.0.1", + "dotenv-webpack": "^1.5.6", + "emotion": "^9.1.3", + "express": "^4.16.3", + "file-loader": "^1.1.11", + "find-cache-dir": "^1.0.0", + "global": "^4.3.2", + "html-webpack-plugin": "^3.2.0", + "json5": "^1.0.1", + "postcss-flexbugs-fixes": "^3.3.1", + "postcss-loader": "^2.1.5", + "prop-types": "^15.6.1", + "qs": "^6.5.2", + "raw-loader": "^0.5.1", + "react-emotion": "^9.1.3", + "redux": "^4.0.0", + "serve-favicon": "^2.5.0", + "shelljs": "^0.8.2", + "style-loader": "^0.21.0", + "svg-url-loader": "^2.3.2", + "url-loader": "^1.0.1", + "webpack": "^4.10.2", + "webpack-dev-middleware": "^3.1.3", + "webpack-hot-middleware": "^2.22.2" + } + }, + "@storybook/react-komposer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@storybook/react-komposer/-/react-komposer-2.0.4.tgz", + "integrity": "sha1-wsDUp12bSpwMa0bxSrBQ9FitS7A=", + "dev": true, + "requires": { + "@storybook/react-stubber": "^1.0.0", + "babel-runtime": "^6.11.6", + "hoist-non-react-statics": "^1.2.0", + "lodash.pick": "^4.4.0", + "shallowequal": "^0.2.2" + } + }, + "@storybook/ui": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-4.0.0-alpha.9.tgz", + "integrity": "sha512-sVfYb0F6YDOcLzbIYj5lAf946exEm49yxFfvUlG9mr4IYESw6tmGLrURyzqFcmPJWgqF+4byS0d5nXp0cSUf0A==", + "dev": true, + "requires": { + "@storybook/components": "4.0.0-alpha.9", + "@storybook/core-events": "4.0.0-alpha.9", + "@storybook/mantra-core": "^1.7.2", + "@storybook/podda": "^1.2.3", + "@storybook/react-komposer": "^2.0.4", + "babel-runtime": "^6.26.0", + "deep-equal": "^1.0.1", + "emotion": "^9.1.3", + "events": "^2.1.0", + "fuse.js": "^3.2.0", + "global": "^4.3.2", + "keycode": "^2.2.0", + "lodash.debounce": "^4.0.8", + "lodash.pick": "^4.4.0", + "lodash.sortby": "^4.7.0", + "lodash.throttle": "^4.1.1", + "prop-types": "^15.6.1", + "qs": "^6.5.2", + "react-emotion": "^9.1.3", + "react-fuzzy": "^0.5.2", + "react-icons": "^2.2.7", + "react-lifecycles-compat": "^3.0.4", + "react-modal": "^3.4.5", + "react-treebeard": "^2.1.0" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "dev": true + }, + "express": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.3", + "qs": "6.5.1", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + } + } + }, + "hoist-non-react-statics": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", + "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "react-emotion": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/react-emotion/-/react-emotion-9.2.6.tgz", + "integrity": "sha512-3GwLQ0Vib/X0G7KWY7N1F/7NmfoBLkkg3g9Jd8t6By5QUH0PyCSUVdDmfFBbgVKsAcpkjA0vcsMbiWeZusaRrA==", + "dev": true, + "requires": { + "babel-plugin-emotion": "^9.2.6", + "create-emotion-styled": "^9.2.6" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "@storybook/addon-storysource": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-4.0.0-alpha.9.tgz", + "integrity": "sha512-bsN5jEAiRED//Q1/jdgDm19azEc6aeGe8yPlQSeBnVLYzf+YdLNGhq8k0FsoLHi6u5nkLIvfdv88g4AUKY8bxg==", + "dev": true, + "requires": { + "@storybook/addons": "4.0.0-alpha.9", + "@storybook/components": "4.0.0-alpha.9", + "babel-runtime": "^6.26.0", + "estraverse": "^4.2.0", + "loader-utils": "^1.1.0", + "prettier": "^1.13.4", + "prop-types": "^15.6.1", + "react-syntax-highlighter": "^7.0.4" + }, + "dependencies": { + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + } + } + }, + "@storybook/addons": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-4.0.0-alpha.9.tgz", + "integrity": "sha512-sHnuyz21iGg2Z4FNsdBc3ATjNNgD37mo3sga85mdYLI9d094IkOjidqT7fIYbThpd5FV0FvFi6j5uCRUWrKiJQ==", + "dev": true, + "requires": { + "@storybook/channels": "4.0.0-alpha.9", + "global": "^4.3.2", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/angular": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/angular/-/angular-4.0.0-alpha.9.tgz", + "integrity": "sha512-Jb+GzQ8a7jhvutxTq4hgbVlux22KvJMho8eOHmWFJfG0HQ5r9DflCfEF5/vWIhtaeribfTFWNifmBAjj3HE/dg==", + "dev": true, + "requires": { + "@storybook/core": "4.0.0-alpha.9", + "@storybook/node-logger": "4.0.0-alpha.9", + "angular2-template-loader": "^0.6.2", + "babel-runtime": "^6.23.0", + "core-js": "^2.5.7", + "global": "^4.3.2", + "react": "^16.4.0", + "react-dom": "^16.4.0", + "sass-loader": "^7.0.2", + "ts-loader": "^4.3.1", + "zone.js": "^0.8.26" + }, + "dependencies": { + "@storybook/core": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-4.0.0-alpha.9.tgz", + "integrity": "sha512-rMmCJi5fAVHUQfBqIHrxnzprsQQZMTWkTWMM6bA7uqsp8tgqN7PUfgKRUDl7mbfTFOzjIgle7AAPO/EmqKh+vw==", + "dev": true, + "requires": { + "@storybook/addons": "4.0.0-alpha.9", + "@storybook/channel-postmessage": "4.0.0-alpha.9", + "@storybook/client-logger": "4.0.0-alpha.9", + "@storybook/core-events": "4.0.0-alpha.9", + "@storybook/node-logger": "4.0.0-alpha.9", + "@storybook/react-dev-utils": "^5.0.0", + "@storybook/ui": "4.0.0-alpha.9", + "airbnb-js-shims": "^1.6.0", + "autoprefixer": "^8.6.0", + "babel-loader": "^7.1.4", + "babel-plugin-macros": "^2.2.2", + "babel-plugin-transform-regenerator": "^6.26.0", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-env": "^1.7.0", + "babel-preset-minify": "0.4.1", + "babel-preset-stage-0": "^6.24.1", + "babel-runtime": "^6.26.0", + "case-sensitive-paths-webpack-plugin": "^2.1.2", + "chalk": "^2.4.1", + "commander": "^2.15.1", + "core-js": "^2.5.7", + "css-loader": "^0.28.11", + "dotenv": "^5.0.1", + "dotenv-webpack": "^1.5.6", + "emotion": "^9.1.3", + "express": "^4.16.3", + "file-loader": "^1.1.11", + "find-cache-dir": "^1.0.0", + "global": "^4.3.2", + "html-webpack-plugin": "^3.2.0", + "json5": "^1.0.1", + "postcss-flexbugs-fixes": "^3.3.1", + "postcss-loader": "^2.1.5", + "prop-types": "^15.6.1", + "qs": "^6.5.2", + "raw-loader": "^0.5.1", + "react-emotion": "^9.1.3", + "redux": "^4.0.0", + "serve-favicon": "^2.5.0", + "shelljs": "^0.8.2", + "style-loader": "^0.21.0", + "svg-url-loader": "^2.3.2", + "url-loader": "^1.0.1", + "webpack": "^4.10.2", + "webpack-dev-middleware": "^3.1.3", + "webpack-hot-middleware": "^2.22.2" + } + }, + "@storybook/react-komposer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@storybook/react-komposer/-/react-komposer-2.0.4.tgz", + "integrity": "sha1-wsDUp12bSpwMa0bxSrBQ9FitS7A=", + "dev": true, + "requires": { + "@storybook/react-stubber": "^1.0.0", + "babel-runtime": "^6.11.6", + "hoist-non-react-statics": "^1.2.0", + "lodash.pick": "^4.4.0", + "shallowequal": "^0.2.2" + } + }, + "@storybook/ui": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-4.0.0-alpha.9.tgz", + "integrity": "sha512-sVfYb0F6YDOcLzbIYj5lAf946exEm49yxFfvUlG9mr4IYESw6tmGLrURyzqFcmPJWgqF+4byS0d5nXp0cSUf0A==", + "dev": true, + "requires": { + "@storybook/components": "4.0.0-alpha.9", + "@storybook/core-events": "4.0.0-alpha.9", + "@storybook/mantra-core": "^1.7.2", + "@storybook/podda": "^1.2.3", + "@storybook/react-komposer": "^2.0.4", + "babel-runtime": "^6.26.0", + "deep-equal": "^1.0.1", + "emotion": "^9.1.3", + "events": "^2.1.0", + "fuse.js": "^3.2.0", + "global": "^4.3.2", + "keycode": "^2.2.0", + "lodash.debounce": "^4.0.8", + "lodash.pick": "^4.4.0", + "lodash.sortby": "^4.7.0", + "lodash.throttle": "^4.1.1", + "prop-types": "^15.6.1", + "qs": "^6.5.2", + "react-emotion": "^9.1.3", + "react-fuzzy": "^0.5.2", + "react-icons": "^2.2.7", + "react-lifecycles-compat": "^3.0.4", + "react-modal": "^3.4.5", + "react-treebeard": "^2.1.0" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "dev": true + }, + "express": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.3", + "qs": "6.5.1", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + } + } + }, + "hoist-non-react-statics": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", + "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "react-emotion": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/react-emotion/-/react-emotion-9.2.6.tgz", + "integrity": "sha512-3GwLQ0Vib/X0G7KWY7N1F/7NmfoBLkkg3g9Jd8t6By5QUH0PyCSUVdDmfFBbgVKsAcpkjA0vcsMbiWeZusaRrA==", + "dev": true, + "requires": { + "babel-plugin-emotion": "^9.2.6", + "create-emotion-styled": "^9.2.6" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + } + } + }, + "@storybook/channel-postmessage": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-4.0.0-alpha.9.tgz", + "integrity": "sha512-dgGuFbqLygmzbzB/gjhZw278MIJ2gbW0edsSoTswz5gKwvKnnzw1kdZQXCmHG/9YuixNNG2Y/zipHP0gRgX/4w==", + "dev": true, + "requires": { + "@storybook/channels": "4.0.0-alpha.9", + "global": "^4.3.2", + "json-stringify-safe": "^5.0.1" + } + }, + "@storybook/channels": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-4.0.0-alpha.9.tgz", + "integrity": "sha512-hJHRRz11HmR6WU1HjpL7YAFGdBR59Hz0aoszQQVvF7pBP9EIXIenfsBAL6cadxewhwS1Z6Yq8rMVyhFIqamVwQ==", + "dev": true + }, + "@storybook/client-logger": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-4.0.0-alpha.9.tgz", + "integrity": "sha512-94XLAoHc/WZvCcaDnInkyy3Uoplj7KxWRDCnBUiGccfE1SBDbm86on0LdwzRiOeqPdsTvLr77iEalxWiJnRsvw==", + "dev": true + }, + "@storybook/components": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-4.0.0-alpha.9.tgz", + "integrity": "sha512-OC/BoCYmfGoLTeFUoo4FNufoOPp/568A7tUrzRMISF7l5O16EdlmRSbdoou/MAKYsMxgDtlUK/+rdo0XlnCtTw==", + "dev": true, + "requires": { + "emotion": "^9.1.3", + "emotion-theming": "^9.1.2", + "global": "^4.3.2", + "lodash.pick": "^4.4.0", + "lodash.throttle": "^4.1.1", + "prop-types": "^15.6.1", + "react-emotion": "^9.1.3", + "react-split-pane": "^0.1.77" + }, + "dependencies": { + "emotion-theming": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-9.2.6.tgz", + "integrity": "sha512-sbZStubPmaDuMhs3+saH4XegnoMgbVtEY2giD1MP+maDinCnJdzf/1Apcip1wo5HMAN7vrjvpmcY13pH34xR6g==", + "dev": true, + "requires": { + "hoist-non-react-statics": "^2.3.1" + } + }, + "react-emotion": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/react-emotion/-/react-emotion-9.2.6.tgz", + "integrity": "sha512-3GwLQ0Vib/X0G7KWY7N1F/7NmfoBLkkg3g9Jd8t6By5QUH0PyCSUVdDmfFBbgVKsAcpkjA0vcsMbiWeZusaRrA==", + "dev": true, + "requires": { + "babel-plugin-emotion": "^9.2.6", + "create-emotion-styled": "^9.2.6" + } + } + } + }, + "@storybook/core-events": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-4.0.0-alpha.9.tgz", + "integrity": "sha512-vDuWOdGQLlsBvStVf+6tinkH9iIbQ1wjoCHA1qLXUKCIjA+L51pQuroqZi/R+uEHqqHW7zR1ODv+6Lme2Y6E8w==", + "dev": true + }, + "@storybook/mantra-core": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@storybook/mantra-core/-/mantra-core-1.7.2.tgz", + "integrity": "sha512-GD4OYJ8GsayVhIg306sfgcKDk9j8YfuSKIAWvdB/g7IDlw0pDgueONALVEEE2XWJtCwcsUyDtCYzXFgCBWLEjA==", + "dev": true, + "requires": { + "@storybook/react-komposer": "^2.0.1", + "@storybook/react-simple-di": "^1.2.1", + "babel-runtime": "6.x.x" + }, + "dependencies": { + "@storybook/react-komposer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@storybook/react-komposer/-/react-komposer-2.0.4.tgz", + "integrity": "sha1-wsDUp12bSpwMa0bxSrBQ9FitS7A=", + "dev": true, + "requires": { + "@storybook/react-stubber": "^1.0.0", + "babel-runtime": "^6.11.6", + "hoist-non-react-statics": "^1.2.0", + "lodash.pick": "^4.4.0", + "shallowequal": "^0.2.2" + } + }, + "hoist-non-react-statics": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", + "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=", + "dev": true + } + } + }, + "@storybook/node-logger": { + "version": "4.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-4.0.0-alpha.9.tgz", + "integrity": "sha512-G3N5eETjT5e2HAQJp/7JMBAHWzQdGFH3Hj3fkBbwAkpPv1Pz8uutXKQABxidOwRyT8anCIBUc/SOzB+DT0SXPg==", + "dev": true, + "requires": { + "npmlog": "^4.1.2" + } + }, + "@storybook/podda": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@storybook/podda/-/podda-1.2.3.tgz", + "integrity": "sha512-g7dsdsn50AhlGZ8iIDKdF8bi7Am++iFOq+QN+hNKz3FvgLuf8Dz+mpC/BFl90eE9bEYxXqXKeMf87399Ec5Qhw==", + "dev": true, + "requires": { + "babel-runtime": "^6.11.6", + "immutable": "^3.8.1" + } + }, + "@storybook/react-dev-utils": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@storybook/react-dev-utils/-/react-dev-utils-5.0.0.tgz", + "integrity": "sha1-0zprr0gKmA4TXCGt6FljKsog/ng=", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.42", + "address": "1.0.3", + "browserslist": "3.2.0", + "chalk": "2.3.2", + "cross-spawn": "6.0.5", + "detect-port-alt": "1.1.5", + "escape-string-regexp": "1.0.5", + "filesize": "3.6.0", + "find-pkg": "1.0.0", + "global-modules": "1.0.0", + "globby": "8.0.1", + "gzip-size": "4.1.0", + "inquirer": "5.1.0", + "is-root": "1.0.0", + "opn": "5.3.0", + "pkg-up": "2.0.0", + "react-error-overlay": "^4.0.0", + "recursive-readdir": "2.2.2", + "shell-quote": "1.6.1", + "sockjs-client": "1.1.4", + "strip-ansi": "4.0.0", + "text-table": "0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "browserslist": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.0.tgz", + "integrity": "sha512-fXFmXYMUbD9E/I81MEknzD5TJmA1dQFy+2gYHHnO08CEWGTzWNlDyawBo9pfUIncaG840+RIuScjCT4IpQxTWA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000815", + "electron-to-chromium": "^1.3.39" + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "globby": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "inquirer": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.1.0.tgz", + "integrity": "sha512-kn7N70US1MSZHZHSGJLiZ7iCwwncc7b0gc68YtlX29OjI3Mp0tSVV+snVXpZ1G+ONS3Ac9zd1m6hve2ibLDYfA==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.1.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^5.5.2", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "rxjs": { + "version": "5.5.11", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", + "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, + "sockjs-client": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", + "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", + "dev": true, + "requires": { + "debug": "^2.6.6", + "eventsource": "0.1.6", + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + } + } + }, + "@storybook/react-simple-di": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@storybook/react-simple-di/-/react-simple-di-1.3.0.tgz", + "integrity": "sha512-RH6gPQaYMs/VzQX2dgbZU8DQMKFXVOv1ruohHjjNPys4q+YdqMFMDe5jOP1AUE3j9g01x0eW7bVjRawSpl++Ew==", + "dev": true, + "requires": { + "babel-runtime": "6.x.x", + "create-react-class": "^15.6.2", + "hoist-non-react-statics": "1.x.x", + "prop-types": "^15.6.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", + "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=", + "dev": true + } + } + }, + "@storybook/react-stubber": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@storybook/react-stubber/-/react-stubber-1.0.1.tgz", + "integrity": "sha512-k+CHH+vA8bQfCmzBTtJsPkITFgD+C/w19KuByZ9WeEvNUFtnDaCqfP+Vp3/OR+3IAfAXYYOWolqPLxNPcEqEjw==", + "dev": true, + "requires": { + "babel-runtime": "^6.5.0" + } + }, + "@types/jest": { + "version": "22.2.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-22.2.3.tgz", + "integrity": "sha512-e74sM9W/4qqWB6D4TWV9FQk0WoHtX1X4FJpbjxucMSVJHtFjbQOH3H6yp+xno4br0AKG0wz/kPtaN599GUOvAg==", + "dev": true + }, + "@types/node": { + "version": "9.6.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.25.tgz", + "integrity": "sha512-uZpzO9MKSHy7zBiTtziA3JgZP3upcAvLTASkKgheLj6/rNZmRX4UyvsFYaY2kbYcmmh8bNZ2T0eocBRCfZdGvQ==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.4.3.tgz", + "integrity": "sha512-S6npYhPcTHDYe9nlsKa9CyWByFi8Vj8HovcAgtmMAQZUOczOZbQ8CnwMYKYC5HEZzxEE+oY0jfQk4cVlI3J59Q==", + "dev": true, + "requires": { + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "debug": "^3.1.0", + "webassemblyjs": "1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "webassemblyjs": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webassemblyjs/-/webassemblyjs-1.4.3.tgz", + "integrity": "sha512-4lOV1Lv6olz0PJkDGQEp82HempAn147e6BXijWDzz9g7/2nSebVP9GVg62Fz5ZAs55mxq13GA0XLyvY8XkyDjg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/validation": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "long": "^3.2.0" + } + } + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.4.3.tgz", + "integrity": "sha512-3zTkSFswwZOPNHnzkP9ONq4bjJSeKVMcuahGXubrlLmZP8fmTIJ58dW7h/zOVWiFSuG2em3/HH3BlCN7wyu9Rw==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.12.tgz", + "integrity": "sha512-Goxag86JvLq8ucHLXFNSLYzf9wrR+CJr37DsESTAzSnGoqDTgw5eqiXSQVd/D9Biih7+DIn8UIQCxMs8emRRwg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.4.3.tgz", + "integrity": "sha512-e8+KZHh+RV8MUvoSRtuT1sFXskFnWG9vbDy47Oa166xX+l0dD5sERJ21g5/tcH8Yo95e9IN3u7Jc3NbhnUcSkw==", + "dev": true, + "requires": { + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.4.3.tgz", + "integrity": "sha512-9FgHEtNsZQYaKrGCtsjswBil48Qp1agrzRcPzCbQloCoaTbOXLJ9IRmqT+uEZbenpULLRNFugz3I4uw18hJM8w==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.4.3" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.4.3.tgz", + "integrity": "sha512-JINY76U+702IRf7ePukOt037RwmtH59JHvcdWbTTyHi18ixmQ+uOuNhcdCcQHTquDAH35/QgFlp3Y9KqtyJsCQ==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.12.tgz", + "integrity": "sha512-SCXR8hPI4JOG3cdy9HAO8W5/VQ68YXG/Hfs7qDf1cd64zWuMNshyEour5NYnLMVkrrtc0XzfVS/MdeV94woFHA==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "mamacro": "^0.0.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.4.3.tgz", + "integrity": "sha512-I7bS+HaO0K07Io89qhJv+z1QipTpuramGwUSDkwEaficbSvCcL92CUZEtgykfNtk5wb0CoLQwWlmXTwGbNZUeQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.4.3.tgz", + "integrity": "sha512-p0yeeO/h2r30PyjnJX9xXSR6EDcvJd/jC6xa/Pxg4lpfcNi7JUswOpqDToZQ55HMMVhXDih/yqkaywHWGLxqyQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-buffer": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/wasm-gen": "1.4.3", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/ieee754": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.5.12.tgz", + "integrity": "sha512-F+PEv9QBzPi1ThLBouUJbuxhEr+Sy/oua1ftXFKHiaYYS5Z9tKPvK/hgCxlSdq+RY4MSG15jU2JYb/K5pkoybg==", + "dev": true, + "requires": { + "ieee754": "^1.1.11" + } + }, + "@webassemblyjs/leb128": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.4.3.tgz", + "integrity": "sha512-4u0LJLSPzuRDWHwdqsrThYn+WqMFVqbI2ltNrHvZZkzFPO8XOZ0HFQ5eVc4jY/TNHgXcnwrHjONhPGYuuf//KQ==", + "dev": true, + "requires": { + "leb": "^0.3.0" + } + }, + "@webassemblyjs/utf8": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.5.12.tgz", + "integrity": "sha512-FX8NYQMiTRU0TfK/tJVntsi9IEKsedSsna8qtsndWVE0x3zLndugiApxdNMIOoElBV9o4j0BUqR+iwU58QfPxQ==", + "dev": true + }, + "@webassemblyjs/validation": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/validation/-/validation-1.4.3.tgz", + "integrity": "sha512-R+rRMKfhd9mq0rj2mhU9A9NKI2l/Rw65vIYzz4lui7eTKPcCu1l7iZNi4b9Gen8D42Sqh/KGiaQNk/x5Tn/iBQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3" + } + }, + "@webassemblyjs/wasm-edit": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.4.3.tgz", + "integrity": "sha512-qzuwUn771PV6/LilqkXcS0ozJYAeY/OKbXIWU3a8gexuqb6De2p4ya/baBeH5JQ2WJdfhWhSvSbu86Vienttpw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-buffer": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/helper-wasm-section": "1.4.3", + "@webassemblyjs/wasm-gen": "1.4.3", + "@webassemblyjs/wasm-opt": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "@webassemblyjs/wast-printer": "1.4.3", + "debug": "^3.1.0" + }, + "dependencies": { + "@webassemblyjs/wasm-opt": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.4.3.tgz", + "integrity": "sha512-7Gp+nschuKiDuAL1xmp4Xz0rgEbxioFXw4nCFYEmy+ytynhBnTeGc9W9cB1XRu1w8pqRU2lbj2VBBA4cL5Z2Kw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-buffer": "1.4.3", + "@webassemblyjs/wasm-gen": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "debug": "^3.1.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.4.3.tgz", + "integrity": "sha512-eR394T8dHZfpLJ7U/Z5pFSvxl1L63JdREebpv9gYc55zLhzzdJPAuxjBYT4XqevUdW67qU2s0nNA3kBuNJHbaQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/leb128": "1.4.3" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.4.3.tgz", + "integrity": "sha512-KXBjtlwA3BVukR/yWHC9GF+SCzBcgj0a7lm92kTOaa4cbjaTaa47bCjXw6cX4SGQpkncB9PU2hHGYVyyI7wFRg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/leb128": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "webassemblyjs": "1.4.3" + }, + "dependencies": { + "webassemblyjs": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webassemblyjs/-/webassemblyjs-1.4.3.tgz", + "integrity": "sha512-4lOV1Lv6olz0PJkDGQEp82HempAn147e6BXijWDzz9g7/2nSebVP9GVg62Fz5ZAs55mxq13GA0XLyvY8XkyDjg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/validation": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "long": "^3.2.0" + } + } + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.4.3.tgz", + "integrity": "sha512-QhCsQzqV0CpsEkRYyTzQDilCNUZ+5j92f+g35bHHNqS22FppNTywNFfHPq8ZWZfYCgbectc+PoghD+xfzVFh1Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/floating-point-hex-parser": "1.4.3", + "@webassemblyjs/helper-code-frame": "1.4.3", + "@webassemblyjs/helper-fsm": "1.4.3", + "long": "^3.2.0", + "webassemblyjs": "1.4.3" + }, + "dependencies": { + "webassemblyjs": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webassemblyjs/-/webassemblyjs-1.4.3.tgz", + "integrity": "sha512-4lOV1Lv6olz0PJkDGQEp82HempAn147e6BXijWDzz9g7/2nSebVP9GVg62Fz5ZAs55mxq13GA0XLyvY8XkyDjg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/validation": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "long": "^3.2.0" + } + } + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.4.3.tgz", + "integrity": "sha512-EgXk4anf8jKmuZJsqD8qy5bz2frEQhBvZruv+bqwNoLWUItjNSFygk8ywL3JTEz9KtxTlAmqTXNrdD1d9gNDtg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "long": "^3.2.0" + } + }, + "@webpack-contrib/schema-utils": { + "version": "1.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz", + "integrity": "sha512-LonryJP+FxQQHsjGBi6W786TQB1Oym+agTpY0c+Kj8alnIw+DLUJb6SI8Y1GHGhLCH1yPRrucjObUmxNICQ1pg==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chalk": "^2.3.2", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "webpack-log": "^1.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", + "dev": true + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dev": true, + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + }, + "dependencies": { + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + } + } + }, + "acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "dev": true, + "requires": { + "acorn": "^5.0.0" + } + }, + "address": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", + "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==", + "dev": true + }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "airbnb-js-shims": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/airbnb-js-shims/-/airbnb-js-shims-1.7.0.tgz", + "integrity": "sha512-ZPkZPEsqQjfpWWSzKmpz6Uz1Fls+FXvLHsuZr5GboBWpEIo1dR0WSNTvTgcIjSsRjy1LVGk7gzB9WZF+tljEWQ==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "array.prototype.flatmap": "^1.2.1", + "array.prototype.flatten": "^1.2.1", + "es5-shim": "^4.5.10", + "es6-shim": "^0.35.3", + "function.prototype.name": "^1.1.0", + "object.entries": "^1.0.4", + "object.fromentries": "^1.0.0", + "object.getownpropertydescriptors": "^2.0.3", + "object.values": "^1.0.4", + "promise.prototype.finally": "^3.1.0", + "string.prototype.matchall": "^3.0.0", + "string.prototype.padend": "^3.0.0", + "string.prototype.padstart": "^3.0.0", + "symbol.prototype.description": "^1.0.0" + } + }, + "ajv": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.4.0.tgz", + "integrity": "sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y=", + "dev": true, + "requires": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0", + "uri-js": "^3.0.2" + }, + "dependencies": { + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "uri-js": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz", + "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + } + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "angular-base64-upload": { + "version": "0.1.23", + "resolved": "https://registry.npmjs.org/angular-base64-upload/-/angular-base64-upload-0.1.23.tgz", + "integrity": "sha512-vRSY+7/pag2hEdTSB90LTvT5rU5XPxBNMA1WGz60pNSpChRUzf+h5FR9lObRcGg1WUOvlYinnvoPTD6Nktcx1g==" + }, + "angular2-template-loader": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/angular2-template-loader/-/angular2-template-loader-0.6.2.tgz", + "integrity": "sha1-wNROkP/w+sleiyPwQ6zaf9HFHXw=", + "dev": true, + "requires": { + "loader-utils": "^0.2.15" + }, + "dependencies": { + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + } + } + }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", + "dev": true + }, + "array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", + "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", + "dev": true + }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" + } + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", + "dev": true + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "array.prototype.flat": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz", + "integrity": "sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.10.0", + "function-bind": "^1.1.1" + } + }, + "array.prototype.flatmap": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.1.tgz", + "integrity": "sha512-i18e2APdsiezkcqDyZor78Pbfjfds3S94dG6dgIV2ZASJaUf1N0dz2tGdrmwrmlZuNUgxH+wz6Z0zYVH2c5xzQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.10.0", + "function-bind": "^1.1.1" + } + }, + "array.prototype.flatten": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatten/-/array.prototype.flatten-1.2.1.tgz", + "integrity": "sha512-3GhsA78XgK//wQKbhUe6L93kknekGlTRY0kvYcpuSi0aa9rVrMr/okeIIv/XSpN8fZ5iUM+bWifhf2/7CYKtIg==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.10.0", + "function-bind": "^1.1.1" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-array-reduce": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/async-array-reduce/-/async-array-reduce-0.2.1.tgz", + "integrity": "sha1-yL4BCitc0A3qlsgRFgNGk9/dgtE=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", + "dev": true + }, + "autoprefixer": { + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz", + "integrity": "sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==", + "dev": true, + "requires": { + "browserslist": "^3.2.8", + "caniuse-lite": "^1.0.30000864", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^6.0.23", + "postcss-value-parser": "^3.2.3" + } + }, + "awesome-typescript-loader": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/awesome-typescript-loader/-/awesome-typescript-loader-3.5.0.tgz", + "integrity": "sha512-qzgm9SEvodVkSi9QY7Me1/rujg+YBNMjayNSAyzNghwTEez++gXoPCwMvpbHRG7wrOkDCiF6dquvv9ESmUBAuw==", + "dev": true, + "requires": { + "chalk": "^2.3.1", + "enhanced-resolve": "3.3.0", + "loader-utils": "^1.1.0", + "lodash": "^4.17.4", + "micromatch": "^3.0.3", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.3" + }, + "dependencies": { + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "enhanced-resolve": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz", + "integrity": "sha512-2qbxE7ek3YxPJ1ML6V+satHkzHpJQKWkRHmRx6mfAoW59yP8YH8BFplbegSP+u2hBd6B6KCOpvJQ3dZAP+hkpg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.5" + } + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", + "dev": true + } + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-evaluate-path": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.4.3.tgz", + "integrity": "sha1-ComvcCwGshcCf6NxkI3UmJ0+Yz8=", + "dev": true + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dev": true, + "requires": { + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-flip-expressions": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz", + "integrity": "sha1-NpZzahKKwYvCUlS19AoizrPB0/0=", + "dev": true + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-is-nodes-equiv": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz", + "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=", + "dev": true + }, + "babel-helper-is-void-0": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz", + "integrity": "sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4=", + "dev": true + }, + "babel-helper-mark-eval-scopes": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz", + "integrity": "sha1-0kSjvvmESHJgP/tG4izorN9VFWI=", + "dev": true + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-remove-or-void": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz", + "integrity": "sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA=", + "dev": true + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-to-multiple-sequence-expressions": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.4.3.tgz", + "integrity": "sha1-W1GLESf0ezA4dzOGoVYaK0jmMrY=", + "dev": true + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-loader": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", + "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", + "dev": true, + "requires": { + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-emotion": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-9.2.6.tgz", + "integrity": "sha512-aCRXUPm2pwaUqUtpQ2Gzbn5EeOD2RyUDTQDJl5Yqwg1RLQPs3OvnB6Xt6GUrMomMISxuwFrxuWfBMajHv74UjQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "7.0.0-beta.51", + "@emotion/babel-utils": "^0.6.4", + "@emotion/hash": "^0.6.2", + "@emotion/memoize": "^0.6.1", + "@emotion/stylis": "^0.6.10", + "babel-core": "^6.26.3", + "babel-plugin-macros": "^2.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "convert-source-map": "^1.5.0", + "find-root": "^1.1.0", + "mkdirp": "^0.5.1", + "source-map": "^0.5.7", + "touch": "^1.0.0" + } + }, + "babel-plugin-macros": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.3.0.tgz", + "integrity": "sha512-Y9h4dQMlzUUKATfNEN+sgiwND/+PGiAkjSW+qwyATIvYMk1y39XmaLHXKI2VojplqtOWQry0y6CumvDw+qETvQ==", + "dev": true, + "requires": { + "cosmiconfig": "^4.0.0" + } + }, + "babel-plugin-minify-builtins": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.4.3.tgz", + "integrity": "sha1-nqPVn0rEp7uVjXEtKVVqH4b3+B4=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.4.3" + } + }, + "babel-plugin-minify-constant-folding": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.4.3.tgz", + "integrity": "sha1-MA+d6N2ghEoXaxk2U5YOJK0z4ZE=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.4.3" + } + }, + "babel-plugin-minify-flip-comparisons": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz", + "integrity": "sha1-AMqHDLjxO0XAOLPB68DyJyk8llo=", + "dev": true, + "requires": { + "babel-helper-is-void-0": "^0.4.3" + } + }, + "babel-plugin-minify-guarded-expressions": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.3.tgz", + "integrity": "sha1-zHCbRFP9IbHzAod0RMifiEJ845c=", + "dev": true, + "requires": { + "babel-helper-flip-expressions": "^0.4.3" + } + }, + "babel-plugin-minify-infinity": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz", + "integrity": "sha1-37h2obCKBldjhO8/kuZTumB7Oco=", + "dev": true + }, + "babel-plugin-minify-mangle-names": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.4.3.tgz", + "integrity": "sha1-FvG/90t6fJPfwkHngx3V+0sCPvc=", + "dev": true, + "requires": { + "babel-helper-mark-eval-scopes": "^0.4.3" + } + }, + "babel-plugin-minify-numeric-literals": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz", + "integrity": "sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw=", + "dev": true + }, + "babel-plugin-minify-replace": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.4.3.tgz", + "integrity": "sha1-nSifS6FdTmAR6HmfpfG6d+yBIZ0=", + "dev": true + }, + "babel-plugin-minify-simplify": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.4.3.tgz", + "integrity": "sha1-N3VthcYURktLCSfytOQXGR1Vc4o=", + "dev": true, + "requires": { + "babel-helper-flip-expressions": "^0.4.3", + "babel-helper-is-nodes-equiv": "^0.0.1", + "babel-helper-to-multiple-sequence-expressions": "^0.4.3" + } + }, + "babel-plugin-minify-type-constructors": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz", + "integrity": "sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA=", + "dev": true, + "requires": { + "babel-helper-is-void-0": "^0.4.3" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "dev": true + }, + "babel-plugin-syntax-class-constructor-call": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", + "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", + "dev": true + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "dev": true + }, + "babel-plugin-syntax-do-expressions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz", + "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=", + "dev": true + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-export-extensions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", + "dev": true + }, + "babel-plugin-syntax-function-bind": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz", + "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=", + "dev": true + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-class-constructor-call": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", + "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", + "dev": true, + "requires": { + "babel-plugin-syntax-class-constructor-call": "^6.18.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + }, + "dependencies": { + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", + "dev": true + } + } + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dev": true, + "requires": { + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + }, + "dependencies": { + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + } + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-function-bind": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz", + "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=", + "dev": true, + "requires": { + "babel-plugin-syntax-function-bind": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-inline-consecutive-adds": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz", + "integrity": "sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE=", + "dev": true + }, + "babel-plugin-transform-member-expression-literals": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz", + "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=", + "dev": true + }, + "babel-plugin-transform-merge-sibling-variables": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz", + "integrity": "sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4=", + "dev": true + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-plugin-transform-property-literals": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz", + "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + }, + "dependencies": { + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + } + } + }, + "babel-plugin-transform-regexp-constructors": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz", + "integrity": "sha1-WLd3W2OvzzMyj66aX4j71PsLSWU=", + "dev": true + }, + "babel-plugin-transform-remove-console": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz", + "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=", + "dev": true + }, + "babel-plugin-transform-remove-debugger": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz", + "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=", + "dev": true + }, + "babel-plugin-transform-remove-undefined": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.4.3.tgz", + "integrity": "sha1-1AsNp/kcCMBsxyt2dHTAHEiU3gI=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.4.3" + } + }, + "babel-plugin-transform-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", + "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-simplify-comparison-operators": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", + "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=", + "dev": true + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-undefined-to-void": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz", + "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=", + "dev": true + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + }, + "dependencies": { + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + } + } + }, + "babel-preset-minify": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.4.1.tgz", + "integrity": "sha1-QOPtrXQ7sQfdY8fPshxgTczYNnQ=", + "dev": true, + "requires": { + "babel-plugin-minify-builtins": "^0.4.1", + "babel-plugin-minify-constant-folding": "^0.4.1", + "babel-plugin-minify-dead-code-elimination": "^0.4.1", + "babel-plugin-minify-flip-comparisons": "^0.4.1", + "babel-plugin-minify-guarded-expressions": "^0.4.1", + "babel-plugin-minify-infinity": "^0.4.1", + "babel-plugin-minify-mangle-names": "^0.4.1", + "babel-plugin-minify-numeric-literals": "^0.4.1", + "babel-plugin-minify-replace": "^0.4.1", + "babel-plugin-minify-simplify": "^0.4.1", + "babel-plugin-minify-type-constructors": "^0.4.1", + "babel-plugin-transform-inline-consecutive-adds": "^0.4.1", + "babel-plugin-transform-member-expression-literals": "^6.9.2", + "babel-plugin-transform-merge-sibling-variables": "^6.9.2", + "babel-plugin-transform-minify-booleans": "^6.9.2", + "babel-plugin-transform-property-literals": "^6.9.2", + "babel-plugin-transform-regexp-constructors": "^0.4.1", + "babel-plugin-transform-remove-console": "^6.9.2", + "babel-plugin-transform-remove-debugger": "^6.9.2", + "babel-plugin-transform-remove-undefined": "^0.4.1", + "babel-plugin-transform-simplify-comparison-operators": "^6.9.2", + "babel-plugin-transform-undefined-to-void": "^6.9.2", + "lodash.isplainobject": "^4.0.6" + }, + "dependencies": { + "babel-plugin-minify-dead-code-elimination": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.4.3.tgz", + "integrity": "sha1-c2KCZYZPkAjQAnUG9Yq+s8HQLZg=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.4.3", + "babel-helper-mark-eval-scopes": "^0.4.3", + "babel-helper-remove-or-void": "^0.4.3", + "lodash.some": "^4.6.0" + } + }, + "babel-plugin-transform-minify-booleans": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz", + "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=", + "dev": true + } + } + }, + "babel-preset-stage-0": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz", + "integrity": "sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo=", + "dev": true, + "requires": { + "babel-plugin-transform-do-expressions": "^6.22.0", + "babel-plugin-transform-function-bind": "^6.22.0", + "babel-preset-stage-1": "^6.24.1" + }, + "dependencies": { + "babel-plugin-transform-do-expressions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz", + "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=", + "dev": true, + "requires": { + "babel-plugin-syntax-do-expressions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + } + } + }, + "babel-preset-stage-1": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", + "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", + "dev": true, + "requires": { + "babel-plugin-transform-class-constructor-call": "^6.24.1", + "babel-plugin-transform-export-extensions": "^6.22.0", + "babel-preset-stage-2": "^6.24.1" + }, + "dependencies": { + "babel-plugin-transform-export-extensions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", + "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", + "dev": true, + "requires": { + "babel-plugin-syntax-export-extensions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + } + } + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dev": true, + "requires": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dev": true, + "requires": { + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" + }, + "dependencies": { + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + } + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + }, + "dependencies": { + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.1", + "http-errors": "~1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "~2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "~1.6.15" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "bowser": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", + "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + }, + "dependencies": { + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + } + } + } + } + }, + "cache-loader": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-1.2.2.tgz", + "integrity": "sha512-rsGh4SIYyB9glU+d0OcHwiXHXBoUgDhHZaQ1KAbiXqfz1CDPxtTboh1gPbJ0q2qdO8a9lfcjgC5CJ2Ms32y5bw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "mkdirp": "^0.5.1", + "neo-async": "^2.5.0", + "schema-utils": "^0.4.2" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true, + "requires": { + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + } + } + }, + "caniuse-db": { + "version": "1.0.30000872", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000872.tgz", + "integrity": "sha1-P25Ttj03N2i/meiWEz1m74nEmZk=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000865", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", + "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", + "dev": true + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz", + "integrity": "sha512-oEZgAFfEvKtjSRCu6VgYkuGxwrWXMnQzyBmlLPP7r6PWQVtHxP5Z5N6XsuJvtoVax78am/r7lr46bwo3IVEBOg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz", + "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==", + "dev": true, + "requires": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "^2.0.0" + } + } + } + }, + "character-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.2.tgz", + "integrity": "sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ==", + "dev": true + }, + "character-entities-legacy": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz", + "integrity": "sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA==", + "dev": true + }, + "character-reference-invalid": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz", + "integrity": "sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ==", + "dev": true + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "dev": true + }, + "chrome-trace-event": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-0.1.3.tgz", + "integrity": "sha512-sjndyZHrrWiu4RY7AkHgjn80GfAM2ZSzUkZLV/Js59Ldmh6JDThf0SUmOHU53rFu2rVxxfCzJ30Ukcfch3Gb/A==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-dependency-plugin": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz", + "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==", + "dev": true + }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, + "requires": { + "chalk": "^1.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", + "dev": true + }, + "clean-css": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz", + "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", + "dev": true, + "requires": { + "source-map": "0.5.x" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "clipboard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.1.tgz", + "integrity": "sha512-7yhQBmtN+uYZmfRjjVjKa0dZdWuabzpSKGtyQZN+9C8xlC788SSJjOHWh7tzurfwTqTD5UDYAhIv5fRJg3sHjQ==", + "dev": true, + "optional": true, + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "dev": true, + "requires": { + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true, + "requires": { + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + } + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true, + "requires": { + "color-name": "^1.0.0" + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "comma-separated-tokens": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.5.tgz", + "integrity": "sha512-Cg90/fcK93n0ecgYTAz1jaA3zvnQ0ExlmKY1rdbyHqAx6BHxwoJc+J7HDu0iuQ7ixEs1qaa+WyQ6oeuBpYP1iA==", + "dev": true, + "requires": { + "trim": "0.0.1" + } + }, + "commander": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "compression": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.14", + "debug": "2.6.9", + "on-headers": "~1.0.1", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "compressible": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", + "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", + "dev": true, + "requires": { + "mime-db": ">= 1.34.0 < 2" + } + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz", + "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" + } + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", + "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0", + "require-from-string": "^2.0.1" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + }, + "dependencies": { + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + } + } + }, + "create-emotion": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/create-emotion/-/create-emotion-9.2.6.tgz", + "integrity": "sha512-4g46va26lw6DPfKF7HeWY3OI/qoaNSwpvO+li8dMydZfC6f6+ZffwlYHeIyAhGR8Z8C8c0H9J1pJbQRtb9LScw==", + "dev": true, + "requires": { + "@emotion/hash": "^0.6.2", + "@emotion/memoize": "^0.6.1", + "@emotion/stylis": "^0.6.10", + "@emotion/unitless": "^0.6.2", + "csstype": "^2.5.2", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10" + } + }, + "create-emotion-styled": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/create-emotion-styled/-/create-emotion-styled-9.2.6.tgz", + "integrity": "sha512-Kk6qWuEiHY9iptLsxzoJztHM237yedoY2Zhmc79HwkRkC+wZ7W8IFt5gP6AAGx6eN44hc3Zwc+WA5N7ku3QJfg==", + "dev": true, + "requires": { + "@emotion/is-prop-valid": "^0.6.1" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-react-class": { + "version": "15.6.3", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", + "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", + "dev": true, + "requires": { + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.x.x" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-in-js-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", + "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", + "dev": true, + "requires": { + "hyphenate-style-name": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "css-loader": { + "version": "0.28.11", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", + "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "cssnano": "^3.10.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "object-assign": "^4.1.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + }, + "dependencies": { + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + } + } + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", + "dev": true + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true, + "requires": { + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" + } + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "postcss-filter-plugins": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", + "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" + } + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" + } + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, + "requires": { + "clap": "^1.0.9", + "source-map": "^0.5.3" + } + }, + "csstype": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.5.6.tgz", + "integrity": "sha512-tKPyhy0FmfYD2KQYXD5GzkvAYLYj96cMLXr648CKGd3wBe0QqoPipImjGiLze9c8leJK8J3n7ap90tpk3E6HGQ==", + "dev": true + }, + "cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "^0.10.9" + }, + "dependencies": { + "es5-ext": { + "version": "0.10.45", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", + "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" + } + } + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "requires": { + "foreach": "^2.0.5", + "object-keys": "^1.0.8" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "requires": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "delete": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/delete/-/delete-1.1.0.tgz", + "integrity": "sha512-bdhJatRNYsJnOhSRx9Eej3ABBtxQQw/uz2RprpYL5R3jCC2XMYVBcQWwvQLl+iNDk4LCLEKhdIP3uZSqRWi/tw==", + "dev": true, + "requires": { + "async-each": "^1.0.1", + "extend-shallow": "^2.0.1", + "matched": "^1.0.2", + "rimraf": "^2.6.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-node": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", + "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", + "dev": true + }, + "detect-port-alt": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.5.tgz", + "integrity": "sha512-PlE9BuBz44BSDV8sJvfUxkGquPcDW4oHSYa5wY4yKj943C2I4xNU5Gd/EFroqdWNur7W6yU2zOLqvmKJCB//aA==", + "dev": true, + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-converter": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", + "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", + "dev": true, + "requires": { + "utila": "~0.3" + }, + "dependencies": { + "utila": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", + "dev": true + } + } + }, + "dom-helpers": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.3.1.tgz", + "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg==", + "dev": true + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "~1.1.1", + "entities": "~1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", + "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dotenv": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", + "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", + "dev": true + }, + "dotenv-webpack": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-1.5.7.tgz", + "integrity": "sha1-xEOVqyHR/SjXmpCUKnsUsd69FF8=", + "dev": true, + "requires": { + "dotenv": "^5.0.1" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "duplexify": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "ejs": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.55", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.55.tgz", + "integrity": "sha1-8VDhCyC3fZ1Br8yjEu/gw7Gn/c4=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "emotion": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/emotion/-/emotion-9.2.6.tgz", + "integrity": "sha512-95/EiWkADklxyy1y1qlJeX5Cepa7WfpJBJSBgbLkDCBzOnP4maluvz52xcV5UaObBTfVnEBq77Go6/bgF7+xaA==", + "dev": true, + "requires": { + "babel-plugin-emotion": "^9.2.6", + "create-emotion": "^9.2.6" + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + } + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" + } + }, + "es5-shim": { + "version": "4.5.10", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.10.tgz", + "integrity": "sha512-vmryBdqKRO8Ei9LJ4yyEk/EOmAOGIagcHDYPpTAi6pot4IMHS1AC2q5cTKPmydpijg2iX8DVmCuqgrNxIWj8Yg==", + "dev": true + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + }, + "dependencies": { + "es5-ext": { + "version": "0.10.45", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", + "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" + } + } + } + }, + "es6-promise": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "es6-shim": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.3.tgz", + "integrity": "sha1-m/tzY/7//4emzbbNk+QF7DxLbyY=", + "dev": true + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + }, + "dependencies": { + "es5-ext": { + "version": "0.10.45", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", + "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" + } + } + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", + "dev": true, + "requires": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.2.0" + }, + "dependencies": { + "source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "dependencies": { + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + } + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + }, + "dependencies": { + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + } + } + }, + "estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "dev": true, + "requires": { + "original": ">=0.0.5" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + } + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + } + } + }, + "extract-zip": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz", + "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.0.1", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.1", + "micromatch": "^3.1.10" + }, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + } + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "dev": true + }, + "fault": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.2.tgz", + "integrity": "sha512-o2eo/X2syzzERAtN5LcGbiVQ0WwZSlN3qLtadwAz3X8Bu+XWD16dja/KMsjZLiQr+BLGPDnHGkc4yUJf1Xpkpw==", + "dev": true, + "requires": { + "format": "^0.2.2" + } + }, + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "dev": true, + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "requires": { + "asap": "~2.0.3" + } + } + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", + "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.4.5" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "filesize": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.0.tgz", + "integrity": "sha512-g5OWtoZWcPI56js1DFhIEqyG9tnu/7sG3foHwgS9KGYFMfsYguI3E+PRVCmtmE96VajQIEMRU2OhN+ME589Gdw==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-file-up": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-1.0.2.tgz", + "integrity": "sha1-TVNmS8Eoz3k5AUl/SxNVjZeXVco=", + "dev": true, + "requires": { + "resolve-dir": "^1.0.0" + } + }, + "find-pkg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-1.0.0.tgz", + "integrity": "sha1-ltskLgAcfFUCXTIhMwLqOrpncXc=", + "dev": true, + "requires": { + "find-file-up": "^1.0.2" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, + "flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "follow-redirects": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.2.tgz", + "integrity": "sha512-kssLorP/9acIdpQ2udQVTiCS5LQmdEz9mvdIfDcl1gYX2tPKFADHSyFdvJS040XdFsPzemWtgI3q8mFVCxtX8A==", + "dev": true, + "requires": { + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + }, + "format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", + "dev": true + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.0.tgz", + "integrity": "sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "is-callable": "^1.1.3" + } + }, + "fuse.js": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.2.1.tgz", + "integrity": "sha1-YyDLlM5W7JdVyJred1vNuwNY1CU=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "dev": true, + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + }, + "dependencies": { + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "dev": true + } + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-modules-path": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.0.tgz", + "integrity": "sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==", + "dev": true + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "dev": true, + "optional": true, + "requires": { + "delegate": "^3.1.2" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "gzip-size": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-4.1.0.tgz", + "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^3.0.0" + } + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "^5.1.0", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", + "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=", + "dev": true, + "requires": { + "is-glob": "^3.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", + "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hast-util-parse-selector": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.0.tgz", + "integrity": "sha512-trw0pqZN7+sH9k7hPWCJNZUbWW2KroSIM/XpIy3G5ZMtx9LSabCyoSp4skJZ4q/eZ5UOBPtvWh4W9c+RE3HRoQ==", + "dev": true + }, + "hastscript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-4.0.0.tgz", + "integrity": "sha512-zrN3fborQZT6+DJZOCKpeafzYIjs3y4ymzHGExBmUFSqwjqrRbH8DYDDbPsNLkVW0YDvoKdQ1c6wMLcZuoZDmg==", + "dev": true, + "requires": { + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.2.0", + "property-information": "^4.0.0", + "space-separated-tokens": "^1.0.0" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "highlight.js": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", + "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==", + "dev": true + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "dev": true, + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "html-minifier": { + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.19.tgz", + "integrity": "sha512-Qr2JC9nsjK8oCrEmuB430ZIA8YWbF3D5LSjywD75FTuXmeqacwHgIM8wp3vHYzzPbklSjp53RdmDuzR4ub2HzA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.1.x", + "commander": "2.16.x", + "he": "1.1.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + } + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "http-parser-js": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", + "dev": true + }, + "http-proxy": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "dev": true, + "requires": { + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", + "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "dev": true, + "requires": { + "http-proxy": "^1.16.2", + "is-glob": "^4.0.0", + "lodash": "^4.17.5", + "micromatch": "^3.1.9" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "dependencies": { + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + } + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "hyphenate-style-name": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz", + "integrity": "sha1-MRYKNpMK2vH8BMYHT360FGXU7Es=", + "dev": true + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + } + }, + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "dev": true, + "requires": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inline-style-prefixer": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz", + "integrity": "sha1-hVG45bTVcyROZqNLBPfTIHaitTQ=", + "dev": true, + "requires": { + "bowser": "^1.7.3", + "css-in-js-utils": "^2.0.0" + } + }, + "insert-css": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz", + "integrity": "sha1-610Ql7dUL0x56jBg067gfQU4gPQ=", + "dev": true + }, + "internal-ip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", + "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", + "dev": true, + "requires": { + "meow": "^3.3.0" + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-alphabetical": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.2.tgz", + "integrity": "sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg==", + "dev": true + }, + "is-alphanumerical": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz", + "integrity": "sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg==", + "dev": true, + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-decimal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.2.tgz", + "integrity": "sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-dom": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz", + "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hexadecimal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz", + "integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-root": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz", + "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dev": true, + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + }, + "dependencies": { + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", + "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", + "dev": true, + "requires": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "dev": true, + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "optional": true + } + } + } + } + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "dev": true, + "requires": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" + } + }, + "jasmine-diff": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/jasmine-diff/-/jasmine-diff-0.1.3.tgz", + "integrity": "sha1-k8zC3MQQKMXd1GBlWAdIOfLe6qg=", + "dev": true, + "requires": { + "diff": "^3.2.0" + } + }, + "jest-diff": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.2.0.tgz", + "integrity": "sha1-nyz0tR4Sx5FVAgCrwWtHEwrxBio=", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.2.0" + } + }, + "jest-get-type": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", + "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==", + "dev": true + }, + "jest-image-snapshot": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/jest-image-snapshot/-/jest-image-snapshot-2.4.3.tgz", + "integrity": "sha512-3mGa/6xLhjOMTl7pd5Wuf72Juq5hOyhfCiXhlHMm1UYIVVmH/RIqBCB/5KDmkPVjdnZO4aOvaFgd+HdgC3VGMw==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "get-stdin": "^5.0.1", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "pixelmatch": "^4.0.2", + "pngjs": "^3.3.3", + "rimraf": "^2.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "get-stdin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", + "dev": true + }, + "pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "dev": true, + "requires": { + "pngjs": "^3.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "jest-matcher-utils": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.2.0.tgz", + "integrity": "sha1-TUmB8jIT6Tnjzt8j3DTHR7WuGRM=", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.2.0" + } + }, + "jest-message-util": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-23.4.0.tgz", + "integrity": "sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0-beta.35", + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", + "stack-utils": "^1.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + } + } + }, + "jest-resolve": { + "version": "23.4.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.4.1.tgz", + "integrity": "sha512-VNk4YRNR5gsHhNS0Lp46/DzTT11e+ecbUC61ikE593cKbtdrhrMO+zXkOJaE8YDD5sHxH9W6OfssNn4FkZBzZQ==", + "dev": true, + "requires": { + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "realpath-native": "^1.0.0" + } + }, + "jest-snapshot": { + "version": "23.4.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.4.2.tgz", + "integrity": "sha512-rCBxIURDlVEW1gJgJSpo8l2F2gFwp9U7Yb3CmcABUpmQ8NASpb6LJkEvtcQifAYSi22OL44TSuanq1G6x1GJwg==", + "dev": true, + "requires": { + "babel-types": "^6.0.0", + "chalk": "^2.0.1", + "jest-diff": "^23.2.0", + "jest-matcher-utils": "^23.2.0", + "jest-message-util": "^23.4.0", + "jest-resolve": "^23.4.1", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^23.2.0", + "semver": "^5.5.0" + } + }, + "jest-specific-snapshot": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jest-specific-snapshot/-/jest-specific-snapshot-0.5.0.tgz", + "integrity": "sha512-jtcxwY9DnK9gT7HjS1bGL8SF4NV8DL2/CzUmuL4aZxwmAk4gEW8qOnXkU6kD3B1T4Y+Zj9uvN8zWqzcftT0ERA==", + "dev": true, + "requires": { + "jest-snapshot": ">=20.0.3" + } + }, + "js-base64": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.8.tgz", + "integrity": "sha512-hm2nYpDrwoO/OzBhdcqs/XGT6XjSuSSCVEpia+Kl2J6x4CYt5hISlVL/AYU1khoDXv0AQVgxtdJySb9gjAn56Q==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + } + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "karma-source-map-support": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz", + "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + } + }, + "keycode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", + "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=", + "dev": true + }, + "killable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", + "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "leb": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/leb/-/leb-0.3.0.tgz", + "integrity": "sha1-Mr7p+tFoMo1q6oUi2DP0GA7tHaM=", + "dev": true + }, + "less-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", + "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^3.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "license-webpack-plugin": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-1.3.1.tgz", + "integrity": "sha512-NqAFodJdpBUuf1iD+Ij8hQvF0rCFKlO2KaieoQzAPhFgzLCtJnC7Z7x5gQbGNjoe++wOKAtAmwVEIBLqq2Yp1A==", + "dev": true, + "requires": { + "ejs": "^2.5.7" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", + "dev": true + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true + }, + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "dev": true + }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "loglevel": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", + "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", + "dev": true + }, + "loglevelnext": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz", + "integrity": "sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==", + "dev": true, + "requires": { + "es6-symbol": "^3.1.1", + "object.assign": "^4.1.0" + } + }, + "long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lowlight": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.9.2.tgz", + "integrity": "sha512-Ek18ElVCf/wF/jEm1b92gTnigh94CtBNWiZ2ad+vTgW7cTmQxUY3I98BjHK68gZAJEWmybGBZgx9qv3QxLQB/Q==", + "dev": true, + "requires": { + "fault": "^1.0.2", + "highlight.js": "~9.12.0" + } + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-error": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", + "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==", + "dev": true + }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.4.0.tgz", + "integrity": "sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw==", + "dev": true + }, + "matched": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/matched/-/matched-1.0.2.tgz", + "integrity": "sha512-7ivM1jFZVTOOS77QsR+TtYHH0ecdLclMkqbf5qiJdX2RorqfhsL65QHySPZgDE0ZjHoh+mQUNHTanNXIlzXd0Q==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "async-array-reduce": "^0.2.1", + "glob": "^7.1.2", + "has-glob": "^1.0.0", + "is-valid-glob": "^1.0.0", + "resolve-dir": "^1.0.0" + } + }, + "material-colors": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", + "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==", + "dev": true + }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "dev": true + }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge2": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", + "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", + "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", + "dev": true, + "requires": { + "mime-db": "~1.35.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dev": true, + "requires": { + "dom-walk": "^0.1.0" + }, + "dependencies": { + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", + "dev": true + } + } + }, + "mini-css-extract-plugin": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.1.tgz", + "integrity": "sha512-XWuB3G61Rtasq/gLe7cp5cuozehE6hN+E4sxCamRR/WDiHTg+f7ZIAS024r8UJQffY+e2gGELXQZgQoFDfNDCg==", + "dev": true, + "requires": { + "@webpack-contrib/schema-utils": "^1.0.0-beta.0", + "loader-utils": "^1.1.0", + "webpack-sources": "^1.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dev": true, + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "moment": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=", + "dev": true + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "neo-async": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", + "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-forge": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", + "dev": true + }, + "node-sass": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.2.tgz", + "integrity": "sha512-LdxoJLZutx0aQXHtWIYwJKMj+9pTjneTcLWJgzf2XbGu0q5pRNqW5QvFCEdm3mc5rJOdru/mzln5d0EZLacf6g==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.3.1", + "npmlog": "^4.0.0", + "request": "2.87.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true + }, + "node-gyp": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz", + "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": ">=2.9.0 <2.82.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + } + } + } + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "^1.4.1" + } + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-package-arg": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-registry-client": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz", + "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", + "dev": true, + "requires": { + "concat-stream": "^1.5.2", + "graceful-fs": "^4.1.6", + "normalize-package-data": "~1.0.1 || ^2.0.0", + "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", + "npmlog": "2 || ^3.1.0 || ^4.0.0", + "once": "^1.3.3", + "request": "^2.74.0", + "retry": "^0.10.0", + "safe-buffer": "^5.1.1", + "semver": "2 >=2.2.1 || 3.x || 4 || 5", + "slide": "^1.1.3", + "ssri": "^5.2.4" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", + "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" + } + }, + "object.fromentries": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-1.0.0.tgz", + "integrity": "sha512-F7XUm84lg0uNXNzrRAC5q8KJe0yYaxgLU9hTSqWYM6Rfnh0YjP24EG3xq7ncj2Wu1AdfueNHKCOlamIonG4UHQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.11.0", + "function-bind": "^1.1.1", + "has": "^1.0.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + } + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", + "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, + "onap-ui-common": { + "version": "1.0.55", + "resolved": "https://registry.npmjs.org/onap-ui-common/-/onap-ui-common-1.0.55.tgz", + "integrity": "sha1-8SJt7Nt2azDu1kUZ8CW8nBX1rho=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "original": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.1.tgz", + "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==", + "dev": true, + "requires": { + "url-parse": "~1.4.0" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "dev": true + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parse-asn1": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" + } + }, + "parse-entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.2.tgz", + "integrity": "sha512-5N9lmQ7tmxfXf+hO3X6KRG6w7uYO/HL9fHalSySTdyn63C3WNvTM/1R8tn1u1larNcEbo3Slcy2bsVDQqvEpUg==", + "dev": true, + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pbkdf2": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", + "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pngjs": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.3.3.tgz", + "integrity": "sha512-1n3Z4p3IOxArEs1VRXnZ/RXdfEniAUS9jb68g58FIXMNkPJeZd+Qh4Uq7/e0LVxAQGos1eIUrqrt4FpjdnEd+Q==", + "dev": true + }, + "portfinder": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", + "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", + "dev": true, + "requires": { + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true, + "requires": { + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true, + "requires": { + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "dev": true, + "requires": { + "color": "^0.11.0", + "css-color-names": "0.0.4", + "has": "^1.0.1" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true, + "requires": { + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true, + "requires": { + "postcss": "^5.0.14" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true, + "requires": { + "postcss": "^5.0.14" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true, + "requires": { + "postcss": "^5.0.16" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true, + "requires": { + "postcss": "^5.0.14", + "uniqs": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-flexbugs-fixes": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.3.1.tgz", + "integrity": "sha512-9y9kDDf2F9EjKX6x9ueNa5GARvsUbXw4ezH8vXItXHwKzljbu8awP7t5dCaabKYm18Vs1lo5bKQcnc0HkISt+w==", + "dev": true, + "requires": { + "postcss": "^6.0.1" + } + }, + "postcss-import": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-11.1.0.tgz", + "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", + "dev": true, + "requires": { + "postcss": "^6.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "^2.3.0" + } + } + } + }, + "postcss-load-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", + "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", + "dev": true, + "requires": { + "cosmiconfig": "^4.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", + "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^6.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^0.4.0" + } + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true, + "requires": { + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true, + "requires": { + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", + "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true, + "requires": { + "postcss": "^5.0.5" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true, + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true, + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true, + "requires": { + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true, + "requires": { + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" + } + } + } + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-url": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-7.3.2.tgz", + "integrity": "sha512-QMV5mA+pCYZQcUEPQkmor9vcPQ2MT+Ipuu8qdi1gVxbNiIiErEGft+eny1ak19qALoBkccS5AHaCaCDzh7b9MA==", + "dev": true, + "requires": { + "mime": "^1.4.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.0", + "postcss": "^6.0.1", + "xxhashjs": "^0.2.1" + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "prettier": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.0.tgz", + "integrity": "sha512-KtQ2EGaUwf2EyDfp1fxyEb0PqGKakVm0WyXwDt6u+cAoxbO2Z2CwKvOe3+b4+F2IlO9lYHi1kqFuRM70ddBnow==", + "dev": true + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "pretty-format": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", + "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + } + } + }, + "prismjs": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.15.0.tgz", + "integrity": "sha512-Lf2JrFYx8FanHrjoV5oL8YHCclLQgbJcVZR+gikGGMqz6ub5QVWDTM6YIwm3BuPxM/LOV+rKns3LssXNLIf+DA==", + "dev": true, + "requires": { + "clipboard": "^2.0.0" + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise.prototype.finally": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.0.tgz", + "integrity": "sha512-7p/K2f6dI+dM8yjRQEGrTQs5hTQixUAdOGpMEA3+pVxpX5oHKRSKAXyLw9Q9HUWDTdwtoo39dSHGQtN90HcEwQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.9.0", + "function-bind": "^1.1.1" + } + }, + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "dev": true, + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "property-information": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-4.1.0.tgz", + "integrity": "sha512-bv9oWK9kX47b1rpZoLdv21FGCUAWTOClpb/wsbz2unJtyrZg05h7JBhn4mDb20KCG1jF/cbIdUa2IoYU/Wj4Hw==", + "dev": true, + "requires": { + "xtend": "^4.0.1" + } + }, + "proxy-addr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" + } + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", + "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "puppeteer": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.6.2.tgz", + "integrity": "sha512-KBgMr/ZdwIwDQWTqcAlGhnQ2Vd6p+o5B89H60XUfdmCpia2KViSZsdRjvrf2wYOxXSrpYx6OuCBzV7ppLuNjNg==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "extract-zip": "^1.6.6", + "https-proxy-agent": "^2.2.1", + "mime": "^2.0.3", + "progress": "^2.0.0", + "proxy-from-env": "^1.0.0", + "rimraf": "^2.6.1", + "ws": "^5.1.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "mime": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "dev": true + } + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz", + "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==", + "dev": true + }, + "randomatic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", + "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": ">= 1.3.1 < 2" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } + } + }, + "raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", + "dev": true + }, + "react": { + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/react/-/react-16.4.2.tgz", + "integrity": "sha512-dMv7YrbxO4y2aqnvA7f/ik9ibeLSHQJTI6TrYAenPSaQ6OXfb+Oti+oJiy8WBxgRzlKatYqtCjphTgDSCEiWFg==", + "dev": true, + "requires": { + "fbjs": "^0.8.16", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" + } + }, + "react-color": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.14.1.tgz", + "integrity": "sha512-ssv2ArSZdhTbIs29hyfw8JW+s3G4BCx/ILkwCajWZzrcx/2ZQfRpsaLVt38LAPbxe50LLszlmGtRerA14JzzRw==", + "dev": true, + "requires": { + "lodash": "^4.0.1", + "material-colors": "^1.2.1", + "prop-types": "^15.5.10", + "reactcss": "^1.2.0", + "tinycolor2": "^1.4.1" + }, + "dependencies": { + "reactcss": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", + "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", + "dev": true, + "requires": { + "lodash": "^4.0.1" + } + } + } + }, + "react-datetime": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-2.15.0.tgz", + "integrity": "sha512-RP5OqXVfrhdoFALJzMU8tKxRFaIZzJZqZEpf5oK7pvwG80a/bET/TdJ7jT7W9lyAf1nKNo6zyYkvHW3ZJ/ypvg==", + "dev": true, + "requires": { + "create-react-class": "^15.5.2", + "object-assign": "^3.0.0", + "prop-types": "^15.5.7", + "react-onclickoutside": "^6.5.0" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + } + } + }, + "react-dom": { + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.4.2.tgz", + "integrity": "sha512-Usl73nQqzvmJN+89r97zmeUpQDKDlh58eX6Hbs/ERdDHzeBzWy+ENk7fsGQ+5KxArV1iOFPT46/VneklK9zoWw==", + "dev": true, + "requires": { + "fbjs": "^0.8.16", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" + } + }, + "react-error-overlay": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.0.tgz", + "integrity": "sha512-FlsPxavEyMuR6TjVbSSywovXSEyOg6ZDj5+Z8nbsRl9EkOzAhEIcS+GLoQDC5fz/t9suhUXWmUrOBrgeUvrMxw==", + "dev": true + }, + "react-fuzzy": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/react-fuzzy/-/react-fuzzy-0.5.2.tgz", + "integrity": "sha512-qIZZxaCheb/HhcBi5fABbiCFg85+K5r1TCps1D4uaL0LAMMD/1zm/x1/kNR130Tx7nnY9V7mbFyY0DquPYeLAw==", + "dev": true, + "requires": { + "babel-runtime": "^6.23.0", + "classnames": "^2.2.5", + "fuse.js": "^3.0.1", + "prop-types": "^15.5.9" + } + }, + "react-icon-base": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-icon-base/-/react-icon-base-2.1.0.tgz", + "integrity": "sha1-oZbjP98eeqof2jrvu2i9rZ6Cp50=", + "dev": true + }, + "react-icons": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-2.2.7.tgz", + "integrity": "sha512-0n4lcGqzJFcIQLoQytLdJCE0DKSA9dkwEZRYoGrIDJZFvIT6Hbajx5mv9geqhqFiNjUgtxg8kPyDfjlhymbGFg==", + "dev": true, + "requires": { + "react-icon-base": "2.1.0" + } + }, + "react-inspector": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-2.3.0.tgz", + "integrity": "sha512-aIcbWb0fKFhEMB+RadoOYawlr1JoMMfrQ1oRgPUG/f/e4zERVJ6nYcIaQmrQmdHCZ63BOqe2cEkoeY0kyLBzNg==", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "is-dom": "^1.0.9" + } + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "dev": true + }, + "react-modal": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.5.1.tgz", + "integrity": "sha512-GxL7ycOgKC+p641cR+V1bw5dC1faL2N86/AJlzbMVmvt1totoylgkJmn9zvLuHeuarGbB7CLfHMGpeRowaj2jQ==", + "dev": true, + "requires": { + "exenv": "^1.2.0", + "prop-types": "^15.5.10", + "react-lifecycles-compat": "^3.0.0", + "warning": "^3.0.0" + } + }, + "react-onclickoutside": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.7.1.tgz", + "integrity": "sha512-p84kBqGaMoa7VYT0vZ/aOYRfJB+gw34yjpda1Z5KeLflg70HipZOT+MXQenEhdkPAABuE2Astq4zEPdMqUQxcg==", + "dev": true + }, + "react-split-pane": { + "version": "0.1.82", + "resolved": "https://registry.npmjs.org/react-split-pane/-/react-split-pane-0.1.82.tgz", + "integrity": "sha1-Qvu5/Ugj8F4DfeDas81s+b8M9Oo=", + "dev": true, + "requires": { + "inline-style-prefixer": "^3.0.6", + "prop-types": "^15.5.10", + "react-lifecycles-compat": "^3.0.4", + "react-style-proptype": "^3.0.0" + } + }, + "react-style-proptype": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.1.tgz", + "integrity": "sha512-Z02QsgmdZ4wYNxJsHhNGGZsIF8+MO93fYmdPaC+ljdqX3rq8tl/fSMXOGBbofGJNzq5W/2LFcONllmV6vzyYHA==", + "dev": true, + "requires": { + "prop-types": "^15.5.4" + } + }, + "react-syntax-highlighter": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-7.0.4.tgz", + "integrity": "sha512-WtaHAlI5++csZ5uTnJc5+ozqqIzUkO/rnkv1GJ3CeRtjhTzbo12r9F0BICzhibr7gBWECd1Xgj1FKJEWZxcP4w==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "highlight.js": "~9.12.0", + "lowlight": "~1.9.1", + "prismjs": "^1.8.4", + "refractor": "^2.4.1" + } + }, + "react-textarea-autosize": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-6.1.0.tgz", + "integrity": "sha512-F6bI1dgib6fSvG8so1HuArPUv+iVEfPliuLWusLF+gAKz0FbB4jLrWUrTAeq1afnPT2c9toEZYUdz/y1uKMy4A==", + "dev": true, + "requires": { + "prop-types": "^15.6.0" + } + }, + "react-transition-group": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.4.0.tgz", + "integrity": "sha512-Xv5d55NkJUxUzLCImGSanK8Cl/30sgpOEMGc5m86t8+kZwrPxPCPcFqyx83kkr+5Lz5gs6djuvE5By+gce+VjA==", + "dev": true, + "requires": { + "dom-helpers": "^3.3.1", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + }, + "react-treebeard": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-treebeard/-/react-treebeard-2.1.0.tgz", + "integrity": "sha512-unoy8IJL1NR5jgTtK+CqOCZKZylh/Tlid0oYajW9bLZCbFelxzmCsF8Y2hyS6pvHqM4W501oOm5O/jvg3VZCrg==", + "dev": true, + "requires": { + "babel-runtime": "^6.23.0", + "deep-equal": "^1.0.1", + "prop-types": "^15.5.8", + "radium": "^0.19.0", + "shallowequal": "^0.2.2", + "velocity-react": "^1.3.1" + }, + "dependencies": { + "inline-style-prefixer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz", + "integrity": "sha1-wVPH6I/YT+9cYC6VqBaLJ3BnH+c=", + "dev": true, + "requires": { + "bowser": "^1.0.0", + "hyphenate-style-name": "^1.0.1" + } + }, + "radium": { + "version": "0.19.6", + "resolved": "https://registry.npmjs.org/radium/-/radium-0.19.6.tgz", + "integrity": "sha512-IABYntqCwYelUUIwA52maSCgJbqtJjHKIoD21wgpw3dGhIUbJ5chDShDGdaFiEzdF03hN9jfQqlmn0bF4YhfrQ==", + "dev": true, + "requires": { + "array-find": "^1.0.0", + "exenv": "^1.2.1", + "inline-style-prefixer": "^2.0.5", + "prop-types": "^15.5.8" + } + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "dependencies": { + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" + } + }, + "realpath-native": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.1.tgz", + "integrity": "sha512-W14EcXuqUvKP8dkWkD7B95iMy77lpMnlFXbbk409bQtNCbeu0kvRE5reo+yIZ3JXxg6frbGsz2DLQ39lrCB40g==", + "dev": true, + "requires": { + "util.promisify": "^1.0.0" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "requires": { + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, + "requires": { + "balanced-match": "^0.4.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "redux": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.0.tgz", + "integrity": "sha512-NnnHF0h0WVE/hXyrB6OlX67LYRuaf/rJcbWvnHHEPCF/Xa/AZpwhs/20WyqzQae5x4SD2F9nPObgBh2rxAgLiA==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "symbol-observable": "^1.2.0" + } + }, + "reflect-metadata": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", + "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==", + "dev": true + }, + "refractor": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/refractor/-/refractor-2.5.0.tgz", + "integrity": "sha512-npwYb3W3tHaCwYT/kcj9808BZTpeayR876Ug7RAD9+RJ7yo1cVuyx5EqhJDiZwyC+cxw7g7n5u4rmovS29vPxA==", + "dev": true, + "requires": { + "hastscript": "^4.0.0", + "parse-entities": "^1.1.2", + "prismjs": "~1.15.0" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", + "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "renderkid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", + "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", + "dev": true, + "requires": { + "css-select": "^1.1.0", + "dom-converter": "~0.1", + "htmlparser2": "~3.3.0", + "strip-ansi": "^3.0.0", + "utila": "~0.3" + }, + "dependencies": { + "domutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", + "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "htmlparser2": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", + "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", + "dev": true, + "requires": { + "domelementtype": "1", + "domhandler": "2.1", + "domutils": "1.1", + "readable-stream": "1.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "utila": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", + "dev": true + } + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "^1.4.1" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", + "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "rxjs-compat": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.2.2.tgz", + "integrity": "sha512-h113JzEXnqBd6JQ8TYg33oDuM3baZ9WKS49rtbMX0gBW2Kz0z4wDZ0/pCA0T9sRJM1HkZT6mt45gpYOJ2MqWYQ==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + } + } + } + }, + "sass-loader": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", + "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", + "dev": true, + "requires": { + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0", + "semver": "^5.5.0" + } + }, + "sax": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true + }, + "schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "dev": true, + "optional": true + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz", + "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==", + "dev": true, + "requires": { + "node-forge": "0.7.5" + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "semver-intersect": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.3.1.tgz", + "integrity": "sha1-j6hKnhAovSOeRTDRo+GB5pjYhLo=", + "dev": true, + "requires": { + "semver": "^5.0.0" + } + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "dependencies": { + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "dev": true + }, + "serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "dev": true, + "requires": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "dev": true, + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "shallowequal": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz", + "integrity": "sha1-HjL9W8q2rWiKSBLLDMBO/HXHAU4=", + "dev": true, + "requires": { + "lodash.keys": "^3.1.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "dev": true, + "requires": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, + "shelljs": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz", + "integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "silent-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/silent-error/-/silent-error-1.1.0.tgz", + "integrity": "sha1-IglwbxyFCp8dENDYQJGLRvJuG8k=", + "dev": true, + "requires": { + "debug": "^2.2.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + }, + "dependencies": { + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sockjs-client": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", + "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", + "dev": true, + "requires": { + "debug": "^2.6.6", + "eventsource": "0.1.6", + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", + "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "space-separated-tokens": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.2.tgz", + "integrity": "sha512-G3jprCEw+xFEs0ORweLmblJ3XLymGGr6hxZYTYZjIlvDti9vOBUjRQa1Rzjt012aRrocKstHwdNi+F7HguPsEA==", + "dev": true, + "requires": { + "trim": "0.0.1" + } + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "spdy": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "dev": true, + "requires": { + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" + }, + "dependencies": { + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "spdy-transport": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", + "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", + "dev": true, + "requires": { + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + } + } + } + }, + "stats-webpack-plugin": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/stats-webpack-plugin/-/stats-webpack-plugin-0.6.2.tgz", + "integrity": "sha1-LFlJtTHgf4eojm6k3PrFOqjHWis=", + "dev": true, + "requires": { + "lodash": "^4.17.4" + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + }, + "stdout-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", + "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string.prototype.matchall": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-3.0.0.tgz", + "integrity": "sha512-/g0YW/cEfXASRHAaLR7VZbTUlxgP14fmCsfSRFG2gvlG2S1q9rBpjYnEy/EIIzY+bjzs2nTfAHJYXmQ+zTnXSQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "regexp.prototype.flags": "^1.2.0" + } + }, + "string.prototype.padend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", + "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" + } + }, + "string.prototype.padstart": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz", + "integrity": "sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "style-loader": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.21.0.tgz", + "integrity": "sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^0.4.5" + } + }, + "stylis": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.3.tgz", + "integrity": "sha512-TxU0aAscJghF9I3V9q601xcK3Uw1JbXvpsBGj/HULqexKOKlOEzzlIpLFRbKkCK990ccuxfXUqmPbIIo7Fq/cQ==", + "dev": true + }, + "stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "dev": true + }, + "stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + }, + "dependencies": { + "when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + } + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svg-url-loader": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/svg-url-loader/-/svg-url-loader-2.3.2.tgz", + "integrity": "sha1-3YaybBn+O5FPBOoQ7zlZTq3gRGQ=", + "dev": true, + "requires": { + "file-loader": "1.1.11", + "loader-utils": "1.1.0" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, + "symbol.prototype.description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/symbol.prototype.description/-/symbol.prototype.description-1.0.0.tgz", + "integrity": "sha512-I9mrbZ5M96s7QeJDv95toF1svkUjeBybe8ydhY7foPaBmr0SPJMFupArmMkDrOKTTj0sJVr+nvQNxWLziQ7nDQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "tapable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", + "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tiny-emitter": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz", + "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==", + "dev": true, + "optional": true + }, + "tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, + "touch": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-1.0.0.tgz", + "integrity": "sha1-RJy+LbrlqMgDjjDXH6D/RklHxN4=", + "dev": true, + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + } + } + }, + "tree-kill": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", + "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==", + "dev": true + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", + "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "dev": true, + "requires": { + "glob": "^6.0.4" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "ts-loader": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-4.4.2.tgz", + "integrity": "sha512-Z3Y1a7A0KZZ1s/mAZkt74l1NAF7Y5xUhD1V9VB8/1eUlUOk8Qa/oo46tO2Uu5kQ3wXypOlbv77lLQySjXEDcdw==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^1.0.2", + "micromatch": "^3.1.4", + "semver": "^5.0.1" + }, + "dependencies": { + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "ts-node": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.0.tgz", + "integrity": "sha512-klJsfswHP0FuOLsvBZ/zzCfUvakOSSxds78mVeK7I+qP76YWtxf16hEZsp3U+b0kIo82R5UatGFeblYMqabb2Q==", + "dev": true, + "requires": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + }, + "tslint": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", + "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.27.2" + }, + "dependencies": { + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", + "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.18", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", + "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==", + "dev": true + }, + "uglify-js": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.6.tgz", + "integrity": "sha512-O1D7L6WcOzS1qW2ehopEm4cWm5yA6bQBozlks8jO8ODxYCy4zv+bR/la4Lwp01tpkYGNonnpXvUpYtrvSu8Yzg==", + "dev": true, + "requires": { + "commander": "~2.16.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz", + "integrity": "sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + } + } + } + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", + "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", + "dev": true + }, + "url-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.0.1.tgz", + "integrity": "sha512-rAonpHy7231fmweBKUFe0bYnlGDty77E+fm53NZdij7j/YOpyGzc7ttqG1nAXl3aRs0k41o0PC3TvGXQiw2Zvw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^0.4.3" + }, + "dependencies": { + "mime": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "dev": true + } + } + }, + "url-parse": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", + "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", + "dev": true, + "requires": { + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.0.tgz", + "integrity": "sha512-qNdTUMaCjPs4eEnM3W9H94R3sU70YCuT+/ST7nUf+id1bVOrdjrpUaeZLqPBPRph3hsgn4a4BvwpxhHZx+oSDg==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "velocity-animate": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/velocity-animate/-/velocity-animate-1.5.2.tgz", + "integrity": "sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg==", + "dev": true + }, + "velocity-react": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/velocity-react/-/velocity-react-1.4.1.tgz", + "integrity": "sha512-ZyXBm+9C/6kNUNyc+aeNKEhtTu/Mn+OfpsNBGuTxU8S2DUcis/KQL0rTN6jWL+7ygdOrun18qhheNZTA7YERmg==", + "dev": true, + "requires": { + "lodash": "^4.17.5", + "prop-types": "^15.5.8", + "react-transition-group": "^2.0.0", + "velocity-animate": "^1.4.0" + } + }, + "vendors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", + "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webpack": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.12.0.tgz", + "integrity": "sha512-EJj2FfhgtjrTbJbJaNulcVpDxi9vsQVvTahHN7xJvIv6W+k4r/E6Hxy4eyOrj+IAFWqYgaUtnpxmSGYP8MSZJw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.12", + "@webassemblyjs/helper-module-context": "1.5.12", + "@webassemblyjs/wasm-edit": "1.5.12", + "@webassemblyjs/wasm-opt": "1.5.12", + "@webassemblyjs/wasm-parser": "1.5.12", + "acorn": "^5.6.2", + "acorn-dynamic-import": "^3.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.0.0", + "eslint-scope": "^3.7.1", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^0.4.4", + "tapable": "^1.0.0", + "uglifyjs-webpack-plugin": "^1.2.4", + "watchpack": "^1.5.0", + "webpack-sources": "^1.0.1" + }, + "dependencies": { + "@webassemblyjs/ast": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.5.12.tgz", + "integrity": "sha512-bmTBEKuuhSU6dC95QIW250xO769cdYGx9rWn3uBLTw2pUpud0Z5kVuMw9m9fqbNzGeuOU2HpyuZa+yUt2CTEDA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.5.12", + "@webassemblyjs/helper-wasm-bytecode": "1.5.12", + "@webassemblyjs/wast-parser": "1.5.12", + "debug": "^3.1.0", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.12.tgz", + "integrity": "sha512-epTvkdwOIPpTE9edHS+V+shetYzpTbd91XOzUli1zAS0+NSgSe6ZsNggIqUNzhma1s4bN2f/m8c6B1NMdCERAg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.12.tgz", + "integrity": "sha512-tJNUjttL5CxiiS/KLxT4/Zk0Nbl/poFhztFxktb46zoQEUWaGHR9ZJ0SnvE7DbFX5PY5JNJDMZ0Li4lm246fWw==", + "dev": true, + "requires": { + "debug": "^3.1.0" + } + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.12.tgz", + "integrity": "sha512-0FrJgiST+MQDMvPigzs+UIk1vslLIqGadkEWdn53Lr0NsUC2JbheG9QaO3Zf6ycK2JwsHiUpGaMFcHYXStTPMA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.5.12" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.12.tgz", + "integrity": "sha512-QBHZ45VPUJ7UyYKvUFoaxrSS9H5hbkC9U7tdWgFHmnTMutkXSEgDg2gZg3I/QTsiKOCIwx4qJUJwPd7J4D5CNQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.12.tgz", + "integrity": "sha512-0Gz5lQcyvElNVbOTKwjEmIxGwdWf+zpAW/WGzGo95B7IgMEzyyfZU+PrGHDwiSH9c0knol9G7smQnY0ljrSA6g==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.12.tgz", + "integrity": "sha512-ge/CKVKBGpiJhFN9PIOQ7sPtGYJhxm/mW1Y3SpG1L6XBunfRz0YnLjW3TmhcOEFozIVyODPS1HZ9f7VR3GBGow==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.12", + "@webassemblyjs/helper-buffer": "1.5.12", + "@webassemblyjs/helper-wasm-bytecode": "1.5.12", + "@webassemblyjs/wasm-gen": "1.5.12", + "debug": "^3.1.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.5.12.tgz", + "integrity": "sha512-cCOx/LVGiWyCwVrVlvGmTdnwHzIP4+zflLjGkZxWpYCpdNax9krVIJh1Pm7O86Ox/c5PrJpbvZU1cZLxndlPEw==", + "dev": true, + "requires": { + "leb": "^0.3.0" + } + }, + "@webassemblyjs/wasm-edit": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.12.tgz", + "integrity": "sha512-r/oZAyC4EZl0ToOYJgvj+b0X6gVEKQMLT34pNNbtvWBehQOnaSXvVUA5FIYlH8ubWjFNAFqYaVGgQTjR1yuJdQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.12", + "@webassemblyjs/helper-buffer": "1.5.12", + "@webassemblyjs/helper-wasm-bytecode": "1.5.12", + "@webassemblyjs/helper-wasm-section": "1.5.12", + "@webassemblyjs/wasm-gen": "1.5.12", + "@webassemblyjs/wasm-opt": "1.5.12", + "@webassemblyjs/wasm-parser": "1.5.12", + "@webassemblyjs/wast-printer": "1.5.12", + "debug": "^3.1.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.12.tgz", + "integrity": "sha512-LTu+cr1YRxGGiVIXWhei/35lXXEwTnQU18x4V/gE+qCSJN21QcVTMjJuasTUh8WtmBZtOlqJbOQIeN7fGnHWhg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.12", + "@webassemblyjs/helper-wasm-bytecode": "1.5.12", + "@webassemblyjs/ieee754": "1.5.12", + "@webassemblyjs/leb128": "1.5.12", + "@webassemblyjs/utf8": "1.5.12" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.12.tgz", + "integrity": "sha512-LBwG5KPA9u/uigZVyTsDpS3CVxx3AePCnTItVL+OPkRCp5LqmLsOp4a3/c5CQE0Lecm0Ss9hjUTDcbYFZkXlfQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.12", + "@webassemblyjs/helper-buffer": "1.5.12", + "@webassemblyjs/wasm-gen": "1.5.12", + "@webassemblyjs/wasm-parser": "1.5.12", + "debug": "^3.1.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.12.tgz", + "integrity": "sha512-xset3+1AtoFYEfMg30nzCGBnhKmTBzbIKvMyLhqJT06TvYV+kA884AOUpUvhSmP6XPF3G+HVZPm/PbCGxH4/VQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.12", + "@webassemblyjs/helper-api-error": "1.5.12", + "@webassemblyjs/helper-wasm-bytecode": "1.5.12", + "@webassemblyjs/ieee754": "1.5.12", + "@webassemblyjs/leb128": "1.5.12", + "@webassemblyjs/utf8": "1.5.12" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.5.12.tgz", + "integrity": "sha512-QWUtzhvfY7Ue9GlJ3HeOB6w5g9vNYUUnG+Y96TWPkFHJTxZlcvGfNrUoACCw6eDb9gKaHrjt77aPq41a7y8svg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.12", + "@webassemblyjs/floating-point-hex-parser": "1.5.12", + "@webassemblyjs/helper-api-error": "1.5.12", + "@webassemblyjs/helper-code-frame": "1.5.12", + "@webassemblyjs/helper-fsm": "1.5.12", + "long": "^3.2.0", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.5.12.tgz", + "integrity": "sha512-XF9RTeckFgDyl196uRKZWHFFfbkzsMK96QTXp+TC0R9gsV9DMiDGMSIllgy/WdrZ3y3dsQp4fTA5r4GoaOBchA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.12", + "@webassemblyjs/wast-parser": "1.5.12", + "long": "^3.2.0" + } + }, + "chrome-trace-event": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", + "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.0", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.10.3", + "vm-browserify": "0.0.4" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "webpack-angular-externals": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/webpack-angular-externals/-/webpack-angular-externals-1.0.2.tgz", + "integrity": "sha1-zc/pSWo8X0ZVFEHp/NMiPEvoAtI=", + "dev": true, + "requires": { + "lodash.camelcase": "^4.3.0" + } + }, + "webpack-cli": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.0.tgz", + "integrity": "sha512-p5NeKDtYwjZozUWq6kGNs9w+Gtw/CPvyuXjXn2HMdz8Tie+krjEg8oAtonvIyITZdvpF7XG9xDHwscLr2c+ugQ==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.0.0", + "global-modules-path": "^2.1.0", + "import-local": "^1.0.0", + "inquirer": "^6.0.0", + "interpret": "^1.1.0", + "loader-utils": "^1.1.0", + "supports-color": "^5.4.0", + "v8-compile-cache": "^2.0.0", + "yargs": "^12.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.5.0.tgz", + "integrity": "sha512-9ZTaoBaePSCFvNlNGrsyI8ZVACP2svUtq0DkM7t4K2ClAa96sqOIRjAzDTc8zXzFt1cZR46rRzLTiHFSJ+Qw0g==", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "dev": true, + "requires": { + "xregexp": "4.0.0" + } + }, + "external-editor": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.0.tgz", + "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", + "dev": true, + "requires": { + "chardet": "^0.5.0", + "iconv-lite": "^0.4.22", + "tmp": "^0.0.33" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inquirer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.0.0.tgz", + "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.1.tgz", + "integrity": "sha512-B0vRAp1hRX4jgIOWFtjfNjd9OA9RWYZ6tqGA9/I/IrTMsxmKvtWy+ersM+jzpQqbC3YfLzeABPdeTgcJ9eu1qQ==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^2.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^10.1.0" + } + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true, + "requires": { + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" + }, + "dependencies": { + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "webpack-dev-middleware": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.1.3.tgz", + "integrity": "sha512-I6Mmy/QjWU/kXwCSFGaiOoL5YEQIVmbb0o45xMoCyQAg/mClqZVTcsX327sPfekDyJWpCxb+04whNyLOIxpJdQ==", + "dev": true, + "requires": { + "loud-rejection": "^1.6.0", + "memory-fs": "~0.4.1", + "mime": "^2.1.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "url-join": "^4.0.0", + "webpack-log": "^1.0.1" + }, + "dependencies": { + "mime": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.5.tgz", + "integrity": "sha512-LVHg+EPwZLHIlfvokSTgtJqO/vI5CQi89fASb5JEDtVMDjY0yuIEqPPdMiKaBJIB/Ab7v/UN/sYZ7WsZvntQKw==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "array-includes": "^3.0.3", + "bonjour": "^3.5.0", + "chokidar": "^2.0.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.18.0", + "import-local": "^1.0.0", + "internal-ip": "1.2.0", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.7.2", + "sockjs": "0.3.19", + "sockjs-client": "1.1.5", + "spdy": "^3.4.1", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", + "webpack-dev-middleware": "3.1.3", + "webpack-log": "^1.1.2", + "yargs": "11.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "express": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.3", + "qs": "6.5.1", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", + "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "webpack-hot-middleware": { + "version": "2.22.3", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.22.3.tgz", + "integrity": "sha512-mrG3bJGX4jgWbrpY0ghIpPgCmNhZziFMBJBmZfpIe6K/P1rWPkdkbGihbCUIufgQ8ruX4txE5/CKSeFNzDcYOw==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "html-entities": "^1.2.0", + "querystring": "^0.2.0", + "strip-ansi": "^3.0.0" + } + }, + "webpack-log": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz", + "integrity": "sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==", + "dev": true, + "requires": { + "chalk": "^2.1.0", + "log-symbols": "^2.1.0", + "loglevelnext": "^1.0.1", + "uuid": "^3.1.0" + } + }, + "webpack-rxjs-externals": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-rxjs-externals/-/webpack-rxjs-externals-1.1.0.tgz", + "integrity": "sha1-Uy4yUloSuQFwJj+ZMRsEQCHmMi4=", + "dev": true + }, + "webpack-sources": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-subresource-integrity": { + "version": "1.1.0-rc.4", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.4.tgz", + "integrity": "sha1-xcTj1pD50vZKlVDgeodn+Xlqpdg=", + "dev": true, + "requires": { + "webpack-core": "^0.6.8" + } + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, + "requires": { + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", + "dev": true + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + }, + "dependencies": { + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + } + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "xxhashjs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", + "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", + "dev": true, + "requires": { + "cuint": "^0.2.2" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "~1.0.1" + } + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true + }, + "zone.js": { + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz", + "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA==" + } + } +} diff --git a/package.json b/package.json index 8495da4..dea420e 100644 --- a/package.json +++ b/package.json @@ -1,133 +1,86 @@ { - "name": "sdc-ui", - "version": "1.6.42", - "description": "This project aims to create a unified UI styled components for multiple development teams who work on the same web-based applications.", + "name": "onap-ui-angular", + "version": "5.1.17", + "author": "d2", + "private": false, + "main": "dist/index.umd.js", + "license": "MIT", "scripts": { - "test": "jest && npm run karma-travis", - "test-dev": "jest --watch", - "test-coverage": "jest --coverage && start coverage/lcov-report/index.html", - "karma-travis": "karma start --single-run --browsers PhantomJS", - "karma-dev": "karma start", - "tslint": "tslint -c tslint.json 'src/**/*.ts'", - "prebuild-clean": "rimraf lib", - "build-demo": "node utils/build-demo.js", - "build-icons": "node utils/create-icon-map.js", - "build-themes": "node-sass --include-path src/style/scss/themes src/style/scss/themes/1802/style.scss css/theme_1802.css", - "build-svg-icons": "node utils/create-svg-icons-map.js", - "build-common": "npm run build-icons && npm run build-svg-icons && node-sass --include-path src/style/scss src/style/scss/style.scss css/style.css && npm run build-themes", - "build-react": "babel src/react -d lib/react", - "compile-angular": "ngc -p tsconfig.angular.build-es5.json", - "rollup-angular:module": "rollup -c rollup.angular.module.config.js", - "rollup-angular:umd": "rollup -c rollup.angular.umd.config.js", - "rollup-angular:metadata": "find build/* -type f -not -name '*.js' -not -name '*.js.*' -exec cp --parents {} lib \\; && cp -rf lib/build/* lib/ && rm -r lib/build", - "build-angular": "npm run compile-angular && npm run rollup-angular:module && npm run rollup-angular:umd && npm run rollup-angular:metadata", - "build-style": "npm run build-style-scss && npm run build-style-less", - "build-style-scss": "cp -rf src/style lib/", - "build-style-less": "sass2less --cwd lib/style/scss **/*.scss ../less/{dir}/{name}.less", - "build-pack": "cp -r css lib/ && cp -r assets lib/", - "postbuild-clean": "rimraf build", - "build": "npm run prebuild-clean && npm run build-common && npm run build-react && npm run build-angular && npm run build-pack && npm run build-style && npm run postbuild-clean", - "storybook": "npm run build-common && start-storybook -p 6006", - "build-storybook": "npm run build-common && build-storybook -c .storybook -o .out/react && ncp utils/index-for-gh-pages.html .out/index.html && ncp utils/main-page.html .out/main-page.html && ncp assets .out/assets", - "lab": "npm run build-common && ng2-component-lab --config .ng2-component-lab/ng2-component-lab.config.js -- feature", - "build-lab": "set NODE_ENV=build&& ng2-component-lab --config .ng2-component-lab/ng2-component-lab.config.js --build -- feature", - "build-gh-pages": "npm run build-storybook && npm run build-lab && ncp utils/index-for-gh-pages.html .out/index.html && ncp utils/main-page.html .out/main-page.html && ncp assets .out/assets" + "e2e": "ng e2e --no-webdriver-update", + "ng": "ng", + "start": "ng serve", + "build": "npm run build:pre && npm run build:ngc && npm run build:umd", + "build:pre": "rimraf dist", + "build:ngc": "node_modules/.bin/ngc -p tsconfig-aot.json", + "build:umd": "webpack --config webpack-umd.config.ts --mode production", + "build:umd-dev": "webpack --config webpack-umd.config.ts --mode development", + "build:scss": "node-sass src/assets/styles/style.scss -o dist", + "storybook": "start-storybook -p 6007", + "storybook:prebuild": "npm run test:generate-output", + "storybook:build": "build-storybook -c .storybook -o .storybook-out ", + "lint:src": "npm run tslint 'src/angular/**/*.ts'", + "lint:stories": "npm run tslint 'stories/**/*.ts'" }, - "repository": { - "type": "git", - "url": "git+https://github.com/onap-sdc/sdc-ui.git" - }, - "author": "", - "bugs": { - "url": "https://github.com/onap-sdc/sdc-ui/issues" - }, - "files": [ - "lib", - "css", - "assets", - "README.md" - ], - "homepage": "https://github.com/onap-sdc/sdc-ui#readme", - "peerDependencies": { - "@angular/core": "^2.4.8" + "dependencies": { + "@angular/animations": "^6.0.3", + "@angular/common": "^6.0.3", + "@angular/compiler": "^6.0.3", + "@angular/core": "^6.0.3", + "@angular/forms": "^6.0.3", + "@angular/platform-browser": "^6.0.3", + "@angular/platform-browser-dynamic": "^6.0.3", + "@angular/upgrade": "^6.0.3", + "@ngrx/store": "^6.0.1", + "angular-base64-upload": "^0.1.23", + "core-js": "^2.5.7", + "rxjs": "^6.2.0", + "rxjs-compat": "^6.2.0", + "zone.js": "^0.8.26" }, "devDependencies": { - "@angular/compiler": "~2.4.8", - "@angular/compiler-cli": "~2.4.8", - "@islavi/ng2-component-lab": "^1.0.28", - "@types/jasmine": "2.5.47", - "@types/node": "^7.0.27", - "angular2-router-loader": "^0.3.4", - "angular2-template-loader": "^0.6.2", + "@angular-devkit/build-angular": "^0.6.0", + "@angular/cli": "^6.0.7", + "@angular/compiler-cli": "^6.0.3", + "@storybook/addon-actions": "4.0.0-alpha.9", + "@storybook/addon-backgrounds": "4.0.0-alpha.9", + "@storybook/addon-centered": "4.0.0-alpha.9", + "@storybook/addon-jest": "4.0.0-alpha.9", + "@storybook/addon-knobs": "4.0.0-alpha.9", + "@storybook/addon-links": "4.0.0-alpha.9", + "@storybook/addon-notes": "4.0.0-alpha.9", + "@storybook/addon-options": "4.0.0-alpha.9", + "@storybook/addon-storyshots": "4.0.0-alpha.9", + "@storybook/addon-storysource": "4.0.0-alpha.9", + "@storybook/addons": "4.0.0-alpha.9", + "@storybook/angular": "4.0.0-alpha.9", + "@types/jest": "^22.2.3", + "@types/node": "~9.6.20", "awesome-typescript-loader": "^3.1.3", - "babel-cli": "^6.24.1", - "babel-eslint": "^7.2.3", - "babel-plugin-transform-object-rest-spread": "^6.23.0", - "babel-preset-env": "^1.4.0", - "babel-preset-react": "^6.24.1", - "babel-runtime": "^6.23.0", - "chalk": "1.1.3", - "codelyzer": "3.1.1", - "css-loader": "^0.28.0", - "enzyme": "^2.8.2", - "eslint": "^3.19.0", - "eslint-plugin-import": "^2.2.0", - "eslint-plugin-react": "^7.0.1", - "html-loader": "^0.4.5", - "html-replace-webpack-plugin": "^2.2.6", - "jasmine-core": "~2.5.2", - "jasmine-spec-reporter": "^4.1.1", - "jest": "^20.0.0", - "karma": "~1.5.0", - "karma-chrome-launcher": "^2.2.0", - "karma-coverage": "~1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-htmlfile-reporter": "^0.3.5", - "karma-jasmine": "~1.1.0", - "karma-jasmine-html-reporter": "^0.2.2", - "karma-junit-reporter": "^1.2.0", - "karma-phantomjs-launcher": "~1.0.4", - "karma-remap-coverage": "0.1.4", - "karma-sourcemap-loader": "^0.3.7", - "karma-spec-reporter": "0.0.30", - "karma-typescript": "^3.0.8", - "karma-webpack": "2.0.3", - "less-plugin-sass2less": "^1.2.0", - "lite-server": "^2.3.0", - "ncp": "^2.0.0", - "node-sass": "^4.5.3", - "prismjs": "^1.6.0", - "protractor": "5.1.1", - "react-test-renderer": "^15.5.4", + "babel-core": "^6.26.3", + "css-loader": "^0.28.11", + "delete": "^1.1.0", + "global": "^4.3.2", + "node-sass": "^4.9.2", + "onap-ui-common": "^1.0.57", "rimraf": "^2.6.2", - "rollup": "^0.51.8", - "sass-loader": "^6.0.3", - "sorcery": "0.10.0", - "source-map-loader": "0.2.1", - "style-loader": "^0.16.1", - "tslint": "5.9.1", - "tslint-angular": "^1.1.1", - "typescript": "^2.6.1", - "uglify-js": "2.8.29", - "url-parse": "^1.1.9" + "sass-loader": "^7.0.3", + "style-loader": "^0.21.0", + "ts-loader": "^4.4.2", + "ts-node": "7.0.0", + "tslint": "^5.2.0", + "typescript": "2.7.2", + "webpack": "4.12.0", + "webpack-angular-externals": "^1.0.2", + "webpack-cli": "^3.0.8", + "webpack-rxjs-externals": "^1.0.0" }, - "dependencies": { - "@angular/common": "~2.4.8", - "@angular/core": "~2.4.8", - "@angular/forms": "~2.4.8", - "@angular/http": "^2.4.8", - "@angular/platform-browser": "~2.4.8", - "@angular/platform-browser-dynamic": "~2.4.8", - "@angular/router": "~3.2.1", - "@angular/upgrade": "^2.4.8", - "@storybook/react": "^3.1.5", - "http-loader": "0.0.1", - "prop-types": "^15.6.0", - "react": "15.6.2", - "react-dom": "15.6.2", - "reflect-metadata": "^0.1.3", - "rxjs": "5.4.2", - "svg-react-loader": "^0.4.4", - "zone.js": "^0.8.18" - } + "peerDependencies": { + "@angular/common": "^6.0.3", + "@angular/core": "^6.0.3" + }, + "files": [ + "dist", + "README.md" + ], + "types": "dist/components/index.d.ts" } diff --git a/pom.xml b/pom.xml deleted file mode 100644 index d3f133f..0000000 --- a/pom.xml +++ /dev/null @@ -1,162 +0,0 @@ - - - 4.0.0 - - org.onap.sdc - onap-ui - 1.0.0-SNAPSHOT - pom - onap-ui - - - https://nexus.onap.org - /content/sites/site/org/openecomp/sdc/${project.version} - 176c31dfe190a - yyyyMMdd'T'HHmmss'Z' - - 1.8 - 1.8 - - - - - - - maven-clean-plugin - 2.6.1 - - - clean.dist.folder - clean - - clean - - - - - ${basedir}/node_modules - - - ${basedir}/dist - - - - - - - - - com.github.eirslett - frontend-maven-plugin - 1.6 - - - ${project.parent.basedir} - - - - - install node and npm - - install-node-and-npm - - - v8.11.1 - 5.6.0 - - - - - npm set progress off - - npm - - - set progress=false - - - - - npm install - - npm - - - install - - - - - npm run build - - npm - - - run build - - - - - npm test - - npm - - - run test - - - - - npm run build-gh-pages - - npm - - - run build-gh-pages - - - - - - - - - - - - ecomp-releases - Release Repository - ${nexus.proxy}/content/repositories/releases/ - - - ecomp-snapshots - Snapshots Repository - ${nexus.proxy}/content/repositories/snapshots/ - - - ecomp-public - Public Repository - ${nexus.proxy}/content/repositories/public/ - - - - - - ecomp-releases - Release Repository - ${nexus.proxy}/content/repositories/releases/ - - - ecomp-snapshots - Snapshot Repository - ${nexus.proxy}/content/repositories/snapshots/ - - - ecomp-site - dav:${nexus.proxy}${sitePath} - - - - - diff --git a/rollup.angular.module.config.js b/rollup.angular.module.config.js deleted file mode 100644 index 18f382b..0000000 --- a/rollup.angular.module.config.js +++ /dev/null @@ -1,33 +0,0 @@ -export default { - input: './build/angular/index.js', - output: { - name: 'sdcUiAngular', - file: './lib/angular/index.js', - format: 'es', - exports: 'named', - }, - external: [ - '@angular/core', - '@angular/common', - '@angular/common/http', - '@angular/upgrade/static', - '@angular/forms', - '@angular/platform-browser', - '@angular/http', - '@rxjs/add/operator/debounceTime', - 'rxjs/Subject', - 'rxjs/add/operator/debounceTime', - 'rxjs/add/operator/map', - 'rxjs/BehaviorSubject', - 'rxjs/Subject' - ], - onwarn: function(warning) { - // Skip certain warnings - - // should intercept ... but doesn't in some rollup versions - if ( warning.code === 'THIS_IS_UNDEFINED' ) { return; } - - // console.warn everything else - console.warn( warning.message ); - } -}; diff --git a/rollup.angular.umd.config.js b/rollup.angular.umd.config.js deleted file mode 100644 index 547c6a9..0000000 --- a/rollup.angular.umd.config.js +++ /dev/null @@ -1,38 +0,0 @@ -export default { - input: './build/angular/index.js', - output: { - name: 'sdcUiAngular', - file: './lib/angular/index.umd.js', - format: 'umd', - exports: 'named', - globals: { - '@angular/core': 'ngCore', - '@angular/common': 'ngCommon', - '@angular/forms': 'ngForms' - } - }, - external: [ - '@angular/core', - '@angular/common', - '@angular/common/http', - '@angular/upgrade/static', - '@angular/forms', - '@angular/platform-browser', - '@angular/http', - '@rxjs/add/operator/debounceTime', - 'rxjs/Subject', - 'rxjs/add/operator/debounceTime', - 'rxjs/add/operator/map', - 'rxjs/BehaviorSubject', - 'rxjs/Subject' - ], - onwarn: function(warning) { - // Skip certain warnings - - // should intercept ... but doesn't in some rollup versions - if ( warning.code === 'THIS_IS_UNDEFINED' ) { return; } - - // console.warn everything else - console.warn( warning.message ); - } -}; diff --git a/src/README.md b/src/README.md deleted file mode 100644 index 83d47bf..0000000 --- a/src/README.md +++ /dev/null @@ -1,9 +0,0 @@ - -# Folder Structure - -### Angular 2 Framework -Contains **Angular 2** based components - - -### React Framework -Contains **React.js** based components diff --git a/src/angular/accordion/accordion.component.html.ts b/src/angular/accordion/accordion.component.html.ts index ac5f81f..2679906 100644 --- a/src/angular/accordion/accordion.component.html.ts +++ b/src/angular/accordion/accordion.component.html.ts @@ -1,4 +1,4 @@ -export default ` +export const template = `
    diff --git a/src/angular/accordion/accordion.component.ts b/src/angular/accordion/accordion.component.ts index b16df89..e81597e 100644 --- a/src/angular/accordion/accordion.component.ts +++ b/src/angular/accordion/accordion.component.ts @@ -1,10 +1,6 @@ -/** - * Created by M.S.BIT on 26/04/2018. - */ - -import {Component, Input, Output, EventEmitter} from "@angular/core"; -import {Placement} from "../common/enums"; -import template from './accordion.component.html'; +import { Component, Input, Output, EventEmitter } from "@angular/core"; +import { Placement } from "../common/enums"; +import { template } from './accordion.component.html'; @Component({ selector: 'sdc-accordion', diff --git a/src/angular/accordion/accordion.module.ts b/src/angular/accordion/accordion.module.ts index 6cda646..7b3bb95 100644 --- a/src/angular/accordion/accordion.module.ts +++ b/src/angular/accordion/accordion.module.ts @@ -1,10 +1,7 @@ -/** - * Created by M.S.BIT on 26/04/2018. - */ import { NgModule } from "@angular/core"; import { CommonModule } from "@angular/common"; -import {AccordionComponent} from "./accordion.component"; -import {SvgIconModule} from "../svg-icon/svg-icon.module"; +import { AccordionComponent } from "./accordion.component"; +import { SvgIconModule } from "../svg-icon/svg-icon.module"; @NgModule({ declarations: [ diff --git a/src/angular/autocomplete/autocomplete.component.html.ts b/src/angular/autocomplete/autocomplete.component.html.ts index 5df7352..8e57f9e 100644 --- a/src/angular/autocomplete/autocomplete.component.html.ts +++ b/src/angular/autocomplete/autocomplete.component.html.ts @@ -1,4 +1,4 @@ -export default ` +export const template = `
    *', animate('200ms')) ]), - ], - providers: [AutocompletePipe] + ] }) -export class SearchWithAutoCompleteComponent implements OnInit { +export class AutoCompleteComponent implements OnInit { @Input() public data: any[] = []; @Input() public dataSchema: IDataSchema; @Input() public dataUrl: string; @@ -36,12 +30,12 @@ export class SearchWithAutoCompleteComponent implements OnInit { @Input() public placeholder: string; @Output() public itemSelected: EventEmitter = new EventEmitter(); - private searchQuery: string; + public searchQuery: string; private complexData: any[] = []; - private autoCompleteResults: any[] = []; + public autoCompleteResults: any[] = []; private isItemSelected: boolean = false; - public constructor(private http: Http, private autocompletePipe: AutocompletePipe) { + public constructor(private http: HttpClient, private autocompletePipe: AutocompletePipe) { } public ngOnInit(): void { @@ -82,18 +76,18 @@ export class SearchWithAutoCompleteComponent implements OnInit { this.itemSelected.emit(selectedItem.key); } - private onSearchQueryChanged = (searchText: string): void => { + public onSearchQueryChanged = (searchText: string): void => { if (searchText !== this.searchQuery) { this.searchQuery = searchText; if (!this.searchQuery) { this.onClearSearch(); } else { if (this.dataUrl) { - const params: URLSearchParams = new URLSearchParams(); - params.set('searchQuery', this.searchQuery); - this.http.get(this.dataUrl, {search: params}) + const params = new HttpParams(); + params.append('searchQuery', this.searchQuery); + this.http.get(this.dataUrl, {params}) .map((response) => { - this.data = response.json(); + this.data = JSON.parse(JSON.stringify(response)); this.handleLocalData(); this.autoCompleteResults = this.complexData; }).subscribe(); @@ -112,3 +106,8 @@ export class SearchWithAutoCompleteComponent implements OnInit { } } } + +export interface IDataSchema { + key: string; + value: string; +} diff --git a/src/angular/autocomplete/autocomplete.module.ts b/src/angular/autocomplete/autocomplete.module.ts index 1bead47..f105669 100644 --- a/src/angular/autocomplete/autocomplete.module.ts +++ b/src/angular/autocomplete/autocomplete.module.ts @@ -1,23 +1,26 @@ import { NgModule } from "@angular/core"; -import { SearchWithAutoCompleteComponent } from "./autocomplete.component"; +import { AutoCompleteComponent } from "./autocomplete.component"; import { CommonModule } from "@angular/common"; import { FilterBarModule } from "../filterbar/filter-bar.module"; import { AutocompletePipe } from "./autocomplete.pipe"; -import { HttpModule } from '@angular/http'; +import { BrowserModule } from '@angular/platform-browser'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; @NgModule({ declarations: [ - SearchWithAutoCompleteComponent, + AutoCompleteComponent, AutocompletePipe ], imports: [ + BrowserModule, + BrowserAnimationsModule, FilterBarModule, - CommonModule, - HttpModule + CommonModule ], exports: [ - SearchWithAutoCompleteComponent - ], + AutoCompleteComponent, + AutocompletePipe + ] }) export class AutoCompleteModule { } diff --git a/src/angular/buttons/button-file-opener.component.html.ts b/src/angular/buttons/button-file-opener.component.html.ts new file mode 100644 index 0000000..dd24be3 --- /dev/null +++ b/src/angular/buttons/button-file-opener.component.html.ts @@ -0,0 +1,18 @@ +export const template = ` +
    + {{ text }} + +
    +`; + +// base-sixty-four-input diff --git a/src/angular/buttons/button-file-opener.component.ts b/src/angular/buttons/button-file-opener.component.ts new file mode 100644 index 0000000..399eb9a --- /dev/null +++ b/src/angular/buttons/button-file-opener.component.ts @@ -0,0 +1,61 @@ +import { Component, Input, Output, EventEmitter, HostBinding, ViewChild, AfterViewInit } from '@angular/core'; +import { ButtonComponent } from './button.component'; +import { template } from "./button-file-opener.component.html"; + +export class FileObject { + filesize: string; + filetype: string; + filename: string; + base64: string; +} + +@Component({ + selector: "sdc-button-file-opener", + template: template, + styles: [` + input[type=file] { + display: none; + } + `] +}) +export class ButtonFileOpenerComponent extends ButtonComponent implements AfterViewInit { + + @Input() public extensions: string; + @Output() public fileUpload: EventEmitter; + @HostBinding('class.sdc-button__wrapper') true; + + public allowedExtensions: string; + private fileObject: FileObject; + + constructor() { + super(); + this.fileUpload = new EventEmitter(); + this.fileObject = new FileObject(); + } + + ngAfterViewInit() : void { + this.allowedExtensions = this.extensions && this.extensions.split(',').map(x => '.' + x).join(','); + } + + public onFileSelectaa(event): void { + let file = event.srcElement.files[0]; + debugger + this.fileUpload.emit({file: file}); + } + + public onFileSelect(e): void { + var file = e.dataTransfer ? e.dataTransfer.files[0] : e.target.files[0]; + var reader = new FileReader(); + this.fileObject.filesize = file.size; + this.fileObject.filetype = file.type; + this.fileObject.filename = file.name; + reader.onload = this._handleReaderLoaded.bind(this); + reader.readAsDataURL(file); + } + private _handleReaderLoaded(e) { + let base64 = e.target.result; + this.fileObject.base64 = base64.split('base64,')[1]; + this.fileUpload.emit(this.fileObject); + } + +} diff --git a/src/angular/buttons/button.component.html.ts b/src/angular/buttons/button.component.html.ts index f903fd1..33a630a 100644 --- a/src/angular/buttons/button.component.html.ts +++ b/src/angular/buttons/button.component.html.ts @@ -1,11 +1,11 @@ -export default ` +export const template = ` -); - -Button.propTypes = { - btnType: PropTypes.string, - size: PropTypes.oneOf(['', 'default', 'x-small', 'small', 'medium', 'large']), - className: PropTypes.string, - iconName: PropTypes.string, - onClick: PropTypes.func, - disabled: PropTypes.bool -}; - -Button.defaultProps = { - btnType: 'primary', - size: '', - className: '', - iconName: '', - disabled: false -}; - -export default Button; diff --git a/src/react/Checkbox.js b/src/react/Checkbox.js deleted file mode 100644 index bef6945..0000000 --- a/src/react/Checkbox.js +++ /dev/null @@ -1,45 +0,0 @@ -import React from 'react'; - -class Checkbox extends React.Component { - - render() { - let {checked = false, disabled, value, label, inputRef, className, name} = this.props; - let dataTestId = this.props['data-test-id']; - - return ( -
    - -
    - ); - } - - onChange(e) { - let {onChange} = this.props; - if (onChange) { - onChange(e.target.checked); - } - } - - getChecked() { - return this.props.checked; - } - - getValue() { - return this.props.value; - } - -} - -export default Checkbox; diff --git a/src/react/Checklist.js b/src/react/Checklist.js deleted file mode 100644 index 1a42aee..0000000 --- a/src/react/Checklist.js +++ /dev/null @@ -1,43 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import Checkbox from './Checkbox.js'; - -const Checklist = ({ items = [], className, onChange }) => ( -
    - {items.map((item, index) => { - return ( -
    - { - let obj = {}; - obj[item.value] = value; - onChange(obj); - }} - data-test-id={item.dataTestId} - /> -
    - ); - })} -
    -); - -Checklist.propTypes = { - items: PropTypes.arrayOf( - PropTypes.shape({ - label: PropTypes.string, - value: PropTypes.string, - checked: PropTypes.bool, - disabled: PropTypes.bool, - dataTestId: PropTypes.string - }) - ), - className: PropTypes.string, - onChange: PropTypes.func -}; - -export default Checklist; \ No newline at end of file diff --git a/src/react/Input.js b/src/react/Input.js deleted file mode 100644 index 5760637..0000000 --- a/src/react/Input.js +++ /dev/null @@ -1,88 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import SVGIcon from './SVGIcon.js'; - -class Input extends React.Component { - - render() { - let {className, disabled, errorMessage, readOnly, label, name, value, type, placeholder, isRequired} = this.props; - let dataTestId = this.props['data-test-id']; - let inputClasses = `sdc-input__input ${errorMessage ? 'error' : ''} ${readOnly ? 'view-only' : ''}`; - let labelClasses = `sdc-input__label ${readOnly ? 'view-only' : ''} ${isRequired ? 'required' : ''}`; - - return ( -
    - - - this.onBlur(e)} - onKeyDown={(e) => this.onKeyDown(e)} - onChange={(e) => this.onChange(e)}/> - { errorMessage &&
    - -
    } -
    - ); - } - - onChange(e) { - let {onChange, readOnly, disabled} = this.props; - if (onChange && !readOnly && !disabled) { - onChange(e.target.value); - } - } - - onBlur(e) { - let {onBlur, readOnly} = this.props; - if (!readOnly && onBlur) { - onBlur(e); - } - } - - onKeyDown(e) { - let {onKeyDown, readOnly} = this.props; - if (!readOnly && onKeyDown) { - onKeyDown(e); - } - } - - getValue() { - return this.props.value; - } - -} -Input.propTypes = { - name: PropTypes.string, - value: PropTypes.string, - type: PropTypes.oneOf(['text', 'number']), - placeholder : PropTypes.string, - onChange: PropTypes.func, - onBlur: PropTypes.func, - onKeyDown: PropTypes.func, - errorMessage: PropTypes.string, - readOnly: PropTypes.bool, - isRequired: PropTypes.bool, - disabled: PropTypes.bool, - label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]), - className: PropTypes.string -}; - -Input.defaultProps = { - type: 'text', - readOnly: false, - isRequired: false, - disabled: false -}; -export default Input; diff --git a/src/react/Modal.js b/src/react/Modal.js deleted file mode 100644 index ab2f7d7..0000000 --- a/src/react/Modal.js +++ /dev/null @@ -1,55 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -import Portal from './Portal.js'; -import Body from './ModalBody.js'; -import Header from './ModalHeader.js'; -import Footer from './ModalFooter.js'; -import Title from './ModalTitle.js'; - -export const modalSize = { - medium: 'md', - large: 'l', - extraLarge: 'xl', - small: 'sm', - extraSmall: 'xsm' -}; - - -class Modal extends React.Component { - - render() { - const {size, type, children, show} = this.props; - return ( - -
    { this.modalRef = el;}}> - {show &&
    -
    - {children} -
    -
    } - {show &&
    } -
    - - ); - } -} - -Modal.defaultProps = { - show: false, - size: 'medium', - type: 'info' -}; - -Modal.propTypes = { - show: PropTypes.bool, - size: PropTypes.string, - children: PropTypes.node, - type: PropTypes.string -}; - -Modal.Body = Body; -Modal.Header = Header; -Modal.Footer = Footer; -Modal.Title = Title; -export default Modal; \ No newline at end of file diff --git a/src/react/ModalBody.js b/src/react/ModalBody.js deleted file mode 100644 index 4fae0f6..0000000 --- a/src/react/ModalBody.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -const ModalBody = ({children, className}) => ( -
    - {children} -
    -); - -ModalBody.propTypes = { - children: PropTypes.node, - className: PropTypes.string -}; - -ModalBody.defaultProps = { - className: '' -}; - -export default ModalBody; \ No newline at end of file diff --git a/src/react/ModalFooter.js b/src/react/ModalFooter.js deleted file mode 100644 index 607895d..0000000 --- a/src/react/ModalFooter.js +++ /dev/null @@ -1,36 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import Button from './Button.js'; - -const Footer = ({onClose, closeButtonText, actionButtonText, actionButtonClick, withButtons, children}) => { - const closeBtnType = actionButtonClick ? 'secondary' : 'primary'; - return ( -
    - {children} - { - withButtons &&
    - {actionButtonClick && - - } - -
    - } -
    - ); -}; - -Footer.propTypes = { - onClose: PropTypes.func, - closeButtonText: PropTypes.string, - actionButtonText: PropTypes.string, - actionButtonClick: PropTypes.func, - withButtons: PropTypes.bool, - children: PropTypes.node -}; - -Footer.defaultProps = { - closeButtonText: 'Close', - withButtons: true -}; - -export default Footer; \ No newline at end of file diff --git a/src/react/ModalHeader.js b/src/react/ModalHeader.js deleted file mode 100644 index c6be5ef..0000000 --- a/src/react/ModalHeader.js +++ /dev/null @@ -1,41 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import SVGIcon from './SVGIcon.js'; - -const iconMaper = { - error: 'error', - info: 'errorCircle', - alert: 'exclamationTriangleLine' -}; - -const headerTypes = { - error: 'sdc-error__header', - info: 'sdc-info__header', - alert: 'sdc-alert__header', - custom: 'sdc-custom__header' -} - - - -const Header = ({children, onClose, type}) => ( -
    - {type !== 'custom' - && - - - } - {children} - -
    -); - -Header.propTypes = { - children: PropTypes.node, - onClose: PropTypes.func -}; - -Header.defaultProps = { - type: 'info' -}; - -export default Header; \ No newline at end of file diff --git a/src/react/ModalTitle.js b/src/react/ModalTitle.js deleted file mode 100644 index b48cc8a..0000000 --- a/src/react/ModalTitle.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -const Title = ({children, className}) => ( -
    - {children} -
    -); - -Title.PropTypes = { - children: PropTypes.node, - className: PropTypes.string -}; - -Title.defaultProps = { - className: '' -}; - -export default Title; \ No newline at end of file diff --git a/src/react/Panel.js b/src/react/Panel.js deleted file mode 100644 index 34d2e62..0000000 --- a/src/react/Panel.js +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -const Panel = ({ className, children }) => ( -
    - {children} -
    -); - -Panel.propTypes = { - className: PropTypes.string, - children: PropTypes.node -}; - -Panel.defaultProps = { - className: '' -}; -export default Panel; \ No newline at end of file diff --git a/src/react/PopupMenu.js b/src/react/PopupMenu.js deleted file mode 100644 index d2cd29a..0000000 --- a/src/react/PopupMenu.js +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import PopupMenuItem from './PopupMenuItem'; - -class PopupMenu extends React.Component { - render() { - const {children = [], onMenuItemClick, position = {}, relative} = this.props; - const style = relative ? {left: position.x, top: position.y} : {}; - - return ( -
      - {React.Children.toArray(children).map((child, i) => React.cloneElement(child, - { - onClick: child.props.onClick || onMenuItemClick, - key: i - }))} -
    - ); - } -} - -PopupMenu.propTypes = { - relative: PropTypes.bool, - position: PropTypes.shape({ - x: PropTypes.number, - y: PropTypes.number - }), - onMenuItemClick: PropTypes.func -}; - -PopupMenu.defaultProps = { - relative: false -}; - -export const PopupMenuSeparator = () =>
  • ; - -PopupMenu.Separator = PopupMenuSeparator; -PopupMenu.Item = PopupMenuItem; -export default PopupMenu; diff --git a/src/react/PopupMenuItem.js b/src/react/PopupMenuItem.js deleted file mode 100644 index 98e3f49..0000000 --- a/src/react/PopupMenuItem.js +++ /dev/null @@ -1,34 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -class PopupMenuItem extends React.Component { - render() { - const {itemId, value, onClick, selected, disabled} = this.props; - const additionalClasses = selected ? 'selected' : disabled ? 'disabled' : ''; - return ( -
  • { - event.stopPropagation(); - onClick && !disabled && onClick(itemId); - }}> - {value} -
  • - ); - } -} - -PopupMenuItem.propTypes = { - itemId: PropTypes.any, - value: PropTypes.any, - selected: PropTypes.bool, - onClick: PropTypes.func, - disabled: PropTypes.bool -}; - -PopupMenuItem.defaultProps = { - selected: false, - disabled: false -}; - -export default PopupMenuItem; diff --git a/src/react/Portal.js b/src/react/Portal.js deleted file mode 100644 index 90e0675..0000000 --- a/src/react/Portal.js +++ /dev/null @@ -1,52 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import ReactDOM from 'react-dom'; - -class Portal extends React.Component { - componentDidMount() { - this.renderPortal(); - } - - componentDidUpdate() { - this.renderPortal(); - } - - componentWillUnmount() { - if (this.defaultNode) { - document.body.removeChild(this.defaultNode); - } - this.defaultNode = null; - this.portal = null; - } - - renderPortal() { - if (!this.defaultNode) { - this.defaultNode = document.createElement('div'); - this.defaultNode.className = 'onap-sdc-portal'; - document.body.appendChild(this.defaultNode); - } - - let children = this.props.children; - if (typeof this.props.children.type === 'function') { - children = React.cloneElement(this.props.children); - } - /** - * Change this to ReactDOM.CreatePortal after upgrading to React 16 - */ - this.portal = ReactDOM.unstable_renderSubtreeIntoContainer( - this, - children, - this.defaultNode - ); - } - render() { - return null; - } - -} - -Portal.propTypes = { - children: PropTypes.node.isRequired -}; - -export default Portal; \ No newline at end of file diff --git a/src/react/Radio.js b/src/react/Radio.js deleted file mode 100644 index 483521a..0000000 --- a/src/react/Radio.js +++ /dev/null @@ -1,58 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -class Radio extends React.Component { - render() { - let {checked, disabled, value, label, className, inputRef, name} = this.props; - let dataTestId = this.props['data-test-id']; - return ( -
    - -
    - ); - } - - onChange(e) { - let {onChange} = this.props; - if (onChange) { - onChange(e.target.checked); - } - } - - getChecked() { - return this.props.checked; - } - - getValue() { - return this.props.value; - } -} - -Radio.propTypes = { - checked: PropTypes.bool, - value: PropTypes.any, - label: PropTypes.string, - className: PropTypes.string, - inputRef: PropTypes.func, - name: PropTypes.string, - disabled: PropTypes.bool -}; - -Radio.defaultProps = { - checked: false, - className: '' -}; - -export default Radio; diff --git a/src/react/RadioGroup.js b/src/react/RadioGroup.js deleted file mode 100644 index 59eaca7..0000000 --- a/src/react/RadioGroup.js +++ /dev/null @@ -1,40 +0,0 @@ -import React from 'react'; -import Radio from './Radio.js'; - -class RadioGroup extends React.Component { - constructor(props) { - super(props); - this.radios = {}; - } - - render() { - let {name, disabled, title, options, value, className} = this.props; - let dataTestId = this.props['data-test-id']; - return (
    - { title && } -
    - {options.map(option => { - let rName = name + '_' + option.value; - return ( {this.radios[rName] = radio;}} data-test-id={dataTestId + '_' + option.value} - key={rName} value={option.value} - label={option.label} checked={value === option.value} disabled={disabled} - name={name} onChange={() => this.onChange(rName)} /> - );})} -
    -
    ); - } - - onChange(rName) { - let {onChange} = this.props; - let val = this.radios[rName].getValue(); - if (onChange) { - onChange(val); - } - } - - getValue() { - return this.props.value; - } -} - -export default RadioGroup; diff --git a/src/react/SVGIcon.js b/src/react/SVGIcon.js deleted file mode 100644 index 8a5b1ae..0000000 --- a/src/react/SVGIcon.js +++ /dev/null @@ -1,47 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -import iconMap from './utils/iconMap.js'; - -const SVGIcon = ({name, onClick, label, className, iconClassName, labelClassName, labelPosition, color, disabled, ...other}) => { - - let colorClass = (color !== '') ? '__' + color : ''; - let classes = `svg-icon-wrapper ${iconClassName} ${className} ${colorClass} ${onClick ? 'clickable' : ''} ${labelPosition}`; - let camelCasedName = name.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); }); - let IconComponent = iconMap[camelCasedName]; - if (!IconComponent) { - console.error('Icon by the name ' + camelCasedName + ' is missing.'); - } - - return ( -
    - { IconComponent && } - { !IconComponent && Missing Icon } - {label && {label}} -
    - ); - -}; - -SVGIcon.propTypes = { - name: PropTypes.string.isRequired, - onClick: PropTypes.func, - label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]), - labelPosition: PropTypes.string, - className: PropTypes.string, - iconClassName: PropTypes.string, - labelClassName: PropTypes.string, - color: PropTypes.string -}; - -SVGIcon.defaultProps = { - name: '', - label: '', - className: '', - iconClassName: '', - labelClassName: '', - labelPosition: 'bottom', - color: '' -}; - -export default SVGIcon; diff --git a/src/react/Tab.js b/src/react/Tab.js deleted file mode 100644 index 5aa0f16..0000000 --- a/src/react/Tab.js +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; - -class Tab extends React.Component { - render() { - const {activeTab, tabId, title, onClick, disabled, className = ''} = this.props; - const dataTestId = this.props['data-test-id']; - return ( -
  • - {title} -
  • - ); - } -} - -export default Tab; diff --git a/src/react/TabPane.js b/src/react/TabPane.js deleted file mode 100644 index 56a4bf0..0000000 --- a/src/react/TabPane.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; - -class TabPane extends React.Component { - render() { - const {children} = this.props; - return (
    - {children} -
    ); - } -} - -export default TabPane; diff --git a/src/react/Tabs.js b/src/react/Tabs.js deleted file mode 100644 index c502038..0000000 --- a/src/react/Tabs.js +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react'; -import TabPane from './TabPane.js'; - -class Tabs extends React.Component { - render() { - const {type, children = [], activeTab, onTabClick, className} = this.props; - return ( -
    -
      - {children.map(child => React.cloneElement(child, - { - key: child.props.tabId, - onClick: () => onTabClick(child.props.tabId), - activeTab - }))} -
    - - {children.map(child => { - if (child.props.tabId === activeTab) { - return child.props.children; - } - })} - -
    - ); - } -} - -export default Tabs; diff --git a/src/react/Tile.js b/src/react/Tile.js deleted file mode 100644 index f47f88d..0000000 --- a/src/react/Tile.js +++ /dev/null @@ -1,33 +0,0 @@ -import React, {Children} from 'react'; -import PropTypes from 'prop-types'; -import TileInfo from './TileInfo.js'; -import TileFooter from './TileFooter.js'; -import SVGIcon from './SVGIcon.js'; - -const Tile = ({headerText, headerColor, iconName, iconColor, className, onClick, children, dataTestId}) => { - let childrenArr = Children.toArray(children); - return ( -
    -
    {headerText}
    -
    -
    - {iconName && } -
    - {childrenArr.find(e => e.type === TileInfo)} -
    - {childrenArr.find(e => e.type === TileFooter)} -
    - ); -}; - -Tile.propTypes = { - headerText: PropTypes.string, - headerColor: PropTypes.string, - iconName: PropTypes.string, - iconColor: PropTypes.string, - className: PropTypes.string, - onClick: PropTypes.func, - dataTestId: PropTypes.string -}; - -export default Tile; diff --git a/src/react/TileFooter.js b/src/react/TileFooter.js deleted file mode 100644 index 3a56908..0000000 --- a/src/react/TileFooter.js +++ /dev/null @@ -1,10 +0,0 @@ -import React, {Children} from 'react'; -import TileFooterCell from './TileFooterCell.js'; - -const TileFooter = ({children, align}) => ( -
    - {Children.toArray(children).filter(e => e.type === TileFooterCell)} -
    -); - -export default TileFooter; diff --git a/src/react/TileFooterCell.js b/src/react/TileFooterCell.js deleted file mode 100644 index 37e6416..0000000 --- a/src/react/TileFooterCell.js +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react'; - -const TileFooterCell = ({className, children, dataTestId}) => ( - {children} -); - -export default TileFooterCell; diff --git a/src/react/TileInfo.js b/src/react/TileInfo.js deleted file mode 100644 index bda8e74..0000000 --- a/src/react/TileInfo.js +++ /dev/null @@ -1,10 +0,0 @@ -import React, {Children} from 'react'; -import TileInfoLine from './TileInfoLine.js'; - -const TileInfo = ({align, children}) => ( -
    - {Children.toArray(children).filter(e => e.type === TileInfoLine)} -
    -); - -export default TileInfo; diff --git a/src/react/TileInfoLine.js b/src/react/TileInfoLine.js deleted file mode 100644 index 5b0e2c9..0000000 --- a/src/react/TileInfoLine.js +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react'; - -const TileInfoLine = ({type, className, children, dataTestId}) => ( -
    {children}
    -); - -export default TileInfoLine; diff --git a/src/react/index.js b/src/react/index.js deleted file mode 100644 index cbe0161..0000000 --- a/src/react/index.js +++ /dev/null @@ -1,74 +0,0 @@ -import Accordion from './Accordion.js'; -import Button from './Button.js'; -import Checkbox from './Checkbox.js'; -import Checklist from './Checklist.js'; -import Input from './Input.js'; -import Modal from './Modal.js'; -import ModalBody from './ModalBody.js'; -import ModalFooter from './ModalFooter.js'; -import ModalHeader from './ModalHeader.js'; -import ModalTitle from './ModalTitle.js'; -import Panel from './Panel.js'; -import PopupMenu from './PopupMenu.js'; -import Portal from './Portal.js'; -import Radio from './Radio.js'; -import RadioGroup from './RadioGroup.js'; -import SVGIcon from './SVGIcon.js'; -import Tab from './Tab.js'; -import Tabs from './Tabs.js'; -import Tile from './Tile.js'; -import TileInfo from './TileInfo.js'; -import TileInfoLine from './TileInfoLine.js'; -import TileFooter from './TileFooter.js'; -import TileFooterCell from './TileFooterCell.js'; - - -export { Accordion }; -export { Button }; -export { Checkbox }; -export { Checklist }; -export { Input }; -export { Modal }; -export { ModalBody }; -export { ModalFooter }; -export { ModalHeader }; -export { ModalTitle }; -export { Panel }; -export { PopupMenu }; -export { Portal }; -export { Radio }; -export { RadioGroup }; -export { SVGIcon }; -export { Tab }; -export { Tabs }; -export { Tile }; -export { TileInfo }; -export { TileInfoLine }; -export { TileFooter }; -export { TileFooterCell }; - -export default { - Accordion, - Button, - Checkbox, - Checklist, - Input, - Modal, - ModalBody, - ModalFooter, - ModalHeader, - ModalTitle, - Panel, - PopupMenu, - Portal, - Radio, - RadioGroup, - SVGIcon, - Tab, - Tabs, - Tile, - TileInfo, - TileInfoLine, - TileFooter, - TileFooterCell -}; diff --git a/src/style/scss/_common.scss b/src/style/scss/_common.scss deleted file mode 100644 index 7daac20..0000000 --- a/src/style/scss/_common.scss +++ /dev/null @@ -1,7 +0,0 @@ -@import "common/normalize"; -@import "common/variables"; -@import "common/mixins"; -@import "common/typography"; -@import "common/base"; -@import "common/icons"; -@import "common/animation"; diff --git a/src/style/scss/_components.scss b/src/style/scss/_components.scss deleted file mode 100644 index 3b0d28d..0000000 --- a/src/style/scss/_components.scss +++ /dev/null @@ -1,22 +0,0 @@ -@import "../../../components/button/button"; -@import "../../../components/tile/tile"; -@import "../../../components/checkbox/checkbox"; -@import "../../../components/radio/radio"; -@import "../../../components/radioGroup/radioGroup"; -@import "../../../components/tabs/tabs"; -@import "../../../components/icon/icon"; -@import "../../../components/input/input"; -@import "../../../components/dropdown/dropdown"; -@import "../../../components/modal/modal"; -@import "../../../components/menu/menu"; -@import "../../../components/filter-bar/_filter-bar"; -@import "../../../components/search-bar/_search-bar"; -@import "../../../components/checklist/checklist"; -@import "../../../components/autocomplete/autocomplete"; -@import "../../../components/tooltip/tooltip"; -@import "../../../components/tag-cloud/_tag-cloud"; -@import "../../../components/notification/notification"; -@import "../../../components/notifications-container/notifications-container"; -@import "../../../components/accordion/accordion"; -@import "../../../components/panel/panel"; -@import "../../../components/validation/validation"; diff --git a/src/style/scss/angular/_svg_icon.scss b/src/style/scss/angular/_svg_icon.scss deleted file mode 100644 index 16be14b..0000000 --- a/src/style/scss/angular/_svg_icon.scss +++ /dev/null @@ -1,210 +0,0 @@ -@mixin color-icon($primary-color) { - color: $primary-color; - fill: $primary-color; -} - -@mixin color-icon-hover($secondary-color) { - &.clickable { - &:not([disabled]):hover, &:active, &:focus { - @include color-icon($secondary-color); - } - } -} - -@mixin color-icon-label($primary-color) { - @include color-icon($primary-color); - - .svg-icon { - @include color-icon($primary-color); - } -} - -@mixin color-icon-label-hover($secondary-color) { - &.clickable { - &:not([disabled]):hover, &:active, &:focus { - @include color-icon-label($secondary-color); - } - } -} - -.svg-icon { - display: inline-flex; - width: 24px; - height: 24px; - - & > svg { - width: 100%; - height: 100%; - } - - &[disabled] { - opacity: 0.7; - } - - &.mode-primary { - @include color-icon($blue); - @include color-icon-hover($light-blue); - } - - &.mode-secondary { - @include color-icon($gray); - @include color-icon-hover($dark-gray); - } - - &.mode-success { - @include color-icon($green); - } - - &.mode-error { - @include color-icon($red); - } - - &.mode-warning { - @include color-icon($yellow); - } - - &.mode-info { - @include color-icon($text-black); - @include color-icon-hover($dark-blue); - } - - &.size-x_small { - width: 12px; - height: 12px; - } - - &.size-small { - width: 16px; - height: 16px; - } - - &.size-medium { - width: 24px; - height: 24px; - } - - &.size-large { - width: 36px; - height: 36px; - } - - &.size-x_large { - width: 48px; - height: 48px; - } -} - -.svg-icon-wrapper { - display: inline-flex; - justify-content: center; - align-items: center; - - &.svg-icon-label { - } - - &.svg-icon { - } - - &[disabled] { - opacity: 0.7; - } - - &.label-placement-bottom { - flex-direction: column; - .svg-icon-label { - margin-top: 0.25em; - } - } - - &.label-placement-right { - .svg-icon-label { - margin-left: 0.25em; - } - } - - &.label-placement-top { - flex-direction: column-reverse; - .svg-icon-label { - margin-bottom: 0.25em; - } - } - - &.label-placement-left { - flex-direction: row-reverse; - .svg-icon-label { - margin-right: 0.25em; - } - } - - &.mode-primary { - @include color-icon-label($blue); - @include color-icon-label-hover($light-blue); - } - - &.mode-secondary { - @include color-icon-label($gray); - @include color-icon-label-hover($dark-gray); - } - - &.mode-success { - @include color-icon-label($green); - } - - &.mode-error { - @include color-icon-label($red); - } - - &.mode-warning { - @include color-icon-label($yellow); - } - - &.mode-info { - @include color-icon-label($text-black); - @include color-icon-label-hover($dark-blue); - } - - &.size-x_small { - font-size: 8px; - line-height: 10px; - - .svg-icon { - @extend .svg-icon.size-x_small; - } - } - - &.size-small { - font-size: 12px; - line-height: 14px; - - .svg-icon { - @extend .svg-icon.size-small; - } - } - - &.size-medium { - font-size: 16px; - line-height: 20px; - - .svg-icon { - @extend .svg-icon.size-medium; - } - } - - &.size-large { - font-size: 24px; - line-height: 28px; - - .svg-icon { - @extend .svg-icon.size-large; - } - } - - &.size-x_large { - font-size: 34px; - line-height: 40px; - - .svg-icon { - @extend .svg-icon.size-x_large; - } - } -} diff --git a/src/style/scss/angular/_tooltip_custom_style.scss b/src/style/scss/angular/_tooltip_custom_style.scss deleted file mode 100644 index 886b1dc..0000000 --- a/src/style/scss/angular/_tooltip_custom_style.scss +++ /dev/null @@ -1,9 +0,0 @@ -.sdc-custom-tooltip { - background-color: $dark-blue; - border-color: $dark-blue; - border-radius: 10px; - - &:after { - border-color: $dark-blue transparent transparent transparent; - } -} diff --git a/src/style/scss/common/_animation.scss b/src/style/scss/common/_animation.scss deleted file mode 100644 index 659bd3b..0000000 --- a/src/style/scss/common/_animation.scss +++ /dev/null @@ -1,149 +0,0 @@ -/*********************************************************************************** - VERTICAL COLLAPSE-EXPEND TRANSITION ANIMATION PAIR. - - We use the 'transition-vertical-collapse' for the collapse/idle block element, - and the 'transition-vertical-expand' to expend that element. - - -important: The element that will be used for the animation should be - a block element, adn have a content or width and height settings for it to work. -*********************************************************************************/ - -/** -Enable to fold an expended block element -@param $offsetY - The top position from which the drop down should fold - */ -@mixin keyframes-expand-animation($name, $maxHeight, $boxShadow:0 0 12px 0px rgba(0,0,0,.3), $margin:0){ - @keyframes #{$name} { - 0% { - opacity: 0; - max-height: 0; - overflow: hidden; - box-shadow: 0 0 0px 0px rgba(0,0,0,.3); - margin:0; - } - 10% { - opacity: 1; - margin: $margin; - } - 50% { - box-shadow: $boxShadow; - } - 99%{ - max-height:$maxHeight; - - overflow: hidden; - } - 100%{ - opacity: 1; - max-height:$maxHeight; - overflow: auto; - } - } -} - -/** -Enable to expend a folded block element -@param $maxHeight - most of the animation is done over the max-height property - so we have to set the maximum height the expended element can expend to. - */ -@mixin keyframes-collapse-animation($name, $maxHeight, $boxShadow:0 0 12px 0px rgba(0,0,0,.3)){ - @keyframes #{$name} { - 0% { - opacity: 1; - max-height:$maxHeight; - box-shadow: $boxShadow; - overflow: hidden; - } - 40%{ - opacity: 1; - } - 99%{ - opacity: 0; - max-height: 0; - overflow: hidden; - box-shadow: 0 0 0px 0px rgba(0,0,0,.3); - } - 100%{ - opacity: 0; - max-height: 0; - overflow: auto; - } - } -} - -/******************************************************************************** - SIMPLE FADE-IN KEYFRAMES ANIMATION (Used in tooltip for example) - - we use 'mixin-keyframes-fade-in-vertically' to create css @keyframes rule that - we later can use with animation property inside our prefered css rules: - .our_class { - ... - animation: keyframes-fade-in-vertically 1s ease-out; - ... - } -*********************************************************************************/ -@mixin mixin-keyframes-fade-in-vertically($fromRelativeHeight, $keyframesName:keyframes-fade-in-vertically){ - @keyframes #{$keyframesName} { - from { - transform: translateY($fromRelativeHeight); - opacity: 0; - } - to { - transform: translateY(0); - opacity: 1; - } - } -} - -/******************************************************************************** - SIMPLE FADE-OUT KEYFRAMES ANIMATION (Opposite of fade-in mixin above) -*********************************************************************************/ -@mixin mixin-keyframes-fade-out-vertically($toRelativeHeight, $keyframesName:keyframes-fade-out-vertically){ - @keyframes #{$keyframesName} { - from { - transform: translateY(0); - opacity: 1; - } - to { - transform: translateY($toRelativeHeight); - opacity: 0; - } - } -} - - - -/******************************************************************************** - RIPPLE ANIMATION (Used for ripple-click directive) -*********************************************************************************/ -@keyframes ripple-animation { - from { - transform: scale(0,0); - opacity: 1; - } - to { - transform: scale(2,2); - opacity: 0; - } -} - -.sdc-ripple-click__animated { - position:relative; -} -.sdc-ripple-click__animated::before{ - display: inline-block; - position:absolute; - top: 0; - left: 0; - content: ''; - animation: ripple-animation .3s ease-out; - background-color: $blue; - width: 14px; - height: 14px; - border-radius: 50%; - pointer-events: none; - opacity: 0; -} - - - diff --git a/src/style/scss/common/_icons.scss b/src/style/scss/common/_icons.scss deleted file mode 100644 index 00f425d..0000000 --- a/src/style/scss/common/_icons.scss +++ /dev/null @@ -1,19 +0,0 @@ -.sdc-icon { - display: inline-block; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - width: 16px; - height: 16px; -} - -.sdc-icon-locked {background-image: url("data:image/svg+xml;utf8, "); background-repeat: no-repeat;} -.sdc-icon-plus {background-image: url("data:image/svg+xml;utf8,"); background-repeat: no-repeat;} -.sdc-icon-unlocked {background-image: url("data:image/svg+xml;utf8, "); background-repeat: no-repeat;} -.sdc-icon-vendor {background-image: url("data:image/svg+xml;utf8,vendor"); background-repeat: no-repeat;} -.sdc-icon-vlm {background-image: url("data:image/svg+xml;utf8,vlm_new_icon"); background-repeat: no-repeat;} -.sdc-icon-vsp {background-image: url("data:image/svg+xml;utf8,vsp_new_icon"); background-repeat: no-repeat;} - -.sdc-icon-transform{ - transform: rotate(180deg); -} diff --git a/src/style/scss/common/_normalize.scss b/src/style/scss/common/_normalize.scss deleted file mode 100644 index 9375ee9..0000000 --- a/src/style/scss/common/_normalize.scss +++ /dev/null @@ -1,578 +0,0 @@ -/* ========================================================================== - Normalize.scss settings - ========================================================================== */ -/** - * Includes legacy browser support IE6/7 - * - * Set to false if you want to drop support for IE6 and IE7 - */ - -$legacy_browser_support: false !default; - -/* Base - ========================================================================== */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS and IE text size adjust after device orientation change, - * without disabling user zoom. - * 3. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using - * `em` units. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ - @if $legacy_browser_support { - *font-size: 100%; /* 3 */ - } -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ - -audio, -canvas, -progress, -video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ - @if $legacy_browser_support { - *display: inline; - *zoom: 1; - } -} - -/** - * Prevents modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. - */ - -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ - -/** - * Remove the gray background color from active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * Improve readability of focused elements when they are also in an - * active/hover state. - */ - -a { - &:active, &:hover { - outline: 0; - }; -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -@if $legacy_browser_support { - blockquote { - margin: 1em 40px; - } -} - -/** - * Address styling not present in Safari and Chrome. - */ - -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -@if $legacy_browser_support { - h2 { - font-size: 1.5em; - margin: 0.83em 0; - } - - h3 { - font-size: 1.17em; - margin: 1em 0; - } - - h4 { - font-size: 1em; - margin: 1.33em 0; - } - - h5 { - font-size: 0.83em; - margin: 1.67em 0; - } - - h6 { - font-size: 0.67em; - margin: 2.33em 0; - } -} - -/** - * Addresses styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - -@if $legacy_browser_support { - - /** - * Addresses margins set differently in IE 6/7. - */ - - p, - pre { - *margin: 1em 0; - } - - /* - * Addresses CSS quotes not supported in IE 6/7. - */ - - q { - *quotes: none; - } - - /* - * Addresses `quotes` property not supported in Safari 4. - */ - - q:before, - q:after { - content: ''; - content: none; - } -} - -/** - * Address inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -@if $legacy_browser_support { - - /* ========================================================================== - Lists - ========================================================================== */ - - /* - * Addresses margins set differently in IE 6/7. - */ - - dl, - menu, - ol, - ul { - *margin: 1em 0; - } - - dd { - *margin: 0 0 0 40px; - } - - /* - * Addresses paddings set differently in IE 6/7. - */ - - menu, - ol, - ul { - *padding: 0 0 0 40px; - } - - /* - * Corrects list images handled incorrectly in IE 7. - */ - - nav ul, - nav ol { - *list-style: none; - *list-style-image: none; - } - -} - -/* Embedded content - ========================================================================== */ - -/** - * 1. Remove border when inside `a` element in IE 8/9/10. - * 2. Improves image quality when scaled in IE 7. - */ - -img { - border: 0; - @if $legacy_browser_support { - *-ms-interpolation-mode: bicubic; /* 2 */ - } -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ - -/** - * Address margin not present in IE 8/9 and Safari. - */ - -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ - -hr { - box-sizing: content-box; - height: 0; -} - -/** - * Contain overflow in all browsers. - */ - -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - @if $legacy_browser_support { - _font-family: 'courier new', monospace; - } - font-size: 1em; -} - -/* Forms - ========================================================================== */ - -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ - -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - * 4. Improves appearance and consistency in all browsers. - */ - -button, -input, -optgroup, -select, -textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ - @if $legacy_browser_support { - vertical-align: baseline; /* 3 */ - *vertical-align: middle; /* 3 */ - } -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ - -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ - -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - * 4. Removes inner spacing in IE 7 without affecting normal text inputs. - * Known issue: inner spacing remains in IE 6. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ - @if $legacy_browser_support { - *overflow: visible; /* 4 */ - } -} - -/** - * Re-set default cursor for disabled elements. - */ - -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -input { - line-height: normal; -} - -/** - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - * Known issue: excess padding remains in IE 6. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ - @if $legacy_browser_support { - *height: 13px; /* 3 */ - *width: 13px; /* 3 */ - } -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - box-sizing: content-box; /* 2 */ -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - * 3. Corrects text not wrapping in Firefox 3. - * 4. Corrects alignment displayed oddly in IE 6/7. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ - @if $legacy_browser_support { - white-space: normal; /* 3 */ - *margin-left: -7px; /* 4 */ - } -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ - -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ - -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ - -/** - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} diff --git a/src/style/scss/common/_typography.scss b/src/style/scss/common/_typography.scss deleted file mode 100644 index 6fd59cc..0000000 --- a/src/style/scss/common/_typography.scss +++ /dev/null @@ -1,96 +0,0 @@ -$heading-font-1: 28px; -$heading-font-2: 24px; -$heading-font-3: 20px; -$heading-font-4: 16px; -$heading-font-5: 14px; - -$body-font-1: 14px; -$body-font-2: 13px; -$body-font-3: 12px; -$body-font-4: 10px; - -@mixin base-font-regular() { - font-family: OpenSans-Regular, Arial, sans-serif; - font-style: normal; - font-weight: 400; -} - -@mixin base-font-italic(){ - font-family: OpenSans-Italic, OpenSans-Regular, Arial, sans-serif; - font-style: normal; - font-weight: 400; -} - -@mixin base-font-semibold() { - font-family: OpenSans-Semibold, Arial, sans-serif; - font-style: normal; - font-weight: 400; -} - -@mixin font-error() { - color: $red; -} - -@mixin heading-1() { - @include base-font-regular; - font-size: $heading-font-1; -} - -@mixin heading-2() { - @include base-font-regular; - font-size: $heading-font-2; -} - -@mixin heading-3 { - @include base-font-regular; - font-size: $heading-font-3; -} - -@mixin heading-4 { - @include base-font-regular; - font-size: $heading-font-4; -} - -@mixin heading-4-emphasis { - @include base-font-semibold; - font-size: $heading-font-4; -} - -@mixin heading-5 { - @include base-font-semibold; - font-size: $heading-font-5; -} - -@mixin body-1 { - @include base-font-regular; - font-size: $body-font-1; -} - -@mixin body-1-italic { - @include base-font-italic; - font-size: $body-font-1; -} - -@mixin body-2 { - @include base-font-regular; - font-size: $body-font-2; -} - -@mixin body-2-emphasis { - @include base-font-semibold; - font-size: $body-font-2; -} - -@mixin body-3 { - @include base-font-regular; - font-size: $body-font-3; -} -@mixin body-3-emphasis { - @include base-font-semibold; - font-size: $body-font-3; -} - -@mixin body-4 { - @include base-font-regular; - font-size: $body-font-4; -} \ No newline at end of file diff --git a/src/style/scss/common/base.scss b/src/style/scss/common/base.scss deleted file mode 100644 index 02baf81..0000000 --- a/src/style/scss/common/base.scss +++ /dev/null @@ -1,96 +0,0 @@ -html { - font-size: 100%; - height: 100%; -} - -body { - /* scrollbar styling for Internet Explorer */ - scrollbar-face-color: $light-gray; - scrollbar-track-color: $white; - scrollbar-shadow-color:$white; - scrollbar-arrow-color: $gray; - - height: 100%; - @extend %noselect; -} - -/* scrollbar styling for Google Chrome | Safari | Opera */ -::-webkit-scrollbar { - width: 11px; - height: 8px; -} - -::-webkit-scrollbar-track { - background-color: $white; - border: 1px solid $light-gray; - border-top:none; - border-bottom:none; -} - -::-webkit-scrollbar-thumb { - border-radius: 6px; - background-color: $gray; - border: 2px solid rgba(0,0,0,0); - background-clip: padding-box; - - &:hover { - border-width:1px 0px 1px 1px; - } -} - -/* Mozilla Firefox currently doesn't support scrollbar styling */ - -ul { - list-style: none; -} - -h1, h2, h3, h4, h5, h6, ul { - margin: 0; - padding: 0; -} - -input[type='text'] { - padding: 4px; - width: 100%; -} - -input[type="checkbox"] { - width: auto; -} - -input, select, button { - @include body-1; - box-sizing: border-box; -} - -fieldset { - border: none; -} - -fieldset { - label { - display: inline-block; - } -} - -.nav-tabs > li > a:focus, -.btn:focus, -.btn:active:focus, -.btn.active:focus { - outline: none; -} - -.error-message{ - color: $red; - @include body-3; - margin-top: 3px; - &:before{ - content: ""; - display: inline-block; - width: 14px; - height: 14px; - margin-right: 6px; - //not correct icon - background: no-repeat url('data:image/svg+xml;utf8,'); - } -} diff --git a/src/style/scss/common/mixins.scss b/src/style/scss/common/mixins.scss deleted file mode 100644 index c4cb733..0000000 --- a/src/style/scss/common/mixins.scss +++ /dev/null @@ -1,337 +0,0 @@ -/* Colors */ -.sdc-bc-white { background-color: $white; } -.sdc-bc-blue { background-color: $blue; } -.sdc-bc-light-blue { background-color: $light-blue; } -.sdc-bc-lighter-blue { background-color: $lighter-blue; } -.sdc-bc-blue-disabled { background-color: $blue-disabled; } -.sdc-bc-dark-blue { background-color: $dark-blue; } -.sdc-bc-black { background-color: $black; } -.sdc-bc-rich-black { background-color: $rich-black; } -.sdc-bc-text-black { background-color: $text-black; } -.sdc-bc-dark-gray { background-color: $dark-gray; } -.sdc-bc-gray { background-color: $gray; } -.sdc-bc-light-gray { background-color: $light-gray; } -.sdc-bc-silver { background-color: $silver; } -.sdc-bc-light-silver { background-color: $light-silver; } -.sdc-bc-green { background-color: $green; } -.sdc-bc-red { background-color: $red; } -.sdc-bc-disabled-red { background-color: $disabled-red; } -.sdc-bc-light-red { background-color: $light-red; } -.sdc-bc-yellow { background-color: $yellow; } -.sdc-bc-dark-purple { background-color: $dark-purple; } -.sdc-bc-purple { background-color: $purple; } -.sdc-bc-light-purple { background-color: $light-purple; } -.sdc-bc-lighter-silver { background-color: $lighter-silver; } -/* Prefix */ -$box-sizing-prefix: webkit moz spec; -$border-radius-prefix: webkit spec; -$box-shadow-radius-prefix: webkit moz spec; -$text-shadow-radius-prefix: spec; -$text-shadow-prefix: spec; -$box-shadow-prefix: all; -$linear-gradient-prefix: all; -$transition-prefix: webkit moz o spec; -$flex-prefix: webkit spec; -$browserPrefixes: webkit moz o ms; - -@mixin prefix($property, $value, $prefixeslist: 'all') { - @if $prefixeslist == all { - -webkit-#{$property}: $value; - -moz-#{$property}: $value; - -ms-#{$property}: $value; - -o-#{$property}: $value; - #{$property}: $value; - } @else { - @each $prefix in $prefixeslist { - @if $prefix == webkit { - -webkit-#{$property}: $value; - } @else if $prefix == moz { - -moz-#{$property}: $value; - } @else if $prefix == ms { - -ms-#{$property}: $value; - } @else if $prefix == o { - -o-#{$property}: $value; - } @else if $prefix == spec { - #{$property}: $value; - } @else { - @warn "No such prefix: #{$prefix}"; - } - } - } -} - -/* Value Prefix*/ -@mixin value-suffix-with-range($property, $valuesuffix, $from, $to, $prefixeslist) { - - @if $prefixeslist == all { - #{property} : -webkit-#{$valuesuffix}($from, $to); - #{property} : -moz-#{$valuesuffix}($from, $to); - #{property} : -o-#{$valuesuffix}($from, $to); - #{property} : -ms-#{$valuesuffix}($from, $to); - - } @else { - @each $prefix in $prefixeslist { - @if $prefix == webkit { - #{property} : -webkit-#{$valuesuffix}($from, $to); - } @else if $prefix == moz { - #{property} : -moz-#{$valuesuffix}($from, $to); - } @else if $prefix == ms { - #{property} : -ms-#{$valuesuffix}($from, $to); - } @else if $prefix == o { - #{property} : -o-#{$valuesuffix}($from, $to); - } @else { - @warn "No such prefix: #{$prefix}"; - } - } - } -} - -/* Box sizing */ -@mixin box-sizing($value: border-box) { - @include prefix(box-sizing, $value, $box-sizing-prefix); -} - -/* Borders & Shadows */ -@mixin box-shadow($value) { - @include prefix(box-shadow, $value, $box-shadow-radius-prefix); -} - -@mixin text-shadow($value) { - @include prefix(text-shadow, $value, $text-shadow-radius-prefix); -} - -@mixin border-radius($value, $positions: all) { - @if ($positions == all) { - @include prefix(border-radius, $value, $border-radius-prefix); - } @else { - @each $position in $positions { - @include prefix(border-#{$position}-radius, $value, $border-radius-prefix); - } - } - -} - -@mixin transition($value) { - @include prefix(transition, $value, $transition-prefix); -} - -/* Opacity */ -@mixin opacity($alpha) { - $ie-opacity: round($alpha * 100); - opacity: $alpha; - filter: unquote("alpha(opacity = #{$ie-opacity})"); -} - -/* Ellipsis */ -@mixin ellipsis($width: 100%, $display: inline-block, $max-width: none) { - overflow: hidden; - text-overflow: ellipsis; - width: $width; - white-space: nowrap; - display: $display; - max-width: $max-width; -} - -@mixin multiline-ellipsis($lineHeight: 1.3em, $lineCount: 2, $bgColor: $white){ - overflow: hidden; - position: relative; - line-height: $lineHeight; - max-height: $lineHeight * $lineCount; - text-align: justify; - // margin-right: -1em; - padding-right: 1em; - &:before { - content: '...'; - position: absolute; - right: 3px; - bottom: 0; - } - &:after { - content: ''; - position: absolute; - right: 0; - width: 1em; - height: 1em; - margin-top: 0.2em; - background: $bgColor; - } -} - -@mixin gradient($from, $to) { - /* fallback/image non-cover color */ - background-color: $from; - background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from($from), to($to)); - @include value-suffix-with-range(background-color, linear-gradient, $from, $to, $linear-gradient-prefix); -} - -/* Vertical placement of multuple lines of text */ -@mixin vertical-text($height) { - position: absolute; - top: 50%; - margin-top: -$height/2; -} - -@mixin text-vertical-align($align: middle) { - display: table; - width: 100%; - - & > * { - vertical-align: $align; - display: table-cell; - } -} - -@mixin center-element($width) { - width: $width; - margin-left: auto; - margin-right: auto; -} - -@mixin center-content($width) { - & > * { - @include center-element($width); - } -} - -/* transform-rotate */ -// @mixin -// Defines a 2D rotation, the angle is specified in the parameter -// @param -// $deg - angle in degrees -@mixin transform-rotate($deg) { - transform: rotate($deg + deg); /* IE10 and Mozilla */ - -ms-transform: rotate($deg + deg); /* IE 9 */ - -webkit-transform: rotate($deg + deg); /* Safari and Chrome */ -} - -/* transform-translate */ -// @mixin -// Defines a 2D rotation, the angle is specified in the parameter -// @param -// $deg - angle in degrees -@mixin transform-translate($x, $y) { - transform: translate($x, $y); /* IE10 and Mozilla */ - -ms-transform: translate($x, $y); /* IE 9 */ - -webkit-transform: translate($x, $y); /* Safari and Chrome */ -} - -/* transform-scale */ -// @mixin -// Defines a 2D scale transformation, changing the elements width and height -// @param -// $width - width -// @param -// $height - height -@mixin transform-scale($width, $height) { - transform: scale($width, $height); /* IE10 and Mozilla */ - -ms-transform: scale($width, $height); /* IE 9 */ - -webkit-transform: scale($width, $height); /* Safari and Chrome */ -} - -@mixin scrollable() { - ::-webkit-scrollbar { - width: 8px; - } -} - -@mixin create-circle($size, $bgcolor, $content) { - border-radius: 50%; - width: $size; - height: $size; - background: $bgcolor; - border: 3px solid $bgcolor; - &:after { - content: $content; - position: relative; - left: 9px; - top: 9px; - @include base-font-semibold; - font-size: $body-font-1; - } -} - -/**/ -@mixin keyframe-animation($animationType, $properties, $fromValue, $toValue) { - - @keyframes #{$animationType} { - from { - $startIndex: 1; - @each $property in $properties { - #{$property}: nth($fromValue, $startIndex); - $startIndex: $startIndex + 1; - } - } - to { - $startIndex: 1; - @each $property in $properties { - #{$property}: nth($toValue, $startIndex); - $startIndex: $startIndex + 1; - } - } - } - @-moz-keyframes #{$animationType}{ - /* Firefox */ - from { - $startIndex: 1; - @each $property in $properties { - #{$property}: nth($fromValue, $startIndex); - $startIndex: $startIndex + 1; - } - } - to { - $startIndex: 1; - @each $property in $properties { - #{$property}: nth($toValue, $startIndex); - $startIndex: $startIndex + 1; - } - } - } - @-webkit-keyframes #{$animationType} { - /* Safari and Chrome */ - from { - $startIndex: 1; - @each $property in $properties { - #{$property}: nth($fromValue, $startIndex); - $startIndex: $startIndex + 1; - } - } - to { - $startIndex: 1; - @each $property in $properties { - #{$property}: nth($toValue, $startIndex); - $startIndex: $startIndex + 1; - } - } - } - @-o-keyframes #{$animationType} { - /* Opera */ - from { - $startIndex: 1; - @each $property in $properties { - #{$property}: nth($fromValue, $startIndex); - $startIndex: $startIndex + 1; - } - } - to { - $startIndex: 1; - @each $property in $properties { - #{$property}: nth($toValue, $startIndex); - $startIndex: $startIndex + 1; - } - } - } -} - - -/**/ -@mixin border-shadow($xShadow: 0.545px, $yShadow: 0.839px, $blur: 4px, $spread: 0, $color: $light-gray, $opacity: 0.2) { - @include box-shadow($xShadow $yShadow $blur $spread rgba($color, $opacity)); -} - -%noselect { - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} diff --git a/src/style/scss/common/variables.scss b/src/style/scss/common/variables.scss deleted file mode 100644 index 38eded4..0000000 --- a/src/style/scss/common/variables.scss +++ /dev/null @@ -1,35 +0,0 @@ -// Colors -$black: #000000; -$rich-black: #323943; -$text-black: #191919; -$blue: #009fdb; -$dark-blue: #0568ae; -$light-blue: #1eb9f3; -$lighter-blue: #e6f6fb; -$blue-disabled: #9dd9ef; -$red: #cf2a2a; -$light-red:#ed4141; -$disabled-red:#f4adad; -$purple: #9063cd; -$dark-purple: #702f8a; -$yellow: #ffb81c; -$green: #4ca90c; -$gray: #959595; -$dark-gray: #5a5a5a; -$light-gray: #d2d2d2; -$light-silver: #f2f2f2; -$silver: #eaeaea; - - -$light-purple: #caa2dd; -$lighter-silver: #f8f8f8; -$white: #ffffff; - -$scroll-bar-color: $text-black; - -// Button Sizes -$btn-extra-small: 90px; -$btn-small: 110px; -$btn-medium: 140px; -$btn-large: 180px; -$btn-default: auto; diff --git a/src/style/scss/style.scss b/src/style/scss/style.scss deleted file mode 100644 index 5512776..0000000 --- a/src/style/scss/style.scss +++ /dev/null @@ -1,6 +0,0 @@ -@import "common"; -@import "components"; - -// for angular -@import "angular/svg_icon"; -@import "angular/tooltip_custom_style"; diff --git a/src/style/scss/themes/1802/_components.scss b/src/style/scss/themes/1802/_components.scss deleted file mode 100644 index 6800005..0000000 --- a/src/style/scss/themes/1802/_components.scss +++ /dev/null @@ -1,23 +0,0 @@ -/* Deafult theme */ -@import "../../../../../components/tile/tile"; -@import "../../../../../components/checkbox/checkbox"; -@import "../../../../../components/radio/radio"; -@import "../../../../../components/radioGroup/radioGroup"; -@import "../../../../../components/icon/icon"; -@import "../../../../../components/input/input"; -@import "../../../../../components/dropdown/dropdown"; -@import "../../../../../components/menu/menu"; -@import "../../../../../components/filter-bar/_filter-bar"; -@import "../../../../../components/search-bar/_search-bar"; -@import "../../../../../components/checklist/checklist"; -@import "../../../../../components/autocomplete/autocomplete"; -@import "../../../../../components/tooltip/tooltip"; -@import "../../../../../components/tag-cloud/_tag-cloud"; -@import "../../../../../components/notification/notification"; -@import "../../../../../components/notifications-container/notifications-container"; -@import "../../../../../components/validation/validation"; - -/* 1802 theme */ -@import "button"; -@import "modal"; -@import "tabs"; diff --git a/src/style/scss/themes/1802/button.scss b/src/style/scss/themes/1802/button.scss deleted file mode 100644 index 05d91d5..0000000 --- a/src/style/scss/themes/1802/button.scss +++ /dev/null @@ -1,148 +0,0 @@ -.sdc-button { - @include box-sizing; - display: inline-block; - - outline: none; - border-radius: 2px; - padding: 0 16px; - - height: 32px; - line-height: 32px; - width: 120px; - min-width: 90px; - - cursor: pointer; - text-align: center; - @include body-1; - &:disabled { - cursor: default; - } - - // Primary button - &.sdc-button__primary { - border: none; - background-color: $blue; - color: $white; - - &:not(:disabled) { - &:hover, &:active { - background-color: $light-blue; - } - &:focus:not(:active) { - border: 0.5px solid $white; - background-color: $light-blue; - box-shadow: 0px 0px 0px 1px $light-blue; - } - } - - &:disabled{ - background: $blue-disabled; - } - } - - // Secondary button - &.sdc-button__secondary { - border: 1px solid $light-gray; - background-color: transparent; - color: $text-black; - - &:not(:disabled) { - &:hover, &:active { - background-color: transparent; - color:$text-black; - border: 1px solid $gray; - } - &:focus:not(:active) { - color: $text-black; - box-shadow: inset 0px 0px 0px 0px $light-gray, 0px 0px 0px 1px $gray; - } - } - - &:disabled { - color: $blue-disabled; - border-color: $blue-disabled; - } - } - - // Link button - &.sdc-button__link { - background-color: transparent; - color: $blue; - fill: $blue; - border: none; - - &:not(:disabled) { - &:hover, &:active { - color: $light-blue; - } - &:focus:not(:active) { - border: 1px solid $dark-blue; - color: $light-blue; - } - } - - &:disabled{ - color: $blue-disabled; - } - } - - - // alert button - &.sdc-button__alert { - border: none; - background-color: $red; - color: $white; - - &:not(:disabled) { - &:hover, &:active { - background-color: $light-red; - } - &:focus:not(:active) { - border: 0.5px solid $white; - background-color: $light-red; - box-shadow: 0px 0px 0px 1px $light-red; - } - } - - &:disabled{ - background: $disabled-red; - } - } - - - /*** Sizes ***/ - &.btn-large{ - width: $btn-large; - } - - &.btn-medium{ - width: $btn-medium; - } - - &.btn-small{ - width: $btn-small; - } - - &.btn-x-small{ - width: $btn-extra-small; - } - - &.btn-default{ - width: $btn-default; - } - - /*** Buttons with icons ***/ - .sdc-icon-right{ - margin-left: 15px; - } - - .sdc-icon-left{ - margin-right: 15px; - } - - svg { - display: inline-block; - vertical-align: middle; - } -} - diff --git a/src/style/scss/themes/1802/modal.scss b/src/style/scss/themes/1802/modal.scss deleted file mode 100644 index de99d52..0000000 --- a/src/style/scss/themes/1802/modal.scss +++ /dev/null @@ -1,193 +0,0 @@ - -.sdc-modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - - overflow: auto; - margin: auto; - display: flex; - align-items: center; - z-index: 1001; - - - svg path { - fill: inherit; - } - - .sdc-modal__wrapper { - @include body-1; - background: $white; - width: 100%; - - @include box-shadow(0 0 4px 0 rgba(0,0,0,0.50)); - color: $text-black; - display: flex; - flex-direction: column; - &.sdc-modal-type-info { - border-top: solid 6px $blue; - .sdc-modal__svg-use { - fill: $blue; - } - .svg-icon { - &.__errorCircle { - width: 30px; - height: 30px; - } - } - } - &.sdc-modal-type-alert { - border-top: solid 6px $yellow; - .sdc-modal__svg-use { - fill: $yellow; - } - .svg-icon { - &.__exclamationTriangleLine { - width: 30px; - height: 30px; - } - } - } - &.sdc-modal-type-error { - border-top: solid 6px $red; - .sdc-modal__svg-use { - fill: $red; - } - .svg-icon { - &.__error { - width: 30px; - height: 30px; - } - } - } - &.sdc-modal-type-custom { - padding: 0 30px; - border-radius: 4px; - - .sdc-custom__header { - @include box-sizing; - color: $dark-gray; - height: 50px; - border-bottom: solid 3px $blue; - padding: 0; - - .title { - @include heading-3; - color: $dark-gray; - } - - .sdc-modal__close-button { - margin-top: 0px; - width: 20px; - height: 14px; - } - .sdc-modal__close-button-svg { - width: 20px; - height: 20px; - .sdc-modal__svg-use { - fill: $white; - } - .svg-icon { - height: 14px; - width: 14px; - fill: $white; - } - } - } - .sdc-modal__content { - padding: 20px 40px; - } - } - .sdc-modal__header { - padding: 0px 10px 8px 14px; - display: flex; - justify-content: space-between; - text-align: left; - .sdc-modal__icon { - padding: 20px 12px 0px 6px; - } - - .title { - @include heading-2; - flex: 1 1 auto; - color: $text-black; - padding-top: 19px; - } - - .sdc-modal__close-button { - order:3; - width: 14px; - height: 14px; - margin-top:10px; - cursor: pointer; - .sdc-modal__svg-use { - fill: $black; - } - } - } - .sdc-modal__content { - order:2; - padding-left: 63px; - padding-right: 68px; - padding-bottom: 26px; - } - - .sdc-modal__footer { - order:3; - background-color: $light-silver; - border-top: solid 1px $silver; - padding: 17px 30px; - display: flex; - justify-content: flex-end; - margin: 0 -30px; - button{ - margin-left: 10px; - } - } - } -} - -.modal-background { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: $black; - opacity: 0.70; - z-index: 1000; - - &.show { - z-index: 1000; - opacity: 0.70; - transition: opacity .3s ease, z-index .3s; - } - &.hide { - z-index: -1; - opacity: 0; - transition: opacity .35s ease, z-index .35s; - } -} - -.xl { - width: 1200px; -} - -.l { - width: 875px; -} - -.md { - width: 650px; -} - -.sm { - width: 500px; -} - -.xsm { - width: 432px; -} - diff --git a/src/style/scss/themes/1802/style.scss b/src/style/scss/themes/1802/style.scss deleted file mode 100644 index ae314d8..0000000 --- a/src/style/scss/themes/1802/style.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import "../../common"; -@import "components"; - -// for angular -@import "../../angular/svg_icon"; diff --git a/src/style/scss/themes/1802/tabs.scss b/src/style/scss/themes/1802/tabs.scss deleted file mode 100644 index 70ee4cb..0000000 --- a/src/style/scss/themes/1802/tabs.scss +++ /dev/null @@ -1,39 +0,0 @@ -.sdc-tabs { - .sdc-tab { - background-color: $white; - border: 1px solid $silver; - border-left: none; - display: inline-block; - height: 36px; - text-align: center; - cursor: pointer; - padding: 2px 10px 0 10px; - margin: 0; - - - &:first-child { - border-left: 1px solid $silver; - } - &.sdc-tab-active { - background-color: $silver; - } - &[disabled] { - opacity: 0.3; - cursor: default; - } - } - &.sdc-tabs-header { - .sdc-tab { - @include heading-2; - } - } - &.sdc-tabs-menu { - .sdc-tab { - @include body-1; - padding: 0px 10px 4px 10px; - } - } - .sdc-tab-content { - margin-top: 30px; - } -} diff --git a/stories/README.md b/stories/README.md deleted file mode 100644 index 7ed8e9d..0000000 --- a/stories/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Storybook - -This is the part of the repo that is responsible for defining and building the stories for storybook. Take a look at the following guides for your assistance: - -## Adding a new component to storybook -See [wiki page](https://github.com/onap-sdc/sdc-ui/wiki/Adding-a-new-component-to-storybook). - -## Deploying storybook to a fork's github pages -See [wiki page](https://github.com/onap-sdc/sdc-ui/wiki/Deploying-storybook-to-a-fork's-github-pages). diff --git a/stories/angular/accordion.stories.ts b/stories/angular/accordion.stories.ts new file mode 100644 index 0000000..20209eb --- /dev/null +++ b/stories/angular/accordion.stories.ts @@ -0,0 +1,154 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { AccordionComponent } from '../../src/angular/components'; +import { SvgIconModule } from '../../src/angular/svg-icon/svg-icon.module'; + +const positions = ['right', 'left']; + +storiesOf('Accordion', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [AccordionComponent], + imports: [ + SvgIconModule + ] + }) + ) + .add('Simple accordion', () => { + const _title = text('title', 'Accordion header'); + + return { + props: { + _title + }, + template: ` + +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce consequat dictum porttitor. + Nam facilisis, dui nec maximus facilisis, nisl eros mattis arcu, nec pharetra nisl nisi vitae metus. + Vestibulum urna nunc, fringilla nec imperdiet a, varius hendrerit neque. Aliquam pulvinar turpis enim, ac hendrerit dui blandit eu. + Curabitur ut mollis arcu, ac iaculis turpis. Pellentesque lobortis leo justo. Morbi commodo cursus dignissim. + Nam orci diam, mattis eget leo vel, tincidunt interdum dui. + Donec dapibus mauris non sapien ornare, non pharetra mi commodo. +

    +
    + ` + }}) + + .add('Accordion arrow position', () => { + const _title = text('title', 'Accordion header'); + const _arrow_direction = select('arrow-direction', positions, 'left', ''); + + return { + props: { + _title, _arrow_direction + }, + template: ` + +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce consequat dictum porttitor. + Nam facilisis, dui nec maximus facilisis, nisl eros mattis arcu, nec pharetra nisl nisi vitae metus. + Vestibulum urna nunc, fringilla nec imperdiet a, varius hendrerit neque. Aliquam pulvinar turpis enim, ac hendrerit dui blandit eu. + Curabitur ut mollis arcu, ac iaculis turpis. Pellentesque lobortis leo justo. Morbi commodo cursus dignissim. + Nam orci diam, mattis eget leo vel, tincidunt interdum dui. + Donec dapibus mauris non sapien ornare, non pharetra mi commodo. +

    +
    + ` + }}) + + .add('Accordion custom class', () => { + const _title = text('title', 'Accordion header'); + const _arrow_direction = select('arrow-direction', positions, 'left', ''); + const _css_class = text('css_class', 'sdc-accordion-custom-class'); + + return { + props: { + _title, _arrow_direction, _css_class + }, + template: ` + +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce consequat dictum porttitor. + Nam facilisis, dui nec maximus facilisis, nisl eros mattis arcu, nec pharetra nisl nisi vitae metus. + Vestibulum urna nunc, fringilla nec imperdiet a, varius hendrerit neque. Aliquam pulvinar turpis enim, ac hendrerit dui blandit eu. + Curabitur ut mollis arcu, ac iaculis turpis. Pellentesque lobortis leo justo. Morbi commodo cursus dignissim. + Nam orci diam, mattis eget leo vel, tincidunt interdum dui. + Donec dapibus mauris non sapien ornare, non pharetra mi commodo. +

    +
    + ` + }}) + + .add('Accordion open', () => { + const _title = text('title', 'Accordion header'); + const _arrow_direction = select('arrow-direction', positions, 'left', ''); + const _css_class = text('css_class', 'custom-class'); + const _open = boolean('open', true, ''); + + return { + props: { + _title, _arrow_direction, _css_class, _open + }, + template: ` + +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce consequat dictum porttitor. + Nam facilisis, dui nec maximus facilisis, nisl eros mattis arcu, nec pharetra nisl nisi vitae metus. + Vestibulum urna nunc, fringilla nec imperdiet a, varius hendrerit neque. Aliquam pulvinar turpis enim, ac hendrerit dui blandit eu. + Curabitur ut mollis arcu, ac iaculis turpis. Pellentesque lobortis leo justo. Morbi commodo cursus dignissim. + Nam orci diam, mattis eget leo vel, tincidunt interdum dui. + Donec dapibus mauris non sapien ornare, non pharetra mi commodo. +

    +
    + ` + }}) + + .add('Accordion full', () => { + const _title = text('title', 'Accordion header'); + const _arrow_direction = select('arrow-direction', positions, 'left', ''); + const _css_class = text('css_class', 'custom-class'); + const _open = boolean('open', true, ''); + const _accordionChanged = text('(accordionChanged)', 'Accoridon changed event (see in action tab), '); + + return { + props: { + accordionChanged: action('Accordion changed event '), + _title, _arrow_direction, _css_class, _open + }, + template: ` + +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce consequat dictum porttitor. + Nam facilisis, dui nec maximus facilisis, nisl eros mattis arcu, nec pharetra nisl nisi vitae metus. + Vestibulum urna nunc, fringilla nec imperdiet a, varius hendrerit neque. Aliquam pulvinar turpis enim, ac hendrerit dui blandit eu. + Curabitur ut mollis arcu, ac iaculis turpis. Pellentesque lobortis leo justo. Morbi commodo cursus dignissim. + Nam orci diam, mattis eget leo vel, tincidunt interdum dui. + Donec dapibus mauris non sapien ornare, non pharetra mi commodo. +

    +
    + ` + }}); diff --git a/stories/angular/autocomplete.stories.ts b/stories/angular/autocomplete.stories.ts new file mode 100644 index 0000000..89f1c23 --- /dev/null +++ b/stories/angular/autocomplete.stories.ts @@ -0,0 +1,127 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button, object } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { AutoCompleteComponent, AutocompletePipe } from '../../src/angular/components'; +import { FilterBarModule } from '../../src/angular/filterbar/filter-bar.module'; +import { HttpClient, HttpHandler } from '@angular/common/http'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; + +storiesOf('AutoComplete', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + AutoCompleteComponent + ], + imports: [ + FilterBarModule, + BrowserAnimationsModule + ], + providers: [ + HttpClient, HttpHandler, AutocompletePipe + ] + }) + ) + .add('Simple data', () => { + const sampleData = ['red', 'yellow', 'orange', 'green', 'white', 'black']; + + const _label = text('label', 'Simple data (Array)'); + const _placeholder = text('placeholder', 'Simple data'); + const _data = array('data', sampleData, ','); + const _event = text('(itemSelected)', 'Event thrown when item selected'); + + return { + props: { + itemSelected: action('Item was selected '), + _label, _placeholder, _data, _event + }, + template: ` +
    +
    Start writing name of color to see autocomplete in action
    + + +
    + ` + } + }, + { notes: `

    Simple data

    + Using simple data (array), do not need to pass dataSchema. + ` + } +).add('Complex data', () => { + const sampleData = [ + {id: 'redId', color: 'red'}, + {id: 'yellowId', color: 'yellow'}, + {id: 'orangeId', color: 'orange'}, + {id: 'greenId', color: 'green'}, + {id: 'whiteId', color: 'white'}, + {id: 'blackId', color: 'black'} + ]; + const sampleSchema = {key: 'id', value: 'color'}; + + const _label = text('label', 'Complex data (Object)'); + const _placeholder = text('placeholder', 'Complex data'); + const _data = array('*data', sampleData, ','); + const _dataSchema = object('dataSchema', sampleSchema); + const _event = text('*(itemSelected)', 'Event thrown when item selected'); + + return { + props: { + itemSelected: action('Item was selected '), + _label, _placeholder, _data, _dataSchema, _event + }, + template: ` + + + ` + } + }, + { notes: `

    Complex data

    + Using complex data (object), need to pass also dataSchema. + ` + } +).add('Backend data', () => { + const sampleSchema = {key: 'id', value: 'color'}; + + const _label = text('label', 'Complex data (Object)'); + const _placeholder = text('placeholder', 'Complex data'); + const _dataUrl = text('dataUrl', '../angular/helpers/autocomplete-server-mock.json'); + const _dataSchema = object('dataSchema', sampleSchema); + const _event = text('*(itemSelected)', 'Event thrown when item selected'); + + return { + props: { + itemSelected: action('Item was selected '), + _label, _placeholder, _dataSchema, _dataUrl, _event + }, + template: ` + + + ` + } + }, + { notes: `

    Data from server

    + Example of auto complete with complex data from server. (In this example the data is not really filtered, because it is from mock data). + ` + } +); diff --git a/stories/angular/button.stories.ts b/stories/angular/button.stories.ts new file mode 100644 index 0000000..582abbf --- /dev/null +++ b/stories/angular/button.stories.ts @@ -0,0 +1,229 @@ +import { storiesOf } from '@storybook/angular'; +import { ButtonComponent } from '../../src/angular/buttons/button.component'; +import { ButtonFileOpenerComponent } from '../../src/angular/buttons/button-file-opener.component'; +import { moduleMetadata } from '@storybook/angular'; +import { SvgIconModule } from '../../src/angular/svg-icon/svg-icon.module'; +import { action } from '@storybook/addon-actions'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; + +const buttonTypes = ['primary', 'secondary', 'link', 'success', 'error', 'warning', 'info']; +const buttonSizes = ['large', 'medium', 'small', 'x-small', 'default']; +const positions = ['right', 'left']; +const iconsNames = ['settings-o', 'plus-circle-o', 'plus-circle', 'caret2-right-circle-o']; + +/** + * There is strange behaviour with Storybook storyname, if the name is string 'aaaa', then all stories + * need to be string, you can not do const aaaa = 'aaaa' and pass the parameter aaaa as storyname. + */ +const storiesNames = { + defaultButton: 'Default button', + typesButtons: 'Button ', + withIcon: 'Button with icon', + withSpinner: 'Button with spinner', + buttonFileOpener: 'Button file opener' +} + +let stories = storiesOf('Form elements|Buttons', module) +.addDecorator(withKnobs) +.addDecorator(withNotes) +.addDecorator( + moduleMetadata({ + declarations: [ + ButtonComponent, + ButtonFileOpenerComponent + ], + imports: [ + SvgIconModule + ] + }) +); + +stories.add(storiesNames.defaultButton, () => { + + const _text1 = text('text', 'Default button long text'); + const _testId1 = text('testId', 'button-test-id-1'); + const click1 = text('(click)', 'call back function'); + + const _text2 = text('text', 'Sample button'); + const _testId2 = text('testId', 'button-test-id-2'); + const click2 = text('(click)', 'call back function'); + + return { + props: { + buttonClick1: action('Button 1 was clicked'), + buttonClick2: action('Button 2 was clicked'), + _text1, _testId1, + _text2, _testId2 + }, + template: ` +
    +
    With large text
    + + + +
    With small text
    + + +
    + ` + } + }, + { notes: `

    Default button

    + Does not need to supply type or size. + The size of the button set to 'default' so it will shrink or expand according to the content.` + } +); + +buttonTypes.forEach((buttonType) => { + + stories.add(storiesNames.typesButtons + buttonType, () => { + + const _text = text('text', buttonType); + const _type = text('type', buttonType); + // Do not allow this, because we are showing each button type as different story. + // const _type = select('type', buttonTypes, buttonType, ''); + const _testId = text('testId', 'button-test-id-' + buttonType); + // No need to add the size to prop, not using it + const _size = text('size', 'Avilable sizes: ' + buttonSizes); + const _disabled = boolean('disabled', true); + const click = text('(click)', 'call back function'); + + return { + props: { + buttonClick: action('Button was clicked (see in action logger tab)'), + _text, _testId, _type, _disabled + }, + template: + `
    ` + + buttonSizes.map((currentSize) => ` +
    +
    ${currentSize} size
    + + +
    + `).join('\n') + + `
    +
    ` + .concat( + buttonSizes.map((currentSize) => ` +
    + + +
    + `).join('\n') + + '
    ' + ) + }; + + }); +}); + +stories.add(storiesNames.withIcon, () => { + + const _text = text('text', 'Sample'); + const _testId = text('testId', 'button-test-id-with-icon'); + const _type = select('type', buttonTypes, 'primary', ''); + const _icon_position = select('icon_position', positions, 'left', ''); + const _icon_name = select('icon_name', iconsNames, 'settings-o', ''); + const click = text('(click)', 'call back function'); + + return { + props: { + buttonClick: action('Button was clicked (see in action logger tab)'), + _text, _testId, _type, _icon_position, _icon_name + }, + template: ` + + + ` + }; + +}); + +stories.add(storiesNames.withSpinner, () => { + + const _text = text('text', 'Spinner button'); + const _testId = text('testId', 'button-test-id-with-icon'); + const _type = select('type', buttonTypes, 'primary', ''); + const _show_spinner = boolean('show_spinner', false, ''); + const _spinner_position = select('spinner_position', positions, 'right', ''); + const click = text('(click)', 'call back function'); + + return { + props: { + buttonClick: (button) => { + button.show_spinner = true; + setTimeout(() => {button.show_spinner = false},2000); + action('Button was clicked (see in action logger tab)'); + }, + _text, _testId, _type, _show_spinner, _spinner_position + }, + template: ` + + + ` + }; + }); + + +stories.add(storiesNames.buttonFileOpener, () => { + + const _text = text('text', 'Open file'); + const _testId = text('testId', 'button-test-id-file-opener'); + const _type = select('type', buttonTypes, 'primary', ''); + const _extensions = text('extensions', 'ts,js'); + const fileUpload = text('(fileUpload)', 'call back function when file upload'); + + return { + props: { + fileUpload: action('File updaload action'), + _text, _testId, _type, _extensions + }, + template: ` + + + ` + }; + }); diff --git a/stories/angular/checkbox.stories.ts b/stories/angular/checkbox.stories.ts new file mode 100644 index 0000000..c02e2e2 --- /dev/null +++ b/stories/angular/checkbox.stories.ts @@ -0,0 +1,50 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { CheckboxComponent } from '../../src/angular/components'; +import { RippleClickAnimationDirective } from '../../src/angular/animations/ripple-click.animation.directive'; + +storiesOf('Form elements|Checkbox', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + CheckboxComponent, + RippleClickAnimationDirective + ], + imports: [ + ] + }) + ) + .add('Simple checkbox', () => { + const _label = text('label', 'Simple checkbox'); + const _checked = boolean('checked', false); + const _disabled = boolean('disabled', false); + const _testId = text('testId', 'smalpe-test-id'); + const _checkedChange = text('*(checkedChange)', 'Event throws when checked changed, see in Action logger tab.'); + + return { + props: { + checkedChange: action('Checkbox value changed '), + _label, _checked, _disabled, _testId + }, + template: ` + + + ` + } + }, + { notes: `

    Checkbox

    + Full example of checkbox. + Use the KNOBS tab to change values.` + } +) diff --git a/stories/angular/checklist.stories.ts b/stories/angular/checklist.stories.ts new file mode 100644 index 0000000..92e0ada --- /dev/null +++ b/stories/angular/checklist.stories.ts @@ -0,0 +1,51 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button, object } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { ChecklistComponent, CheckboxComponent } from '../../src/angular/components'; +import { ChecklistModel, ChecklistItemModel } from '../../src/angular/common'; +import { RippleAnimationAction } from '../../src/angular/animations/ripple-click.animation.directive'; + +const checkListModelExample: ChecklistModel = new ChecklistModel([],[ + new ChecklistItemModel('apple'), + new ChecklistItemModel('banana'), + new ChecklistItemModel('orange') +]); + +storiesOf('Form elements|Checklist', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + ChecklistComponent, + RippleAnimationAction, + CheckboxComponent + ], + imports: [ + ] + }) + ) + .add('Simple checklist', () => { + //const _checklistModel = object('checklistModel', checkListModelExample); + const _checkedChange = text('*(checkedChange)', 'Event throws when checklist changed, see in Action logger tab.'); + + return { + props: { + checkedChange: action('Checklist changed '), + checkListModelExample + }, + template: ` + + (checkedChange)="checkedChange($event)" + + ` + } + }, + { notes: `

    Checklist

    + Full example of checklist. + Use the KNOBS tab to change values.` + } +) diff --git a/stories/angular/colors.stories.ts b/stories/angular/colors.stories.ts new file mode 100644 index 0000000..5fc9085 --- /dev/null +++ b/stories/angular/colors.stories.ts @@ -0,0 +1,81 @@ +import { storiesOf } from '@storybook/angular'; +import { moduleMetadata } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button, object } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { ColorsTable } from './helpers/colors-table.component'; +import { KeysPipe } from './helpers/keys.pipe'; + +const colorMap = [ + { + 'darker-blue': '#323943', + 'dark-blue': '#0568ae', + 'blue': '#009fdb', + 'light-blue': '#1eb9f3', + 'disabled-blue': '#9dd9ef', + 'lighter-blue': '#e6f6fb', + }, + { + 'green': '#4ca90c', + 'light-green': '#56972b', + 'disabled-green': '#a8e083', + }, + { + 'red': '#cf2a2a', + 'light-red': '#ed4141', + 'disabled-red': '#f4adad', + }, + { + 'yellow': '#ffb81c', + 'light-yellow': '#dbbe7e', + 'disabled-yellow': '#aa8432', + }, + { + 'dark-purple': '#702f8a', + 'purple': '#9063cd', + 'light-purple': '#caa2dd', + }, + { + 'dark-gray': '#5a5a5a', + 'gray': '#959595', + 'light-gray': '#d2d2d2', + }, + { + 'silver': '#eaeaea', + 'light-silver': '#f2f2f2', + 'lighter-silver': '#f8f8f8', + }, + { + 'black': '#000000', + 'text-black': '#191919', + 'white': '#ffffff', + } +]; + +storiesOf('Typography|Colors', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + ColorsTable, + KeysPipe + ], + imports: [ + ] + }) + ) + .add('Colors', () => { + + return { + props: { + colorMap + }, + template: ` + + ` + } + }, + { notes: `

    Colors

    + List of supported colors.` + } +) diff --git a/stories/angular/dropdown.stories.ts b/stories/angular/dropdown.stories.ts new file mode 100644 index 0000000..6b4a05a --- /dev/null +++ b/stories/angular/dropdown.stories.ts @@ -0,0 +1,297 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button, object } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { CheckboxComponent, DropDownComponent, SvgIconComponent } from '../../src/angular/components'; +import { RippleClickAnimationDirective } from '../../src/angular/animations/ripple-click.animation.directive'; +import { DropDownTypes, IDropDownOption, DropDownOptionType } from '../../src/angular/form-elements/dropdown/dropdown-models'; +import { DropDownTriggerDirective } from '../../src/angular/form-elements/dropdown/dropdown-trigger.directive'; + +const dropdownTypes = Object.values(DropDownTypes); +const options1: IDropDownOption[] = [ + { + label: 'First Option Label', + value: 'firstOptionValue', + }, + { + label: 'Second Option Label', + value: 'secondOptionValue', + }, + { + label: 'Third Option Label', + value: 'thirdOptionValue', + type: DropDownOptionType.Simple + } +]; +const options2: IDropDownOption[] = [ + { + label: 'Header Label', + value: 'headerValue', + type: DropDownOptionType.Header + }, + { + label: 'First Option Label', + value: 'firstOptionValue', + type: DropDownOptionType.Simple + }, + { + label: 'Disabled Option Label', + value: 'headerValue', + type: DropDownOptionType.Disable + }, + { + label: 'Second Option Label', + value: 'secondOptionValue', + type: DropDownOptionType.Simple + }, + { + label: 'Ruler Label', + value: 'rulerValue', + type: DropDownOptionType.HorizontalLine + }, + { + label: 'Third Option Label', + value: 'thirdOptionValue', + type: DropDownOptionType.Simple + }, + { + label: 'Fourth Option Label', + value: 'FourthOptionValue', + type: DropDownOptionType.Simple + }, + { + label: 'Fifth Option Label', + value: 'fifthOptionValue', + type: DropDownOptionType.Simple + }, + { + label: 'Ruler Label', + value: 'rulerValue', + type: DropDownOptionType.HorizontalLine + }, + { + label: 'Third Option Label', + value: 'thirdOptionValue', + type: DropDownOptionType.Simple + }, + { + label: 'Fourth Option Label', + value: 'FourthOptionValue', + type: DropDownOptionType.Simple + }, + { + label: 'Fifth Option Label', + value: 'fifthOptionValue', + type: DropDownOptionType.Simple + } +]; + +storiesOf('Form elements|Dropdown', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + DropDownComponent, + RippleClickAnimationDirective, + SvgIconComponent, + DropDownTriggerDirective + ], + imports: [ + ] + }) + ) + .add('All options', () => { + const _label = text('label', 'Simple dropdown'); + const _placeHolder = text('placeHolder', 'Sample placeholder'); + const _disabled = boolean('disabled', false); + const _options = object('options', options1); + const _testId = text('testId', 'smalpe-test-id'); + const _required = boolean('required', false); + const _maxHeight = number('maxHeight', 20); + const _selectedOption = object('selectedOption', {}); + const _type = select('type', dropdownTypes, DropDownTypes.Regular); + const _onChange = text('*(onChange)', 'Event throws when dropdown changed, see in Action logger tab.'); + + return { + props: { + onChange: action('Dropdown value changed '), + _label, _placeHolder, _disabled, _required, _testId, _options, _maxHeight, _selectedOption, _type + }, + template: ` + + + ` + } + }, + { notes: `

    Checkbox

    + Full example of checkbox. + Use the KNOBS tab to change values.` + } +) +.add('With groups', () => { + const _label = text('label', 'Simple dropdown'); + const _placeHolder = text('placeHolder', 'Sample placeholder'); + const _disabled = boolean('disabled', false); + const _options = object('options', options2); + const _testId = text('testId', 'smalpe-test-id'); + const _required = boolean('required', false); + const _maxHeight = number('maxHeight', 20); + const _selectedOption = object('selectedOption', {}); + const _type = select('type', dropdownTypes, DropDownTypes.Regular); + const _onChange = text('*(onChange)', 'Event throws when dropdown changed, see in Action logger tab.'); + + return { + props: { + onChange: action('Dropdown value changed '), + _label, _placeHolder, _disabled, _required, _testId, _options, _maxHeight, _selectedOption, _type + }, + template: ` + + + ` + } + }, + { notes: `

    Checkbox

    + Full example of checkbox with groups. + Use the KNOBS tab to change values.` + } +) +.add('Pre selected', () => { + const _label = text('label', 'Simple dropdown'); + const _placeHolder = text('placeHolder', 'Sample placeholder'); + const _disabled = boolean('disabled', false); + const _options = object('options', options2); + const _testId = text('testId', 'smalpe-test-id'); + const _required = boolean('required', false); + const _maxHeight = number('maxHeight', 20); + const _selectedOption = object('selectedOption', { label: 'Second Option Label', value: 'secondOptionValue'}); + const _type = select('type', dropdownTypes, DropDownTypes.Regular); + const _onChange = text('*(onChange)', 'Event throws when dropdown changed, see in Action logger tab.'); + + return { + props: { + onChange: action('Dropdown value changed '), + _label, _placeHolder, _disabled, _required, _testId, _options, _maxHeight, _selectedOption, _type + }, + template: ` + + + ` + } + }, + { notes: `

    Checkbox

    + Full example of checkbox with groups pre selected option. + Use the KNOBS tab to change values.` + } +) +.add('Headless mode', () => { + const _label = text('label', 'Simple dropdown'); + const _placeHolder = text('placeHolder', 'Sample placeholder'); + const _disabled = boolean('disabled', false); + const _options = object('options', options1); + const _testId = text('testId', 'smalpe-test-id'); + const _required = boolean('required', false); + const _maxHeight = number('maxHeight', 20); + const _selectedOption = object('selectedOption', {}); + const _type = select('type', dropdownTypes, DropDownTypes.Headless); + const _onChange = text('*(onChange)', 'Event throws when dropdown changed, see in Action logger tab.'); + + return { + props: { + onChange: action('Dropdown value changed '), + _label, _placeHolder, _disabled, _required, _testId, _options, _maxHeight, _selectedOption, _type + }, + template: ` + + + + ` + } + }, + { notes: `

    Checkbox

    + Full example of checkbox (headless mode). + Use the KNOBS tab to change values.` + } +) +.add('Insert text (auto)', () => { + const _label = text('label', 'Simple dropdown'); + const _placeHolder = text('placeHolder', 'Sample placeholder'); + const _disabled = boolean('disabled', false); + const _options = object('options', options1); + const _testId = text('testId', 'smalpe-test-id'); + const _required = boolean('required', false); + const _maxHeight = number('maxHeight', 20); + const _selectedOption = object('selectedOption', {}); + const _type = select('type', dropdownTypes, DropDownTypes.Auto); + const _onChange = text('*(onChange)', 'Event throws when dropdown changed, see in Action logger tab.'); + + return { + props: { + onChange: action('Dropdown value changed '), + _label, _placeHolder, _disabled, _required, _testId, _options, _maxHeight, _selectedOption, _type + }, + template: ` + + + ` + } + }, + { notes: `

    Checkbox

    + Full example of checkbox (auto mode). + Use the KNOBS tab to change values.` + } +) diff --git a/stories/angular/filter-bar.stories.ts b/stories/angular/filter-bar.stories.ts new file mode 100644 index 0000000..a48b02f --- /dev/null +++ b/stories/angular/filter-bar.stories.ts @@ -0,0 +1,51 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { FilterBarComponent, InputComponent } from '../../src/angular/components'; +import { FormElementsModule } from '../../src/angular/form-elements/form-elements.module'; + +storiesOf('Form elements|Filterbar', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + FilterBarComponent + ], + imports: [ + FormElementsModule + ] + }) + ) + .add('Filterbar', () => { + const _label = text('label', 'Filterbar label'); + const _placeholder = text('placeholder', 'Filterbar placeholder'); + const _debounceTime = number('debounceTime', 200); + // const _testId = text('testId', 'smalpe-test-id'); + const _searchQuery = text('searchQuery', ''); + const _searchQueryOutput = text('*(searchQuery)', 'Event throws when search query changed'); + const _searchQueryChange = text('*(searchQueryChange)', 'Event throws when search query changed, see in Action logger tab.'); + + return { + props: { + onChange: action('Search query value changed '), + _label, _searchQuery, _placeholder, _debounceTime + }, + template: ` + + + ` + } + }, + { notes: `

    Filterbar

    + The filter bar component text is updated (after debounce time, default 200 miliseconds) while user write something. + Use the KNOBS tab to change values.` + } +) diff --git a/stories/angular/helpers/autocomplete-server-mock.json b/stories/angular/helpers/autocomplete-server-mock.json new file mode 100644 index 0000000..2521108 --- /dev/null +++ b/stories/angular/helpers/autocomplete-server-mock.json @@ -0,0 +1,8 @@ +[ + {"id": "redId", "color": "red"}, + {"id": "yellowId", "color": "yellow"}, + {"id": "orangeId", "color": "orange"}, + {"id": "greenId", "color": "green"}, + {"id": "whiteId", "color": "white"}, + {"id": "blackId", "color": "black"} +] diff --git a/stories/angular/helpers/colors-table.component.ts b/stories/angular/helpers/colors-table.component.ts new file mode 100644 index 0000000..4c8f83f --- /dev/null +++ b/stories/angular/helpers/colors-table.component.ts @@ -0,0 +1,28 @@ +import { Component, Input } from "@angular/core"; + +@Component({ + selector: "colors-table", + template: ` + +

    {{tableTitle}}

    +
    +
    +
    +
    +
    {{color}}
    +
    {{colorGroup[color]}}
    +
    +
    +
    +` +}) +export class ColorsTable { + + @Input() tableTitle: string; + @Input() tableMapColors: Object; + + constructor() { + + } + +} diff --git a/stories/angular/helpers/index.ts b/stories/angular/helpers/index.ts new file mode 100644 index 0000000..00c35de --- /dev/null +++ b/stories/angular/helpers/index.ts @@ -0,0 +1,21 @@ +import { NgModule } from "@angular/core"; +import { KeysPipe } from "./keys.pipe"; +import { ColorsTable } from "./colors-table.component"; +import { CommonModule } from "@angular/common"; +import { FormsModule } from "@angular/forms"; +import { ButtonComponent } from "../../../src/angular/components"; + +@NgModule({ + declarations: [ + ColorsTable, + KeysPipe, + ButtonComponent + ], + imports: [ + CommonModule, + FormsModule, + ], + exports: [] +}) +export class SdcStoriesHelperModule { +} diff --git a/stories/angular/helpers/keys.pipe.ts b/stories/angular/helpers/keys.pipe.ts new file mode 100644 index 0000000..2a58cd8 --- /dev/null +++ b/stories/angular/helpers/keys.pipe.ts @@ -0,0 +1,13 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({name: 'keys'}) +export class KeysPipe implements PipeTransform { + transform(value, args:string[]) : any { + let keys = []; + for (let key in value) { + keys.push(key); + } + return keys; + } +} + diff --git a/stories/angular/helpers/modal-consumer.component.ts b/stories/angular/helpers/modal-consumer.component.ts new file mode 100644 index 0000000..87450e0 --- /dev/null +++ b/stories/angular/helpers/modal-consumer.component.ts @@ -0,0 +1,151 @@ +import {Component, Input, Output, EventEmitter, ComponentRef} from "@angular/core"; +import { ModalService } from "../../../src/angular/modals/modal.service"; +import { IModalConfig, ModalType, ModalSize } from "../../../src/angular/modals/models/modal-config"; +import { ModalButtonComponent } from './../../../src/angular/modals/modal-button.component'; +import { Placement, ButtonType } from "../../../src/angular/common/enums"; +import { ModalComponent } from "../../../src/angular/components"; +import { ModalInnerContent } from "./modal-inner-content-example.component"; +import {ButtonComponent} from "../../../src/angular/buttons/button.component" + +const MODAL_CONTENT = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed risus nisl, egestas vitae erat non,' + +'pulvinar lacinia libero. Integer pulvinar pellentesque accumsan. Sed hendrerit lacus eu tempus pharetra'; + +@Component({ + selector: 'modal-consumer', + template: `` +}) +export class ModalConsumerComponent { + @Input() action: string; + private customModal1: ModalComponent; + private customModal2: ModalComponent; + + constructor(private modalService: ModalService) { + } + + private openModal = (): void => { + if (this[this.action]) { + this[this.action](); + } + } + + private openInfoModal = (): void => { + this.modalService.openInfoModal("Info modal title", MODAL_CONTENT, 'infoModalTestId'); + } + + private openWarningModal = (): void => { + this.modalService.openWarningModal("Warning modal title", MODAL_CONTENT, 'warningModalTestId'); + } + + private openErrorModal = (): void => { + this.modalService.openErrorModal("Error modal title", MODAL_CONTENT, 'errorModalTestId'); + } + + private openSuccessModal = (): void => { + this.modalService.openSuccessModal("Success modal title", MODAL_CONTENT, 'successModalTestId'); + } + + private openInfoModalWithCustomButtons = (): void => { + const buttons = [ + { text: 'CONFIRM', type: ButtonType.info, callback: this.onConfirmAction, closeModal: true }, + { text: 'CANCEL', type: ButtonType.info, closeModal: true } + ] as ModalButtonComponent[]; + this.modalService.openInfoModal('Info modal title', MODAL_CONTENT, "infoModalCustomTestId", buttons); + } + + private openWarningModalWithCustomButtons = (): void => { + const buttons = [ + { text: 'SAVE', type: ButtonType.warning, callback: this.onSaveAction, closeModal: true }, + { text: 'APPLY', type: ButtonType.warning, callback: this.onApplyAction }, + { text: 'CANCEL', type: ButtonType.warning, closeModal: true } + ] as ModalButtonComponent[]; + this.modalService.openWarningModal('Warning modal title', MODAL_CONTENT, "warningModalCustomTestId", buttons); + } + + private onConfirmAction = (): void => { + alert("Action has been confirmed, modal will be closed"); + } + + private onSaveAction = (): void => { + alert("Action has been saved, modal will be close"); + } + + private onApplyAction = (): void => { + alert("Action has been applied, modal will not be close"); + } + + private openCustomModal1 = (): void => { + const modalConfig = { + size: ModalSize.medium, + title: 'Modal title', + type: ModalType.custom, + testId: 'sampleTestIdModal1', + buttons: [ + {id: "saveButton", text: "Save", callback: this.customModalOnSave1, closeModal: false}, + {id: "cancelButton", text: "Cancel", size: 'x-small', type: ButtonType.secondary , closeModal: true} + ] + } as IModalConfig; + this.customModal1 = this.modalService.openCustomModal(modalConfig, ModalInnerContent, {name: "Sample Content"}); + } + + private customModalOnSave1 = (): void => { + const saveButton: ModalButtonComponent = this.customModal1.getButtonById("saveButton"); + saveButton.show_spinner = true; + saveButton.spinner_position = Placement.right; + + // Show spinner for 2 seconds + console.log('Saving example, please wait ...'); + window.setTimeout((button: ModalButtonComponent) => { + button.show_spinner = false; + console.log('Finish saving'); + }, 2000, saveButton); + } + + private openCustomModal2 = (): void => { + const modalConfig = { + size: ModalSize.medium, + title: 'Title', + type: ModalType.custom, + testId: 'sampleTestIdModal2', + buttons: [ + {text: "Change title", callback: this.customModalChangeTitle2, closeModal: false}, + {text: "Change buttons", callback: this.customModalUpdateButtons2, closeModal: false}, + {text: "Disable close", callback: this.customModalUDisableClose2, closeModal: false} + ] + } as IModalConfig; + this.customModal2 = this.modalService.openCustomModal(modalConfig, ModalInnerContent, {name: "Sample Content"}); + } + + private customModalUDisableClose2 = (): void => { + this.customModal2.getCloseButton().disabled = true; + } + + private customModalChangeTitle2 = (): void => { + this.customModal2.setTitle('New title'); + } + + private customModalUpdateButtons2 = (): void => { + const newButtons = [ + {text: "Change title", callback: this.customModalChangeTitle2, closeModal: false}, + {text: "Do nothing", closeModal: false} + ] as ModalButtonComponent[]; + this.customModal2.setButtons(newButtons); + } + + private openErrorModalFromModal = ():void => { + this.modalService.openErrorModal("Error", "Error example!!", "second-modal"); + } + + private openCustomModal3 = (): void => { + const modalConfig = { + size: ModalSize.medium, + title: 'Title', + type: ModalType.custom, + testId: 'sampleTestIdModal3', + buttons: [ + {text: "Open Error", callback: this.openErrorModalFromModal, closeModal: false} + ] + } as IModalConfig; + this.modalService.openCustomModal(modalConfig, ModalInnerContent, {name: "Sample Content"}); + } + +} diff --git a/stories/angular/helpers/modal-inner-content-example.component.ts b/stories/angular/helpers/modal-inner-content-example.component.ts new file mode 100644 index 0000000..7e59ab1 --- /dev/null +++ b/stories/angular/helpers/modal-inner-content-example.component.ts @@ -0,0 +1,16 @@ +import { Component, Input } from "@angular/core"; + +@Component({ + selector: "inner-content", + template: ` +
    + + + +
    +` +}) +export class ModalInnerContent { + + @Input() name:string; +} diff --git a/stories/angular/index.ts b/stories/angular/index.ts new file mode 100644 index 0000000..b42ef85 --- /dev/null +++ b/stories/angular/index.ts @@ -0,0 +1,112 @@ +import { storiesOf } from '@storybook/angular'; +import '!style-loader!css-loader!sass-loader!./styles.scss'; + +storiesOf('Welcome', module).add('to Storybook', () => ({ + template: ` +
    +

    ONAP-UI-ANGULAR Style-Guide and Components

    +

    + This project aims to create a unified UI styled components for multiple development teams who work on the same web-based applications. + This repository contains the definition of all the basic widgets and reusable controllers. +

    + Note: the project is build of 3 different projects: +
      +
    • onap-ui-common contains HTML and SCSS files for all components.
    • +
    • onap-ui-angular contains Angular components according to the HTML defined in onap-ui-common.
    • +
    • onap-ui-react contains React components according to the HTML defined in onap-ui-common.
    • +
    + +

    Usage

    +

    Link the library's CSS file

    +

    + There are several options to link to onap-ui-angular CSS file: +

    + +

    SCSS

    + + @import "path_to_node_modules/onap-ui/css/style.css"; + +

    + +

    HTML

    + + + ]]> + +

    + +

    As Module (Using loading tool, i.e. Webpack)

    + import "onap-ui/css/style.css"; +

    + +

    Angular CLI projects

    +

    You can add this line to style.css file:

    + @import "../node_modules/onap-ui/css/style.css"; +

    + +

    Using the library in latest Angular (6)

    +

    Add the library to your module

    + + + +

    + +

    Running storybook

    + The components in this library are displayed via storybook. + Head to http://onap-sdc.github.io/onap-ui-angular to see the components that are in master. + While developing, just run npm run storybook in your terminal to launch a local storybook server where you can see your changes. For deploying storybook to your own fork repository, refer to the guides section below. + +

    Useful guides

    + + +

    Having some trouble? Have an issue?

    + For bugs and issues, please use the issues page + +

    How to Contribute

    +
      +
    • + Contribution can be made only by following these guide lines +
    • +
    • + This project combines both React & Angular framework libraries. + Hence, every change in the basic HTML files structure, must be followed by changes on react and angular + projects (onap-ui-angular, onap-ui-react). +
    • +
    • + There will be no any 3rd party UI framework imported (i.e. Bootstrap, Material, Foundation... etc.). +
    • +
    • + Contribution are done only by the contribution guide. + Contributions submitted not in this format and guidelines will not be considered. +
    • +
    +
    + `, + props: { + }, + moduleMetadata: { + }, +})); diff --git a/stories/angular/infinite-scroll.stories.ts b/stories/angular/infinite-scroll.stories.ts new file mode 100644 index 0000000..3a53a4f --- /dev/null +++ b/stories/angular/infinite-scroll.stories.ts @@ -0,0 +1,181 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { InfiniteScrollDirective } from '../../src/angular/components'; + +const basicStyle = ` + .scroll-container { + margin: 12px; + border: none; + padding: 5px; + width: 200px; + height: 100px; + overflow: auto; + font-size: 20px !important; + box-shadow: #666 1px 1px 10px; + } + .example-source { + background: #eeeeee; + padding: 10px; + border: 1px solid #999999; + } + .example-source pre { + overflow: hidden; + background: #dddddd; + margin-top: 5px; + padding: 5px; + user-select: text; + } +`; + +const makeBasicStyleDistance = (distance: number) => ` + .scroll-container::after { + display: block; + content: ''; + height: ${distance}px; + background: red; + } +`; + +storiesOf('Infinite-Scroll', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + InfiniteScrollDirective + ], + imports: [ + ] + }) + ) + .add('Simple', () => { + const _infiniteScroll = text('infiniteScroll', 'Event throws when scroll reach down'); + + return { + props: { + hitBottomCount: 0, + onScrollHitBottom: () => { + action('scroll hit bottom')(); + this.hitBottomCount++; + }, + numLines: Array(20).fill(null) + }, + styles: [basicStyle], + template: ` +
    +
    + Line {{i + 1}} +
    +
    + Hit bottom for {{hitBottomCount}} times! + ` + } + }, + { notes: `

    Infinite-Scroll

    + Simple infinite scroll, throws event when reach bottom (see in action logger). + Use the KNOBS tab to change values.` + } +) +.add('With bottom distance', () => { + const _infiniteScrollDistance = number('infiniteScrollDistance', 20); + const _infiniteScroll = text('infiniteScroll', 'Event throws when scroll reach down'); + + return { + props: { + hitBottomCount: 0, + onScrollHitBottom: () => { + action('scroll hit bottom')(); + this.hitBottomCount++; + }, + numLines: Array(20).fill(null), + _infiniteScrollDistance + }, + styles: [basicStyle, makeBasicStyleDistance(50)], + template: ` +
    +
    + Line {{i + 1}} +
    +
    + Hit bottom for {{hitBottomCount}} times! + ` + } + }, + { notes: `

    Infinite-Scroll

    + Simple infinite scroll with distance at the bottom, throws event when reach bottom (see in action logger). + Use the KNOBS tab to change values.` + } +) +.add('Expanding content synchrony', () => { + const _infiniteScrollDistance = number('infiniteScrollDistance', 20); + const _infiniteScroll = text('infiniteScroll', 'Event throws when scroll reach down'); + + return { + props: { + hitBottomCount: 0, + onScrollHitBottom: () => { + action('scroll hit bottom')(); + this.hitBottomCount++; + this.insertPageImmediately(this.pageCount + 1); + this.pageCount++; + }, + numLines: Array(20).fill(null), + _infiniteScrollDistance + }, + styles: [basicStyle, makeBasicStyleDistance(50)], + template: ` +
    +
    + Line {{i + 1}} +
    +
    + Hit bottom for {{hitBottomCount}} times! + ` + } + }, + { notes: `

    Infinite-Scroll

    + Simple infinite scroll with distance at the bottom, throws event when reach bottom (see in action logger). + Use the KNOBS tab to change values.` + } +) +.add('Expanding content asynchrony', () => { + const _infiniteScrollDistance = number('infiniteScrollDistance', 20); + const _infiniteScroll = text('infiniteScroll', 'Event throws when scroll reach down'); + + return { + props: { + hitBottomCount: 0, + onScrollHitBottom: () => { + action('scroll hit bottom')(); + this.hitBottomCount++; + if (!this.isPageLoading) { + this.isPageLoading = true; + this.loadPageAsync(this.pageCount + 1, 5000).then(() => { + this.pageCount++; + this.isPageLoading = false; + }); + } + }, + numLines: Array(20).fill(null), + _infiniteScrollDistance + }, + styles: [basicStyle, makeBasicStyleDistance(50)], + template: ` +
    +
    + Line {{i + 1}} +
    +
    + Hit bottom for {{hitBottomCount}} times!
    + Loaded {{pageCount}} pages! LOADING page #{{this.pageCount + 1}} ... + ` + } + }, + { notes: `

    Infinite-Scroll

    + Simple infinite scroll with distance at the bottom, throws event when reach bottom (see in action logger). + Use the KNOBS tab to change values.` + } +) diff --git a/stories/angular/input.stories.ts b/stories/angular/input.stories.ts new file mode 100644 index 0000000..1c63427 --- /dev/null +++ b/stories/angular/input.stories.ts @@ -0,0 +1,120 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { CheckboxComponent, InputComponent } from '../../src/angular/components'; +import { RippleClickAnimationDirective } from '../../src/angular/animations/ripple-click.animation.directive'; +import { FormElementsModule } from '../../src/angular/form-elements/form-elements.module'; + +storiesOf('Form elements|Input', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + ], + imports: [ + FormElementsModule + ] + }) + ) + .add('Simple', () => { + const _label = text('label', 'Please Enter value'); + const _name = text('name', 'InputName'); + const _testId = text('testId', 'sample-test-id'); + + return { + props: { + checkedChange: action('Checkbox value changed '), + _label, _name, _testId + }, + template: ` + + + ` + } + }, + { notes: `

    Simple Input

    + Simple input example. + Use the KNOBS tab to change values.` + } +) +.add('With debounce', () => { + const _label = text('label', 'Please Enter value'); + const _name = text('name', 'InputName'); + const _testId = text('testId', 'sample-test-id'); + const _debounceTime = number('debounceTime', 1000); + const _valueChange = text('*(valueChange)', 'Throws event when value changed.'); + + return { + props: { + onValueChanged: action('Input value changed '), + _label, _name, _testId, _debounceTime + }, + template: ` + + + ` + } + }, + { notes: `

    Input with debounce

    + Wait for 1000 miliseconds for value changed event . + Use the KNOBS tab to change values.` + } +) +.add('Full options', () => { + const _label = text('label', 'Please Enter value'); + const _name = text('name', 'InputName'); + const _placeHolder = text('placeHolder', 'Input placeHolder'); + const _value = text('value', 'Some value'); + const _type = select('type', ['text', 'number', 'email']); + const _disabled = boolean('disabled', false); + const _required = boolean('required', false); + const _testId = text('testId', 'sample-test-id'); + const _debounceTime = number('debounceTime', 1000); + const _minLength = number('minLength', 4); + const _maxLength = number('maxLength', 10); + const _classNames = text('classNames', 'custom-input-class'); + const _valueChange = text('*(valueChange)', 'Throws event when value changed.'); + + return { + props: { + onValueChanged: action('Input value changed '), + _label, _name, _value, _testId, _debounceTime, _type, _disabled, _placeHolder, _required, _maxLength, _minLength, _classNames + }, + template: ` + + + ` + } + }, + { notes: `

    Input with debounce

    + Wait for 1000 miliseconds for value changed event . + Use the KNOBS tab to change values.` + } +) diff --git a/stories/angular/loader.stories.ts b/stories/angular/loader.stories.ts new file mode 100644 index 0000000..ccc4152 --- /dev/null +++ b/stories/angular/loader.stories.ts @@ -0,0 +1,147 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { LoaderComponent, ButtonComponent, InputComponent, SvgIconComponent } from '../../src/angular/components'; +import { FormElementsModule } from '../../src/angular/form-elements/form-elements.module'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { CommonModule } from '@angular/common'; +import { LoaderService } from '../../src/angular/loader/loader.service'; +import { LoaderSize } from '../../src/angular/loader/loader.component'; + +storiesOf('Loader', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + LoaderComponent, + ButtonComponent, + InputComponent, + SvgIconComponent + ], + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule + ], + providers: [ + LoaderService + ] + }) + ) + .add('Relative loader', () => { + const _size = select('size', Object.values(LoaderSize), LoaderSize.large); + const _name = text('name', 'RelativeLoader'); + const _active = boolean('active', false); + + return { + props: { + activateLogger: (loader) => { + loader.activate(); + action('Loader activated')(); + }, + deactivateLogger: (loader) => { + loader.deactivate(); + action('Loader deactivated')(); + }, + _size, _name, _active + }, + template: ` +

    Loader visible: {{_active}}

    + +
    + + + + +
    +
    +
    + + +
    + ` + } + }, + { notes: `

    Relative loader

    + Relative loader that wraps dom elements. + Use the KNOBS tab to change values.` + } +) +.add('Relative loader with service', () => { + const _size = select('size', Object.values(LoaderSize), LoaderSize.large); + const _name = text('name', 'RelativeLoader'); + const _active = boolean('active', false); + + return { + props: { + activateLogger: (loader) => { + loader.activate(); + action('Loader activated')(); + }, + deactivateLogger: (loader) => { + loader.deactivate(); + action('Loader deactivated')(); + }, + _size, _name, _active + }, + template: ` +

    Loader visible: {{_active}}

    + +
    + + + + +
    +
    +
    + + +
    + ` + } + }, + { notes: `

    Relative loader

    + Relative loader that wraps dom elements. + Use the KNOBS tab to change values.` + } +) + + + + + + + + +.add('General loader', () => { + const _size = select('size', Object.values(LoaderSize), LoaderSize.large); + const _name = text('name', 'global'); + const _global = boolean('global', true); + + return { + props: { + activateLogger: (loader) => { + loader.loaderService.activate(loader.name); + setTimeout(() => { + loader.loaderService.deactivate(loader.name); + }, 2000); + action('Global loader activated')(); + }, + _size, _name, _global + }, + template: ` + + + ` + } + }, + { notes: `

    General loader

    + General loader to hide full screen. + For this sample added setTimeout() function so the loader will deactivated after 2 seconds. + Use the KNOBS tab to change values.` + } +) diff --git a/stories/angular/modal.stories.ts b/stories/angular/modal.stories.ts new file mode 100644 index 0000000..fdd42dc --- /dev/null +++ b/stories/angular/modal.stories.ts @@ -0,0 +1,59 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { FormElementsModule } from '../../src/angular/form-elements/form-elements.module'; +import { ModalModule } from '../../src/angular/modals/modal.module'; +import { ModalConsumerComponent } from './helpers/modal-consumer.component'; +import { ModalService } from '../../src/angular/services'; +import { ButtonsModule } from '../../src/angular/buttons/buttons.module'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; + +let stories = storiesOf('Modal', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + ModalConsumerComponent + ], + imports: [ + ModalModule, + FormElementsModule, + ButtonsModule, + BrowserAnimationsModule + ], + providers: [ + ModalService + ] + }) + ) + const modalTypes = ['Info', 'Warning', 'Error', 'Success']; + + modalTypes.forEach((buttonType) => { + + stories.add('Modal' + buttonType, () => { + + return { + props: { + openModal: action('Modal opened (see in action logger tab)'), + buttonType + }, + template: + ` ${buttonType} Modal

    + ` + + }; + + }, + { notes: `

    ` + buttonType + ` modal

    + When click on view model ` + buttonType + ` model will open`+ + `
    Source Code:` + + `
    this.modalService.open`+ buttonType + `Modal('`+ buttonType + ` modal title', '`+ buttonType + + ` modal content', '`+ buttonType + `ModalTestId');`+ + `
    Use the KNOBS tab to change values.` + } + + ); + }); diff --git a/stories/angular/multiline-ellipsis.stories.ts b/stories/angular/multiline-ellipsis.stories.ts new file mode 100644 index 0000000..ab830bb --- /dev/null +++ b/stories/angular/multiline-ellipsis.stories.ts @@ -0,0 +1,77 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { MultilineEllipsisModule } from '../../src/angular/multiline-ellipsis/multiline-ellipsis.module'; +import { ButtonsModule } from '../../src/angular/buttons/buttons.module'; +import { ButtonComponent } from '../../src/angular/buttons/button.component'; + +let stories = storiesOf('Multiline ellipsis', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + + ], + imports: [ + MultilineEllipsisModule, + ButtonsModule + ] + }) + ) + + let containslines = true; + let containslineHeight = true; + let containsClassName = true; + let containsChangeText = true + + createStory(stories, "All options", containslines, containslineHeight, containsClassName, containsChangeText, "Multiline-ellipsis", "Full example of simple multiline ellipsis."); + createStory(stories, "With number of line", containslines, !containslineHeight, !containsClassName, !containsChangeText, "Multiline-ellipsis", "Example of simple multiline ellipsis With number of line."); + createStory(stories, "With line hight", !containslines, containslineHeight, !containsClassName, !containsChangeText, "Multiline-ellipsis", "Example of simple multiline ellipsis With line hight."); + createStory(stories, "With class name", !containslines, !containslineHeight, containsClassName, !containsChangeText, "Multiline-ellipsis", "Example of simple multiline ellipsis With class name."); + createStory(stories, "With change text", !containslines, !containslineHeight, !containsClassName, containsChangeText, "Multiline-ellipsis", "Example of simple multiline ellipsis With change text."); + + function createStory(stories, title, containslines, containslineHeight, containsClassName, containsChangeText, notesTitle, notesText){ + stories.add(title, () => { + const _lines = containslines || containslineHeight ? number('number of lines', 3) : null; + const _lineHeight = containslineHeight ? text('Line height', '18px') : null; + const _className = containsClassName ? text('Class name', 'yellow-ellipsis'): null; + const _shortText = containsChangeText ? text('Short text', 'Short text - No ellipsis!') :null; + const _longText = text('Long text','Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi et molestie erat, sit amet rutrum purus. Mauris tristique efficitur felis, rutrum scelerisque enim sodales eu. Cras tristique ipsum a elementum auctor. Donec et elit id sapien tempus posuere. Nulla condimentum semper nisi, ac convallis augue dignissim nec. Nunc vestibulum nisi metus, ac rutrum enim consectetur nec. Vivamus volutpat ac risus aliquet iaculis.\nVestibulum et ex egestas, scelerisque enim et, vehicula nisi. Aenean posuere ornare dolor, in laoreet turpis mattis in. Fusce sodales blandit ornare. Donec porta eros vel tellus consequat, a ultricies augue ullamcorper. Vestibulum dolor diam, auctor ac magna quis, aliquet tincidunt odio. Nulla eu cursus metus. Maecenas laoreet in risus vel suscipit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis facilisis orci rhoncus pharetra pretium. Nam blandit arcu lobortis eros luctus lobortis. Integer gravida iaculis finibus.') + const _hasEllipsisChanged = text('*(hasEllipsisChanged)', 'Event throws when number of lines or line height or class name changed, see in Action logger tab.'); + return { + props: { + showSortText: false, + hasEllipsis: true, + hasEllipsisChanged: action('Ellipsis changed and its'), + _lines, _lineHeight, _className, _shortText, _longText, + }, + template: containsChangeText ? ` + {{ this.showSortText ? _shortText : _longText }} + +
    + +
    + has ellipsis? {{ this.hasEllipsis ? 'yes' : 'no' }}`: + `{{ this.showSortText ? _shortText : _longText }} + ` + } + }, + { notes: `

    ` + notesTitle + `

    ` + notesText + `
    Use the KNOBS tab to change values.` + } + ) + } diff --git a/stories/angular/notifications.stories.ts b/stories/angular/notifications.stories.ts new file mode 100644 index 0000000..4e87517 --- /dev/null +++ b/stories/angular/notifications.stories.ts @@ -0,0 +1,55 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { NotificationModule } from '../../src/angular/notifications/notification.module'; +import { NotificationSettings } from '../../src/angular/notifications/utilities/notification.config'; + +let stories = storiesOf('Notification', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + ], + imports: [ + NotificationModule + + ] + }) + ) + createStory(stories, "All options", true, true, "Notification", "Full example of simple tabs."); + // createStory(stories, "Tabs with text", true, false, "Tabs with titles", "Simple tabs with text title."); + // createStory(stories, "Tabs with icons", false, true, "Tabs with icons", "Simple tabs with icon title."); + + function createStory(stories, title, containsTitle, containsTitleIcon, notesTitle, notesText){ + stories.add(title, () => { + const _type = select('Type', ["info", "warning", "error", "success"], 'left', ''); + const _notifyText = text('Text','notif info message test'); + const _notifyTitle = text('Title', 'Notif Titile Info'); + const _sticky = boolean('Sticky', false); + const _hasCustomContent = boolean('Has customer content', false); + const _duration = number('Duration', 2000); + let _notificationSetting = new NotificationSettings(_type, _notifyText, _notifyTitle, _duration, _sticky, _hasCustomContent) + // const innerComponentType: Type; + // const innerComponentOptions: any; + + + return { + props: { + selectTab: action('select tab changed'), + _type, _notifyText, _notifyTitle, _sticky, _hasCustomContent, _duration + }, + template: ` + + + ` + } + }, + { notes: `

    ` + notesTitle + `

    ` + notesText + `
    Use the KNOBS tab to change values.` + } + ) + } diff --git a/stories/angular/popup-menu.stories.ts b/stories/angular/popup-menu.stories.ts new file mode 100644 index 0000000..1fac579 --- /dev/null +++ b/stories/angular/popup-menu.stories.ts @@ -0,0 +1,185 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { PopupMenuModule } from '../../src/angular/popup-menu/popup-menu.module'; +import { ButtonsModule } from '../../src/angular/buttons/buttons.module'; + + +let stories = storiesOf('Menu', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + ], + imports: [ + PopupMenuModule, + ButtonsModule, + + ] + }) + ) + let containsPosition = true; + let containsRelative = true; + let containsClassName = true; + createMenuListStory(stories, "Menu list All options", containsPosition, containsRelative, containsClassName, "Menu list", "Full example of menu list."); + createMenuListStory(stories, "Menu list with position", containsPosition, !containsRelative, !containsClassName, "Menu list", "Full example of menu list with position."); + createMenuListStory(stories, "Menu list with relative", !containsPosition, containsRelative, !containsClassName, "Menu list", "Full example of menu list with relative."); + createMenuListStory(stories, "Menu list with class", !containsPosition, !containsRelative, containsClassName, "Menu list", "Full example of menu list with class."); + + createMenuItemStory(stories, "Menu item All options", "Tabs", "Full example of simple tabs."); + function createMenuListStory(stories, title, containsPosition, containsRelative, containsClassName, notesTitle, notesText){ + stories.add(title, () => { + const _className = containsClassName ? text('Class name', ''): null; + const _relative = containsRelative ? boolean('Relative', true) : true; + const _positionLeft = containsPosition ? number('Position left', 0): 0; + const _positionTop = containsPosition ? number('Position top', 0): 0; + const _open = containsPosition ? boolean('Menu list open', undefined): false; + const _openChange = text('*(openChange)', 'Event throws when menu is open or close, see in Action logger tab.'); + const _positionChange = text('*(positionChange)', 'Event throws when position changed, see in Action logger tab.'); + + return { + props: { + selectedItemValue: '', + selectedItemColor: '', + openChanged: action('Menu open status is'), + positionChanged: action('Menu position changed to'), + showSelectedItem: (itemPlace, color, selectedItem)=> { + selectedItem.innerText = itemPlace; + selectedItem.style.color = color; + }, + _className, _relative, _positionLeft, _positionTop, _open + }, + template: ` +
    + Click in the box...
    + (popup menu is {{menuStatus === undefined ? 'never opened' : (menuStatus ? 'open at '+menuPos.x+' , '+menuPos.y : 'closed')}})
    + selected: {{selectedItemValue}} +
    + + First + Disabled + + Second + Third (none) + +
    + ` + } + }, + { notes: `

    ` + notesTitle + `

    ` + notesText + `
    Use the KNOBS tab to change values.` + } + ) + } + + function createMenuItemStory (stories, title, notesTitle, notesText){ + stories.add(title, () => { + const _item1ClassName = text('Item1 class name', ''); + const _item1Type = text('Item1 type', ''); + + const _item2ClassName = text('Item2 class name', ''); + const _item2Type = text('Item2 type', 'selected'); + + const _item3ClassName = text('Item3 class name', ''); + const _item3Type = text('Item3 type', 'disabled'); + + const _item4ClassName = text('Item4 class name', ''); + const _item4Type = text('Item4 type', 'separator'); + + const _item5ClassName = text('Item5 class name', ''); + const _item5Type = text('Item5 type', ''); + const _Action = text('*(action)', 'Event throws when select tab changed, see in Action logger tab.'); + + return { + props: { + openManu: (menu) =>{ + menu.position = {x:400, y:500}; + menu.open = true; + }, + showSelectedItem: action('select menu item'), + _item1ClassName, _item1Type, _item2ClassName, _item2Type, _item3ClassName, _item3Type, + _item4ClassName, _item4Type, _item5ClassName, _item5Type + }, + template: ` +
    + +

    + + + + + + + + + + + First + + + + + + + + + + + Selected + + + + + + + + + + + Disabled + + + + + + + + + + + + + Second + + +
    + ` + } + }, + { notes: `

    ` + notesTitle + `

    ` + notesText + `
    Use the KNOBS tab to change values.` + } + ) + } + diff --git a/stories/angular/radio-button-group.stories.ts b/stories/angular/radio-button-group.stories.ts new file mode 100644 index 0000000..97f1ce9 --- /dev/null +++ b/stories/angular/radio-button-group.stories.ts @@ -0,0 +1,84 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { RadioGroupComponent } from '../../src/angular/components'; +import { FormElementsModule } from '../../src/angular/form-elements/form-elements.module'; + +let stories = storiesOf('Form elements|Radio button group', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + + ], + imports: [ + FormElementsModule + ] + }) + ) + let containsLegend = true; + let containsDisabled = true; + let containsDirection = true; + createStory(stories, "All options", containsLegend, containsDisabled, containsDirection, "Radio buttons group", "Full example of radio buttons."); + createStory(stories, "With legend", containsLegend, !containsDisabled, !containsDirection, "Radio buttons group", "Example of radio buttons with legend."); + createStory(stories, "With disabled", !containsLegend, containsDisabled, !containsDirection, "Radio buttons group", "Example of radio buttons with disabled."); + createStory(stories, "With direction", !containsLegend, !containsDisabled, containsDirection, "Radio buttons group", "Example of radio buttons with direction."); + function createStory(stories, title, containsLegend, containsDisabled, containsDirection, notesTitle, notesText){ + stories.add(title, () => { + const _legend = containsLegend ? text('legend','Radio Buttons Group legend') : null; + const _options = { + items: [{ + value:'val1', + name: 'radio8', + label: 'Label of Radio1' + }, { + value:'val2', + name: 'radio8', + label: 'Label of Radio2' + }] + }; + const _disabled = containsDisabled ? boolean('disabled', false) : null; + const _direction = containsDirection ? text('direction','horizontal') : null; + const _selectedValue = text('selected value', 'val1'); + + const _selectedValueChange = text('*(valueChange)', 'Event throws when selected radio button, see in Action logger tab.'); + + return { + props: { + selectRadioButton: action('select radio button'), + _legend, _disabled, _direction, _options, _selectedValue + }, + template: ` + +
    Selected Radio: {{_selectedValue}}
    + ` + } + }, + { notes: `

    ` + notesTitle + `

    ` + notesText + `
    Use the KNOBS tab to change values.` + } + ) + } diff --git a/stories/angular/search-bar.stories.ts b/stories/angular/search-bar.stories.ts new file mode 100644 index 0000000..634a0c4 --- /dev/null +++ b/stories/angular/search-bar.stories.ts @@ -0,0 +1,49 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { SearchBarComponent, InputComponent } from '../../src/angular/components'; +import { FormElementsModule } from '../../src/angular/form-elements/form-elements.module'; + +storiesOf('Form elements|Searchbar', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + SearchBarComponent + ], + imports: [ + FormElementsModule + ] + }) + ) + .add('Searchbar', () => { + const _label = text('label', 'Searchbar label'); + const _placeholder = text('placeholder', 'Searchbar placeholder'); + const _debounceTime = number('debounceTime', 200); + const _searchQuery = text('searchQuery', ''); + const _searchQueryClick = text('*(searchQueryClick)', 'Event throws when click on search query, see in Action logger tab.'); + + return { + props: { + onChange: action('click on search query'), + _label, _searchQuery, _placeholder, _debounceTime + }, + template: ` + + + ` + } + }, + { notes: `

    Searchrbar

    + The search bar component text is updated (after debounce time, default 200 miliseconds) while user write something. + Use the KNOBS tab to change values.` + } +) diff --git a/stories/angular/styles.scss b/stories/angular/styles.scss new file mode 100644 index 0000000..19dbc57 --- /dev/null +++ b/stories/angular/styles.scss @@ -0,0 +1,104 @@ +/* +Specific styles for storybook +*/ + +.sb-show-main { + padding: 20px; +} + +.storybook-new-row { + display: flex; + flex-direction: row; +} + +.storybook-component-wrapper { + margin: 10px; + padding: 10px; +} + +.storybook-component-info { + display: block; + text-align: left; + margin-bottom: 10px; +} + +.storybook-icons-showcase { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; + + .storybook-component-wrapper { + width: 150px; + text-align: center; + width: 150px; + border: solid 1px #eeeeee; + border-radius: 5px; + } + + .storybook-component-info { + text-align: center; + font-size: 11px; + user-select: text; + } + + .storybook-debug-icon { + border: solid 1px #000000; + } +} + +/* +Specific styles for storybook components sample +*/ +.sdc-accordion-custom-class .sdc-accordion-header, +.sdc-accordion-custom-class .sdc-accordion-body.open { + padding: 10px; + border-radius: 3px; +} +.sdc-accordion-custom-class .sdc-accordion-header { + background-color: #d2d2d2; +} +.sdc-accordion-custom-class .sdc-accordion-body.open { + border: 1px solid #d2d2d2; + margin-top: 1px; + } + + + +.colors-table { + font-size: 13px; + + .color-group { + + display: flex; + flex-direction: row; + align-items: flex-start; + + .color-section { + + margin: 0 20px 20px 0; + text-align: center; + + div { + align-self: center; + user-select: text; + } + $circle-size: 80px; + .color-circle { + height: $circle-size; + width: $circle-size; + border-radius: $circle-size; + text-align: center; + } + } + } +} + +.storybook-welcome { + h1 { font-size: 30px; margin: 12px 0 12px 0; } + h2 { font-size: 24px; margin: 12px 0 12px 0; } + h3 { font-size: 20px; margin: 12px 0 12px 0; } + h4 { font-size: 14px; margin: 4px 0 4px 0; text-decoration: underline; } + code { font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif; font-size: 12px; } + ul li { list-style: circle; list-style-position: inside; } +} \ No newline at end of file diff --git a/stories/angular/svg-icon.stories.ts b/stories/angular/svg-icon.stories.ts new file mode 100644 index 0000000..785a92d --- /dev/null +++ b/stories/angular/svg-icon.stories.ts @@ -0,0 +1,124 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { AccordionComponent, SvgIconComponent } from '../../src/angular/components'; +import { SvgIconModule } from '../../src/angular/svg-icon/svg-icon.module'; +import { Mode, Placement, Size, BackgroundShape, ButtonType, BackgroundColor } from "../../src/angular/common/enums"; + +const mode = Object.keys(Mode); +const size = Object.keys(Size); +const icons_categories: Array = Object.keys(SvgIconComponent.Icons()); +const background_shape: Array = Object.keys(BackgroundShape); +const background_color: Array = Object.keys(BackgroundColor); + +const caption_full_options = 'Icon full options'; + +let stories = storiesOf('Icons|Show case', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [SvgIconComponent], + imports: [ + ] + }) + ); + + background_shape.push(undefined); + background_color.push(undefined); + + // resource: #9063CD + // services: #71C5E8 + // red: + +console.log(icons_categories); + +icons_categories.map((category) => + + stories.add(category, () => { + + let _mode = select('mode', mode, 'primary', ''); + let _size = select('size', size, 'medium', ''); + let _backgroundShape = select('backgroundShape', background_shape, '', ''); + let _backgroundColor = select('backgroundColor', background_color, '', ''); + const _debug_icon = boolean('Debug icon', false); + + if (category === 'resources_60') { + _mode = select('mode', mode, 'white', ''); + _size = select('size', size, 'x_large', ''); + _backgroundShape = select('backgroundShape', background_shape, 'circle', ''); + _backgroundColor = select('backgroundColor', background_color, 'primary', ''); + } + + return { + props: { + _debug_icon, _mode, _size, _backgroundShape, _backgroundColor + }, + template: + `
    ` + + Object.keys(SvgIconComponent.Icons()[category]).map((iconName) => + ` +
    +
    ${iconName}
    + + +
    + ` + ).join('\n') + + `
    ` + } + }, + { notes: `

    Showcase of all icons

    + To see all the options for specific icon, select 'Icon full options' in left panel. + ` + }) +); + +stories.add(caption_full_options, () => { + const _mode = select('mode', mode, 'primary', ''); + const _size = select('size', size, 'x_large', ''); + const _category = select('category', icons_categories, 'common', ''); + const _name = select('name', Object.keys(SvgIconComponent.Icons().common), 'alert-triangle-o', ''); + const _backgroundShape = select('backgroundShape', background_shape, '', ''); + const _backgroundColor = select('backgroundColor', background_color, '', ''); + const _disabled = boolean('disabled', false); + const _clickable = boolean('clickable', true); + const _className = text('className', ''); + + return { + props: { + _mode, _size, _name, _backgroundShape, _backgroundColor, _disabled, _clickable, _className, _category + }, + template: ` +
    +
    Full options, look in the KNOBS options
    + + +
    + ` + } + }, + { notes: `

    SVG icon full example

    + Full example of SVG icon, use the KNOBS tab to change @Inputs. + ` + } + ); diff --git a/stories/angular/tabs.stories.ts b/stories/angular/tabs.stories.ts new file mode 100644 index 0000000..dac99bb --- /dev/null +++ b/stories/angular/tabs.stories.ts @@ -0,0 +1,55 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { TabsModule } from '../../src/angular/tabs/tabs.module'; +import { FormElementsModule } from '../../src/angular/form-elements/form-elements.module'; + +let stories = storiesOf('Tabs', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + ], + imports: [ + TabsModule, + FormElementsModule + ] + }) + ) + let containsTitle = true; + let containsTitleIcon = true; + createStory(stories, "All options", containsTitle, containsTitleIcon, "Tabs", "Full example of simple tabs."); + createStory(stories, "Tabs with text", containsTitle, !containsTitleIcon, "Tabs with titles", "Simple tabs with text title."); + createStory(stories, "Tabs with icons", !containsTitle, containsTitleIcon, "Tabs with icons", "Simple tabs with icon title."); + + function createStory(stories, title, containsTitle, containsTitleIcon, notesTitle, notesText){ + stories.add(title, () => { + const _title1 = containsTitle ? text('Tab1 title', 'tab1 ') : null; + const _title2 = containsTitle ? text('Tab2 title', 'tab2 ') : null; + const _titleIcon1 = containsTitleIcon ? text('Tab1 titleIcon', 'inputs-o') : null; + const _titleIcon2 = containsTitleIcon ? text('Tab2 titleIcon', 'edit-file-o') : null; + const _active1 = boolean('Tab1 disabled', false); + const _active2 = boolean('Tab2 disabled', false); + const _selectTab = text('*(selectTab)', 'Event throws when select tab changed, see in Action logger tab.'); + + return { + props: { + selectTab: action('select tab changed'), + _title1, _titleIcon1, _active1, + _title2, _titleIcon2, _active2, _selectTab + }, + template: ` + + This is tab 1 + This is tab 2 + + ` + } + }, + { notes: `

    ` + notesTitle + `

    ` + notesText + `
    Use the KNOBS tab to change values.` + } + ) + } diff --git a/stories/angular/tag-cloud.stories.ts b/stories/angular/tag-cloud.stories.ts new file mode 100644 index 0000000..ef5748e --- /dev/null +++ b/stories/angular/tag-cloud.stories.ts @@ -0,0 +1,64 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { TagCloudModule } from '../../src/angular/tag-cloud/tag-cloud.module'; + +let stories = storiesOf('Tag Cloud', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + ], + imports: [ + TagCloudModule, + ] + }) + ) + let containsViewOnlyList = true; + let containsViewOnly = true; + let containsUniqueList = true; + createStory(stories, "All options", !containsViewOnlyList, containsViewOnly, containsUniqueList, "Tag cloud", "Full example of simple tag cloud."); + createStory(stories, "View only", !containsViewOnlyList, containsViewOnly, !containsUniqueList, "Tag cloud", "Full example of simple tag cloud with View only."); + createStory(stories, "View only list", containsViewOnlyList, !containsViewOnly, !containsUniqueList, "Tag cloud", "Full example of simple tag cloud with View only list."); + createStory(stories, "Unique list", !containsViewOnlyList, !containsViewOnly, containsUniqueList, "Tag cloud", "Full example of simple tag cloud with View unique list."); + + function createStory(stories, title, containsViewOnlyList, containsViewOnly, containsUniqueList, notesTitle, notesText){ + stories.add(title, () => { + let _label = text('label', 'Please Enter value'); + let _list = array('List', ['aaa', 'bbb', 'ccc'], ','); + let _isViewOnly = containsViewOnly ? boolean('View only', false) : null; + let _listViewOnly = containsViewOnlyList ? array('List of view only params', [0,3], ',') : null; + let _isUniqueList = containsUniqueList ? boolean('Unique list', false) : null; + let _uniqueErrorMessage = containsUniqueList ? text('Unique error message', 'Unique error') : null; + let _placeholder = text('place holder', 'Type a value and then click enter or'); + let _listChanged = text('*(listChanged)', 'Event throws when tag cloud list changed, see in Action logger tab.'); + + return { + props: { + listChanged: action('tag cloud list changed'), + _label, _list, _isViewOnly, _listViewOnly, _isUniqueList, _uniqueErrorMessage, _placeholder, + containsViewOnly + + }, + template: ` + + + ` + } + }, + { notes: `

    ` + notesTitle + `

    ` + notesText + `
    Use the KNOBS tab to change values.` + } + ) + } diff --git a/stories/angular/tile.stories.ts b/stories/angular/tile.stories.ts new file mode 100644 index 0000000..b177a7e --- /dev/null +++ b/stories/angular/tile.stories.ts @@ -0,0 +1,81 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { TileModule } from '../../src/angular/tiles/tile.module'; +import { SvgIconModule } from '../../src/angular/svg-icon/svg-icon.module'; +import { Mode, Size, BackgroundShape, BackgroundColor } from "../../src/angular/common/enums"; + +const mode = Object.keys(Mode); +const size = Object.keys(Size); +const background_shape: Array = Object.keys(BackgroundShape); +const background_color: Array = Object.keys(BackgroundColor); + + +let stories = storiesOf('Tiles', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + + ], + imports: [ + TileModule, + SvgIconModule + ] + }) + ) + + createStory(stories, "Tiles", "Tiles", "Full example of tiles."); + + function createStory(stories, title, notesTitle, notesText){ + stories.add(title, () => { + const _category = text('Category', 'resources_60') + const _name = text('Icon name', 'Border Element_60px') + const _mode = select('Mode', mode, 'primary', ''); + const _size = select('Size', size, 'x_large', ''); + const _backgroundShape = select('BackgroundShape', background_shape, '', ''); + const _backgroundColor = select('BackgroundColor', background_color, '', ''); + const _disabled = boolean('Disabled', false); + + return { + props: { + _category, _name, _mode, _size, _backgroundShape, _backgroundColor, _disabled + }, + template: ` + + +
    P
    +
    + +
    + + +
    + +
    + + Footer + +
    + ` + } + }, + { notes: `

    ` + notesTitle + `

    ` + notesText + `
    Use the KNOBS tab to change values.` + } + ) + } diff --git a/stories/angular/tooltip.stories.ts b/stories/angular/tooltip.stories.ts new file mode 100644 index 0000000..4f1c5f5 --- /dev/null +++ b/stories/angular/tooltip.stories.ts @@ -0,0 +1,87 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button, object } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { TooltipModule } from '../../src/angular/tooltip/tooltip.module'; +import { TooltipPlacement, ArrowPlacement } from '../../src/angular/tooltip/tooltip.directive'; + +let stories = storiesOf('Tooltip', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + ], + imports: [ + TooltipModule + ] + }) + ) + let containsShortText = true; + let containsPlaceMent = true; + let containsCustomCssClass = true; + let containsArrowOffset = true; + let containsArrowPlacement = true; + let containsTooltipOffset = true; + let containsTemplate = true + createStory(stories, "All options", containsShortText, containsPlaceMent, containsCustomCssClass, containsArrowOffset, + containsArrowPlacement, containsTooltipOffset, !containsTemplate, "Tooltip", "Full example of Tooltip."); + createStory(stories, "Multi lines", !containsShortText, !containsPlaceMent, !containsCustomCssClass, !containsArrowOffset, + !containsArrowPlacement, !containsTooltipOffset, !containsTemplate, "Tooltip", "Example of Tooltip with multi lines."); + createStory(stories, "Placement", containsShortText, containsPlaceMent, !containsCustomCssClass, !containsArrowOffset, + !containsArrowPlacement, !containsTooltipOffset, !containsTemplate, "Tooltip", "Example of Tooltip with placement."); + createStory(stories, "Customer css class", containsShortText, !containsPlaceMent, containsCustomCssClass,!containsArrowOffset, + !containsArrowPlacement, !containsTooltipOffset, !containsTemplate, "Tooltip", "Full example of Tooltip with customer css class."); + createStory(stories, "Arrow offset", containsShortText, !containsPlaceMent, !containsCustomCssClass, containsArrowOffset, + !containsArrowPlacement, !containsTooltipOffset, !containsTemplate, "Tooltip", "Full example of Tooltip with arrow offset."); + createStory(stories, "Arrow placement", containsShortText, !containsPlaceMent, !containsCustomCssClass, !containsArrowOffset, + containsArrowPlacement, !containsTooltipOffset, !containsTemplate, "Tooltip", "Full example of Tooltip with arrow placement."); + createStory(stories, "Tooltip offset", containsShortText, !containsPlaceMent, !containsCustomCssClass, !containsArrowOffset, + !containsArrowPlacement, containsTooltipOffset, !containsTemplate, "Tooltip", "Full example of Tooltip with tooltip offset."); + createStory(stories, "Tooltip with template", containsShortText, !containsPlaceMent, !containsCustomCssClass,!containsArrowOffset, + !containsArrowPlacement, !containsTooltipOffset, containsTemplate, "Tooltip", "Full example of Tooltip with template."); + + function createStory(stories, title, containsShortText, containsPlaceMent, containsCustomCssClass, containsArrowOffset, + containsArrowPlacement, containsTooltipOffset, containsTemplate, notesTitle, notesText){ + stories.add(title, () => { + const _text = text('Text', containsShortText ? 'A short text name, short text' : 'Lorem ipsum dolor sit amet, ' + + 'consectetur adipiscing elit. Sed risus nisl, egestas vitae erat non, pulvinar lacinia libero. Integer ' + + 'pulvinar pellentesque accumsan. Sed hendrerit lacus eu tempus pharetra'); + const _placement = containsPlaceMent ? object('placement', TooltipPlacement.Top) : TooltipPlacement.Top; + const _customCssClass = containsCustomCssClass ? text('custom css class', 'sdc-custom-tooltip'): null; + const _arrowOffset = containsArrowOffset ? number('Arrow offset', 10) : 10; + const _arrowPlacement = containsArrowPlacement ? object('Arrow placement', ArrowPlacement.LeftTop) : ArrowPlacement.LeftTop; + const _tooltipOffset = containsTooltipOffset ? number('Tooltip offset', 3): 3; + + return { + props: { + selectTab: action('select tab changed'), + _text, _placement, _customCssClass, _arrowOffset, _arrowPlacement, _tooltipOffset, + containsTemplate + }, + template: ` +
    Lorem ipsum dolor sit amet, + show tooltip + +
    + + +

    A long text name, very long, long text ...

    +
    + ` + } + }, + { notes: `

    ` + notesTitle + `

    ` + notesText + `
    Use the KNOBS tab to change values.` + } + ) + } diff --git a/stories/angular/validation.stories.ts b/stories/angular/validation.stories.ts new file mode 100644 index 0000000..1214021 --- /dev/null +++ b/stories/angular/validation.stories.ts @@ -0,0 +1,184 @@ +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { ValidationModule } from '../../src/angular/form-elements/validation/validation.module'; +import { FormElementsModule } from '../../src/angular/form-elements/form-elements.module'; +import { RegexPatterns } from '../../src/angular/common/enums'; +import { ButtonsModule } from '../../src/angular/buttons/buttons.module'; + +let stories = storiesOf('Validation', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + + ], + imports: [ + ValidationModule, + FormElementsModule, + ButtonsModule + + ] + }) + ) + let containRequiredValid = true; + let containRegexValid = true; + let containCustomValid = true; + let containValidationDisabled = true; + let containValidatorsDisabled = true; + createStory(stories, "All options", containRequiredValid, containRegexValid, containCustomValid, containValidationDisabled, + containValidatorsDisabled, "Validations", "Full example of validation."); + createStory(stories, "Required validator", containRequiredValid, !containRegexValid, !containCustomValid, !containValidationDisabled, + !containValidatorsDisabled, "Validations", "Example of validation with required validator."); + createStory(stories, "Regex validator", !containRequiredValid, containRegexValid, !containCustomValid, !containValidationDisabled, + !containValidatorsDisabled, "Validations", "Example of validation with regex validator."); + createStory(stories, "Custom validator", !containRequiredValid, !containRegexValid, containCustomValid, !containValidationDisabled, + !containValidatorsDisabled, "Validations", "Example of validation with custom validator."); + createStory(stories, "Validation disabled", !containRequiredValid, !containRegexValid, !containCustomValid, containValidationDisabled, + !containValidatorsDisabled, "Validations", "Example of validation with validation disabled."); + createStory(stories, "Validator disabled", !containRequiredValid, !containRegexValid, !containCustomValid, !containValidationDisabled, + containValidatorsDisabled, "Validations", "Example of validation with validators disabled."); + + let containEnterValue = true + createEmailStory(stories, "Email validation", !containEnterValue, "Validations", "Example of email validation."); + createEmailStory(stories, "Value entered", containEnterValue, "Validations", "Example of validation with value already entered."); + + function createStory(stories, title, containRequiredValid, containRegexValid, containCustomValid, containValidationDisabled, + containValidatorsDisabled, notesTitle, notesText){ + stories.add(title, () => { + const _validationDisabled = containValidationDisabled ? boolean('Validation disabled', false): false; + const _requiredMessage = containRequiredValid ? text('Required Validator message', 'Field is required!'): 'Field is required!'; + const _regexMessage = containRegexValid ? text('Regex Validator message', 'This is not a number!'): 'This is not a number!'; + const _customMessage = containCustomValid ? text('custom Validator message', 'The number should be 100'): 'The number should be 100'; + const _pattern = containRegexValid ? text('Regex Validator pattern', RegexPatterns.numbers): RegexPatterns.numbers; + + const requiredValidDisabled = containValidatorsDisabled ? boolean('Required Validator disabled', false): false; + const regexValidDisabled = containValidatorsDisabled ? boolean('Regex Validator disabled', false): false; + const customValidDisabled = containValidatorsDisabled ? boolean('Custom Validator disabled', false): false; + + const _customCallback = containCustomValid ? text ('*(Callback)', 'User function that define a validation'): null; + const _validityChanged = text('*(validityChanged)', 'Event throws when validation changed, see in Action logger tab.'); + + return { + props: { + displayRequiredValid: containRequiredValid || containValidationDisabled || containValidatorsDisabled, + displayRegexValid: containRegexValid || containValidatorsDisabled, + displayCustomValid: containCustomValid || containValidatorsDisabled, + onChange: action('validation valids'), + isValueHundred: (value: any) => { + return (Number(value) === 100) ? true : false; + }, + _validationDisabled, _requiredMessage, _regexMessage, _customMessage, _pattern, + requiredValidDisabled, regexValidDisabled, customValidDisabled + }, + template: ` + + + + + + + ` + } + }, + { notes: `

    ` + notesTitle + `

    ` + notesText + `
    Use the KNOBS tab to change values.` + } + ) + } + function createEmailStory(stories, title, conatainsEnterValue, notesTitle, notesText){ + stories.add(title, () => { + const _message = text('Validation message','This is not a valid email!'); + const _pattern = text('Regex validation pattern', RegexPatterns.email); + const validityChanged = text('*(validityChanged)', 'Event throws when validation changed, see in Action logger tab.'); + + return { + props: { + inputValue: conatainsEnterValue ? "firstName@" : "", + onChange: action('Email validation valids'), + _message, _pattern + }, + template: ` + + + + + ` + } + }, + { notes: `

    ` + notesTitle + `

    ` + notesText + `
    Use the KNOBS tab to change values.` + } + ) + } + + stories.add('Validation in drop down', () => { + const validityChanged = text('*(validityChanged)', 'Event throws when validation changed, see in Action logger tab.'); + + return { + props: { + options:[ + { + "label": "First Option Label", + "value": "firstOptionValue" + }, + { + "label": "Second Option Label", + "value": "secondOptionValue" + }, + { + "label": "Third Option Label", + "value": "thirdOptionValue", + "type": "Simple" + } + ], + onChange: action('Dropdown validation valids'), + isThirdOption: (value: any) => { + return value === 'thirdOptionValue'; + } + }, + template: ` + + + + + + ` + } +}, +{ notes: `

    Validation in dropdown

    example of validation in dropdown
    Use the KNOBS tab to change values.` +} +) + +stories.add('Validation group', () => { + const validityChanged = text('*(validityChanged)', 'Event throws when validation changed, see in Action logger tab.'); + + return { + props: { + emailPattern: RegexPatterns.email, + numberPattern: RegexPatterns.numbers, + checkValidateGroup: action('Group validation valids') + }, + template: ` + + + + + + + + + + + + + + ` + } +}, +{ notes: `

    Validation in dropdown

    example of validation in dropdown
    Use the KNOBS tab to change values.` +} +) + diff --git a/stories/ng2-component-lab/accordion.component.exp.ts b/stories/ng2-component-lab/accordion.component.exp.ts deleted file mode 100644 index 480a011..0000000 --- a/stories/ng2-component-lab/accordion.component.exp.ts +++ /dev/null @@ -1,146 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; -import {Placement} from "../../src/angular/common/enums"; - - -/************************************************** - * Adding custom styles for example - *************************************************/ -const style = document.createElement('style'); -style.innerHTML = ` -.sdc-accordion-custom-class .sdc-accordion-header, -.sdc-accordion-custom-class .sdc-accordion-body.open { - padding: 10px; - border-radius: 3px; -} -.sdc-accordion-custom-class .sdc-accordion-header { - background-color: #d2d2d2; -} -.sdc-accordion-custom-class .sdc-accordion-body.open { - border: 1px solid #d2d2d2; - margin-top: 1px; - } -`; -const head = document.getElementsByTagName('head'); -head[0].appendChild(style); - -export default experimentOn('Accordion').group('Accordion', - [ - { - id: 'simpleAccodion', - title: 'Simple accordion', - description: 'Example of accordion with default left arrow', - showSource: true, - template: ` - -

    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce consequat dictum porttitor. - Nam facilisis, dui nec maximus facilisis, nisl eros mattis arcu, nec pharetra nisl nisi vitae metus. - Vestibulum urna nunc, fringilla nec imperdiet a, varius hendrerit neque. Aliquam pulvinar turpis enim, ac hendrerit dui blandit eu. - Curabitur ut mollis arcu, ac iaculis turpis. Pellentesque lobortis leo justo. Morbi commodo cursus dignissim. - Nam orci diam, mattis eget leo vel, tincidunt interdum dui. - Donec dapibus mauris non sapien ornare, non pharetra mi commodo. -

    -
    - ` - }, - { - id: 'accordionRightArrow', - title: 'Accordion with right arrow', - description: 'Example of accordion with right arrow', - showSource: true, - context: { - arrowDirection: Placement.right, - }, - template: ` - - - - -

    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce consequat dictum porttitor. - Nam facilisis, dui nec maximus facilisis, nisl eros mattis arcu, nec pharetra nisl nisi vitae metus. - Vestibulum urna nunc, fringilla nec imperdiet a, varius hendrerit neque. Aliquam pulvinar turpis enim, ac hendrerit dui blandit eu. - Curabitur ut mollis arcu, ac iaculis turpis. Pellentesque lobortis leo justo. Morbi commodo cursus dignissim. - Nam orci diam, mattis eget leo vel, tincidunt interdum dui. - Donec dapibus mauris non sapien ornare, non pharetra mi commodo. -

    -
    - ` - }, - { - id: 'accordionRightArrowStyle', - title: 'Accordion with right arrow and custom style', - description: 'Example of accordion with right arrow and custom style', - showSource: true, - context: { - arrowDirection: Placement.right, - }, - template: ` - -

    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce consequat dictum porttitor. - Nam facilisis, dui nec maximus facilisis, nisl eros mattis arcu, nec pharetra nisl nisi vitae metus. - Vestibulum urna nunc, fringilla nec imperdiet a, varius hendrerit neque. Aliquam pulvinar turpis enim, ac hendrerit dui blandit eu. - Curabitur ut mollis arcu, ac iaculis turpis. Pellentesque lobortis leo justo. Morbi commodo cursus dignissim. - Nam orci diam, mattis eget leo vel, tincidunt interdum dui. - Donec dapibus mauris non sapien ornare, non pharetra mi commodo. -

    -
    - ` - } - , - { - id: 'accordionLeftArrowStyle', - title: 'Accordion with left arrow and custom style', - description: 'Example of accordion with left arrow and custom style', - showSource: true, - context: { - arrowDirection: Placement.left, - }, - template: ` - -

    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce consequat dictum porttitor. - Nam facilisis, dui nec maximus facilisis, nisl eros mattis arcu, nec pharetra nisl nisi vitae metus. - Vestibulum urna nunc, fringilla nec imperdiet a, varius hendrerit neque. Aliquam pulvinar turpis enim, ac hendrerit dui blandit eu. - Curabitur ut mollis arcu, ac iaculis turpis. Pellentesque lobortis leo justo. Morbi commodo cursus dignissim. - Nam orci diam, mattis eget leo vel, tincidunt interdum dui. - Donec dapibus mauris non sapien ornare, non pharetra mi commodo. -

    -
    - ` - }, - { - id: 'accordionLeftArrowStyleOpen', - title: 'Open accordion with left arrow and custom style', - description: 'Example of open accordion with left arrow and custom style', - showSource: true, - context: { - arrowDirection: Placement.left, - }, - template: ` - -

    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce consequat dictum porttitor. - Nam facilisis, dui nec maximus facilisis, nisl eros mattis arcu, nec pharetra nisl nisi vitae metus. - Vestibulum urna nunc, fringilla nec imperdiet a, varius hendrerit neque. Aliquam pulvinar turpis enim, ac hendrerit dui blandit eu. - Curabitur ut mollis arcu, ac iaculis turpis. Pellentesque lobortis leo justo. Morbi commodo cursus dignissim. - Nam orci diam, mattis eget leo vel, tincidunt interdum dui. - Donec dapibus mauris non sapien ornare, non pharetra mi commodo. -

    -
    - ` - } - ]); diff --git a/stories/ng2-component-lab/autocomplete.component.exp.ts b/stories/ng2-component-lab/autocomplete.component.exp.ts deleted file mode 100644 index a1fa3dd..0000000 --- a/stories/ng2-component-lab/autocomplete.component.exp.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -export default experimentOn('Autocomplete').group('Autocomplete', -[ - { - id: 'simpleAutocomplete', - title: 'Simple autocomplete data', - description: 'Example of auto complete with simple data', - showSource: true, - context: { - data: ['red', 'yellow', 'orange', 'green', 'white', 'black'], - selectedOption: '', - showSelectedItem: ((value: string) => { - alert(value); - }) - }, - template: ` - - - ` - }, - { - id: 'complexAutocomplete', - title: 'Complex autocomplete data', - description: 'Example of auto complete with complex data', - showSource: true, - context: { - data: [ - {id: 'redId', color: 'red'}, - {id: 'yellowId', color: 'yellow'}, - {id: 'orangeId', color: 'orange'}, - {id: 'greenId', color: 'green'}, - {id: 'whiteId', color: 'white'}, - {id: 'blackId', color: 'black'} - ], - showSelectedItem: ((value: string) => { - alert(value); - }) - }, - template: ` - - - ` - }, - { - id: 'complexAutocompleteWithBeData', - title: 'Complex autocomplete data from server', - description: 'Example of auto complete with complex data from server. (In this example the data is not really filtered, because it is from mock data)', - showSource: true, - context: { - showSelectedItem: ((value: string) => { - alert(value); - }) - }, - template: ` - - - ` - } -]); diff --git a/stories/ng2-component-lab/button.component.exp.ts b/stories/ng2-component-lab/button.component.exp.ts deleted file mode 100644 index 6c5fb04..0000000 --- a/stories/ng2-component-lab/button.component.exp.ts +++ /dev/null @@ -1,164 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -const buttonTypes = ['primary', 'secondary', 'link', 'alert']; -const buttonSizes = ['large', 'medium', 'small', 'x-small', 'default']; -const experiment = experimentOn('Button'); - -experiment.group("Default button", [ - { - id: "defaultButton", - showSource: true, - description: `Default button, does not need to supply type or size. -
    The size of the button set to 'default' so it will shrink or expand according to the content. - `, - context: { - buttonClicked: ():void => { - window.alert("OK"); - } - }, - title: "Default button", - template: ` - - - - - - - ` - } -]); - -buttonTypes.forEach((buttonType) => { - [false, true].forEach((buttonDisabled) => { - experiment.group(`Button ${buttonType} ${buttonDisabled ? ' disabled' : ''}`, [ { - id: `Button ${buttonType}${buttonDisabled ? ' disabled' : ''}`, - showSource: true, - context: { - buttonClicked: ():void => { - window.alert("OK"); - } - }, - title: `Button ${buttonType}${buttonDisabled ? ' disabled' : ''}`, - template: buttonSizes.map((buttonSize) => - ` - -
    ${buttonSize}

    - - -
    - `).join('\n') - } - ]); - }); -}); - -experiment.group("Buttons with icons", [ - { - id: "buttonsWithIcons", - showSource: true, - description: `Buttons with icons forward`, - context: { - buttonClicked: (): void => { - window.alert("OK"); - } - }, - title: "Button with icons", - template: ` - - - - - - - - - - - - - ` - } -]); - -experiment.group("Buttons with spinners", [ - { - id: "buttonsWithSpinnersRight", - showSource: true, - description: `Click the button to see the spinner shows for 2 seconds`, - context: { - buttonClicked: (button): void => { - button.show_spinner = true; - setTimeout(() => {button.show_spinner = false},2000); - }, - }, - title: "Button with spinner on the right", - template: ` - - - - ` - }, - { - id: "buttonsWithSpinnersLeft", - showSource: true, - description: `Click the button to see the spinner shows for 2 seconds`, - context: { - buttonClicked: (button): void => { - button.show_spinner = true; - setTimeout(() => {button.show_spinner = false},2000); - }, - }, - title: "Button with spinner on the left", - template: ` - - - - ` - } -]); -export default experiment; diff --git a/stories/ng2-component-lab/checkbox.component.exp.ts b/stories/ng2-component-lab/checkbox.component.exp.ts deleted file mode 100644 index 7ac53c9..0000000 --- a/stories/ng2-component-lab/checkbox.component.exp.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -export default experimentOn('Checkbox') - .group("Checkbox",[ - { - id: 'checkbox', - showSource: true, - title: 'Regular Checkbox', - description: 'Simple checkbox', - template: ``, - }, - { - id: 'checkboxChecked', - showSource: true, - title: 'Regular Checked Checkbox', - description: 'Simple checked checkbox', - template: ``, - }, - { - id: 'disabledCheckbox', - showSource: true, - title: 'Disabled checkbox', - description: 'Simple disabled checkbox', - template: ``, - }, - { - id: 'disabledCheckboxChecked', - showSource: true, - title: 'Disabled checked checkbox', - description: 'Simple disabled checked checkbox', - template: ``, - } - ]); diff --git a/stories/ng2-component-lab/checklist.component.exp.ts b/stories/ng2-component-lab/checklist.component.exp.ts deleted file mode 100644 index 4700a74..0000000 --- a/stories/ng2-component-lab/checklist.component.exp.ts +++ /dev/null @@ -1,213 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; -import { ChecklistItemModel } from "../../src/angular/checklist/models/ChecklistItem"; -import { ChecklistModel } from "../../src/angular/checklist/models/Checklist"; - -const styleCode = 'h5{color:red;} pre{background-color: #d1d1d1; padding: 10px;}'; -const checklistValuesExample1 = []; - -const checkListExample1: ChecklistModel = new ChecklistModel(checklistValuesExample1, - [new ChecklistItemModel('apple'), - new ChecklistItemModel('banana'), - new ChecklistItemModel('orange')]); - -const checklistValuesExample2 = []; -const checkListExample2: ChecklistModel = new ChecklistModel(checklistValuesExample2, - [new ChecklistItemModel('apple', false, false, null, 0), - new ChecklistItemModel('banana', false, false, null, 1), - new ChecklistItemModel('orange', false, false, null, 2)]); - -const checklistValuesExample3 = []; -const checkListExample3: ChecklistModel = new ChecklistModel(checklistValuesExample3, - [new ChecklistItemModel('apple', false, true), - new ChecklistItemModel('banana'), - new ChecklistItemModel('orange', false, true)]); - -const checklistValuesExample4 = []; -const checkListExample4: ChecklistModel = new ChecklistModel(checklistValuesExample4, - [new ChecklistItemModel('apple', true, true), - new ChecklistItemModel('banana', true), - new ChecklistItemModel('orange')]); - -const checklistValuesExample5 = []; -const innerChecklistValues = []; -const checkListExample5: ChecklistModel = new ChecklistModel(checklistValuesExample5, - [new ChecklistItemModel('apple', false, false, - new ChecklistModel(innerChecklistValues, - [new ChecklistItemModel('red'), new ChecklistItemModel('green'), new ChecklistItemModel('yellow')])), - new ChecklistItemModel('banana'), - new ChecklistItemModel('orange')]); - -const checklistFirstLevelValuesExample6 = []; -const checklistSecondLevelValuesExample6 = []; -const checklistThirdLevelValuesExample6 = []; -const checkListExample6: ChecklistModel = new ChecklistModel(checklistFirstLevelValuesExample6, - [new ChecklistItemModel('1', false, false, - new ChecklistModel(checklistSecondLevelValuesExample6, [new ChecklistItemModel('1.1'), - new ChecklistItemModel('1.2', false, false, new ChecklistModel(checklistThirdLevelValuesExample6, [new ChecklistItemModel('1.2.1'), - new ChecklistItemModel('1.2.2'), - new ChecklistItemModel('1.2.3')])), - new ChecklistItemModel('1.3')])), - new ChecklistItemModel('2'), - new ChecklistItemModel('3')]); - -export default experimentOn('Checklist') - .group("Checklist",[ - { - id: 'checklist', - showSource: true, - context: { - checklistModel: checkListExample1, - checklistValues: checklistValuesExample1 - }, - styles: [styleCode], - title: 'Checklist', - description: ` -
    -            
    The checklistModel parameter:
    - const checklistValues = []; - const checklistModel: ChecklistModel = - new ChecklistModel(checklistValues, - [new ChecklistItemModel('apple'), - new ChecklistItemModel('banana'), - new ChecklistItemModel('orange')]); -
    - `, - template: ` - Selected values: {{checklistValues.toString()}} - - `, - }, - { - id: 'checklistWithValues', - showSource: true, - context: { - checklistModel: checkListExample2, - checklistValues: checklistValuesExample2 - }, - styles: [styleCode], - title: 'Checklist with values', - description: ` -
    -                
    The checklistModel parameter:
    - const checklistValues = []; - const checklistModel: ChecklistModel = new ChecklistModel(checklistValues, - [new ChecklistItemModel('apple', false, false, null, 0), - new ChecklistItemModel('banana', false, false, null, 1), - new ChecklistItemModel('orange', false, false, null, 2)]); -
    - `, - template: ` - Selected values: {{checklistValues.toString()}} - - ` - }, - { - id: 'checklistWithSomeCheckedItems', - title: 'Checklist with some checked items', - showSource: true, - context: { - checklistModel: checkListExample3, - checklistValues: checklistValuesExample3 - }, - styles: [styleCode], - description: ` -
    The checklistModel parameter:
    - const checklistValues = []; - const checklistModel: ChecklistModel = new ChecklistModel(checklistValues, - [new ChecklistItemModel('apple', false, true), - new ChecklistItemModel('banana'), - new ChecklistItemModel('orange', false, true)]); -
    - `, - template: ` - Selected values: {{checklistValues.toString()}} - - ` - }, - { - id: 'checklistWithSomeDisabledItems', - title: 'Checklist with some disabled items', - showSource: true, - context: { - checklistModel: checkListExample4, - checklistValues: checklistValuesExample4 - }, - styles: [styleCode], - description: ` -
    The checklistModel parameter:
    - const checklistValues = []; - const checklistModel: ChecklistModel = new ChecklistModel(checklistValues, - [new ChecklistItemModel('apple', true, true), - new ChecklistItemModel('banana', true), - new ChecklistItemModel('orange')]); -
    - `, - template: ` - Selected values: {{checklistValues.toString()}} - - ` - }, - { - id: 'twoLevelsChecklist', - title: 'Multi-levels checklist', - showSource: true, - context: { - checklistModel: checkListExample5, - checklistValues: checklistValuesExample5, - innerChecklistValues: innerChecklistValues - }, - styles: [styleCode], - description: ` -
    -            
    The checklistModel parameter:
    - const checklistValues = []; - const innerChecklistValues = []; - const checklistModel: ChecklistModel = new ChecklistModel(checklistValues, - [new ChecklistItemModel('apple', false, false,new ChecklistModel(innerChecklistValues,[new ChecklistItemModel('red'), - new ChecklistItemModel('green'), - new ChecklistItemModel('yellow')])), - new ChecklistItemModel('banana'), - new ChecklistItemModel('orange')]);
    - `, - template: ` -
    Selected values: {{checklistValues.toString()}}
    -
    Inner checklist selected values: {{innerChecklistValues.toString()}}
    - - ` - }, - { - id: 'multiLevelsChecklist', - title: 'Multi-levels checklist', - showSource: true, - context: { - checklistModel: checkListExample6, - checklistFirstLevelValues: checklistFirstLevelValuesExample6, - checklistSecondLevelValues: checklistSecondLevelValuesExample6, - checklistThirdLevelValues: checklistThirdLevelValuesExample6 - }, - styles: [styleCode], - description: ` -
    The checklistModel parameter:
    - const checklistFirstLevelValues = []; - const checklistSecondLevelValues = []; - const checklistThirdLevelValues = []; - const checklistModel: ChecklistModel = new ChecklistModel(checklistFirstLevelValues, - [new ChecklistItemModel('1', false, false, - new ChecklistModel(checklistSecondLevelValues, [new ChecklistItemModel('1.1'), - new ChecklistItemModel('1.2', false, false, - new ChecklistModel(checklistThirdLevelValues, [new ChecklistItemModel('1.2.1'), - new ChecklistItemModel('1.2.2'), - new ChecklistItemModel('1.2.3')])), - new ChecklistItemModel('1.3')])), - new ChecklistItemModel('2'), - new ChecklistItemModel('3')]); -
    - `, - template: ` -
    Selected values: {{checklistFirstLevelValues.toString()}}
    -
    Second level checklist selected values: {{checklistSecondLevelValues.toString()}}
    -
    Third level checklist selected values: {{checklistThirdLevelValues.toString()}}
    - - ` - } - ]); diff --git a/stories/ng2-component-lab/colors.component.exp.ts b/stories/ng2-component-lab/colors.component.exp.ts deleted file mode 100644 index f082d90..0000000 --- a/stories/ng2-component-lab/colors.component.exp.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -const colorMap = { - 'white': '#ffffff', - 'dark-blue': '#0568ae', - 'blue': '#009fdb', - 'light-blue': '#1eb9f3', - 'blue-disabled': '#9dd9ef', - 'lighter-blue': '#e6f6fb', - 'black': '#000000', - 'text-black': '#191919', - 'rich-black': '#323943', - 'dark-gray': '#5a5a5a', - 'gray': '#959595', - 'light-gray': '#d2d2d2', - 'silver': '#eaeaea', - 'light-silver': '#f2f2f2', - 'lighter-silver':'#f8f8f8', - 'green': '#4ca90c', - 'red': '#cf2a2a', - 'light-red':'#ed4141', - 'disabled-red':'#f4adad', - 'yellow': '#ffb81c', - 'dark-purple': '#702f8a', - 'purple': '#9063cd', - 'light-purple': '#caa2dd' -}; - -export default experimentOn('Colors', 1) - .group("Color palette", [ - { - id: 'colorPalette', - showSource: true, - context: { - colorMap - }, - title: 'Color palette', - description: 'Supported design colors', - template: ``, - } - ] - ); diff --git a/stories/ng2-component-lab/components.module.ts b/stories/ng2-component-lab/components.module.ts deleted file mode 100644 index 266f047..0000000 --- a/stories/ng2-component-lab/components.module.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { NgModule } from "@angular/core"; -import { CommonModule } from "@angular/common"; -import { FormsModule } from "@angular/forms"; -import { SdcUiComponentsModule } from "../../src/angular"; -import { KeysPipe } from "./utils/pipes/keys.pipe"; -import { SearchFilterPipe } from "./pipes/search-filter-pipe"; -import { ColorsTable } from "./components/colors-table.component"; -import { ModalInnerContent } from "./components/modal-inner-content-example.component"; -import { ModalConsumer } from "./components/modal-consumer.component"; -import { SvgIconsTableComponent } from "./components/svg-icons-table.component"; -import { NotificationsExample } from "./components/notifications-example.component"; -import { Mode, Placement, Size } from "./../../src/angular/common/enums"; - -@NgModule({ - declarations: [ - ColorsTable, - KeysPipe, - ModalInnerContent, - ModalConsumer, - SearchFilterPipe, - SvgIconsTableComponent, - NotificationsExample - ], - imports: [ - CommonModule, - FormsModule, - SdcUiComponentsModule - ], - exports: [ - CommonModule, - SdcUiComponentsModule, - ModalInnerContent, - NotificationsExample, - ColorsTable, - SvgIconsTableComponent, - ModalConsumer, - SearchFilterPipe - ], - entryComponents: [ - ModalInnerContent - ], - providers: [KeysPipe] -}) -export class ComponentsModule { -} diff --git a/stories/ng2-component-lab/components/colors-table.component.ts b/stories/ng2-component-lab/components/colors-table.component.ts deleted file mode 100644 index fc7bd2f..0000000 --- a/stories/ng2-component-lab/components/colors-table.component.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Component, Input } from "@angular/core"; - -@Component({ - selector: "colors-table", - template: ` - -

    {{tableTitle}}

    -
    -
    -
    -
    {{color}}
    -
    {{tableMapColors[color]}}
    -
    -
    -` -}) -export class ColorsTable { - - @Input() tableTitle:string; - @Input() tableMapColors: Object; - - constructor() { - - } - -} diff --git a/stories/ng2-component-lab/components/modal-consumer.component.ts b/stories/ng2-component-lab/components/modal-consumer.component.ts deleted file mode 100644 index e4a3977..0000000 --- a/stories/ng2-component-lab/components/modal-consumer.component.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { Component, Input, Output, EventEmitter } from "@angular/core"; -import { ModalService } from "../../../src/angular/modals/modal.service"; -import { IModalConfig, ModalType, ModalSize } from "../../../src/angular/modals/models/modal-config"; -import { ModalInnerContent } from "./modal-inner-content-example.component"; -import { ButtonComponent } from "../../../src/angular/buttons/button.component"; -import { ModalButtonComponent } from './../../../src/angular/modals/modal-button.component'; -import { Placement } from "../../../src/angular/common/enums"; -import { ModalComponent } from "../../../src/angular/components"; - -const MODAL_CONTENT = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed risus nisl, egestas vitae erat non,' + -'pulvinar lacinia libero. Integer pulvinar pellentesque accumsan. Sed hendrerit lacus eu tempus pharetra'; - -@Component({ - selector: 'modal-consumer', - template: `` -}) -export class ModalConsumer { - @Input() action: string; - - constructor(private modalService: ModalService) { - } - - private openModal = (): void => { - if (this[this.action]) { - this[this.action](); - } - } - - private openErrorModal = (): void => { - this.modalService.openErrorModal(MODAL_CONTENT, "sampleTestId"); - } - - private openAlertModal = (): void => { - this.modalService.openAlertModal("Alert Title", MODAL_CONTENT, 'Continue', this.onConfirmAction, 'sampleTestId'); - } - - private openActionModal = (): void => { - this.modalService.openActionModal('Standard Modal', MODAL_CONTENT, "OK", this.onConfirmAction, "sampleTestId"); - } - - private onConfirmAction = (): void => { - alert("Action has been confirmed"); - } - - private openCustomModal1 = (): void => { - const modalConfig = { - size: ModalSize.medium, - title: 'Title', - type: ModalType.custom, - testId: 'sampleTestIdModal1', - buttons: [ - {id: "saveButton", text: "Save", callback: this.customModalOnSave1, closeModal: false}, - {id: "cancelButton", text: "Cancel", size: 'x-small', type: 'secondary', closeModal: true} - ] as ModalButtonComponent[] - } as IModalConfig; - this.modalService.openCustomModal(modalConfig, ModalInnerContent, {name: "Sample Content"}); - } - - private customModalOnSave1 = (): void => { - const currentInstance: ModalComponent = this.modalService.getCurrentInstance(); - const saveButton: ModalButtonComponent = currentInstance.getButtonById("saveButton"); - saveButton.show_spinner = true; - saveButton.spinner_position = Placement.right; - - // Show spinner for 2 seconds - console.log('Saving example, please wait ...'); - window.setTimeout((button: ModalButtonComponent) => { - button.show_spinner = false; - console.log('Finish saving'); - }, 2000, saveButton); - } - - private openCustomModal2 = (): void => { - const modalConfig = { - size: ModalSize.medium, - title: 'Title', - type: ModalType.custom, - testId: 'sampleTestIdModal2', - buttons: [ - {text: "Change title", callback: this.customModalChangeTitle2, closeModal: false}, - {text: "Change buttons", callback: this.customModalUpdateButtons2, closeModal: false}, - {text: "Disable close", callback: this.customModalUDisableClose2, closeModal: false} - ] - } as IModalConfig; - this.modalService.openCustomModal(modalConfig, ModalInnerContent, {name: "Sample Content"}); - } - - private customModalUDisableClose2 = (): void => { - const currentInstance: ModalComponent = this.modalService.getCurrentInstance(); - currentInstance.getCloseButton().disabled = true; - } - - private customModalChangeTitle2 = (): void => { - const currentInstance: ModalComponent = this.modalService.getCurrentInstance(); - currentInstance.setTitle('New title'); - } - - private customModalUpdateButtons2 = (): void => { - const currentInstance: ModalComponent = this.modalService.getCurrentInstance(); - const newButtons = [ - {text: "Change title", callback: this.customModalChangeTitle2, closeModal: false}, - {text: "Do nothing", closeModal: false} - ] as ModalButtonComponent[]; - currentInstance.setButtons(newButtons); - } -} diff --git a/stories/ng2-component-lab/components/modal-inner-content-example.component.ts b/stories/ng2-component-lab/components/modal-inner-content-example.component.ts deleted file mode 100644 index 1b6bed0..0000000 --- a/stories/ng2-component-lab/components/modal-inner-content-example.component.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Component, Input } from "@angular/core"; - -@Component({ - selector: "inner-content", - template: ` -
    - - - -
    -` -}) -export class ModalInnerContent { - - @Input() name:string; -} diff --git a/stories/ng2-component-lab/components/notifications-example.component.ts b/stories/ng2-component-lab/components/notifications-example.component.ts deleted file mode 100644 index 91dd95e..0000000 --- a/stories/ng2-component-lab/components/notifications-example.component.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Component, Input, ViewChild } from "@angular/core"; -import { NotificationsService } from "../../../src/angular/notifications/services/notifications.service"; -import { NotificationSettings } from "../../../src/angular/notifications/utilities/notification.config"; -import { InnerNotifContent } from "../../../src/angular/notifications/notification-inner-content-example.component"; - -@Component({ - selector: "notifications-example", - template: ` -
    - Send Success Notification - -
    -
    - Send Warning Notification - -
    -
    - Send Info Notification - -
    -
    - Send Success MultipleLine Notification - -
    -
    - Send Success Custom Notification - -
    - - -` -}) -export class NotificationsExample { - - constructor(private notifsService : NotificationsService) { - } - - sendSuccessNotif() { - this.notifsService.push(new NotificationSettings("success", 'notif success message test', 'Notif Title Success')); - } - - sendMultipleLinesSuceessNotif() { - this.notifsService.push(new NotificationSettings("success", 'notif success message test with a lot of test so we can test multiple line case lets just add blabla bcdesfg hijklmnop qrstuvw xyz abcdesfg hijklmnop qrstuvw xyz', 'Notif Title Success')); - } - - sendWarnNotif() { - this.notifsService.push(new NotificationSettings("warn", 'notif warn message test', 'Notif Title Warn')); - } - - sendInfoNotif() { - this.notifsService.push(new NotificationSettings("info", 'notif info message test', 'Notif Title Info')); - } - - sendSuccessCustomNotif() { - this.notifsService.push(new NotificationSettings( "info", 'notif XYZ', 'Notif Custom XYZ', 10000, false, true, InnerNotifContent, { notifyText : "notif info custom inner message test", notifyTitle : "Notif Custom Inner Title Info"})); - } -} diff --git a/stories/ng2-component-lab/components/svg-icons-table.component.ts b/stories/ng2-component-lab/components/svg-icons-table.component.ts deleted file mode 100644 index 732650d..0000000 --- a/stories/ng2-component-lab/components/svg-icons-table.component.ts +++ /dev/null @@ -1,189 +0,0 @@ -import { Component } from "@angular/core"; -import { Mode, Placement, Size } from "../../../src/angular/common/enums"; -import { SvgIconComponent } from "../../../src/angular/svg-icon/svg-icon.component"; -import { IDropDownOption, DropDownOptionType, DropDownTypes } from "../../../src/angular/form-elements/dropdown/dropdown-models"; - -const options1: IDropDownOption[] = [ - { - label: 'First Option', - value: 'First Option', - }, - { - label: 'Second Option', - value: 'Second Option', - }, - { - label: 'Third Option', - value: 'Third Option', - type: DropDownOptionType.Simple - } -]; - -@Component({ - selector: "svg-icons-table", - template: ` -
    -
    - - Selected icon: {{selectedIcon}}None -
    - -
    - -
    -
    - - - -
    -
    -
    - - -
    -
    - -
    - -
    -
    - -
    -
    -                        <svg-icon-label
    -                            [name]="{{selectedIcon}}"
    -                            [mode]="{{mode}}"
    -                            [size]="{{size}}"
    -                            [clickable]="{{clickable}}"
    -                            [disabled]="{{disabled}}"
    -                            [label]="{{label}}"
    -                            [labelPlacement]="{{labelPlacement}}">
    -                        </svg-icon-label>
    -                    
    -
    -
    - -
    -
    -
    - -
    -
    -`, - styles: [` - .svg-icons-table { - display: flex; - flex-flow: row wrap; - justify-content: flex-start; - align-items: stretch; - overflow-y: auto; - } - .svg-icons-table .svg-icon-cell { - border: 1px solid #999; - padding: 5px; - margin: 5px; - width: 250px; - overflow: hidden; - display: flex; - align-items: center; - cursor: pointer; - } - .svg-icons-table .svg-icon-cell.selected { - border-color: #1eb9f3; - background-color: #1eb9f3; - } - .icon-showcase { - margin: 20px 10px; - padding: 10px; - border: 1px solid #999; - background: #eee; - } - .icon-options-wrapper { - display: flex; - flex-flow: row wrap; - justify-content: flex-start; - margin-top: 10px; - } - - .icon-options-checkboxes-wrapper { - display: flex; - flex-flow: row; - margin-top: 10px; - } - - .icon-options-checkboxes { - margin-top: 27px; - margin-right: 30px; - } - - .icon-options-label { - margin-right: 30px; - } - - .icon-code pre { - user-select: text; - } - - sdc-dropdown { - display: inline-block; - min-width: 160px; - } - - sdc-dropdown .sdc-dropdown { - } -`] -}) -export class SvgIconsTableComponent { - public iconsNames: string[]; - public selectedIcon: string; - - public modeOptions; - public sizeOptions; - public labelPlacementOptions; - - private mode: Mode; - private size: Size; - private labelPlacement: Placement; - private clickable: boolean; - private disabled: boolean; - private label: string; - - private defaultIconSettings: {mode: Mode, size: Size}; - - constructor() { - this.iconsNames = Object.keys(SvgIconComponent.Icons); - this.mode = null; - this.size = Size.medium; - this.clickable = false; - this.disabled = false; - this.defaultIconSettings = { mode: Mode.info, size: Size.small }; - - this.modeOptions = [{value: null, label: 'NONE'}].concat(Object.keys(Mode).map((modeKey) => ({ - value: modeKey, - label: Mode[modeKey] - }))); - - this.sizeOptions = Object.keys(Size).map((sizeKey) => ({ - value: sizeKey, - label: Size[sizeKey] - })); - - this.labelPlacementOptions = Object.keys(Placement).map((placementKey) => ({ - value: placementKey, - label: Placement[placementKey] - })); - - this.setDefaults(); - } - - private setDefaults = (): void => { - this.label = 'Some label'; - this.selectedIcon = "attachment"; - this.mode = Mode.primary; - this.labelPlacement = Placement.right; - } - - public selectIcon(iconName) { - this.selectedIcon = iconName; - } -} diff --git a/stories/ng2-component-lab/dropdown.component.exp.ts b/stories/ng2-component-lab/dropdown.component.exp.ts deleted file mode 100644 index 025409e..0000000 --- a/stories/ng2-component-lab/dropdown.component.exp.ts +++ /dev/null @@ -1,195 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; -import { IDropDownOption, DropDownOptionType, DropDownTypes } from "../../src/angular/form-elements/dropdown/dropdown-models"; - -const options1: IDropDownOption[] = [ - { - label: 'First Option Label', - value: 'firstOptionValue', - }, - { - label: 'Second Option Label', - value: 'secondOptionValue', - }, - { - label: 'Third Option Label', - value: 'thirdOptionValue', - type: DropDownOptionType.Simple - } -]; - -const options2: IDropDownOption[] = [ - { - label: 'Header Label', - value: 'headerValue', - type: DropDownOptionType.Header - }, - { - label: 'First Option Label', - value: 'firstOptionValue', - type: DropDownOptionType.Simple - }, - { - label: 'Disabled Option Label', - value: 'headerValue', - type: DropDownOptionType.Disable - }, - { - label: 'Second Option Label', - value: 'secondOptionValue', - type: DropDownOptionType.Simple - }, - { - label: 'Ruler Label', - value: 'rulerValue', - type: DropDownOptionType.HorizontalLine - }, - { - label: 'Third Option Label', - value: 'thirdOptionValue', - type: DropDownOptionType.Simple - }, - { - label: 'Fourth Option Label', - value: 'FourthOptionValue', - type: DropDownOptionType.Simple - }, - { - label: 'Fifth Option Label', - value: 'fifthOptionValue', - type: DropDownOptionType.Simple - }, - { - label: 'Ruler Label', - value: 'rulerValue', - type: DropDownOptionType.HorizontalLine - }, - { - label: 'Third Option Label', - value: 'thirdOptionValue', - type: DropDownOptionType.Simple - }, - { - label: 'Fourth Option Label', - value: 'FourthOptionValue', - type: DropDownOptionType.Simple - }, - { - label: 'Fifth Option Label', - value: 'fifthOptionValue', - type: DropDownOptionType.Simple - } -]; - -export default experimentOn('DropDown') - .group("DropDown", [ - { - id: 'normalDropDown', - showSource: true, - context: { - options: options1, - onChange: function(option) { - this.valueSelected = option.value; - } - }, - title: 'Normal DropDown', - description: 'Normal DropDown', - template: ` - -
    Selected value:{{valueSelected}}
    - ` - }, { - id: 'groupDropDown', - showSource: true, - context: { - options: options2, - onChange: function(option) { - this.valueSelected = option.value; - } - }, - title: 'DropDown with groups', - description: 'DropDown with groups', - template: ` - -
    Selected value:{{valueSelected}}
    - ` - }, - { - id: 'groupDropDownPreSelect', - showSource: true, - context: { - options: options2, - onChange: function(option) { - this.valueSelected = option.value; - } - }, - title: 'DropDown with groups and pre-selected value', - description: 'DropDown with groups and pre-selected value', - template: ` - -
    Selected value:{{valueSelected}}
    - ` - }, - { - id: 'headlesspDropDown', - showSource: true, - context: { - options: options2, - dropDownHedlessType: DropDownTypes.Headless, - onChange: function(option) { - this.valueSelected = option.value; - } - }, - title: 'Headless and Labeless DropDown', - description: 'Headless and labeless DropDown', - template: ` - - -
    Selected value:{{valueSelected}}
    - ` - }, - { - id: 'disabledDropDown', - showSource: true, - context: { - options: options2, - onChange: function(option) { - this.valueSelected = option.value; - } - }, - title: 'Disabled DropDown', - description: 'Disabled DropDown', - template: ` - -
    Selected value:{{valueSelected}}
    - ` - }, - { - id: 'normalAutoDropDown', - showSource: true, - context: { - options: options1, - dropDownAutoType: DropDownTypes.Auto, - onChange: function(option) { - this.valueSelected = option.value; - } - }, - title: 'Normal Auto DropDown', - description: 'Normal Auto DropDown', - template: ` - -
    Selected value:{{valueSelected}}
    - ` - } - ]); diff --git a/stories/ng2-component-lab/filter-bar.component.exp.ts b/stories/ng2-component-lab/filter-bar.component.exp.ts deleted file mode 100644 index 12a287d..0000000 --- a/stories/ng2-component-lab/filter-bar.component.exp.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; -import { SearchFilterPipe } from './pipes/search-filter-pipe'; - -const action = (e): void => { - console.log("The search query was changed to: ", e); -}; - -export default experimentOn('Filter Bar').group('FilterBar', [ - { - id: 'filterBar', - title: 'Filter bar', - description: ` - The filter bar component text is updated (after debounce time, - default 200 miliseconds) while user write something. - In this example the event on search query changed: - const action = (e): void => { - console.log("The search query was changed to: ", e); - }; - `, - context: { - onChange: action - }, - showSource: true, - template: ` - - -
    - Text to search: {{searchText}} - ` - }, - { - id: 'filterBarWithData', - title: 'Filter bar with data', - description: ` - Example of filter bar component with debounce 100 miliseconds, - and with example pipe for filterring. - `, - context: { - data: ['apple', 'banana', 'orange', 'peach'] - }, - showSource: true, - template: ` - - -
      -
    • {{item}}
    • -
    - ` - } -]); diff --git a/stories/ng2-component-lab/infinite-scroll.component.exp.ts b/stories/ng2-component-lab/infinite-scroll.component.exp.ts deleted file mode 100644 index bd20be5..0000000 --- a/stories/ng2-component-lab/infinite-scroll.component.exp.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -const basicContext = { - scrollContainerId: 'scrollContainer', - numLines: Array(20).fill(null), - hitBottomCount: 0, - pageCount: 0, - isPageLoading: false, - insertPageImmediately: function(pageNum) { - const scrollContainerElem: HTMLElement = document.getElementById(this.scrollContainerId); - scrollContainerElem.appendChild(document.createElement('hr')); - Array(10).fill(null).forEach((_, i) => { - const lineElem = document.createElement('div'); - lineElem.innerHTML = `Page ${pageNum} - line ${i + 1}`; - scrollContainerElem.appendChild(lineElem); - }); - }, - loadPageAsync: function(pageNum, timeout) { - return new Promise((resolve) => { - setTimeout(() => { - this.insertPageImmediately(pageNum); - resolve(); - }, timeout); - }); - }, - onScrollHitBottom: function() { - this.hitBottomCount++; - } -}; - -const basicStyle = ` - .scroll-container { - margin: 12px; - border: none; - padding: 5px; - width: 200px; - height: 100px; - overflow: auto; - font-size: 20px !important; - box-shadow: #666 1px 1px 10px; - } - - .example-source { - background: #eeeeee; - padding: 10px; - border: 1px solid #999999; - } - .example-source pre { - overflow: hidden; - background: #dddddd; - margin-top: 5px; - padding: 5px; - user-select: text; - } -`; -const makeBasicStyleDistance = (distance: number) => ` - .scroll-container::after { - display: block; - content: ''; - height: ${distance}px; - background: red; - } -`; - -export default experimentOn('Infinite-Scroll') - .group("Infinite Scroll",[ - { - id: 'infiniteScrollUsage', - showSource: true, - context: Object.assign({}, basicContext), - title: 'Infinite scroll usage', - description: 'Infinite scroll usage', - styles: [basicStyle], - template: ` -
    -
    - Line {{i + 1}} -
    -
    - Hit bottom for {{hitBottomCount}} times! -
    - onScrollHitBottom declaration: -
    {{onScrollHitBottom}}
    -
    - ` - }, - { - id: 'infiniteScrollUsageWithDistance', - showSource: true, - title: 'Infinite scroll usage with distance', - context: Object.assign({}, basicContext), - styles: [basicStyle, makeBasicStyleDistance(50)], - description: '', - template: ` -
    -
    - Line {{i + 1}} -
    -
    - Hit bottom for {{hitBottomCount}} times! -
    - onScrollHitBottom declaration: -
    {{onScrollHitBottom}}
    -
    - ` - }, - { - id: 'infiniteScrollUsageWithExpandingContent', - title: 'Infinite scroll usage with expanding content', - showSource: true, - context: Object.assign({}, basicContext, { - scrollContainerId: 'scrollContainer1', - onScrollHitBottom: function() { - this.hitBottomCount++; - this.insertPageImmediately(this.pageCount + 1); - this.pageCount++; - } - }), - styles: [basicStyle, makeBasicStyleDistance(20)], - template: ` -
    -
    - Line {{i + 1}} -
    -
    - Hit bottom for {{hitBottomCount}} times!
    - Loaded {{pageCount}} pages! -
    - onScrollHitBottom declaration: -
    {{onScrollHitBottom}}
    -
    - ` - }, - { - id: 'infiniteScrollUsageWithExpandingContentAsynchronous', - title: 'Infinite scroll usage with expanding content asynchronous', - showSource: true, - context: Object.assign({}, basicContext, { - scrollContainerId: 'scrollContainer2', - onScrollHitBottom: function() { - this.hitBottomCount++; - if (!this.isPageLoading) { - this.isPageLoading = true; - this.loadPageAsync(this.pageCount + 1, 5000).then(() => { - this.pageCount++; - this.isPageLoading = false; - }); - } - } - }), - styles: [basicStyle, makeBasicStyleDistance(20)], - template: ` -
    -
    - Line {{i + 1}} -
    -
    - Hit bottom for {{hitBottomCount}} times!
    - Loaded {{pageCount}} pages! LOADING page #{{this.pageCount + 1}} ... -
    - onScrollHitBottom declaration: -
    {{onScrollHitBottom}}
    -
    - ` - } - ]); diff --git a/stories/ng2-component-lab/input.component.exp.ts b/stories/ng2-component-lab/input.component.exp.ts deleted file mode 100644 index 7e931d6..0000000 --- a/stories/ng2-component-lab/input.component.exp.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -const valueChange = (value: any): void => { - console.log('The value was changed! >>>>', value); -}; - -export default experimentOn('Input') - .group("Input",[ - { - id: 'normalInput', - showSource: true, - title: 'Normal input', - description: 'Normal input', - template: ` - - ` - }, - { - id: 'disabledInput', - showSource: true, - title: 'Disabled input', - description: 'Disabled input', - template: ` - - ` - }, - { - id: 'InputTypeNumber', - showSource: true, - title: 'Input type number', - description: 'Input type number', - template: ` - - ` - }, - { - id: 'Input required', - title: 'Input required', - description: 'Input required (this add red * to the label, but does not perform validation, use sdc-validation for validation)', - showSource: true, - template: ` - - ` - }, - { - id: 'inputWithMaxLength', - title: 'Input with max length', - description: 'Input with max length', - showSource: true, - template: ` - - ` - }, - { - id: 'inputWithPlaceholder', - title: 'Input with placeholder, custom class, and tests ID', - description: 'Input with placeholder', - showSource: true, - template: ` - - ` - }, - { - id: 'inputWithDebounce', - title: 'Input with debounce time', - description: `
    On value change event code:
    -        const valueChange = (value: any): void => {
    -            console.log('The value was changed! >>>>', value);
    -        };
    -        This event will happen 5 sec after the change
    -        
    `, - showSource: true, - context: { - changeEvent: valueChange - }, - template: ` - - ` - }]); diff --git a/stories/ng2-component-lab/modals.component.exp.ts b/stories/ng2-component-lab/modals.component.exp.ts deleted file mode 100644 index e7e38bc..0000000 --- a/stories/ng2-component-lab/modals.component.exp.ts +++ /dev/null @@ -1,126 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -const sourceStyles:string =` - .example-source { - background: #eeeeee; - padding: 10px; - border: 1px solid #999999; - margin-top:30px; - } - .example-source pre { - overflow: hidden; - background: #dddddd; - margin-top: 5px; - padding: 5px; - user-select: text; - } - .example-source pre .comment{ - color:#666; - opacity:0.4; - font-style:italic; - transition: opacity 400ms ease-in; - } - .example-source pre:hover .comment { - opacity:1; - } -`; - -export default experimentOn('Modals') - .group("Modals", [ - { - id: 'standardModal', - showSource: false, - title: 'Standard modal', - description: 'Opens a modal with a custom title, message, and confirm button with a callback.', - template: ` - -
    Source Code: -
    -          const MODAL_CONTENT = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed risus nisl, egestas vitae erat non,' +
    -            'pulvinar lacinia libero. Integer pulvinar pellentesque accumsan. Sed hendrerit lacus eu tempus pharetra';
    -
    -          this.modalService.openActionModal('Standard Modal', MODAL_CONTENT, "OK", this.onConfirmAction, "sampleTestId");
    -
    -          private onConfirmAction = ():void => {{ '{' }}
    -            alert("Action has been confirmed");
    -          {{ '}' }};
    -        
    `, - styles: [sourceStyles] - }, - { - id: 'alertModal', - showSource: false, - title: 'Alert modal', - description: 'Opens a standard alert modal with a custom title and message.', - template: ` - - - -
    Source Code: -
    -          const MODAL_CONTENT = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed risus nisl, egestas vitae erat non,' +
    -          'pulvinar lacinia libero. Integer pulvinar pellentesque accumsan. Sed hendrerit lacus eu tempus pharetra';
    -
    -          this.modalService.openAlertModal("Alert Title", MODAL_CONTENT, "Continue", this.onConfirmAction, "sampleTestId");
    -        
    `, - styles: [sourceStyles] - }, - { - id: 'errorModal', - showSource: false, - title: 'Error modal', - description: `Opens a standard error modal with a custom message.`, - template: ` -
    Source Code: -
    -
    -          this.modalService.openErrorModal("An error has occurred!", "sampleTestId");
    -        
    `, - styles: [sourceStyles] - }, - { - id: 'customModal1', - showSource: false, - title: 'Custom modal 1', - description: 'Opens a modal with dynamic inner content and customizable title, buttons, and callbacks.', - template: ` - -
    Source Code: -
    -
    -          //create modal config object 
    -          let modalConfig:IModalConfig = {{ '{' }}
    -          size: ModalSize.small,
    -          title: 'Title',
    -          type: ModalType.standard,
    -          buttons: [
    -                    {{ '{' }}text:"Save", size:"'x-small'", callback:this.customModalOnSave, closeModal:false{{ '}' }},
    -                    {{ '{' }}text:"Cancel", size:"'x-small'", closeModal:true{{ '}' }}]
    -            {{ '}' }};
    -
    -          //open modal with dynamically created 'modalInnerContent' example component. Send data object with input 'name'. 
    -          this.modalService.openCustomModal(modalConfig, ModalInnerContent, {{ '{' }}name: "Sample Content"{{ '}' }});
    -
    -          private customModalOnDone = ():void => {{ '{' }}
    -              let currentInstance:any = this.modalService.getCurrentInstance();
    -              alert("Save with result: " + currentInstance.innerModalContent.instance.name);
    -          {{ '}' }};
    -
    -          private customModalOnSave = ():void => {{ '{' }}
    -              let currentInstance:any = this.modalService.getCurrentInstance();
    -              alert("Save with result: " + currentInstance.innerModalContent.instance.name);
    -          {{ '}' }};
    -        
    `, - styles: [sourceStyles] - }, - { - id: 'customModal2', - showSource: false, - title: 'Custom modal 2', - description: 'Opens a modal with, and change his buttons and title', - template: ` - - `, - styles: [sourceStyles] - } - ]); diff --git a/stories/ng2-component-lab/notification.component.exp.ts b/stories/ng2-component-lab/notification.component.exp.ts deleted file mode 100644 index ba2ba24..0000000 --- a/stories/ng2-component-lab/notification.component.exp.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -export default experimentOn('Notification') - .group("Default Notification",[ - { - id: 'notificationContainer', - showSource: true, - title: 'Notification Container', - description: 'container example ...', - template: ``, - }]); diff --git a/stories/ng2-component-lab/pipes/search-filter-pipe.ts b/stories/ng2-component-lab/pipes/search-filter-pipe.ts deleted file mode 100644 index 5469eb4..0000000 --- a/stories/ng2-component-lab/pipes/search-filter-pipe.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Pipe, PipeTransform } from '@angular/core'; - -@Pipe ({ - name: 'PipeSearchFilter', -}) -export class SearchFilterPipe implements PipeTransform { - public transform(value, text: string) { - if (!text || !text.length) { - return value; - } - return value.filter((item) => { - return item.toLowerCase().indexOf(text.toLowerCase()) > -1; - }); - } -} diff --git a/stories/ng2-component-lab/popup-menu.component.exp.ts b/stories/ng2-component-lab/popup-menu.component.exp.ts deleted file mode 100644 index 12da361..0000000 --- a/stories/ng2-component-lab/popup-menu.component.exp.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -export default experimentOn('Menu') - .group("Popups",[ - { - id: 'basicPopupMenuStatic', - showSource: true, - title: 'Basic popup menu (static)', - description: 'Basic popup menu (static)', - template: ` - - - - - - - - - - - First - - - - - - - - - - - Selected - - - - - - - - - - - Disabled - - - - - - - - - - - - Second - - - ` - }, - { - id: 'basicMenuRelative', - title: 'Basic menu (relative)', - description: 'Basic menu (relative)', - showSource: true, - context: { - showSelectedItem: (msg, color) => { - const elm = document.getElementById('selectedItem'); - elm.style.color = color; - elm.innerHTML = msg; - } - }, - styles: [` - .message { - position: absolute; - top: 0; left: 0; - color: white; - } - .click-area { - position: absolute; - width: 100%; - height: 100%; - } - `], - template: - ` -
    - Click in the box...
    - (popup menu is {{menuStatus === undefined ? 'never opened' : (menuStatus ? 'open at '+menuPos.x+' , '+menuPos.y : 'closed')}})
    - selected: -
    -
    - - First - Disabled - - Second - Third (none) - -
    -
    - ` - } - ]); diff --git a/stories/ng2-component-lab/radio.component.exp.ts b/stories/ng2-component-lab/radio.component.exp.ts deleted file mode 100644 index aa3959b..0000000 --- a/stories/ng2-component-lab/radio.component.exp.ts +++ /dev/null @@ -1,179 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -export default experimentOn('Radios') - .group("Radios",[ - { - id: 'radioButtonsGroupTwoWaysBinding', - showSource: true, - context: { - selectedValue: "val2" - }, - title: 'Radio buttons group (two ways binding)', - description: 'Radio buttons group (two ways binding)', - template: - ` - -
    Selected Radio: {{selectedValue}}
    - ` - }, - { - id: 'radioButtonsGroupDisabled', - title: 'Radio buttons group disabled', - description: 'Radio buttons group disabled', - showSource: true, - context: { - selectedValue: "val1" - }, - template: ` - -
    Selected Radio: {{selectedValue}}
    - ` - }, - { - id: 'radioButtonsGroupPartiallyDisabled', - title: 'Radio buttons group partially disabled', - description: 'Radio buttons group partially disabled', - showSource: true, - context: { - selectedValue: "val2" - }, - template: ` - -
    Selected Radio: {{selectedValue}}
    - ` - }, - { - id: 'radioButtonsGroupVertical', - title: 'Radio buttons group vertical', - description: 'Radio buttons group vertical', - showSource: true, - context: { - selectedValue: "val1" - }, - template: ` - -
    Selected Radio: {{selectedValue}}
    - ` - }, - { - id: 'radioButtonsGroupGetValue', - title: 'Radio buttons group get value', - description: 'Radio buttons group get value', - showSource: true, - context: { - selectedValue: "val1", - getSelectedValue: (val)=>{ - alert(val); - } - }, - template: ` - -
    Selected Radio: {{selectedValue}}
    -
    - ` - }, - { - id: 'radioButtonsGroupSelectValue', - title: 'Radio buttons group select value', - description: 'Radio buttons group select value', - showSource: true, - context: { - selectedValue: "val1" - }, - template: ` - -
    Selected Radio: {{selectedValue}}
    -
    - ` - } - ]); diff --git a/stories/ng2-component-lab/search-bar.component.exp.ts b/stories/ng2-component-lab/search-bar.component.exp.ts deleted file mode 100644 index 4a7e1fd..0000000 --- a/stories/ng2-component-lab/search-bar.component.exp.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -export default experimentOn('Search Bar').group('SearchBar', [ - { - id: 'search-bar', - title: 'Search Bar', - description: "The search text is updated on click on the magnify", - showSource: true, - template: ` - The text to search: {{searchText}} - - - ` - } -]); diff --git a/stories/ng2-component-lab/svg-icon.component.exp.ts b/stories/ng2-component-lab/svg-icon.component.exp.ts deleted file mode 100644 index c87727d..0000000 --- a/stories/ng2-component-lab/svg-icon.component.exp.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; -import { Mode, Size } from "../../src/angular/common/enums"; - -export default experimentOn('Icons') - .group('SvgIcons', [ - { - id: 'SvgIcons', - showSource: false, - title: 'SVG Icons', - template: ` - - ` - } - ]); diff --git a/stories/ng2-component-lab/tabs.component.exp.ts b/stories/ng2-component-lab/tabs.component.exp.ts deleted file mode 100644 index ff4c0c5..0000000 --- a/stories/ng2-component-lab/tabs.component.exp.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -export default experimentOn('Tabs').group('Tabs', [ - { - id: 'simpleTabs', - title: 'Simple tabs with text title', - description: "Simple tabs with text title", - showSource: true, - template: ` - - This is tab 1 - This is tab 2 - - ` - }, - { - id: 'simpleTabsWithIcons', - title: 'Simple tabs with icon title', - description: "Simple tabs with icon title", - showSource: true, - template: ` - - This is tab 1 - This is tab 2 - - ` - } -]); diff --git a/stories/ng2-component-lab/tag-cloud.component.exp.ts b/stories/ng2-component-lab/tag-cloud.component.exp.ts deleted file mode 100644 index 83ad03c..0000000 --- a/stories/ng2-component-lab/tag-cloud.component.exp.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -export default experimentOn('Tag Cloud').group('Tag Cloud', [ - { - id: 'list', - title: 'Simple tag-cloud', - description: 'Simple tag-cloud', - showSource: true, - template: ` - - - - ` - }, - { - id: 'unique-tag-cloud', - title: 'List with unique validation', - description: 'List with unique validation', - showSource: true, - template: ` - - - - ` - }, - { - id: 'disabled-tag-cloud', - title: 'Disabled tag-cloud', - description: 'When the parameter isViewOnly = true, the tag-cloud control is disabled', - showSource: true, - template: ` - - - - ` - }, - { - id: 'tag-cloud-with-disabled-items', - title: 'List with some readonly items', - description: 'The parameter isViewOnly can get an array of indexes of tag-cloud items.', - showSource: true, - template: ` - - - - ` - } -]); - diff --git a/stories/ng2-component-lab/tiles.component.exp.ts b/stories/ng2-component-lab/tiles.component.exp.ts deleted file mode 100644 index 572b6ca..0000000 --- a/stories/ng2-component-lab/tiles.component.exp.ts +++ /dev/null @@ -1,194 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; - -const alert1 = window.alert; -const console1 = console.log; - -export default experimentOn('Tiles') - .group("Tiles",[ - { - id: 'tileSampleBlue', - showSource: true, - context: { - alert: alert1, - console: console1 - }, - title: 'Tile sample blue', - description: 'Tile sample blue', - template: ` - - -
    P
    -
    - -
    -
    - - - vsp_new_icon - - - - - - - - - - -
    -
    - -
    - - Footer - -
    - ` - }, - { - id: 'tileSamplePurple', - title: 'Tile sample purple', - description: 'Tile sample purple', - showSource: true, - template: ` - - -
    P
    -
    - -
    -
    - - - vsp_new_icon - - - - - - - - - - -
    -
    - -
    - - Footer - -
    - ` - }, - { - id: 'tileSampleWithoutFooter', - title: 'Tile sample without footer', - description: 'Tile sample without footer', - showSource: true, - template: ` - - -
    P
    -
    - -
    -
    - - - vsp_new_icon - - - - - - - - - - -
    -
    - -
    -
    - ` - }, - { - id: 'tileSampleWithoutHeader', - title: 'Tile sample without header', - description: 'Tile sample without header', - showSource: true, - template: ` - - -
    -
    - - - vsp_new_icon - - - - - - - - - - -
    -
    - -
    - - Footer - -
    - ` - }, - { - id: 'tileJustWithInfo', - title: 'Tile just with info', - description: 'Tile just with info', - showSource: true, - template: ` - - -
    -
    - - - vsp_new_icon - - - - - - - - - - -
    -
    - -
    -
    ` - } - ]); diff --git a/stories/ng2-component-lab/tooltip.directive.exp.ts b/stories/ng2-component-lab/tooltip.directive.exp.ts deleted file mode 100644 index 9e1dd0b..0000000 --- a/stories/ng2-component-lab/tooltip.directive.exp.ts +++ /dev/null @@ -1,231 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; -import { ArrowPlacement, TooltipPlacement } from '../../src/angular/tooltip/tooltip.directive'; - -const customTemplate = ` - .sdc-custom-tooltip-template-title { - font-size: 20px; - font-weight: bold; - background-color: $black; - color: $white; - text-align: center; - } - - .sdc-custom-tooltip-template-content { - background-color: $black; - color: $white; - display: inline-block; - text-align: center; - } - - .sdc-custom-tooltip-template-image { - width: 100%; - height:100%; - display: inline-block; - text-align: center; - background-color: #ffffff; - } -`; - -export default experimentOn('Tooltip') - .group("Tooltip",[ - { - id: 'leftAlignmentTextTooltip', - showSource: true, - title: 'Tooltip with short text (left placement)', - description: 'left placement', - context: { - placement: TooltipPlacement.Left, - arrowPlacement: ArrowPlacement.LeftTop - }, - template: ` -
    Lorem ipsum dolor sit amet, - show tooltip - - ,consectetur adipiscing elit. Sed risus nisl, egestas vitae erat non, pulvinar lacinia libero. - Integer pulvinar pellentesque accumsan. - show tooltip - - Sed hendrerit lacus eu tempus pharetra -
    - ` - }, - { - id: 'leftAlignmentMultiLineTextTooltip', - showSource: true, - title: 'Tooltip with multi line text (left placement)', - description: 'left placement', - context: { - placement: TooltipPlacement.Left, - arrowPlacement: ArrowPlacement.LeftTop - }, - template: ` -
    - The is text example, - show tooltip - - , more text -
    - ` - }, - { - id: 'customStyleTooltip', - showSource: true, - title: 'Tooltip with custom style', - description: 'Tooltip with custom style, define your class and style it via css.', - context: { - text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed risus nisl, egestas vitae erat non, pulvinar lacinia libero. Integer pulvinar pellentesque accumsan. Sed hendrerit lacus eu tempus pharetra' - }, - template: ` - -
    - Some text example, - show tooltip, more text -
    - ` - }, - { - id: 'rightAlignmentHtmlTooltip', - showSource: true, - title: 'Tooltip with HTML template (right placement)', - description: 'right placement', - context: { - placement: TooltipPlacement.Right, - arrowPlacement: ArrowPlacement.LeftTop - }, - styles: [customTemplate], - template: ` - Template Input: -
    
    -                    

    A long text name, very long, long text ...

    - ]]>
    - -
    - The is text example, - show tooltip - - , more text -
    - - - ` - }, - { - id: 'rightAlignmentHtmlCustomStyleTooltip', - showSource: true, - title: 'Tooltip with HTML template and custom style (right placement)', - description: 'right placement', - context: { - placement: TooltipPlacement.Right, - arrowPlacement: ArrowPlacement.LeftTop - }, - styles: [customTemplate], - template: ` - Template Input: -
    Title... Title... Title... Title... Title...

    - -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed risus nisl, egestas vitae erat non, pulvinar lacinia libero. Integer pulvinar pellentesque accumsan. Sed hendrerit lacus eu tempus pharetra

    - ]]>
    - -
    - The is text example, - show tooltip - - , more text -
    - - - ` - }, - { - id: 'topAlignmentTextTooltip', - showSource: true, - title: 'Tooltip with text (top placement)', - description: 'top placement', - context: { - placement: TooltipPlacement.Top, - arrowPlacement: ArrowPlacement.LeftTop - }, - template: ` -
    - The is text example, - show tooltip - - , more text -
    - ` - }, - { - id: 'bottomAlignmentHtmlTooltip', - showSource: true, - title: 'Tooltip with HTML template (bottom placement)', - description: 'bottom placement', - context: { - placement: TooltipPlacement.Bottom, - arrowPlacement: ArrowPlacement.LeftTop - }, - template: ` - Template Input: -
    A long text name,
    -                    
    very long, long text
    - ]]>
    - -
    - The is text example, - link example - , more text -
    - - ` - }, - ]); diff --git a/stories/ng2-component-lab/utils/mock.json b/stories/ng2-component-lab/utils/mock.json deleted file mode 100644 index 6cdaf3b..0000000 --- a/stories/ng2-component-lab/utils/mock.json +++ /dev/null @@ -1,6 +0,0 @@ -[{"id": "redId", "color": "red"}, -{"id": "yellowId", "color": "yellow"}, -{"id": "orangeId", "color": "orange"}, -{"id": "greenId", "color": "green"}, -{"id": "whiteId", "color": "white"}, -{"id": "blackId", "color": "black"}] diff --git a/stories/ng2-component-lab/utils/pipes/keys.pipe.ts b/stories/ng2-component-lab/utils/pipes/keys.pipe.ts deleted file mode 100644 index 2a58cd8..0000000 --- a/stories/ng2-component-lab/utils/pipes/keys.pipe.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Pipe, PipeTransform } from '@angular/core'; - -@Pipe({name: 'keys'}) -export class KeysPipe implements PipeTransform { - transform(value, args:string[]) : any { - let keys = []; - for (let key in value) { - keys.push(key); - } - return keys; - } -} - diff --git a/stories/ng2-component-lab/validation.component.exp.ts b/stories/ng2-component-lab/validation.component.exp.ts deleted file mode 100644 index 7f18c93..0000000 --- a/stories/ng2-component-lab/validation.component.exp.ts +++ /dev/null @@ -1,162 +0,0 @@ -import { experimentOn } from '@islavi/ng2-component-lab'; -import { RegexPatterns } from '../../src/angular/common/enums'; -import { DropDownOptionType, IDropDownOption } from './../../src/angular/form-elements/dropdown/dropdown-models'; - -const options1: IDropDownOption[] = [ - { - label: 'First Option', - value: 'First Option', - }, - { - label: 'Second Option', - value: 'Second Option', - }, - { - label: 'Third Option', - value: 'Third Option', - type: DropDownOptionType.Simple - } -]; - -export default experimentOn('Validation') - .group("Validation", [ - { - id: 'validation1', - showSource: true, - title: 'Simple validation', - description: 'Simple validation (validating that email is valid and that user inserted something in the field). \ - By default the validation starts after first key press', - context: { - emailPattern: RegexPatterns.email - }, - template: ` - - - - - - ` - }, - { - id: 'validation2', - showSource: true, - title: 'Simple validation', - description: 'Simple validation', - context: { - numbersPattern: RegexPatterns.numbers, - isValueHundred: (value: any) => { - return (Number(value) === 100) ? true : false; - } - }, - template: ` - - - - - - ` - }, - { - id: 'validation3', - showSource: true, - title: 'Disabled validation', - description: 'Disabled validation', - context: { - emailPattern: RegexPatterns.email - }, - template: ` - - - - - - ` - }, - { - id: 'validation4', - showSource: true, - title: 'Validation with value already entered', - description: 'Validation with value already entered', - context: { - emailPattern: RegexPatterns.email - }, - template: ` - - - - - - ` - }, - { - id: 'validation5', - showSource: true, - title: 'Validation with validity changed callback', - description: 'Simple validation with alert when validity changes', - context: { - numbersPattern: RegexPatterns.numbers, - validityChanged: (newState: boolean) => { - alert("Validity has changed to " + newState); - } - }, - template: ` - - - - - ` - }, - { - id: 'dropdownWithValidation', - showSource: true, - context: { - options: options1, - isThirdOption: (value: any) => { - return value === 'Third Option'; - } - }, - title: 'DropDown with validation', - description: 'DropDown with validation', - template: ` - - - - - - ` - }, - { - id: 'validationGroup', - showSource: true, - context: { - options: options1, - emailPattern: RegexPatterns.email, - isThirdOption: (value: any) => { - return value === 'Third Option'; - }, - validateGroup: (validationGroup) => { - validationGroup.validate(); - } - }, - title: 'Validation group', - description: 'Validation group (activating validation from code)', - template: ` - - - - - - - - - - - - - - - - - ` - } - ]); diff --git a/stories/react/Accordion.stories.js b/stories/react/Accordion.stories.js deleted file mode 100644 index 85fdae3..0000000 --- a/stories/react/Accordion.stories.js +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import Examples from './utils/Examples.js'; -import Accordion from '../../src/react/Accordion.js'; -import HTMLBasic from '../../components/accordion/accordion-basic.html'; -let examples = { - Basic: { - jsx:
    Accordion body
    , - html: HTMLBasic - } -}; - -const Checkboxes = () => ( - -); - -export default Checkboxes; diff --git a/stories/react/Checkbox.stories.js b/stories/react/Checkbox.stories.js deleted file mode 100644 index 3fb3ad1..0000000 --- a/stories/react/Checkbox.stories.js +++ /dev/null @@ -1,33 +0,0 @@ -import React from 'react'; -import Examples from './utils/Examples.js'; - -import Checkbox from '../../src/react/Checkbox'; -import HTMLCheckboxChecked from '../../components/checkbox/checkbox-checked.html'; -import HTMLCheckboxUnchecked from '../../components/checkbox/checkbox-unchecked.html'; -import HTMLCheckboxDisabled from '../../components/checkbox/checkbox-disabled.html'; -import HTMLCheckboxDisabledChecked from '../../components/checkbox/checkbox-disabled-checked.html'; - -let examples = { - Checked: { - jsx: {}} data-test-id='mycheckbox-1' inputRef={() => {} } />, - html: HTMLCheckboxChecked - }, - Unchecked: { - jsx: {}} data-test-id='mycheckbox-2' inputRef={() => {} } />, - html: HTMLCheckboxUnchecked - }, - Disabled: { - jsx: {}} data-test-id='mycheckbox-4' inputRef={() => {} } />, - html: HTMLCheckboxDisabled - }, - 'Disabled and Checked': { - jsx: {}} data-test-id='mycheckbox-4' inputRef={() => {} } />, - html: HTMLCheckboxDisabledChecked - } -}; - -const Checkboxes = () => ( - -); - -export default Checkboxes; diff --git a/stories/react/Checklist.stories.js b/stories/react/Checklist.stories.js deleted file mode 100644 index 0fd089b..0000000 --- a/stories/react/Checklist.stories.js +++ /dev/null @@ -1,65 +0,0 @@ -import React from 'react'; -import Examples from './utils/Examples.js'; -import Checklist from '../../src/react/Checklist.js'; -import HTMLListChecked from '../../components/checklist/checklist-with-checked-items.html'; -import HTMLListDisabled from '../../components/checklist/checklist-with-disabled-items.html'; -const items = [ - { - label: 'apple', - value: 'apple', - dataTestId: 'apple', - checked: true - }, - { - label: 'banana', - value: 'banana', - dataTestId: 'banana', - checked: false - }, - { - label: 'orange', - value: 'orange', - dataTestId: 'orange', - checked: true - } -]; - -const itemsDisabled = [ - { - label: 'apple', - value: 'apple', - dataTestId: 'apple', - checked: true, - disabled: true - }, - { - label: 'banana', - value: 'banana', - dataTestId: 'banana', - checked: false, - disabled: true - }, - { - label: 'orange', - value: 'orange', - dataTestId: 'orange', - checked: false - } -]; - -let examples = { - Basic: { - jsx: { }} />, - html: HTMLListChecked - }, - Disabled: { - jsx: { }} />, - html: HTMLListDisabled - } -}; - -const ChecklistStory = () => ( - -); - -export default ChecklistStory; \ No newline at end of file diff --git a/stories/react/Colors.stories.js b/stories/react/Colors.stories.js deleted file mode 100644 index d6758ce..0000000 --- a/stories/react/Colors.stories.js +++ /dev/null @@ -1,53 +0,0 @@ -import React, {Component} from 'react'; - -const colorMap = { - '$white': '#ffffff', - '$blue': '#009fdb', - '$light-blue': '#1eb9f3', - '$lighter-blue': '#e6f6fb', - '$blue-disabled': '#9dd9ef', - '$dark-blue': '#0568ae', - '$black': '#000000', - '$rich-black': '#323943', - '$text-black': '#191919', - '$dark-gray': '#5a5a5a', - '$gray': '#959595', - '$light-gray': '#d2d2d2', - '$silver': '#eaeaea', - '$light-silver': '#f2f2f2', - '$green': '#4ca90c', - '$functional-red': '#cf2a2a', - '$yellow': '#ffb81c', - '$dark-purple': '#702f8a', - '$purple': '#9063cd', - '$light-purple': '#caa2dd' -}; - -function Color({colorName, colorValue}) { - return ( -
    -
    -
    {colorName.replace('$', '')}
    -
    {colorValue}
    -
    - ); -} - -class Colors extends Component { - - render() { - return ( -
    -

    Colors Palette

    -
    - { - Object.keys(colorMap).map(colorName => ) - } -
    -
    - ); - } - -} - -export default Colors; diff --git a/stories/react/Input.stories.js b/stories/react/Input.stories.js deleted file mode 100644 index 869bafa..0000000 --- a/stories/react/Input.stories.js +++ /dev/null @@ -1,51 +0,0 @@ -import React from 'react'; -import { action } from '@storybook/addon-actions'; -import Examples from './utils/Examples.js'; - -import ReactInput from '../../src/react/Input.js'; - -import InputDefaultHtml from '../../components/input/input.html'; -import InputRequiredHtml from '../../components/input/input-required.html'; -import InputNumberHtml from '../../components/input/input-number.html'; -import InputViewOnlyHtml from '../../components/input/input-view-only.html'; -import InputDisabledHtml from '../../components/input/input-disabled.html'; -import InputPlaceholderHtml from '../../components/input/input-placeholder.html'; -import InputErrorHtml from '../../components/input/input-error.html'; - -let examples = { - 'Input Default': { - jsx: , - html: InputDefaultHtml - }, - 'Input Required': { - jsx: , - html: InputRequiredHtml - }, - 'Input Number': { - jsx: , - html: InputNumberHtml - }, - 'Input View Only': { - jsx: , - html: InputViewOnlyHtml - }, - 'Input Disabled': { - jsx: , - html: InputDisabledHtml - }, - 'Input Placeholder': { - jsx: , - html: InputPlaceholderHtml - }, - 'Input Error': { - jsx: , - html: InputErrorHtml - } - -} - -const Inputs = () => ( - -); - -export default Inputs; diff --git a/stories/react/Modal.stories.js b/stories/react/Modal.stories.js deleted file mode 100644 index 29ff7a5..0000000 --- a/stories/react/Modal.stories.js +++ /dev/null @@ -1,133 +0,0 @@ -import React from 'react'; -import Examples from './utils/Examples.js'; -import Button from '../../src/react/Button.js'; -import Modal from '../../src/react/Modal.js'; -import Input from '../../src/react/Input.js'; -import HTMLStandardModal from '../../components/modal/standard-modal.html'; -import HTMLAlertModal from '../../components/modal/alert-modal.html'; -import HTMLErrorModal from '../../components/modal/error-modal.html'; -import HTMLCustomModal from '../../components/modal/custom-modal.html'; - -class Example extends React.Component { - constructor(props) { - super(props); - this.state = { - show: false - }; - } - render() { - const { children } = this.props; - const { show } = this.state; - var childrenWithProps = React.Children.map(children, child => { - let childChildrenWithProps = []; - if (child.props.children) { - let childChildren = child.props.children; - childChildrenWithProps = React.Children.map(childChildren, child => - React.cloneElement(child, { onClose: ()=>this.setState({show: !show}) })); - - } - return React.cloneElement(child, { show: this.state.show, onClose: ()=>this.setState({show: !show}), children: childChildrenWithProps}); - } - ); - - return ( -
    - - {childrenWithProps} -
    - ); - } -} - -const ModalBody = () => { - return ( -
    - - - - -
    ); -}; - -const BODY_TEXT = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed risus nisl, egestas vitae erat non,' + - 'pulvinar lacinia libero. Integer pulvinar pellentesque accumsan. Sed hendrerit lacus eu tempus pharetra'; - -const isShown = false; - -let examples = { - Standard: { - jsx: - isShown()} size='small'> - Standard Modal - - {BODY_TEXT} - - {}}/> - - , - html: HTMLStandardModal, - exclude: 'Example', - renderFromJsx: true - }, - Alert: { - jsx: - isShown()} type='alert' size='small'> - Title - - {BODY_TEXT} - - - - , - html: HTMLAlertModal, - exclude: 'Example', - renderFromJsx: true - }, - Error: { - jsx: - isShown()} size='small' type='error'> - isShown(false)} type='error'>Title - - {BODY_TEXT} - - isShown(false)} closeButtonText='Ok'/> - - , - html: HTMLErrorModal, - exclude: 'Example', - renderFromJsx: true - }, - - Custom: { - jsx: - isShown()} type='custom'> - Title - - - - {}}/> - - , - html: HTMLCustomModal, - exclude: 'Example', - renderFromJsx: true - } -}; - -const Modals = () => ( - -); - -export default Modals; \ No newline at end of file diff --git a/stories/react/Panel.stories.js b/stories/react/Panel.stories.js deleted file mode 100644 index f87eefb..0000000 --- a/stories/react/Panel.stories.js +++ /dev/null @@ -1,22 +0,0 @@ -import React from 'react'; -import Examples from './utils/Examples.js'; -import Panel from '../../src/react/Panel.js'; -import Checkbox from '../../src/react/Checkbox.js'; -import HTMLBasic from '../../components/panel/basic-panel.html'; -let examples = { - Basic: { - jsx: - -

    Panel

    - - -
    , - html: HTMLBasic - } -}; - -const PanelStory = () => ( - -); - -export default PanelStory; diff --git a/stories/react/PopupMenu.stories.js b/stories/react/PopupMenu.stories.js deleted file mode 100644 index 9d94522..0000000 --- a/stories/react/PopupMenu.stories.js +++ /dev/null @@ -1,37 +0,0 @@ - -import React from 'react'; -import Examples from './utils/Examples.js'; -import PopupMenu from '../../src/react/PopupMenu.js'; -import PopupMenuItem from '../../src/react/PopupMenuItem.js'; -import HTMLPopupMenu from '../../components/menu/popup-menu.html'; -import HTMLPopupMenuRelative from '../../components/menu/relative-popup-menu.html'; - -let examples = { - 'Basic popup menu (static)': { - jsx: {}}> - - - - - - , - html: HTMLPopupMenu - }, - 'Basic popup menu (relative)': { - jsx:
    - {}} position={{x: 10, y: 10}} relative> - - - - - -
    , - html: HTMLPopupMenuRelative - } -}; - -const PopupMenuReactComponent = () => ( - -); - -export default PopupMenuReactComponent; \ No newline at end of file diff --git a/stories/react/Radio.stories.js b/stories/react/Radio.stories.js deleted file mode 100644 index 151f947..0000000 --- a/stories/react/Radio.stories.js +++ /dev/null @@ -1,33 +0,0 @@ -import React from 'react'; -import Examples from './utils/Examples.js'; - -import Radio from '../../src/react/Radio'; -import HTMLRadioChecked from '../../components/radio/radio-checked.html'; -import HTMLRadioUnchecked from '../../components/radio/radio-unchecked.html'; -import HTMLRadioDisabled from '../../components/radio/radio-disabled.html'; -import HTMLRadioDisabledChecked from '../../components/radio/radio-disabled-checked.html'; - -let examples = { - Checked: { - jsx: {}} data-test-id='myradio-1' inputRef={() => {} } />, - html: HTMLRadioChecked - }, - Unchecked: { - jsx: {}} data-test-id='myradio-2' inputRef={() => {} } />, - html: HTMLRadioUnchecked - }, - Disabled: { - jsx: {}} data-test-id='myradio-4' inputRef={() => {} } />, - html: HTMLRadioDisabled - }, - 'Disabled and Checked': { - jsx: {}} data-test-id='myradio-4' inputRef={() => {} } />, - html: HTMLRadioDisabledChecked - } -}; - -const Radios = () => ( - -); - -export default Radios; diff --git a/stories/react/RadioGroup.stories.js b/stories/react/RadioGroup.stories.js deleted file mode 100644 index 912f9b9..0000000 --- a/stories/react/RadioGroup.stories.js +++ /dev/null @@ -1,34 +0,0 @@ -import React from 'react'; -import Examples from './utils/Examples.js'; - -import RadioGroup from '../../src/react/RadioGroup'; -import HTMLRadioGroup from '../../components/radioGroup/radio-group.html'; -import HTMLRadioGroupValue from '../../components/radioGroup/radio-group-value.html'; -import HTMLRadioGroupDisabled from '../../components/radioGroup/radio-group-disabled.html'; -import HTMLRadioGroupNoTitle from '../../components/radioGroup/radio-group-no-title.html'; - -let examples = { - 'Value': { - jsx: {}} data-test-id='grp2' options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />, - html: HTMLRadioGroupValue - }, - 'No Value': { - jsx: {}} data-test-id='grp3' options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />, - html: HTMLRadioGroup - }, - 'Disabled': { - jsx: {}} data-test-id='grp4' options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />, - html: HTMLRadioGroupDisabled - }, - 'No title': { - jsx: {}} data-test-id='grp4' options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />, - html: HTMLRadioGroupNoTitle - } - -}; - -const RadioGroups = () => ( - -); - -export default RadioGroups; diff --git a/stories/react/SVGIcon.stories.js b/stories/react/SVGIcon.stories.js deleted file mode 100644 index 2c2ffc2..0000000 --- a/stories/react/SVGIcon.stories.js +++ /dev/null @@ -1,103 +0,0 @@ -import React from 'react'; -import Examples from './utils/Examples.js'; -import DropdownMenu from './utils/components/DropdownMenu.js'; -import SVGIcon from '../../src/react/SVGIcon.js'; - -const iconLabelPositions = [ - '', 'bottom', 'top', 'left', 'right' -]; - -const iconColors = [ - '', - 'primary', - 'secondary', - 'positive', - 'negative', - 'warning' -]; - -const disabledStates = ['false', 'true']; - -function buildExamples({iconName, iconLabel, labelPosition, color, disabled}) { - return { - Example: { - jsx: - } - }; -} - -const IconTable = ({onClick}) => ( -
    - {ICON_NAMES.map(icon => ( -
    - onClick(icon)} - label={icon} - iconClassName='storybook-small' - name={icon} /> -
    - ))} -
    -); - -class Icons extends React.Component { - constructor(props) { - super(props); - this.state = { - iconName: ICON_NAMES[0], - iconLabel: '', - labelPosition: iconLabelPositions[0], - color : iconColors[0] - }; - } - - render() { - let {iconName, iconLabel, labelPosition, color, disabled} = this.state; - return ( -
    -

    Icons

    -
    - this.setState({iconName: e.target.value})} - options={ICON_NAMES} /> -
    - - this.setState({iconLabel: e.target.value})}/> -
    - this.setState({labelPosition: e.target.value})} - options={iconLabelPositions} /> - this.setState({color: e.target.value})} - options={iconColors} /> - this.setState({disabled: e.target.value})} - options={disabledStates} /> -
    - - this.setState({iconName: icon})} /> -
    -
    You will see the following if the icon name you used is not found:
    - {}} - name='MissingIcon' /> -
    -
    - ); - }; -} - -export default Icons; diff --git a/stories/react/Tabs.stories.js b/stories/react/Tabs.stories.js deleted file mode 100644 index 74f163c..0000000 --- a/stories/react/Tabs.stories.js +++ /dev/null @@ -1,48 +0,0 @@ -import React from 'react'; -import Examples from './utils/Examples.js'; -import {default as TabsComp} from '../../src/react/Tabs.js'; -import Tab from '../../src/react/Tab.js'; -import HTMLTabsHeader from '../../components/tabs/tabs-header.html'; -import HTMLTabsDisabled from '../../components/tabs/tabs-disabled.html'; -import HTMLTabsMenu from '../../components/tabs/tabs-menu.html'; - -let examples = { - 'Menu Tabs': { - jsx: {console.log(tabId);}}> - -
    This is the active tab content
    -
    - - -
    , - html: HTMLTabsMenu - }, - 'Header Tabs': { - jsx: {console.log(tabId);}}> - -
    This is the active tab content
    -
    - - -
    , - html: HTMLTabsHeader - }, - 'Disabled Tabs': { - jsx: ( - {console.log(tabId);}}> - -
    This is the active tab content
    -
    - - -
    - ), - html: HTMLTabsDisabled - } -}; - -const Tabs = () => ( - -); - -export default Tabs; diff --git a/stories/react/Tiles.stories.js b/stories/react/Tiles.stories.js deleted file mode 100644 index 04a6fb5..0000000 --- a/stories/react/Tiles.stories.js +++ /dev/null @@ -1,89 +0,0 @@ -import React from 'react'; - -import Examples from './utils/Examples.js'; -import SVGIcon from '../../src/react/SVGIcon.js'; -import Button from '../../src/react/Button.js'; - -import Tile from '../../src/react/Tile.js'; -import TileInfo from '../../src/react/TileInfo.js'; -import TileInfoLine from '../../src/react/TileInfoLine.js'; -import TileFooter from '../../src/react/TileFooter.js'; -import TileFooterCell from '../../src/react/TileFooterCell.js'; - -import HTMLTileWithoutFooter from '../../components/tile/tile-without-footer.html'; -import HTMLVspTile from '../../components/tile/vsp-tile.html'; -import HTMLVlmTile from '../../components/tile/vlm-tile.html'; -import HTMLVendorTile from '../../components/tile/vendor-tile.html'; -import HTMLVfcTile from '../../components/tile/vfc-tile.html'; - -let examples = { - 'Without footer': { - jsx: - - Supertitle - Title - - , - html: HTMLTileWithoutFooter - }, - VFC: { - jsx: - - Title - V 1.0 - - - Certified - - , - html: HTMLVfcTile - }, - VSP: { - jsx: - - VLM - VSP name - - - Draft - - , - html: HTMLVspTile - }, - VLM: { - jsx: - - VLM name - - - Certified - - - - - , - html: HTMLVlmTile - }, - Vendor: { - jsx: - - Vendor name - - - - - - - - - - , - html: HTMLVendorTile - }, -}; - -const Tiles = () => ( - -); - -export default Tiles; diff --git a/stories/react/Typography.stories.js b/stories/react/Typography.stories.js deleted file mode 100644 index f1475c6..0000000 --- a/stories/react/Typography.stories.js +++ /dev/null @@ -1,62 +0,0 @@ -import React, {Component} from 'react'; - -const typos = [ - {className: 'heading-1', size: 28, text: 'Major Section Heading'}, - {className: 'heading-2', size: 24, text: 'Sub-Section Heading'}, - {className: 'heading-3', size: 20, text: 'Small Heading'}, - {className: 'heading-4', size: 16, text: 'Small Heading'}, - {className: 'heading-4-emphasis', size: 16, text: 'Small Heading'}, - {className: 'heading-5', size: 14, text: 'Small Heading'}, - {className: 'body-1', size: 14, text: 'Body (Standard) Text'}, - {className: 'body-1-italic', size: 14, text: 'Body (Standard) Text'}, - {className: 'body-2', size: 13, text: 'Text in Tables'}, - {className: 'body-2-emphasis', size: 13, text: 'Text in Tables'}, - {className: 'body-3', size: 12, text: 'Input Labels, Table Titles'}, - {className: 'body-3-emphasis', size: 12, text: 'Even Smaller Text'}, - {className: 'body-4', size: 10, text: 'Even Much Smaller Text'} -]; - -const fontWeights = ['OpenSans Regular 400', 'OpenSans Semibold 600']; - -function TextRow({className, size, text}) { - return ( -
    -
    {className}
    -
    {size}px
    -
    {text}
    -
    - ); -} - -class Typography extends Component { - - render() { - return ( -
    -

    Typography

    -
    -

    Font Family

    -
      -
    • OpenSans
    • -
    • Arial
    • -
    • sans-serif
    • -
    -
    -
    -

    Font Weights

    -
      {fontWeights.map(font =>
    • {font}
    • )}
    -
    -
    -

    Font Size

    -
    - - {typos.map(typo => )} -
    -
    -
    - ); - } - -} - -export default Typography; diff --git a/stories/react/buttons/LinkButtons.stories.js b/stories/react/buttons/LinkButtons.stories.js deleted file mode 100644 index ef32a22..0000000 --- a/stories/react/buttons/LinkButtons.stories.js +++ /dev/null @@ -1,49 +0,0 @@ -import React from 'react'; -import Examples from '../utils/Examples.js'; - -import ReactButton from '../../../src/react/Button.js'; - -import LinkButton from '../../../components/button/button-link.html'; -import LinkButtonDisabled from '../../../components/button/button-link-disabled.html'; -import ExtraSmall from '../../../components/button/button-link-extra-small.html'; -import Small from '../../../components/button/button-link-small.html'; -import Medium from '../../../components/button/button-link-medium.html'; -import Large from '../../../components/button/button-link-large.html'; -import Auto from '../../../components/button/button-link-auto.html'; - -let examples = { - 'Link Default': { - jsx: {}}>Click Me, - html: LinkButton - }, - 'Link Disabled': { - jsx: {}} disabled>Click Me, - html: LinkButtonDisabled, - }, - 'Extra Small': { - jsx: {}}>Click Me, - html: ExtraSmall - }, - 'Small': { - jsx: {}}>Click Me, - html: Small, - }, - 'Medium': { - jsx: {}}>Click Me, - html: Medium - }, - 'Large': { - jsx: {}}>Click Me, - html: Large, - }, - 'Auto Sizing': { - jsx: {}}>Click Me, - html: Auto, - } -}; - -const DefaultButtons = () => ( - -); - -export default DefaultButtons; diff --git a/stories/react/buttons/PrimaryButtons.stories.js b/stories/react/buttons/PrimaryButtons.stories.js deleted file mode 100644 index db732b9..0000000 --- a/stories/react/buttons/PrimaryButtons.stories.js +++ /dev/null @@ -1,49 +0,0 @@ -import React from 'react'; -import Examples from '../utils/Examples.js'; - -import ReactButton from '../../../src/react/Button.js'; - -import PrimaryButton from '../../../components/button/button-primary.html'; -import PrimaryButtonDisabled from '../../../components/button/button-primary-disabled.html'; -import ExtraSmall from '../../../components/button/button-primary-extra-small.html'; -import Small from '../../../components/button/button-primary-small.html'; -import Medium from '../../../components/button/button-primary-medium.html'; -import Large from '../../../components/button/button-primary-large.html'; -import Auto from '../../../components/button/button-primary-auto.html'; - -let examples = { - 'Primary Default': { - jsx: {}}>Click Me, - html: PrimaryButton - }, - 'Primary Disabled': { - jsx: {}} disabled>Click Me, - html: PrimaryButtonDisabled, - }, - 'Extra Small': { - jsx: {}}>Click Me, - html: ExtraSmall - }, - 'Small': { - jsx: {}}>Click Me, - html: Small, - }, - 'Medium': { - jsx: {}}>Click Me, - html: Medium - }, - 'Large': { - jsx: {}}>Click Me, - html: Large, - }, - 'Auto Sizing': { - jsx: {}}>Click Me, - html: Auto, - } -}; - -const DefaultButtons = () => ( - -); - -export default DefaultButtons; diff --git a/stories/react/buttons/SecondaryButtons.stories.js b/stories/react/buttons/SecondaryButtons.stories.js deleted file mode 100644 index 75f9d54..0000000 --- a/stories/react/buttons/SecondaryButtons.stories.js +++ /dev/null @@ -1,49 +0,0 @@ -import React from 'react'; -import Examples from '../utils/Examples.js'; - -import ReactButton from '../../../src/react/Button.js'; - -import SecondaryButton from '../../../components/button/button-secondary.html'; -import SecondaryButtonDisabled from '../../../components/button/button-secondary-disabled.html'; -import ExtraSmall from '../../../components/button/button-secondary-extra-small.html'; -import Small from '../../../components/button/button-secondary-small.html'; -import Medium from '../../../components/button/button-secondary-medium.html'; -import Large from '../../../components/button/button-secondary-large.html'; -import Auto from '../../../components/button/button-secondary-auto.html'; - -let examples = { - 'Secondary Default': { - jsx: {}}>Click Me, - html: SecondaryButton - }, - 'Secondary Disabled': { - jsx: {}} disabled>Click Me, - html: SecondaryButtonDisabled, - }, - 'Extra Small': { - jsx: {}}>Click Me, - html: ExtraSmall - }, - 'Small': { - jsx: {}}>Click Me, - html: Small, - }, - 'Medium': { - jsx: {}}>Click Me, - html: Medium - }, - 'Large': { - jsx: {}}>Click Me, - html: Large, - }, - 'Auto Sizing': { - jsx: {}}>Click Me, - html: Auto, - } -}; - -const DefaultButtons = () => ( - -); - -export default DefaultButtons; diff --git a/stories/react/index.js b/stories/react/index.js deleted file mode 100644 index 6d425ba..0000000 --- a/stories/react/index.js +++ /dev/null @@ -1,66 +0,0 @@ -import React from 'react'; -import { storiesOf } from '@storybook/react'; - -import PrimaryButtons from './buttons/PrimaryButtons.stories.js'; -import SecondaryButtons from './buttons/SecondaryButtons.stories.js'; -import LinkButtons from './buttons/LinkButtons.stories.js'; - -import Colors from './Colors.stories.js'; -import Typography from './Typography.stories.js'; -import Checkboxes from './Checkbox.stories.js'; -import Checklist from './Checklist.stories.js'; -import Input from './Input.stories.js'; -import Icons from './SVGIcon.stories.js'; -import Tiles from './Tiles.stories.js'; -import Tabs from './Tabs.stories.js'; -import Radios from './Radio.stories.js'; -import RadioGroups from './RadioGroup.stories.js'; -import Modals from './Modal.stories.js'; -import PopupMenu from './PopupMenu.stories.js'; -import Accordion from './Accordion.stories.js'; -import Panel from './Panel.stories.js'; - -storiesOf('Colors', module) - .add('Color Palette', () => ); - -storiesOf('Typography', module) - .add('Typography', () => ); - -storiesOf('Accordion', module) - .add('Accordion', () => ); - -storiesOf('Buttons', module) - .add('Primary', () => ) - .add('Secondary', () => ) - .add('Link', () => ); - -storiesOf('Checkboxes', module) - .add('Checkboxes', () => ); - -storiesOf('Checklist', module) - .add('Checklist', () => ); - -storiesOf('Input Fields', module) - .add('Input Text', () => ); - -storiesOf('Icons', module) - .add('SVG Icons', () => ); - -storiesOf('Menu', module) - .add('Popup Menu', () => ); - -storiesOf('Modals', module) - .add('Modal examples', () => ); - -storiesOf('Radios', module) - .add('Radio Buttons', () => ) - .add('Radio Button Groups', () => ); - -storiesOf('Panel', module) - .add('Panel', () => ); - -storiesOf('Tabs', module) - .add('Tabs', () => ); - -storiesOf('Tiles', module) - .add('Tiles', () => ); diff --git a/stories/react/utils/BeautifyHTML.js b/stories/react/utils/BeautifyHTML.js deleted file mode 100644 index 1a29b00..0000000 --- a/stories/react/utils/BeautifyHTML.js +++ /dev/null @@ -1,33 +0,0 @@ -export default function beautifyHTML({html, indentChar = ' ', startingIndentCount = 0}) { - html = html.replace(/[ ]{2,}/g, ' '); - - let result = '', indentCount = startingIndentCount, parsingText = false; - for (let i = 0; i < html.length; i++) { - - let startOfTag, endOfTag, closingTag, upcomingTag, afterTag, numTabs; - if (html[i] === '<') { startOfTag = true; } - else if (html[i] === '>') { endOfTag = true; } - else if (html[i - 1] === '>') { afterTag = true; } - if (html[i + 1] === '/') { closingTag = true; } - else if (html[i + 1 ] === '<') { upcomingTag = true; } - - if (startOfTag) { - if (closingTag) { numTabs = --indentCount; } - else { numTabs = indentCount++; } - } - - if (parsingText && afterTag) { - numTabs = indentCount; - } - - result += indentChar.repeat(numTabs) + html[i]; - - if (endOfTag || parsingText && upcomingTag) { - result += '\n'; - parsingText = false; - if (!upcomingTag) { parsingText = true; } - } - } - - return result.slice(0, -1); -} diff --git a/stories/react/utils/Examples.js b/stories/react/utils/Examples.js deleted file mode 100644 index 5948b68..0000000 --- a/stories/react/utils/Examples.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; -import {renderToStaticMarkup} from 'react-dom/server'; -import SourceToggle from './SourceToggle.js'; -import beautifyHTML from './BeautifyHTML.js'; -import insertSVGIcons from './InsertSVGIcons.js'; - -const Examples = ({examples}) => ( -
    - {Object.keys(examples).map(key => { - let title = key; - let {jsx, html, displayTitle = true, exclude, renderFromJsx = false} = examples[key]; - if (!html) { - html = renderToStaticMarkup(jsx); - html = beautifyHTML({html, indentChar: ' '}); - } else { - html = insertSVGIcons({html, jsx}); - } - return ; - })} -
    -); - -export default Examples; diff --git a/stories/react/utils/InsertSVGIcons.js b/stories/react/utils/InsertSVGIcons.js deleted file mode 100644 index 5a5e390..0000000 --- a/stories/react/utils/InsertSVGIcons.js +++ /dev/null @@ -1,15 +0,0 @@ -import {renderToStaticMarkup} from 'react-dom/server'; -import beautifyHTML from './BeautifyHTML.js'; - -const insertSVGIcons = ({html, jsx, indentChar = ' '}) => { - let svgCode = renderToStaticMarkup(jsx).match(/(]*>)[\s\S]*?(<\/svg>)/g); - let newHTML = html.replace(/\s*/g, str => { - let html = '\n' + svgCode.shift(); - let indentRegExp = new RegExp(`[${indentChar}]*`); - let startingIndentCount = str.slice(2).match(indentRegExp)[0].length / indentChar.length; - return beautifyHTML({html, startingIndentCount, indentChar}); - }); - return newHTML; -}; - -export default insertSVGIcons; diff --git a/stories/react/utils/SourceToggle.js b/stories/react/utils/SourceToggle.js deleted file mode 100644 index a05c8d0..0000000 --- a/stories/react/utils/SourceToggle.js +++ /dev/null @@ -1,73 +0,0 @@ -/* eslint-disable react/no-danger */ -import React from 'react'; -import jsxToString from './jsxToString.js'; - -import Prism from 'prismjs'; - -import PrismJsx from 'prismjs/components/prism-jsx.js'; // eslint-disable-line no-unused-vars - -const sources = { - React: 'React', - HTML: 'HTML' -}; - -export default class SourceToggle extends React.Component { - constructor(props) { - super(props); - this.state = { - source: sources.React - }; - } - - renderFromSource() { - let {jsx, html, renderFromJsx} = this.props; - let {source} = this.state; - let classname = 'source-toggle-example'; - switch (source) { - case sources.HTML: - return renderFromJsx ?
    {jsx}
    :
    ; - case sources.React: - default: - return
    {jsx}
    ; - } - } - - renderMarkdown() { - let {jsx, html, exclude} = this.props; - let {source} = this.state; - switch (source) { - case sources.HTML: - return {__html: Prism.highlight(html, Prism.languages.html)}; - case sources.React: - default: - return {__html: Prism.highlight(jsxToString({jsx, exclude}), Prism.languages.jsx)}; - } - } - - render() { - let {title} = this.props; - return ( -
    - {title &&
    {title}
    } -
    - {this.renderFromSource()} -
    -
    - {Object.keys(sources).map((source, i) => ( -
    this.setState({source})}> - {source} -
    - ))} -
    -
    -							
    -						
    -
    -
    -
    - ); - } -} diff --git a/stories/react/utils/components/DropdownMenu.js b/stories/react/utils/components/DropdownMenu.js deleted file mode 100644 index 4a69463..0000000 --- a/stories/react/utils/components/DropdownMenu.js +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; - -const DropdownMenu = ({title, value, onChange, options}) => ( -
    - - -
    -); - -export default DropdownMenu; diff --git a/stories/react/utils/jsxToString.js b/stories/react/utils/jsxToString.js deleted file mode 100644 index 8b799ad..0000000 --- a/stories/react/utils/jsxToString.js +++ /dev/null @@ -1,74 +0,0 @@ -import React, {Children} from 'react'; - -const INDENT = ' '; - -function stringRepresentationForJsx(item) { - if (typeof item === 'string') { - return `'${item}'`; - } else if (typeof item === 'number') { - return item.toString(); - } else if (Array.isArray(item)) { - return `[${item.map(val => stringRepresentationForJsx(val)).toString()}]`; - } - else if (typeof item === 'boolean') { - return item.toString(); - } - else if (typeof item === 'function') { - return item.toString().replace(/\s{2,}/g, ' '); - } else if (typeof item === 'object') { - let repr = '{'; - for (let key in item) { - if (item.hasOwnProperty(key)) { - repr += `${key}: ${stringRepresentationForJsx(item[key])}, `; - } - } - repr = repr.slice(0, -2); - repr += '}'; - return repr; - } -} - -function parseProps(jsx, indentCount) { - let result = ''; - for (let prop in jsx.props) { - let value = jsx.props[prop]; - if (prop !== 'children' && value) { - let repr = stringRepresentationForJsx(value); - let isString = repr.startsWith("'"); - result += `\n${INDENT.repeat(indentCount)}${prop}`; - if (value !== true) { - result += `=${isString ? '' : '{ '}${stringRepresentationForJsx(value)}${isString ? '' : ' }'}`; - } - } - } - return result; -} - -function jsxToString({jsx, indentCount=0, exclude}) { - if (typeof jsx === 'string'){ - return jsx; - } - - let name = typeof jsx.type === 'string' ? jsx.type : jsx.type.name; - let result = name === exclude ? '' - : `${INDENT.repeat(indentCount)}<${name}${parseProps(jsx, indentCount + 1)}`; - - if (jsx.props.hasOwnProperty('children')) { - let {children} = jsx.props; - let childrenArr = Children.toArray(children); - if (name !== exclude) { result += '>\n';} - if (typeof children === 'string') { - result += `${INDENT.repeat(indentCount + 1)}${children}\n`; - } else { - let newIndentCount = name === exclude ? indentCount : indentCount + 1; - childrenArr.forEach(child => result += `${jsxToString({jsx: child, indentCount: newIndentCount})}\n`); - } - const closingTag = name === exclude ? '' - : `${INDENT.repeat(indentCount)}`; - return result + closingTag; - } - - return result + ' />'; -} - -export default jsxToString; diff --git a/test/react/Accordion.spec.js b/test/react/Accordion.spec.js deleted file mode 100644 index 614dcdd..0000000 --- a/test/react/Accordion.spec.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import Accordion from '../../src/react/Accordion.js'; - -import renderer from 'react-test-renderer'; - -describe('Accordion', () => { - test('Accordion - Default', () => { - const accordion = renderer.create(Accordion body).toJSON(); - expect(accordion).toMatchSnapshot(); - }); -}); \ No newline at end of file diff --git a/test/react/Button.spec.js b/test/react/Button.spec.js deleted file mode 100644 index 3b3b72e..0000000 --- a/test/react/Button.spec.js +++ /dev/null @@ -1,77 +0,0 @@ -import React from 'react'; -import Button from '../../src/react/Button.js'; - -import renderer from 'react-test-renderer'; - -describe('Button', () => { - test('Button - Default - Primary', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Default - Primary - Disabled', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Default - White', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Default - Gray', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Default - Positive', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Default - Negative', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Default - Warning', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Outline - Primary', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Outline - Gray', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Outline - Positive', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Outline - Negative', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Link - Primary', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Link - Primary - Disabled', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - - test('Button - Link - Primary - With Icon', () => { - const button = renderer.create().toJSON(); - expect(button).toMatchSnapshot(); - }); - -}); diff --git a/test/react/Checkbox.spec.js b/test/react/Checkbox.spec.js deleted file mode 100644 index 88ba660..0000000 --- a/test/react/Checkbox.spec.js +++ /dev/null @@ -1,60 +0,0 @@ -import React from 'react'; -import Checkbox from '../../src/react/Checkbox.js'; - -import renderer from 'react-test-renderer'; -import {mount} from 'enzyme'; - -class CheckboxForm extends React.Component { - constructor(props) { - super(props); - this.state = {checked: false}; - - this.handleChange = this.handleChange.bind(this); - } - - handleChange(val) { - this.setState({checked: val}); - } - - getChecked() { - return this.checkbox.getChecked(); - } - - render() { - return ( -
    - {this.checkbox = checkbox;}} checked={this.state.checked} onChange={this.handleChange} label='This is the checkbox label' /> - - ); - } -} - -describe('Checkbox', () => { - test('Checkbox - unchecked', () => { - const checkbox = renderer.create().toJSON(); - expect(checkbox).toMatchSnapshot(); - }); - - test('Checkbox - disabled', () => { - const checkbox = renderer.create().toJSON(); - expect(checkbox).toMatchSnapshot(); - }); - - test('Checkbox - checked state changes', () => { - const checkbox = mount(); - expect(checkbox.instance().getChecked()).toEqual(false); - expect(checkbox.instance().getChecked()).toEqual(checkbox.find('input').props().checked); - checkbox.find('input').simulate('change', { target : { checked: true }}); - expect(checkbox.instance().getChecked()).toEqual(checkbox.find('input').props().checked); - expect(checkbox.instance().getChecked()).toEqual(true); - checkbox.find('input').simulate('change', { target : { checked: false }}); - expect(checkbox.instance().getChecked()).toEqual(false); - expect(checkbox.instance().getChecked()).toEqual(checkbox.find('input').props().checked); - }); - - test('Checkbox - returns its value', () => { - const checkbox = mount(); - expect(checkbox.instance().getValue()).toEqual('myVal'); - }); - -}); diff --git a/test/react/Checklist.spec.js b/test/react/Checklist.spec.js deleted file mode 100644 index a3409ad..0000000 --- a/test/react/Checklist.spec.js +++ /dev/null @@ -1,64 +0,0 @@ -import React from 'react'; -import Checklist from '../../src/react/Checklist.js'; - -import renderer from 'react-test-renderer'; - -const items = [ - { - label: 'apple', - value: 'apple', - dataTestId: 'apple', - checked: true - }, - { - label: 'banana', - value: 'banana', - dataTestId: 'banana', - checked: false - }, - { - label: 'orange', - value: 'orange', - dataTestId: 'orange', - checked: true - } -]; - -const itemsDisabled = [ - { - label: 'apple', - value: 'apple', - dataTestId: 'apple', - checked: true, - disabled: true - }, - { - label: 'banana', - value: 'banana', - dataTestId: 'banana', - checked: false, - disabled: true - }, - { - label: 'orange', - value: 'orange', - dataTestId: 'orange', - checked: false - } -]; - - -describe('Checklist', () => { - test('Checklist - Default ', () => { - const checklist = renderer.create( { }} />).toJSON(); - expect(checklist).toMatchSnapshot(); - }); - - test('Checklist - With disabled items ', () => { - const checklist = renderer.create( { }} />).toJSON(); - expect(checklist).toMatchSnapshot(); - }); - - - -}); \ No newline at end of file diff --git a/test/react/Input.spec.js b/test/react/Input.spec.js deleted file mode 100644 index 3766e45..0000000 --- a/test/react/Input.spec.js +++ /dev/null @@ -1,69 +0,0 @@ -import React from 'react'; -import Input from '../../src/react/Input.js'; - -import renderer from 'react-test-renderer'; -import {mount} from 'enzyme'; - -class InputForm extends React.Component { - constructor(props) { - super(props); - this.state = {value: 'Initial'}; - this.handleChange = this.handleChange.bind(this); - } - - handleChange(val) { - this.setState({value: val}); - } - - getValue() { - return this.input.getValue(); - } - - render() { - return ( -
    - {this.input = input;}} value={this.state.value} name='testinput' onChange={this.handleChange} /> -
    - ); - } -} - -describe('Input', () => { - test('Input - default', () => { - const input = renderer.create().toJSON(); - expect(input).toMatchSnapshot(); - }); - - test('Input - required', () => { - const input = renderer.create().toJSON(); - expect(input).toMatchSnapshot(); - }); - - test('Input - number', () => { - const input = renderer.create().toJSON(); - expect(input).toMatchSnapshot(); - }); - - test('Input - readonly', () => { - const input = renderer.create().toJSON(); - expect(input).toMatchSnapshot(); - }); - - test('Input - placeholder', () => { - const input = renderer.create().toJSON(); - expect(input).toMatchSnapshot(); - }); - - test('Input - error', () => { - const input = renderer.create().toJSON(); - expect(input).toMatchSnapshot(); - }); - - test('Input - checked state value changes', () => { - const input = mount(); - expect(input.instance().getValue()).toEqual('Initial'); - input.find('input').simulate('change', { target : { value: 'Changed' }}); - expect(input.instance().getValue()).toEqual('Changed'); - expect(input.find('input').prop('value')).toEqual('Changed'); - }); -}); diff --git a/test/react/Modal.spec.js b/test/react/Modal.spec.js deleted file mode 100644 index 7c4738f..0000000 --- a/test/react/Modal.spec.js +++ /dev/null @@ -1,68 +0,0 @@ -import React from 'react'; -import { mount, ReactWrapper } from 'enzyme'; - -import Modal from '../../src/react/Modal'; - -describe('Modal', () => { - - const MODAL_MESSAGE = 'Message'; - test('standard modal', ()=>{ - const modal = new ReactWrapper(mount( - Standard Modal - - {MODAL_MESSAGE} - - {}}/> - ).instance().modalRef, true); - - expect(modal.find(Modal.Body).length).toBe(1); - expect(modal.find(Modal.Header).length).toBe(1); - expect(modal.find(Modal.Title).length).toBe(1); - expect(modal.find(Modal.Body).length).toBe(1); - expect(modal.find(Modal.Footer).length).toBe(1); - expect(modal.find(Modal.Header).props().type).toBe('info'); - expect(modal.find(Modal.Body).text()).toBe(MODAL_MESSAGE); - expect(modal.html()).toMatchSnapshot(); - }); - - test('standard modal - not displayed', ()=>{ - const modal = new ReactWrapper(mount( - Standard Modal - - {MODAL_MESSAGE} - - {}}/> - ).instance().modalRef, true); - expect(modal.find(Modal.Body).length).toBe(0); - expect(modal.html()).toMatchSnapshot(); - }); - - test('alert modal', ()=>{ - const modal = new ReactWrapper(mount( - - Title - - {MODAL_MESSAGE} - - - ).instance().modalRef, true); - expect(modal.find(Modal.Body).text()).toBe(MODAL_MESSAGE); - expect(modal.find('.sdc-modal-type-alert').length).toBe(1); - expect(modal.html()).toMatchSnapshot(); - }); - - test('custom modal', ()=>{ - const modal = new ReactWrapper(mount( - - Title - - {MODAL_MESSAGE} - - {}}/> - ).instance().modalRef, true); - expect(modal.find(Modal.Body).text()).toBe(MODAL_MESSAGE); - expect(modal.find('.sdc-modal-type-custom').length).toBe(1); - expect(modal.html()).toMatchSnapshot(); - }); - -}); diff --git a/test/react/ModalBody.spec.js b/test/react/ModalBody.spec.js deleted file mode 100644 index d83c899..0000000 --- a/test/react/ModalBody.spec.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import ModalBody from '../../src/react/ModalBody.js'; - -import renderer from 'react-test-renderer'; - -describe('ModalBody', () => { - test('basic test', () => { - const header = renderer.create().toJSON(); - expect(header).toMatchSnapshot(); - }); -}); \ No newline at end of file diff --git a/test/react/ModalFooter.spec.js b/test/react/ModalFooter.spec.js deleted file mode 100644 index e4e3f5b..0000000 --- a/test/react/ModalFooter.spec.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import ModalFooter from '../../src/react/ModalFooter.js'; - -import renderer from 'react-test-renderer'; - -describe('ModalFooter', () => { - test('basic test', () => { - const footer = renderer.create().toJSON(); - expect(footer).toMatchSnapshot(); - }); -}); \ No newline at end of file diff --git a/test/react/ModalHeader.spec.js b/test/react/ModalHeader.spec.js deleted file mode 100644 index e9d0602..0000000 --- a/test/react/ModalHeader.spec.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import ModalHeader from '../../src/react/ModalHeader.js'; - -import renderer from 'react-test-renderer'; - -describe('ModalHeader', () => { - test('basic test', () => { - const header = renderer.create().toJSON(); - expect(header).toMatchSnapshot(); - }); -}); \ No newline at end of file diff --git a/test/react/ModalTitle.spec.js b/test/react/ModalTitle.spec.js deleted file mode 100644 index a8cf2a3..0000000 --- a/test/react/ModalTitle.spec.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import ModalTitle from '../../src/react/ModalTitle.js'; - -import renderer from 'react-test-renderer'; - -describe('ModalTitle', () => { - test('basic test', () => { - const header = renderer.create(Title).toJSON(); - expect(header).toMatchSnapshot(); - }); -}); \ No newline at end of file diff --git a/test/react/Panel.spec.js b/test/react/Panel.spec.js deleted file mode 100644 index acae6a9..0000000 --- a/test/react/Panel.spec.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import Panel from '../../src/react/Panel.js'; - -import renderer from 'react-test-renderer'; - -describe('Panel', () => { - test('Panel - Default', () => { - const panel = renderer.create(Panel).toJSON(); - expect(panel).toMatchSnapshot(); - }); -}); diff --git a/test/react/PopupMenu.spec.js b/test/react/PopupMenu.spec.js deleted file mode 100644 index 5014728..0000000 --- a/test/react/PopupMenu.spec.js +++ /dev/null @@ -1,62 +0,0 @@ -import React from 'react'; -import PopupMenu from '../../src/react/PopupMenu.js'; - -import renderer from 'react-test-renderer'; -import {mount} from 'enzyme'; - -class MyPopupForm extends React.Component { - constructor(props) { - super(props); - this.state = {position: {}}; - } - - handleClick(newPos) { - this.setState({position: newPos}); - } - - getPosition() { - return this.state.position; - } - - render() { - return ( -
    this.handleClick({ - x: event.pageX - event.target.offsetLeft, - y: event.pageY - event.target.offsetTop - })}> - {}} /> - - ); - } -} - -describe('PopupMenu', () => { - test('check static menu rendered', () => { - const menu = renderer.create( {}}/>).toJSON(); - expect(menu).toMatchSnapshot(); - }); - - test('check relative menu rendered', () => { - const menu = renderer.create( {}} position={{x: 10, y: 10}} relative/>).toJSON(); - expect(menu).toMatchSnapshot(); - }); - - test('check separator rendered', () => { - const separator = renderer.create().toJSON(); - expect(separator).toMatchSnapshot(); - }); - - test('check position changed', () => { - const menuForm = mount(); - const position = menuForm.instance().getPosition(); - expect(position).toEqual({}); - expect(position).toEqual(menuForm.find('ul').props().style); - menuForm.find('form').simulate('click', { - target: {offsetLeft: 10, offsetTop: 20}, - pageX: 30, pageY: 50 - }); - const newPosition = menuForm.instance().getPosition(); - expect(newPosition).toEqual({x:20, y:30}); - expect({left: newPosition.x, top: newPosition.y}).toEqual(menuForm.find('ul').props().style); - }); -}); \ No newline at end of file diff --git a/test/react/PopupMenuItem.spec.js b/test/react/PopupMenuItem.spec.js deleted file mode 100644 index 9262319..0000000 --- a/test/react/PopupMenuItem.spec.js +++ /dev/null @@ -1,56 +0,0 @@ -import React from 'react'; -import PopupMenuItem from '../../src/react/PopupMenuItem.js'; -import PopupMenu from '../../src/react/PopupMenu.js'; - -import renderer from 'react-test-renderer'; -import {mount} from 'enzyme'; - -describe('PopupMenuItem', () => { - test('check selected', () => { - const menuItem = renderer.create().toJSON(); - expect(menuItem).toMatchSnapshot(); - }); - - test('check disabled', () => { - const menuItem = renderer.create().toJSON(); - expect(menuItem).toMatchSnapshot(); - }); - - test('check parent onclick invoked by child', () => { - const mockFunc = jest.fn(); - const menu = mount( - - - - ); - expect(menu.find('li')).toHaveLength(1); - menu.find('li').simulate('click'); - expect(mockFunc).toHaveBeenCalled(); - }); - - test('check custom onclick invoked by child', () => { - const mockParentFunc = jest.fn(); - const mockChildFunc = jest.fn(); - const menu = mount( - - - - ); - expect(menu.find('li')).toHaveLength(1); - menu.find('li').simulate('click'); - expect(mockChildFunc).toHaveBeenCalled(); - expect(mockParentFunc).not.toHaveBeenCalled(); - }); - - test('check no click handler if item is disabled', () => { - const mockFunc = jest.fn(); - const menu = mount( - - - - ); - expect(menu.find('li')).toHaveLength(1); - menu.find('li').simulate('click'); - expect(mockFunc).not.toHaveBeenCalled(); - }); -}); \ No newline at end of file diff --git a/test/react/Portal.spec.js b/test/react/Portal.spec.js deleted file mode 100644 index 864b342..0000000 --- a/test/react/Portal.spec.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import {mount} from 'enzyme'; -import Portal from '../../src/react/Portal'; - -describe('Portal',()=>{ - test('portal basic', ()=>{ - const portal = mount(Message); - expect(portal.find(Portal).exists()).toBe(true); - }); -}); \ No newline at end of file diff --git a/test/react/Radio.spec.js b/test/react/Radio.spec.js deleted file mode 100644 index 39e33f7..0000000 --- a/test/react/Radio.spec.js +++ /dev/null @@ -1,60 +0,0 @@ -import React from 'react'; -import Radio from '../../src/react/Radio.js'; - -import renderer from 'react-test-renderer'; -import {mount} from 'enzyme'; - -class RadioForm extends React.Component { - constructor(props) { - super(props); - this.state = {checked: false}; - - this.handleChange = this.handleChange.bind(this); - } - - handleChange(val) { - this.setState({checked: val}); - } - - getChecked() { - return this.radio.getChecked(); - } - - render() { - return ( -
    - {this.radio = radio;}} name='grp1' checked={this.state.checked} label='This is the radio label' value='1' onChange={this.handleChange} /> - - ); - } -} - -describe('Radio', () => { - test('Radio - unchecked', () => { - const radio = renderer.create().toJSON(); - expect(radio).toMatchSnapshot(); - }); - - test('Radio - disabled', () => { - const radio = renderer.create().toJSON(); - expect(radio).toMatchSnapshot(); - }); - - test('Radio - checked state changes', () => { - const radio = mount(); - expect(radio.instance().getChecked()).toEqual(false); - expect(radio.instance().getChecked()).toEqual(radio.find('input').props().checked); - radio.find('input').simulate('change', { target : { checked: true }}); - expect(radio.instance().getChecked()).toEqual(true); - expect(radio.instance().getChecked()).toEqual(radio.find('input').props().checked); - radio.find('input').simulate('change', { target : { checked: false }}); - expect(radio.instance().getChecked()).toEqual(false); - expect(radio.instance().getChecked()).toEqual(radio.find('input').props().checked); - }); - - test('Radio - returns its value', () => { - const radio = mount(); - expect(radio.instance().getValue()).toEqual('myVal'); - }); - -}); diff --git a/test/react/RadioGroup.spec.js b/test/react/RadioGroup.spec.js deleted file mode 100644 index 638b9c4..0000000 --- a/test/react/RadioGroup.spec.js +++ /dev/null @@ -1,69 +0,0 @@ -import React from 'react'; -import RadioGroup from '../../src/react/RadioGroup.js'; - -import renderer from 'react-test-renderer'; -import {mount} from 'enzyme'; - -class RadioGroupForm extends React.Component { - constructor(props) { - super(props); - this.state = {value: undefined}; - this.handleChange = this.handleChange.bind(this); - } - - handleChange(val) { - this.setState({value: val}); - } - - getValue() { - return this.grp.getValue(); - } - - render() { - return ( -
    - { this.grp = grp;}} onChange={this.handleChange} data-test-id='grp1' - options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} /> - - ); - } -} - -describe('RadioGroup', () => { - test('RadioGroup - basic rendering', () => { - const radio = renderer.create({}} data-test-id='grp1' - options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />).toJSON(); - expect(radio).toMatchSnapshot(); - }); - - test('RadioGroup - value overrides default value', () => { - const radio = mount({}} data-test-id='grp1' - options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />); - expect(radio.instance().getValue()).toEqual('1'); - }); - - test('RadioGroup - can have no value', () => { - const radio = mount({}} data-test-id='grp1' - options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />); - expect(radio.instance().getValue()).toEqual(undefined); - }); - - test('RadioGroup - can be rendered without title', () => { - const radio = mount({}} data-test-id='grp1' - options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />); - expect(radio.find('.sdc-radio-group__legend').length).toEqual(0); - }); - - test('RadioGroup - value changes', () => { - const radio = mount(); - expect(radio.instance().getValue()).toEqual(undefined); - radio.find('input[value="1"]').simulate('change', { target : { checked: true }}); - expect(radio.instance().getValue()).toEqual('1'); - radio.find('input[value="2"]').simulate('change', { target : { checked: true }}); - expect(radio.instance().getValue()).toEqual('2'); - }); -}); diff --git a/test/react/Tabs.spec.js b/test/react/Tabs.spec.js deleted file mode 100644 index 9906708..0000000 --- a/test/react/Tabs.spec.js +++ /dev/null @@ -1,55 +0,0 @@ -import React from 'react'; -import Tab from '../../src/react/Tab.js'; -import Tabs from '../../src/react/Tabs.js'; - -import renderer from 'react-test-renderer'; -import {mount} from 'enzyme'; - -class TabsForm extends React.Component { - constructor(props) { - super(props); - this.state = {tabId: '1'}; - - this.handleChange = this.handleChange.bind(this); - } - - handleChange(val) { - this.setState({tabId: val}); - } - - render() { - return ( -
    -
    - this.tabsInst = tabs} activeTab={this.state.tabId} onTabClick={this.handleChange} > - Tab #1 - Tab #2 - Tab #3 - -
    - -
    - ); - } -} - -describe('Tabs', () => { - - test('Tabs - basic rendering', () => { - const tabs = renderer.create().toJSON(); - expect(tabs).toMatchSnapshot(); - }); - - test('Tabs - when active tab id is changed, the respective tab is shown', () => { - const tabs = mount(); - expect(tabs.instance().tabsInst.props.activeTab).toEqual('1'); - expect(tabs.find('.sdc-tab-content').text()).toEqual('Tab #1'); - expect(tabs.find('li[data-test-id="1"]').hasClass('sdc-tab-active')).toBeTruthy(); - tabs.find('li[data-test-id="2"]').simulate('click'); - expect(tabs.instance().tabsInst.props.activeTab).toEqual('2'); - expect(tabs.find('li[data-test-id="2"]').hasClass('sdc-tab-active')).toBeTruthy(); - expect(tabs.find('li[data-test-id="1"]').hasClass('sdc-tab-active')).not.toBeTruthy(); - expect(tabs.find('.sdc-tab-content').text()).toEqual('Tab #2'); - }); - -}); diff --git a/test/react/Tile.spec.js b/test/react/Tile.spec.js deleted file mode 100644 index 7ce98a8..0000000 --- a/test/react/Tile.spec.js +++ /dev/null @@ -1,30 +0,0 @@ -import React from 'react'; -import Tile from '../../src/react/Tile.js'; -import TileInfo from '../../src/react/TileInfo.js'; -import TileInfoLine from '../../src/react/TileInfoLine.js'; -import TileFooter from '../../src/react/TileFooter.js'; -import TileFooterCell from '../../src/react/TileFooterCell.js'; - -import renderer from 'react-test-renderer'; - -describe('Tile', () => { - test('Empty tile', () => { - const tile = renderer.create().toJSON(); - expect(tile).toMatchSnapshot(); - }); - - test('Tile with props', () => { - const tile = renderer.create().toJSON(); - expect(tile).toMatchSnapshot(); - }); - - test('Tile with content info', () => { - const tile = renderer.create(Info).toJSON(); - expect(tile).toMatchSnapshot(); - }); - - test('Tile with footer', () => { - const tile = renderer.create(Footer).toJSON(); - expect(tile).toMatchSnapshot(); - }); -}); diff --git a/test/react/__snapshots__/Accordion.spec.js.snap b/test/react/__snapshots__/Accordion.spec.js.snap deleted file mode 100644 index fe75ada..0000000 --- a/test/react/__snapshots__/Accordion.spec.js.snap +++ /dev/null @@ -1,32 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Accordion Accordion - Default 1`] = ` -
    -
    -
    - - -
    -
    - Accordion -
    -
    -
    - Accordion body -
    -
    -`; diff --git a/test/react/__snapshots__/Button.spec.js.snap b/test/react/__snapshots__/Button.spec.js.snap deleted file mode 100644 index 16e13bc..0000000 --- a/test/react/__snapshots__/Button.spec.js.snap +++ /dev/null @@ -1,163 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Button Button - Default - Gray 1`] = ` - -`; - -exports[`Button Button - Default - Negative 1`] = ` - -`; - -exports[`Button Button - Default - Positive 1`] = ` - -`; - -exports[`Button Button - Default - Primary - Disabled 1`] = ` - -`; - -exports[`Button Button - Default - Primary 1`] = ` - -`; - -exports[`Button Button - Default - Warning 1`] = ` - -`; - -exports[`Button Button - Default - White 1`] = ` - -`; - -exports[`Button Button - Link - Primary - Disabled 1`] = ` - -`; - -exports[`Button Button - Link - Primary - With Icon 1`] = ` - -`; - -exports[`Button Button - Link - Primary 1`] = ` - -`; - -exports[`Button Button - Outline - Gray 1`] = ` - -`; - -exports[`Button Button - Outline - Negative 1`] = ` - -`; - -exports[`Button Button - Outline - Positive 1`] = ` - -`; - -exports[`Button Button - Outline - Primary 1`] = ` - -`; diff --git a/test/react/__snapshots__/Checkbox.spec.js.snap b/test/react/__snapshots__/Checkbox.spec.js.snap deleted file mode 100644 index fa6239b..0000000 --- a/test/react/__snapshots__/Checkbox.spec.js.snap +++ /dev/null @@ -1,49 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Checkbox Checkbox - disabled 1`] = ` -
    - -
    -`; - -exports[`Checkbox Checkbox - unchecked 1`] = ` -
    - -
    -`; diff --git a/test/react/__snapshots__/Checklist.spec.js.snap b/test/react/__snapshots__/Checklist.spec.js.snap deleted file mode 100644 index 707e910..0000000 --- a/test/react/__snapshots__/Checklist.spec.js.snap +++ /dev/null @@ -1,165 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Checklist Checklist - Default 1`] = ` -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -`; - -exports[`Checklist Checklist - With disabled items 1`] = ` -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -`; diff --git a/test/react/__snapshots__/Input.spec.js.snap b/test/react/__snapshots__/Input.spec.js.snap deleted file mode 100644 index 62c3e2e..0000000 --- a/test/react/__snapshots__/Input.spec.js.snap +++ /dev/null @@ -1,179 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Input Input - default 1`] = ` -
    - - -
    -`; - -exports[`Input Input - error 1`] = ` -
    - - -
    -
    - - - this is an error - -
    -
    -
    -`; - -exports[`Input Input - number 1`] = ` -
    - - -
    -`; - -exports[`Input Input - placeholder 1`] = ` -
    - - -
    -`; - -exports[`Input Input - readonly 1`] = ` -
    - - -
    -`; - -exports[`Input Input - required 1`] = ` -
    - - -
    -`; diff --git a/test/react/__snapshots__/Modal.spec.js.snap b/test/react/__snapshots__/Modal.spec.js.snap deleted file mode 100644 index c22da8d..0000000 --- a/test/react/__snapshots__/Modal.spec.js.snap +++ /dev/null @@ -1,9 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Modal alert modal 1`] = `"
    Title
    Message
    "`; - -exports[`Modal custom modal 1`] = `"
    Title
    Message
    "`; - -exports[`Modal standard modal - not displayed 1`] = `"
    "`; - -exports[`Modal standard modal 1`] = `"
    Standard Modal
    Message
    "`; diff --git a/test/react/__snapshots__/ModalBody.spec.js.snap b/test/react/__snapshots__/ModalBody.spec.js.snap deleted file mode 100644 index d0fda4d..0000000 --- a/test/react/__snapshots__/ModalBody.spec.js.snap +++ /dev/null @@ -1,7 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`ModalBody basic test 1`] = ` -
    -`; diff --git a/test/react/__snapshots__/ModalFooter.spec.js.snap b/test/react/__snapshots__/ModalFooter.spec.js.snap deleted file mode 100644 index ee98355..0000000 --- a/test/react/__snapshots__/ModalFooter.spec.js.snap +++ /dev/null @@ -1,17 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`ModalFooter basic test 1`] = ` -
    -
    - -
    -
    -`; diff --git a/test/react/__snapshots__/ModalHeader.spec.js.snap b/test/react/__snapshots__/ModalHeader.spec.js.snap deleted file mode 100644 index 8559925..0000000 --- a/test/react/__snapshots__/ModalHeader.spec.js.snap +++ /dev/null @@ -1,24 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`ModalHeader basic test 1`] = ` -
    -
    - - -
    -
    - - -
    -
    -`; diff --git a/test/react/__snapshots__/ModalTitle.spec.js.snap b/test/react/__snapshots__/ModalTitle.spec.js.snap deleted file mode 100644 index 69a7734..0000000 --- a/test/react/__snapshots__/ModalTitle.spec.js.snap +++ /dev/null @@ -1,9 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`ModalTitle basic test 1`] = ` -
    - Title -
    -`; diff --git a/test/react/__snapshots__/Panel.spec.js.snap b/test/react/__snapshots__/Panel.spec.js.snap deleted file mode 100644 index b31dda7..0000000 --- a/test/react/__snapshots__/Panel.spec.js.snap +++ /dev/null @@ -1,9 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Panel Panel - Default 1`] = ` -
    - Panel -
    -`; diff --git a/test/react/__snapshots__/PopupMenu.spec.js.snap b/test/react/__snapshots__/PopupMenu.spec.js.snap deleted file mode 100644 index 7a9060f..0000000 --- a/test/react/__snapshots__/PopupMenu.spec.js.snap +++ /dev/null @@ -1,26 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`PopupMenu check relative menu rendered 1`] = ` -
      -`; - -exports[`PopupMenu check separator rendered 1`] = ` -
    • -`; - -exports[`PopupMenu check static menu rendered 1`] = ` -
        -`; diff --git a/test/react/__snapshots__/PopupMenuItem.spec.js.snap b/test/react/__snapshots__/PopupMenuItem.spec.js.snap deleted file mode 100644 index 3334afb..0000000 --- a/test/react/__snapshots__/PopupMenuItem.spec.js.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`PopupMenuItem check disabled 1`] = ` -
      • - item 2 -
      • -`; - -exports[`PopupMenuItem check selected 1`] = ` -
      • - item 1 -
      • -`; diff --git a/test/react/__snapshots__/Radio.spec.js.snap b/test/react/__snapshots__/Radio.spec.js.snap deleted file mode 100644 index a878d3a..0000000 --- a/test/react/__snapshots__/Radio.spec.js.snap +++ /dev/null @@ -1,49 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Radio Radio - disabled 1`] = ` -
        - -
        -`; - -exports[`Radio Radio - unchecked 1`] = ` -
        - -
        -`; diff --git a/test/react/__snapshots__/RadioGroup.spec.js.snap b/test/react/__snapshots__/RadioGroup.spec.js.snap deleted file mode 100644 index caf729d..0000000 --- a/test/react/__snapshots__/RadioGroup.spec.js.snap +++ /dev/null @@ -1,60 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`RadioGroup RadioGroup - basic rendering 1`] = ` -
        - -
        -
        - -
        -
        - -
        -
        -
        -`; diff --git a/test/react/__snapshots__/Tabs.spec.js.snap b/test/react/__snapshots__/Tabs.spec.js.snap deleted file mode 100644 index 9a4d0a1..0000000 --- a/test/react/__snapshots__/Tabs.spec.js.snap +++ /dev/null @@ -1,52 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Tabs Tabs - basic rendering 1`] = ` -
        -
        -
        -
          -
        • - tab 1 -
        • -
        • - tab 2 -
        • -
        • - tab 3 -
        • -
        -
        - Tab #1 -
        -
        -
        -
        -`; diff --git a/test/react/__snapshots__/Tile.spec.js.snap b/test/react/__snapshots__/Tile.spec.js.snap deleted file mode 100644 index e38ffa2..0000000 --- a/test/react/__snapshots__/Tile.spec.js.snap +++ /dev/null @@ -1,108 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Tile Empty tile 1`] = ` -
        -
        -
        -
        -
        -
        -`; - -exports[`Tile Tile with content info 1`] = ` -
        -
        -
        -
        -
        -
        - Info -
        -
        -
        -
        -`; - -exports[`Tile Tile with footer 1`] = ` -
        -
        -
        -
        -
        -
        - - Footer - -
        -
        -`; - -exports[`Tile Tile with props 1`] = ` -
        -
        - header -
        -
        -
        -
        - - -
        -
        -
        -
        -`; diff --git a/test/react/utils/htmlLoader.js b/test/react/utils/htmlLoader.js deleted file mode 100644 index fbdfbd8..0000000 --- a/test/react/utils/htmlLoader.js +++ /dev/null @@ -1,7 +0,0 @@ -const htmlLoader = require('html-loader'); - -module.exports = { - process(src) { - return htmlLoader(src); - } -}; diff --git a/test/react/utils/svgMock.js b/test/react/utils/svgMock.js deleted file mode 100644 index 2d6ed81..0000000 --- a/test/react/utils/svgMock.js +++ /dev/null @@ -1,3 +0,0 @@ -import React from 'react'; - -module.exports = () => ; \ No newline at end of file diff --git a/tsconfig-aot.json b/tsconfig-aot.json new file mode 100644 index 0000000..83f993e --- /dev/null +++ b/tsconfig-aot.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "target": "es5", + "module": "es2015", + "moduleResolution": "node", + "sourceMap": true, + "declaration": true, + "removeComments": false, + "noImplicitAny": false, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "pretty": true, + "stripInternal": true, + "skipLibCheck": true, + "outDir": "dist/components", + "rootDir": "./src/angular" + }, + "files": [ + "./src/angular/index.ts" + ], + "angularCompilerOptions": { + "genDir": "dist/components", + "debug": false, + "skipTemplateCodegen": true, + "skipMetadataEmit": false, + "strictMetadataEmit": true + } +} diff --git a/tsconfig-sitebook.json b/tsconfig-sitebook.json new file mode 100644 index 0000000..2508424 --- /dev/null +++ b/tsconfig-sitebook.json @@ -0,0 +1,22 @@ +{ + "lerna": { + "disabled": true + }, + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "es5", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2017", + "dom" + ] + } +} diff --git a/tsconfig.angular.build-es5.json b/tsconfig.angular.build-es5.json deleted file mode 100644 index 17e51af..0000000 --- a/tsconfig.angular.build-es5.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "module": "es2015", - "target": "es5", - "lib": ["es2015", "dom"], - "skipLibCheck": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "sourceMap": true, - "moduleResolution": "node", - "declaration": true, - "outDir": "build", - "rootDir": "src" - }, - "files": [ - "src/angular/index.ts" - ], - "angularCompilerOptions": { - "skipMetadataEmit": false, - "strictMetadataEmit": false, - "skipTemplateCodegen": true, - "flatModuleId": "sdc-ui" - } -} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 040ef40..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "module": "commonjs", - "outDir": "dist", - "rootDir": ".", - "sourceMap": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "moduleResolution": "node", - "typeRoots": [ - "node_modules/@types" - ], - "lib": ["es6", "dom"] - }, - "exclude": [ - "node_modules" - ], - "types":[ - "jasmine" - ], - "awesomeTypescriptLoaderOptions": { - "useWebpackText": true - }, - "angularCompilerOptions": { - "debug": true - }, - "compileOnSave": false, - "buildOnSave": false, - "atom": { "rewriteTsconfig": false } -} diff --git a/tslint.json b/tslint.json deleted file mode 100644 index 9aca897..0000000 --- a/tslint.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "extends": [ - "tslint:recommended", - "tslint-angular" - ], - "rulesDirectory": [ - "node_modules/codelyzer" - ], - "rules": { - "member-ordering": [ - false - ], - "angular-whitespace": [ - true, - "check-interpolation", - "check-pipe" - ], - "banana-in-box": true, - "templates-no-negated-async": true, - "directive-selector": [ - true, - "attribute", [ - "Sdc", - "Onap" - ], - "camelCase" - ], - "component-selector": [ - true, - "element", [ - "sdc", - "onap" - ], - "kebab-case" - ], - "use-input-property-decorator": true, - "use-output-property-decorator": true, - "use-host-property-decorator": true, - "no-attribute-parameter-decorator": true, - "no-input-rename": true, - "no-output-rename": true, - "no-forward-ref": true, - "use-view-encapsulation": false, - "use-life-cycle-interface": true, - "use-pipe-transform-interface": true, - "pipe-naming": [ - true, - "camelCase", - "Pipe" - ], - "component-class-suffix": [ - true, - "Component" - ], - "directive-class-suffix": [ - true, - "Directive" - ], - "templates-use-public": true, - "no-access-missing-member": true, - "invoke-injectable": true, - "template-to-ng-template": true, - "ordered-imports": [ - false - ], - "quotemark": [ - false - ], - "trailing-comma": [ - false - ], - "arrow-parens": false, - "object-literal-sort-keys": false, - "object-literal-shorthand": false, - "max-line-length": [true, 240, "^import |^export | implements "] - } -} diff --git a/utils/build-demo.js b/utils/build-demo.js deleted file mode 100644 index 8f5edda..0000000 --- a/utils/build-demo.js +++ /dev/null @@ -1,73 +0,0 @@ -const ncp = require('ncp').ncp; -const fs = require('fs'); -const path = require('path') -const svgFolder = './assets/icons'; -const svgOutputFile = './src/style/scss/common/_icons.scss'; - -var copyFiles = function() { - // Copy generated style.css to demo/gen folder - ncp('lib/css/style.css', 'demo/gen', function (err) { - if (err) { - return console.error(err); - } - }); - - // Copy assets folder to demo/gen folder - ncp('assets', 'demo/gen/assets', function (err) { - if (err) { - return console.error(err); - } - }); -}; - -// var parseSvgContent = function(content) { -// var withoutLines = (content+'').replace(/\n|\t|\r/g, ''); -// return withoutLines.replace(/"/g,'\''); -// }; - -// var readFile = function(filePath) { -// return fs.readFileSync(filePath, 'utf8'); -// }; - -// var clearFile = function(filePath) { -// return fs.truncateSync(filePath, 0); -// }; - -// var writeFile = function(filePath){ -// const text = `.sdc-icon { -// display: inline-block; -// text-rendering: auto; -// -webkit-font-smoothing: antialiased; -// -moz-osx-font-smoothing: grayscale; -// width: 16px; -// height: 16px; -// }\n`; -// fs.writeFileSync(filePath, text); -// console.log("The file was saved!"); -// }; - -// var appendSvgIcons = function(content) { -// fs.appendFileSync(svgOutputFile, content); -// }; - -// var readFolder = function(folderPath) { -// var files = fs.readdirSync(svgFolder); -// files.forEach(file => { -// var extension = path.extname(file); -// if (extension ==='.svg'){ -// console.log(folderPath + "/" + file); -// var fileContent = readFile(folderPath + "/" + file); -// var svgContent = parseSvgContent(fileContent); -// var fileName = path.basename(file, '.svg') -// var scssContent = '.sdc-icon-' + fileName + ' {background-image: url("data:image/svg+xml;utf8,' + svgContent + '"); background-repeat: no-repeat;}'; -// appendSvgIcons(scssContent+'\n'); -// } -// }); - -// }; - -// Generate icons.scss file from multiple SVG files -// clearFile(svgOutputFile); -// writeFile(svgOutputFile); -// readFolder(svgFolder); -copyFiles(); diff --git a/utils/create-icon-map.js b/utils/create-icon-map.js deleted file mode 100644 index d980895..0000000 --- a/utils/create-icon-map.js +++ /dev/null @@ -1,26 +0,0 @@ - -const fs = require('fs'); -const path = require('path'); - -const svgFolder = './assets/icons/'; -const iconMapFile = './src/react/utils/iconMap.js'; - -let dataToWrite = ''; -let iconNames = []; - -let iconMapDir = path.dirname(iconMapFile); -if (!fs.existsSync(iconMapDir)) { - fs.mkdirSync(iconMapDir); -}; - -fs.readdirSync(svgFolder).forEach(file => { - let fileName = file.split('.'); - if (fileName[0] && fileName[1] === 'svg') { - dataToWrite += `import ${fileName[0]} from '-!svg-react-loader!../../.${svgFolder}${file}';\n`; - iconNames.push(fileName[0]); - } -}); - -dataToWrite += '\n' + `export default {\n\t${iconNames.join(',\n\t')}\n};`; - -fs.writeFileSync(iconMapFile, dataToWrite); diff --git a/utils/create-svg-icons-map.js b/utils/create-svg-icons-map.js deleted file mode 100644 index aec459c..0000000 --- a/utils/create-svg-icons-map.js +++ /dev/null @@ -1,95 +0,0 @@ -const fs = require('fs'); -const path = require('path'); -const svgFolder = path.resolve(__dirname + '/../assets/sdc-icons/'); -const iconMapFile = path.resolve(__dirname + '/../src/common/icons-map.json'); -const iconMapTSFile = path.resolve(__dirname + '/../src/common/icons-map.ts'); -const disallowedSvgAttributes = ['fill', 'id', 'width', 'height']; -const disallowedSvgStyle = ['fill']; -const disallowedSvgInlineAttributes = ['fill', 'id']; -const disallowedSvgInlineStyle = ['fill']; - -function _escapeStrRegex(str) { - return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); -} -function _makeSvgAttributesRegex(attrs) { - return new RegExp(`\s*(${attrs.map(_escapeStrRegex).join('|')})\s*=\s*("|')[^"']*\\2`, 'g'); -} -function _makeSvgStyleRegex(attrs) { - return new RegExp(`\s*${attrs.map(_escapeStrRegex).join('|')}\s*:[^'";]*;?`, 'g'); -} - -// prepare -const disallowedSvgAttributesRegex = _makeSvgAttributesRegex(disallowedSvgAttributes); -const disallowedSvgStyleRegex = _makeSvgStyleRegex(disallowedSvgStyle); -const disallowedSvgInlineAttributesRegex = _makeSvgAttributesRegex(disallowedSvgInlineAttributes); -const disallowedSvgInlineStyleRegex = _makeSvgStyleRegex(disallowedSvgInlineStyle); - -function addIcon(iconsObject, iconName, iconPath) { - let iconContent = fs.readFileSync(iconPath).toString(); - if (!iconContent) { - return; - } - - let iconInfoMsg = ''; - - // clean the first tag - iconContent = iconContent.replace(/]*>/, (svgTag) => { - let cleanedNum = 0; - const disallowedSvgAttributesMatch = svgTag.match(disallowedSvgAttributesRegex); - if (disallowedSvgAttributesMatch) { - svgTag = svgTag.replace(disallowedSvgAttributesRegex, ''); - cleanedNum += disallowedSvgAttributesMatch.length; - } - const disallowedSvgStyleMatch = svgTag.match(disallowedSvgStyleRegex); - if (disallowedSvgStyleMatch) { - svgTag = svgTag.replace(disallowedSvgStyleRegex, ''); - cleanedNum += disallowedSvgStyleMatch.length; - } - iconInfoMsg += 'ADDED'; - if (cleanedNum > 0) { - iconInfoMsg += `\n\t(cleaned ${cleanedNum} attributes and styles)`; - } - return svgTag; - }); - - const disallowedSvgInlineAttributesMatch = iconContent.match(disallowedSvgInlineAttributesRegex); - if (disallowedSvgInlineAttributesMatch) { - iconInfoMsg += `\n\t* CHECK for ${disallowedSvgInlineAttributesMatch.length} inline attributes [${disallowedSvgInlineAttributes.join(', ')}]`; - } - const disallowedSvgInlineStyleMatch = iconContent.match(disallowedSvgInlineStyleRegex); - if (disallowedSvgInlineStyleMatch) { - iconInfoMsg += `\n\t* CHECK for ${disallowedSvgInlineStyleMatch.length} inline styles [${disallowedSvgInlineStyle.join(', ')}]`; - } - - console.log(`# ${iconName}: ${iconInfoMsg}`); - - iconsObject[iconName] = iconContent; -} - -function main() { - const iconMapDir = path.dirname(iconMapFile); - if (!fs.existsSync(iconMapDir)) { - fs.mkdirSync(iconMapDir); - } - - const iconsObject = {}; - fs.readdirSync(svgFolder).forEach((file) => { - const fileName = file.split('.', 2)[0]; - const fileExtension = file.split('.', 2)[1]; - if (fileExtension === 'svg') { - const filePath = svgFolder + '/' + file; - if (fs.existsSync(filePath)) { - addIcon(iconsObject, fileName, filePath); - } - } - }); - - const dataToWrite = JSON.stringify(iconsObject); - - fs.writeFileSync(iconMapFile, dataToWrite); - fs.writeFileSync(iconMapTSFile, `export default ${dataToWrite};`); - - console.log(`Icons Map JSON created! [${iconMapFile}]`); -} - -main(); diff --git a/utils/index-for-gh-pages.html b/utils/index-for-gh-pages.html deleted file mode 100644 index a6d7f63..0000000 --- a/utils/index-for-gh-pages.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - Storybook - - - - - - - -
        - -
        -
        React
        -
        Angular
        -
        -
        - -
        - -
        - - - diff --git a/utils/main-page.html b/utils/main-page.html deleted file mode 100644 index 30fb10f..0000000 --- a/utils/main-page.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - Storybook - - - - - -
        Welcome to ONAP/UI project!
        -
        The aim of this project is to create a basic component library, with a unified UX and UI for both Angular and React based projects.
        - - - - \ No newline at end of file diff --git a/utils/scripts/map-sources.js b/utils/scripts/map-sources.js deleted file mode 100644 index 3ce6bfb..0000000 --- a/utils/scripts/map-sources.js +++ /dev/null @@ -1,9 +0,0 @@ -const sorcery = require('sorcery'); - -const argv = require('yargs') - .alias('f', 'file') - .argv; - -sorcery.load(argv.file).then(function (chain) { - chain.write(); -}); diff --git a/webpack-umd.config.ts b/webpack-umd.config.ts new file mode 100644 index 0000000..d85ead4 --- /dev/null +++ b/webpack-umd.config.ts @@ -0,0 +1,97 @@ +import * as webpack from 'webpack'; +import * as path from 'path'; +import * as fs from 'fs'; +import * as angularExternals from 'webpack-angular-externals'; +import * as rxjsExternals from 'webpack-rxjs-externals'; + +const UglifyJsPlugin = require("uglifyjs-webpack-plugin"); +const pkg = JSON.parse(fs.readFileSync('./package.json').toString()); + +export default { + entry: { + 'index.umd': './src/angular/index.ts', + 'index.umd.min': './src/angular/index.ts', + }, + output: { + path: path.join(__dirname, 'dist'), + filename: '[name].js', + libraryTarget: 'umd', + library: 'onap-ui-angular' + }, + resolve: { + extensions: [ '.ts', '.js', '.json' ] + }, + externals: [ + angularExternals(), + rxjsExternals() + ], + devtool: 'source-map', + module: { + rules: [ + { + test: /\.ts$/, + use: [ + { + loader: 'ts-loader', + options: { + configFile: "tsconfig-aot.json" + } + }, + { + loader: 'angular2-template-loader' + } + ], + exclude: [ + /node_modules/, + /\.(spec|e2e)\.ts$/ + ] + }, + + { + test: /\.json$/, + use: 'json-loader' + }, + + { + test: /\.css$/, + use: ['to-string-loader', 'css-loader'] + }, + + { + test: /\.scss$/, + use: ['to-string-loader', 'css-loader', 'sass-loader'] + }, + + { + test: /\.html$/, + use: 'raw-loader' + } + ] + }, + plugins: [ + new webpack.ContextReplacementPlugin( + /angular(\\|\/)core(\\|\/)@angular/, + path.join(__dirname, 'src/angular') + ), + + new UglifyJsPlugin({ + include: /\.min\.js$/, + sourceMap: true + }), + + new webpack.BannerPlugin({ + banner: ` +/** + * ${pkg.name} - ${pkg.description} + * @version v${pkg.version} + * @author ${pkg.author.name} + * @link ${pkg.homepage} + * @license ${pkg.license} + */ + `.trim(), + raw: true, + entryOnly: true + }) + + ] +} as webpack.Configuration; diff --git a/webpack.build.config.js b/webpack.build.config.js deleted file mode 100644 index 9c74402..0000000 --- a/webpack.build.config.js +++ /dev/null @@ -1,63 +0,0 @@ -var path = require('path'); - -var webpackConfig = { - - devtool: 'source-map', - - entry: {}, - - output: { - publicPath: '' - }, - - plugins: [ - ], - - module: { - rules: [ - // .ts files for TypeScript - { - test: /.ts$/, - use: [ - 'awesome-typescript-loader', - 'angular2-template-loader', - 'angular2-router-loader' - ] - }, - { - test: /\.html$/, - loader: 'html-loader' - }, - { - test: /\.scss$/, - use: ['style-loader', 'css-loader', 'sass-loader'], - include: path.resolve(__dirname, '../') - }, - { - test: /\.json$/, - loader: 'json', - include: path.resolve(__dirname, '../') - - }, - { - test: /\.svg$/, - use: 'svg-sprite-loader', - options: { - extract: true, - - } - } - ] - }, - - resolve: { - extensions: ['.ts', '.js', '.json'], - modules: [path.resolve(__dirname, 'node_modules')], - alias: { - root: path.resolve(__dirname), - app: path.resolve(__dirname, 'src') - } - } -}; - -module.exports = webpackConfig; diff --git a/webpack/helpers.js b/webpack/helpers.js deleted file mode 100644 index c2c3717..0000000 --- a/webpack/helpers.js +++ /dev/null @@ -1,10 +0,0 @@ -var path = require('path'); - -var _root = path.resolve(__dirname, '..'); - -function root(args) { - args = Array.prototype.slice.call(arguments, 0); - return path.join.apply(path, [_root].concat(args)); -} - -exports.root = root; diff --git a/webpack/webpack.test.js b/webpack/webpack.test.js deleted file mode 100644 index 9057d4e..0000000 --- a/webpack/webpack.test.js +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************************** - * Webpack test configuration file - * Using the current configuration we are able to bundle all the files we need for our - * unit testings. - ***************************************************************************************/ - - -'use strict'; - -/** - * Dependencies: - * path: node library for resolving full path names - * webpack: for use in our testings - */ -const path = require('path'); -const webpack = require('webpack'); -const helpers = require('./helpers'); -module.exports = { - /** - * Choose a developer tool to enhance debugging. inline-source-map - A SourceMap is added as DataUrl to the JavaScript file. - */ - devtool: 'inline-source-map', - - /** - * Set webpack loaders and preloaders for typescript, angular2, SASS and HTML, - * so that webpack will be able to process and bundle them. - */ - module: { - - rules: [ - { - test: /.ts$/, - exclude: /node_modules/, - use: [ - 'awesome-typescript-loader', - 'angular2-template-loader', - 'angular2-router-loader' - ] - }, - { test: /\.html$/, loader: "html-loader" }, - { - test: /.scss$/, - use: ['style-loader', 'css-loader', 'sass-loader'], - include: path.resolve(__dirname, '../') - }, - - ] - }, - - plugins: [ - // Workaround for angular/angular#11580 - new webpack.ContextReplacementPlugin( - // The (\\|\/) piece accounts for path separators in *nix and Windows - ///angular(\\|\/)core(\\|\/)@angular/, - /@angular(\\|\/)core(\\|\/)/, - helpers.root('./src'), // location of your src - {} // a map of your routes - ), - ], - - /** - * This section lets Webpack know which types of file extensions it should be loading. - */ - resolve: { - extensions: ['.js', '.ts'], - modules: [ - path.resolve('.', 'src'), - 'node_modules' - ] - }, -}; diff --git a/wiki/Adding_a_new_component.md b/wiki/Adding_a_new_component.md new file mode 100644 index 0000000..7309597 --- /dev/null +++ b/wiki/Adding_a_new_component.md @@ -0,0 +1,100 @@ +# Adding a new component +To add a new component to this project, and to its showcase powered by [storybook](https://github.com/storybooks/storybook), follow the following simple guidelines. Throughout this guide, we will pretend to be adding a new component called *myComponent*. + +Note: the project is build of 3 different projects: +1. [onap-ui-common](https://github.com/onap-sdc/onap-ui-common) - contains HTML and SCSS files for all components +2. [onap-ui-angular](https://github.com/onap-sdc/onap-ui-angular) - contains Angular components according to the HTML defined in onap-ui-common +3. [onap-ui-react](https://github.com/onap-sdc/onap-ui-react) - contains React components according to the HTML defined in onap-ui-common + +## 1. Create a new feature branch +In your forked repository, after making sure your `master` branch is synced with original repository's `master`, create a new branch named feature/myComponent. +Note: This should be done in all 3 projects: onap-ui-common, onap-ui-angular, onap-ui-react + +## 2. Add .html and .scss files (onap-ui-common only) +* Under the components directory (onap-ui-common) at the root of the project, create a new directory with the name of your component. +* Create **one** .scss file, declaring the appropriate classes and rules for your component, following the css guidelines in terms of hierarchy and naming methodology. Make sure to name your file by the following convention: **_myComponent.scss**. +* Create **multiple** .html files, one for each of the possible styles of your component, using the classes you declared in the .scss file. + +## 3. Import your .scss file (onap-ui-common only) +Add the appropriate import for your new .scss file in scss/_components.scss: +```scss +@import ../components/myComponent.scss; +``` + +## 4. Implement the React and Angular2 components (onap-ui-angular / onap-ui-react) +The next step is to use your html and scss structure and implement them in React and Angular. + +### React +See [onap-ui-react](https://github.com/onap-sdc/onap-ui-react) project for more details + +### Angular +Create a new folder with component name under src/angular. Inside the folder create component module, ts file and HTML file. +Keep the names according to the rule: **MyComponent.component.ts**, and implement the component. Make sure to exporting your component. + +Note: due to issues compiling the HTML files, all HTML files as extension of .ts + +**Create component typescript file** +```js +// src/angular/MyComponent/my-component.component.ts + +import { Component, Input } from "@angular/core"; +import { template } from "./my-component.component.html"; + +@Component({ + selector: "my-component", + template: template +}) + +export class MyComponent { + @Input() public testId: string; + @Input() public text: string; + + constructor() {} + + public onClick = (e): void => { + // Do something + } + +} +``` + +**Create component HTML file** +```js +// src/angular/MyComponent/my-component.component.html.ts +export const template = ` + +`; +``` + +**Create component module file** +```js +// src/angular/MyComponent/my-component.module.ts +import { NgModule } from "@angular/core"; +import { MyComponent } from "./my-component.component"; + +@NgModule({ + declarations: [MyComponent], + imports: [], + exports: [MyComponent], +}) +export class MyComponentModule {} +``` + +**Export the component in src\angular\components.ts file** + +```js +// src/angular/components.ts + +export { MyComponent } from "./src/angular/my-component/my-component.component"; +``` + +## 5. Add your component to storybook +See [Adding a component to storybook](https://github.com/onap-sdc/onap-ui-angular/wiki/Adding-a-new-component-to-storybook). + +## 6. Push and create a new pull request +Push your branch to your fork's origin/feature/myComponent, and create a new pull request from your fork to the original repo. + +## 7. Release if needed +If your changes require a new release to `npm`, please contact the administrators. + +Hurray! your component is live at the [showcase](https://onap-sdc.github.io/onap-ui-angular/), and if it was released can be consumed from npm. diff --git a/wiki/Adding_a_new_component_to_storybook.md b/wiki/Adding_a_new_component_to_storybook.md new file mode 100644 index 0000000..3861b7e --- /dev/null +++ b/wiki/Adding_a_new_component_to_storybook.md @@ -0,0 +1,62 @@ +# Adding a new component to storybook + +To add your new component to storybook, follow the steps in this document. Make sure that you added your component to the library as described in [Adding a new component](https://github.com/onap-sdc/onap-ui-angular/wiki/Adding-a-new-component). We will continue from where we took off, pretending to add our new component, MyComponent, to storybook. + +## 1. Create the story +under **stories/angular** directory at the root of the project, create a new file called `mycomponents.stories.ts`. + +Example of component story file: +```js +import { storiesOf } from '@storybook/angular'; +import { withKnobs, text, number, boolean, array, select, color, date, button } from '@storybook/addon-knobs'; +import { withNotes } from '@storybook/addon-notes'; +import { action, configureActions } from '@storybook/addon-actions'; +import { moduleMetadata } from '@storybook/angular'; +import { MyComponent } from '../../src/angular/components'; + +storiesOf('Category|MyComponent', module) + .addDecorator(withKnobs) + .addDecorator(withNotes) + .addDecorator( + moduleMetadata({ + declarations: [ + MyComponent + ], + imports: [] + }) + ) + .add('Category name', () => { + const _text = text('text', 'Simple component'); + const _checked = boolean('checked', false); + const _disabled = boolean('disabled', false); + const _testId = text('testId', 'smalpe-test-id'); + const _checkedChange = text('*(checkedChange)', 'Event throws when checked changed, see in Action logger tab.'); + + return { + props: { + checkedChange: action('MyComponent value changed '), + _text, _checked, _disabled, _testId + }, + template: ` + + + ` + } + }, + { notes: `

        My Component

        + Full example of my component. + Use the KNOBS tab to change values.` + } +) +``` + +## 3. Run storybook +The final step is to run storybook and make sure everything is working. just run `npm run storybook` to get a local server running, and direct your browser to the outputted address. + +If you want to deploy storybook to your fork's github pages, follow [Deploying storybook to a fork's github pages](https://github.com/onap-sdc/onap-ui-common/wiki/Deploying-storybook-to-a-fork's-github-pages). diff --git a/wiki/Contribution_guide.md b/wiki/Contribution_guide.md new file mode 100644 index 0000000..3ce4f8b --- /dev/null +++ b/wiki/Contribution_guide.md @@ -0,0 +1,30 @@ +# Contribution guide +Contribution to this project will be accepted **only** by following this guide. + +## 1. Fork +Fork this repository to your own Github account. + +## 2. Clone +Run `git clone https://github.com/yourusername/onap-ui-angular.git` to clone your forked repository on your local machine. Don't forget to run `npm install` in your freshly cloned repository to install all dependencies. + +## 3. Configure travis +Follow the [Deploying storybook to a fork's github pages] to configure your personal travis settings. + +## 4. Make sure your fork is synced +This repository has a hook (powered by [backstroke](http:/backstroke.us)), that upon each change to the `master` branch sends a pull request with the changes to all of its forks. Make sure to monitor these pull request and keep your fork in sync. + +## 5. Workflow +Whenever starting to work on your new contribution, first of all make sure your fork is synced (no pending pull requests). An important rule to follow is to *never do any work and commits on your master branch*. Your fork's `master` should serve only as a copy of the original. +Workflow is as following (on your local clone of course): +* `git checkout master` +* `git pull` (after you made sure your fork's master is synced) +* `git checkout -b your-branch` +* Do some work and commit your changes +* If there were changes on the original repo while you were doing your work: + * Merge relevant pull request into your fork + * `git checkout master` + * `git pull` + * `git checkout your-branch` + * `git rebase master` +* Push your branch to your fork +* Create a new pull request from your branch to the original repo's master (NOTE: **do not create a pull request to your fork's master**) diff --git a/wiki/Deploying_storybook_to_a_forks_github_pages.md b/wiki/Deploying_storybook_to_a_forks_github_pages.md new file mode 100644 index 0000000..4c4be46 --- /dev/null +++ b/wiki/Deploying_storybook_to_a_forks_github_pages.md @@ -0,0 +1,13 @@ +# Deploying storybook to a fork's github pages +By following the steps in this document, you will be able to deploy storybook to your own fork's github pages (useful for a staging environment that can be reviewed by a designer). + +## 1. Enable the repository in your travis homepage +After you've forked this repository, go to [travis](https://travis-ci.org), and sign in with your Github account. Then go to your profile page by clicking your avatar in the top right corner. Inside the profile page, filck the onap-ui-angular repository switch on. Travis is now enabled for your repository. + +## 2. Define environment variables +Go to your repository setting in travis. There are two environment variables you need to define: +* GITHUB_TOKEN: your personal access token. If you don't know how to create one, follow this [guide](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/). When you create your token, use 'repo' permissions only. Make sure the 'Display value in build log' switch is off, so that your token will be encrypted. +* DEPLOY: set this variable to 1 if you want builds to trigger deployment, 0 otherwise. This time, make sure the 'Display value in build log' switch is on. NOTE: setting this to 1 will trigger a deployment on **every** branch you push to your repo, not only on master (because no work should be done on your fork's master anyways.) + +## 3. Check that travis is working +Push a new branch to your fork and check that travis ran a build on your branch and deployed it. The deployment address should be https://*username*.github.io/onap-ui-angular diff --git a/wiki/Understanding_project_build.md b/wiki/Understanding_project_build.md new file mode 100644 index 0000000..253d83f --- /dev/null +++ b/wiki/Understanding_project_build.md @@ -0,0 +1,76 @@ +# Understanding project build + +Details about building the project for deploying as NPM module + +Great document clarify build process: https://medium.com/@trekhleb/how-to-create-aot-jit-compatible-angular-4-library-with-external-scss-html-templates-9da6e68dac6e + +## Two main builds: +1. Build onap-ui-angular project as NPM module (npm run build), so 3rd parties can use it. +2. Build onap-ui-angular for storybook (npm run storybook:build), to show the components in github pages. + +## package.json scripts +build: main build of the project +build:ngc: run ngc and comoile the typescript files (using NGC) +build:umd: build 4 UMD bundled files using webpack +storybook: start the storybook server +storybook:prebuild: ? +storybook:build: build the storybook code for using in github pages + + +## Exclude Angular core from the bundle + +It might be pretty obvious but we must keep in mind that we’re writing library for Angular project. Since project itself must have Angular core as a dependency the library should not include Angular sources in the bundles it produces. To do so we need to setup peer dependencies in our package.json file. +```js +{ + ... + "peerDependencies": { + "@angular/common": "^6.0.3", + "@angular/core": "^6.0.3" + } + ... +} +``` + +## Compile using NGC + +Running node_modules/.bin/ngc -p tsconfig-aot.json + +Some important notes regarding tsconfig-aot.json file: +```js +{ + "compilerOptions": { + "target": "es5", // Specifying ES standard + "module": "es2015", + "sourceMap": true, // Ask tsc to generate *.map.js files + "declaration": true, // Ask tsc to generate *.d.ts files + "outDir": "dist", // Specify output folder for the files + ... + }, + "files": [ // Specify input file for tsc/ngc + "./src/angular/index.ts" + ], + "angularCompilerOptions": { // Angular compiler specific config + "genDir": "dist", + "skipTemplateCodegen": true, // Don't produce *.ngfactory.ts + ... + } +} +``` + +## Bundle using WEBPACK + +We use webpack to create UMD (Universal Module Definition) file. This format is for delivering library as a bundle since it ultimately implements both AMD and CommonJS formats. In a result our bundle may be consumed even on the back-end by Node. + +Webpack will create 4 files: +1. index.umd.js - Main javascript file, unminified. +2. index.umd.min.js - For consumers convenience minified version of the bundle to decrease download time for the user. +3. index.umd.js.map - For debuging the bundle: JavaScript SourceMaps. +4. index.umd.min.js.map - Same map file minified. + +## Build files summary + +1. package.json - main build file, define the dependencies and node scripts, also data for deployment. +2. tsconfig-aot.json - used by NGC to compile .ts file to .js files. + + + diff --git a/wiki/home.md b/wiki/home.md new file mode 100644 index 0000000..5d5edf9 --- /dev/null +++ b/wiki/home.md @@ -0,0 +1 @@ +Welcome to the onap-ui-angular wiki! -- cgit 1.2.3-korg