hallelujahdrive/elm-croppie/1.0.0

NOTE: the latest version is 1.0.3

Rerouted (retagged, needs approval). The tag now points at a different commit than when this version was published. The Lamdera package server serves a copy recovered from https://github.com/hallelujahdrive/elm-croppie.

What we checked: Tag 1.0.0 is still on github.com/hallelujahdrive/elm-croppie; its commit 9125788c7aa8 is from 2020-08-25 17:10 UTC, after the version was published (2020-08-25 17:00 UTC); elm.json is byte-identical to package.elm-lang.org's; the exposed modules match docs.json; the zip's SHA-1 is not the published one and nothing else confirms its contents.

We could not verify this copy against what was published, so the Lamdera compiler asks before using it (y/n). Without a terminal, as in CI, it stops with an error unless approved:

  • lamdera make --auto-approve-package-rerouting approves rerouted versions for that run,
  • LAMDERA_AUTO_APPROVE_PACKAGE_REROUTING=1 does the same for every run in that environment,
  • LAMDERA_CACHE=off skips the Lamdera package server altogether: packages come from package.elm-lang.org and GitHub only, as with elm, and a rerouted version then fails to download.

Details · package.elm-lang.org's zip: https://github.com/hallelujahdrive/elm-croppie/zipball/1.0.0/

build

Croppie for Elm

This is a wrapper library of Croppie

Croppie is a fast, easy to use image cropping plugin with tons of configuration options!

The Basics

import Croppie

view =
    Croppie.croppie [] [ src "images/demo-1.jpg" ]
    

Installation

Elm:

elm install hallelujahdrive/[email protected]

Then add the following elements to your page:

<link rel="stylesheet" href="https://unpkg.com/elm-croppie/@1.0.0/dist/elm-croppie.css" />
<script src="https://unpkg.com/elm-croppie/@1.0.0/dist/elm-croppie.js"></script>

If you use bundler please install the Javascript and CSS assets via npm:

npm install [email protected]

Then in your Javascript add a following import:

require("elm-croppie");

Usage

You can initialize ElmCroppie with the following elm code:

import Croppie
import Croppie.BindOptions exposing (..)

port croppie : Croppie.Data -> Cmd msg

view =
    Croppie.croppie [] [ id "item" ]
    
function =
    croppie <|
        Croppie.function "item" ...

You also need the following javascript code to communicate on the port.

const app = Elm.Main.init({
    node: document.getElementById("elm")
});

app.ports.croppie.subscribe((data) => {
    ElmCroppie.port(data);
});

Importtant Notes

Croppie uses canvas.drawImage(...) to manipulate images. Thus, images must obey the CORS policy. More info can be found here.

Who

Croppie was built by Foliotek for use in Foloptek Presentation.

And, elm-croppie was built by hallelujahdrive.

Please submit any issue or question on Github.