New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

minizinc-embedded

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

minizinc-embedded

Embedded MiniZinc ================= [![License: MIT][mit-image]][mit-url] [![NPM version][npm-image]][npm-url]

  • 3.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Embedded MiniZinc

License: MIT NPM version

This is a utility project to create simple embedded MiniZinc snippets that can be solved.

Basic Example

<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="https://unpkg.com/minizinc-embedded/build/minizinc.css">
  <script src="https://unpkg.com/minizinc-embedded/build/minizinc.js" data-init></script>
</head>
<body>
  <pre class="minizinc-embedding">
    int: n = 4; % The number of queens.

    array [1..n] of var 1..n: q;

    include "alldifferent.mzn";

    constraint alldifferent(q);
    constraint alldifferent(i in 1..n)(q[i] + i);
    constraint alldifferent(i in 1..n)(q[i] - i);

    solve satisfy;
  </pre>
</body>
</html>

will wrap the given embedding and add a Solve button to the top right.

Usage

Include in your website:

<link rel="stylesheet" href="https://unpkg.com/minizinc-embedded/build/minizinc.css">
<script src="https://unpkg.com/minizinc-embedded/build/minizinc.js"></script>

To initialize the embedding one can run the following JavaScript or add some data- attributes or CSS classes to the script tag.

MiniZincEmbedded.init({
  //root options go here
});

has the same effect as:

<script src="https://unpkg.com/minizinc-embedded/build/minizinc.js" data-init></script>

Options

The script tag as well as each individual embedding provide a range of customization options. See ./src/options.ts for a whole list of options. Most options can be defined using a CSS class or a data- attribute. For example:

<div class="minizinc-embedded-option-no-stats" data-no-stats></div>

are aquivalent. Moreover, all options on an embedding element supersedes the script tag options.

An important root options (only available in the script tag or during .init({...})) is selector. This option specifies the CSS selector to use for determing the set of embeddings. By default it is set to .minizinc-embedding matching all elements having the .minizinc-embedding class.

Model and Data Definition

In order to determine which part of the snippet is the model and which is the data file the following strategy is used: any element within the embedding matching the CSS selector [data-type=mzn], [type="text/x-minizinc"], .minizinc-embedded-model is considered the element containg the model. The model itself is retrieved using the .textContent property. The data file is similarly determined based on the CSS selector [data-type=dzn], [type="text/x-dzn"], .minizinc-embedded-data. As an alternative one can specify the global selector as part of the data option. In addition, the special data-data="next" syntax is supported. In case no model element can be found the embedding root element itself is used as input.

Example

<div class="minizinc-embedding">
  <pre data-type="mzn">
    int: n; % The number of queens.

    array [1..n] of var 1..n: q;

    include "alldifferent.mzn";

    constraint alldifferent(q);
    constraint alldifferent(i in 1..n)(q[i] + i);
    constraint alldifferent(i in 1..n)(q[i] - i);

    solve satisfy;
  </pre>
  <pre data-type="dzn">
    n = 4;
  </pre>
</div>

Advanced Usage

The globally exported MiniZincEmbedded object has the same interface as any other IMiniZinc object, thus allowing to solve simple models directly.

MiniZincEmbedded.solve(`int i = 4;`).then((result) => {
  console.log(result);
});
MiniZincEmbedded.solveRaw(`int i = 4;`).then((output) => {
  console.log(output);
});

Development Environment

Installation

git clone https://gitlab.com/minizinc/minizinc-webide.git
cd minizinc
npm install

Build distribution packages

npm run dist

FAQs

Package last updated on 28 Jun 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc