Showing preview only (801K chars total). Download the full file or copy to clipboard to get everything.
Repository: chandu0101/scalajs-react-components
Branch: master
Commit: 56864d39ca66
Files: 250
Total size: 725.4 KB
Directory structure:
gitextract_2kkbcz6e/
├── .gitignore
├── .scalafmt.conf
├── .travis.yml
├── LICENSE
├── NOTICE
├── README.md
├── build.sbt
├── core/
│ └── src/
│ └── main/
│ └── scala/
│ └── chandu0101/
│ └── scalajs/
│ └── react/
│ └── components/
│ ├── DefaultSelect.scala
│ ├── GoogleMap.scala
│ ├── Implicits.scala
│ ├── Pager.scala
│ ├── ReactDraggable.scala
│ ├── ReactGeomIcon.scala
│ ├── ReactInfinite.scala
│ ├── ReactListView.scala
│ ├── ReactPopOver.scala
│ ├── ReactSearchBox.scala
│ ├── ReactTable.scala
│ ├── ReactTagsInput.scala
│ ├── ReactTapEventPlugin.scala
│ ├── ReactTreeView.scala
│ ├── Spinner.scala
│ ├── elementalui/
│ │ ├── Eui.scala
│ │ └── types.scala
│ ├── fascades/
│ │ └── GoogleMapFascade.scala
│ ├── helpers.scala
│ ├── hljs/
│ │ ├── HLJSStatic.scala
│ │ ├── Hljs.scala
│ │ ├── IAutoHighlightResult.scala
│ │ ├── ICompiledMode.scala
│ │ ├── IHighlightResult.scala
│ │ ├── IHighlightResultBase.scala
│ │ ├── IMode.scala
│ │ ├── IModeBase.scala
│ │ └── IOptions.scala
│ ├── materialui/
│ │ ├── Mui.scala
│ │ ├── MuiAutoCompleteFilters.scala
│ │ ├── MuiColors.scala
│ │ ├── MuiStyles.scala
│ │ ├── MuiSvgIcons.scala
│ │ ├── MuiUtil.scala
│ │ ├── package.scala
│ │ ├── raw/
│ │ │ └── TouchTapEvent.scala
│ │ └── types.scala
│ ├── package.scala
│ ├── reactsplitpane/
│ │ └── ReactSplitPane.scala
│ └── semanticui/
│ ├── Sui.scala
│ └── types.scala
├── demo/
│ ├── index.html
│ ├── src/
│ │ └── main/
│ │ └── scala/
│ │ └── demo/
│ │ ├── AppCSS.scala
│ │ ├── CallbackDebug.scala
│ │ ├── ReactApp.scala
│ │ ├── components/
│ │ │ ├── AppHeader.scala
│ │ │ ├── CallbackDebug.scala
│ │ │ ├── CodeExample.scala
│ │ │ ├── CodeHighlight.scala
│ │ │ ├── ComponentCredits.scala
│ │ │ ├── ComponentGridItem.scala
│ │ │ ├── GithubUser.scala
│ │ │ ├── Images.scala
│ │ │ ├── InfoTemplate.scala
│ │ │ ├── LeftNav.scala
│ │ │ ├── LeftNavPage.scala
│ │ │ ├── LocalDemoButton.scala
│ │ │ ├── ReactDraggableDemo.scala
│ │ │ ├── ReactDraggableInfo.scala
│ │ │ ├── ReactGeomIconDemo.scala
│ │ │ ├── ReactGeomIconInfo.scala
│ │ │ ├── ReactInfiniteDemo.scala
│ │ │ ├── ReactInfiniteInfo.scala
│ │ │ ├── ReactListViewDemo.scala
│ │ │ ├── ReactListViewInfo.scala
│ │ │ ├── ReactPopoverDemo.scala
│ │ │ ├── ReactPopoverInfo.scala
│ │ │ ├── ReactTagsInputDemo.scala
│ │ │ ├── ReactTagsInputInfo.scala
│ │ │ ├── ReactTreeViewDemo.scala
│ │ │ ├── ReactTreeViewInfo.scala
│ │ │ ├── RedLink.scala
│ │ │ ├── ScalaCSSTutorial.scala
│ │ │ ├── SpinnerDemo.scala
│ │ │ ├── SpinnerInfo.scala
│ │ │ ├── elementalui/
│ │ │ │ ├── EuiButtonsDemo.scala
│ │ │ │ ├── EuiFormsDemo.scala
│ │ │ │ ├── EuiGlyphsDemo.scala
│ │ │ │ ├── EuiInfo.scala
│ │ │ │ ├── EuiMiscDemo.scala
│ │ │ │ ├── EuiModalDemo.scala
│ │ │ │ └── EuiSpinnerDemo.scala
│ │ │ ├── googlemap/
│ │ │ │ ├── GoogleMapBasic.scala
│ │ │ │ ├── GoogleMapCustomMarkerIcon.scala
│ │ │ │ ├── GoogleMapInfo.scala
│ │ │ │ ├── GoogleMapMarkerInfoWindow.scala
│ │ │ │ ├── GoogleMapMarkers.scala
│ │ │ │ └── MutableGoogleMapMarkers.scala
│ │ │ ├── materialui/
│ │ │ │ ├── MobileTearSheet.scala
│ │ │ │ ├── MuiAppBarDemo.scala
│ │ │ │ ├── MuiAutoCompleteDemo.scala
│ │ │ │ ├── MuiAvatarDemo.scala
│ │ │ │ ├── MuiButtonsDemo.scala
│ │ │ │ ├── MuiDatePickerDemo.scala
│ │ │ │ ├── MuiDialogDemo.scala
│ │ │ │ ├── MuiDrawerDemo.scala
│ │ │ │ ├── MuiDropDownMenuDemo.scala
│ │ │ │ ├── MuiInfo.scala
│ │ │ │ ├── MuiListDemo.scala
│ │ │ │ ├── MuiMenuDemo.scala
│ │ │ │ ├── MuiPaperDemo.scala
│ │ │ │ ├── MuiPopoverDemo.scala
│ │ │ │ ├── MuiProgressDemo.scala
│ │ │ │ ├── MuiSelectFieldDemo.scala
│ │ │ │ ├── MuiSliderDemo.scala
│ │ │ │ ├── MuiSnackBarDemo.scala
│ │ │ │ ├── MuiSvgIconDemo.scala
│ │ │ │ ├── MuiSwitchesDemo.scala
│ │ │ │ ├── MuiTableDemo.scala
│ │ │ │ ├── MuiTabsDemo.scala
│ │ │ │ ├── MuiTextFieldDemo.scala
│ │ │ │ ├── MuiThemeProviderDemo.scala
│ │ │ │ ├── MuiTimePickerDemo.scala
│ │ │ │ └── MuiToolbarDemo.scala
│ │ │ ├── reactsplitpane/
│ │ │ │ ├── ReactSplitPaneInfo.scala
│ │ │ │ ├── ReactSplitPaneSimpleHorizontal.scala
│ │ │ │ ├── ReactSplitPaneSimpleNested.scala
│ │ │ │ └── ReactSplitPaneSimpleVertical.scala
│ │ │ ├── reacttable/
│ │ │ │ ├── ReactTableBasic.scala
│ │ │ │ ├── ReactTableCustomCell.scala
│ │ │ │ ├── ReactTableCustomColumnSize.scala
│ │ │ │ └── ReactTableInfo.scala
│ │ │ └── semanticui/
│ │ │ ├── SuiButtonDemo.scala
│ │ │ ├── SuiContainerDemo.scala
│ │ │ ├── SuiDividerDemo.scala
│ │ │ ├── SuiFlagDemo.scala
│ │ │ ├── SuiGridDemo.scala
│ │ │ ├── SuiHeaderDemo.scala
│ │ │ ├── SuiIconDemo.scala
│ │ │ ├── SuiInfo.scala
│ │ │ ├── SuiInputDemo.scala
│ │ │ └── SuiListDemo.scala
│ │ ├── pages/
│ │ │ ├── EuiPage.scala
│ │ │ ├── GoogleMapPage.scala
│ │ │ ├── HomePage.scala
│ │ │ ├── MuiPage.scala
│ │ │ ├── ReactDraggablePage.scala
│ │ │ ├── ReactGeomIconPage.scala
│ │ │ ├── ReactInfinitePage.scala
│ │ │ ├── ReactListViewPage.scala
│ │ │ ├── ReactPopoverPage.scala
│ │ │ ├── ReactSplitPanePage.scala
│ │ │ ├── ReactTablePage.scala
│ │ │ ├── ReactTagsInputPage.scala
│ │ │ ├── ReactTreeViewPage.scala
│ │ │ ├── SpinnerPage.scala
│ │ │ └── SuiPage.scala
│ │ ├── routes/
│ │ │ ├── AppRouter.scala
│ │ │ ├── EuiRouteModule.scala
│ │ │ ├── GoogleMapRouteModule.scala
│ │ │ ├── LeftRoute.scala
│ │ │ ├── MuiRouteModule.scala
│ │ │ ├── ReactDraggableRouteModule.scala
│ │ │ ├── ReactGeomIcontRouteModule.scala
│ │ │ ├── ReactInfiniteRouteModule.scala
│ │ │ ├── ReactListViewRouteModule.scala
│ │ │ ├── ReactPopoverRouteModule.scala
│ │ │ ├── ReactSplitPaneRouteModule.scala
│ │ │ ├── ReactTableRouteModule.scala
│ │ │ ├── ReactTagsInputRouteModule.scala
│ │ │ ├── ReactTreeViewRouteModule.scala
│ │ │ ├── SpinnerRouteModule.scala
│ │ │ └── SuiRouteModule.scala
│ │ └── util/
│ │ └── SampleData.scala
│ ├── webpack.config.dev.js
│ ├── webpack.config.prod.js
│ ├── webpack.config.shared.js
│ └── webpack.config.test.js
├── doc/
│ ├── CHANGELOG-0.1.md
│ ├── CHANGELOG-1.0.md
│ ├── CHANGELOG_0.2.md
│ ├── CHANGELOG_0.3.md
│ ├── CHANGELOG_0.4.md
│ ├── CHANGELOG_0.5.md
│ ├── CHANGELOG_0.6.md
│ ├── CHANGELOG_0.7.md
│ ├── CHANGELOG_0.8.md
│ ├── CONTRIBUTE.md
│ └── InteropWithThirdParty.md
├── example/
│ ├── .scalafmt.conf
│ ├── .travis.yml
│ ├── LICENSE
│ ├── NOTICE
│ ├── README.md
│ ├── build.sbt
│ ├── index.html
│ ├── project/
│ │ ├── build.properties
│ │ └── plugins.sbt
│ └── src/
│ └── main/
│ └── scala/
│ └── HelloWorldApp.scala
├── gen/
│ └── src/
│ ├── main/
│ │ └── scala/
│ │ └── com/
│ │ └── olvind/
│ │ ├── DomTypes.scala
│ │ ├── OutputFolder.scala
│ │ ├── Runner.scala
│ │ ├── componentParsers.scala
│ │ ├── eui/
│ │ │ ├── EuiLibrary.scala
│ │ │ ├── EuiRunner.scala
│ │ │ ├── EuiTypeMapper.scala
│ │ │ ├── EuiTypeMapperFunction.scala
│ │ │ └── EuiTypeMemberMethodMapper.scala
│ │ ├── libraries.scala
│ │ ├── mui/
│ │ │ ├── MuiLibrary.scala
│ │ │ ├── MuiRunner.scala
│ │ │ ├── MuiTypeMapper.scala
│ │ │ ├── MuiTypeMapperFunction.scala
│ │ │ └── MuiTypeMemberMethodMapper.scala
│ │ ├── package.scala
│ │ ├── printers.scala
│ │ ├── props.scala
│ │ ├── requiresjs/
│ │ │ ├── JsParser.scala
│ │ │ ├── Lazy.scala
│ │ │ ├── Require.scala
│ │ │ ├── ResolvePath.scala
│ │ │ ├── ScanCtx.scala
│ │ │ ├── VisitorComponentMembers.scala
│ │ │ ├── VisitorComponents.scala
│ │ │ ├── VisitorExports.scala
│ │ │ ├── VisitorHelper.scala
│ │ │ ├── VisitorHelperNameStack.scala
│ │ │ ├── VisitorImports.scala
│ │ │ ├── VisitorPropType.scala
│ │ │ └── types.scala
│ │ ├── sui/
│ │ │ ├── SuiLibrary.scala
│ │ │ ├── SuiRunner.scala
│ │ │ ├── SuiTypeMapper.scala
│ │ │ ├── SuiTypeMapperFunction.scala
│ │ │ └── SuiTypeMemberMethodMapper.scala
│ │ └── types.scala
│ └── test/
│ ├── resources/
│ │ └── mui15/
│ │ ├── Paper/
│ │ │ ├── Paper.js
│ │ │ └── index.js
│ │ ├── comps/
│ │ │ ├── Divider.js
│ │ │ └── Drawer.js
│ │ ├── internal/
│ │ │ ├── AutoLockScrolling.js
│ │ │ └── Overlay.js
│ │ ├── styles/
│ │ │ └── transitions.js
│ │ └── utils/
│ │ ├── autoPrefix.js
│ │ └── propTypes.js
│ └── scala/
│ └── com/
│ └── olvind/
│ ├── JsParserTest.scala
│ └── PropCommentTest.scala
├── macros/
│ └── src/
│ ├── main/
│ │ └── scala/
│ │ └── chandu0101/
│ │ └── macros/
│ │ └── tojs/
│ │ ├── GhPagesMacros.scala
│ │ ├── JSMacro.scala
│ │ └── ReactMacroUtils.scala
│ └── test/
│ └── scala/
│ └── chandu0101/
│ └── macros/
│ └── tojs/
│ └── JSMacroTest.scala
└── project/
├── build.properties
└── plugins.sbt
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*.class
*.log
# sbt specific
.cache/
.history/
.lib/
dist/*
target/
lib_managed/
src_managed/
project/boot/
project/plugins/project/
# Scala-IDE specific
.scala_dependencies/
.worksheet/
.cache-main/
.cache-tests/
*/.classpath/
*/.metadata/
*/.project/
*/.settings/
#intellij
.idea
.idea_modules
#project
assets/
node_modules/
/core/docs
.DS_Store
yarn.lock
core/.cache-main
core/.classpath
core/.project
demo/.classpath
demo/.project
gen/.cache-main
gen/.cache-tests
gen/.classpath
gen/.project
macros/.cache-main
macros/.classpath
macros/.project
*/.gitignore
================================================
FILE: .scalafmt.conf
================================================
align = true # For pretty alignment.
maxColumn = 100 # For my wide 30" display.
================================================
FILE: .travis.yml
================================================
language: scala
scala:
- 2.12.4
jdk:
- oraclejdk8
sbt_args:
-no-colors
-J-Xss2m
env:
- NODE_VERSION="8.10.0"
before_install:
- nvm install $NODE_VERSION
- npm install -g yarn
script:
- sbt ++$TRAVIS_SCALA_VERSION test demo/fastOptJS::webpack
# Tricks to avoid unnecessary cache updates, from
# http://www.scala-sbt.org/0.13/docs/Travis-CI-with-sbt.html
- find $HOME/.sbt -name "*.lock" | xargs rm
- find $HOME/.ivy2 -name "ivydata-*.properties" | xargs rm
cache:
yarn: true
directories:
- $HOME/.ivy2/cache
- $HOME/.sbt
- $HOME/.cache/yarn
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: NOTICE
================================================
Copyright 2017 rleibman
================================================
FILE: README.md
================================================
scalajs-react-components
========================
[](https://gitter.im/chandu0101/scalajs-react-components?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Reusable [scalajs-react](https://github.com/japgolly/scalajs-react) components.
We are trying to make the experience of using javascript components in scala.js
as good as possible by adding typed wrappers.
Adding types to javascript is a lot of guesswork, and we're certain to have gotten them wrong
some places. Bug reports and/or pull requests are very much welcome! :)
### Wrappers for javascript components:
These components require you to provide javascript yourself.
- Material-ui 0.18.1
- Elemental-ui 0.6.1
- Semantic-ui 0.68.5
- Google maps (downloads js directly from google)
- React GeomIcon (react-geomicons: 2.1.10)
- React Infinite (react-infinite, 0.11.0)
- Spinner (react-spinner, 0.2.7)
- React Select (react-select: 1.0.0-rc.5)
- React TagsInput (react-tagsinput, 3.16.1)
- React Slick (react-slick: 0.14.11)
### Components written in scala.js
- DefaultSelect
- Pager
- ReactDraggable
- ReactListView
- ReactPopOver
- ReactSearchBox
- ReactTable
- ReactTreeView
## Gotchas
#### You have to call `apply` even when components dont have children:
```scala
MuiRaisedButton(label = "label")()
```
## Setup
#### SBT
Add these dependencies to you sbt build file
```scala
libraryDependencies ++= Seq(
"com.github.japgolly.scalajs-react" %%% "core" % "1.1.0",
"com.github.japgolly.scalajs-react" %%% "extra" % "1.1.0",
"com.olvind" %%% "scalajs-react-components" % "1.0.0-M2"
)
```
This repository includes an example project, by all means use it as a template for your own.
#### ScalaCSS
In order to use the scala.js components, you need to make sure you load their CSS:
```scala
GlobalRegistry.register(<component>.Style)
```
See [here](https://japgolly.github.io/scalacss/book/ext/react.html) for more details
## Full Demo With Code Examples
**Online :**
http://chandu0101.github.io/scalajs-react-components
**Local :** This will start a web server on http://localhost:8080
```
sbt
fastOptJS::webpack
demo/compile:fastOptJS::startWebpackDevServer
```
## Example project
We've included an example project to give you an idea how to use the components
================================================
FILE: build.sbt
================================================
// *****************************************************************************
// Projects
// *****************************************************************************
lazy val macros =
project
.in(file("macros"))
.enablePlugins(ScalaJSPlugin)
.settings(commonSettings, publicationSettings)
.settings(
name := "scalajs-react-components-macros",
libraryDependencies ++= Seq(
"com.github.japgolly.scalajs-react" %%% "core" % "1.1.1",
"com.github.japgolly.scalajs-react" %%% "extra" % "1.1.1",
"org.scalatest" %%% "scalatest" % "3.0.4" % Test
)
)
lazy val gen =
project
.in(file("gen"))
.enablePlugins(ScalaJSBundlerPlugin)
.settings(commonSettings, preventPublication, npmGenSettings)
.settings(
organization := "com.olvind",
name := "generator",
version in webpack := "2.6.1",
libraryDependencies ++= Seq(
"com.lihaoyi" %% "ammonite-ops" % "1.0.1",
"org.scalatest" %% "scalatest" % "3.0.4" % Test
)
)
lazy val generateMui = TaskKey[Seq[File]]("generateMui")
lazy val generateEui = TaskKey[Seq[File]]("generateEui")
lazy val generateSui = TaskKey[Seq[File]]("generateSui")
lazy val core =
project
.in(file("core"))
.dependsOn(macros)
.enablePlugins(ScalaJSPlugin)
.settings(commonSettings, publicationSettings)
.settings(
generateEui := {
val genDir = sourceManaged.value
genDir.mkdirs()
val res = runner.value.run(
"com.olvind.eui.EuiRunner",
(fullClasspath in (gen, Runtime)).value.files,
List(
(npmUpdate in (gen, Compile)).value / "node_modules" / "elemental",
sourceManaged.value / "main"
) map (_.absolutePath),
streams.value.log
)
val pathFinder: PathFinder = sourceManaged.value ** "*.scala"
pathFinder.get.filter(_.getAbsolutePath.contains("elemental"))
},
generateMui := {
val genDir = sourceManaged.value
genDir.mkdirs()
val res = runner.value.run(
"com.olvind.mui.MuiRunner",
(fullClasspath in (gen, Runtime)).value.files,
List(
(npmUpdate in (gen, Compile)).value / "node_modules" / "material-ui",
sourceManaged.value / "main"
) map (_.absolutePath),
streams.value.log
)
val pathFinder: PathFinder = sourceManaged.value ** "*.scala"
pathFinder.get.filter(_.getAbsolutePath.contains("material"))
},
generateSui := {
val genDir = sourceManaged.value
genDir.mkdirs()
val res = runner.value.run(
"com.olvind.sui.SuiRunner",
(fullClasspath in (gen, Runtime)).value.files,
List(
(npmUpdate in (gen, Compile)).value / "node_modules" / "semantic-ui-react" / "dist" / "commonjs",
sourceManaged.value / "main"
) map (_.absolutePath),
streams.value.log
)
val pathFinder: PathFinder = sourceManaged.value ** "*.scala"
pathFinder.get.filter(_.getAbsolutePath.contains("semanticui"))
}
)
.settings(
sourceGenerators in Compile += generateMui,
sourceGenerators in Compile += generateEui,
sourceGenerators in Compile += generateSui,
mappings in (Compile, packageSrc) ++= {
val sourceDir = (sourceManaged.value / "main").toPath
def rel(f: File) = sourceDir.relativize(f.toPath).toString
(managedSources in Compile).value map (s ⇒ s → rel(s))
},
libraryDependencies ++= Seq(
"com.github.japgolly.scalajs-react" %%% "core" % "1.1.1" withSources (),
"com.github.japgolly.scalajs-react" %%% "extra" % "1.1.1" withSources (),
"com.github.japgolly.scalacss" %%% "core" % "0.5.5" withSources (),
"com.github.japgolly.scalacss" %%% "ext-react" % "0.5.5" withSources (),
"org.scala-js" %%% "scalajs-dom" % "0.9.4" withSources (),
"org.scalacheck" %%% "scalacheck" % "1.13.5" % Test,
"org.scalatest" %%% "scalatest" % "3.0.4" % Test
)
)
lazy val preventPublication = Seq(
publishArtifact := false,
publish := {},
packagedArtifacts := Map.empty) // doesn't work - https://github.com/sbt/sbt-pgp/issues/42
lazy val demo =
project
.in(file("demo"))
.dependsOn(core)
.enablePlugins(ScalaJSPlugin, ScalaJSBundlerPlugin)
.settings(commonSettings, preventPublication, npmSettings, npmDevSettings)
.settings(
name := "scalajs-react-components-demo",
version in webpack := "2.6.1",
// version in installWebpackDevServer := "2.7.1",
scalaJSUseMainModuleInitializer := true,
scalaJSUseMainModuleInitializer.in(Test) := false,
artifactPath.in(Compile, fastOptJS) := ((crossTarget in (Compile, fastOptJS)).value /
((moduleName in fastOptJS).value + "-opt.js")),
webpackResources :=
webpackResources.value +++
PathFinder(Seq(baseDirectory.value / "images", baseDirectory.value / "index.html")) ** "*.*",
webpackConfigFile in (Test) := Some(baseDirectory.value / "webpack.config.test.js"),
webpackConfigFile in (Compile, fastOptJS) := Some(
baseDirectory.value / "webpack.config.dev.js"),
webpackConfigFile in (Compile, fullOptJS) := Some(
baseDirectory.value / "webpack.config.prod.js"),
jsEnv := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv,
webpackBundlingMode := BundlingMode.LibraryOnly()
)
lazy val root =
project
.in(file("."))
.aggregate(macros, core, demo)
.settings(commonSettings, preventPublication)
// *****************************************************************************
// Settings
// *****************************************************************************
lazy val commonSettings =
Seq(
scalaVersion := "2.12.4",
version := "1.0.0-M2",
name := "scalajs-react-components",
organization := "com.olvind",
homepage := Some(url("http://chandu0101.github.io/scalajs-react-components")),
licenses += ("Apache 2.0", url("http://www.apache.org/licenses/LICENSE-2.0")),
mappings.in(Compile, packageBin) += baseDirectory.in(ThisBuild).value / "LICENSE" -> "LICENSE",
scalacOptions ++= Seq(
"-deprecation", // Emit warning and location for usages of deprecated APIs.
"-feature", // Emit warning and location for usages of features that should be imported explicitly.
"-unchecked", // Enable additional warnings where generated code depends on assumptions.
"-language:implicitConversions", // Allow definition of implicit functions called views
"-language:postfixOps",
"-P:scalajs:sjsDefinedByDefault"
),
unmanagedSourceDirectories.in(Compile) := Seq(scalaSource.in(Compile).value),
unmanagedSourceDirectories.in(Test) := Seq(scalaSource.in(Test).value)
)
lazy val publicationSettings = Seq(
publishTo := {
val nexus = "https://oss.sonatype.org/"
if (isSnapshot.value)
Some("snapshots" at nexus + "content/repositories/snapshots")
else
Some("releases" at nexus + "service/local/staging/deploy/maven2")
},
pomExtra :=
<scm>
<connection>scm:git:github.com:chandu0101/scalajs-react-components</connection>
<developerConnection>scm:git:git@github.com:chandu0101/scalajs-react-components.git</developerConnection>
<url>github.com:chandu0101/scalajs-react-components.git</url>
</scm>
<developers>
<developer>
<id>chandu0101</id>
<name>Chandra Sekhar Kode</name>
</developer>
<developer>
<id>oyvindberg</id>
<name>Øyvind Raddum Berg</name>
</developer>
<developer>
<id>fmcgough</id>
<name>Frankie</name>
</developer>
<developer>
<id>roberto@leibman.net</id>
<name>Roberto Leibman</name>
</developer>
</developers>
)
lazy val SuiVersion = "0.68.5"
lazy val EuiVersion = "0.6.1"
lazy val MuiVersion = "0.20.0"
lazy val reactVersion = "15.5.4"
lazy val npmGenSettings = Seq(
useYarn := true,
npmDependencies.in(Compile) := Seq(
"elemental" -> EuiVersion,
"material-ui" -> MuiVersion,
"semantic-ui-react" -> SuiVersion
)
)
lazy val npmSettings = Seq(
useYarn := true,
npmDependencies.in(Compile) := Seq(
"elemental" -> EuiVersion,
"highlight.js" -> "9.9.0",
"material-ui" -> MuiVersion,
"react" -> reactVersion,
"react-dom" -> reactVersion,
"react-addons-create-fragment" -> "15.6.2",
"react-addons-css-transition-group" -> "15.6.2",
"react-addons-pure-render-mixin" -> "15.6.2",
"react-addons-transition-group" -> "15.6.2",
"react-addons-update" -> "15.6.2",
"react-geomicons" -> "2.1.0",
"react-infinite" -> "0.12.1",
"react-select" -> "1.2.1",
"react-slick" -> "0.16.0",
"react-spinner" -> "0.2.7",
"react-split-pane" -> "0.1.74",
"react-tagsinput" -> "3.16.1",
"react-tap-event-plugin" -> "2.0.1",
"semantic-ui-react" -> SuiVersion,
"svg-loader" -> "0.0.2"
)
)
lazy val npmDevSettings = {
val deps = Seq(
"css-loader" -> "0.28.9",
"expose-loader" -> "0.7.4",
"file-loader" -> "1.1.6",
"gulp-decompress" -> "2.0.1",
"imagemin" -> "5.3.1",
"image-webpack-loader" -> "4.0.0",
"less" -> "2.7.3",
"less-loader" -> "4.0.5",
"lodash" -> "4.17.4",
"node-libs-browser" -> "2.1.0",
"react-hot-loader" -> "3.1.3",
"style-loader" -> "0.19.0",
"url-loader" -> "0.6.2",
"webpack" -> "2.6.1",
"webpack-dev-server" -> "2.11.1"
)
Seq(
npmDevDependencies in Test := deps,
npmDevDependencies in Compile := deps
)
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/DefaultSelect.scala
================================================
package chandu0101.scalajs.react.components
import japgolly.scalajs.react._
import japgolly.scalajs.react.component.Scala.Unmounted
import japgolly.scalajs.react.vdom.html_<^._
import scala.scalajs.js
object DefaultSelect {
class Backend(t: BackendScope[Props, Unit]) {
def onChange(P: Props)(e: ReactEventFromInput) =
P.onChange(e.target.value)
def render(P: Props) = {
<.div(
<.label(<.strong(P.label)),
<.select(^.paddingLeft := "5px",
^.id := "reactselect",
^.value := P.value,
^.onChange ==> onChange(P))(
P.options.map(item => <.option(item)).toTagMod
)
)
}
}
val component = ScalaComponent
.builder[Props]("DefaultSelect")
.stateless
.renderBackend[Backend]
.build
case class Props(label: String,
options: List[String],
value: String,
onChange: String => Callback)
def apply(key: js.UndefOr[Key] = js.undefined,
label: String,
options: List[String],
value: String,
onChange: String => Callback): Unmounted[Props, Unit, Backend] = {
val props = Props(label, options, value, onChange)
key.fold(component(props))(key => component.withKey(key)(props))
}
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/GoogleMap.scala
================================================
package chandu0101.scalajs.react.components
import chandu0101.scalajs.react.components.fascades._
import japgolly.scalajs.react._
import japgolly.scalajs.react.vdom.html_<^._
import org.scalajs.dom.{Event, document, html}
import scala.scalajs.js
import scala.scalajs.js.Dynamic.{global => g}
object GoogleMap {
def parameterizeUrl(url: String, parameters: Map[String, Any]): String = {
require(url != null, "Missing argument 'url'.")
require(parameters != null, "Missing argument 'parameters'.")
parameters.foldLeft(url)((base, kv) =>
base ++ {
if (base.contains("?")) "&" else "?"
} ++ kv._1 ++ "=" + kv._2)
}
case class State(mapObjects: Option[(GMap, GInfoWindow)], markers: List[GMarker])
class Backend(t: BackendScope[Props, State]) {
def loadScript(P: Props): Callback =
if (js.isUndefined(g.google) || js.isUndefined(g.google.maps))
Callback {
val script = document.createElement("script").asInstanceOf[html.Script]
script.`type` = "text/javascript"
script.src = parameterizeUrl(P.url, Map("callback" -> "gmapinit"))
document.body.appendChild(script)
g.gmapinit = initialize(P).toJsFn
} else initialize(P)
def initialize(P: Props): Callback =
t.root.getDOMNode
.flatMap(
node =>
t.modState(
_.copy(mapObjects = Some(
(new GMap(node, MapOptions(P.center, P.zoom).toGMapOptions), new GInfoWindow))),
callback = updateMap(P)
))
def updateMap(P: Props): Callback =
t.modState(
S =>
S.mapObjects.fold(S) {
case (gmap, infoWindow) =>
gmap.setCenter(P.center.toGlatlng)
S.markers.foreach(_.setMap(null))
val newMarkers = P.markers.map(prepareMarker(infoWindow, gmap)).toList
S.copy(markers = newMarkers)
}
)
private def prepareMarker(infowindow: GInfoWindow, map: GMap)(m: Marker) = {
val marker = new GMarker(m.toGMarker(map))
if (!m.content.isEmpty) {
new GAddListener(
marker,
"click",
(e: Event) => {
infowindow.setContent(m.content)
infowindow.open(map, marker)
}
)
}
marker
}
def render(P: Props) = <.div(^.height := P.height, ^.width := P.width)
}
case class Props(width: String,
height: String,
center: LatLng,
zoom: Int,
markers: Seq[Marker],
url: String)
val component = ScalaComponent
.builder[Props]("googleMap")
.initialState(State(None, Nil))
.renderBackend[Backend]
.componentWillReceiveProps { wrp =>
wrp.backend.updateMap(wrp.nextProps)
}
.componentDidMount($ => $.backend.loadScript($.props))
.componentWillUnmount($ => Callback($.state.markers.foreach(new GClearInstanceListeners(_))))
.build
/**
*
* @param width width of map
* @param height height of map
* @param center center position(lat,lng) for map
* @param zoom zoom value
* @param markers markers for the map
* @param url url to get googlemap api, by default it uses https://maps.googleapis.com/maps/api/js you can override if you want.
* @return
*/
def apply(
width: String = "500px",
height: String = "500px",
center: LatLng,
zoom: Int = 4,
markers: List[Marker] = Nil,
url: String = "https://maps.googleapis.com/maps/api/js"
) =
component(Props(width, height, center, zoom, markers, url))
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/Implicits.scala
================================================
package chandu0101.scalajs.react.components
import japgolly.scalajs.react._
import scala.scalajs.js
// todo: figure out if we should keep these
private[components] object Implicits {
/* this works here, but not in the general case!
* (see https://github.com/scala-js/scala-js/pull/2070 )
*/
implicit final class UCB[R](private val uc: js.UndefOr[CallbackTo[R]]) extends AnyVal {
@inline def asCbo: CallbackOption[R] =
CallbackOption.liftOption(uc.toOption.map(_.runNow()))
}
implicit final class UF1CB[T1, R](private val uc: js.UndefOr[T1 => CallbackTo[R]])
extends AnyVal {
@inline def asCbo(t1: T1): CallbackOption[R] =
CallbackOption.liftOptionLike(uc).flatMap(_.apply(t1).toCBO)
}
implicit final class UF2CB[T1, T2, R](private val uc: js.UndefOr[(T1, T2) => CallbackTo[R]])
extends AnyVal {
@inline def asCbo(t1: T1, t2: T2): CallbackOption[R] =
CallbackOption.liftOptionLike(uc).flatMap(_.apply(t1, t2).toCBO)
}
implicit final class UF3CB[T1, T2, T3, R](
private val uc: js.UndefOr[(T1, T2, T3) => CallbackTo[R]])
extends AnyVal {
@inline def asCbo(t1: T1, t2: T2, t3: T3): CallbackOption[R] =
CallbackOption.liftOptionLike(uc).flatMap(_.apply(t1, t2, t3).toCBO)
}
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/Pager.scala
================================================
package chandu0101.scalajs.react.components
import japgolly.scalajs.react._
import japgolly.scalajs.react.vdom.html_<^._
import scalacss.ScalaCssReact._
object Pager {
val cssSettings = scalacss.devOrProdDefaults
import cssSettings._
class Style extends StyleSheet.Inline {
import dsl._
val pager = style(
margin :=! "15px 0",
unsafeChild("a")(
display.inlineBlock,
padding :=! "5px 14px",
backgroundColor :=! "#EF5350",
border :=! "1px solid transparent",
borderRadius :=! "2px",
cursor.pointer,
color :=! "#ffffff",
fontWeight.bold,
boxShadow := "0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 1px 2px 0 rgba(0, 0, 0, 0.24)",
&.hover.apply(
textDecoration := "none",
backgroundColor :=! "#ff1034"
),
&.focus.apply(
textDecoration := "none",
backgroundColor :=! "#ff1034"
)
)
)
}
case class Backend(t: BackendScope[Props, Unit]) {
def render(P: Props) = {
<.div(P.style.pager)(
<.a(
^.onClick --> P.previousClick,
^.float := "left",
"← Previous"
).when(P.offset > 0),
<.a(
^.onClick --> P.nextClick,
^.float := "right",
"Next →"
).when(P.offset + P.itemsPerPage < P.totalItems)
)
}
}
object DefaultStyle extends Style
val component = ScalaComponent
.builder[Props]("Pager")
.renderBackend[Backend]
.build
case class Props(itemsPerPage: Int,
totalItems: Int,
offset: Int,
nextClick: Callback,
previousClick: Callback,
style: Style)
def apply(itemsPerPage: Int,
totalItems: Int,
offset: Int,
nextClick: Callback,
previousClick: Callback,
style: Style = DefaultStyle) = {
component(Props(itemsPerPage, totalItems, offset, nextClick, previousClick, style))
}
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/ReactDraggable.scala
================================================
package chandu0101.scalajs.react.components
import japgolly.scalajs.react._
import japgolly.scalajs.react.extra.Reusability
import japgolly.scalajs.react.vdom.html_<^._
import org.scalajs.dom
import org.scalajs.dom._
import scala.scalajs.js
import scalacss.ScalaCssReact._
import Implicits._
case class RPoint(x: Int, y: Int)
case class RGrid(width: Int, height: Int)
case class RElementPosition(element: Element,
top: Int = 0,
left: Int = 0,
right: Int = 0,
bottom: Int = 0)
case class ClientRect(top: Double, left: Double)
object ReactDraggable {
val cssSettings = scalacss.devOrProdDefaults
import cssSettings._
object Style extends StyleSheet.Inline {
import dsl._
val draggable = style(position.relative)
val draggableActive = style(userSelect := "none")
}
import RCustomStyles._
type CssClassType = Map[String, Boolean]
object DomUtil {
/**
* https://developer.mozilla.org/en-US/docs/Web/API/Element.matches#Browser_compatibility
* @param element dom element
* @param selector css selector
*/
def matchesSelector(element: js.Dynamic)(selector: String): Boolean = {
val funcName = Stream(
"matches",
"webkitMatchesSelector",
"mozMatchesSelector",
"msMatchesSelector",
"oMatchesSelector"
).filter(name => !js.isUndefined(element.selectDynamic(name))).head
element.selectDynamic(funcName).call(element, selector).asInstanceOf[Boolean]
}
/**
* onTouchStart - / works on most browsers
* onmsgesturechange - works on ie10 on ms surface
* @return whether device is touch enabled or not
*/
def isTouchDevice =
dom.window.hasOwnProperty("ontouchstart") || dom.window.hasOwnProperty("onmsgesturechange")
def dragEventFor(e: Event, name: String) = name match {
case "start" => if (e.`type`.contains("touch")) "touchstart" else "mousedown"
case "move" => if (e.`type`.contains("touch")) "touchmove" else "mousemove"
case "end" => if (e.`type`.contains("touch")) "touchend" else "mouseup"
}
def getControlPosition(e: Event): RPoint =
if (e.`type`.contains("touch")) {
val position = e.asInstanceOf[TouchEvent].touches(0)
RPoint(position.clientX.toInt, position.clientY.toInt)
} else {
val position = e.asInstanceOf[MouseEvent]
RPoint(position.clientX.toInt, position.clientY.toInt)
}
def isLeftClick(e: Event) =
e.`type` == "touchstart" || e.asInstanceOf[MouseEvent].button == 0
}
case class Props(
cancel: js.UndefOr[String],
onDrag: js.UndefOr[(Event, RElementPosition) => Callback],
useCSSTransforms: Boolean,
clsNames: CssClassType,
ref: js.UndefOr[String],
moveOnStartChange: Boolean,
grid: js.UndefOr[RGrid],
key: js.Any,
zIndex: Int,
axis: String,
onStop: js.UndefOr[(Event, RElementPosition) => Callback],
start: RPoint,
onStart: js.UndefOr[(Event, RElementPosition) => Callback],
onMouseDown: js.UndefOr[Event => Callback],
handle: js.UndefOr[String],
minConstraints: js.UndefOr[RGrid],
maxConstraints: js.UndefOr[RGrid]
)
/**
* @param dragging whether or not currently dragging
* @param startX Start left of t.getDOmNode()
* @param startY Start top of t.getDOmNode()
* @param offsetX Offset between start left and mouse left
* @param offsetY Offset between start top and mouse top
* @param clientX Current left of this.getDOMNode
* @param clientY Current top of this.getDOMNode
*/
case class State(
dragging: Boolean,
startX: Int,
startY: Int,
offsetX: Int,
offsetY: Int,
clientX: Int,
clientY: Int,
stopListening: js.UndefOr[Callback]
)
implicit val r0 = Reusability.byRef[Props]
implicit val r1 = Reusability.byRef[State]
class Backend(t: BackendScope[Props, State]) {
def pos(S: State) =
t.root.getDOMNode.map(node => RElementPosition(node, top = S.clientY, left = S.clientX))
def handleDragStart(props: Props)(e: Event): Callback = {
val moveEventType = DomUtil.dragEventFor(e, "move")
val endEventType = DomUtil.dragEventFor(e, "end")
val dragPoint = DomUtil.getControlPosition(e)
val mouseDown: Callback = props.onMouseDown.fold(Callback.empty)(fn => fn(e))
val onStart: Callback = {
t.state.flatMap(S => {
pos(S).flatMap(pos => props.onStart.asCbo(e, pos))
})
}
val startDrag = t.modState { S =>
val u1 = Events.register(dom.window, moveEventType, handleDrag(props))
val u2 = Events.register(dom.window, endEventType, handleDragEnd(props))
S.copy(
dragging = true,
offsetX = dragPoint.x.toInt - S.clientX,
offsetY = dragPoint.y.toInt - S.clientY,
stopListening = u1 >> u2
)
}
val matches: Boolean = {
val matchesTarget = DomUtil.matchesSelector(e.target.asInstanceOf[js.Dynamic]) _
props.handle.fold(true)(matchesTarget) && props.cancel.fold(true)(matchesTarget)
}
mouseDown << (onStart >> startDrag).when(DomUtil.isLeftClick(e) && matches).void
}
def handleDrag(props: Props)(e: Event): Callback = {
val dragPoint = DomUtil.getControlPosition(e)
val c1 = t.modState { S =>
// calculate top and left
var clientX: Int = S.startX + (dragPoint.x - S.offsetX)
var clientY: Int = S.startY + (dragPoint.y - S.offsetY)
// Snap to grid if prop has been provided
props.grid.foreach { (grid: RGrid) =>
val directionX = if (clientX < S.clientX) -1 else 1
val directionY = if (clientY < S.clientY) -1 else 1
clientX =
if (math.abs(clientX - S.clientX) >= grid.width)
S.clientX + (grid.width * directionX)
else S.clientX
clientY =
if (math.abs(clientY - S.clientY) >= grid.height)
S.clientY + (grid.height * directionY)
else S.clientY
}
//min/max contraints
props.minConstraints.foreach { (min: RGrid) =>
clientX = math.max(min.width, clientX)
clientY = math.max(min.height, clientY)
}
props.maxConstraints.foreach { (max: RGrid) =>
clientX = math.min(max.width, clientX)
clientY = math.min(max.height, clientY)
}
// Update top and left
S.copy(clientX = clientX.toInt, clientY = clientY.toInt)
}
//call event handler
val c2 = t.state.flatMap(S => {
pos(S).flatMap(pos => props.onDrag.asCbo(e, pos))
})
c1 >> c2
}
def handleDragEnd(props: Props)(e: Event): Callback = {
val unregister: Callback =
t.state.flatMap(_.stopListening.asCbo)
val onStop: Callback =
t.state.flatMap(S => {
pos(S).flatMap(pos => props.onStop.asCbo(e, pos))
})
val stopDragging: Callback =
t.modState(_.copy(dragging = false, stopListening = js.undefined))
unregister >> onStop >> stopDragging
}
def canDragY(props: Props): Boolean =
props.axis == "both" || props.axis == "y"
def canDragX(props: Props): Boolean =
props.axis == "both" || props.axis == "x"
private val transforms = Seq(^.transform, mozTransform, WebkitTransform, msTransform)
def positionToCSSTransform(left: Int, top: Int): TagMod =
(transforms map (_ := s"translate(${left}px, ${top}px)")).toTagMod
def render(props: Props, S: State, C: PropsChildren) = {
val topValue: Int =
if (canDragY(props)) S.clientY else S.startY
val leftValue: Int =
if (canDragX(props)) S.clientX else S.startX
val stl: TagMod =
if (props.useCSSTransforms) positionToCSSTransform(leftValue, topValue)
else TagMod(^.top := topValue.px, ^.left := leftValue.px)
implicit def rawEventCallbackToReactEventCallback(
fn: Event => Callback): ReactEvent => Callback = { e =>
fn(e.nativeEvent)
}
<.div(
Style.draggable,
Style.draggableActive.when(S.dragging),
stl,
^.onMouseDown ==> handleDragStart(props),
^.onTouchStart ==> handleDragStart(props),
^.onMouseUp ==> handleDragEnd(props),
^.onTouchEnd ==> handleDragEnd(props)
)(C)
}
}
def newStateFrom(props: Props): State =
State(
dragging = false,
startX = 0,
startY = 0,
clientX = props.start.x.toInt,
clientY = props.start.y.toInt,
offsetX = 0,
offsetY = 0,
stopListening = js.undefined
)
val component = ScalaComponent
.builder[Props]("ReactDraggable")
.initialStateFromProps(newStateFrom)
.renderBackendWithChildren[Backend]
.componentWillReceiveProps {
case componentWillReceiveProps =>
componentWillReceiveProps
.setState(newStateFrom(componentWillReceiveProps.nextProps))
.when(componentWillReceiveProps.nextProps.moveOnStartChange)
.void
}
.configure(Reusability.shouldComponentUpdate)
.componentWillUnmount($ => $.state.stopListening.getOrElse(Callback.empty))
.build
/**
*
* @param cancel specifies a selector to be used to prevent drag initialization.
* @param onDrag Called while dragging
* @param useCSSTransforms if true will place the element using translate(x, y)
* rather than CSS top/left.
* This generally gives better performance, and is useful in combination with
* other layout systems that use translate(), such as react-grid-layout.
* @param clsNames css class names map
* @param ref ref for this component
* @param moveOnStartChange tells the Draggable element to reset its position
* if the `start` parameters are changed. By default, if the `start`
* parameters change, the Draggable element still remains where it started
* or was dragged to.
* @param grid specifies the x and y that dragging should snap to.
* @param key key for this react component
* @param zIndex specifies the zIndex to use while dragging.
* @param axis determines which axis the draggable can move.(both,x,y)
* @param onStop Called when dragging stops
* @param start specifies the x and y that the dragged item should start at
* @param onStart Called when dragging starts.
* @param onMouseDown * A workaround option which can be passed if onMouseDown needs to be accessed,
* since it'll always be blocked (due to that there's internal use of onMouseDown)
* @param handle specifies a selector to be used as the handle that initiates drag.
* @param children
* @return
*/
def apply(
cancel: js.UndefOr[String] = js.undefined,
onDrag: js.UndefOr[(Event, RElementPosition) => Callback] = js.undefined,
useCSSTransforms: Boolean = false,
clsNames: CssClassType = Map(),
ref: js.UndefOr[String] = js.undefined,
moveOnStartChange: Boolean = false,
grid: js.UndefOr[RGrid] = js.undefined,
key: js.Any = {},
zIndex: Int = 0,
axis: String = "both",
onStop: js.UndefOr[(Event, RElementPosition) => Callback] = js.undefined,
start: RPoint = RPoint(0, 0),
onStart: js.UndefOr[(Event, RElementPosition) => Callback] = js.undefined,
onMouseDown: js.UndefOr[Event => Callback] = js.undefined,
handle: js.UndefOr[String] = js.undefined,
minConstraints: js.UndefOr[RGrid] = js.undefined,
maxConstraints: js.UndefOr[RGrid] = js.undefined
)(children: VdomNode) = {
val props = Props(
cancel = cancel,
onDrag = onDrag,
useCSSTransforms = useCSSTransforms,
clsNames = clsNames,
ref = ref,
moveOnStartChange = moveOnStartChange,
grid = grid,
key = key,
zIndex = zIndex,
axis = axis,
onStop = onStop,
start = start,
onStart = onStart,
onMouseDown = onMouseDown,
handle = handle,
minConstraints = minConstraints,
maxConstraints = maxConstraints
)
component(props)(children)
}
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/ReactGeomIcon.scala
================================================
package chandu0101.scalajs.react.components
import chandu0101.macros.tojs.JSMacro
import japgolly.scalajs.react._
import scala.scalajs.js
import scala.scalajs.js.annotation.JSImport
@JSImport("react-geomicons", JSImport.Default) @js.native
object ReactGeomIconRequire extends js.Any
case class ReactGeomIcon(
name: IconName,
height: js.UndefOr[String] = js.undefined,
ref: js.UndefOr[String] = js.undefined,
key: js.UndefOr[String] = js.undefined,
fill: js.UndefOr[String] = js.undefined,
width: js.UndefOr[String] = js.undefined
) {
def apply() = {
val props = JSMacro[ReactGeomIcon](this)
val f = JsComponent[js.Object, Children.None, Null](ReactGeomIconRequire)
f(props)
}
}
class IconName private (val value: String) extends AnyVal
object IconName {
val BOOKMARK = new IconName("bookmark")
val CALENDAR = new IconName("calendar")
val CAMERA = new IconName("camera")
val CHAT = new IconName("chat")
val CHECK = new IconName("check")
val CHEVRONDOWN = new IconName("chevronDown")
val CHEVRONLEFT = new IconName("chevronLeft")
val CHEVRONRIGHT = new IconName("chevronRight")
val CHEVRONUP = new IconName("chevronUp")
val CLOCK = new IconName("clock")
val CLOSE = new IconName("close")
val CLOUD = new IconName("cloud")
val COG = new IconName("cog")
val COMPOSE = new IconName("compose")
val DRIBBBLE = new IconName("dribbble")
val EXPAND = new IconName("expand")
val EXTERNAL = new IconName("external")
val FACEBOOK = new IconName("facebook")
val FILE = new IconName("file")
val FOLDER = new IconName("folder")
val GEOLOCATION = new IconName("geolocation")
val GITHUB = new IconName("github")
val GRID = new IconName("grid")
val HEART = new IconName("heart")
val HOME = new IconName("home")
val INFO = new IconName("info")
val LINK = new IconName("link")
val LIST = new IconName("list")
val LOCK = new IconName("lock")
val MAIL = new IconName("mail")
val MUSIC_NOTE = new IconName("musicNote")
val NEXT = new IconName("next")
val NO = new IconName("no")
val PAUSE = new IconName("pause")
val PICTURE = new IconName("picture")
val PIN = new IconName("pin")
val PLAY = new IconName("play")
val PREVIOUS = new IconName("previous")
val REFRESH = new IconName("refresh")
val REPOST = new IconName("repost")
val SEARCH = new IconName("search")
val SHOPPING_CART = new IconName("shoppingCart")
val SKULL = new IconName("skull")
val SPEAKER = new IconName("speaker")
val SPEAKER_VOLUME = new IconName("speakerVolume")
val STAR = new IconName("star")
val TAG = new IconName("tag")
val TRASH = new IconName("trash")
val TRIANGLE_DOWN = new IconName("triangleDown")
val TRIANGLE_LEFT = new IconName("triangleLeft")
val TRIANGLE_RIGHT = new IconName("triangleRight")
val TRIANGLE_UP = new IconName("triangleUp")
val TWITTER = new IconName("twitter")
val USER = new IconName("user")
val VIDEO = new IconName("video")
val WARNING = new IconName("warning")
def newName(name: String) = new IconName(name)
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/ReactInfinite.scala
================================================
package chandu0101.scalajs.react.components
import chandu0101.macros.tojs.JSMacro
import japgolly.scalajs.react._
import japgolly.scalajs.react.raw._
import japgolly.scalajs.react.vdom.VdomElement
import org.scalajs.dom.raw.HTMLElement
import scala.scalajs.js
import scala.scalajs.js.annotation.JSImport
@JSImport("react-infinite", JSImport.Default) @js.native
object ReactInfiniteRequire extends js.Any
case class ReactInfinite(
handleScroll: js.UndefOr[HTMLElement => Callback] = js.undefined,
preloadAdditionalHeight: js.UndefOr[Int] = js.undefined,
isInfiniteLoading: js.UndefOr[Boolean] = js.undefined,
preloadBatchSize: js.UndefOr[Int] = js.undefined,
containerHeight: Int,
ref: js.UndefOr[ReactInfiniteM => Unit] = js.undefined,
loadingSpinnerDelegate: js.UndefOr[ReactElement] = js.undefined,
timeScrollStateLastsForAfterUserScrolls: js.UndefOr[Int] = js.undefined,
elementHeight: Double,
key: js.UndefOr[String] = js.undefined,
className: js.UndefOr[String] = js.undefined,
infiniteLoadBeginBottomOffset: js.UndefOr[Int] = js.undefined,
onInfiniteLoad: js.UndefOr[Callback] = js.undefined
) {
def apply(children: Seq[VdomElement]) = {
val props = JSMacro[ReactInfinite](this)
val f = JsComponent[js.Object, Children.Varargs, Null](ReactInfiniteRequire)
f(props)(children: _*)
}
}
@js.native
trait ReactInfiniteM extends js.Object {
def getScrollTop(): Double = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/ReactListView.scala
================================================
package chandu0101.scalajs.react.components
import japgolly.scalajs.react._
import japgolly.scalajs.react.vdom.html_<^._
import scala.scalajs.js
import scalacss.ProdDefaults._
import scalacss.ScalaCssReact._
import Implicits._
object ReactListView {
class Style extends StyleSheet.Inline {
import dsl._
val listGroup = style(
marginBottom(20.px),
paddingLeft.`0`,
&.firstChild.lastChild(
borderBottomLeftRadius(4 px),
borderBottomRightRadius(4 px)
)
)
val listItem = styleF.bool(
selected =>
styleS(
position.relative,
display.block,
padding(v = 10.px, h = 15.px),
border :=! "1px solid #ecf0f1",
cursor.pointer,
mixinIfElse(selected)(
color.white,
fontWeight._500,
backgroundColor :=! "#146699"
)(
backgroundColor.white,
&.hover(
color :=! "#555555",
backgroundColor :=! "#ecf0f1"
)
)
))
}
object DefaultStyle extends Style
case class State(filterText: String, selectedItem: String)
class Backend(t: BackendScope[Props, State]) {
def onTextChange(text: String): Callback =
t.modState(_.copy(filterText = text))
def onItemSelect(onItemSelect: js.UndefOr[String => Callback])(value: String): Callback = {
val setSelected = t.modState(_.copy(selectedItem = value))
val onSelect = onItemSelect.asCbo(value)
setSelected >> onSelect
}
def render(P: Props, S: State) = {
val fItems =
P.items.filter(item => item.toString.toLowerCase.contains(S.filterText.toLowerCase))
<.div(
ReactSearchBox(onTextChange = onTextChange).when(P.showSearchBox),
<.ul(
P.style.listGroup,
fItems.map { item =>
val selected = item.toString == S.selectedItem
<.li(
P.style.listItem(selected),
^.onClick --> onItemSelect(P.onItemSelect)(item.toString),
item
)
}.toTagMod
)
)
}
}
val component = ScalaComponent
.builder[Props]("ReactListView")
.initialState(State(filterText = "", selectedItem = ""))
.renderBackend[Backend]
.build
case class Props(
items: List[String],
onItemSelect: js.UndefOr[String => Callback],
showSearchBox: Boolean,
style: Style
)
def apply(
items: List[String],
onItemSelect: js.UndefOr[String => Callback] = js.undefined,
showSearchBox: Boolean = false,
style: Style = DefaultStyle,
ref: js.UndefOr[String] = js.undefined,
key: js.Any = {}
) =
component /*.set(key, ref)*/ (Props(items, onItemSelect, showSearchBox, style))
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/ReactPopOver.scala
================================================
package chandu0101.scalajs.react.components
import japgolly.scalajs.react._
import japgolly.scalajs.react.vdom.html_<^._
import org.scalajs.dom
import org.scalajs.dom.html
object ReactPopOver {
import RCustomStyles._
object DomUtil {
def offset(element: html.Element) = {
val rect = element.getBoundingClientRect()
var scrollTop = 0.0
var scrollLeft = 0.0
if (dom.document.body.scrollTop > 0) {
scrollTop = dom.document.body.scrollTop
scrollLeft = dom.document.body.scrollLeft
} else if (dom.document.documentElement.scrollTop > 0) { // for firefox
scrollTop = dom.document.documentElement.scrollTop
scrollLeft = dom.document.documentElement.scrollLeft
}
ClientRect(rect.top + scrollTop, rect.left + scrollLeft)
}
}
trait Style {
def popover: TagMod = TagMod(
^.position := "absolute",
^.top := "0",
^.left := "-100%",
^.zIndex := "1060",
^.maxWidth := "500px",
^.padding := "1px",
^.fontSize := "15px",
^.fontWeight := "normal",
^.lineHeight := "1.42857143",
^.textAlign := "left",
^.backgroundColor := "white",
^.borderRadius := "6px",
^.border := "1px solid #cccccc",
^.whiteSpace := "normal",
backgroundClipPreFixer("padding-box"),
boxShadowPreFixer("0 5px 10px rgba(0, 0, 0, 0.2)")
)
def backgroundClipPreFixer(value: String) =
TagMod(
^.backgroundClip := value,
WebkitBackgroundClip := value
)
def boxShadowPreFixer(value: String) =
TagMod(
^.boxShadow := value,
WebkitBoxShadow := value
)
def popoverTop = TagMod(^.marginTop := "-10px")
def popoverLeft = TagMod(^.marginLeft := "-10px")
def popoverRight = TagMod(^.marginLeft := "10px")
def popoverBottom = TagMod(^.marginTop := "10px")
def popoverTitle =
TagMod(^.margin := "0",
^.padding := "8px 14px",
^.fontSize := "15px",
^.backgroundColor := "#f7f7f7",
^.borderBottom := "1px solid #ebebeb",
^.borderRadius := "5px 5px 0 0")
def popoverContent = TagMod(^.padding := "9px 14px")
val displayBlock = ^.display := "block"
def popoverArrow = TagMod(
^.position := "absolute",
displayBlock,
^.width := "0",
^.height := "0",
^.border := "solid transparent",
^.borderWidth := "11px"
)
def popoverArrowAfter = TagMod(
^.position := "absolute",
displayBlock,
^.width := "0",
^.height := "0",
^.border := "solid transparent",
^.borderWidth := "10px"
)
def popoverTopArrow = TagMod(
^.left := "50%",
^.marginLeft := "-11px",
^.borderBottomWidth := "0",
^.borderTopColor := "#999999",
^.bottom := "-11px"
)
def popoverTopArrowAfter = TagMod(
^.marginLeft := "-10px",
^.borderBottomWidth := "0",
^.borderTopColor := "#ffffff",
^.bottom := "1px"
)
def popoverRightArrow = TagMod(
^.top := "50%",
^.left := "-11px",
^.marginTop := "-11px",
^.borderLeftWidth := "0",
^.borderRightColor := "#999999",
^.bottom := "-11px"
)
def popoverRightArrowAfter = TagMod(
^.left := "1px",
^.borderLeftWidth := "0",
^.borderRightColor := "#ffffff",
^.bottom := "-10px"
)
def popoverBottomArrow = TagMod(
^.left := "50%",
^.marginLeft := "-11px",
^.borderTopWidth := "0",
^.borderBottomColor := "#999999",
^.top := "-11px"
)
def popoverBottomArrowAfter = TagMod(
^.top := "1px",
^.marginLeft := "-10px",
^.borderTopWidth := "0",
^.borderBottomColor := "#ffffff"
)
def popoverLeftArrow = TagMod(
^.top := "50%",
^.right := "-11px",
^.marginTop := "-11px",
^.borderRightWidth := "0",
^.borderLeftColor := "#999999"
)
def popoverLeftArrowAfter = TagMod(
^.right := "1px",
^.borderRightWidth := "0",
^.borderLeftColor := "#ffffff",
^.bottom := "-10px"
)
}
case class State(open: Boolean, top: Double = 0, left: Double = 0)
class Backend($ : BackendScope[Props, State]) {
def toggle(node: html.Element): Callback =
($.props zip $.state).flatMap {
case (p, s) => if (s.open) hide else show(getPosition(p)(node))
}
private def show(position: ClientRect) =
$.modState(_.copy(open = true, top = position.top, left = position.left))
private val hide = $.modState(_.copy(open = false))
def getPosition(P: Props)(node: html.Element): ClientRect = {
val offset = DomUtil.offset(node)
val height = node.offsetHeight
val width = node.offsetWidth
val popoverHeight = $.getDOMNode.map(_.domAsHtml.offsetHeight).runNow()
val popoverWidth = $.getDOMNode.map(_.domAsHtml.offsetWidth).runNow()
P.placement match {
case "right" =>
val top = offset.top + height / 2 - popoverHeight / 2
val left = offset.left + width
ClientRect(top, left)
case "left" =>
val top = offset.top + height / 2 - popoverHeight / 2
val left = offset.left - popoverWidth
ClientRect(top, left)
case "top" =>
val top = offset.top - popoverHeight
val left = offset.left + width / 2 - popoverWidth / 2
ClientRect(top, left)
case "bottom" =>
val top = offset.top + height
val left = offset.left + width / 2 - popoverWidth / 2
ClientRect(top, left)
case _ => throw new Exception(s"unsupported placement: ${P.placement}")
}
}
def arrowAfter(P: Props): TagMod = {
if (P.placement == "top")
<.span(P.style.popoverArrowAfter, P.style.popoverTopArrowAfter, " ")
else if (P.placement == "left")
<.span(P.style.popoverArrowAfter, P.style.popoverLeftArrowAfter, " ")
else if (P.placement == "right")
<.span(P.style.popoverArrowAfter, P.style.popoverRightArrowAfter, " ")
else if (P.placement == "bottom")
<.span(P.style.popoverArrowAfter, P.style.popoverBottomArrowAfter, " ")
else ""
}
def render(P: Props, S: State, C: PropsChildren) = {
<.div(
P.style.popover,
P.style.popoverTop.when(P.placement == "top"),
P.style.popoverLeft.when(P.placement == "left"),
P.style.popoverRight.when(P.placement == "right"),
P.style.popoverBottom.when(P.placement == "bottom"),
^.top := S.top.toString(),
(^.left := S.left.toString).when(S.open)
)(
<.div(
P.style.popoverArrow,
P.style.popoverTopArrow.when(P.placement == "top"),
P.style.popoverLeftArrow.when(P.placement == "left"),
P.style.popoverRightArrow.when(P.placement == "right"),
P.style.popoverBottomArrow.when(P.placement == "bottom"),
arrowAfter(P)
),
(<.h3(P.style.popoverTitle)(P.title)).unless(P.title.isEmpty),
<.div(P.style.popoverContent)(
C
)
)
}
}
val component = ScalaComponent
.builder[Props]("ReactPopover")
.initialState(State(open = false))
.renderBackendWithChildren[Backend]
.build
case class Props(title: String = "", placement: String = "", style: Style = new Style {})
def apply(
title: String = "",
placement: String = "right",
style: Style = new Style {}
)(children: VdomNode*) =
component(Props(title, placement, style))(children: _*)
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/ReactSearchBox.scala
================================================
package chandu0101.scalajs.react.components
import japgolly.scalajs.react._
import japgolly.scalajs.react.vdom.html_<^._
import scala.scalajs.js
import scalacss.ScalaCssReact._
object ReactSearchBox {
val cssSettings = scalacss.devOrProdDefaults
import cssSettings._
class Style extends StyleSheet.Inline {
import dsl._
val searchBox = style(marginBottom(10 px))
val input = style(
fontSize(13 px),
fontWeight._300,
padding(3 px),
width(100.%%),
backgroundColor.transparent,
borderBottom :=! "1px solid #B2ADAD",
&.focus(
outline.none,
borderBottom :=! "1.5px solid #03a9f4"
)
)
}
class Backend(t: BackendScope[Props, Unit]) {
def onTextChange(P: Props)(e: ReactEventFromInput) =
e.preventDefaultCB >> P.onTextChange(e.target.value)
def render(P: Props) =
<.div(P.style.searchBox)(
<.input(P.style.input, ^.placeholder := "Search ..", ^.onKeyUp ==> onTextChange(P))
)
}
object DefaultStyle extends Style
val component = ScalaComponent
.builder[Props]("ReactSearchBox")
.stateless
.renderBackend[Backend]
.build
case class Props(onTextChange: String => Callback, style: Style)
def apply(onTextChange: String => Callback, style: Style = DefaultStyle) =
component(Props(onTextChange, style))
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/ReactTable.scala
================================================
package chandu0101.scalajs.react.components
import japgolly.scalajs.react.vdom.html_<^._
import japgolly.scalajs.react.Callback
import japgolly.scalajs.react.BackendScope
import japgolly.scalajs.react.ScalaComponent
import scala.collection.immutable
import scalacss.ProdDefaults._
import scalacss.ScalaCssReact.scalacssStyleaToTagMod
/**
* Companion object of ReactTable, with tons of little utilities
*/
object ReactTable {
/**
* The direction of the sort
*/
object SortDirection extends Enumeration {
type SortDirection = Value
val asc, dsc = Value
}
/*
* Pass this to the ColumnConfig to sort using an ordering
*/
// def Sort[T, B](fn: T => B)(implicit ordering: Ordering[B]): (T, T) => Boolean = {
// (m1: T, m2: T) =>
// ordering.compare(fn(m1), fn(m2)) > 0
// }
// /*
// * Pass this to the ColumnConfig to sort a string ignoring case using an ordering
// */
// def IgnoreCaseStringSort[T](fn: T => String): (T, T) => Boolean =
// (m1: T, m2: T) => fn(m1).compareToIgnoreCase(fn(m2)) > 0
def DefaultOrdering[T, B](fn: T => B)(implicit ordering: Ordering[B]) = new Ordering[T] {
def compare(a: T, b: T) = ordering.compare(fn(a), fn(b))
}
def ignoreCaseStringOrdering[T](fn: T => String) = new Ordering[T] {
def compare(a: T, b: T) = fn(a).compareToIgnoreCase(fn(b))
}
class Style extends StyleSheet.Inline {
import dsl._
val reactTableContainer = style(display.flex, flexDirection.column)
val table = style(
display.flex,
flexDirection.column,
boxShadow := "0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 1px 2px 0 rgba(0, 0, 0, 0.24)",
media.maxWidth(740 px)(boxShadow := "none")
)
val tableRow = style(padding :=! "0.8rem",
&.hover(backgroundColor :=! "rgba(244, 244, 244, 0.77)"),
media.maxWidth(740 px)(boxShadow := "0 1px 3px grey", margin(5 px)))
val tableHeader = style(fontWeight.bold, borderBottom :=! "1px solid #e0e0e0", tableRow)
val settingsBar = style(display.flex, margin :=! "15px 0", justifyContent.spaceBetween)
val sortIcon = styleF.bool(
ascending =>
styleS(
&.after(fontSize(9 px), marginLeft(5 px), if (ascending) { content := "'\\25B2'" } else {
content := "'\\25BC'"
})))
}
object DefaultStyle extends Style
type CellRenderer[T] = T => VdomNode
def DefaultCellRenderer[T]: CellRenderer[T] = { model =>
<.span(model.toString)
}
def EmailRenderer[T](fn: T => String): CellRenderer[T] = { t =>
val str = fn(t)
<.a(^.whiteSpace.nowrap, ^.href := s"mailto:${str}", str)
}
def OptionRenderer[T, B](defaultValue: VdomNode = "", bRenderer: CellRenderer[B])(
fn: T => Option[B]): CellRenderer[T] =
t => fn(t).fold(defaultValue)(bRenderer)
case class ColumnConfig[T](name: String,
cellRenderer: CellRenderer[T],
//sortBy: Option[(T, T) => Boolean] = None,
width: Option[String] = None,
nowrap: Boolean = false)(implicit val ordering: Ordering[T])
def SimpleStringConfig[T](name: String,
stringRetriever: T => String,
width: Option[String] = None,
nowrap: Boolean = false): ReactTable.ColumnConfig[T] = {
val renderer: CellRenderer[T] = if (nowrap) { t =>
<.span(stringRetriever(t))
} else { t =>
stringRetriever(t)
}
ColumnConfig(name, renderer, width, nowrap)(ignoreCaseStringOrdering(stringRetriever))
}
}
/**
* A relatively simple html/react table with a pager.
* You should pass in the data as a sequence of items of type T
* But you should also pass a list of Column Configurations, each of which describes how to get to each column for a given item in the data, how to display it, how to sort it, etc.
*/
case class ReactTable[T](data: Seq[T],
configs: List[ReactTable.ColumnConfig[T]] = List(),
rowsPerPage: Int = 5,
style: ReactTable.Style = ReactTable.DefaultStyle,
enableSearch: Boolean = true,
searchBoxStyle: ReactSearchBox.Style = ReactSearchBox.DefaultStyle,
onRowClick: (Int) => Callback = { _ =>
Callback {}
},
searchStringRetriever: T => String = { t: T =>
t.toString
}) {
import ReactTable._
import SortDirection._
case class State(filterText: String,
offset: Int,
rowsPerPage: Int,
filteredData: Seq[T],
sortedState: Map[Int, SortDirection])
class Backend(t: BackendScope[Props, State]) {
def onTextChange(props: Props)(value: String): Callback =
t.modState(_.copy(filteredData = getFilteredData(value, props.data), offset = 0))
def onPreviousClick: Callback =
t.modState(s => s.copy(offset = s.offset - s.rowsPerPage))
def onNextClick: Callback =
t.modState(s => s.copy(offset = s.offset + s.rowsPerPage))
def getFilteredData(text: String, data: Seq[T]): Seq[T] = {
if (text.isEmpty) {
data
} else {
data.filter(searchStringRetriever(_).toLowerCase.contains(text.toLowerCase))
}
}
def sort(ordering: Ordering[T], columnIndex: Int): Callback =
t.modState { state =>
val rows = state.filteredData
state.sortedState.get(columnIndex) match {
case Some(asc) =>
state.copy(filteredData = rows.sorted(ordering.reverse),
sortedState = Map(columnIndex -> dsc),
offset = 0)
case _ =>
state.copy(filteredData = rows.sorted(ordering),
sortedState = Map(columnIndex -> asc),
offset = 0)
}
}
def onPageSizeChange(value: String): Callback =
t.modState(_.copy(rowsPerPage = value.toInt))
def render(props: Props, state: State): VdomElement = {
def settingsBar = {
var value = ""
var options: List[String] = Nil
val total = state.filteredData.length
if (total > props.rowsPerPage) {
value = state.rowsPerPage.toString
options = immutable.Range
.inclusive(props.rowsPerPage, total, 10 * (total / 100 + 1))
.:+(total)
.toList
.map(_.toString)
}
<.div(props.style.settingsBar)(<.div(<.strong("Total: " + state.filteredData.size)),
DefaultSelect(label = "Page Size: ",
options = options,
value = value,
onChange = onPageSizeChange))
}
def renderHeader: TagMod =
<.tr(
props.style.tableHeader,
props.configs.zipWithIndex.map {
case (config, columnIndex) =>
val cell = getHeaderDiv(config)
// config.sortBy.fold(cell(config.name.capitalize))(sortByFn =>
cell(
^.cursor := "pointer",
^.onClick --> sort(config.ordering, columnIndex),
config.name.capitalize,
props.style
.sortIcon(state.sortedState.isDefinedAt(columnIndex) && state.sortedState(
columnIndex) == asc)
.when(state.sortedState.isDefinedAt(columnIndex))
)
//)
}.toTagMod
)
def renderRow(model: T): TagMod =
<.tr(
props.style.tableRow,
props.configs
.map(
config =>
<.td(^.whiteSpace.nowrap.when(config.nowrap),
^.verticalAlign.middle,
config.cellRenderer(model)))
.toTagMod
)
val rows = state.filteredData
.slice(state.offset, state.offset + state.rowsPerPage)
.zipWithIndex
.map {
case (row, i) => renderRow(row) //tableRow.withKey(i)((row, props))
}
.toTagMod
<.div(
props.style.reactTableContainer,
ReactSearchBox(onTextChange = onTextChange(props) _, style = props.searchBoxStyle)
.when(props.enableSearch),
settingsBar,
<.div(props.style.table, <.table(<.thead(renderHeader()), <.tbody(rows))),
Pager(state.rowsPerPage,
state.filteredData.length,
state.offset,
onNextClick,
onPreviousClick)
)
}
}
def getHeaderDiv(config: ColumnConfig[T]): TagMod = {
config.width.fold(<.th())(width => <.th(^.width := width))
}
def arrowUp: TagMod =
TagMod(^.width := 0.px,
^.height := 0.px,
^.borderLeft := "5px solid transparent",
^.borderRight := "5px solid transparent",
^.borderBottom := "5px solid black")
def arrowDown: TagMod =
TagMod(^.width := 0.px,
^.height := 0.px,
^.borderLeft := "5px solid transparent",
^.borderRight := "5px solid transparent",
^.borderTop := "5px solid black")
def emptyClass: TagMod =
TagMod(^.padding := "1px")
val component = ScalaComponent
.builder[Props]("ReactTable")
.initialStateFromProps(props =>
State(filterText = "", offset = 0, props.rowsPerPage, props.data, Map()))
.renderBackend[Backend]
.componentWillReceiveProps(e =>
Callback.when(e.currentProps.data != e.nextProps.data)(
e.backend.onTextChange(e.nextProps)(e.state.filterText)))
.build
case class Props(data: Seq[T],
configs: List[ColumnConfig[T]],
rowsPerPage: Int,
style: Style,
enableSearch: Boolean,
searchBoxStyle: ReactSearchBox.Style)
def apply() = component(Props(data, configs, rowsPerPage, style, enableSearch, searchBoxStyle))
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/ReactTagsInput.scala
================================================
package chandu0101.scalajs.react.components
import chandu0101.macros.tojs.JSMacro
import japgolly.scalajs.react._
import scala.scalajs.js
import scala.scalajs.js.annotation.JSImport
@JSImport("react-tagsinput", JSImport.Default) @js.native
object ReactTagsInputRequire extends js.Any
@JSImport("react-tagsinput/react-tagsinput.css", JSImport.Namespace) @js.native
object ReactTagsInputCss extends js.Any
case class ReactTagsInput(
key: js.UndefOr[String] = js.undefined,
ref: js.UndefOr[ReactTagsInputM => Unit] = js.undefined,
/* An array of tags. */
value: js.Array[String],
/* Callback when tags change. */
onChange: js.Array[String] => Callback,
/* An array of key codes that add a tag, default is [9, 13] (Tab and Enter). */
addKeys: js.UndefOr[js.Array[Int]] = js.undefined,
/* An array of key codes that remove a tag, default is [8] (Backspace). */
removeKeys: js.UndefOr[js.Array[Int]] = js.undefined,
/* Props passed down to every tag component. Defualt is: {className: 'react-tagsinput-tag', classNameRemove: 'react-tagsinput-remove'}. */
tagProps: js.UndefOr[js.Any] = js.undefined,
/* Props passed down to input. Default is: {className: 'react-tagsinput-input'} */
inputProps: js.UndefOr[js.Any] = js.undefined,
/* Render function for every tag. Default is:
function defaultRenderTag (props) {
let {tag, key, onRemove, ...other} = props
return (
<span key={key} {...other}>
{tag}
<a onClick={(e) => onRemove(key)} />
</span>
)
}*/
renderTag: js.UndefOr[js.Any] = js.undefined,
/* Render function for input. Default is:
function defaultRenderInput (props) {
let {onChange, value, ...other} = props
return (
<input type='text' onChange={onChange} value={value} {...other} />
)
}
*/
renderInput: js.UndefOr[js.Any] = js.undefined,
/* Renders the layout of the component. Takes tagComponents and inputComponent as args. Default is:
function defaultRenderLayout (tagComponents, inputComponent) {
return (
<span>
{tagComponents}
{inputComponent}
</span>
)
} */
renderLayout: js.UndefOr[js.Any] = js.undefined,
onBlur: js.UndefOr[Callback] = js.undefined,
onKeyDown: js.UndefOr[ReactEventFromInput => Callback] = js.undefined,
onKeyUp: js.UndefOr[ReactEventFromInput => Callback] = js.undefined
) {
def apply() = {
val props = JSMacro[ReactTagsInput](this)
val f = JsComponent[js.Object, Children.None, Null](ReactTagsInputRequire)
f(props)
}
}
@js.native
trait ReactTagsInputM extends js.Object {
def focus(): Unit = js.native
def blur(): Unit = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/ReactTapEventPlugin.scala
================================================
package chandu0101.scalajs.react.components
import scala.scalajs.js
import scala.scalajs.js.annotation.JSImport
import scala.scalajs.js.{Date, UndefOr}
@js.native
trait StrategyOverrides extends js.Object {
var shouldRejectClick: js.UndefOr[
js.Function2[ /* lastTouchEventTimestamp */ Date, /* clickEventTimestamp */ Date, Boolean]] =
js.native
}
@JSImport("react-tap-event-plugin", "default")
@js.native
object ReactTapEventPlugin
extends js.Function1[ /* strategyOverrides */ js.UndefOr[StrategyOverrides], Unit] {
override def apply(strategyOverrides: UndefOr[StrategyOverrides]): Unit = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/ReactTreeView.scala
================================================
package chandu0101.scalajs.react.components
import japgolly.scalajs.react._
import japgolly.scalajs.react.vdom.html_<^._
import scala.scalajs.js
import Implicits._
case class TreeItem(item: Any, children: TreeItem*) {
def apply(item: Any): TreeItem = this(item, Nil)
}
object ReactTreeView {
trait Style {
def reactTreeView = Seq[TagMod]()
def treeGroup = Seq(^.margin := "0", ^.padding := "0 0 0 14px")
def treeItem = Seq(^.listStyleType := "none")
def selectedTreeItemContent =
Seq(^.backgroundColor := "#1B8EB0",
^.color := "white",
^.fontWeight := "400",
^.padding := "0 7px")
def treeItemBefore = Seq(
^.display := "inline-block",
^.fontSize := "11px",
^.color := "grey",
^.margin := "3px 7px 0 0",
^.textAlign := "center",
^.width := "11px"
)
def treeItemHasChildrenClosed = Seq(^.contentStyle := "▶")
def treeItemHasChildrenOpened = Seq(^.contentStyle := "▼")
}
type NodeC = ScalaComponent.MountedPure[NodeProps, NodeState, NodeBackend] //, _ <: CtorType[_, _]]
case class State(filterText: String, filterMode: Boolean, selectedNode: js.UndefOr[NodeC])
class Backend($ : BackendScope[Props, State]) {
def onNodeSelect(P: Props)(selected: NodeC): Callback = {
val removeSelection: Callback =
$.state.flatMap(
_.selectedNode
.filterNot(_ == selected)
.fold(Callback.empty)(_.modState(_.copy(selected = false)))
)
val updateThis: Callback =
$.modState(_.copy(selectedNode = selected, filterMode = false))
val setSelection: Callback = selected.modState(_.copy(selected = true))
val tell: Callback =
selected.props.flatMap(p => P.onItemSelect.asCbo(p.root.item.toString, p.parent, p.depth))
removeSelection >> updateThis >> setSelection >> tell
}
def onTextChange(text: String): Callback =
$.modState(_.copy(filterText = text, filterMode = true))
def render(P: Props, S: State) =
<.div(P.style.reactTreeView.toTagMod)(
ReactSearchBox(onTextChange = onTextChange).when(P.showSearchBox),
TreeNode.withKey("root")(
NodeProps(
root = P.root,
open = if (S.filterText.nonEmpty) true else P.open,
onNodeSelect = onNodeSelect(P),
filterText = S.filterText,
style = P.style,
filterMode = S.filterMode
))
)
}
case class NodeBackend($ : BackendScope[NodeProps, NodeState]) {
def onItemSelect(P: NodeProps)(e: ReactEventFromHtml): Callback = {
P.onNodeSelect($.asInstanceOf[NodeC]) >> e.preventDefaultCB >> e.stopPropagationCB
}
def childrenFromProps(P: NodeProps): CallbackTo[Option[Unit]] =
$.modState(S => S.copy(children = if (S.children.isEmpty) P.root.children else Nil))
.when(P.root.children.nonEmpty)
def onTreeMenuToggle(P: NodeProps)(e: ReactEventFromHtml): Callback =
childrenFromProps(P) >> e.preventDefaultCB >> e.stopPropagationCB
def isFilterTextExist(filterText: String, data: TreeItem): Boolean = {
def matches(item: TreeItem): Boolean =
item.item.toString.toLowerCase.contains(filterText.toLowerCase)
def loop(data: Seq[TreeItem]): Boolean =
data.view.exists(
item => if (item.children.isEmpty) matches(item) else loop(item.children)
)
matches(data) || loop(data.children)
}
def render(P: NodeProps, S: NodeState): VdomTag = {
val depth = P.depth + 1
val parent =
if (P.parent.isEmpty) P.root.item.toString
else s"${P.parent}<-${P.root.item.toString}"
val treeMenuToggle: TagMod =
if (S.children.nonEmpty)
<.span(
^.onClick ==> onTreeMenuToggle(P),
^.key := "arrow",
P.style.treeItemBefore.toTagMod,
"▼"
)
else if (P.root.children.nonEmpty && S.children.isEmpty)
<.span(
^.onClick ==> onTreeMenuToggle(P),
^.key := "arrow",
P.style.treeItemBefore.toTagMod,
"▶"
)
else ""
<.li(
P.style.treeItem.toTagMod,
treeMenuToggle,
^.key := "toggle",
^.cursor := "pointer",
<.span(
P.style.selectedTreeItemContent.toTagMod.when(S.selected),
^.onClick ==> onItemSelect(P),
P.root.item.toString
),
<.ul(P.style.treeGroup.toTagMod)(
S.children
.map(
child =>
TreeNode
.withKey(s"$parent$depth${child.item}")
.apply(
P.copy(
root = child,
open = !P.filterText.trim.isEmpty,
depth = depth,
parent = parent,
filterText = P.filterText
))
.when(isFilterTextExist(P.filterText, child)))
.toTagMod)
)
}
}
case class NodeState(children: Seq[TreeItem] = Nil, selected: Boolean = false)
case class NodeProps(root: TreeItem,
open: Boolean,
depth: Int = 0,
parent: String = "",
onNodeSelect: (NodeC) => Callback,
filterText: String,
style: Style,
filterMode: Boolean)
lazy val TreeNode = ScalaComponent
.builder[NodeProps]("ReactTreeNode")
.initialStateFromProps(P => if (P.open) NodeState(P.root.children) else NodeState())
.renderBackend[NodeBackend]
.componentWillReceiveProps { c =>
c.modState(_.copy(children = if (c.nextProps.open) c.nextProps.root.children else Nil))
.when(c.nextProps.filterMode)
.void
}
.build
val component = ScalaComponent
.builder[Props]("ReactTreeView")
.initialState(State("", false, js.undefined))
.renderBackend[Backend]
.build
case class Props(root: TreeItem,
open: Boolean,
onItemSelect: js.UndefOr[(String, String, Int) => Callback],
showSearchBox: Boolean,
style: Style)
def apply(root: TreeItem,
openByDefault: Boolean = false,
onItemSelect: js.UndefOr[(String, String, Int) => Callback] = js.undefined,
showSearchBox: Boolean = false,
style: Style = new Style {}) =
component(Props(root, openByDefault, onItemSelect, showSearchBox, style))
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/Spinner.scala
================================================
package chandu0101.scalajs.react.components
import chandu0101.macros.tojs.JSMacro
import japgolly.scalajs.react._
import scala.scalajs.js
import scala.scalajs.js.annotation.JSImport
@js.native
@JSImport("react-spinner", JSImport.Default)
object SpinnerRequire extends js.Any
@js.native
@JSImport("react-spinner/react-spinner.css", JSImport.Namespace)
object SpinnerCss extends js.Any
case class Spinner(
key: js.UndefOr[String] = js.undefined,
ref: js.UndefOr[String] = js.undefined,
className: js.UndefOr[String] = js.undefined
) {
def apply() = {
val f = JsComponent[js.Object, Children.None, Null](SpinnerRequire)
f(JSMacro[Spinner](this))
}
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/elementalui/Eui.scala
================================================
package chandu0101.scalajs.react.components.elementalui
import scala.scalajs.js
import scala.scalajs.js.annotation.JSImport
object Eui {
// we need to fix these renames
@js.native @JSImport("elemental/lib/components/Alert", JSImport.Default)
object ElementalAlert extends js.Any
@js.native @JSImport("elemental/lib/components/FileDragAndDrop", JSImport.Default)
object Dropzone extends js.Any
@js.native @JSImport("elemental/lib/components/BlankState", JSImport.Default)
object BlankState extends js.Any
@js.native @JSImport("elemental/lib/components/Button", JSImport.Default)
object Button extends js.Any
@js.native @JSImport("elemental/lib/components/ButtonGroup", JSImport.Default)
object ButtonGroup extends js.Any
@js.native @JSImport("elemental/lib/components/Checkbox", JSImport.Default)
object Checkbox extends js.Any
@js.native @JSImport("elemental/lib/components/Card", JSImport.Default)
object Card extends js.Any
@js.native @JSImport("elemental/lib/components/Col", JSImport.Default)
object Col extends js.Any
@js.native @JSImport("elemental/lib/components/Container", JSImport.Default)
object Container extends js.Any
@js.native @JSImport("elemental/lib/components/Dropdown", JSImport.Default)
object Dropdown extends js.Any
@js.native @JSImport("elemental/lib/components/EmailInputGroup", JSImport.Default)
object EmailInputGroup extends js.Any
@js.native @JSImport("elemental/lib/components/FileUpload", JSImport.Default)
object FileUpload extends js.Any
@js.native @JSImport("elemental/lib/components/Form", JSImport.Default)
object Form extends js.Any
@js.native @JSImport("elemental/lib/components/FormField", JSImport.Default)
object FormField extends js.Any
@js.native @JSImport("elemental/lib/components/FormIcon", JSImport.Default)
object FormIcon extends js.Any
@js.native @JSImport("elemental/lib/components/FormIconField", JSImport.Default)
object FormIconField extends js.Any
@js.native @JSImport("elemental/lib/components/FormInput", JSImport.Default)
object FormInput extends js.Any
@js.native @JSImport("elemental/lib/components/FormLabel", JSImport.Default)
object FormLabel extends js.Any
@js.native @JSImport("elemental/lib/components/FormNote", JSImport.Default)
object FormNote extends js.Any
@js.native @JSImport("elemental/lib/components/FormRow", JSImport.Default)
object FormRow extends js.Any
@js.native @JSImport("elemental/lib/components/FormSelect", JSImport.Default)
object FormSelect extends js.Any
@js.native @JSImport("elemental/lib/components/Glyph", JSImport.Default)
object Glyph extends js.Any
@js.native @JSImport("elemental/lib/components/InputGroup", JSImport.Default)
object InputGroup extends js.Any
@js.native @JSImport("elemental/lib/components/InputGroupSection", JSImport.Default)
object InputGroupSection extends js.Any
@js.native @JSImport("elemental/lib/components/Modal", JSImport.Default)
object Modal extends js.Any
@js.native @JSImport("elemental/lib/components/ModalBody", JSImport.Default)
object ModalBody extends js.Any
@js.native @JSImport("elemental/lib/components/ModalFooter", JSImport.Default)
object ModalFooter extends js.Any
@js.native @JSImport("elemental/lib/components/ModalHeader", JSImport.Default)
object ModalHeader extends js.Any
@js.native @JSImport("elemental/lib/components/Pagination", JSImport.Default)
object Pagination extends js.Any
@js.native @JSImport("elemental/lib/components/PasswordInputGroup", JSImport.Default)
object PasswordInputGroup extends js.Any
@js.native @JSImport("elemental/lib/components/Pill", JSImport.Default)
object Pill extends js.Any
@js.native @JSImport("elemental/lib/components/Radio", JSImport.Default)
object Radio extends js.Any
@js.native @JSImport("elemental/lib/components/ResponsiveText", JSImport.Default)
object ResponsiveText extends js.Any
@js.native @JSImport("elemental/lib/components/Row", JSImport.Default)
object Row extends js.Any
@js.native @JSImport("elemental/lib/components/RadioGroup", JSImport.Default)
object RadioGroup extends js.Any
@js.native @JSImport("elemental/lib/components/SegmentedControl", JSImport.Default)
object SegmentedControl extends js.Any
@js.native @JSImport("elemental/lib/components/Spinner", JSImport.Default)
object Spinner extends js.Any
@js.native @JSImport("elemental/lib/components/Table", JSImport.Default)
object Table extends js.Any
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/elementalui/types.scala
================================================
package chandu0101.scalajs.react.components.elementalui
import chandu0101.macros.tojs.JSMacro
import scala.scalajs.js
import scala.scalajs.js.annotation.ScalaJSDefined
class FormSelectOption(val label: String, val value: String) extends js.Object {
val toJS = JSMacro[FormSelectOption](this)
}
object FormSelectOption {
def apply(label: String, value: String) = new FormSelectOption(label, value)
}
case class ModalSize(value: String) extends AnyVal
object ModalSize {
val small = ModalSize("small")
val medium = ModalSize("medium")
val large = ModalSize("large")
val values = List(small, medium, large)
def apply(value: String) = new ModalSize(value)
}
case class ColBasis private (value: String) extends AnyVal
object ColBasis {
val number = ColBasis("number")
val string = ColBasis("string")
}
case class EuiDropdownMenuItemType private (value: String) extends AnyVal
object EuiDropdownMenuItemType {
val DIVIDER = EuiDropdownMenuItemType("divider")
val HEADER = EuiDropdownMenuItemType("header")
val DEFAULT = EuiDropdownMenuItemType("")
def fromString(str: String): EuiDropdownMenuItemType = str match {
case "divider" => DIVIDER
case "header" => HEADER
case _ => DEFAULT
}
}
case class EuiDropdownMenuItem(label: String = "",
`type`: EuiDropdownMenuItemType = EuiDropdownMenuItemType.DEFAULT) {
val toJS = JSMacro[EuiDropdownMenuItem](this)
}
object EuiDropdownMenuItem {
def fromJson(obj: js.Dynamic) =
EuiDropdownMenuItem(label = obj.label.toString,
`type` = EuiDropdownMenuItemType.fromString(obj.`type`.toString))
}
case class File(lastModifiedDate: String,
name: String,
isClosed: Boolean,
size: Long,
`type`: String) {
val toJS = JSMacro[File](this)
}
object File {
def fromJson(obj: js.Dynamic) = File(
lastModifiedDate = obj.lastModifiedState.toString,
name = obj.name.toString,
isClosed = obj.isClosed.toString.toBoolean,
size = obj.size.toString.toLong,
`type` = obj.`type`.toString
)
}
case class IconColorVariant private (value: String) extends AnyVal
object IconColorVariant {
val DANGER = IconColorVariant("danger")
val DEFAULT = IconColorVariant("default")
val PRIMARY = IconColorVariant("primary")
val SUCCESS = IconColorVariant("success")
val WARNING = IconColorVariant("warning")
}
case class FormIconFieldPosition private (value: String) extends AnyVal
object FormIconFieldPosition {
val LEFT = FormIconFieldPosition("left")
val RIGHT = FormIconFieldPosition("right")
}
case class FormInputSize private (value: String) extends AnyVal
object FormInputSize {
val LG = FormInputSize("lg")
val SM = FormInputSize("sm")
val XS = FormInputSize("xs")
}
case class VerticalAlignment private (value: String) extends AnyVal
object VerticalAlignment {
val baseline = VerticalAlignment("baseline")
val bottom = VerticalAlignment("bottom")
val inherit = VerticalAlignment("inherit")
val initial = VerticalAlignment("initial")
val middle = VerticalAlignment("middle")
val sub = VerticalAlignment("sub")
val `super` = VerticalAlignment("super")
val text_bottom = VerticalAlignment("text-bottom")
val text_top = VerticalAlignment("text-top")
val top = VerticalAlignment("top'")
}
case class ModalWidth private (value: String) extends AnyVal
object ModalWidth {
val SMALL = ModalWidth("small")
val MEDIUM = ModalWidth("medium")
val LARGE = ModalWidth("large")
}
case class Octicons private (value: String) extends AnyVal
object Octicons {
val alert = Octicons("alert")
val arrow_down = Octicons("arrow-down")
val arrow_left = Octicons("arrow-left")
val arrow_right = Octicons("arrow-right")
val arrow_small_down = Octicons("arrow-small-down")
val arrow_small_left = Octicons("arrow-small-left")
val arrow_small_right = Octicons("arrow-small-right")
val arrow_small_up = Octicons("arrow-small-up")
val arrow_up = Octicons("arrow-up")
val beaker = Octicons("beaker")
val bell = Octicons("bell")
// val bold = Octicons("bold")
val bookmark = Octicons("bookmark")
val book = Octicons("book")
val briefcase = Octicons("briefcase")
val broadcast = Octicons("broadcast")
val browser = Octicons("browser")
val bug = Octicons("bug")
val calendar = Octicons("calendar")
val checklist = Octicons("checklist")
val check = Octicons("check")
val chevron_down = Octicons("chevron-down")
val chevron_left = Octicons("chevron-left")
val chevron_right = Octicons("chevron-right")
val chevron_up = Octicons("chevron-up")
val circle_slash = Octicons("circle-slash")
val circuit_board = Octicons("circuit-board")
val clippy = Octicons("clippy")
val clock = Octicons("clock")
val cloud_download = Octicons("cloud-download")
val cloud_upload = Octicons("cloud-upload")
val code = Octicons("code")
val color_mode = Octicons("color-mode")
val comment_discussion = Octicons("comment-discussion")
val comment = Octicons("comment")
val credit_card = Octicons("credit-card")
val dashboard = Octicons("dashboard")
val dash = Octicons("dash")
val database = Octicons("database")
val desktop_download = Octicons("desktop-download")
val device_camera = Octicons("device-camera")
val device_camera_video = Octicons("device-camera-video")
val device_desktop = Octicons("device-desktop")
val device_mobile = Octicons("device-mobile")
val diff_added = Octicons("diff-added")
val diff_ignored = Octicons("diff-ignored")
val diff_modified = Octicons("diff-modified")
val diff_removed = Octicons("diff-removed")
val diff_renamed = Octicons("diff-renamed")
val diff = Octicons("diff")
val ellipsis = Octicons("ellipsis")
val eye = Octicons("eye")
val file_binary = Octicons("file-binary")
val file_code = Octicons("file-code")
val file_directory = Octicons("file-directory")
val file_media = Octicons("file-media")
val file_pdf = Octicons("file-pdf")
val file_submodule = Octicons("file-submodule")
val file_symlink_directory = Octicons("file-symlink-directory")
val file_symlink_file = Octicons("file-symlink-file")
val file_text = Octicons("file-text")
val file_zip = Octicons("file-zip")
val flame = Octicons("flame")
val fold = Octicons("fold")
val gear = Octicons("gear")
val gift = Octicons("gift")
val gist_secret = Octicons("gist-secret")
val gist = Octicons("gist")
val git_branch = Octicons("git-branch")
val git_commit = Octicons("git-commit")
val git_compare = Octicons("git-compare")
val git_merge = Octicons("git-merge")
val git_pull_request = Octicons("git-pull-request")
val globe = Octicons("globe")
val graph = Octicons("graph")
val heart = Octicons("heart")
val history = Octicons("history")
val home = Octicons("home")
val horizontal_rule = Octicons("horizontal-rule")
val hubot = Octicons("hubot")
// val icons = Octicons("icons")
val inbox = Octicons("inbox")
val info = Octicons("info")
val issue_closed = Octicons("issue-closed")
val issue_opened = Octicons("issue-opened")
val issue_reopened = Octicons("issue-reopened")
// val italic = Octicons("italic")
val jersey = Octicons("jersey")
val keyboard = Octicons("keyboard")
val key = Octicons("key")
val law = Octicons("law")
val light_bulb = Octicons("light-bulb")
val link_external = Octicons("link-external")
val link = Octicons("link")
val list_ordered = Octicons("list-ordered")
val list_unordered = Octicons("list-unordered")
val location = Octicons("location")
val lock = Octicons("lock")
val logo_github = Octicons("logo-github")
val mail_read = Octicons("mail-read")
val mail_reply = Octicons("mail-reply")
val mail = Octicons("mail")
val markdown = Octicons("markdown")
val mark_github = Octicons("mark-github")
val megaphone = Octicons("megaphone")
val mention = Octicons("mention")
val milestone = Octicons("milestone")
val mirror = Octicons("mirror")
val mortar_board = Octicons("mortar-board")
val mute = Octicons("mute")
val no_newline = Octicons("no-newline")
val octoface = Octicons("octoface")
val organization = Octicons("organization")
val paintcan = Octicons("paintcan")
val pencil = Octicons("pencil")
val person = Octicons("person")
val pin = Octicons("pin")
val plug = Octicons("plug")
val plus = Octicons("plus")
val primitive_dot = Octicons("primitive-dot")
val primitive_square = Octicons("primitive-square")
val pulse = Octicons("pulse")
val question = Octicons("question")
val quote = Octicons("quote")
val radio_tower = Octicons("radio-tower")
val repo_clone = Octicons("repo-clone")
val repo_force_push = Octicons("repo-force-push")
val repo_forked = Octicons("repo-forked")
val repo_pull = Octicons("repo-pull")
val repo_push = Octicons("repo-push")
val repo = Octicons("repo")
val rocket = Octicons("rocket")
val rss = Octicons("rss")
val ruby = Octicons("ruby")
val search = Octicons("search")
val server = Octicons("server")
val settings = Octicons("settings")
val shield = Octicons("shield")
val sign_in = Octicons("sign-in")
val sign_out = Octicons("sign-out")
val squirrel = Octicons("squirrel")
val star = Octicons("star")
val stop = Octicons("stop")
val sync = Octicons("sync")
val tag = Octicons("tag")
// val tasklist = Octicons("tasklist")
val telescope = Octicons("telescope")
val terminal = Octicons("terminal")
// val text_size = Octicons("text-size")
val three_bars = Octicons("three-bars")
val thumbsdown = Octicons("thumbsdown")
val thumbsup = Octicons("thumbsup")
val tools = Octicons("tools")
val trashcan = Octicons("trashcan")
val triangle_down = Octicons("triangle-down")
val triangle_left = Octicons("triangle-left")
val triangle_right = Octicons("triangle-right")
val triangle_up = Octicons("triangle-up")
val unfold = Octicons("unfold")
val unmute = Octicons("unmute")
val versions = Octicons("versions")
val watch = Octicons("watch")
val x = Octicons("x")
val zap = Octicons("zap")
val values = List(
alert,
arrow_down,
arrow_left,
arrow_right,
arrow_small_down,
arrow_small_left,
arrow_small_right,
arrow_small_up,
arrow_up,
beaker,
bell,
// bold,
bookmark,
book,
briefcase,
broadcast,
browser,
bug,
calendar,
checklist,
check,
chevron_down,
chevron_left,
chevron_right,
chevron_up,
circle_slash,
circuit_board,
clippy,
clock,
cloud_download,
cloud_upload,
code,
color_mode,
comment_discussion,
comment,
credit_card,
dashboard,
dash,
database,
desktop_download,
device_camera,
device_camera_video,
device_desktop,
device_mobile,
diff_added,
diff_ignored,
diff_modified,
diff_removed,
diff_renamed,
diff,
ellipsis,
eye,
file_binary,
file_code,
file_directory,
file_media,
file_pdf,
file_submodule,
file_symlink_directory,
file_symlink_file,
file_text,
file_zip,
flame,
fold,
gear,
gift,
gist_secret,
gist,
git_branch,
git_commit,
git_compare,
git_merge,
git_pull_request,
globe,
graph,
heart,
history,
home,
horizontal_rule,
hubot,
// icons,
inbox,
info,
issue_closed,
issue_opened,
issue_reopened,
// italic,
jersey,
keyboard,
key,
law,
light_bulb,
link_external,
link,
list_ordered,
list_unordered,
location,
lock,
logo_github,
mail_read,
mail_reply,
mail,
markdown,
mark_github,
megaphone,
mention,
milestone,
mirror,
mortar_board,
primitive_square,
pulse,
question,
quote,
radio_tower,
repo_clone,
repo_force_push,
repo_forked,
repo_pull,
repo_push,
repo,
rocket,
rss,
ruby,
search,
server,
settings,
shield,
sign_in,
sign_out,
squirrel,
star,
stop,
sync,
tag,
// tasklist,
telescope,
terminal,
//text_size,
three_bars,
thumbsdown,
thumbsup,
tools,
trashcan,
triangle_down,
triangle_left,
triangle_right,
triangle_up,
unfold,
unmute,
versions,
watch,
x
)
}
case class PillType private (value: String) extends AnyVal
object PillType {
val danger = PillType("danger")
val default = PillType("default")
val info = PillType("info")
val primary = PillType("primary")
val success = PillType("success")
val warning = PillType("warning")
val danger_inverted = PillType("danger-inverted")
val default_inverted = PillType("default-inverted")
val info_inverted = PillType("info-inverted")
val primary_inverted = PillType("primary-inverted")
val success_inverted = PillType("success-inverted")
val warning_inverted = PillType("warning-inverted")
}
case class SpinnerSize private (value: String) extends AnyVal
object SpinnerSize {
val SM = SpinnerSize("sm")
val MD = SpinnerSize("md")
val LG = SpinnerSize("lg")
}
case class SpinnerType private (value: String) extends AnyVal
object SpinnerType {
val DEFAULT = SpinnerType("default")
val PRIMARY = SpinnerType("primary")
val INVERTED = SpinnerType("inverted")
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/fascades/GoogleMapFascade.scala
================================================
package chandu0101.scalajs.react.components
package fascades
import japgolly.scalajs.react.vdom.TopNode
import org.scalajs.dom.Event
import scala.scalajs.js
import scala.scalajs.js.Dynamic.{literal => json}
import scala.scalajs.js.JSConverters.genTravConvertible2JSRichGenTrav
import scala.scalajs.js.annotation._
@js.native @JSGlobal("google.maps.LatLng")
class GLatLng(lat: Double, lng: Double) extends js.Object
@js.native @JSGlobal("google.maps.Map")
class GMap(node: TopNode, options: js.Dynamic) extends js.Object {
def setCenter(latLng: GLatLng): Unit = js.native
}
@js.native @JSGlobal("google.maps.Point")
class GPoint(x: Int, y: Int) extends js.Object
@js.native @JSGlobal("google.maps.Size")
class GSize(width: Int, height: Int) extends js.Object
@js.native @JSGlobal("google.maps.Marker")
class GMarker(ops: js.Dynamic) extends js.Object {
def setMap(map: GMap): Unit = js.native
}
@js.native @JSGlobal("google.maps.InfoWindow")
class GInfoWindow extends js.Object {
def setContent(content: String): Unit = js.native
def open(map: GMap, marker: GMarker): Unit = js.native
}
@js.native @JSGlobal("google.maps.event")
class GEvent extends js.Object {
def addListener(marker: GMarker, tpe: String, callback: js.Function0[Unit]): Unit = js.native
def addListener(marker: GMarker, tpe: String, callback: js.Function1[Event, Unit]): Unit =
js.native
}
@js.native @JSGlobal("google.maps.event.addListener")
class GAddListener(marker: GMarker, tpe: String, callback: js.Function) extends js.Object
@js.native @JSGlobal("google.maps.event.clearInstanceListeners")
class GClearInstanceListeners(marker: GMarker) extends js.Object
@js.native @JSGlobal("google.maps.event.clearListeners")
class GClearListeners(marker: GMarker, `type`: String) extends js.Object
case class Point(x: Int, y: Int) {
def toGPoint = new GPoint(x, y)
}
case class Size(width: Int, height: Int) {
def toGSize = new GSize(width, height)
}
/*
url = image location
size = This marker is 20 pixels wide by 32 pixels tall.
origin = The origin for this image is 0,0.
anchor = The anchor for this image is the base of the flagpole at 0,32.
*/
case class Icon(url: String, size: Size, origin: Point, anchor: Point) {
def toGIcon =
json(url = url, size = size.toGSize, origin = origin.toGPoint, anchor = anchor.toGPoint)
}
/*
Shapes define the clickable region of the icon.
The type defines an HTML <area> element 'poly' which
traces out a polygon as a series of X,Y points. The final
coordinate closes the poly by connecting to the first
coordinate.
*/
case class Shape(coords: List[Int], tpe: String) {
def toGShape = json("coords" -> coords.toJSArray, "type" -> tpe)
}
case class LatLng(lat: Double, lng: Double) {
def toGlatlng = new GLatLng(lat, lng)
}
case class Marker(position: LatLng,
title: String = "",
icon: Icon = null,
shape: Shape = null,
zIndex: Int = 0,
draggable: Boolean = false,
content: String = "") {
def toGMarker(map: GMap) =
json(
map = map,
position = position.toGlatlng,
title = title,
icon = if (icon != null) icon.toGIcon else null,
shape = if (shape != null) shape.toGShape else null,
zIndex = zIndex,
draggable = draggable
)
}
case class MapOptions(center: LatLng, zoom: Int = 4) {
def toGMapOptions = json(center = center.toGlatlng, zoom = zoom)
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/helpers.scala
================================================
package chandu0101.scalajs.react.components
import japgolly.scalajs.react._
import japgolly.scalajs.react.vdom.html_<^._
import org.scalajs.dom._
import scala.scalajs.js
object Events {
def register(
element: EventTarget,
tpe: String,
_cb: Event => Callback,
capture: Boolean = false
): Callback = {
val cb: js.Function1[Event, Unit] = (e: Event) => _cb(e).runNow()
element.addEventListener(tpe, cb, capture)
Callback(element.removeEventListener(tpe, cb, capture))
}
}
object RCustomStyles extends RCustomStyles
/**
* Eventually these should be copied to scalajs-react core
*/
trait RCustomStyles {
val MsFlexAlign = VdomStyle("MsFlexAlign")
val MsFlexDirection = VdomStyle("MsFlexDirection")
val MsFlexWrap = VdomStyle("MsFlexWrap")
val WebkitAlignItems = VdomStyle("WebkitAlignItems")
val WebkitBackgroundClip = VdomStyle("WebkitBackgroundClip")
val WebkitBoxAlign = VdomStyle("WebkitBoxAlign")
val WebkitBoxDirection = VdomStyle("WebkitBoxDirection")
val WebkitBoxOrient = VdomStyle("WebkitBoxOrient")
val WebkitBoxShadow = VdomStyle("WebkitBoxShadow")
val WebkitFlexDirection = VdomStyle("WebkitFlexDirection")
val WebkitFlexWrap = VdomStyle("WebkitFlexWrap")
val WebkitTransform = VdomStyle("WebkitTransform")
val mozTransform = VdomStyle("mozTransform")
val msTransform = VdomStyle("msTransform")
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/hljs/HLJSStatic.scala
================================================
package chandu0101.scalajs.react.components.hljs
import scala.scalajs.js
@js.native
trait HLJSStatic extends js.Object {
var APOS_STRING_MODE: IMode = js.native
// Common modes
var BACKSLASH_ESCAPE: IMode = js.native
var BINARY_NUMBER_MODE: IMode = js.native
var BINARY_NUMBER_RE: String = js.native
var CSS_NUMBER_MODE: IMode = js.native
var C_BLOCK_COMMENT_MODE: IMode = js.native
var C_LINE_COMMENT_MODE: IMode = js.native
var C_NUMBER_MODE: IMode = js.native
var C_NUMBER_RE: String = js.native
var HASH_COMMENT_MODE: IMode = js.native
// Common regexps
var IDENT_RE: String = js.native
var NUMBER_MODE: IMode = js.native
var NUMBER_RE: String = js.native
var PHRASAL_WORDS_MODE: IMode = js.native
var QUOTE_STRING_MODE: IMode = js.native
var REGEX_MODE: IMode = js.native
var RE_STARTERS_RE: String = js.native
var TITLE_MODE: IMode = js.native
var UNDERSCORE_IDENT_RE: String = js.native
var UNDERSCORE_TITLE_MODE: IMode = js.native
def inherit(parent: js.Object, obj: js.Object): js.Object = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/hljs/Hljs.scala
================================================
package chandu0101.scalajs.react.components.hljs
import org.scalajs.dom.Node
import scala.scalajs.js
import scala.scalajs.js.annotation._
import scala.scalajs.js.{RegExp, UndefOr, `|`}
object Css {
@js.native @JSImport("highlight.js/styles/github.css", JSImport.Namespace)
object Github extends js.Any
}
object Languages {
@js.native @JSImport("highlight.js/lib/languages/scala", JSImport.Namespace)
object Scala extends js.Function1[ /* hljs */ js.UndefOr[HLJSStatic], IModeBase] {
override def apply(arg1: UndefOr[HLJSStatic]): IModeBase = js.native
}
}
@JSImport("highlight.js/lib/highlight.js", JSImport.Default)
@js.native
object Hljs extends js.Any {
var APOS_STRING_MODE: IMode = js.native
var BACKSLASH_ESCAPE: IMode = js.native
var BINARY_NUMBER_MODE: IMode = js.native
var BINARY_NUMBER_RE: String = js.native
var CSS_NUMBER_MODE: IMode = js.native
var C_BLOCK_COMMENT_MODE: IMode = js.native
var C_LINE_COMMENT_MODE: IMode = js.native
var C_NUMBER_MODE: IMode = js.native
var C_NUMBER_RE: String = js.native
var HASH_COMMENT_MODE: IMode = js.native
var IDENT_RE: String = js.native
var NUMBER_MODE: IMode = js.native
var NUMBER_RE: String = js.native
var PHRASAL_WORDS_MODE: IMode = js.native
var QUOTE_STRING_MODE: IMode = js.native
var REGEX_MODE: IMode = js.native
var RE_STARTERS_RE: String = js.native
var TITLE_MODE: IMode = js.native
var UNDERSCORE_IDENT_RE: String = js.native
var UNDERSCORE_TITLE_MODE: IMode = js.native
def COMMENT(begin: String | RegExp, end: String | RegExp, inherits: IModeBase): IMode = js.native
def configure(options: IOptions): Unit = js.native
def fixMarkup(value: String): String = js.native
def getLanguage(name: String): IMode = js.native
def highlight(name: String, value: String): IHighlightResult = js.native
def highlight(name: String, value: String, ignore_illegals: Boolean): IHighlightResult =
js.native
def highlight(name: String,
value: String,
ignore_illegals: Boolean,
continuation: Boolean): IHighlightResult = js.native
def highlightAuto(value: String): IAutoHighlightResult = js.native
def highlightAuto(value: String, languageSubset: js.Array[String]): IAutoHighlightResult =
js.native
def highlightBlock(block: Node): Unit = js.native
def inherit(parent: js.Object, obj: js.Object): js.Object = js.native
def initHighlighting(): Unit = js.native
def initHighlightingOnLoad(): Unit = js.native
def listLanguages(): js.Array[String] = js.native
def registerLanguage(
name: String,
language: js.Function1[ /* hljs */ js.UndefOr[HLJSStatic], IModeBase]): Unit = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/hljs/IAutoHighlightResult.scala
================================================
package chandu0101.scalajs.react.components.hljs
import scala.scalajs.js
@js.native
trait IAutoHighlightResult extends IHighlightResultBase {
var second_best: js.UndefOr[IAutoHighlightResult] = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/hljs/ICompiledMode.scala
================================================
package chandu0101.scalajs.react.components.hljs
import scala.scalajs.js
import scala.scalajs.js.RegExp
@js.native
trait ICompiledMode extends IModeBase {
var compiled: Boolean = js.native
var contains: js.UndefOr[js.Array[ICompiledMode]] = js.native
var keywords: js.UndefOr[js.Object] = js.native
var terminator_end: js.UndefOr[String] = js.native
var terminators: RegExp = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/hljs/IHighlightResult.scala
================================================
package chandu0101.scalajs.react.components.hljs
import scala.scalajs.js
@js.native
trait IHighlightResult extends IHighlightResultBase {
var top: ICompiledMode = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/hljs/IHighlightResultBase.scala
================================================
package chandu0101.scalajs.react.components.hljs
import scala.scalajs.js
@js.native
trait IHighlightResultBase extends js.Object {
var language: String = js.native
var relevance: Double = js.native
var value: String = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/hljs/IMode.scala
================================================
package chandu0101.scalajs.react.components.hljs
import scala.scalajs.js
@js.native
trait IMode extends IModeBase {
var contains: js.UndefOr[js.Array[IMode]] = js.native
var keywords: js.UndefOr[Any] = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/hljs/IModeBase.scala
================================================
package chandu0101.scalajs.react.components.hljs
import scala.scalajs.js
import scala.scalajs.js.{RegExp, `|`}
@js.native
trait IModeBase extends js.Object {
var aliases: js.UndefOr[js.Array[String]] = js.native
var begin: js.UndefOr[String | RegExp] = js.native
var beginKeyword: js.UndefOr[String] = js.native
var case_insensitive: js.UndefOr[Boolean] = js.native
var className: js.UndefOr[String] = js.native
var end: js.UndefOr[String | RegExp] = js.native
var endsWithParent: js.UndefOr[Boolean] = js.native
var excludeBegin: js.UndefOr[Boolean] = js.native
var excludeEnd: js.UndefOr[Boolean] = js.native
var illegal: js.UndefOr[String] = js.native
var lexems: js.UndefOr[String] = js.native
var relevance: js.UndefOr[Double] = js.native
var returnBegin: js.UndefOr[Boolean] = js.native
var returnEnd: js.UndefOr[Boolean] = js.native
var starts: js.UndefOr[String] = js.native
var subLanguage: js.UndefOr[String] = js.native
var subLanguageMode: js.UndefOr[String] = js.native
var variants: js.UndefOr[js.Array[IMode]] = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/hljs/IOptions.scala
================================================
package chandu0101.scalajs.react.components.hljs
import scala.scalajs.js
@js.native
trait IOptions extends js.Object {
var classPrefix: js.UndefOr[String] = js.native
var languages: js.UndefOr[js.Array[String]] = js.native
var tabReplace: js.UndefOr[String] = js.native
var useBR: js.UndefOr[Boolean] = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/materialui/Mui.scala
================================================
package chandu0101.scalajs.react.components.materialui
import scala.scalajs.js
import scala.scalajs.js.annotation._
object Mui {
@js.native @JSImport("material-ui/AppBar", JSImport.Default) object AppBar extends js.Any
@js.native @JSImport("material-ui/AutoComplete", JSImport.Default) object AutoComplete
extends js.Any
@js.native @JSImport("material-ui/Avatar", JSImport.Default) object Avatar extends js.Any
@js.native @JSImport("material-ui/Badge", JSImport.Default) object Badge extends js.Any
@js.native @JSImport("material-ui/BottomNavigation", JSImport.Default) object BottomNavigation
extends js.Any
@js.native @JSImport("material-ui/BottomNavigation/BottomNavigationItem", JSImport.Default) object BottomNavigationItem
extends js.Any
@js.native @JSImport("material-ui/Card", JSImport.Default) object Card extends js.Any
@js.native @JSImport("material-ui/Card/CardActions", JSImport.Default) object CardActions
extends js.Any
@js.native @JSImport("material-ui/Card/CardHeader", JSImport.Default) object CardHeader
extends js.Any
@js.native @JSImport("material-ui/Card/CardMedia", JSImport.Default) object CardMedia
extends js.Any
@js.native @JSImport("material-ui/Card/CardTitle", JSImport.Default) object CardTitle
extends js.Any
@js.native @JSImport("material-ui/Card/CardText", JSImport.Default) object CardText extends js.Any
@js.native @JSImport("material-ui/Checkbox", JSImport.Default) object Checkbox extends js.Any
@js.native @JSImport("material-ui/Chip", JSImport.Default) object Chip extends js.Any
@js.native @JSImport("material-ui/CircularProgress", JSImport.Default) object CircularProgress
extends js.Any
@js.native @JSImport("material-ui/DatePicker", JSImport.Default) object DatePicker extends js.Any
@js.native @JSImport("material-ui/Dialog", JSImport.Default) object Dialog extends js.Any
@js.native @JSImport("material-ui/Divider", JSImport.Default) object Divider extends js.Any
@js.native @JSImport("material-ui/Drawer", JSImport.Default) object Drawer extends js.Any
@js.native @JSImport("material-ui/DropDownMenu", JSImport.Default) object DropDownMenu
extends js.Any
@js.native @JSImport("material-ui/FlatButton", JSImport.Default) object FlatButton extends js.Any
@js.native @JSImport("material-ui/FloatingActionButton", JSImport.Default) object FloatingActionButton
extends js.Any
@js.native @JSImport("material-ui/FontIcon", JSImport.Default) object FontIcon extends js.Any
@js.native @JSImport("material-ui/GridList", JSImport.Default) object GridList extends js.Any
@js.native @JSImport("material-ui/GridList/GridTile", JSImport.Default) object GridTile
extends js.Any
@js.native @JSImport("material-ui/IconButton", JSImport.Default) object IconButton extends js.Any
@js.native @JSImport("material-ui/IconMenu", JSImport.Default) object IconMenu extends js.Any
@js.native @JSImport("material-ui/LinearProgress", JSImport.Default) object LinearProgress
extends js.Any
@js.native @JSImport("material-ui/List", JSImport.Default) object List extends js.Any
@js.native @JSImport("material-ui/List/ListItem", JSImport.Default) object ListItem extends js.Any
@js.native @JSImport("material-ui/List/makeSelectable", JSImport.Default) object makeSelectable
extends js.Any
@js.native @JSImport("material-ui/Menu", JSImport.Default) object Menu extends js.Any
@js.native @JSImport("material-ui/MenuItem", JSImport.Default) object MenuItem extends js.Any
@js.native @JSImport("material-ui/styles/MuiThemeProvider", JSImport.Default) object MuiThemeProvider
extends js.Any
@js.native @JSImport("material-ui/Paper", JSImport.Default) object Paper extends js.Any
@js.native @JSImport("material-ui/Popover", JSImport.Default) object Popover extends js.Any
@js.native @JSImport("material-ui/RadioButton", JSImport.Default) object RadioButton
extends js.Any
@js.native @JSImport("material-ui/RadioButton/RadioButtonGroup", JSImport.Default) object RadioButtonGroup
extends js.Any
@js.native @JSImport("material-ui/RaisedButton", JSImport.Default) object RaisedButton
extends js.Any
@js.native @JSImport("material-ui/RefreshIndicator", JSImport.Default) object RefreshIndicator
extends js.Any
@js.native @JSImport("material-ui/SelectField", JSImport.Default) object SelectField
extends js.Any
@js.native @JSImport("material-ui/Slider", JSImport.Default) object Slider extends js.Any
@js.native @JSImport("material-ui/Subheader", JSImport.Default) object Subheader extends js.Any
@js.native @JSImport("material-ui/SvgIcon", JSImport.Default) object SvgIcon extends js.Any
@js.native @JSImport("material-ui/Stepper/Step", JSImport.Default) object Step extends js.Any
@js.native @JSImport("material-ui/Stepper/StepButton", JSImport.Default) object StepButton
extends js.Any
@js.native @JSImport("material-ui/Stepper/StepContent", JSImport.Default) object StepContent
extends js.Any
@js.native @JSImport("material-ui/Stepper/StepLabel", JSImport.Default) object StepLabel
extends js.Any
@js.native @JSImport("material-ui/Stepper/Stepper", JSImport.Default) object Stepper
extends js.Any
@js.native @JSImport("material-ui/Snackbar", JSImport.Default) object Snackbar extends js.Any
@js.native @JSImport("material-ui/Tabs", JSImport.Default) object Tabs extends js.Any
@js.native @JSImport("material-ui/Tabs/Tab", JSImport.Default) object Tab extends js.Any
@js.native @JSImport("material-ui/Table", JSImport.Default) object Table extends js.Any
@js.native @JSImport("material-ui/Table/TableBody", JSImport.Default) object TableBody
extends js.Any
@js.native @JSImport("material-ui/Table/TableFooter", JSImport.Default) object TableFooter
extends js.Any
@js.native @JSImport("material-ui/Table/TableHeader", JSImport.Default) object TableHeader
extends js.Any
@js.native @JSImport("material-ui/Table/TableHeaderColumn", JSImport.Default) object TableHeaderColumn
extends js.Any
@js.native @JSImport("material-ui/Table/TableRow", JSImport.Default) object TableRow
extends js.Any
@js.native @JSImport("material-ui/Table/TableRowColumn", JSImport.Default) object TableRowColumn
extends js.Any
@js.native @JSImport("material-ui/TextField", JSImport.Default) object TextField extends js.Any
@js.native @JSImport("material-ui/TimePicker", JSImport.Default) object TimePicker extends js.Any
@js.native @JSImport("material-ui/Toggle", JSImport.Default) object Toggle extends js.Any
@js.native @JSImport("material-ui/Toolbar", JSImport.Default) object Toolbar extends js.Any
@js.native @JSImport("material-ui/Toolbar/ToolbarGroup", JSImport.Default) object ToolbarGroup
extends js.Any
@js.native @JSImport("material-ui/Toolbar/ToolbarSeparator", JSImport.Default) object ToolbarSeparator
extends js.Any
@js.native @JSImport("material-ui/Toolbar/ToolbarTitle", JSImport.Default) object ToolbarTitle
extends js.Any
@js.native @JSImport("material-ui/styles", JSImport.Default) object Styles extends MuiStyles
val SvgIcons = MuiSvgIcons
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/materialui/MuiAutoCompleteFilters.scala
================================================
package chandu0101.scalajs.react.components.materialui
import scala.scalajs.js
import scala.scalajs.js.annotation.JSImport
@js.native @JSImport("material-ui/AutoComplete", JSImport.Default)
object MuiAutoCompleteFilters extends js.Any {
val noFilter: js.Function3[String, String, String, Boolean] = js.native
val defaultFilter: js.Function3[String, String, String, Boolean] = js.native
val caseInsensitiveFilter: js.Function3[String, String, String, Boolean] = js.native
val levenshteinDistanceFilter: js.Function3[String, String, String, Boolean] = js.native
val fuzzyFilter: js.Function3[String, String, String, Boolean] = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/materialui/MuiColors.scala
================================================
package chandu0101.scalajs.react.components.materialui
import scala.scalajs.js
@js.native
trait MuiColors extends js.Object {
val red50: MuiColor = js.native
val red100: MuiColor = js.native
val red200: MuiColor = js.native
val red300: MuiColor = js.native
val red400: MuiColor = js.native
val red500: MuiColor = js.native
val red600: MuiColor = js.native
val red700: MuiColor = js.native
val red800: MuiColor = js.native
val red900: MuiColor = js.native
val redA100: MuiColor = js.native
val redA200: MuiColor = js.native
val redA400: MuiColor = js.native
val redA700: MuiColor = js.native
val pink50: MuiColor = js.native
val pink100: MuiColor = js.native
val pink200: MuiColor = js.native
val pink300: MuiColor = js.native
val pink400: MuiColor = js.native
val pink500: MuiColor = js.native
val pink600: MuiColor = js.native
val pink700: MuiColor = js.native
val pink800: MuiColor = js.native
val pink900: MuiColor = js.native
val pinkA100: MuiColor = js.native
val pinkA200: MuiColor = js.native
val pinkA400: MuiColor = js.native
val pinkA700: MuiColor = js.native
val purple50: MuiColor = js.native
val purple100: MuiColor = js.native
val purple200: MuiColor = js.native
val purple300: MuiColor = js.native
val purple400: MuiColor = js.native
val purple500: MuiColor = js.native
val purple600: MuiColor = js.native
val purple700: MuiColor = js.native
val purple800: MuiColor = js.native
val purple900: MuiColor = js.native
val purpleA100: MuiColor = js.native
val purpleA200: MuiColor = js.native
val purpleA400: MuiColor = js.native
val purpleA700: MuiColor = js.native
val deepPurple50: MuiColor = js.native
val deepPurple100: MuiColor = js.native
val deepPurple200: MuiColor = js.native
val deepPurple300: MuiColor = js.native
val deepPurple400: MuiColor = js.native
val deepPurple500: MuiColor = js.native
val deepPurple600: MuiColor = js.native
val deepPurple700: MuiColor = js.native
val deepPurple800: MuiColor = js.native
val deepPurple900: MuiColor = js.native
val deepPurpleA100: MuiColor = js.native
val deepPurpleA200: MuiColor = js.native
val deepPurpleA400: MuiColor = js.native
val deepPurpleA700: MuiColor = js.native
val indigo50: MuiColor = js.native
val indigo100: MuiColor = js.native
val indigo200: MuiColor = js.native
val indigo300: MuiColor = js.native
val indigo400: MuiColor = js.native
val indigo500: MuiColor = js.native
val indigo600: MuiColor = js.native
val indigo700: MuiColor = js.native
val indigo800: MuiColor = js.native
val indigo900: MuiColor = js.native
val indigoA100: MuiColor = js.native
val indigoA200: MuiColor = js.native
val indigoA400: MuiColor = js.native
val indigoA700: MuiColor = js.native
val blue50: MuiColor = js.native
val blue100: MuiColor = js.native
val blue200: MuiColor = js.native
val blue300: MuiColor = js.native
val blue400: MuiColor = js.native
val blue500: MuiColor = js.native
val blue600: MuiColor = js.native
val blue700: MuiColor = js.native
val blue800: MuiColor = js.native
val blue900: MuiColor = js.native
val blueA100: MuiColor = js.native
val blueA200: MuiColor = js.native
val blueA400: MuiColor = js.native
val blueA700: MuiColor = js.native
val lightBlue50: MuiColor = js.native
val lightBlue100: MuiColor = js.native
val lightBlue200: MuiColor = js.native
val lightBlue300: MuiColor = js.native
val lightBlue400: MuiColor = js.native
val lightBlue500: MuiColor = js.native
val lightBlue600: MuiColor = js.native
val lightBlue700: MuiColor = js.native
val lightBlue800: MuiColor = js.native
val lightBlue900: MuiColor = js.native
val lightBlueA100: MuiColor = js.native
val lightBlueA200: MuiColor = js.native
val lightBlueA400: MuiColor = js.native
val lightBlueA700: MuiColor = js.native
val cyan50: MuiColor = js.native
val cyan100: MuiColor = js.native
val cyan200: MuiColor = js.native
val cyan300: MuiColor = js.native
val cyan400: MuiColor = js.native
val cyan500: MuiColor = js.native
val cyan600: MuiColor = js.native
val cyan700: MuiColor = js.native
val cyan800: MuiColor = js.native
val cyan900: MuiColor = js.native
val cyanA100: MuiColor = js.native
val cyanA200: MuiColor = js.native
val cyanA400: MuiColor = js.native
val cyanA700: MuiColor = js.native
val teal50: MuiColor = js.native
val teal100: MuiColor = js.native
val teal200: MuiColor = js.native
val teal300: MuiColor = js.native
val teal400: MuiColor = js.native
val teal500: MuiColor = js.native
val teal600: MuiColor = js.native
val teal700: MuiColor = js.native
val teal800: MuiColor = js.native
val teal900: MuiColor = js.native
val tealA100: MuiColor = js.native
val tealA200: MuiColor = js.native
val tealA400: MuiColor = js.native
val tealA700: MuiColor = js.native
val green50: MuiColor = js.native
val green100: MuiColor = js.native
val green200: MuiColor = js.native
val green300: MuiColor = js.native
val green400: MuiColor = js.native
val green500: MuiColor = js.native
val green600: MuiColor = js.native
val green700: MuiColor = js.native
val green800: MuiColor = js.native
val green900: MuiColor = js.native
val greenA100: MuiColor = js.native
val greenA200: MuiColor = js.native
val greenA400: MuiColor = js.native
val greenA700: MuiColor = js.native
val lightGreen50: MuiColor = js.native
val lightGreen100: MuiColor = js.native
val lightGreen200: MuiColor = js.native
val lightGreen300: MuiColor = js.native
val lightGreen400: MuiColor = js.native
val lightGreen500: MuiColor = js.native
val lightGreen600: MuiColor = js.native
val lightGreen700: MuiColor = js.native
val lightGreen800: MuiColor = js.native
val lightGreen900: MuiColor = js.native
val lightGreenA100: MuiColor = js.native
val lightGreenA200: MuiColor = js.native
val lightGreenA400: MuiColor = js.native
val lightGreenA700: MuiColor = js.native
val lime50: MuiColor = js.native
val lime100: MuiColor = js.native
val lime200: MuiColor = js.native
val lime300: MuiColor = js.native
val lime400: MuiColor = js.native
val lime500: MuiColor = js.native
val lime600: MuiColor = js.native
val lime700: MuiColor = js.native
val lime800: MuiColor = js.native
val lime900: MuiColor = js.native
val limeA100: MuiColor = js.native
val limeA200: MuiColor = js.native
val limeA400: MuiColor = js.native
val limeA700: MuiColor = js.native
val yellow50: MuiColor = js.native
val yellow100: MuiColor = js.native
val yellow200: MuiColor = js.native
val yellow300: MuiColor = js.native
val yellow400: MuiColor = js.native
val yellow500: MuiColor = js.native
val yellow600: MuiColor = js.native
val yellow700: MuiColor = js.native
val yellow800: MuiColor = js.native
val yellow900: MuiColor = js.native
val yellowA100: MuiColor = js.native
val yellowA200: MuiColor = js.native
val yellowA400: MuiColor = js.native
val yellowA700: MuiColor = js.native
val amber50: MuiColor = js.native
val amber100: MuiColor = js.native
val amber200: MuiColor = js.native
val amber300: MuiColor = js.native
val amber400: MuiColor = js.native
val amber500: MuiColor = js.native
val amber600: MuiColor = js.native
val amber700: MuiColor = js.native
val amber800: MuiColor = js.native
val amber900: MuiColor = js.native
val amberA100: MuiColor = js.native
val amberA200: MuiColor = js.native
val amberA400: MuiColor = js.native
val amberA700: MuiColor = js.native
val orange50: MuiColor = js.native
val orange100: MuiColor = js.native
val orange200: MuiColor = js.native
val orange300: MuiColor = js.native
val orange400: MuiColor = js.native
val orange500: MuiColor = js.native
val orange600: MuiColor = js.native
val orange700: MuiColor = js.native
val orange800: MuiColor = js.native
val orange900: MuiColor = js.native
val orangeA100: MuiColor = js.native
val orangeA200: MuiColor = js.native
val orangeA400: MuiColor = js.native
val orangeA700: MuiColor = js.native
val deepOrange50: MuiColor = js.native
val deepOrange100: MuiColor = js.native
val deepOrange200: MuiColor = js.native
val deepOrange300: MuiColor = js.native
val deepOrange400: MuiColor = js.native
val deepOrange500: MuiColor = js.native
val deepOrange600: MuiColor = js.native
val deepOrange700: MuiColor = js.native
val deepOrange800: MuiColor = js.native
val deepOrange900: MuiColor = js.native
val deepOrangeA100: MuiColor = js.native
val deepOrangeA200: MuiColor = js.native
val deepOrangeA400: MuiColor = js.native
val deepOrangeA700: MuiColor = js.native
val brown50: MuiColor = js.native
val brown100: MuiColor = js.native
val brown200: MuiColor = js.native
val brown300: MuiColor = js.native
val brown400: MuiColor = js.native
val brown500: MuiColor = js.native
val brown600: MuiColor = js.native
val brown700: MuiColor = js.native
val brown800: MuiColor = js.native
val brown900: MuiColor = js.native
val blueGrey50: MuiColor = js.native
val blueGrey100: MuiColor = js.native
val blueGrey200: MuiColor = js.native
val blueGrey300: MuiColor = js.native
val blueGrey400: MuiColor = js.native
val blueGrey500: MuiColor = js.native
val blueGrey600: MuiColor = js.native
val blueGrey700: MuiColor = js.native
val blueGrey800: MuiColor = js.native
val blueGrey900: MuiColor = js.native
val grey50: MuiColor = js.native
val grey100: MuiColor = js.native
val grey200: MuiColor = js.native
val grey300: MuiColor = js.native
val grey400: MuiColor = js.native
val grey500: MuiColor = js.native
val grey600: MuiColor = js.native
val grey700: MuiColor = js.native
val grey800: MuiColor = js.native
val grey900: MuiColor = js.native
val black: MuiColor = js.native
val white: MuiColor = js.native
val transparent: MuiColor = js.native
val fullBlack: MuiColor = js.native
val darkBlack: MuiColor = js.native
val lightBlack: MuiColor = js.native
val minBlack: MuiColor = js.native
val faintBlack: MuiColor = js.native
val fullWhite: MuiColor = js.native
val darkWhite: MuiColor = js.native
val lightWhite: MuiColor = js.native
}
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/materialui/MuiStyles.scala
================================================
package chandu0101.scalajs.react.components.materialui
import japgolly.scalajs.react._
import scala.scalajs.js
@js.native
trait MuiColor extends js.Object
@js.native
trait MuiStyles extends js.Object {
def getMuiTheme(raw: MuiRawTheme): MuiTheme = js.native
val AutoPrefix: js.Dynamic = js.native
val colors: MuiColors = js.native
val Spacing: MuiSpacings = js.native
val MuiThemeProvider: js.Dynamic = js.native
val Typography: js.Dynamic = js.native
val Transitions: js.Dynamic = js.native
val DarkRawTheme: MuiRawTheme = js.native
val LightRawTheme: MuiRawTheme = js.native
}
@js.native
trait MuiSpacings extends js.Object {
val iconSize: Int = js.native
val desktopGutter: Int = js.native
val desktopGutterMore: Int = js.native
val desktopGutterLess: Int = js.native
val desktopGutterMini: Int = js.native
val desktopKeylineIncrement: Int = js.native
val desktopDropDownMenuItemHeight: Int = js.native
val desktopDropDownMenuFontSize: Int = js.native
val desktopLeftNavMenuItemHeight: Int = js.native
val desktopSubheaderHeight: Int = js.native
val desktopToolbarHeight: Int = js.native
}
object MuiSpacings {
def apply(iconSize: Int,
desktopGutter: Int,
desktopGutterMore: Int,
desktopGutterLess: Int,
desktopGutterMini: Int,
desktopKeylineIncrement: Int,
desktopDropDownMenuItemHeight: Int,
desktopDropDownMenuFontSize: Int,
desktopLeftNavMenuItemHeight: Int,
desktopSubheaderHeight: Int,
desktopToolbarHeight: Int): MuiSpacings =
js.Dynamic
.literal(
iconSize = iconSize,
desktopGutter = desktopGutter,
desktopGutterMore = desktopGutterMore,
desktopGutterLess = desktopGutterLess,
desktopGutterMini = desktopGutterMini,
desktopKeylineIncrement = desktopKeylineIncrement,
desktopDropDownMenuItemHeight = desktopDropDownMenuItemHeight,
desktopDropDownMenuFontSize = desktopDropDownMenuFontSize,
desktopLeftNavMenuItemHeight = desktopLeftNavMenuItemHeight,
desktopSubheaderHeight = desktopSubheaderHeight,
desktopToolbarHeight = desktopToolbarHeight
)
.asInstanceOf[MuiSpacings]
implicit class MuiSpacingOps(s: MuiSpacings) {
def copy(iconSize: Int = s.iconSize,
desktopGutter: Int = s.desktopGutter,
desktopGutterMore: Int = s.desktopGutterMore,
desktopGutterLess: Int = s.desktopGutterLess,
desktopGutterMini: Int = s.desktopGutterMini,
desktopKeylineIncrement: Int = s.desktopKeylineIncrement,
desktopDropDownMenuItemHeight: Int = s.desktopDropDownMenuItemHeight,
desktopDropDownMenuFontSize: Int = s.desktopDropDownMenuFontSize,
desktopLeftNavMenuItemHeight: Int = s.desktopLeftNavMenuItemHeight,
desktopSubheaderHeight: Int = s.desktopSubheaderHeight,
desktopToolbarHeight: Int = s.desktopToolbarHeight): MuiSpacings =
js.Dynamic
.literal(
iconSize = iconSize,
desktopGutter = desktopGutter,
desktopGutterMore = desktopGutterMore,
desktopGutterLess = desktopGutterLess,
desktopGutterMini = desktopGutterMini,
desktopKeylineIncrement = desktopKeylineIncrement,
desktopDropDownMenuItemHeight = desktopDropDownMenuItemHeight,
desktopDropDownMenuFontSize = desktopDropDownMenuFontSize,
desktopLeftNavMenuItemHeight = desktopLeftNavMenuItemHeight,
desktopSubheaderHeight = desktopSubheaderHeight,
desktopToolbarHeight = desktopToolbarHeight
)
.asInstanceOf[MuiSpacings]
}
}
@js.native
trait MuiPalette extends js.Object {
val primary1Color: MuiColor = js.native
val primary2Color: MuiColor = js.native
val primary3Color: MuiColor = js.native
val accent1Color: MuiColor = js.native
val accent2Color: MuiColor = js.native
val accent3Color: MuiColor = js.native
val textColor: MuiColor = js.native
val alternateTextColor: MuiColor = js.native
val canvasColor: MuiColor = js.native
val borderColor: MuiColor = js.native
val disabledColor: MuiColor = js.native
}
object MuiPalette {
def apply(primary1Color: MuiColor,
primary2Color: MuiColor,
primary3Color: MuiColor,
accent1Color: MuiColor,
accent2Color: MuiColor,
accent3Color: MuiColor,
textColor: MuiColor,
alternateTextColor: MuiColor,
canvasColor: MuiColor,
borderColor: MuiColor,
disabledColor: MuiColor): MuiPalette = {
js.Dynamic
.literal(
primary1Color = primary1Color,
primary2Color = primary2Color,
primary3Color = primary3Color,
accent1Color = accent1Color,
accent2Color = accent2Color,
accent3Color = accent3Color,
textColor = textColor,
alternateTextColor = alternateTextColor,
canvasColor = canvasColor,
borderColor = borderColor,
disabledColor = disabledColor
)
.asInstanceOf[MuiPalette]
}
implicit class MuiPaletteOps(p: MuiPalette) {
def copy(primary1Color: MuiColor = p.primary1Color,
primary2Color: MuiColor = p.primary2Color,
primary3Color: MuiColor = p.primary3Color,
accent1Color: MuiColor = p.accent1Color,
accent2Color: MuiColor = p.accent2Color,
accent3Color: MuiColor = p.accent3Color,
textColor: MuiColor = p.textColor,
alternateTextColor: MuiColor = p.alternateTextColor,
canvasColor: MuiColor = p.canvasColor,
borderColor: MuiColor = p.borderColor,
disabledColor: MuiColor = p.disabledColor): MuiPalette =
js.Dynamic
.literal(
primary1Color = primary1Color,
primary2Color = primary2Color,
primary3Color = primary3Color,
accent1Color = accent1Color,
accent2Color = accent2Color,
accent3Color = accent3Color,
textColor = textColor,
alternateTextColor = alternateTextColor,
canvasColor = canvasColor,
borderColor = borderColor,
disabledColor = disabledColor
)
.asInstanceOf[MuiPalette]
}
}
@js.native
trait MuiRawTheme extends js.Object {
val spacing: MuiSpacings = js.native
val fontFamily: String = js.native
val palette: MuiPalette = js.native
}
object MuiRawTheme {
def apply(spacing: MuiSpacings, fontFamily: String, palette: MuiPalette): MuiRawTheme = {
js.Dynamic
.literal(spacing = spacing, fontFamily = fontFamily, palette = palette)
.asInstanceOf[MuiRawTheme]
}
implicit class MuiRawThemeOps(t: MuiRawTheme) {
def copy(spacing: MuiSpacings = t.spacing,
fontFamily: String = t.fontFamily,
palette: MuiPalette = t.palette): MuiRawTheme =
js.Dynamic
.literal(
spacing = spacing,
fontFamily = fontFamily,
palette = palette
)
.asInstanceOf[MuiRawTheme]
}
}
@js.native
trait MuiTheme extends js.Object
================================================
FILE: core/src/main/scala/chandu0101/scalajs/react/components/materialui/MuiSvgIcons.scala
================================================
package chandu0101.scalajs.react.components
package materialui
import japgolly.scalajs.react.component.Js.{RawMounted, UnmountedWithRawType}
import japgolly.scalajs.react.vdom.VdomNode
import japgolly.scalajs.react.{Callback, Children, JsComponent, ReactMouseEventFromHtml}
import scala.scalajs.js
import scala.scalajs.js.annotation.JSImport
@js.native
trait MuiSvgIconProps extends js.Object {
def key: js.UndefOr[String]
def ref: js.UndefOr[String]
def color: js.UndefOr[String]
def hoverColor: js.UndefOr[String]
def onMouseEnter: js.UndefOr[ReactMouseEventFromHtml => Callback]
def onMouseLeave: js.UndefOr[ReactMouseEventFromHtml => Callback]
def style: js.UndefOr[CssProperties]
def viewBox: js.UndefOr[String]
}
object MuiSvgIcon {
implicit class SvgIconApply(icon: MuiSvgIcon) {
def apply(
key: js.UndefOr[String] = js.undefined,
ref: js.UndefOr[String] = js.undefined,
color: js.UndefOr[String] = js.undefined,
hoverColor: js.UndefOr[MuiColor] = js.undefined,
onMouseEnter: js.UndefOr[ReactMouseEventFromHtml => Callback] = js.undefined,
onMouseLeave: js.UndefOr[ReactMouseEventFromHtml => Callback] = js.undefined,
style: js.UndefOr[CssProperties] = js.undefined,
viewBox: js.UndefOr[String] = js.undefined
)(children: VdomNode*): UnmountedWithRawType[MuiSvgIconProps, Null, RawMounted] = {
val props = js.Dynamic.literal()
key.foreach(v => props.updateDynamic("key")(v))
ref.foreach(v => props.updateDynamic("ref")(v))
color.foreach(v => props.updateDynamic("color")(v))
hoverColor.foreach(v => props.updateDynamic("hoverColor")(v))
onMouseEnter.foreach(v => props.updateDynamic("onMouseEnter")(v andThen (_.runNow())))
onMouseLeave.foreach(v => props.updateDynamic("onMouseLeave")(v andThen (_.runNow())))
style.foreach(v => props.updateDynamic("style")(v))
viewBox.foreach(v => props.updateDynamic("viewBox")(v))
val svgProps: MuiSvgIconProps =
props.asInstanceOf[MuiSvgIconProps]
val Component = JsComponent[MuiSvgIconProps, Children.Varargs, Null](icon)
Component(svgProps)(children: _*)
}
}
}
@js.native
trait MuiSvgIcon extends js.Any
object MuiSvgIcons {
@js.native @JSImport("material-ui/svg-icons/action/accessibility", JSImport.Default)
object ActionAccessibility extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/accessible", JSImport.Default)
object ActionAccessible extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/account-balance-wallet", JSImport.Default)
object ActionAccountBalanceWallet extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/account-balance", JSImport.Default)
object ActionAccountBalance extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/account-box", JSImport.Default)
object ActionAccountBox extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/account-circle", JSImport.Default)
object ActionAccountCircle extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/add-shopping-cart", JSImport.Default)
object ActionAddShoppingCart extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/alarm-add", JSImport.Default)
object ActionAlarmAdd extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/alarm-off", JSImport.Default)
object ActionAlarmOff extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/alarm-on", JSImport.Default)
object ActionAlarmOn extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/alarm", JSImport.Default)
object ActionAlarm extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/all-out", JSImport.Default)
object ActionAllOut extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/android", JSImport.Default)
object ActionAndroid extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/announcement", JSImport.Default)
object ActionAnnouncement extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/aspect-ratio", JSImport.Default)
object ActionAspectRatio extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/assessment", JSImport.Default)
object ActionAssessment extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/assignment-ind", JSImport.Default)
object ActionAssignmentInd extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/assignment-late", JSImport.Default)
object ActionAssignmentLate extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/assignment-return", JSImport.Default)
object ActionAssignmentReturn extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/assignment-returned", JSImport.Default)
object ActionAssignmentReturned extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/assignment-turned-in", JSImport.Default)
object ActionAssignmentTurnedIn extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/assignment", JSImport.Default)
object ActionAssignment extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/autorenew", JSImport.Default)
object ActionAutorenew extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/backup", JSImport.Default)
object ActionBackup extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/book", JSImport.Default)
object ActionBook extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/bookmark-border", JSImport.Default)
object ActionBookmarkBorder extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/bookmark", JSImport.Default)
object ActionBookmark extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/bug-report", JSImport.Default)
object ActionBugReport extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/build", JSImport.Default)
object ActionBuild extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/cached", JSImport.Default)
object ActionCached extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/camera-enhance", JSImport.Default)
object ActionCameraEnhance extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/card-giftcard", JSImport.Default)
object ActionCardGiftcard extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/card-membership", JSImport.Default)
object ActionCardMembership extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/card-travel", JSImport.Default)
object ActionCardTravel extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/change-history", JSImport.Default)
object ActionChangeHistory extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/check-circle", JSImport.Default)
object ActionCheckCircle extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/chrome-reader-mode", JSImport.Default)
object ActionChromeReaderMode extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/class", JSImport.Default)
object ActionClass extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/code", JSImport.Default)
object ActionCode extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/compare-arrows", JSImport.Default)
object ActionCompareArrows extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/copyright", JSImport.Default)
object ActionCopyright extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/credit-card", JSImport.Default)
object ActionCreditCard extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/dashboard", JSImport.Default)
object ActionDashboard extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/date-range", JSImport.Default)
object ActionDateRange extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/delete-forever", JSImport.Default)
object ActionDeleteForever extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/delete", JSImport.Default)
object ActionDelete extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/description", JSImport.Default)
object ActionDescription extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/dns", JSImport.Default)
object ActionDns extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/done-all", JSImport.Default)
object ActionDoneAll extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/done", JSImport.Default)
object ActionDone extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/donut-large", JSImport.Default)
object ActionDonutLarge extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/donut-small", JSImport.Default)
object ActionDonutSmall extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/eject", JSImport.Default)
object ActionEject extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/euro-symbol", JSImport.Default)
object ActionEuroSymbol extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/event-seat", JSImport.Default)
object ActionEventSeat extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/event", JSImport.Default)
object ActionEvent extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/exit-to-app", JSImport.Default)
object ActionExitToApp extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/explore", JSImport.Default)
object ActionExplore extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/extension", JSImport.Default)
object ActionExtension extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/face", JSImport.Default)
object ActionFace extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/favorite-border", JSImport.Default)
object ActionFavoriteBorder extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/favorite", JSImport.Default)
object ActionFavorite extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/feedback", JSImport.Default)
object ActionFeedback extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/find-in-page", JSImport.Default)
object ActionFindInPage extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/find-replace", JSImport.Default)
object ActionFindReplace extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/fingerprint", JSImport.Default)
object ActionFingerprint extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/flight-land", JSImport.Default)
object ActionFlightLand extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/flight-takeoff", JSImport.Default)
object ActionFlightTakeoff extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/flip-to-back", JSImport.Default)
object ActionFlipToBack extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/flip-to-front", JSImport.Default)
object ActionFlipToFront extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/g-translate", JSImport.Default)
object ActionGTranslate extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/gavel", JSImport.Default)
object ActionGavel extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/get-app", JSImport.Default)
object ActionGetApp extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/gif", JSImport.Default)
object ActionGif extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/grade", JSImport.Default)
object ActionGrade extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/group-work", JSImport.Default)
object ActionGroupWork extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/help-outline", JSImport.Default)
object ActionHelpOutline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/help", JSImport.Default)
object ActionHelp extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/highlight-off", JSImport.Default)
object ActionHighlightOff extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/history", JSImport.Default)
object ActionHistory extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/home", JSImport.Default)
object ActionHome extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/hourglass-empty", JSImport.Default)
object ActionHourglassEmpty extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/hourglass-full", JSImport.Default)
object ActionHourglassFull extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/http", JSImport.Default)
object ActionHttp extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/https", JSImport.Default)
object ActionHttps extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/important-devices", JSImport.Default)
object ActionImportantDevices extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/info-outline", JSImport.Default)
object ActionInfoOutline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/info", JSImport.Default)
object ActionInfo extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/input", JSImport.Default)
object ActionInput extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/invert-colors", JSImport.Default)
object ActionInvertColors extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/label-outline", JSImport.Default)
object ActionLabelOutline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/label", JSImport.Default)
object ActionLabel extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/language", JSImport.Default)
object ActionLanguage extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/launch", JSImport.Default)
object ActionLaunch extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/lightbulb-outline", JSImport.Default)
object ActionLightbulbOutline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/line-style", JSImport.Default)
object ActionLineStyle extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/line-weight", JSImport.Default)
object ActionLineWeight extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/list", JSImport.Default)
object ActionList extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/lock-open", JSImport.Default)
object ActionLockOpen extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/lock-outline", JSImport.Default)
object ActionLockOutline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/lock", JSImport.Default)
object ActionLock extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/loyalty", JSImport.Default)
object ActionLoyalty extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/markunread-mailbox", JSImport.Default)
object ActionMarkunreadMailbox extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/motorcycle", JSImport.Default)
object ActionMotorcycle extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/note-add", JSImport.Default)
object ActionNoteAdd extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/offline-pin", JSImport.Default)
object ActionOfflinePin extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/opacity", JSImport.Default)
object ActionOpacity extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/open-in-browser", JSImport.Default)
object ActionOpenInBrowser extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/open-in-new", JSImport.Default)
object ActionOpenInNew extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/open-with", JSImport.Default)
object ActionOpenWith extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/pageview", JSImport.Default)
object ActionPageview extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/pan-tool", JSImport.Default)
object ActionPanTool extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/payment", JSImport.Default)
object ActionPayment extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/perm-camera-mic", JSImport.Default)
object ActionPermCameraMic extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/perm-contact-calendar", JSImport.Default)
object ActionPermContactCalendar extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/perm-data-setting", JSImport.Default)
object ActionPermDataSetting extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/perm-device-information", JSImport.Default)
object ActionPermDeviceInformation extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/perm-identity", JSImport.Default)
object ActionPermIdentity extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/perm-media", JSImport.Default)
object ActionPermMedia extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/perm-phone-msg", JSImport.Default)
object ActionPermPhoneMsg extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/perm-scan-wifi", JSImport.Default)
object ActionPermScanWifi extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/pets", JSImport.Default)
object ActionPets extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/picture-in-picture-alt", JSImport.Default)
object ActionPictureInPictureAlt extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/picture-in-picture", JSImport.Default)
object ActionPictureInPicture extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/play-for-work", JSImport.Default)
object ActionPlayForWork extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/polymer", JSImport.Default)
object ActionPolymer extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/power-settings-new", JSImport.Default)
object ActionPowerSettingsNew extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/pregnant-woman", JSImport.Default)
object ActionPregnantWoman extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/print", JSImport.Default)
object ActionPrint extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/query-builder", JSImport.Default)
object ActionQueryBuilder extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/question-answer", JSImport.Default)
object ActionQuestionAnswer extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/receipt", JSImport.Default)
object ActionReceipt extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/record-voice-over", JSImport.Default)
object ActionRecordVoiceOver extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/redeem", JSImport.Default)
object ActionRedeem extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/remove-shopping-cart", JSImport.Default)
object ActionRemoveShoppingCart extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/reorder", JSImport.Default)
object ActionReorder extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/report-problem", JSImport.Default)
object ActionReportProblem extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/restore-page", JSImport.Default)
object ActionRestorePage extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/restore", JSImport.Default)
object ActionRestore extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/room", JSImport.Default)
object ActionRoom extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/rounded-corner", JSImport.Default)
object ActionRoundedCorner extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/rowing", JSImport.Default)
object ActionRowing extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/schedule", JSImport.Default)
object ActionSchedule extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/search", JSImport.Default)
object ActionSearch extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-applications", JSImport.Default)
object ActionSettingsApplications extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-backup-restore", JSImport.Default)
object ActionSettingsBackupRestore extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-bluetooth", JSImport.Default)
object ActionSettingsBluetooth extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-brightness", JSImport.Default)
object ActionSettingsBrightness extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-cell", JSImport.Default)
object ActionSettingsCell extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-ethernet", JSImport.Default)
object ActionSettingsEthernet extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-input-antenna", JSImport.Default)
object ActionSettingsInputAntenna extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-input-component", JSImport.Default)
object ActionSettingsInputComponent extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-input-composite", JSImport.Default)
object ActionSettingsInputComposite extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-input-hdmi", JSImport.Default)
object ActionSettingsInputHdmi extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-input-svideo", JSImport.Default)
object ActionSettingsInputSvideo extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-overscan", JSImport.Default)
object ActionSettingsOverscan extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-phone", JSImport.Default)
object ActionSettingsPhone extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-power", JSImport.Default)
object ActionSettingsPower extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-remote", JSImport.Default)
object ActionSettingsRemote extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings-voice", JSImport.Default)
object ActionSettingsVoice extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/settings", JSImport.Default)
object ActionSettings extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/shop-two", JSImport.Default)
object ActionShopTwo extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/shop", JSImport.Default)
object ActionShop extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/shopping-basket", JSImport.Default)
object ActionShoppingBasket extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/shopping-cart", JSImport.Default)
object ActionShoppingCart extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/speaker-notes-off", JSImport.Default)
object ActionSpeakerNotesOff extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/speaker-notes", JSImport.Default)
object ActionSpeakerNotes extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/spellcheck", JSImport.Default)
object ActionSpellcheck extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/stars", JSImport.Default)
object ActionStars extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/store", JSImport.Default)
object ActionStore extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/subject", JSImport.Default)
object ActionSubject extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/supervisor-account", JSImport.Default)
object ActionSupervisorAccount extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/swap-horiz", JSImport.Default)
object ActionSwapHoriz extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/swap-vert", JSImport.Default)
object ActionSwapVert extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/swap-vertical-circle", JSImport.Default)
object ActionSwapVerticalCircle extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/system-update-alt", JSImport.Default)
object ActionSystemUpdateAlt extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/tab-unselected", JSImport.Default)
object ActionTabUnselected extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/tab", JSImport.Default)
object ActionTab extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/theaters", JSImport.Default)
object ActionTheaters extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/three-d-rotation", JSImport.Default)
object ActionThreeDRotation extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/thumb-down", JSImport.Default)
object ActionThumbDown extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/thumb-up", JSImport.Default)
object ActionThumbUp extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/thumbs-up-down", JSImport.Default)
object ActionThumbsUpDown extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/timeline", JSImport.Default)
object ActionTimeline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/toc", JSImport.Default)
object ActionToc extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/today", JSImport.Default)
object ActionToday extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/toll", JSImport.Default)
object ActionToll extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/touch-app", JSImport.Default)
object ActionTouchApp extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/track-changes", JSImport.Default)
object ActionTrackChanges extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/translate", JSImport.Default)
object ActionTranslate extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/trending-down", JSImport.Default)
object ActionTrendingDown extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/trending-flat", JSImport.Default)
object ActionTrendingFlat extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/trending-up", JSImport.Default)
object ActionTrendingUp extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/turned-in-not", JSImport.Default)
object ActionTurnedInNot extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/turned-in", JSImport.Default)
object ActionTurnedIn extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/update", JSImport.Default)
object ActionUpdate extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/verified-user", JSImport.Default)
object ActionVerifiedUser extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/view-agenda", JSImport.Default)
object ActionViewAgenda extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/view-array", JSImport.Default)
object ActionViewArray extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/view-carousel", JSImport.Default)
object ActionViewCarousel extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/view-column", JSImport.Default)
object ActionViewColumn extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/view-day", JSImport.Default)
object ActionViewDay extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/view-headline", JSImport.Default)
object ActionViewHeadline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/view-list", JSImport.Default)
object ActionViewList extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/view-module", JSImport.Default)
object ActionViewModule extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/view-quilt", JSImport.Default)
object ActionViewQuilt extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/view-stream", JSImport.Default)
object ActionViewStream extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/view-week", JSImport.Default)
object ActionViewWeek extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/visibility-off", JSImport.Default)
object ActionVisibilityOff extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/visibility", JSImport.Default)
object ActionVisibility extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/watch-later", JSImport.Default)
object ActionWatchLater extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/work", JSImport.Default)
object ActionWork extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/youtube-searched-for", JSImport.Default)
object ActionYoutubeSearchedFor extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/zoom-in", JSImport.Default)
object ActionZoomIn extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/action/zoom-out", JSImport.Default)
object ActionZoomOut extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/alert/add-alert", JSImport.Default)
object AlertAddAlert extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/alert/error-outline", JSImport.Default)
object AlertErrorOutline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/alert/error", JSImport.Default)
object AlertError extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/alert/warning", JSImport.Default)
object AlertWarning extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/add-to-queue", JSImport.Default)
object AvAddToQueue extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/airplay", JSImport.Default)
object AvAirplay extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/album", JSImport.Default)
object AvAlbum extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/art-track", JSImport.Default)
object AvArtTrack extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/av-timer", JSImport.Default)
object AvAvTimer extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/branding-watermark", JSImport.Default)
object AvBrandingWatermark extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/call-to-action", JSImport.Default)
object AvCallToAction extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/closed-caption", JSImport.Default)
object AvClosedCaption extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/equalizer", JSImport.Default)
object AvEqualizer extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/explicit", JSImport.Default)
object AvExplicit extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/fast-forward", JSImport.Default)
object AvFastForward extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/fast-rewind", JSImport.Default)
object AvFastRewind extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/featured-play-list", JSImport.Default)
object AvFeaturedPlayList extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/featured-video", JSImport.Default)
object AvFeaturedVideo extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/fiber-dvr", JSImport.Default)
object AvFiberDvr extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/fiber-manual-record", JSImport.Default)
object AvFiberManualRecord extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/fiber-new", JSImport.Default)
object AvFiberNew extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/fiber-pin", JSImport.Default)
object AvFiberPin extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/fiber-smart-record", JSImport.Default)
object AvFiberSmartRecord extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/forward-10", JSImport.Default)
object AvForward10 extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/forward-30", JSImport.Default)
object AvForward30 extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/forward-5", JSImport.Default)
object AvForward5 extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/games", JSImport.Default)
object AvGames extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/hd", JSImport.Default)
object AvHd extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/hearing", JSImport.Default)
object AvHearing extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/high-quality", JSImport.Default)
object AvHighQuality extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/library-add", JSImport.Default)
object AvLibraryAdd extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/library-books", JSImport.Default)
object AvLibraryBooks extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/library-music", JSImport.Default)
object AvLibraryMusic extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/loop", JSImport.Default)
object AvLoop extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/mic-none", JSImport.Default)
object AvMicNone extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/mic-off", JSImport.Default)
object AvMicOff extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/mic", JSImport.Default)
object AvMic extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/movie", JSImport.Default)
object AvMovie extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/music-video", JSImport.Default)
object AvMusicVideo extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/new-releases", JSImport.Default)
object AvNewReleases extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/not-interested", JSImport.Default)
object AvNotInterested extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/note", JSImport.Default)
object AvNote extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/pause-circle-filled", JSImport.Default)
object AvPauseCircleFilled extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/pause-circle-outline", JSImport.Default)
object AvPauseCircleOutline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/pause", JSImport.Default)
object AvPause extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/play-arrow", JSImport.Default)
object AvPlayArrow extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/play-circle-filled", JSImport.Default)
object AvPlayCircleFilled extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/play-circle-outline", JSImport.Default)
object AvPlayCircleOutline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/playlist-add-check", JSImport.Default)
object AvPlaylistAddCheck extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/playlist-add", JSImport.Default)
object AvPlaylistAdd extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/playlist-play", JSImport.Default)
object AvPlaylistPlay extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/queue-music", JSImport.Default)
object AvQueueMusic extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/queue-play-next", JSImport.Default)
object AvQueuePlayNext extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/queue", JSImport.Default)
object AvQueue extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/radio", JSImport.Default)
object AvRadio extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/recent-actors", JSImport.Default)
object AvRecentActors extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/remove-from-queue", JSImport.Default)
object AvRemoveFromQueue extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/repeat-one", JSImport.Default)
object AvRepeatOne extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/repeat", JSImport.Default)
object AvRepeat extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/replay-10", JSImport.Default)
object AvReplay10 extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/replay-30", JSImport.Default)
object AvReplay30 extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/replay-5", JSImport.Default)
object AvReplay5 extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/replay", JSImport.Default)
object AvReplay extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/shuffle", JSImport.Default)
object AvShuffle extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/skip-next", JSImport.Default)
object AvSkipNext extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/skip-previous", JSImport.Default)
object AvSkipPrevious extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/slow-motion-video", JSImport.Default)
object AvSlowMotionVideo extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/snooze", JSImport.Default)
object AvSnooze extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/sort-by-alpha", JSImport.Default)
object AvSortByAlpha extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/stop", JSImport.Default)
object AvStop extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/subscriptions", JSImport.Default)
object AvSubscriptions extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/subtitles", JSImport.Default)
object AvSubtitles extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/surround-sound", JSImport.Default)
object AvSurroundSound extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/video-call", JSImport.Default)
object AvVideoCall extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/video-label", JSImport.Default)
object AvVideoLabel extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/video-library", JSImport.Default)
object AvVideoLibrary extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/videocam-off", JSImport.Default)
object AvVideocamOff extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/videocam", JSImport.Default)
object AvVideocam extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/volume-down", JSImport.Default)
object AvVolumeDown extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/volume-mute", JSImport.Default)
object AvVolumeMute extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/volume-off", JSImport.Default)
object AvVolumeOff extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/volume-up", JSImport.Default)
object AvVolumeUp extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/web-asset", JSImport.Default)
object AvWebAsset extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/av/web", JSImport.Default)
object AvWeb extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/business", JSImport.Default)
object CommunicationBusiness extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/call-end", JSImport.Default)
object CommunicationCallEnd extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/call-made", JSImport.Default)
object CommunicationCallMade extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/call-merge", JSImport.Default)
object CommunicationCallMerge extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/call-missed-outgoing", JSImport.Default)
object CommunicationCallMissedOutgoing extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/call-missed", JSImport.Default)
object CommunicationCallMissed extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/call-received", JSImport.Default)
object CommunicationCallReceived extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/call-split", JSImport.Default)
object CommunicationCallSplit extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/call", JSImport.Default)
object CommunicationCall extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/chat-bubble-outline", JSImport.Default)
object CommunicationChatBubbleOutline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/chat-bubble", JSImport.Default)
object CommunicationChatBubble extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/chat", JSImport.Default)
object CommunicationChat extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/clear-all", JSImport.Default)
object CommunicationClearAll extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/comment", JSImport.Default)
object CommunicationComment extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/contact-mail", JSImport.Default)
object CommunicationContactMail extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/contact-phone", JSImport.Default)
object CommunicationContactPhone extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/contacts", JSImport.Default)
object CommunicationContacts extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/dialer-sip", JSImport.Default)
object CommunicationDialerSip extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/dialpad", JSImport.Default)
object CommunicationDialpad extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/email", JSImport.Default)
object CommunicationEmail extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/forum", JSImport.Default)
object CommunicationForum extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/import-contacts", JSImport.Default)
object CommunicationImportContacts extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/import-export", JSImport.Default)
object CommunicationImportExport extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/invert-colors-off", JSImport.Default)
object CommunicationInvertColorsOff extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/live-help", JSImport.Default)
object CommunicationLiveHelp extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/location-off", JSImport.Default)
object CommunicationLocationOff extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/location-on", JSImport.Default)
object CommunicationLocationOn extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/mail-outline", JSImport.Default)
object CommunicationMailOutline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/message", JSImport.Default)
object CommunicationMessage extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/no-sim", JSImport.Default)
object CommunicationNoSim extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/phone", JSImport.Default)
object CommunicationPhone extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/phonelink-erase", JSImport.Default)
object CommunicationPhonelinkErase extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/phonelink-lock", JSImport.Default)
object CommunicationPhonelinkLock extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/phonelink-ring", JSImport.Default)
object CommunicationPhonelinkRing extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/phonelink-setup", JSImport.Default)
object CommunicationPhonelinkSetup extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/portable-wifi-off", JSImport.Default)
object CommunicationPortableWifiOff extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/present-to-all", JSImport.Default)
object CommunicationPresentToAll extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/ring-volume", JSImport.Default)
object CommunicationRingVolume extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/rss-feed", JSImport.Default)
object CommunicationRssFeed extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/screen-share", JSImport.Default)
object CommunicationScreenShare extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/speaker-phone", JSImport.Default)
object CommunicationSpeakerPhone extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/stay-current-landscape",
JSImport.Default)
object CommunicationStayCurrentLandscape extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/stay-current-portrait",
JSImport.Default)
object CommunicationStayCurrentPortrait extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/stay-primary-landscape",
JSImport.Default)
object CommunicationStayPrimaryLandscape extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/stay-primary-portrait",
JSImport.Default)
object CommunicationStayPrimaryPortrait extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/stop-screen-share", JSImport.Default)
object CommunicationStopScreenShare extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/swap-calls", JSImport.Default)
object CommunicationSwapCalls extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/textsms", JSImport.Default)
object CommunicationTextsms extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/voicemail", JSImport.Default)
object CommunicationVoicemail extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/communication/vpn-key", JSImport.Default)
object CommunicationVpnKey extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/add-box", JSImport.Default)
object ContentAddBox extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/add-circle-outline", JSImport.Default)
object ContentAddCircleOutline extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/add-circle", JSImport.Default)
object ContentAddCircle extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/add", JSImport.Default)
object ContentAdd extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/archive", JSImport.Default)
object ContentArchive extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/backspace", JSImport.Default)
object ContentBackspace extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/block", JSImport.Default)
object ContentBlock extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/clear", JSImport.Default)
object ContentClear extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/content-copy", JSImport.Default)
object ContentContentCopy extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/content-cut", JSImport.Default)
object ContentContentCut extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/content-paste", JSImport.Default)
object ContentContentPaste extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/create", JSImport.Default)
object ContentCreate extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/delete-sweep", JSImport.Default)
object ContentDeleteSweep extends MuiSvgIcon
@js.native @JSImport("material-ui/svg-icons/content/drafts", JSImport.Default)
object ContentDrafts extends MuiSvgIcon
gitextract_2kkbcz6e/
├── .gitignore
├── .scalafmt.conf
├── .travis.yml
├── LICENSE
├── NOTICE
├── README.md
├── build.sbt
├── core/
│ └── src/
│ └── main/
│ └── scala/
│ └── chandu0101/
│ └── scalajs/
│ └── react/
│ └── components/
│ ├── DefaultSelect.scala
│ ├── GoogleMap.scala
│ ├── Implicits.scala
│ ├── Pager.scala
│ ├── ReactDraggable.scala
│ ├── ReactGeomIcon.scala
│ ├── ReactInfinite.scala
│ ├── ReactListView.scala
│ ├── ReactPopOver.scala
│ ├── ReactSearchBox.scala
│ ├── ReactTable.scala
│ ├── ReactTagsInput.scala
│ ├── ReactTapEventPlugin.scala
│ ├── ReactTreeView.scala
│ ├── Spinner.scala
│ ├── elementalui/
│ │ ├── Eui.scala
│ │ └── types.scala
│ ├── fascades/
│ │ └── GoogleMapFascade.scala
│ ├── helpers.scala
│ ├── hljs/
│ │ ├── HLJSStatic.scala
│ │ ├── Hljs.scala
│ │ ├── IAutoHighlightResult.scala
│ │ ├── ICompiledMode.scala
│ │ ├── IHighlightResult.scala
│ │ ├── IHighlightResultBase.scala
│ │ ├── IMode.scala
│ │ ├── IModeBase.scala
│ │ └── IOptions.scala
│ ├── materialui/
│ │ ├── Mui.scala
│ │ ├── MuiAutoCompleteFilters.scala
│ │ ├── MuiColors.scala
│ │ ├── MuiStyles.scala
│ │ ├── MuiSvgIcons.scala
│ │ ├── MuiUtil.scala
│ │ ├── package.scala
│ │ ├── raw/
│ │ │ └── TouchTapEvent.scala
│ │ └── types.scala
│ ├── package.scala
│ ├── reactsplitpane/
│ │ └── ReactSplitPane.scala
│ └── semanticui/
│ ├── Sui.scala
│ └── types.scala
├── demo/
│ ├── index.html
│ ├── src/
│ │ └── main/
│ │ └── scala/
│ │ └── demo/
│ │ ├── AppCSS.scala
│ │ ├── CallbackDebug.scala
│ │ ├── ReactApp.scala
│ │ ├── components/
│ │ │ ├── AppHeader.scala
│ │ │ ├── CallbackDebug.scala
│ │ │ ├── CodeExample.scala
│ │ │ ├── CodeHighlight.scala
│ │ │ ├── ComponentCredits.scala
│ │ │ ├── ComponentGridItem.scala
│ │ │ ├── GithubUser.scala
│ │ │ ├── Images.scala
│ │ │ ├── InfoTemplate.scala
│ │ │ ├── LeftNav.scala
│ │ │ ├── LeftNavPage.scala
│ │ │ ├── LocalDemoButton.scala
│ │ │ ├── ReactDraggableDemo.scala
│ │ │ ├── ReactDraggableInfo.scala
│ │ │ ├── ReactGeomIconDemo.scala
│ │ │ ├── ReactGeomIconInfo.scala
│ │ │ ├── ReactInfiniteDemo.scala
│ │ │ ├── ReactInfiniteInfo.scala
│ │ │ ├── ReactListViewDemo.scala
│ │ │ ├── ReactListViewInfo.scala
│ │ │ ├── ReactPopoverDemo.scala
│ │ │ ├── ReactPopoverInfo.scala
│ │ │ ├── ReactTagsInputDemo.scala
│ │ │ ├── ReactTagsInputInfo.scala
│ │ │ ├── ReactTreeViewDemo.scala
│ │ │ ├── ReactTreeViewInfo.scala
│ │ │ ├── RedLink.scala
│ │ │ ├── ScalaCSSTutorial.scala
│ │ │ ├── SpinnerDemo.scala
│ │ │ ├── SpinnerInfo.scala
│ │ │ ├── elementalui/
│ │ │ │ ├── EuiButtonsDemo.scala
│ │ │ │ ├── EuiFormsDemo.scala
│ │ │ │ ├── EuiGlyphsDemo.scala
│ │ │ │ ├── EuiInfo.scala
│ │ │ │ ├── EuiMiscDemo.scala
│ │ │ │ ├── EuiModalDemo.scala
│ │ │ │ └── EuiSpinnerDemo.scala
│ │ │ ├── googlemap/
│ │ │ │ ├── GoogleMapBasic.scala
│ │ │ │ ├── GoogleMapCustomMarkerIcon.scala
│ │ │ │ ├── GoogleMapInfo.scala
│ │ │ │ ├── GoogleMapMarkerInfoWindow.scala
│ │ │ │ ├── GoogleMapMarkers.scala
│ │ │ │ └── MutableGoogleMapMarkers.scala
│ │ │ ├── materialui/
│ │ │ │ ├── MobileTearSheet.scala
│ │ │ │ ├── MuiAppBarDemo.scala
│ │ │ │ ├── MuiAutoCompleteDemo.scala
│ │ │ │ ├── MuiAvatarDemo.scala
│ │ │ │ ├── MuiButtonsDemo.scala
│ │ │ │ ├── MuiDatePickerDemo.scala
│ │ │ │ ├── MuiDialogDemo.scala
│ │ │ │ ├── MuiDrawerDemo.scala
│ │ │ │ ├── MuiDropDownMenuDemo.scala
│ │ │ │ ├── MuiInfo.scala
│ │ │ │ ├── MuiListDemo.scala
│ │ │ │ ├── MuiMenuDemo.scala
│ │ │ │ ├── MuiPaperDemo.scala
│ │ │ │ ├── MuiPopoverDemo.scala
│ │ │ │ ├── MuiProgressDemo.scala
│ │ │ │ ├── MuiSelectFieldDemo.scala
│ │ │ │ ├── MuiSliderDemo.scala
│ │ │ │ ├── MuiSnackBarDemo.scala
│ │ │ │ ├── MuiSvgIconDemo.scala
│ │ │ │ ├── MuiSwitchesDemo.scala
│ │ │ │ ├── MuiTableDemo.scala
│ │ │ │ ├── MuiTabsDemo.scala
│ │ │ │ ├── MuiTextFieldDemo.scala
│ │ │ │ ├── MuiThemeProviderDemo.scala
│ │ │ │ ├── MuiTimePickerDemo.scala
│ │ │ │ └── MuiToolbarDemo.scala
│ │ │ ├── reactsplitpane/
│ │ │ │ ├── ReactSplitPaneInfo.scala
│ │ │ │ ├── ReactSplitPaneSimpleHorizontal.scala
│ │ │ │ ├── ReactSplitPaneSimpleNested.scala
│ │ │ │ └── ReactSplitPaneSimpleVertical.scala
│ │ │ ├── reacttable/
│ │ │ │ ├── ReactTableBasic.scala
│ │ │ │ ├── ReactTableCustomCell.scala
│ │ │ │ ├── ReactTableCustomColumnSize.scala
│ │ │ │ └── ReactTableInfo.scala
│ │ │ └── semanticui/
│ │ │ ├── SuiButtonDemo.scala
│ │ │ ├── SuiContainerDemo.scala
│ │ │ ├── SuiDividerDemo.scala
│ │ │ ├── SuiFlagDemo.scala
│ │ │ ├── SuiGridDemo.scala
│ │ │ ├── SuiHeaderDemo.scala
│ │ │ ├── SuiIconDemo.scala
│ │ │ ├── SuiInfo.scala
│ │ │ ├── SuiInputDemo.scala
│ │ │ └── SuiListDemo.scala
│ │ ├── pages/
│ │ │ ├── EuiPage.scala
│ │ │ ├── GoogleMapPage.scala
│ │ │ ├── HomePage.scala
│ │ │ ├── MuiPage.scala
│ │ │ ├── ReactDraggablePage.scala
│ │ │ ├── ReactGeomIconPage.scala
│ │ │ ├── ReactInfinitePage.scala
│ │ │ ├── ReactListViewPage.scala
│ │ │ ├── ReactPopoverPage.scala
│ │ │ ├── ReactSplitPanePage.scala
│ │ │ ├── ReactTablePage.scala
│ │ │ ├── ReactTagsInputPage.scala
│ │ │ ├── ReactTreeViewPage.scala
│ │ │ ├── SpinnerPage.scala
│ │ │ └── SuiPage.scala
│ │ ├── routes/
│ │ │ ├── AppRouter.scala
│ │ │ ├── EuiRouteModule.scala
│ │ │ ├── GoogleMapRouteModule.scala
│ │ │ ├── LeftRoute.scala
│ │ │ ├── MuiRouteModule.scala
│ │ │ ├── ReactDraggableRouteModule.scala
│ │ │ ├── ReactGeomIcontRouteModule.scala
│ │ │ ├── ReactInfiniteRouteModule.scala
│ │ │ ├── ReactListViewRouteModule.scala
│ │ │ ├── ReactPopoverRouteModule.scala
│ │ │ ├── ReactSplitPaneRouteModule.scala
│ │ │ ├── ReactTableRouteModule.scala
│ │ │ ├── ReactTagsInputRouteModule.scala
│ │ │ ├── ReactTreeViewRouteModule.scala
│ │ │ ├── SpinnerRouteModule.scala
│ │ │ └── SuiRouteModule.scala
│ │ └── util/
│ │ └── SampleData.scala
│ ├── webpack.config.dev.js
│ ├── webpack.config.prod.js
│ ├── webpack.config.shared.js
│ └── webpack.config.test.js
├── doc/
│ ├── CHANGELOG-0.1.md
│ ├── CHANGELOG-1.0.md
│ ├── CHANGELOG_0.2.md
│ ├── CHANGELOG_0.3.md
│ ├── CHANGELOG_0.4.md
│ ├── CHANGELOG_0.5.md
│ ├── CHANGELOG_0.6.md
│ ├── CHANGELOG_0.7.md
│ ├── CHANGELOG_0.8.md
│ ├── CONTRIBUTE.md
│ └── InteropWithThirdParty.md
├── example/
│ ├── .scalafmt.conf
│ ├── .travis.yml
│ ├── LICENSE
│ ├── NOTICE
│ ├── README.md
│ ├── build.sbt
│ ├── index.html
│ ├── project/
│ │ ├── build.properties
│ │ └── plugins.sbt
│ └── src/
│ └── main/
│ └── scala/
│ └── HelloWorldApp.scala
├── gen/
│ └── src/
│ ├── main/
│ │ └── scala/
│ │ └── com/
│ │ └── olvind/
│ │ ├── DomTypes.scala
│ │ ├── OutputFolder.scala
│ │ ├── Runner.scala
│ │ ├── componentParsers.scala
│ │ ├── eui/
│ │ │ ├── EuiLibrary.scala
│ │ │ ├── EuiRunner.scala
│ │ │ ├── EuiTypeMapper.scala
│ │ │ ├── EuiTypeMapperFunction.scala
│ │ │ └── EuiTypeMemberMethodMapper.scala
│ │ ├── libraries.scala
│ │ ├── mui/
│ │ │ ├── MuiLibrary.scala
│ │ │ ├── MuiRunner.scala
│ │ │ ├── MuiTypeMapper.scala
│ │ │ ├── MuiTypeMapperFunction.scala
│ │ │ └── MuiTypeMemberMethodMapper.scala
│ │ ├── package.scala
│ │ ├── printers.scala
│ │ ├── props.scala
│ │ ├── requiresjs/
│ │ │ ├── JsParser.scala
│ │ │ ├── Lazy.scala
│ │ │ ├── Require.scala
│ │ │ ├── ResolvePath.scala
│ │ │ ├── ScanCtx.scala
│ │ │ ├── VisitorComponentMembers.scala
│ │ │ ├── VisitorComponents.scala
│ │ │ ├── VisitorExports.scala
│ │ │ ├── VisitorHelper.scala
│ │ │ ├── VisitorHelperNameStack.scala
│ │ │ ├── VisitorImports.scala
│ │ │ ├── VisitorPropType.scala
│ │ │ └── types.scala
│ │ ├── sui/
│ │ │ ├── SuiLibrary.scala
│ │ │ ├── SuiRunner.scala
│ │ │ ├── SuiTypeMapper.scala
│ │ │ ├── SuiTypeMapperFunction.scala
│ │ │ └── SuiTypeMemberMethodMapper.scala
│ │ └── types.scala
│ └── test/
│ ├── resources/
│ │ └── mui15/
│ │ ├── Paper/
│ │ │ ├── Paper.js
│ │ │ └── index.js
│ │ ├── comps/
│ │ │ ├── Divider.js
│ │ │ └── Drawer.js
│ │ ├── internal/
│ │ │ ├── AutoLockScrolling.js
│ │ │ └── Overlay.js
│ │ ├── styles/
│ │ │ └── transitions.js
│ │ └── utils/
│ │ ├── autoPrefix.js
│ │ └── propTypes.js
│ └── scala/
│ └── com/
│ └── olvind/
│ ├── JsParserTest.scala
│ └── PropCommentTest.scala
├── macros/
│ └── src/
│ ├── main/
│ │ └── scala/
│ │ └── chandu0101/
│ │ └── macros/
│ │ └── tojs/
│ │ ├── GhPagesMacros.scala
│ │ ├── JSMacro.scala
│ │ └── ReactMacroUtils.scala
│ └── test/
│ └── scala/
│ └── chandu0101/
│ └── macros/
│ └── tojs/
│ └── JSMacroTest.scala
└── project/
├── build.properties
└── plugins.sbt
SYMBOL INDEX (30 symbols across 6 files)
FILE: gen/src/test/resources/mui15/Paper/Paper.js
function defineProperties (line 9) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _interopRequireDefault (line 27) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _objectWithoutProperties (line 29) | function _objectWithoutProperties(obj, keys) { var target = {}; for (var...
function _classCallCheck (line 31) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function _possibleConstructorReturn (line 33) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
function _inherits (line 35) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
function getStyles (line 37) | function getStyles(props, context) {
function Paper (line 64) | function Paper() {
FILE: gen/src/test/resources/mui15/Paper/index.js
function _interopRequireDefault (line 12) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
FILE: gen/src/test/resources/mui15/comps/Divider.js
function _interopRequireDefault (line 17) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _objectWithoutProperties (line 19) | function _objectWithoutProperties(obj, keys) { var target = {}; for (var...
FILE: gen/src/test/resources/mui15/comps/Drawer.js
function defineProperties (line 7) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _interopRequireDefault (line 49) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _classCallCheck (line 51) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function _possibleConstructorReturn (line 53) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
function _inherits (line 55) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
function Drawer (line 62) | function Drawer() {
FILE: gen/src/test/resources/mui15/internal/AutoLockScrolling.js
function defineProperties (line 7) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 11) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function _possibleConstructorReturn (line 13) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
function _inherits (line 15) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
function AutoLockScrolling (line 23) | function AutoLockScrolling() {
FILE: gen/src/test/resources/mui15/internal/Overlay.js
function defineProperties (line 9) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _interopRequireDefault (line 27) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _objectWithoutProperties (line 29) | function _objectWithoutProperties(obj, keys) { var target = {}; for (var...
function _classCallCheck (line 31) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function _possibleConstructorReturn (line 33) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
function _inherits (line 35) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
function getStyles (line 37) | function getStyles(props, context) {
function Overlay (line 74) | function Overlay() {
Condensed preview — 250 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (799K chars).
[
{
"path": ".gitignore",
"chars": 568,
"preview": "*.class\n*.log\n\n# sbt specific\n.cache/\n.history/\n.lib/\ndist/*\ntarget/\nlib_managed/\nsrc_managed/\nproject/boot/\nproject/plu"
},
{
"path": ".scalafmt.conf",
"chars": 82,
"preview": "align = true # For pretty alignment.\nmaxColumn = 100 # For my wide 30\" display."
},
{
"path": ".travis.yml",
"chars": 576,
"preview": "language: scala\n\nscala:\n - 2.12.4\njdk:\n - oraclejdk8\n\nsbt_args:\n -no-colors\n -J-Xss2m\n\nenv:\n - NODE_VERSION=\"8.10.0"
},
{
"path": "LICENSE",
"chars": 11325,
"preview": "Apache License\n Version 2.0, January 2004\n http://www.apache.org/licens"
},
{
"path": "NOTICE",
"chars": 24,
"preview": "Copyright 2017 rleibman\n"
},
{
"path": "README.md",
"chars": 2388,
"preview": "scalajs-react-components\n========================\n\n[![Join the chat at https://gitter.im/chandu0101/scalajs-react-compon"
},
{
"path": "build.sbt",
"chars": 10327,
"preview": "// *****************************************************************************\n// Projects\n// ************************"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/DefaultSelect.scala",
"chars": 1324,
"preview": "package chandu0101.scalajs.react.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.component.Sca"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/GoogleMap.scala",
"chars": 3644,
"preview": "package chandu0101.scalajs.react.components\n\nimport chandu0101.scalajs.react.components.fascades._\nimport japgolly.scala"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/Implicits.scala",
"chars": 1267,
"preview": "package chandu0101.scalajs.react.components\n\nimport japgolly.scalajs.react._\n\nimport scala.scalajs.js\n\n// todo: figure o"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/Pager.scala",
"chars": 2035,
"preview": "package chandu0101.scalajs.react.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^."
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/ReactDraggable.scala",
"chars": 12447,
"preview": "package chandu0101.scalajs.react.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.extra.Reusabi"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/ReactGeomIcon.scala",
"chars": 3466,
"preview": "package chandu0101.scalajs.react.components\n\nimport chandu0101.macros.tojs.JSMacro\nimport japgolly.scalajs.react._\n\nimpo"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/ReactInfinite.scala",
"chars": 1462,
"preview": "package chandu0101.scalajs.react.components\n\nimport chandu0101.macros.tojs.JSMacro\nimport japgolly.scalajs.react._\nimpor"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/ReactListView.scala",
"chars": 2803,
"preview": "package chandu0101.scalajs.react.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^."
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/ReactPopOver.scala",
"chars": 7619,
"preview": "package chandu0101.scalajs.react.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^."
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/ReactSearchBox.scala",
"chars": 1360,
"preview": "package chandu0101.scalajs.react.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^."
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/ReactTable.scala",
"chars": 10282,
"preview": "package chandu0101.scalajs.react.components\n\nimport japgolly.scalajs.react.vdom.html_<^._\n\nimport japgolly.scalajs.react"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/ReactTagsInput.scala",
"chars": 2746,
"preview": "package chandu0101.scalajs.react.components\n\nimport chandu0101.macros.tojs.JSMacro\nimport japgolly.scalajs.react._\n\nimpo"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/ReactTapEventPlugin.scala",
"chars": 623,
"preview": "package chandu0101.scalajs.react.components\n\nimport scala.scalajs.js\nimport scala.scalajs.js.annotation.JSImport\nimport "
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/ReactTreeView.scala",
"chars": 6596,
"preview": "package chandu0101.scalajs.react.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^."
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/Spinner.scala",
"chars": 676,
"preview": "package chandu0101.scalajs.react.components\n\nimport chandu0101.macros.tojs.JSMacro\nimport japgolly.scalajs.react._\n\nimpo"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/elementalui/Eui.scala",
"chars": 4470,
"preview": "package chandu0101.scalajs.react.components.elementalui\n\nimport scala.scalajs.js\nimport scala.scalajs.js.annotation.JSIm"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/elementalui/types.scala",
"chars": 15002,
"preview": "package chandu0101.scalajs.react.components.elementalui\n\nimport chandu0101.macros.tojs.JSMacro\n\nimport scala.scalajs.js\n"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/fascades/GoogleMapFascade.scala",
"chars": 3510,
"preview": "package chandu0101.scalajs.react.components\npackage fascades\n\nimport japgolly.scalajs.react.vdom.TopNode\nimport org.scal"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/helpers.scala",
"chars": 1458,
"preview": "package chandu0101.scalajs.react.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^."
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/hljs/HLJSStatic.scala",
"chars": 1411,
"preview": "package chandu0101.scalajs.react.components.hljs\n\nimport scala.scalajs.js\n\n@js.native\ntrait HLJSStatic extends js.Object"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/hljs/Hljs.scala",
"chars": 4130,
"preview": "package chandu0101.scalajs.react.components.hljs\n\nimport org.scalajs.dom.Node\n\nimport scala.scalajs.js\nimport scala.scal"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/hljs/IAutoHighlightResult.scala",
"chars": 210,
"preview": "package chandu0101.scalajs.react.components.hljs\n\nimport scala.scalajs.js\n\n@js.native\ntrait IAutoHighlightResult extends"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/hljs/ICompiledMode.scala",
"chars": 479,
"preview": "package chandu0101.scalajs.react.components.hljs\n\nimport scala.scalajs.js\nimport scala.scalajs.js.RegExp\n\n@js.native\ntra"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/hljs/IHighlightResult.scala",
"chars": 179,
"preview": "package chandu0101.scalajs.react.components.hljs\n\nimport scala.scalajs.js\n\n@js.native\ntrait IHighlightResult extends IHi"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/hljs/IHighlightResultBase.scala",
"chars": 243,
"preview": "package chandu0101.scalajs.react.components.hljs\n\nimport scala.scalajs.js\n\n@js.native\ntrait IHighlightResultBase extends"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/hljs/IMode.scala",
"chars": 232,
"preview": "package chandu0101.scalajs.react.components.hljs\n\nimport scala.scalajs.js\n\n@js.native\ntrait IMode extends IModeBase {\n "
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/hljs/IModeBase.scala",
"chars": 1170,
"preview": "package chandu0101.scalajs.react.components.hljs\n\nimport scala.scalajs.js\nimport scala.scalajs.js.{RegExp, `|`}\n\n@js.nat"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/hljs/IOptions.scala",
"chars": 355,
"preview": "package chandu0101.scalajs.react.components.hljs\n\nimport scala.scalajs.js\n\n@js.native\ntrait IOptions extends js.Object {"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/materialui/Mui.scala",
"chars": 7288,
"preview": "package chandu0101.scalajs.react.components.materialui\n\nimport scala.scalajs.js\nimport scala.scalajs.js.annotation._\n\nob"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/materialui/MuiAutoCompleteFilters.scala",
"chars": 696,
"preview": "package chandu0101.scalajs.react.components.materialui\n\nimport scala.scalajs.js\nimport scala.scalajs.js.annotation.JSImp"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/materialui/MuiColors.scala",
"chars": 11525,
"preview": "package chandu0101.scalajs.react.components.materialui\n\nimport scala.scalajs.js\n\n@js.native\ntrait MuiColors extends js.O"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/materialui/MuiStyles.scala",
"chars": 7492,
"preview": "package chandu0101.scalajs.react.components.materialui\n\nimport japgolly.scalajs.react._\n\nimport scala.scalajs.js\n\n@js.na"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/materialui/MuiSvgIcons.scala",
"chars": 129617,
"preview": "package chandu0101.scalajs.react.components\npackage materialui\n\nimport japgolly.scalajs.react.component.Js.{RawMounted, "
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/materialui/MuiUtil.scala",
"chars": 1054,
"preview": "package chandu0101.scalajs.react.components.materialui\n\nimport scala.scalajs.js\n\n@js.native\ntrait MuiUtil extends js.Obj"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/materialui/package.scala",
"chars": 572,
"preview": "package chandu0101.scalajs.react.components\n\npackage object materialui {\n type RowId = Int\n type ColumnId = Int\n\n "
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/materialui/raw/TouchTapEvent.scala",
"chars": 394,
"preview": "package chandu0101.scalajs.react.components.materialui.raw\n\nimport japgolly.scalajs.react.ReactEventFrom\nimport org.scal"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/materialui/types.scala",
"chars": 2470,
"preview": "package chandu0101.scalajs.react.components.materialui\n\nimport chandu0101.macros.tojs.JSMacro\n\nimport scala.scalajs.js\n\n"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/package.scala",
"chars": 119,
"preview": "package chandu0101.scalajs.react\n\nimport scala.scalajs.js\n\npackage object components {\n type CssProperties = js.Any\n}\n"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/reactsplitpane/ReactSplitPane.scala",
"chars": 3551,
"preview": "package chandu0101.scalajs.react.components.reactsplitpane\n\nimport chandu0101.macros.tojs.JSMacro\nimport japgolly.scalaj"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/semanticui/Sui.scala",
"chars": 21017,
"preview": "package chandu0101.scalajs.react.components\npackage semanticui\nimport scala.scalajs.js\nimport scala.scalajs.js.annotatio"
},
{
"path": "core/src/main/scala/chandu0101/scalajs/react/components/semanticui/types.scala",
"chars": 392,
"preview": "package chandu0101.scalajs.react.components.semanticui\n\ncase class ButtonAnimatedType private (value: String) extends An"
},
{
"path": "demo/index.html",
"chars": 3220,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>scalajs-react components demo</title>\n<style>\nhtml {\n\tfont-f"
},
{
"path": "demo/src/main/scala/demo/AppCSS.scala",
"chars": 1177,
"preview": "package demo\n\nimport chandu0101.scalajs.react.components.reactsplitpane.ReactSplitPane\nimport chandu0101.scalajs.react.c"
},
{
"path": "demo/src/main/scala/demo/CallbackDebug.scala",
"chars": 2166,
"preview": "package demo\n\nimport japgolly.scalajs.react._\n\nimport scala.scalajs.js\n\nobject CallbackDebug {\n trait Print[T] {\n de"
},
{
"path": "demo/src/main/scala/demo/ReactApp.scala",
"chars": 923,
"preview": "package demo\n\nimport chandu0101.scalajs.react.components.ReactTapEventPlugin\nimport chandu0101.scalajs.react.components."
},
{
"path": "demo/src/main/scala/demo/components/AppHeader.scala",
"chars": 2216,
"preview": "package demo\npackage components\n\nimport chandu0101.scalajs.react.components._\nimport japgolly.scalajs.react._\nimport jap"
},
{
"path": "demo/src/main/scala/demo/components/CallbackDebug.scala",
"chars": 2561,
"preview": "package demo.components\n\nimport japgolly.scalajs.react._\n\nimport scala.scalajs.js\n\nobject CallbackDebug {\n trait Print["
},
{
"path": "demo/src/main/scala/demo/components/CodeExample.scala",
"chars": 1289,
"preview": "package demo\npackage components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^._\n\nobject Co"
},
{
"path": "demo/src/main/scala/demo/components/CodeHighlight.scala",
"chars": 763,
"preview": "package demo\npackage components\n\nimport chandu0101.scalajs.react.components.hljs.Hljs\nimport japgolly.scalajs.react._\nim"
},
{
"path": "demo/src/main/scala/demo/components/ComponentCredits.scala",
"chars": 2293,
"preview": "package demo\npackage components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^._\nimport org"
},
{
"path": "demo/src/main/scala/demo/components/ComponentGridItem.scala",
"chars": 2142,
"preview": "package demo\npackage components\n\nimport demo.routes.AppRouter._\nimport japgolly.scalajs.react._\nimport japgolly.scalajs."
},
{
"path": "demo/src/main/scala/demo/components/GithubUser.scala",
"chars": 1532,
"preview": "package demo\npackage components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^._\n\ncase clas"
},
{
"path": "demo/src/main/scala/demo/components/Images.scala",
"chars": 1668,
"preview": "package demo.components\n\nimport scala.scalajs.js\nimport scala.scalajs.js.annotation.JSImport\n\nobject Images {\n\n @js.nat"
},
{
"path": "demo/src/main/scala/demo/components/InfoTemplate.scala",
"chars": 1671,
"preview": "package demo\npackage components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^._\n\nimport sc"
},
{
"path": "demo/src/main/scala/demo/components/LeftNav.scala",
"chars": 1784,
"preview": "package demo\npackage components\n\nimport demo.routes.LeftRoute\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.re"
},
{
"path": "demo/src/main/scala/demo/components/LeftNavPage.scala",
"chars": 1254,
"preview": "package demo\npackage components\n\nimport demo.routes.LeftRoute\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.re"
},
{
"path": "demo/src/main/scala/demo/components/LocalDemoButton.scala",
"chars": 2588,
"preview": "package demo.components\n\nimport chandu0101.scalajs.react.components._\nimport japgolly.scalajs.react._\nimport japgolly.sc"
},
{
"path": "demo/src/main/scala/demo/components/ReactDraggableDemo.scala",
"chars": 1109,
"preview": "package demo.components\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.components.{RElemen"
},
{
"path": "demo/src/main/scala/demo/components/ReactDraggableInfo.scala",
"chars": 640,
"preview": "package demo.components\n\nimport japgolly.scalajs.react.ScalaComponent\nimport japgolly.scalajs.react.vdom.html_<^._\n\nobje"
},
{
"path": "demo/src/main/scala/demo/components/ReactGeomIconDemo.scala",
"chars": 1223,
"preview": "package demo.components\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.components.{IconNam"
},
{
"path": "demo/src/main/scala/demo/components/ReactGeomIconInfo.scala",
"chars": 1078,
"preview": "package demo.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^._\n\nimport scalacss.P"
},
{
"path": "demo/src/main/scala/demo/components/ReactInfiniteDemo.scala",
"chars": 1784,
"preview": "package demo.components\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.components.ReactInf"
},
{
"path": "demo/src/main/scala/demo/components/ReactInfiniteInfo.scala",
"chars": 1079,
"preview": "package demo.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^._\n\nimport scalacss.P"
},
{
"path": "demo/src/main/scala/demo/components/ReactListViewDemo.scala",
"chars": 1571,
"preview": "package demo.components\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.components.ReactLis"
},
{
"path": "demo/src/main/scala/demo/components/ReactListViewInfo.scala",
"chars": 456,
"preview": "package demo.components\n\nimport japgolly.scalajs.react.ScalaComponent\nimport japgolly.scalajs.react.vdom.html_<^._\n\nobje"
},
{
"path": "demo/src/main/scala/demo/components/ReactPopoverDemo.scala",
"chars": 2361,
"preview": "package demo.components\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.components.ReactPop"
},
{
"path": "demo/src/main/scala/demo/components/ReactPopoverInfo.scala",
"chars": 595,
"preview": "package demo.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^._\n\nobject ReactPopov"
},
{
"path": "demo/src/main/scala/demo/components/ReactTagsInputDemo.scala",
"chars": 1197,
"preview": "package demo.components\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.components.{ReactTa"
},
{
"path": "demo/src/main/scala/demo/components/ReactTagsInputInfo.scala",
"chars": 1072,
"preview": "package demo.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^._\n\nimport scalacss.P"
},
{
"path": "demo/src/main/scala/demo/components/ReactTreeViewDemo.scala",
"chars": 1774,
"preview": "package demo.components\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.components.{ReactTr"
},
{
"path": "demo/src/main/scala/demo/components/ReactTreeViewInfo.scala",
"chars": 456,
"preview": "package demo.components\n\nimport japgolly.scalajs.react.ScalaComponent\nimport japgolly.scalajs.react.vdom.html_<^._\n\nobje"
},
{
"path": "demo/src/main/scala/demo/components/RedLink.scala",
"chars": 614,
"preview": "package demo\npackage components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^._\n\nobject Re"
},
{
"path": "demo/src/main/scala/demo/components/ScalaCSSTutorial.scala",
"chars": 2513,
"preview": "package demo\npackage components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^._\n\nimport sc"
},
{
"path": "demo/src/main/scala/demo/components/SpinnerDemo.scala",
"chars": 651,
"preview": "package demo.components\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.components.Spinner\n"
},
{
"path": "demo/src/main/scala/demo/components/SpinnerInfo.scala",
"chars": 1005,
"preview": "package demo.components\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^._\n\nimport scalacss.P"
},
{
"path": "demo/src/main/scala/demo/components/elementalui/EuiButtonsDemo.scala",
"chars": 3363,
"preview": "package demo\npackage components\npackage elementalui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scala"
},
{
"path": "demo/src/main/scala/demo/components/elementalui/EuiFormsDemo.scala",
"chars": 15296,
"preview": "package demo.components.elementalui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.compone"
},
{
"path": "demo/src/main/scala/demo/components/elementalui/EuiGlyphsDemo.scala",
"chars": 2939,
"preview": "package demo.components.elementalui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.compone"
},
{
"path": "demo/src/main/scala/demo/components/elementalui/EuiInfo.scala",
"chars": 1360,
"preview": "package demo\npackage components\npackage elementalui\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom."
},
{
"path": "demo/src/main/scala/demo/components/elementalui/EuiMiscDemo.scala",
"chars": 6589,
"preview": "package demo.components.elementalui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.compone"
},
{
"path": "demo/src/main/scala/demo/components/elementalui/EuiModalDemo.scala",
"chars": 7288,
"preview": "package demo.components.elementalui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.compone"
},
{
"path": "demo/src/main/scala/demo/components/elementalui/EuiSpinnerDemo.scala",
"chars": 1339,
"preview": "package demo.components.elementalui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.compone"
},
{
"path": "demo/src/main/scala/demo/components/googlemap/GoogleMapBasic.scala",
"chars": 792,
"preview": "package demo\npackage components\npackage googlemap\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs"
},
{
"path": "demo/src/main/scala/demo/components/googlemap/GoogleMapCustomMarkerIcon.scala",
"chars": 1966,
"preview": "package demo\npackage components\npackage googlemap\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs"
},
{
"path": "demo/src/main/scala/demo/components/googlemap/GoogleMapInfo.scala",
"chars": 568,
"preview": "package demo\npackage components\npackage googlemap\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.ht"
},
{
"path": "demo/src/main/scala/demo/components/googlemap/GoogleMapMarkerInfoWindow.scala",
"chars": 1488,
"preview": "package demo\npackage components\npackage googlemap\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs"
},
{
"path": "demo/src/main/scala/demo/components/googlemap/GoogleMapMarkers.scala",
"chars": 1585,
"preview": "package demo\npackage components\npackage googlemap\n\nimport chandu0101.scalajs.react.components.GoogleMap\nimport chandu010"
},
{
"path": "demo/src/main/scala/demo/components/googlemap/MutableGoogleMapMarkers.scala",
"chars": 1799,
"preview": "package demo.components\npackage googlemap\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.c"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MobileTearSheet.scala",
"chars": 1164,
"preview": "package demo\npackage components\npackage materialui\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom._"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiAppBarDemo.scala",
"chars": 920,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiAutoCompleteDemo.scala",
"chars": 2974,
"preview": "package demo.components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react."
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiAvatarDemo.scala",
"chars": 1146,
"preview": "package demo.components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react."
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiButtonsDemo.scala",
"chars": 3467,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiDatePickerDemo.scala",
"chars": 1084,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiDialogDemo.scala",
"chars": 1883,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiDrawerDemo.scala",
"chars": 3373,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiDropDownMenuDemo.scala",
"chars": 1574,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiInfo.scala",
"chars": 1386,
"preview": "package demo\npackage components\npackage materialui\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.h"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiListDemo.scala",
"chars": 2525,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiMenuDemo.scala",
"chars": 2733,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiPaperDemo.scala",
"chars": 2080,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiPopoverDemo.scala",
"chars": 3584,
"preview": "package demo.components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react."
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiProgressDemo.scala",
"chars": 994,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiSelectFieldDemo.scala",
"chars": 1849,
"preview": "package demo.components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react."
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiSliderDemo.scala",
"chars": 899,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiSnackBarDemo.scala",
"chars": 1513,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiSvgIconDemo.scala",
"chars": 4978,
"preview": "package demo.components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react."
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiSwitchesDemo.scala",
"chars": 3296,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiTableDemo.scala",
"chars": 5530,
"preview": "package demo.components.materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.componen"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiTabsDemo.scala",
"chars": 1403,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiTextFieldDemo.scala",
"chars": 1528,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiThemeProviderDemo.scala",
"chars": 3080,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiTimePickerDemo.scala",
"chars": 773,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/materialui/MuiToolbarDemo.scala",
"chars": 977,
"preview": "package demo\npackage components\npackage materialui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/reactsplitpane/ReactSplitPaneInfo.scala",
"chars": 572,
"preview": "package demo.components.reactsplitpane\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.html_<^._\n\nob"
},
{
"path": "demo/src/main/scala/demo/components/reactsplitpane/ReactSplitPaneSimpleHorizontal.scala",
"chars": 1002,
"preview": "package demo.components.reactsplitpane\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.comp"
},
{
"path": "demo/src/main/scala/demo/components/reactsplitpane/ReactSplitPaneSimpleNested.scala",
"chars": 1082,
"preview": "package demo.components.reactsplitpane\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.comp"
},
{
"path": "demo/src/main/scala/demo/components/reactsplitpane/ReactSplitPaneSimpleVertical.scala",
"chars": 952,
"preview": "package demo.components.reactsplitpane\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.comp"
},
{
"path": "demo/src/main/scala/demo/components/reacttable/ReactTableBasic.scala",
"chars": 1252,
"preview": "package demo\npackage components\npackage reacttable\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/reacttable/ReactTableCustomCell.scala",
"chars": 1587,
"preview": "package demo\npackage components\npackage reacttable\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/reacttable/ReactTableCustomColumnSize.scala",
"chars": 1207,
"preview": "package demo\npackage components\npackage reacttable\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalaj"
},
{
"path": "demo/src/main/scala/demo/components/reacttable/ReactTableInfo.scala",
"chars": 1017,
"preview": "package demo\npackage components\npackage reacttable\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport japgolly.scalajs."
},
{
"path": "demo/src/main/scala/demo/components/semanticui/SuiButtonDemo.scala",
"chars": 899,
"preview": "package demo.components.semanticui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.componen"
},
{
"path": "demo/src/main/scala/demo/components/semanticui/SuiContainerDemo.scala",
"chars": 1613,
"preview": "package demo.components.semanticui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.componen"
},
{
"path": "demo/src/main/scala/demo/components/semanticui/SuiDividerDemo.scala",
"chars": 808,
"preview": "package demo.components.semanticui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.componen"
},
{
"path": "demo/src/main/scala/demo/components/semanticui/SuiFlagDemo.scala",
"chars": 921,
"preview": "package demo.components.semanticui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.componen"
},
{
"path": "demo/src/main/scala/demo/components/semanticui/SuiGridDemo.scala",
"chars": 813,
"preview": "package demo.components.semanticui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.componen"
},
{
"path": "demo/src/main/scala/demo/components/semanticui/SuiHeaderDemo.scala",
"chars": 930,
"preview": "package demo.components.semanticui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.componen"
},
{
"path": "demo/src/main/scala/demo/components/semanticui/SuiIconDemo.scala",
"chars": 1446,
"preview": "package demo.components.semanticui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.componen"
},
{
"path": "demo/src/main/scala/demo/components/semanticui/SuiInfo.scala",
"chars": 876,
"preview": "package demo\npackage components\npackage semanticui\n\nimport japgolly.scalajs.react._\nimport japgolly.scalajs.react.vdom.h"
},
{
"path": "demo/src/main/scala/demo/components/semanticui/SuiInputDemo.scala",
"chars": 1129,
"preview": "package demo.components.semanticui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.componen"
},
{
"path": "demo/src/main/scala/demo/components/semanticui/SuiListDemo.scala",
"chars": 1358,
"preview": "package demo.components.semanticui\n\nimport chandu0101.macros.tojs.GhPagesMacros\nimport chandu0101.scalajs.react.componen"
},
{
"path": "demo/src/main/scala/demo/pages/EuiPage.scala",
"chars": 702,
"preview": "package demo\npackage pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{EuiRouteModule, LeftRoute}\nimport jap"
},
{
"path": "demo/src/main/scala/demo/pages/GoogleMapPage.scala",
"chars": 682,
"preview": "package demo\npackage pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{GoogleMapRouteModule, LeftRoute}\nimpo"
},
{
"path": "demo/src/main/scala/demo/pages/HomePage.scala",
"chars": 3530,
"preview": "package demo\npackage pages\n\nimport chandu0101.scalajs.react.components._\nimport demo.components.{ComponentGridItem, Loca"
},
{
"path": "demo/src/main/scala/demo/pages/MuiPage.scala",
"chars": 801,
"preview": "package demo\npackage pages\n\nimport chandu0101.scalajs.react.components.materialui._\nimport demo.components.LeftNavPage\ni"
},
{
"path": "demo/src/main/scala/demo/pages/ReactDraggablePage.scala",
"chars": 799,
"preview": "package demo\npackage pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{LeftRoute, ReactDraggableRouteModule}"
},
{
"path": "demo/src/main/scala/demo/pages/ReactGeomIconPage.scala",
"chars": 760,
"preview": "package demo\npackage pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{LeftRoute, ReactGeomIcontRouteModule}"
},
{
"path": "demo/src/main/scala/demo/pages/ReactInfinitePage.scala",
"chars": 758,
"preview": "package demo\npackage pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{LeftRoute, ReactInfiniteRouteModule}\n"
},
{
"path": "demo/src/main/scala/demo/pages/ReactListViewPage.scala",
"chars": 690,
"preview": "package demo\npackage pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{LeftRoute, ReactListViewRouteModule}\n"
},
{
"path": "demo/src/main/scala/demo/pages/ReactPopoverPage.scala",
"chars": 694,
"preview": "package demo\npackage pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{LeftRoute, ReactPopoverRouteModule}\ni"
},
{
"path": "demo/src/main/scala/demo/pages/ReactSplitPanePage.scala",
"chars": 736,
"preview": "package demo.pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{LeftRoute, ReactSplitPaneRouteModule}\nimport "
},
{
"path": "demo/src/main/scala/demo/pages/ReactTablePage.scala",
"chars": 678,
"preview": "package demo\npackage pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{LeftRoute, ReactTableRouteModule}\nimp"
},
{
"path": "demo/src/main/scala/demo/pages/ReactTagsInputPage.scala",
"chars": 712,
"preview": "package demo\npackage pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{LeftRoute, ReactTagsInputRouteModule}"
},
{
"path": "demo/src/main/scala/demo/pages/ReactTreeViewPage.scala",
"chars": 684,
"preview": "package demo\npackage pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{LeftRoute, ReactTreeViewRouteModule}\n"
},
{
"path": "demo/src/main/scala/demo/pages/SpinnerPage.scala",
"chars": 676,
"preview": "package demo\npackage pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{LeftRoute, SpinnerRouteModule}\nimport"
},
{
"path": "demo/src/main/scala/demo/pages/SuiPage.scala",
"chars": 642,
"preview": "package demo.pages\n\nimport demo.components.LeftNavPage\nimport demo.routes.{LeftRoute, SuiRouteModule}\nimport japgolly.sc"
},
{
"path": "demo/src/main/scala/demo/routes/AppRouter.scala",
"chars": 7839,
"preview": "package demo\npackage routes\n\nimport demo.components._\nimport demo.pages._\nimport japgolly.scalajs.react.extra.router._\ni"
},
{
"path": "demo/src/main/scala/demo/routes/EuiRouteModule.scala",
"chars": 1072,
"preview": "package demo.routes\n\nimport demo.components.elementalui._\nimport demo.pages.EuiPage\nimport japgolly.scalajs.react.extra."
},
{
"path": "demo/src/main/scala/demo/routes/GoogleMapRouteModule.scala",
"chars": 1154,
"preview": "package demo\npackage routes\n\nimport demo.components.googlemap._\nimport demo.pages.GoogleMapPage\nimport japgolly.scalajs."
},
{
"path": "demo/src/main/scala/demo/routes/LeftRoute.scala",
"chars": 169,
"preview": "package demo\npackage routes\n\nimport japgolly.scalajs.react.vdom.VdomElement\n\nabstract class LeftRoute(val name: String, "
},
{
"path": "demo/src/main/scala/demo/routes/MuiRouteModule.scala",
"chars": 3020,
"preview": "package demo\npackage routes\n\nimport demo.components.materialui._\nimport demo.pages.MuiPage\nimport japgolly.scalajs.react"
},
{
"path": "demo/src/main/scala/demo/routes/ReactDraggableRouteModule.scala",
"chars": 682,
"preview": "package demo\npackage routes\n\nimport demo.components.{ReactDraggableDemo, ReactDraggableInfo}\nimport demo.pages.ReactDrag"
},
{
"path": "demo/src/main/scala/demo/routes/ReactGeomIcontRouteModule.scala",
"chars": 661,
"preview": "package demo\npackage routes\n\nimport demo.components.{ReactGeomIconDemo, ReactGeomIconInfo}\nimport demo.pages.ReactGeomIc"
},
{
"path": "demo/src/main/scala/demo/routes/ReactInfiniteRouteModule.scala",
"chars": 660,
"preview": "package demo\npackage routes\n\nimport demo.components.{ReactInfiniteDemo, ReactInfiniteInfo}\nimport demo.pages.ReactInfini"
},
{
"path": "demo/src/main/scala/demo/routes/ReactListViewRouteModule.scala",
"chars": 660,
"preview": "package demo\npackage routes\n\nimport demo.components.{ReactListViewDemo, ReactListViewInfo}\nimport demo.pages.ReactListVi"
},
{
"path": "demo/src/main/scala/demo/routes/ReactPopoverRouteModule.scala",
"chars": 653,
"preview": "package demo\npackage routes\n\nimport demo.components.{ReactPopoverDemo, ReactPopoverInfo}\nimport demo.pages.ReactPopoverP"
},
{
"path": "demo/src/main/scala/demo/routes/ReactSplitPaneRouteModule.scala",
"chars": 1030,
"preview": "package demo.routes\n\nimport demo.components.reactsplitpane._\nimport demo.pages.ReactSplitPanePage\nimport japgolly.scalaj"
},
{
"path": "demo/src/main/scala/demo/routes/ReactTableRouteModule.scala",
"chars": 900,
"preview": "package demo\npackage routes\n\nimport demo.components.reacttable._\nimport demo.pages.ReactTablePage\nimport japgolly.scalaj"
},
{
"path": "demo/src/main/scala/demo/routes/ReactTagsInputRouteModule.scala",
"chars": 667,
"preview": "package demo\npackage routes\n\nimport demo.components.{ReactTagsInputDemo, ReactTagsInputInfo}\nimport demo.pages.ReactTags"
},
{
"path": "demo/src/main/scala/demo/routes/ReactTreeViewRouteModule.scala",
"chars": 661,
"preview": "package demo\npackage routes\n\nimport demo.components.{ReactTreeViewDemo, ReactTreeViewInfo}\nimport demo.pages.ReactTreeVi"
},
{
"path": "demo/src/main/scala/demo/routes/SpinnerRouteModule.scala",
"chars": 618,
"preview": "package demo\npackage routes\n\nimport demo.components.{SpinnerDemo, SpinnerInfo}\nimport demo.pages.SpinnerPage\nimport japg"
},
{
"path": "demo/src/main/scala/demo/routes/SuiRouteModule.scala",
"chars": 1355,
"preview": "package demo.routes\n\nimport demo.components.semanticui._\nimport demo.pages.SuiPage\nimport japgolly.scalajs.react.extra.r"
},
{
"path": "demo/src/main/scala/demo/util/SampleData.scala",
"chars": 29649,
"preview": "package demo\npackage util\n\ncase class Person(_id: Int = 0,\n age: Int = 0,\n fname: Stri"
},
{
"path": "demo/webpack.config.dev.js",
"chars": 352,
"preview": "'use strict';\n\nvar webpack = require('webpack');\nvar _ = require('lodash');\n\nmodule.exports = _.merge(\n require('./sc"
},
{
"path": "demo/webpack.config.prod.js",
"chars": 962,
"preview": "'use strict';\n\nvar webpack = require('webpack');\nvar _ = require('lodash');\n\nmodule.exports = _.merge(\n require('./sc"
},
{
"path": "demo/webpack.config.shared.js",
"chars": 489,
"preview": "'use strict';\n\nvar webpack = require('webpack');\n\nmodule.exports = {\n plugins: [\n new webpack.NoEmitOnErrorsPl"
},
{
"path": "demo/webpack.config.test.js",
"chars": 304,
"preview": "'use strict';\n\nvar webpack = require('webpack');\nvar _ = require('lodash');\n\nmodule.exports = _.merge(\n require('./we"
},
{
"path": "doc/CHANGELOG-0.1.md",
"chars": 493,
"preview": "# 0.1.0\n* [Material-ui](http://chandu0101.github.io/sjrc/#materialui/info)\n* [ReactListView](http://chandu0101.github.io"
},
{
"path": "doc/CHANGELOG-1.0.md",
"chars": 354,
"preview": "# 1.0.0-M1\n* Completely reorganized the project to use sbt-scalajs-bundler\n* Incorporated code generator for material-ui"
},
{
"path": "doc/CHANGELOG_0.2.md",
"chars": 586,
"preview": "# 0.2.0\n* Ported to scalajs-react 0.10\n* Regenerated all material-ui, added heaps of new props and components.\n* Deleted"
},
{
"path": "doc/CHANGELOG_0.3.md",
"chars": 187,
"preview": "# 0.3.0\n* Remove accidental dependency upon utest for production code\n* Bumped scalajs-react to 0.10.3\n* Made MuiSpacing"
},
{
"path": "doc/CHANGELOG_0.4.md",
"chars": 947,
"preview": "# 0.4.1\n* Upgraded to Scala-js 0.6.7 since it has important fixes\n* Added a bunch of props to MuiIconButton\n\n# 0.4.0\n* M"
},
{
"path": "doc/CHANGELOG_0.5.md",
"chars": 790,
"preview": "# 0.5.0\n* Bumped to react 0.15.3\n* Material-ui bumped from 0.14.4 to 0.15.2\n* Bumped Scala-js to 0.6.11\n* Bumped Element"
},
{
"path": "doc/CHANGELOG_0.6.md",
"chars": 272,
"preview": "# 0.6.0\n* Cross built for Scala 2.12 \n* Bumped to react 0.15.4.2\n* Bumped Scala-js to 0.6.14\n* Material-ui bumped to 0.1"
},
{
"path": "doc/CHANGELOG_0.7.md",
"chars": 268,
"preview": "# 0.7.0\n\n- Upgraded to scalajs-react 1.0.1. This also involves bumping scala-js to 0.6.17. Usage for most components\n s"
},
{
"path": "doc/CHANGELOG_0.8.md",
"chars": 122,
"preview": "# 0.8.0\n- scalajs-react 1.1.0\n- new component: react-split-pane (thanks to @aatoni)\n- better ReactTable (thanks @rleibma"
},
{
"path": "doc/CONTRIBUTE.md",
"chars": 904,
"preview": "#Contribute\n\n* There are no global rules for this project, follow whatever works for you.\n\n* If you're working on new co"
},
{
"path": "doc/InteropWithThirdParty.md",
"chars": 5009,
"preview": "# Interop With Third Party Components\n\nIf you want to use a reactjs component in your scalajs-react project then you mus"
},
{
"path": "example/.scalafmt.conf",
"chars": 315,
"preview": "style = defaultWithAlign\n\ndanglingParentheses = true\nindentOperator = spray\nmaxColumn "
},
{
"path": "example/.travis.yml",
"chars": 56,
"preview": "language: scala\n\nscala:\n - 2.12.2\n\njdk:\n - oraclejdk8\n"
},
{
"path": "example/LICENSE",
"chars": 11358,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "example/NOTICE",
"chars": 24,
"preview": "Copyright 2017 rleibman\n"
},
{
"path": "example/README.md",
"chars": 1039,
"preview": "# example #\n\nWelcome to the reactjs-component example project!\n\nThis is a dead simple, standalone, \"hello world\" project"
},
{
"path": "example/build.sbt",
"chars": 3073,
"preview": "// *****************************************************************************\n// Projects\n// ************************"
},
{
"path": "example/index.html",
"chars": 3142,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>scalajs-react components demo</title>\n<style>\nhtml {\n\tfont-f"
},
{
"path": "example/project/build.properties",
"chars": 22,
"preview": "sbt.version = 0.13.15\n"
},
{
"path": "example/project/plugins.sbt",
"chars": 129,
"preview": "addSbtPlugin(\"org.scala-js\" % \"sbt-scalajs\" % \"0.6.17\")\naddSbtPlugin(\"ch.epfl.scala\" % \"sbt-scalajs-bundler\" % "
},
{
"path": "example/src/main/scala/HelloWorldApp.scala",
"chars": 1195,
"preview": "package demo\n\nimport chandu0101.scalajs.react.components.ReactTapEventPlugin\nimport org.scalajs.dom\n\nimport scala.scalaj"
},
{
"path": "gen/src/main/scala/com/olvind/DomTypes.scala",
"chars": 10379,
"preview": "package com.olvind\n\ncase object DomNode extends DomType(\"\")\ncase object DomElement extends DomType(\"FromHtml\")\ncase o"
},
{
"path": "gen/src/main/scala/com/olvind/OutputFolder.scala",
"chars": 600,
"preview": "package com.olvind\n\nimport ammonite.ops.FileType.Dir\nimport ammonite.ops.{Path, mkdir, pwd}\n\nimport scala.util.{Failure,"
},
{
"path": "gen/src/main/scala/com/olvind/Runner.scala",
"chars": 3478,
"preview": "package com.olvind\n\nimport java.io.File\n\nimport ammonite.ops.{Path, RelPath}\nimport com.olvind.requiresjs._\n\nimport scal"
},
{
"path": "gen/src/main/scala/com/olvind/componentParsers.scala",
"chars": 4233,
"preview": "package com.olvind\n\nobject ParseComponent {\n val ignoredMembers: Set[String] =\n Set(\n \"render\",\n \"componen"
}
]
// ... and 50 more files (download for full content)
About this extraction
This page contains the full source code of the chandu0101/scalajs-react-components GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 250 files (725.4 KB), approximately 189.1k tokens, and a symbol index with 30 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.