espial/purs/src/Globals.purs

98 lines
3 KiB
Text
Raw Normal View History

2019-01-31 02:54:47 +00:00
module Globals where
import Data.Maybe (Maybe(..))
2020-02-08 22:29:04 +00:00
import Data.Newtype (class Newtype)
import Data.Nullable (Nullable)
2019-01-31 02:54:47 +00:00
import Data.Tuple (Tuple(..))
import Effect (Effect)
import Data.Function.Uncurried (Fn0, Fn1, Fn4, runFn0, runFn1, runFn4)
import Effect.Uncurried (EffectFn1, EffectFn2, EffectFn4, runEffectFn1, runEffectFn2, runEffectFn4)
2019-01-31 02:54:47 +00:00
import Model (Bookmark)
import Prelude (Unit)
2020-02-08 22:29:04 +00:00
import Web.DOM (Node)
2019-01-31 02:54:47 +00:00
import Web.HTML (HTMLElement, HTMLFormElement, Window)
import Web.XHR.FormData (FormData)
type App =
{ csrfHeaderName :: String
, csrfCookieName :: String
, csrfParamName :: String
, csrfToken :: String
, homeR :: String
, authRlogoutR :: String
, userR :: Nullable String
, noteR :: Nullable String
, dat :: AppData
}
type AppData =
{ bmarks :: Array Bookmark
, bmark :: Bookmark
, isowner :: Boolean
}
foreign import _app :: Fn0 App
app' :: Unit -> App
app' _ = runFn0 _app
2020-02-08 22:29:04 +00:00
foreign import _closest :: forall a. EffectFn4 (a -> Maybe a) (Maybe a) String Node (Maybe Node)
2019-01-31 02:54:47 +00:00
closest :: String -> Node -> Effect (Maybe Node)
2020-02-08 22:29:04 +00:00
closest selector node = runEffectFn4 _closest Just Nothing selector node
2019-01-31 02:54:47 +00:00
2020-02-08 22:29:04 +00:00
foreign import _moment8601 :: EffectFn2 (String -> String -> Tuple String String) String (Tuple String String)
2019-01-31 02:54:47 +00:00
moment8601 :: String -> Effect (Tuple String String)
2020-02-08 22:29:04 +00:00
moment8601 s = runEffectFn2 _moment8601 Tuple s
2019-01-31 02:54:47 +00:00
foreign import _mmoment8601 :: forall a. Fn4 (a -> Maybe a) (Maybe a) (String -> String -> Tuple String String) String (Maybe (Tuple String String))
mmoment8601 :: String -> Maybe (Tuple String String)
mmoment8601 s = runFn4 _mmoment8601 Just Nothing Tuple s
2020-02-08 22:29:04 +00:00
foreign import _innerHtml :: EffectFn1 HTMLElement String
2019-01-31 02:54:47 +00:00
innerHtml :: HTMLElement -> Effect String
2020-02-08 22:29:04 +00:00
innerHtml n = runEffectFn1 _innerHtml n
2019-01-31 02:54:47 +00:00
2020-02-08 22:29:04 +00:00
foreign import _setInnerHtml :: EffectFn2 String HTMLElement HTMLElement
2019-01-31 02:54:47 +00:00
setInnerHtml :: String -> HTMLElement -> Effect HTMLElement
2020-02-08 22:29:04 +00:00
setInnerHtml c n = runEffectFn2 _setInnerHtml c n
2019-01-31 02:54:47 +00:00
foreign import _createFormData :: Fn1 HTMLFormElement FormData
createFormData :: HTMLFormElement -> FormData
createFormData f = runFn1 _createFormData f
foreign import _createFormString :: Fn1 HTMLFormElement String
createFormString :: HTMLFormElement -> String
createFormString f = runFn1 _createFormString f
foreign import _createFormArray :: Fn1 HTMLFormElement (Array (Array String))
createFormArray :: HTMLFormElement -> (Array (Array String))
createFormArray f = runFn1 _createFormArray f
2020-02-08 22:29:04 +00:00
foreign import _closeWindow :: EffectFn1 Window Unit
2019-01-31 02:54:47 +00:00
closeWindow :: Window -> Effect Unit
2020-02-08 22:29:04 +00:00
closeWindow win = runEffectFn1 _closeWindow win
2019-01-31 02:54:47 +00:00
newtype RawHTML = RawHTML String
derive instance newtypeRawHTML :: Newtype RawHTML _
2020-01-20 17:14:46 +00:00
2020-02-08 22:29:04 +00:00
foreign import _setFocus :: EffectFn1 String Unit
2020-01-20 17:14:46 +00:00
setFocus :: String -> Effect Unit
2020-02-08 22:29:04 +00:00
setFocus s = runEffectFn1 _setFocus s
foreign import _toLocaleDateString :: Fn1 String String
toLocaleDateString :: String -> String
toLocaleDateString s = runFn1 _toLocaleDateString s