sundial | A pretty nice datetime picker | Date Time Utils library

 by   paulstraw JavaScript Version: 0.0.1 License: MIT

kandi X-RAY | sundial Summary

kandi X-RAY | sundial Summary

sundial is a JavaScript library typically used in Utilities, Date Time Utils applications. sundial has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can install using 'npm i sundial-picker' or download it from GitHub, npm.

A pretty nice datetime picker. Hopefully pretty accessible, definitely pretty usable. No DOM library required, just add Moment.js and you're good to go. Minimal styling required, lots of styling possible.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              sundial has a low active ecosystem.
              It has 23 star(s) with 2 fork(s). There are 3 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 1 open issues and 1 have been closed. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of sundial is 0.0.1

            kandi-Quality Quality

              sundial has no bugs reported.

            kandi-Security Security

              sundial has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              sundial is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              sundial releases are available to install and integrate.
              Deployable package is available in npm.
              Installation instructions are not available. Examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of sundial
            Get all kandi verified functions for this library.

            sundial Key Features

            No Key Features are available at this moment for sundial.

            sundial Examples and Code Snippets

            No Code Snippets are available at this moment for sundial.

            Community Discussions

            QUESTION

            Touch Input in Unity remembers the last position
            Asked 2021-May-05 at 10:48

            So, I am trying to rotate an object. Pretty straightforward, as soon as the screen is touched, a Vector3 is created, gets the touch position and then, while the user drags their finger on the screen, it does the calculations to rotate the object. When the user removes their finger from the screen, the Vector3 gets destroyed and everything keeps on working fine.

            On the editor, it works flawlessly. On an android device howerver, it feels like the device remembers where was the last point that got touched. So, there is no issue on the first time the user tries to rotate the object but, in case they want to rotate it again, the script calculates where the user last tapped and rotates the object as if the user dragged their finger all the way to the new position.

            Is there a reason for that? Does the android device store the touch positions? If so, is there a way to reset that? As an extra question, would something similar happen to an iOS device as well?

            Edit: The code.

            ...

            ANSWER

            Answered 2021-May-05 at 08:14

            The OnMouseDrag function is probably only meant for the mouse. I usually use some code like this to detect whether something is being clicked on:

            Source https://stackoverflow.com/questions/67396165

            QUESTION

            Purpose of cswrapper code, sundials solver in FMPy
            Asked 2021-Apr-06 at 09:38

            About FMPy which is a python package for FMU simulation. I need one clarification : What is the purpose of cswrapper code, sundials solver or functions? Is it only required for ModelExchange type FMU simulation and not for Co-simulation type FMU simulation? https://github.com/CATIA-Systems/FMPy

            ...

            ANSWER

            Answered 2021-Apr-06 at 09:38

            With the cswrapper code you can "wrap" a ME FMU as a CS FMU by adding a (sundials) solver, see https://github.com/CATIA-Systems/FMPy/issues/127. So you get from a ME a CS FMU. Additionally, the CVODE solver can be used to simulate ME FMUs in fmpy.

            Source https://stackoverflow.com/questions/66950331

            QUESTION

            how can I fixed the Jmodelica compiling error?
            Asked 2021-Feb-22 at 13:46

            I am trying to compile a Modelica model (built in Dymola) using Jmodelica, but got the following error:

            Compiler arguments: Generating code...
            ====== Model compiled successfully ======= OU44_ZoneR2C2_funcs.o:OU44_ZoneR2C2_funcs.c:(.text+0x24): undefined reference to 'ModelicaStandardTables_CombiTable1D_minimumAbscissa'
            OU44_ZoneR2C2_funcs.o:OU44_ZoneR2C2_funcs.c:(.text+0xbc): undefined reference to 'ModelicaStandardTables_CombiTable1D_maximumAbscissa' OU44_ZoneR2C2_funcs.o:OU44_ZoneR2C2_funcs.c:(.text+0x1e7): undefined reference to 'ModelicaStandardTables_CombiTable1D_init2'
            collect2.exe: error: ld returned 1 exit status
            mingw32-make1: *** [fmume20_] Error 1
            mingw32-make: *** [fmume20] Error 2
            "C:/Users/taoy/AppData/Roaming/JModelica.org-2.14/MinGW/bin/mingw32-make" -f "C:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install\Makefiles\MakeFile" "PLATFORM_FLAG=-m64" "RUNTIMELIBRARY_LIB_DIR=C:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/lib/RuntimeLibrary64" "MINPACK_LIB_DIR=C:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/ThirdParty/Minpack/lib64" "SUNDIALS_LIB_DIR=C:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install\ThirdParty\Sundials/lib64" "WINPTHREADS_LIB_DIR=C:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/ThirdParty/winpthreads/lib/winpthreads64" fmume20_
            mingw32-make1: Entering directory
            'C:/Users/taoy/AppData/Local/Temp/1/jmc7241264750773945049out' "gcc" -m64 -std=c89 -pedantic -msse2 -mfpmath=sse -O1 "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/include/RuntimeLibrary" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/ThirdParty/FMI/2.0" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install\ThirdParty\Sundials/include" -c -o "OU44_ZoneR2C2_funcs.o" sources/OU44_ZoneR2C2_funcs.c "gcc" -m64 -std=c89 -pedantic -msse2 -mfpmath=sse "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/include/RuntimeLibrary" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/ThirdParty/FMI/2.0" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install\ThirdParty\Sundials/include" -c -o "OU44_ZoneR2C2_init_independent.o" sources/OU44_ZoneR2C2_init_independent.c "gcc" -m64 -std=c89 -pedantic -msse2 -mfpmath=sse "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/include/RuntimeLibrary" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/ThirdParty/FMI/2.0" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install\ThirdParty\Sundials/include" -c -o "OU44_ZoneR2C2_init_dependent.o" sources/OU44_ZoneR2C2_init_dependent.c "gcc" -m64 -std=c89 -pedantic -msse2 -mfpmath=sse "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/include/RuntimeLibrary" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/ThirdParty/FMI/2.0" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install\ThirdParty\Sundials/include" -c -o "OU44_ZoneR2C2_base.o" sources/OU44_ZoneR2C2_base.c "gcc" -m64 -std=c89 -pedantic -msse2 -mfpmath=sse "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/include/RuntimeLibrary" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/ThirdParty/FMI/2.0" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install\ThirdParty\Sundials/include" -c -o "OU44_ZoneR2C2_equ.o" sources/OU44_ZoneR2C2_equ.c "gcc" -m64 -std=c89 -pedantic -msse2 -mfpmath=sse "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/include/RuntimeLibrary" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/ThirdParty/FMI/2.0" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install\ThirdParty\Sundials/include" -c -o "OU44_ZoneR2C2_equ_init.o" sources/OU44_ZoneR2C2_equ_init.c "gcc" -m64 -std=c89 -pedantic -msse2 -mfpmath=sse "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/include/RuntimeLibrary" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/ThirdParty/FMI/2.0" "-IC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install\ThirdParty\Sundials/include" -c -o "OU44_ZoneR2C2.o" sources/OU44_ZoneR2C2.c
            mkdir binaries\win64 "C:\Users\taoy\AppData\Roaming\JModelica.org-2.14\MinGW\bin\g++" -m64 -shared -m64 -o "binaries/win64/OU44_ZoneR2C2.dll" OU44_ZoneR2C2_funcs.o OU44_ZoneR2C2_init_independent.o OU44_ZoneR2C2_init_dependent.o OU44_ZoneR2C2_base.o OU44_ZoneR2C2_equ.o OU44_ZoneR2C2_equ_init.o OU44_ZoneR2C2.o "-LC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/lib/RuntimeLibrary64" -lfmi2 -static-libstdc++ -static-libgcc -ljmi "-LC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/lib" -L"C:\Users\taoy\Documents\Modelica Standard Library 3.2.3\Modelica 3.2.3\Resources\Library/win64/gcctdm510" -L"C:\Users\taoy\Documents\Modelica Standard Library 3.2.3\Modelica 3.2.3\Resources\Library/win64" -L"C:\Users\taoy\Documents\Modelica Standard Library 3.2.3\Modelica 3.2.3\Resources\Library" -lModelicaStandardTables -lModelicaIO -lModelicaMatIO -lzlib -lModelicaExternalC -ljmi_get_set_default -lModelicaStandardTables -lModelicaIO -lModelicaMatIO -lzlib -lModelicaExternalC -ljmi_get_set_default -llapack -lblas -l:libgfortran.a -l:libquadmath.a -lModelicaExternalC -lzlib -ljmi "-LC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install\ThirdParty\Sundials/lib64" -l:libsundials_kinsol.a -l:libsundials_nvecserial.a -l:libsundials_cvode.a "-LC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/ThirdParty/Minpack/lib64" -l:libcminpack.a "-LC:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install/ThirdParty/winpthreads/lib/winpthreads64" -l:libwinpthread.a C:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install\Makefiles\MakeFile:214: recipe for target 'fmume20_' failed mingw32-make1: Leaving directory 'C:/Users/taoy/AppData/Local/Temp/1/jmc7241264750773945049out' C:\Users\taoy\AppData\Roaming\JModelica.org-2.14\install\Makefiles\MakeFile:210: recipe for target 'fmume20' failed
            Unknown program error, org.jmodelica.util.exceptions.CcodeCompilationException: Compilation of generated C code failed.
            C file location: C:\Users\taoy\AppData\Local\Temp\1\jmc7241264750773945049out\sources\OU44_ZoneR2C2.c

            It says model compiled successfully, but the error occurs afterwards. I looked into model, if I delete the model component "CombiTable1D from Modelica standard Library", then the error is fixed. Seems likt something is wrong with this component. However, this component is necessasy in my model.

            How can this problem be solved?

            ...

            ANSWER

            Answered 2021-Feb-22 at 13:46

            ModelicaStandardTables_CombiTable1D_minimumAbscissa was added in 2017, but JModelica uses a 2016 version of the MSL C-sources: https://github.com/JModelica/JModelica/blob/8982e1f4e7ca33b01b398f389b73d2398761ee9c/ThirdParty/MSL/Modelica/Resources/C-Sources/ModelicaStandardTables.c

            You likely need to use an earlier version of the Modelica Standard Library (3.2.2 is included with JModelica), or a different Modelica tool since JModelica is discontinued.

            Source https://stackoverflow.com/questions/66312854

            QUESTION

            How to perform adjoint sensitivity in Python (preferably through CVODE)
            Asked 2020-Dec-15 at 12:08

            I want to implement the adjoint sensitivity analysis in python, in order to determine the gradient of my objective function with respect to some parameters. In specific the objective function depends on the solution of a differential equation which in turn depends on said parameters which I am looking to find the optimum of.

            To perform this there are numerous good packages both in Julia (see here), as well as CVODES from SUNDIALS, however the latter which does apparently have a wrapper made for python, does not include sensitivity analysis capabilities according to this link. Furthermore, I have looked into SALib for sensitivity analysis, but as far as I understand this refers to some other type of 'sensitivity analysis' and therefore adjoint or even forward sensitivity analysis is not included (correct me if I am wrong on this one).

            Thus my question is, does a version of CVODES exist in python with sensitivity analysis capabilities, or is there there any other package where one can use in order to perform adjoint sensitivity analys?

            ...

            ANSWER

            Answered 2020-Dec-15 at 12:08

            You can easily call Julia code / packages from Python with pyjulia. https://github.com/JuliaPy/pyjulia

            Source https://stackoverflow.com/questions/65302689

            QUESTION

            undefined symbols remain, but shared libraries compile and seem to function properly
            Asked 2020-Sep-21 at 09:16

            My goal was to build shared libraries from SUNDIALS 2.7.0 - these are solvers of ordinary differential equations, written in C.

            I've downloaded the source, and followed the installation guide:

            1. run Cmake (with GUI), checked options "CVODE" (this is one of the available solvers - the only one I wanted), "build shared libraries" and "use generic (std-c) math libraries" and generated the Makefile.
            2. run make && make install in the Linux console and my shared libraries got generated, with no error messages at all. Here is the output:
            ...

            ANSWER

            Answered 2020-Sep-21 at 09:16

            You have undefined symbol with ldd because the so files were created without the -lm option. However it will not be a problem as long as the final executable is linked with -lm option. It is what is done for tests like test_nvector_serial which is linked with -lm -lrt.

            You can see all this by running the make in a verbose mode with make VERBOSE=1. If you try to generate the executable without -lm you will have collect2: error: ld returned 1 exit status and the linker complaining about exp, pow and sqrt. if you add -lm when creating the so files ( I did it ). you will see :

            Source https://stackoverflow.com/questions/63979007

            QUESTION

            How to create .dll or .lib from multiple c source and header files in visual studio?
            Asked 2020-Sep-01 at 17:55

            I have C source files and header files from the first version(1.0) of Sundials numerical solver.

            https://computing.llnl.gov/projects/sundials

            In the makefile information for IDA solver, it looks like this.

            ...

            ANSWER

            Answered 2020-Sep-01 at 17:55

            "I would like to do the same thing in Windows 10 and visual studio (2019)..."

            Here are example steps using Visual Studio 2019:

            Note, because Visual Studios is by definition an IDE, it removes much of the the responsibility from the developer to know as much about make-files and command line-compile instructions. These things are done within the Visual Studios application via menus and buttons on a GUI.

            • On the menu bar, choose File > New > Project to open the Create a New Project dialog box.

            • At the top of the dialog, set Language to C++ [or C], set Platform to Windows, and set Project type to Library.

            • From the filtered list of project types, select [Console App], then choose Next.

            • In the Configure your new project page, enter some [Name] in the Project name box to specify a name for the project. Enter [StaticNameLib] in the Solution name box. Choose the Create button to open the Windows Desktop Project dialog.

            • In the Windows Desktop Project dialog, under Application type, select Static Library (.lib).

            • Under Additional options, uncheck the Precompiled header check box if it's checked. Check the Empty project box.

            • Choose OK to create the project.

            Note: Content within italicized square brackets ( [...] ) is mine. See link below for original.

            link below

            Source https://stackoverflow.com/questions/63689492

            QUESTION

            Cmake: setting rpath
            Asked 2020-Jun-15 at 09:28

            I'm trying to switch from GNU Make to CMake on a C++ project. My plan is to distribute alongside the source code of my library, also the code of two external libraries that are needed.

            The project is structured as follows

            ...

            ANSWER

            Answered 2020-Jun-15 at 09:25

            Try to use target_link_options instead of target_link_libraries.

            Source https://stackoverflow.com/questions/62385120

            QUESTION

            pyephem - does the right ascension calculation for the sun account for the Equation of Time
            Asked 2019-Dec-23 at 14:43

            I am looking to calculate the highest precision lat lon for the subsolar point, in a particular datetime moment, as is reasonably possible using pyephem, with the help of some other library(s) if they are needed.

            Relevant context: Anyone who has used pyephem, already knows that for certain calculations it requires certain setup values before computing body positions, those values including the datetime (epoch of the observation), the location of the observer, and of course, the body being investigated. Solutions for the subsolar point through the use of pyephem, that I have found online, show the time in utc as the time needed for the pyephem setup.

            Remembering way back to my first exposure to astronomy, and to celestial navigation, utc is a variant of a mean day, compared to an actual solar day, where an actual solar day's duration throughout the year varies due to several factors of the nature of the earth's orbit. Because the length of an actual solar day varies throughout the year, for certain types of astronomical calculations, this requires the Equation of Time to more precisely map the actual solar day measurements to a mean and fixed 24 hour day system such as utc. Before the advent of sufficiently accurate 'pendulum movement' clock mechanisms, and now crystal controlled clock mechanisms, going back to when sundials were the accurate timepiece, the more sophisticated sundials included markings to apply a yearly approximation of this important Equation of Time, soon after it had been observed and definitively documented. Therefore, relevant to my question, since utc is a variant of mean day, and not the true solar day, but normalized to 24 hours exactly, there is this question now of how or if pyephem incorporates the Equation of Time in its right ascension solutions for the sun. At present, I imagine the EoT is required for accuracy, as I try to visualize the sun's position against the background of stars, as seen from the earth, as the earth revolves around the sun, with historically observed variations that are made available and useful and essential with the Equation of Time.

            Summary then of my question:

            If it is not necessary to explicitly enter an EoT value in pyephem, because it is not relevant for computing the most accurate subsolar point, please explain why. If it is relevant, as I presently think it is, please tell me if pyephem, in its right acension calculation of the sun (and other bodies), as a body, does in fact, apply the Equation of Time as appropriate. Does it do so transparently? Is there a way to input an explicit value for it, if such is known, an EoT value that might be more accurate or more up to date compared to what pyephem is using transparently?

            Some initial research results that formed the question: Upon doing a search through various search engines, I found several posts in topical forums that give what seems a very simple answer for finding the subsolar point. Finding the lattitude apears to be the less complicated part of the solution, being simply the computed declination. Finding the longitude is where the question arose in my thinking, and now I wonder if it is applicable for the declination as well, since using the properly precise time is essential for the most precise result of both declination(lat) and longitude of the subsolar point. I always applied the EoT from the Nautical Almanac, back when I was involved with celestial navigation.

            Two links, specific to pyephem, present the same approach to the subsolar point solution. When the question(s) was first asked, Brandon Rhodes quickly presented the single line formula using pyephem's computing of the sun's right ascension. His was specifically the code for the longitude calculation in a more theoretical tone, without all the pyephem contextual details. Liam Kennedy presented a more complete context of python code, showing those additional pyephem details, so that one could 'copy and paste' the entire block of code, (needing only to add the import ephem and import datetime), and modify it as appropriate, which I also found to be a useful review. The code is from these links...

            Computing sub-solar point

            Confusion with using dec/ra to compute sub-lunar location

            subsolar point:

            Brandon's code

            ...

            ANSWER

            Answered 2019-Dec-23 at 14:43

            I think that your question, stated more briefly, is: does the libastro library that underlies PyEphem assume that the Earth’s orbit is a circle along which the Earth travels at a uniform rate? Because if it assumes a circular orbit and uniform rate for the Earth, then a correction ­— the Equation of Time — would need to appear for the fact that the Earth in fact varies its speed along its orbit.

            I suggest that you can answer this question for yourself experimentally. If PyEphem assumes uniform circular motion for the Earth, then the number of degrees traveled by the Sun each day will be the same. Try looping over a long series of days. For the same time each day, ask the Sun for its right ascension and declination, and then use separation() to check the angle traveled between those points.

            If the angle traveled by the Sun is the same each day, then PyEphem is modeling the Sun’s motion very poorly and you will need to apply an Equation of Time correction to get its true position.

            But if the daily angle is varying — small in July, large in January — then PyEphem must be modeling the Earth’s motion more accurately. If you dig into the source code, you will find that its model is called the VSOP87 model of predicting where the Earth and Sun are. Your own experiments should show how the model behaves as the Sun travels the sky through the year.

            Source https://stackoverflow.com/questions/59415676

            QUESTION

            Why is that when I use pandas to scrape a table from a website it skips the middle columns and only prints the first 2 and last 2
            Asked 2019-Nov-17 at 08:46

            I am currently working on a program that scrapes Yahoo Finance Earnings Calendar Page and stores the data in a file. I am able to scrape the data but I am confused as to why it only scrapes the first 2 and last 2 columns. I also tried to do the same with a table on Wikipedia for List of S&P 500 Companies and am running into the same problem. Any help is appreciated.

            Yahoo Finance Code

            ...

            ANSWER

            Answered 2019-Nov-17 at 07:23

            As far as I can tell this nothing to do with the data and everything to do with the representation. Only the first and last columns are printed so as to keep the output from being massive and difficult to read. You can even see at the end of your output that your DataFrame has 9 columns.

            Take a look here if you want to print the entire thing. You could also use .info to get some general information on your columns.

            Source https://stackoverflow.com/questions/58898019

            QUESTION

            How to fix ‘IDASolve : the corrector convergence failed’ when solving a DAE with scikits.odes and Sundial?
            Asked 2019-Jul-01 at 14:49

            I'm trying to solve a system of DAE (2 ODE and 1 algebraic equation) using the solver IDA from Sundials (https://computation.llnl.gov/projects/sundials/ida), through the Python package scikits.odes (https://scikits-odes.readthedocs.io).

            I'm using scikits.odes 2.4.0, Sundials 3.1.1 and Python 3.6 64bit.

            Here is the code :

            ...

            ANSWER

            Answered 2019-Jul-01 at 07:20

            The immediate cause should be that the initial vector is not a consistent state, as it violates the algebraic part

            Source https://stackoverflow.com/questions/56735288

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install sundial

            You can install using 'npm i sundial-picker' or download it from GitHub, npm.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/paulstraw/sundial.git

          • CLI

            gh repo clone paulstraw/sundial

          • sshUrl

            git@github.com:paulstraw/sundial.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Date Time Utils Libraries

            moment

            by moment

            dayjs

            by iamkun

            date-fns

            by date-fns

            Carbon

            by briannesbitt

            flatpickr

            by flatpickr

            Try Top Libraries by paulstraw

            FancySelect

            by paulstrawHTML

            placemat

            by paulstrawRuby

            Storyboard

            by paulstrawJavaScript

            Grind

            by paulstrawJavaScript

            ender-poke

            by paulstrawJavaScript