NIFI-13211: Decoupling other UIs from exiting NiFi UI (#8828)
* NIFI-13211: - Decoupling the content viewer from the NiFi UI which is currently pulling in shared dependencies, scripts, styles, and images. * NIFI-13211: - Decoupling nifi documentation from the NiFi UI which is currently pulling in shared dependencies, scripts, styles, and images. * NIFI-13211: - Decoupling nifi image viewer from the NiFi UI which is currently pulling in shared dependencies, scripts, styles, and images. * NIFI-13211: - Decoupling nifi standard content viewer from the NiFi UI which is currently pulling in shared dependencies, scripts, styles, and images. * NIFI-13211: - Decoupling nifi jolt transform json from the NiFi UI which is currently pulling in shared dependencies, scripts, styles, and images. * NIFI-13211: - Decoupling nifi update attribute from the NiFi UI which is currently pulling in shared dependencies, scripts, styles, and images. * NIFI-13211: - Updating rat config. * NIFI-13211: - Bumping dependency check timeout. * NIFI-13211: - Since this page is included through the context viewer, the dependency imports must directly reference through its context path. * NIFI-13211: - Since this page is included through the context viewer, the dependency imports must directly reference through its context path. This closes #8828
|
@ -40,7 +40,7 @@ permissions:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
timeout-minutes: 30
|
timeout-minutes: 60
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: Dependency Check
|
name: Dependency Check
|
||||||
steps:
|
steps:
|
||||||
|
|
|
@ -456,9 +456,9 @@ This product bundles 'jquery.base64.js' which is available under an MIT style li
|
||||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
This product bundles 'SlickGrid v2.3' which is available under an MIT style license.
|
This product bundles 'SlickGrid v2.4' which is available under an MIT style license.
|
||||||
|
|
||||||
Copyright (c) 2009-2016 Michael Leibman, http://github.com/mleibman/slickgrid
|
Copyright (c) 2009-present Michael Leibman and Ben McIntyre, http://github.com/6pac/slickgrid
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
|
|
|
@ -498,9 +498,9 @@ This product bundles 'jquery.base64.js' which is available under an MIT style li
|
||||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
This product bundles 'SlickGrid v2.3' which is available under an MIT style license.
|
This product bundles 'SlickGrid v2.4' which is available under an MIT style license.
|
||||||
|
|
||||||
Copyright (c) 2009-2016 Michael Leibman, http://github.com/mleibman/slickgrid
|
Copyright (c) 2009-present Michael Leibman and Ben McIntyre, http://github.com/6pac/slickgrid
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
|
|
|
@ -116,6 +116,9 @@ language governing permissions and limitations under the License. -->
|
||||||
<includes>
|
<includes>
|
||||||
<include>**/*.js</include>
|
<include>**/*.js</include>
|
||||||
<include>**/*.css</include>
|
<include>**/*.css</include>
|
||||||
|
<!-- font awesome -->
|
||||||
|
<include>font-awesome/fonts/**/*</include>
|
||||||
|
<include>font-awesome/README.md</include>
|
||||||
</includes>
|
</includes>
|
||||||
</resource>
|
</resource>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -194,9 +197,26 @@ language governing permissions and limitations under the License. -->
|
||||||
<artifactId>apache-rat-plugin</artifactId>
|
<artifactId>apache-rat-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<excludes combine.children="append">
|
<excludes combine.children="append">
|
||||||
|
<exclude>nbactions.xml</exclude>
|
||||||
<exclude>src/main/frontend/package.json</exclude>
|
<exclude>src/main/frontend/package.json</exclude>
|
||||||
|
<exclude>src/main/frontend/package-lock.json</exclude>
|
||||||
|
<exclude>src/main/webapp/js/jquery/jquery.base64.js</exclude>
|
||||||
|
<exclude>src/main/webapp/js/codemirror/</exclude>
|
||||||
|
<exclude>src/main/webapp/fonts/**/*</exclude>
|
||||||
|
</excludes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.rat</groupId>
|
||||||
|
<artifactId>apache-rat-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<excludes combine.children="append">
|
||||||
|
<exclude>src/main/frontend/package.json</exclude>
|
||||||
|
<exclude>src/main/frontend/package-lock.json</exclude>
|
||||||
<exclude>src/main/webapp/css/main.css</exclude>
|
<exclude>src/main/webapp/css/main.css</exclude>
|
||||||
<exclude>src/main/webapp/js/js-beautify/*</exclude>
|
<exclude>src/main/webapp/js/js-beautify/*</exclude>
|
||||||
|
<exclude>src/main/webapp/js/codemirror/</exclude>
|
||||||
|
<exclude>src/main/webapp/fonts/**/*</exclude>
|
||||||
</excludes>
|
</excludes>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
|
@ -1,39 +1,158 @@
|
||||||
{
|
{
|
||||||
"//": "Licensed to the Apache Software Foundation (ASF) under one or more",
|
|
||||||
"//": "contributor license agreements. See the NOTICE file distributed with",
|
|
||||||
"//": "this work for additional information regarding copyright ownership.",
|
|
||||||
"//": "The ASF licenses this file to You 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.",
|
|
||||||
"name": "nifi-jolt-transform-json-ui",
|
"name": "nifi-jolt-transform-json-ui",
|
||||||
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"lockfileVersion": 1,
|
"//": "limitations under the License.",
|
||||||
"dependencies": {
|
"packages": {
|
||||||
"angular": {
|
"": {
|
||||||
"version": "1.8.2",
|
"name": "nifi-jolt-transform-json-ui",
|
||||||
"resolved": "https://registry.npmjs.org/angular/-/angular-1.8.2.tgz",
|
"license": "Apache-2.0",
|
||||||
"integrity": "sha512-IauMOej2xEe7/7Ennahkbb5qd/HFADiNuLSESz9Q27inmi32zB0lnAsFeLEWcox3Gd1F6YhNd1CP7/9IukJ0Gw=="
|
"dependencies": {
|
||||||
|
"angular": "1.8.3",
|
||||||
|
"angular-animate": "1.8.3",
|
||||||
|
"angular-aria": "1.8.3",
|
||||||
|
"angular-material": "1.1.26",
|
||||||
|
"angular-messages": "1.8.3",
|
||||||
|
"angular-ui-codemirror": "^0.3.0",
|
||||||
|
"angular-ui-router": "^0.2.18",
|
||||||
|
"font-awesome": "4.7.0",
|
||||||
|
"jsonlint": "1.6.3"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"angular-ui-codemirror": {
|
"node_modules/angular": {
|
||||||
|
"version": "1.8.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/angular/-/angular-1.8.3.tgz",
|
||||||
|
"integrity": "sha512-5qjkWIQQVsHj4Sb5TcEs4WZWpFeVFHXwxEBHUhrny41D8UrBAd6T/6nPPAsLngJCReIOqi95W3mxdveveutpZw==",
|
||||||
|
"deprecated": "For the actively supported Angular, see https://www.npmjs.com/package/@angular/core. AngularJS support has officially ended. For extended AngularJS support options, see https://goo.gle/angularjs-path-forward."
|
||||||
|
},
|
||||||
|
"node_modules/angular-animate": {
|
||||||
|
"version": "1.8.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/angular-animate/-/angular-animate-1.8.3.tgz",
|
||||||
|
"integrity": "sha512-/LtTKvy5sD6MZbV0v+nHgOIpnFF0mrUp+j5WIxVprVhcrJriYpuCZf4S7Owj1o76De/J0eRzANUozNJ6hVepnQ==",
|
||||||
|
"deprecated": "For the actively supported Angular, see https://www.npmjs.com/package/@angular/core. AngularJS support has officially ended. For extended AngularJS support options, see https://goo.gle/angularjs-path-forward."
|
||||||
|
},
|
||||||
|
"node_modules/angular-aria": {
|
||||||
|
"version": "1.8.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/angular-aria/-/angular-aria-1.8.3.tgz",
|
||||||
|
"integrity": "sha512-qTXclmTW/KGw5JNKKQPcCKKq6hCBZ39jYINmLgMsjUHBAoxULaMRRTaRj/L2VTOjKvK5f9enkx+EUqRqzXDSFQ==",
|
||||||
|
"deprecated": "For the actively supported Angular, see https://www.npmjs.com/package/@angular/core. AngularJS support has officially ended. For extended AngularJS support options, see https://goo.gle/angularjs-path-forward."
|
||||||
|
},
|
||||||
|
"node_modules/angular-material": {
|
||||||
|
"version": "1.1.26",
|
||||||
|
"resolved": "https://registry.npmjs.org/angular-material/-/angular-material-1.1.26.tgz",
|
||||||
|
"integrity": "sha512-DBLsoOP1D1E14EQsECZYabt3Jh1PpvsG8k1aZgaP/Ml57n4stpClzLhCsuTNbtB/pqq9CL8XtpCfB6fhVRWqIQ==",
|
||||||
|
"deprecated": "For the actively supported Angular Material, see https://www.npmjs.com/package/@angular/material. AngularJS support has officially ended. For extended AngularJS support options, see https://goo.gle/angularjs-path-forward.",
|
||||||
|
"peerDependencies": {
|
||||||
|
"angular": "^1.7.2",
|
||||||
|
"angular-animate": "^1.7.2",
|
||||||
|
"angular-aria": "^1.7.2",
|
||||||
|
"angular-messages": "^1.7.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/angular-messages": {
|
||||||
|
"version": "1.8.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/angular-messages/-/angular-messages-1.8.3.tgz",
|
||||||
|
"integrity": "sha512-f/ywtg32lqzX8FnXkBJOyn13lbCbo333/xy/5TTFcsH/gZdXoiuERj+dLTOs8xHCkOeFQhFx0VD0DgtMgSag7A=="
|
||||||
|
},
|
||||||
|
"node_modules/angular-ui-codemirror": {
|
||||||
"version": "0.3.0",
|
"version": "0.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/angular-ui-codemirror/-/angular-ui-codemirror-0.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/angular-ui-codemirror/-/angular-ui-codemirror-0.3.0.tgz",
|
||||||
"integrity": "sha1-5ChvxQ85PypuaXwb8xcEJOEsu2A="
|
"integrity": "sha1-5ChvxQ85PypuaXwb8xcEJOEsu2A="
|
||||||
},
|
},
|
||||||
"angular-ui-router": {
|
"node_modules/angular-ui-router": {
|
||||||
"version": "0.2.18",
|
"version": "0.2.18",
|
||||||
"resolved": "https://registry.npmjs.org/angular-ui-router/-/angular-ui-router-0.2.18.tgz",
|
"resolved": "https://registry.npmjs.org/angular-ui-router/-/angular-ui-router-0.2.18.tgz",
|
||||||
"integrity": "sha1-Ha1wQVxz1wRv0uEw3wPWL7dGQ2A=",
|
"integrity": "sha1-Ha1wQVxz1wRv0uEw3wPWL7dGQ2A=",
|
||||||
"requires": {
|
"deprecated": "This npm package 'angular-ui-router' has been renamed to '@uirouter/angularjs'. Please update your package.json. See https://ui-router.github.io/blog/uirouter-scoped-packages/",
|
||||||
|
"dependencies": {
|
||||||
"angular": "^1.0.8"
|
"angular": "^1.0.8"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"node_modules/ansi-styles": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-3iF4FIKdxaVYT3JqQuY3Wat/T2t7TRbbQ94Fu50ZUCbLy4TFbTzr90NOHQodQkNqmeEGCw8WbeP78WNi6SKYUA==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/chalk": {
|
||||||
|
"version": "0.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
|
||||||
|
"integrity": "sha512-sQfYDlfv2DGVtjdoQqxS0cEZDroyG8h6TamA6rvxwlrU5BaSLDx9xhatBYl2pxZ7gmpNaPFVwBtdGdu5rQ+tYQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-styles": "~1.0.0",
|
||||||
|
"has-color": "~0.1.0",
|
||||||
|
"strip-ansi": "~0.1.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/font-awesome": {
|
||||||
|
"version": "4.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
|
||||||
|
"integrity": "sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/has-color": {
|
||||||
|
"version": "0.1.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
|
||||||
|
"integrity": "sha512-kaNz5OTAYYmt646Hkqw50/qyxP2vFnTVu5AQ1Zmk22Kk5+4Qx6BpO8+u7IKsML5fOsFk0ZT0AcCJNYwcvaLBvw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/jsonlint": {
|
||||||
|
"version": "1.6.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.3.tgz",
|
||||||
|
"integrity": "sha512-jMVTMzP+7gU/IyC6hvKyWpUU8tmTkK5b3BPNuMI9U8Sit+YAWLlZwB6Y6YrdCxfg2kNz05p3XY3Bmm4m26Nv3A==",
|
||||||
|
"dependencies": {
|
||||||
|
"JSV": "^4.0.x",
|
||||||
|
"nomnom": "^1.5.x"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"jsonlint": "lib/cli.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/JSV": {
|
||||||
|
"version": "4.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz",
|
||||||
|
"integrity": "sha512-ZJ6wx9xaKJ3yFUhq5/sk82PJMuUyLk277I8mQeyDgCTjGdjWJIvPfaU5LIXaMuaN2UO1X3kZH4+lgphublZUHw==",
|
||||||
|
"engines": {
|
||||||
|
"node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/nomnom": {
|
||||||
|
"version": "1.8.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz",
|
||||||
|
"integrity": "sha512-5s0JxqhDx9/rksG2BTMVN1enjWSvPidpoSgViZU4ZXULyTe+7jxcCRLB6f42Z0l1xYJpleCBtSyY6Lwg3uu5CQ==",
|
||||||
|
"deprecated": "Package no longer supported. Contact support@npmjs.com for more info.",
|
||||||
|
"dependencies": {
|
||||||
|
"chalk": "~0.4.0",
|
||||||
|
"underscore": "~1.6.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/strip-ansi": {
|
||||||
|
"version": "0.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz",
|
||||||
|
"integrity": "sha512-behete+3uqxecWlDAm5lmskaSaISA+ThQ4oNNBDTBJt0x2ppR6IPqfZNuj6BLaLJ/Sji4TPZlcRyOis8wXQTLg==",
|
||||||
|
"bin": {
|
||||||
|
"strip-ansi": "cli.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/underscore": {
|
||||||
|
"version": "1.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
|
||||||
|
"integrity": "sha512-z4o1fvKUojIWh9XuaVLUDdf86RQiq13AC1dmHbTpoyuu+bquHms76v16CjycCbec87J7z0k//SiQVk0sMdFmpQ=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,14 @@
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"angular-ui-codemirror": "^0.3.0",
|
"angular-ui-codemirror": "^0.3.0",
|
||||||
"angular-ui-router": "^0.2.18"
|
"angular-ui-router": "^0.3.2",
|
||||||
|
"font-awesome": "4.7.0",
|
||||||
|
"jsonlint": "1.6.3",
|
||||||
|
"angular": "1.8.3",
|
||||||
|
"angular-animate": "1.8.3",
|
||||||
|
"angular-aria": "1.8.3",
|
||||||
|
"angular-material": "1.1.26",
|
||||||
|
"angular-messages": "1.8.3"
|
||||||
},
|
},
|
||||||
"description": "Apache NiFi Jolt Transform JSON UI 3rd party client side resources.",
|
"description": "Apache NiFi Jolt Transform JSON UI 3rd party client side resources.",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
|
@ -325,3 +325,154 @@ This product bundles 'js-beautify' which is available under an MIT license.
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
This product bundles 'Fontello' which is available under an MIT license.
|
||||||
|
|
||||||
|
Copyright (C) 2011 by Vitaly Puzrin
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
This product bundles 'jsonlint' which is available under an MIT license.
|
||||||
|
|
||||||
|
Copyright (C) 2012 Zachary Carter
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
This product bundles 'Angular' which is available under an MIT license.
|
||||||
|
|
||||||
|
Copyright (c) 2010-2016 Google, Inc. http://angularjs.org
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
This product bundles 'Angular Material' which is available under an MIT license.
|
||||||
|
|
||||||
|
Copyright (c) 2014-2016 Google, Inc. http://angularjs.org
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
This product bundles 'Angular Aria' which is available under an MIT license.
|
||||||
|
|
||||||
|
Copyright (c) 2010-2016 Google, Inc. http://angularjs.org
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
|
||||||
|
This product bundles 'Angular Animate' which is available under an MIT license.
|
||||||
|
|
||||||
|
Copyright (c) 2010-2016 Google, Inc. http://angularjs.org
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
|
||||||
|
This product bundles 'Angular Messages' which is available under an MIT license.
|
||||||
|
|
||||||
|
Copyright (c) 2010-2016 Google, Inc. http://angularjs.org
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
@ -56,6 +56,12 @@ The following binary components are provided under the Common Development and Di
|
||||||
(CDDL 1.0) (GPL3) Streaming API For XML (javax.xml.stream:stax-api:jar:1.0-2 - no url provided)
|
(CDDL 1.0) (GPL3) Streaming API For XML (javax.xml.stream:stax-api:jar:1.0-2 - no url provided)
|
||||||
(CDDL 1.0) JavaBeans Activation Framework (JAF) (javax.activation:activation:jar:1.1 - http://java.sun.com/products/javabeans/jaf/index.jsp)
|
(CDDL 1.0) JavaBeans Activation Framework (JAF) (javax.activation:activation:jar:1.1 - http://java.sun.com/products/javabeans/jaf/index.jsp)
|
||||||
|
|
||||||
|
******************
|
||||||
|
SIL OFL 1.1
|
||||||
|
******************
|
||||||
|
|
||||||
|
The following binary components are provided under the SIL Open Font License 1.1
|
||||||
|
(SIL OFL 1.1) FontAwesome (4.7.0 - https://fontawesome.com/license/free)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -18,30 +18,30 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" type="text/css" href="../nifi/js/codemirror/lib/codemirror.css"/>
|
<link rel="stylesheet" type="text/css" href="js/codemirror/lib/codemirror.css"/>
|
||||||
<link rel="stylesheet" type="text/css" href="../nifi/js/codemirror/addon/lint/lint.css">
|
<link rel="stylesheet" type="text/css" href="js/codemirror/addon/lint/lint.css">
|
||||||
<link rel="stylesheet" type="text/css" href="../nifi/assets/angular-material/angular-material.min.css">
|
<link rel="stylesheet" type="text/css" href="assets/angular-material/angular-material.min.css">
|
||||||
<link rel="stylesheet" type="text/css" href="../nifi/fonts/flowfont/flowfont.css" />
|
<link rel="stylesheet" type="text/css" href="fonts/flowfont/flowfont.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../nifi/assets/font-awesome/css/font-awesome.min.css" />
|
<link rel="stylesheet" type="text/css" href="assets/font-awesome/css/font-awesome.min.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../nifi/css/common-ui.css" />
|
<link rel="stylesheet" type="text/css" href="css/common-ui.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="css/main.css">
|
<link rel="stylesheet" type="text/css" href="css/main.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body ng-app="standardUI" ng-cloak>
|
<body ng-app="standardUI" ng-cloak>
|
||||||
|
|
||||||
<!--Parent Libraries-->
|
<!--Parent Libraries-->
|
||||||
<script type="text/javascript" src="../nifi/assets/jsonlint/lib/jsonlint.js"></script>
|
<script type="text/javascript" src="assets/jsonlint/lib/jsonlint.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/codemirror/lib/codemirror-compressed.js"></script>
|
<script type="text/javascript" src="js/codemirror/lib/codemirror-compressed.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/codemirror/addon/lint/lint.js"></script>
|
<script type="text/javascript" src="js/codemirror/addon/lint/lint.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/codemirror/addon/lint/json-lint.js"></script>
|
<script type="text/javascript" src="js/codemirror/addon/lint/json-lint.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/nf/nf-namespace.js"></script>
|
<script type="text/javascript" src="js/nf/nf-namespace.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/nf/nf-authorization-storage.js"></script>
|
<script type="text/javascript" src="js/nf/nf-authorization-storage.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/nf/nf-storage.js"></script>
|
<script type="text/javascript" src="js/nf/nf-storage.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/angular/angular.min.js"></script>
|
<script type="text/javascript" src="assets/angular/angular.min.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/angular-animate/angular-animate.min.js"></script>
|
<script type="text/javascript" src="assets/angular-animate/angular-animate.min.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/angular-aria/angular-aria.min.js"></script>
|
<script type="text/javascript" src="assets/angular-aria/angular-aria.min.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/angular-messages/angular-messages.min.js"></script>
|
<script type="text/javascript" src="assets/angular-messages/angular-messages.min.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/angular-material/angular-material.min.js"></script>
|
<script type="text/javascript" src="assets/angular-material/angular-material.min.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript" src="assets/angular-ui-codemirror/src/ui-codemirror.js"></script>
|
<script type="text/javascript" src="assets/angular-ui-codemirror/src/ui-codemirror.js"></script>
|
||||||
<script type="text/javascript" src="assets/angular-ui-router/release/angular-ui-router.min.js"></script>
|
<script type="text/javascript" src="assets/angular-ui-router/release/angular-ui-router.min.js"></script>
|
||||||
|
|
|
@ -0,0 +1,734 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 300;
|
||||||
|
src: local('Roboto Light'),
|
||||||
|
local('Roboto-Light'),
|
||||||
|
url('../fonts/Roboto/Roboto-Light.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 300;
|
||||||
|
src: local('Roboto LightItalic'),
|
||||||
|
local('Roboto-LightItalic'),
|
||||||
|
url('../fonts/Roboto/Roboto-LightItalic.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
src: local('Roboto Regular'),
|
||||||
|
local('Roboto-Regular'),
|
||||||
|
url('../fonts/Roboto/Roboto-Regular.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 500;
|
||||||
|
src: local('Roboto Medium'),
|
||||||
|
local('Roboto-Medium'),
|
||||||
|
url('../fonts/Roboto/Roboto-Medium.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
src: local('Roboto Bold'),
|
||||||
|
local('Roboto-Bold'),
|
||||||
|
url('../fonts/Roboto/Roboto-Bold.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: normal;
|
||||||
|
src: local('Roboto Italic'),
|
||||||
|
local('Roboto-Italic'),
|
||||||
|
url('../fonts/Roboto/Roboto-Italic.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto Slab';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
src: local('RobotoSlab Regular'),
|
||||||
|
local('RobotoSlab-Regular'),
|
||||||
|
url('../fonts/Roboto_Slab/RobotoSlab-Regular.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto Slab';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
src: local('RobotoSlab Bold'),
|
||||||
|
local('RobotoSlab-Bold'),
|
||||||
|
url('../fonts/Roboto_Slab/RobotoSlab-Bold.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
/*remove margin from font awesome*/
|
||||||
|
i[class^="fa-"]:before, i[class*=" fa-"]:before {
|
||||||
|
margin: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*remove margin from flowfont*/
|
||||||
|
i[class^="icon-"]:before, i[class*=" icon-"]:before {
|
||||||
|
margin: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*shift rotated font awesome icons*/
|
||||||
|
.fa-rotate-90 {
|
||||||
|
left: -2px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
display: block;
|
||||||
|
font-family: Roboto, sans-serif;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #262626;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.md-default-theme, body, html.md-default-theme, html {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.value-color {
|
||||||
|
color: #775351;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.links li {
|
||||||
|
float: left;
|
||||||
|
display: block;
|
||||||
|
margin-left: 10px;
|
||||||
|
padding: 4px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: normal;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.links span.header-link-over {
|
||||||
|
color: #264c58;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
General Styles
|
||||||
|
*/
|
||||||
|
|
||||||
|
.unselectable {
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clear {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pointer {
|
||||||
|
cursor: pointer !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blank, .unset, .sensitive {
|
||||||
|
font-weight: normal !important;
|
||||||
|
color: #a8a8a8 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.required {
|
||||||
|
font-weight: bold !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ellipsis {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ellipsis.multiline {
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-cell {
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
line-height: normal;
|
||||||
|
float: left;
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-family: 'Roboto Slab', serif;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #262626; /*base-font-color*/
|
||||||
|
letter-spacing: 0.05rem;
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* placeholder styles */
|
||||||
|
|
||||||
|
*::placeholder {
|
||||||
|
color: #728e9b;
|
||||||
|
}
|
||||||
|
*::-webkit-input-placeholder {
|
||||||
|
color: #728e9b;
|
||||||
|
}
|
||||||
|
*:-moz-placeholder {
|
||||||
|
color: #728e9b;
|
||||||
|
}
|
||||||
|
*::-moz-placeholder {
|
||||||
|
color: #728e9b;
|
||||||
|
}
|
||||||
|
*:-ms-input-placeholder {
|
||||||
|
color: #728e9b;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=text], input[type=password] {
|
||||||
|
background-color: #eaeef0;
|
||||||
|
border: 1px solid #eaeef0;
|
||||||
|
font-family: Roboto, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
padding: 0px 10px 0px 10px;
|
||||||
|
resize: none;
|
||||||
|
height: 32px;
|
||||||
|
width: 100%;
|
||||||
|
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
|
||||||
|
-moz-box-sizing: border-box; /* Firefox, other Gecko */
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #262626;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
input:focus, textarea:focus {
|
||||||
|
background-color: #fff;
|
||||||
|
border: 1px solid #004849; /*link-color*/
|
||||||
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
background-color: #eaeef0;
|
||||||
|
border: 1px solid #eaeef0;
|
||||||
|
font-family: Roboto, sans-serif;
|
||||||
|
font-size: 13px !important;
|
||||||
|
padding: 10px 10px;
|
||||||
|
resize: vertical;
|
||||||
|
height: 32px;
|
||||||
|
width: 100%;
|
||||||
|
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
|
||||||
|
-moz-box-sizing: border-box; /* Firefox, other Gecko */
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #262626;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
overflow-y: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea[disabled] {
|
||||||
|
background: #b2b8c1;
|
||||||
|
color: #dbdee2;
|
||||||
|
border: 1px solid #b2b8c1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.property-info {
|
||||||
|
list-style-type: disc;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.property-info li {
|
||||||
|
padding: 0px 0px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.nf-checkbox {
|
||||||
|
cursor: pointer;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
float: left;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nf-checkbox-label {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.nf-checkbox.disabled {
|
||||||
|
opacity: .5;
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.checkbox-unchecked {
|
||||||
|
background: transparent url(../images/inputCheckbox.png) no-repeat scroll top left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.checkbox-checked {
|
||||||
|
background: transparent url(../images/inputCheckbox.png) no-repeat scroll top right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.ajax-loading {
|
||||||
|
background-image: url(../images/iconLoading.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.ajax-complete:before {
|
||||||
|
font-family: FontAwesome;
|
||||||
|
content: "\f00c";
|
||||||
|
font-size: 16px;
|
||||||
|
color: #70B59A;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.ajax-error:before {
|
||||||
|
font-family: FontAwesome;
|
||||||
|
content: "\f00d";
|
||||||
|
font-size: 16px;
|
||||||
|
color: #D18686;
|
||||||
|
}
|
||||||
|
|
||||||
|
.refresh-button {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-draggable .dialog-header {
|
||||||
|
cursor: move;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.link:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.link {
|
||||||
|
cursor: pointer;
|
||||||
|
color: #004849; /*link-color*/
|
||||||
|
font-weight: normal;
|
||||||
|
display: inline-block;
|
||||||
|
border-bottom: 1px solid #CCDADB;
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: Roboto;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.link-over {
|
||||||
|
border-bottom: 1px solid #004849;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.link-bold {
|
||||||
|
font-weight: bold;
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
height: 28px;
|
||||||
|
width: 28px;
|
||||||
|
border: 1px solid #CCDADB; /*tint link-color 80%*/
|
||||||
|
background-color: rgba(249, 250, 251, 0.97);
|
||||||
|
color: #004849;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.refresh-button {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
border: 1px solid #004849; /*link-color*/
|
||||||
|
}
|
||||||
|
|
||||||
|
button:disabled {
|
||||||
|
color: #CCDADB !important; /*tint link-color 80%*/
|
||||||
|
cursor: not-allowed;
|
||||||
|
border: 1px solid #CCDADB; /*tint link-color 80%*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/* angular material override */
|
||||||
|
|
||||||
|
button:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
input:focus {
|
||||||
|
background-color: #fff;
|
||||||
|
border: 1px solid #004849; /*link-color*/
|
||||||
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* filter controls */
|
||||||
|
|
||||||
|
.filter-controls {
|
||||||
|
position: absolute;
|
||||||
|
top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-container {
|
||||||
|
height: 32px;
|
||||||
|
width: 100%;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter {
|
||||||
|
margin-right: 3px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.filter {
|
||||||
|
width: 173px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-type,
|
||||||
|
.filter-status-dropdown {
|
||||||
|
float: left;
|
||||||
|
width: 148px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-status {
|
||||||
|
margin-top: 10px;
|
||||||
|
color: #775351;
|
||||||
|
font-family: Roboto;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-field.summary-filter-primary-node-container {
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-top: 8px;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* overlay icon styles */
|
||||||
|
|
||||||
|
.stop-configure-icon.fa-stop {
|
||||||
|
display : inline-block;
|
||||||
|
font-size: 15px;
|
||||||
|
position : relative;
|
||||||
|
top : -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stop-configure-icon::after {
|
||||||
|
content : "\f013";
|
||||||
|
font-size: 14px;
|
||||||
|
position : relative;
|
||||||
|
top : 0px;
|
||||||
|
left : -8px;
|
||||||
|
color : #ffffff;
|
||||||
|
-webkit-text-stroke-width : 1px;
|
||||||
|
-webkit-text-stroke-color : #004849;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
*.stop-configure-icon + span {
|
||||||
|
display : inline-block;
|
||||||
|
padding : 0px 0px 0px 0px;
|
||||||
|
margin-left : -10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* buttons */
|
||||||
|
|
||||||
|
button.fa {
|
||||||
|
color: #004849;
|
||||||
|
font-size: 16px;
|
||||||
|
cursor: pointer;
|
||||||
|
line-height: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.icon {
|
||||||
|
color: #004849;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.button-icon span {
|
||||||
|
padding-left: 5px;
|
||||||
|
vertical-align: middle;
|
||||||
|
font-style: normal;
|
||||||
|
font-family: Roboto;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.button-icon {
|
||||||
|
float: left !important;
|
||||||
|
margin-left: 0;
|
||||||
|
font-size: 18px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.button.auto-width,
|
||||||
|
div.button-icon.auto-width {
|
||||||
|
width : auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.button {
|
||||||
|
height: 32px;
|
||||||
|
width: 90px;
|
||||||
|
padding: 0 8px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 11px;
|
||||||
|
line-height: 33px;
|
||||||
|
text-align: center;
|
||||||
|
border: 0px;
|
||||||
|
float: right;
|
||||||
|
position: relative;
|
||||||
|
background: #728E9B;
|
||||||
|
color: #fff;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.button.disabled-button {
|
||||||
|
color: #a8a8a8 !important;
|
||||||
|
cursor: not-allowed;
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.button:hover:not(.disabled-button) {
|
||||||
|
background-color: #004849;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.secondary-button {
|
||||||
|
height: 32px;
|
||||||
|
width: 90px;
|
||||||
|
padding: 0 8px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 11px;
|
||||||
|
line-height: 33px;
|
||||||
|
text-align: center;
|
||||||
|
border: 0px;
|
||||||
|
float: right;
|
||||||
|
position: relative;
|
||||||
|
background: #E3E8EB;
|
||||||
|
color: #004849;
|
||||||
|
cursor:pointer
|
||||||
|
}
|
||||||
|
|
||||||
|
div.secondary-button:hover {
|
||||||
|
background-color: #C7D2D7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* tooltips */
|
||||||
|
|
||||||
|
.qtip-nifi {
|
||||||
|
border: 0px !important;
|
||||||
|
border-radius: 2px;
|
||||||
|
background-color: rgba(0, 0, 0, 0.54) !important;
|
||||||
|
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
|
||||||
|
font-family: Roboto;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.nifi-tooltip {
|
||||||
|
border: 0px !important;
|
||||||
|
border-radius: 2px;
|
||||||
|
background-color: rgba(0, 0, 0, 0.80) !important;
|
||||||
|
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
|
||||||
|
font-family: Roboto;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #fff !important;
|
||||||
|
max-width: 500px;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scrollable {
|
||||||
|
border-bottom: 1px solid #d0dbe0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*context menu */
|
||||||
|
|
||||||
|
.context-menu {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10006;
|
||||||
|
font-size: 13px;
|
||||||
|
padding:3px 0;
|
||||||
|
background-color:rgba(249,250,251,0.97); /*tint base-color 96%*/
|
||||||
|
border:1px solid #004849; /*link-color*/
|
||||||
|
box-shadow: 0 3px 6px rgba(0,0,0,0.3);
|
||||||
|
width: 215px;
|
||||||
|
max-height: inherit;
|
||||||
|
color:#004849
|
||||||
|
}
|
||||||
|
|
||||||
|
div.context-menu-item {
|
||||||
|
cursor: pointer;
|
||||||
|
height: 20px;
|
||||||
|
padding-top: 4px;
|
||||||
|
padding-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.context-menu-item.hover {
|
||||||
|
background-color:#C7D2D7; /*tint base-color 60%*/
|
||||||
|
box-shadow:0 1px 1px rgba(0,0,0,0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.context-menu-item-img {
|
||||||
|
float: left;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.context-menu-item-img.fa {
|
||||||
|
position: relative;
|
||||||
|
top: 2px;
|
||||||
|
left: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.context-menu-item-img.icon {
|
||||||
|
position: relative;
|
||||||
|
top: 1px;
|
||||||
|
left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.context-menu-item-text {
|
||||||
|
margin-left: 4px;
|
||||||
|
line-height: 16px;
|
||||||
|
float: left;
|
||||||
|
color: #262626;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.context-menu-group-item-img {
|
||||||
|
float: right;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
background-size: cover;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.context-menu-item-separator {
|
||||||
|
height: 1px;
|
||||||
|
background-color: #C7D2D7;
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-bottom: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* search */
|
||||||
|
|
||||||
|
li.search-no-matches {
|
||||||
|
padding: 4px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #aaa;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* progress bars */
|
||||||
|
|
||||||
|
md-progress-linear > div {
|
||||||
|
background-color: #eaeef0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-name {
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 500;
|
||||||
|
font-family: Roboto Slab;
|
||||||
|
text-transform: capitalize;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
color: #262626;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-name .fa {
|
||||||
|
color: #004849;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-field .fa {
|
||||||
|
color: #004849;
|
||||||
|
margin-left: 5px;
|
||||||
|
line-height: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-field {
|
||||||
|
line-height: normal;
|
||||||
|
width: 100%;
|
||||||
|
color: #775351;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-header {
|
||||||
|
color: #728e9b;
|
||||||
|
font-size: 12pt;
|
||||||
|
font-family: 'Roboto Slab';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror {
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
font-family: monospace;
|
||||||
|
background-color: #fff;
|
||||||
|
cursor: default;
|
||||||
|
line-height: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* jquery ui autocomplete override */
|
||||||
|
|
||||||
|
.ui-autocomplete {
|
||||||
|
overflow: auto !important;
|
||||||
|
border: 1px solid #aaaaaa !important;
|
||||||
|
font-size: 12px !important;
|
||||||
|
font-family: Roboto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-menu .ui-menu-item a {
|
||||||
|
display: block;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin: 0 !important;
|
||||||
|
color: #333 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-menu .ui-menu-item a.ui-state-active {
|
||||||
|
background: #D4E0E5 !important;
|
||||||
|
border: 1px solid #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* jquery ui slider override */
|
||||||
|
|
||||||
|
.ui-slider-handle.ui-state-active {
|
||||||
|
background: #fff !important;
|
||||||
|
}
|
|
@ -0,0 +1,202 @@
|
||||||
|
|
||||||
|
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.
|
|
@ -0,0 +1,202 @@
|
||||||
|
|
||||||
|
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.
|
|
@ -0,0 +1,87 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: 'flowfont';
|
||||||
|
src: url('./flowfont.eot?8516181');
|
||||||
|
src: url('./flowfont.eot?8516181#iefix') format('embedded-opentype'),
|
||||||
|
url('./flowfont.woff2?8516181') format('woff2'),
|
||||||
|
url('./flowfont.woff?8516181') format('woff'),
|
||||||
|
url('./flowfont.ttf?8516181') format('truetype'),
|
||||||
|
url('./flowfont.svg?8516181#flowfont') format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
|
||||||
|
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
|
||||||
|
/*
|
||||||
|
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||||
|
@font-face {
|
||||||
|
font-family: 'flowfont';
|
||||||
|
src: url('../font/flowfont.svg?8516181#flowfont') format('svg');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
[class^="icon-"]:before, [class*=" icon-"]:before {
|
||||||
|
font-family: "flowfont";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
speak: never;
|
||||||
|
|
||||||
|
display: inline-block;
|
||||||
|
text-decoration: inherit;
|
||||||
|
width: 1em;
|
||||||
|
margin-right: .2em;
|
||||||
|
text-align: center;
|
||||||
|
/* opacity: .8; */
|
||||||
|
|
||||||
|
/* For safety - reset parent styles, that can break glyph codes*/
|
||||||
|
font-variant: normal;
|
||||||
|
text-transform: none;
|
||||||
|
|
||||||
|
/* fix buttons height, for twitter bootstrap */
|
||||||
|
line-height: 1em;
|
||||||
|
|
||||||
|
/* Animation center compensation - margins should be symmetric */
|
||||||
|
/* remove if not needed */
|
||||||
|
margin-left: .2em;
|
||||||
|
|
||||||
|
/* you can be more comfortable with increased icons size */
|
||||||
|
/* font-size: 120%; */
|
||||||
|
|
||||||
|
/* Font smoothing. That was taken from TWBS */
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
|
||||||
|
/* Uncomment for 3D effect */
|
||||||
|
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-funnel-add:before { content: '\e800'; } /* '' */
|
||||||
|
.icon-counter:before { content: '\e801'; } /* '' */
|
||||||
|
.icon-enable-false:before { content: '\e802'; } /* '' */
|
||||||
|
.icon-funnel:before { content: '\e803'; } /* '' */
|
||||||
|
.icon-group:before { content: '\e804'; } /* '' */
|
||||||
|
.icon-group-remote:before { content: '\e805'; } /* '' */
|
||||||
|
.icon-label:before { content: '\e806'; } /* '' */
|
||||||
|
.icon-processor:before { content: '\e807'; } /* '' */
|
||||||
|
.icon-provenance:before { content: '\e808'; } /* '' */
|
||||||
|
.icon-template:before { content: '\e809'; } /* '' */
|
||||||
|
.icon-transmit-false:before { content: '\e80a'; } /* '' */
|
||||||
|
.icon-zoom-actual:before { content: '\e80b'; } /* '' */
|
||||||
|
.icon-zoom-fit:before { content: '\e80c'; } /* '' */
|
||||||
|
.icon-label-add:before { content: '\e80d'; } /* '' */
|
||||||
|
.icon-template-add:before { content: '\e80e'; } /* '' */
|
||||||
|
.icon-group-add:before { content: '\e80f'; } /* '' */
|
||||||
|
.icon-template-import:before { content: '\e810'; } /* '' */
|
||||||
|
.icon-template-save:before { content: '\e811'; } /* '' */
|
||||||
|
.icon-group-remote-add:before { content: '\e812'; } /* '' */
|
||||||
|
.icon-port-out-add:before { content: '\e813'; } /* '' */
|
||||||
|
.icon-port-in-add:before { content: '\e814'; } /* '' */
|
||||||
|
.icon-processor-add:before { content: '\e815'; } /* '' */
|
||||||
|
.icon-lineage:before { content: '\e816'; } /* '' */
|
||||||
|
.icon-import-from-registry-add:before { content: '\e81d'; } /* '' */
|
||||||
|
.icon-import-from-registry:before { content: '\e81e'; } /* '' */
|
||||||
|
.icon-port-in:before { content: '\e832'; } /* '' */
|
||||||
|
.icon-port-out:before { content: '\e833'; } /* '' */
|
||||||
|
.icon-connect:before { content: '\e834'; } /* '' */
|
||||||
|
.icon-connect-add:before { content: '\e835'; } /* '' */
|
||||||
|
.icon-threads:before { content: '\e83f'; } /* '' */
|
||||||
|
.icon-drop:before { content: '\e888'; } /* '' */
|
|
@ -0,0 +1,72 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>Copyright (C) 2023 by original authors @ fontello.com</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="flowfont" horiz-adv-x="1000" >
|
||||||
|
<font-face font-family="flowfont" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
||||||
|
<missing-glyph horiz-adv-x="1000" />
|
||||||
|
<glyph glyph-name="funnel-add" unicode="" d="M948 786h-114a52 52 0 0 1-53-52v-147l-183-77a305 305 0 0 1-35 11l78 110h51a52 52 0 0 1 52 52v115a52 52 0 0 1-52 52h-114a52 52 0 0 1-52-52v-114a52 52 0 0 1 52-53h29l-74-108c-9 0-18-2-28-2s-19 4-28 3l-73 107h18a52 52 0 0 1 52 52v115a52 52 0 0 1-52 52h-114a52 52 0 0 1-51-52v-114a52 52 0 0 1 51-53h61l75-111a379 379 0 0 1-38-8l-187 75v147a52 52 0 0 1-53 52h-114a52 52 0 0 1-52-52v-114a52 52 0 0 1 52-51h156l159-68a39 39 0 0 1-28-29c0-28 74-51 166-51s167 22 167 50a40 40 0 0 1-29 31l159 67h146a52 52 0 0 1 52 51v114a52 52 0 0 1-52 52z m-365-128a31 31 0 0 0-32 31v104a31 31 0 0 0 32 31h105a31 31 0 0 0 31-31v-104a31 31 0 0 0-31-31h-105z m-270 0a31 31 0 0 0-32 31v104a31 31 0 0 0 32 31h104a31 31 0 0 0 31-31v-104a31 31 0 0 0-31-31h-104z m-121-33a31 31 0 0 0-31-32h-104a31 31 0 0 0-31 32v104a31 31 0 0 0 31 31h104a31 31 0 0 0 31-31v-104z m781 0a31 31 0 0 0-31-32h-103a31 31 0 0 0-31 32v104a31 31 0 0 0 31 31h104a31 31 0 0 0 31-31v-104z m-689-257a234 234 0 1 1 234-234 234 234 0 0 1-234 234z m140-268a9 9 0 0 0-9-9h-81a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-66a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-80a9 9 0 0 0-9 9v66a9 9 0 0 0 9 9h81a9 9 0 0 1 10 9v82a9 9 0 0 0 7 8h65a9 9 0 0 0 9-9v-81a9 9 0 0 1 9-9h81a9 9 0 0 0 9-9v-66z m153 252v-164a18 18 0 0 1 19-19h60c12 0 14-7 7-15l-115-122a281 281 0 0 1-164 366 514 514 0 0 1 121-14c20 0 194 2 202 80h12v-2a31 31 0 0 0 0-5c0-69-78-95-142-104z m51-301v-150a52 52 0 0 0-52-51h-138a52 52 0 0 0-43 22 281 281 0 0 1 43 23 31 31 0 0 1 18-6h104a31 31 0 0 1 31 31v96z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="counter" unicode="" d="M878-17h-756c-67 0-122 54-122 121v492c0 67 55 121 122 121h756c68 0 122-54 122-121v-492c0-67-54-121-122-121z m-756 670c-32 0-58-26-58-57v-492c0-31 26-57 58-57h756c32 0 58 26 58 57v492c0 31-26 57-58 57h-756z m358-535h-314v62l148 158c20 22 35 42 45 58 10 17 15 33 15 47 0 21-5 37-15 48-11 12-25 18-45 18-20 0-36-7-48-21-12-15-18-33-18-56h-91c0 28 7 53 20 76 13 23 32 41 56 54 25 13 52 20 83 20 47 0 84-11 110-34s39-55 39-96c0-22-6-45-18-69-11-23-31-51-60-82l-104-110h197v-73z m344 457c8-17 12-36 12-57 0-21-7-41-19-58-13-18-30-31-51-41 26-9 45-23 58-41 13-19 19-40 19-66 0-40-15-73-44-97s-69-37-118-37c-46 0-83 12-112 36-29 24-44 56-44 96h91c0-18 7-32 20-42 12-11 28-17 47-17 22 0 39 6 51 17 12 12 18 27 18 46 0 45-25 68-75 68h-48v71h48c23 0 40 6 51 17 12 12 17 27 17 46 0 19-5 33-16 43-11 11-26 16-45 16l140 0z m-141 0c-18 0-32-5-44-15-11-9-17-21-17-37h-91c0 19 4 36 12 52h140z m0-457l25 39h92v-39h-117z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="enable-false" unicode="" d="M912-123l-297 296-144-308c-5-9-14-15-25-15-3 0-6 1-9 1-13 4-21 17-18 30l96 392-71 70-150-37c-3-1-5-1-7-1-7 0-14 2-19 7-7 5-10 14-8 23l38 154-251 250 41 42 865-862-41-42z m-117 683c5 9 3 20-4 27-5 5-12 9-20 9-3 0-5-1-7-1l-238-59 102 278c2 4 3 7 3 11 0 14-12 25-27 25h-197c-12 0-23-8-26-19l-42-172 343-342 113 243z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="funnel" unicode="" d="M782 734v-147l-183-77c-11 2-21 9-35 11l77 111h51c28 0 52 23 52 52v114c0 29-24 52-52 52h-114c-29 0-52-23-52-52v-114c0-29 23-52 52-52h29l-74-108c-9 0-18-2-28-2-9 0-19 3-28 3l-73 107h18c29 0 52 23 52 52v114c0 29-23 52-52 52h-113c-29 0-53-23-53-52v-114c0-29 24-52 53-52h60l75-111c-13-2-27-6-38-9l-188 75v147c0 29-23 52-52 52h-114c-29 0-52-23-52-52v-114c0-29 23-52 52-52h157l158-68c-18-8-28-19-28-29 0-27 74-50 166-50 92 0 166 22 166 49 0 10-10 22-28 30l159 68h146c29 0 52 23 52 52v114c0 29-23 52-52 52h-114c-29 0-52-23-52-52z m-231-45v104c0 17 14 31 32 31h104c17 0 31-14 31-31v-104c0-17-14-31-31-31h-104c-18 0-32 14-32 31z m-269 0v104c0 17 14 31 31 31h105c17 0 31-14 31-31v-104c0-17-14-31-31-31h-105c-17 0-31 14-31 31z m-121-95h-104c-17 0-31 14-31 31v104c0 17 14 31 31 31h104c17 0 31-14 31-31v-104c0-17-14-31-31-31z m782 0h-104c-17 0-31 14-31 31v104c0 17 14 31 31 31h104c17 0 31-14 31-31v-104c0-17-14-31-31-31z m-452-592c8-9 20-9 28 0l144 153c8 8 5 16-6 16h-61c-11 0-19 7-19 18v164c64 9 142 35 142 104 0 2-1 3-1 5l-1 2-10 0c-8-78-182-80-202-80-20 0-194 2-202 80l-10 0 0-2c0-2 0-3 0-5 0-69 79-95 143-104v-164c0-11-11-18-22-18h-60c-11 0-14-8-7-16l144-153z m137 50v-150c0-29-23-52-52-52h-139c-29 0-52 23-52 52v150l38-36v-96c0-18 14-32 31-32h105c17 0 31 14 31 32v96l38 36z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="group" unicode="" d="M82 842c-45 0-82-36-82-82v-110h192v192h-110z m53-134h-77v36c0 22 18 41 41 41h36v-77z m783 134h-110v-192h192v110c0 46-37 82-82 82z m24-134h-77v77h36c23 0 41-19 41-41v-36z m-942-658v-110c0-46 37-82 82-82h110v192h-192z m135-135h-36c-23 0-41 19-41 41v36h77v-77z m673 135v-192h110c45 0 82 36 82 82v110h-192z m134-94c0-22-18-41-41-41h-36v77h77v-36z m-883 126v536h75v-536h-75z m807 0v536h75v-536h-75z m-634 627v75h536v-75h-536z m0-793v75h536v-75h-536z m454 530h-92v71c0 46-37 82-82 82h-179c-45 0-82-36-82-82v-178c0-46 37-82 82-82h92v-72c0-45 37-82 82-82h179c45 0 82 37 82 82v179c0 45-37 82-82 82z m-261-82v-67h-84c-27 0-49 22-49 49v164c0 27 22 49 49 49h163c27 0 49-22 49-49v-64h-46c-45 0-82-37-82-82z m302-172c0-27-22-49-49-49h-164c-27 0-49 22-49 49v164c0 27 22 49 49 49h164c27 0 49-22 49-49v-163z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="group-remote" unicode="" d="M82 842c-45 0-82-36-82-82v-110h192v192h-110z m53-134h-77v36c0 22 18 41 41 41h36v-77z m783 134h-110v-192h192v110c0 46-37 82-82 82z m24-134h-77v77h36c23 0 41-19 41-41v-36z m-942-658v-110c0-46 37-82 82-82h110v192h-192z m135-135h-36c-23 0-41 19-41 41v36h77v-77z m673 135v-192h110c45 0 82 36 82 82v110h-192z m134-94c0-22-18-41-41-41h-36v77h77v-36z m-211 433c-5 78-69 138-147 138-42 0-82-18-110-49-16 17-38 26-61 26-48 0-87-39-87-86l0-2c-4 1-7 1-11 1-67 0-122-55-122-122 0-67 55-122 122-122h384c60 0 110 50 110 111 0 49-32 91-78 105z m-32-158h-384c-86 0-75 143 11 127l68-13-10 68c-4 28 34 43 51 22l39-50 40 50c49 62 157 27 159-54l1-38 37-9c57-13 46-103-12-103z m-640-149v536h75v-536h-75z m882 0h-75v536h75v-536z m-709 627v75h536v-75h-536z m0-793v75h536v-75h-536z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="label" unicode="" d="M670 157c2 4 5 7 8 11l322 321v-43l-303-303c-3-3-7-6-11-8l-36-18 20 40z m-225-271l315 93c7 2 13 6 18 11l222 222v83l-207-207c-3-3-5-5-6-8l-40-65c-5-8-12-14-21-17l-167-61-5 10c-15 33-41 59-74 75l-10 5 60 166c3 9 10 17 18 21l62 38c3 2 6 4 8 6l382 382v83l-475-473c-5-5-8-11-10-18l-96-320c-5-16 10-31 26-26z m160 712c40 0 70 18 70 41s-30 40-70 40h-535c-40 0-70-17-70-40s30-41 70-41h535z m-59-136c40 0 70 18 70 41s-30 41-70 41h-476c-40 0-70-18-70-41s30-41 70-41h476z m-228-135c40 0 70 17 70 40 0 24-30 41-70 41h-248c-40 0-70-17-70-40 0-24 30-41 70-41h248z m178 407c40 0 70 17 70 40s-30 41-70 41h-426c-40 0-70-17-70-41s30-40 70-40h426z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="processor" unicode="" d="M101 832l-50-50-39-88 39 39v-120l-39-88 39 39v-120l-39-87 39 39v-121l-39-87 39 39v-121l-39-87 39 39v-121l-39-87 63 63h121l-15-63 63 63h121l-15-63 63 63h120l-14-63 63 63h120l-14-63 63 63h120l-15-63 114 113c11 12 18 28 18 44v760c0 46-37 83-83 83h-760c-16 0-32-7-44-18z m798-850h-738c-23 0-41 18-41 41v738c0 23 18 42 41 42h738c23 0 42-19 42-42v-738c0-23-19-41-42-41z m-119 564c-2 9-4 19-11 27-57 75-144 119-239 119-65 0-128-21-180-60-127-96-156-278-66-409 1-3 2-6 4-8 57-76 144-120 239-120 66 0 128 21 180 61 68 51 111 123 122 202 9 66-8 133-49 188z m-54-322c-39-30-87-45-137-45-80 0-157 40-208 106-11 15-28 24-46 24-13 0-25-4-36-12-12-10-20-23-23-39 0-4 1-7 1-11-60 110-39 246 55 317 39 29 86 45 136 45 80 0 158-40 208-107 11-15 28-23 47-23 13 0 25 4 35 11 16 13 23 32 22 51 63-110 42-245-54-317z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="provenance" unicode="" d="M827 160v-258c0-29-23-52-51-52h-724c-29 0-52 23-52 52v724c0 28 23 51 52 51h258v-465c0-29 23-52 52-52h465z m-193 293c-17 0-31 14-31 31v271h-150c-17 0-31-13-31-30v-422c0-17 14-30 31-30h422c17 0 30 13 30 30v150h-271z m366 145v193c0 33-26 59-59 59h-193c-32 0-58-26-58-59v-193c0-32 26-58 58-58h193c33 0 59 26 59 58z m-241 183h172v-172h-172v172z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="template" unicode="" d="M995 413v-157a31 31 0 0 0-31-31h-231l-195-156h153a31 31 0 0 0 32-31v-157a31 31 0 0 0-32-31h-434a31 31 0 0 0-31 31v157a31 31 0 0 0 31 31h231l196 156h-153a31 31 0 0 0-31 31v157a31 31 0 0 0 31 31h122l-373 187h-244a31 31 0 0 0-31 32v156a31 31 0 0 0 31 31h433a31 31 0 0 0 31-31v-156a31 31 0 0 0-31-32h-122l373-187h244a31 31 0 0 0 31-31z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="transmit-false" unicode="" d="M44 835l-44-44 163-163c-52-74-83-165-83-262 0-255 206-461 460-461 98 0 189 32 264 85l125-125 44 44-929 926z m287-374l60-60c-2-11-4-23-4-36 0-84 68-153 153-153 12 0 24 2 36 5l60-60c-29-14-62-22-96-22-127 0-230 103-230 230 0 35 8 67 21 96z m209-479c-212 0-383 172-383 383 0 77 23 148 62 208l55-55c-26-45-41-97-41-153 0-169 138-306 307-306 56 0 108 15 153 41l56-55c-60-40-132-63-209-63z m0 767c212 0 383-172 383-383 0-75-21-145-58-204l55-55v0c50 73 80 163 80 258 0 255-206 460-460 460-96 0-186-29-260-80l56-55c59 37 129 59 204 59z m269-531c24 44 38 94 38 148 0 169-138 306-307 306-54 0-104-14-148-38l57-57c28 12 59 18 91 18 127 0 230-102 230-230 0-32-7-62-18-90l57-57z m-299 298l180-180c2 10 3 19 3 30 0 84-68 153-153 153-10 0-20-1-30-3z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="zoom-actual" unicode="" d="M42-150c-23 0-42 19-42 42v916c0 23 19 42 42 42h83c23 0 42-19 42-42v-916c0-23-19-42-42-42h-83z m416 233c-22 0-41 19-41 42v108c0 23 19 42 41 42h84c23 0 41-19 41-42v-108c0-23-18-42-41-42h-84z m0 343c-22 0-41 18-41 41v108c0 23 19 42 41 42h84c23 0 41-19 41-42v-108c0-23-18-41-41-41h-84z m417-576c-23 0-42 19-42 42v916c0 23 19 42 42 42h83c23 0 42-19 42-42v-916c0-23-19-42-42-42h-83z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="zoom-fit" unicode="" d="M637 779c-12 12-15 30-9 45 7 16 22 26 39 26h291c23 0 42-19 42-42v-291c0-17-10-32-25-39-6-2-11-3-17-3-11 0-21 5-29 12l-292 292z m-566-292c-8-7-18-12-29-12-6 0-11 1-16 3-16 7-26 22-26 39v291c0 23 19 42 42 42h291c17 0 32-10 39-26 6-15 3-33-9-45l-292-292z m292-566c12-12 15-30 9-45-7-16-22-26-39-26h-291c-23 0-42 19-42 42v291c0 17 10 32 26 39 15 6 33 3 45-9l292-292z m566 292c12 12 30 15 46 9 15-7 25-22 25-39v-291c0-23-19-42-42-42h-291c-17 0-32 10-39 26-6 15-3 33 9 45l292 292z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="label-add" unicode="" d="M670 157a42 42 0 0 0 8 11l322 321v-43l-303-303a42 42 0 0 0-11-8l-36-17z m-65 441c40 0 70 18 70 41s-31 40-70 40h-535c-39 0-70-16-70-40s31-41 70-41h535z m-58-135c40 0 70 17 70 40s-32 41-70 41h-477c-39 0-70-18-70-41s31-40 70-40h477z m-51 271c40 0 70 17 70 40s-31 41-70 41h-426c-39 0-70-17-70-41s31-40 70-40h426z m-426-406h6a283 283 0 0 0 137 81h-143c-39-1-70-18-70-41s31-41 70-41z m214 40a234 234 0 1 1 234-234 234 234 0 0 1-234 234z m140-268a9 9 0 0 0-9-9h-81a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-66a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-80a9 9 0 0 0-9 9v66a9 9 0 0 0 9 9h81a9 9 0 0 1 10 9v82a9 9 0 0 0 7 8h65a9 9 0 0 0 9-9v-81a9 9 0 0 1 9-9h81a9 9 0 0 0 9-9v-66z m363-22l-40-64a42 42 0 0 0-21-18l-167-60-4 10a156 156 0 0 1-28 40 285 285 0 0 0-100-99 20 20 0 0 1 18-3l315 94a42 42 0 0 1 18 11l222 223v82l-207-206a42 42 0 0 1-6-8z m-250 182a281 281 0 0 0 17-43l56 34a42 42 0 0 1 8 6l382 383v83z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="template-add" unicode="" d="M723 38v-157a31 31 0 0 0-32-31h-406a283 283 0 0 1 276 219h132a31 31 0 0 0 30-31z m241 406h-244l-372 187h121a31 31 0 0 1 31 32v156a31 31 0 0 1-31 31h-433a31 31 0 0 1-31-31v-156a31 31 0 0 1 31-32h244l372-187h-121a31 31 0 0 1-31-31v-94a283 283 0 0 0 53-94h132l-117-94a284 284 0 0 0-5-43l170 137h231a31 31 0 0 1 31 31v157a31 31 0 0 1-31 31z m-446-310a234 234 0 1 0-234 234 234 234 0 0 0 234-234z m-94 32a9 9 0 0 1-9 9h-81a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-66a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-80a9 9 0 0 1-9-9v-66a9 9 0 0 1 9-9h81a9 9 0 0 0 10-9v-81a9 9 0 0 1 9-9h65a9 9 0 0 1 9 9v81a9 9 0 0 0 9 9h81a9 9 0 0 1 8 9v66z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="group-add" unicode="" d="M82 842a82 82 0 0 1-82-82v-110h192v192h-110z m53-134h-77v35a41 41 0 0 0 41 41h36v-76z m783 134h-110v-192h192v110a82 82 0 0 1-82 82z m24-134h-77v76h36a41 41 0 0 0 41-41v-35z m-134-657v-192h110a82 82 0 0 1 82 81v110h-192z m134-94a41 41 0 0 0-41-40h-36v76h77v-36z m-76 126v535h75v-536h-75z m-634 626v74h536v-75h-536z m536-719v-75h-302a285 285 0 0 1 62 75h240z m-485 375a234 234 0 1 1 235-234 234 234 0 0 1-234 237z m141-265a9 9 0 0 0-9-9h-81a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-66a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-80a9 9 0 0 0-9 9v66a9 9 0 0 0 9 9h81a9 9 0 0 1 10 9v82a9 9 0 0 0 7 8h65a9 9 0 0 0 9-9v-81a9 9 0 0 1 9-9h81a9 9 0 0 0 9-9v-66z m-365 206v312h75v-243a285 285 0 0 1-75-69z m709 58v-179a82 82 0 0 0-82-82h-120a286 286 0 0 1 1 31v10h111a49 49 0 0 1 49 50v162a49 49 0 0 1-49 49h-164a49 49 0 0 1-49-49v-6a284 284 0 0 1-38 27 82 82 0 0 0 80 67h46v66a49 49 0 0 1-49 49h-163a49 49 0 0 1-49-49v-94h-8a286 286 0 0 1-31-2v103a82 82 0 0 0 80 83h179a82 82 0 0 0 82-83v-72h92a82 82 0 0 0 82-81z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="template-import" unicode="" d="M990 432v-153a31 31 0 0 0-31-31h-430a31 31 0 0 0-31 31v153a31 31 0 0 0 31 31h116l-361 172h-243a31 31 0 0 0-31 31v153a31 31 0 0 0 31 31h430a31 31 0 0 0 31-31v-153a31 31 0 0 0-31-32h-115l360-171h243a31 31 0 0 0 31-31z m-656-558h-113a63 63 0 0 0-57 38h-154v-31a31 31 0 0 1 31-31h474a31 31 0 0 1 31 31v31h-154a63 63 0 0 0-57-39z m-115 31h115a31 31 0 0 1 31 31v151a13 13 0 0 0 14 13h159c8 0 10 4 5 9l-256 259a13 13 0 0 1-19 0l-255-258c-5-5-3-10 4-10h159a13 13 0 0 0 14-13v-152a31 31 0 0 1 31-31z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="template-save" unicode="" d="M990 432v-153a31 31 0 0 0-31-31h-430a31 31 0 0 0-31 31v153a31 31 0 0 0 31 31h116l-361 172h-243a31 31 0 0 0-31 31v153a31 31 0 0 0 31 31h430a31 31 0 0 0 31-31v-153a31 31 0 0 0-31-32h-115l360-171h243a31 31 0 0 0 31-31z m-508-560a22 22 0 0 0-22-22h-438a22 22 0 0 0-22 22v437a22 22 0 0 0 22 22h312a47 47 0 0 0 29-12l106-106a47 47 0 0 0 12-28v-313z m-40 18v286a25 25 0 0 1-7 15l-91 92a44 44 0 0 1-23 9v-139a22 22 0 0 0-22-22h-197a22 22 0 0 0-22 22v139h-40v-402h40v139a22 22 0 0 0 22 22h278a22 22 0 0 0 22-22v-139h40z m-81 0v121h-240v-121h241z m-80 402h-93v-121h71a22 22 0 0 1 22 23v98z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="group-remote-add" unicode="" d="M82 842a82 82 0 0 1-82-82v-110h192v192h-110z m53-134h-77v35a41 41 0 0 0 41 41h36v-76z m783 134h-110v-192h192v110a82 82 0 0 1-82 82z m24-134h-77v76h36a41 41 0 0 0 41-41v-35z m-134-657v-192h110a82 82 0 0 1 82 81v110h-192z m134-94a41 41 0 0 0-41-40h-36v76h77v-36z m0 126h-75v535h75v-536z m-710 626v74h536v-75h-536z m536-719v-75h-302a285 285 0 0 1 62 75h240z m-485 375a234 234 0 1 1 235-234 234 234 0 0 1-234 237z m141-265a9 9 0 0 0-9-9h-81a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-66a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-80a9 9 0 0 0-9 9v66a9 9 0 0 0 9 9h81a9 9 0 0 1 10 9v82a9 9 0 0 0 7 8h65a9 9 0 0 0 9-9v-81a9 9 0 0 1 9-9h81a9 9 0 0 0 9-9v-66z m-365 206v312h75v-243a285 285 0 0 1-75-69z m750-22a111 111 0 0 0-111-111h-134a281 281 0 0 1-14 59h148a53 53 0 0 1 13 103l-37 9v38a91 91 0 0 1-160 53l-39-50-39 50a29 29 0 0 1-52-22l3-16a281 281 0 0 1-61 16v3a87 87 0 0 0 148 61 148 148 0 0 0 257-89 110 110 0 0 0 78-104z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="port-out-add" unicode="" d="M284 368a234 234 0 1 1 234-234 234 234 0 0 1-234 234z m140-268a9 9 0 0 0-9-9h-81a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-66a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-80a9 9 0 0 0-9 9v66a9 9 0 0 0 9 9h81a9 9 0 0 1 10 9v82a9 9 0 0 0 7 8h65a9 9 0 0 0 9-9v-81a9 9 0 0 1 9-9h81a9 9 0 0 0 9-9v-66z m365 594v-102l-39 39v63a38 38 0 0 1-39 37h-615a38 38 0 0 1-38-37v-390a281 281 0 0 1-58-170v579l41 41a58 58 0 0 0 41 17h630a77 77 0 0 0 77-77z m205-421l-341-339c-9-8-16-6-16 7v192a22 22 0 0 1-22 22h-49a281 281 0 0 1-11 63h133a11 11 0 0 0 10-11v-132c0-6 4-7 8-3l212 209a11 11 0 0 1 0 15l-212 210c-4 5-8 3-8-3v-130a11 11 0 0 0-10-11h-208a11 11 0 0 1-11-12 283 283 0 0 1-63 40v10a22 22 0 0 0 22 22h188a22 22 0 0 1 22 21v194c0 11 6 15 15 6l341-339a22 22 0 0 0 0-31z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="port-in-add" unicode="" d="M786 148h-54v276h54v-276z m-179 154l-353 351c-9 10-16 6-16-6v-200a23 23 0 0 0-22-23h-193a23 23 0 0 1-23-22v-231a22 22 0 0 1 2-8 281 281 0 0 0 62 149v38a11 11 0 0 0 11 11h39a281 281 0 0 0 170 57h18v88c0 7 3 8 8 4l218-217a11 11 0 0 0 0-15 281 281 0 0 0 27-60l53 52a23 23 0 0 1-1 32z m-323 66a234 234 0 1 1 234-234 234 234 0 0 1-234 234z m140-268a9 9 0 0 0-9-9h-81a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-66a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-80a9 9 0 0 0-9 9v66a9 9 0 0 0 9 9h81a9 9 0 0 1 10 9v82a9 9 0 0 0 7 8h65a9 9 0 0 0 9-9v-81a9 9 0 0 1 9-9h81a9 9 0 0 0 9-9v-66z m534 668a60 60 0 0 1-42 18h-671a63 63 0 0 1-62-63l41-40v22a40 40 0 0 0 40 40h637a40 40 0 0 0 39-40v-636a40 40 0 0 0-39-40h-354a281 281 0 0 0-31-60h463l21 21v735z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="processor-add" unicode="" d="M988 767v-761a63 63 0 0 0-19-43l-113-113 15 62h-121l-62-62 14 62h-120l-63-62 15 62h-73a285 285 0 0 1 62 69h375a42 42 0 0 1 42 42v738a42 42 0 0 1-42 42h-737a42 42 0 0 1-42-42v-396a285 285 0 0 1-68-69v99l-39-38 39 87v120l-39-39 39 88v120l-39-39 39 88 50 50a63 63 0 0 0 44 18h760a83 83 0 0 0 83-83z m-469-634a234 234 0 1 0-234 235 234 234 0 0 0 233-234z m-94 32a9 9 0 0 1-9 9h-81a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-67a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-80a9 9 0 0 1-9-9v-65a9 9 0 0 1 9-9h81a9 9 0 0 0 10-9v-81a9 9 0 0 1 9-9h65a9 9 0 0 1 9 9v81a9 9 0 0 0 9 9h81a9 9 0 0 1 8 9v66z m356 381a57 57 0 0 1-10 27 299 299 0 0 1-539-160l14 2a221 221 0 0 0 223 194 263 263 0 0 0 208-107 58 58 0 0 1 104 39 242 242 0 0 0-55-316 225 225 0 0 0-137-45 242 242 0 0 0-26 0 256 256 0 0 0 0-82 297 297 0 0 1 142 58 304 304 0 0 1 122 202 256 256 0 0 1-46 188z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="lineage" unicode="" d="M785 405a214 214 0 0 1-83-17l-58 87a215 215 0 1 1-266-18l-82-184a215 215 0 1 1 72-31l82 185a210 210 0 0 1 127 8l59-90a215 215 0 1 1 149 60z m-539-438a98 98 0 1 0 98 98 98 98 0 0 0-98-98z m157 668a98 98 0 1 0 97-97 98 98 0 0 0-97 97z m382-543a98 98 0 1 0 98 98 98 98 0 0 0-98-98z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="import-from-registry-add" unicode="" d="M890 579c7 37 2 91-47 125-52 37-106 21-135 7-24 43-92 131-251 125-84-3-149-29-190-78-45-51-53-114-54-145-48-8-161-42-160-195 0-58 29-99 65-127 9 12 17 22 27 32-28 20-50 50-50 95-1 151 134 155 140 155h23l-3 22c0 0-7 77 43 134 34 39 88 61 160 64 177 7 219-115 220-120l10-27 23 17c0 0 57 40 108 5 49-35 27-98 25-100l-9-25 27-3c6 0 146-17 136-157-7-109-143-107-148-108h-121v-42h124c63 0 180 30 187 147 8 129-84 183-150 198v1z m-40-375h-179c-5 0-10 2-14 6-4 4-7 8-7 14v173c0 5-2 10-6 14-4 4-8 7-14 7h-207c-5 0-10-2-15-6-2-3-3-7-4-10 34-8 67-22 95-41h84c0 0 5-1 8-3 2-1 2-4 2-7v-101c15-32 25-67 27-103h103c6 0 8-3 4-8l-141-142c-23-41-56-76-96-101l23-23c4-3 9-5 14-5 5 0 10 2 14 5l314 316c0 0 6 8 4 10-1 3-4 4-10 4l1 1z m-506 164c-42 0-81-10-117-31-36-21-64-49-85-85-21-36-32-75-32-118 0-42 11-81 32-117 21-36 49-65 85-85 36-21 75-32 117-32 43 0 82 11 118 32 36 20 64 49 85 85 21 36 31 75 31 117 0 43-10 82-31 118-21 36-49 64-85 85-36 21-75 31-118 31z m140-268c0 0 0-5-2-7-2-1-4-2-7-2h-81c0 0-5-1-6-3-2-1-3-4-3-6v-81c0 0-1-5-2-7-2-2-5-2-7-2h-66c0 0-5 0-7 2-1 2-2 4-2 7v81c0 0 0 5-3 6-1 2-4 3-6 3h-80c0 0-5 1-7 2-2 2-2 5-2 7v66c0 0 0 5 2 7 2 1 4 2 7 2h81c0 0 5 0 6 3 2 1 4 4 4 6v82c0 5 3 7 6 8h65c0 0 5-1 7-2 2-2 2-4 2-7v-81c0 0 0-5 3-6 2-2 4-3 7-3h80c0 0 5-1 7-2 2-2 3-5 3-7v-66h1z" horiz-adv-x="1083" />
|
||||||
|
|
||||||
|
<glyph glyph-name="import-from-registry" unicode="" d="M913 579c6 37 1 91-47 125-53 37-107 21-136 7-23 43-92 131-251 125-84-3-148-29-190-78-45-51-52-114-53-145-48-8-162-42-160-195 1-142 159-182 242-184h28v42h-28c-10 0-200 7-201 143-1 151 134 154 140 154h22l-2 23c0 0-7 77 42 134 34 39 89 61 161 63 177 8 218-114 220-119l9-27 24 16c0 0 57 41 108 5 49-34 27-97 25-100l-9-25 26-2c6 0 146-16 137-158-7-108-143-106-148-107h-121v-42h123c64 0 180 30 188 147 8 129-84 183-150 198h1z m-246-168c0 0 6-9 6-14v-173c0-5 1-10 6-14 4-4 9-6 14-6h180c5 0 8-1 10-4 0-2 0-6-5-10l-314-316c-4-3-9-5-14-5-5 0-10 2-14 5l-314 316c0 0-5 8-4 10 0 3 4 4 10 4h179c5 0 10 3 14 7 4 4 6 9 6 14v172c0 6 1 11 6 15 4 4 9 6 15 6h206c5 0 10-3 14-7h-1z m-174-50c0 0-5-1-8-3-2-3-2-5-2-8v-192c0 0-1-6-4-8-2-2-5-3-7-3h-121c-6 0-8-3-3-8l194-195c0 0 4-2 6-2 3 0 5 0 7 2l194 195c4 5 3 8-3 8h-119c0 0-6 1-8 3-2 3-3 5-3 8v193c0 0-1 5-3 7-1 3-4 3-7 3h-113z" horiz-adv-x="1083" />
|
||||||
|
|
||||||
|
<glyph glyph-name="port-in" unicode="" d="M1000-10v735l-42 43a60 60 0 0 1-42 18h-671a63 63 0 0 1-62-63l41-40v22a40 40 0 0 0 40 40h637a40 40 0 0 0 39-40v-636a40 40 0 0 0-39-40h-449l-60-60h587z m-1000 412v-231a23 23 0 0 1 23-23h192a23 23 0 0 0 23-22v-200c0-13 7-15 16-7l353 351a23 23 0 0 1 0 32l-353 351c-9 10-16 6-16-6v-200a23 23 0 0 0-22-23h-193a23 23 0 0 1-23-22z m63-52a11 11 0 0 0 11 11h216a11 11 0 0 1 12 12v133c0 7 3 8 8 4l218-217a11 11 0 0 0 0-15l-218-217c-5-4-8-3-8 4v135a11 11 0 0 1-12 12h-215a11 11 0 0 0-12 11v127z m722-201h-53v275h54v-276z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="port-out" unicode="" d="M0 3v710l41 41a58 58 0 0 0 41 17h630a77 77 0 0 0 77-77v-102l-39 39v63a38 38 0 0 1-39 37h-615a38 38 0 0 1-38-37v-616a38 38 0 0 1 38-38h482v-58h-558z m653-69l341 339a22 22 0 0 1 0 31l-341 339c-9 9-16 6-16-6v-193a22 22 0 0 0-22-22h-187a22 22 0 0 1-22-22v-222a22 22 0 0 1 22-22h187a22 22 0 0 0 22-22v-193c0-13 7-16 16-7z m45 141v131a11 11 0 0 1-10 11h-208a11 11 0 0 0-11 11v122a11 11 0 0 0 11 11h208a11 11 0 0 1 10 11v130c0 6 4 7 8 3l212-209a11 11 0 0 0 0-15l-212-209c-4-3-8-3-8 3z m-467 347a127 127 0 0 1-118-134 127 127 0 0 1 118-133 127 127 0 0 1 119 133 127 127 0 0 1-119 134z m0-223a84 84 0 0 0-79 89 84 84 0 0 0 79 89 84 84 0 0 0 79-89 84 84 0 0 0-79-89z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="connect" unicode="" d="M853 703a500 500 0 1 0-753-53 31 31 0 0 0 46 2l279-279a16 16 0 0 0 0-22l-93-94a8 8 0 0 1 3-13l332-74a8 8 0 0 1 9 9l-72 334a8 8 0 0 1-13 3l-94-93a16 16 0 0 0-22 0l-278 280a31 31 0 0 0 4 47 500 500 0 0 0 652-47z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="connect-add" unicode="" d="M853 703a500 500 0 1 0-752-53 31 31 0 0 0 46 2l154-154a16 16 0 0 0 0-22l-94-94a8 8 0 0 1 4-13l333-73a8 8 0 0 1 9 10l-74 331a8 8 0 0 1-13 4l-94-94a16 16 0 0 0-22 0l-152 156a31 31 0 0 0 3 47 500 500 0 0 0 652-47z m-55-523a8 8 0 0 1 8 8v70a8 8 0 0 0 7 8h70a8 8 0 0 1 8 8v56a8 8 0 0 1-8 8h-70a8 8 0 0 0-8 8v70a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8v-70a8 8 0 0 0-8-8h-69a8 8 0 0 1-8-8v-56a8 8 0 0 1 8-8h71a8 8 0 0 0 7-8v-70a8 8 0 0 1 8-8h56z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="threads" unicode="" d="M308 350a149 149 0 1 0-149 149 149 149 0 0 0 149-149z m10 341a159 159 0 1 1-159-158 159 159 0 0 1 159 158z m-66 0a94 94 0 1 0-94 94 94 94 0 0 0 94-94z m248 149a149 149 0 1 1 149-149 149 149 0 0 1-149 149z m-182-831a159 159 0 1 1-159-159 159 159 0 0 1 159 159z m-66 0a94 94 0 1 0-94 94 94 94 0 0 0 94-94z m248 149a149 149 0 1 1 149-149 149 149 0 0 1-149 149z m341 0a149 149 0 1 1 149-149 149 149 0 0 1-149 149z m159 192a159 159 0 1 1-159-159 159 159 0 0 1 159 159z m-66 0a94 94 0 1 0-94 94 94 94 0 0 0 94-94z m66 341a159 159 0 1 1-159-158 159 159 0 0 1 159 158z m-66 0a94 94 0 1 0-94 94 94 94 0 0 0 94-94z m-434-192a149 149 0 1 1 149-149 149 149 0 0 1-149 149z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="drop" unicode="" d="M507-38v104a8 8 0 0 0 8 8h104v-112h-112z m0-111a333 333 0 0 1 112 21v56h-104a8 8 0 0 1-8-8v-70z m237 236v112h-103a8 8 0 0 1-8-8v-103h111z m14-139a23 23 0 0 1 6 17v89h-111v-112h88a23 23 0 0 1 17 7z m-98-98a334 334 0 0 1 83 51h-83v-51z m174 238a332 332 0 0 1 22 111h-78v-111h56z m-28-126a333 333 0 0 1 50 83h-50v-83z m0 0a333 333 0 0 1 50 83h-50v-83z m21 258h-209a8 8 0 0 1-8-8v-117h-117a8 8 0 0 1-8-8v-209a342 342 0 0 0-341 343c0 162 127 318 214 432a1279 1279 0 0 1 125 195 4 4 0 0 0 7 0 1279 1279 0 0 1 125-195c85-114 212-270 212-432z m-489 326l-28 5a1143 1143 0 0 1-80-123 406 406 0 0 1-59-255 320 320 0 0 1 107-192 314 314 0 0 1 39-29 4 4 0 0 1 5 7 344 344 0 0 0-94 156 435 435 0 0 0 31 279 1210 1210 0 0 0 68 136z m72 138l-19-26c-20-28-41-55-62-82l24-3c18 29 36 58 53 86l14 25c3 7-6 6-10 0z" horiz-adv-x="1000" />
|
||||||
|
</font>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 224 B |
|
@ -0,0 +1,19 @@
|
||||||
|
Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
|
@ -0,0 +1,31 @@
|
||||||
|
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||||
|
// Distributed under an MIT license: http://codemirror.net/LICENSE
|
||||||
|
|
||||||
|
// Depends on jsonlint.js from https://github.com/zaach/jsonlint
|
||||||
|
|
||||||
|
// declare global: jsonlint
|
||||||
|
|
||||||
|
(function(mod) {
|
||||||
|
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
||||||
|
mod(require("../../lib/codemirror"));
|
||||||
|
else if (typeof define == "function" && define.amd) // AMD
|
||||||
|
define(["../../lib/codemirror"], mod);
|
||||||
|
else // Plain browser env
|
||||||
|
mod(CodeMirror);
|
||||||
|
})(function(CodeMirror) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
CodeMirror.registerHelper("lint", "json", function(text) {
|
||||||
|
var found = [];
|
||||||
|
jsonlint.parseError = function(str, hash) {
|
||||||
|
var loc = hash.loc;
|
||||||
|
found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column),
|
||||||
|
to: CodeMirror.Pos(loc.last_line - 1, loc.last_column),
|
||||||
|
message: str});
|
||||||
|
};
|
||||||
|
try { jsonlint.parse(text); }
|
||||||
|
catch(e) {}
|
||||||
|
return found;
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
|
@ -0,0 +1,73 @@
|
||||||
|
/* The lint marker gutter */
|
||||||
|
.CodeMirror-lint-markers {
|
||||||
|
width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-lint-tooltip {
|
||||||
|
background-color: infobackground;
|
||||||
|
border: 1px solid black;
|
||||||
|
border-radius: 4px 4px 4px 4px;
|
||||||
|
color: infotext;
|
||||||
|
font-family: monospace;
|
||||||
|
font-size: 10pt;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 2px 5px;
|
||||||
|
position: fixed;
|
||||||
|
white-space: pre;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
z-index: 100;
|
||||||
|
max-width: 600px;
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity .4s;
|
||||||
|
-moz-transition: opacity .4s;
|
||||||
|
-webkit-transition: opacity .4s;
|
||||||
|
-o-transition: opacity .4s;
|
||||||
|
-ms-transition: opacity .4s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning {
|
||||||
|
background-position: left bottom;
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-lint-mark-error {
|
||||||
|
background-image:
|
||||||
|
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==")
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-lint-mark-warning {
|
||||||
|
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=");
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning {
|
||||||
|
background-position: center center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
cursor: pointer;
|
||||||
|
display: inline-block;
|
||||||
|
height: 16px;
|
||||||
|
width: 16px;
|
||||||
|
vertical-align: middle;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-lint-message-error, .CodeMirror-lint-message-warning {
|
||||||
|
padding-left: 18px;
|
||||||
|
background-position: top left;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {
|
||||||
|
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=");
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {
|
||||||
|
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=");
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-lint-marker-multiple {
|
||||||
|
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC");
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: right bottom;
|
||||||
|
width: 100%; height: 100%;
|
||||||
|
}
|
|
@ -0,0 +1,239 @@
|
||||||
|
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||||
|
// Distributed under an MIT license: http://codemirror.net/LICENSE
|
||||||
|
|
||||||
|
(function(mod) {
|
||||||
|
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
||||||
|
mod(require("../../lib/codemirror"));
|
||||||
|
else if (typeof define == "function" && define.amd) // AMD
|
||||||
|
define(["../../lib/codemirror"], mod);
|
||||||
|
else // Plain browser env
|
||||||
|
mod(CodeMirror);
|
||||||
|
})(function(CodeMirror) {
|
||||||
|
"use strict";
|
||||||
|
var GUTTER_ID = "CodeMirror-lint-markers";
|
||||||
|
|
||||||
|
function showTooltip(e, content) {
|
||||||
|
var tt = document.createElement("div");
|
||||||
|
tt.className = "CodeMirror-lint-tooltip";
|
||||||
|
tt.appendChild(content.cloneNode(true));
|
||||||
|
document.body.appendChild(tt);
|
||||||
|
|
||||||
|
function position(e) {
|
||||||
|
if (!tt.parentNode) return CodeMirror.off(document, "mousemove", position);
|
||||||
|
tt.style.top = Math.max(0, e.clientY - tt.offsetHeight - 5) + "px";
|
||||||
|
tt.style.left = (e.clientX + 5) + "px";
|
||||||
|
}
|
||||||
|
CodeMirror.on(document, "mousemove", position);
|
||||||
|
position(e);
|
||||||
|
if (tt.style.opacity != null) tt.style.opacity = 1;
|
||||||
|
return tt;
|
||||||
|
}
|
||||||
|
function rm(elt) {
|
||||||
|
if (elt.parentNode) elt.parentNode.removeChild(elt);
|
||||||
|
}
|
||||||
|
function hideTooltip(tt) {
|
||||||
|
if (!tt.parentNode) return;
|
||||||
|
if (tt.style.opacity == null) rm(tt);
|
||||||
|
tt.style.opacity = 0;
|
||||||
|
setTimeout(function() { rm(tt); }, 600);
|
||||||
|
}
|
||||||
|
|
||||||
|
function showTooltipFor(e, content, node) {
|
||||||
|
var tooltip = showTooltip(e, content);
|
||||||
|
function hide() {
|
||||||
|
CodeMirror.off(node, "mouseout", hide);
|
||||||
|
if (tooltip) { hideTooltip(tooltip); tooltip = null; }
|
||||||
|
}
|
||||||
|
var poll = setInterval(function() {
|
||||||
|
if (tooltip) for (var n = node;; n = n.parentNode) {
|
||||||
|
if (n && n.nodeType == 11) n = n.host;
|
||||||
|
if (n == document.body) return;
|
||||||
|
if (!n) { hide(); break; }
|
||||||
|
}
|
||||||
|
if (!tooltip) return clearInterval(poll);
|
||||||
|
}, 400);
|
||||||
|
CodeMirror.on(node, "mouseout", hide);
|
||||||
|
}
|
||||||
|
|
||||||
|
function LintState(cm, options, hasGutter) {
|
||||||
|
this.marked = [];
|
||||||
|
this.options = options;
|
||||||
|
this.timeout = null;
|
||||||
|
this.hasGutter = hasGutter;
|
||||||
|
this.onMouseOver = function(e) { onMouseOver(cm, e); };
|
||||||
|
this.waitingFor = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseOptions(_cm, options) {
|
||||||
|
if (options instanceof Function) return {getAnnotations: options};
|
||||||
|
if (!options || options === true) options = {};
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
|
function clearMarks(cm) {
|
||||||
|
var state = cm.state.lint;
|
||||||
|
if (state.hasGutter) cm.clearGutter(GUTTER_ID);
|
||||||
|
for (var i = 0; i < state.marked.length; ++i)
|
||||||
|
state.marked[i].clear();
|
||||||
|
state.marked.length = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeMarker(labels, severity, multiple, tooltips) {
|
||||||
|
var marker = document.createElement("div"), inner = marker;
|
||||||
|
marker.className = "CodeMirror-lint-marker-" + severity;
|
||||||
|
if (multiple) {
|
||||||
|
inner = marker.appendChild(document.createElement("div"));
|
||||||
|
inner.className = "CodeMirror-lint-marker-multiple";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tooltips != false) CodeMirror.on(inner, "mouseover", function(e) {
|
||||||
|
showTooltipFor(e, labels, inner);
|
||||||
|
});
|
||||||
|
|
||||||
|
return marker;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getMaxSeverity(a, b) {
|
||||||
|
if (a == "error") return a;
|
||||||
|
else return b;
|
||||||
|
}
|
||||||
|
|
||||||
|
function groupByLine(annotations) {
|
||||||
|
var lines = [];
|
||||||
|
for (var i = 0; i < annotations.length; ++i) {
|
||||||
|
var ann = annotations[i], line = ann.from.line;
|
||||||
|
(lines[line] || (lines[line] = [])).push(ann);
|
||||||
|
}
|
||||||
|
return lines;
|
||||||
|
}
|
||||||
|
|
||||||
|
function annotationTooltip(ann) {
|
||||||
|
var severity = ann.severity;
|
||||||
|
if (!severity) severity = "error";
|
||||||
|
var tip = document.createElement("div");
|
||||||
|
tip.className = "CodeMirror-lint-message-" + severity;
|
||||||
|
tip.appendChild(document.createTextNode(ann.message));
|
||||||
|
return tip;
|
||||||
|
}
|
||||||
|
|
||||||
|
function lintAsync(cm, getAnnotations, passOptions) {
|
||||||
|
var state = cm.state.lint
|
||||||
|
var id = ++state.waitingFor
|
||||||
|
function abort() {
|
||||||
|
id = -1
|
||||||
|
cm.off("change", abort)
|
||||||
|
}
|
||||||
|
cm.on("change", abort)
|
||||||
|
getAnnotations(cm.getValue(), function(annotations, arg2) {
|
||||||
|
cm.off("change", abort)
|
||||||
|
if (state.waitingFor != id) return
|
||||||
|
if (arg2 && annotations instanceof CodeMirror) annotations = arg2
|
||||||
|
updateLinting(cm, annotations)
|
||||||
|
}, passOptions, cm);
|
||||||
|
}
|
||||||
|
|
||||||
|
function startLinting(cm) {
|
||||||
|
var state = cm.state.lint, options = state.options;
|
||||||
|
var passOptions = options.options || options; // Support deprecated passing of `options` property in options
|
||||||
|
var getAnnotations = options.getAnnotations || cm.getHelper(CodeMirror.Pos(0, 0), "lint");
|
||||||
|
if (!getAnnotations) return;
|
||||||
|
if (options.async || getAnnotations.async) {
|
||||||
|
lintAsync(cm, getAnnotations, passOptions)
|
||||||
|
} else {
|
||||||
|
updateLinting(cm, getAnnotations(cm.getValue(), passOptions, cm));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateLinting(cm, annotationsNotSorted) {
|
||||||
|
clearMarks(cm);
|
||||||
|
var state = cm.state.lint, options = state.options;
|
||||||
|
|
||||||
|
var annotations = groupByLine(annotationsNotSorted);
|
||||||
|
|
||||||
|
for (var line = 0; line < annotations.length; ++line) {
|
||||||
|
var anns = annotations[line];
|
||||||
|
if (!anns) continue;
|
||||||
|
|
||||||
|
var maxSeverity = null;
|
||||||
|
var tipLabel = state.hasGutter && document.createDocumentFragment();
|
||||||
|
|
||||||
|
for (var i = 0; i < anns.length; ++i) {
|
||||||
|
var ann = anns[i];
|
||||||
|
var severity = ann.severity;
|
||||||
|
if (!severity) severity = "error";
|
||||||
|
maxSeverity = getMaxSeverity(maxSeverity, severity);
|
||||||
|
|
||||||
|
if (options.formatAnnotation) ann = options.formatAnnotation(ann);
|
||||||
|
if (state.hasGutter) tipLabel.appendChild(annotationTooltip(ann));
|
||||||
|
|
||||||
|
if (ann.to) state.marked.push(cm.markText(ann.from, ann.to, {
|
||||||
|
className: "CodeMirror-lint-mark-" + severity,
|
||||||
|
__annotation: ann
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state.hasGutter)
|
||||||
|
cm.setGutterMarker(line, GUTTER_ID, makeMarker(tipLabel, maxSeverity, anns.length > 1,
|
||||||
|
state.options.tooltips));
|
||||||
|
}
|
||||||
|
if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onChange(cm) {
|
||||||
|
var state = cm.state.lint;
|
||||||
|
if (!state) return;
|
||||||
|
clearTimeout(state.timeout);
|
||||||
|
state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
function popupTooltips(annotations, e) {
|
||||||
|
var target = e.target || e.srcElement;
|
||||||
|
var tooltip = document.createDocumentFragment();
|
||||||
|
for (var i = 0; i < annotations.length; i++) {
|
||||||
|
var ann = annotations[i];
|
||||||
|
tooltip.appendChild(annotationTooltip(ann));
|
||||||
|
}
|
||||||
|
showTooltipFor(e, tooltip, target);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onMouseOver(cm, e) {
|
||||||
|
var target = e.target || e.srcElement;
|
||||||
|
if (!/\bCodeMirror-lint-mark-/.test(target.className)) return;
|
||||||
|
var box = target.getBoundingClientRect(), x = (box.left + box.right) / 2, y = (box.top + box.bottom) / 2;
|
||||||
|
var spans = cm.findMarksAt(cm.coordsChar({left: x, top: y}, "client"));
|
||||||
|
|
||||||
|
var annotations = [];
|
||||||
|
for (var i = 0; i < spans.length; ++i) {
|
||||||
|
var ann = spans[i].__annotation;
|
||||||
|
if (ann) annotations.push(ann);
|
||||||
|
}
|
||||||
|
if (annotations.length) popupTooltips(annotations, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
CodeMirror.defineOption("lint", false, function(cm, val, old) {
|
||||||
|
if (old && old != CodeMirror.Init) {
|
||||||
|
clearMarks(cm);
|
||||||
|
if (cm.state.lint.options.lintOnChange !== false)
|
||||||
|
cm.off("change", onChange);
|
||||||
|
CodeMirror.off(cm.getWrapperElement(), "mouseover", cm.state.lint.onMouseOver);
|
||||||
|
clearTimeout(cm.state.lint.timeout);
|
||||||
|
delete cm.state.lint;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (val) {
|
||||||
|
var gutters = cm.getOption("gutters"), hasLintGutter = false;
|
||||||
|
for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true;
|
||||||
|
var state = cm.state.lint = new LintState(cm, parseOptions(cm, val), hasLintGutter);
|
||||||
|
if (state.options.lintOnChange !== false)
|
||||||
|
cm.on("change", onChange);
|
||||||
|
if (state.options.tooltips != false)
|
||||||
|
CodeMirror.on(cm.getWrapperElement(), "mouseover", state.onMouseOver);
|
||||||
|
|
||||||
|
startLinting(cm);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
CodeMirror.defineExtension("performLint", function() {
|
||||||
|
if (this.state.lint) startLinting(this);
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,318 @@
|
||||||
|
/* BASICS */
|
||||||
|
|
||||||
|
.CodeMirror {
|
||||||
|
/* Set height, width, borders, and global font properties here */
|
||||||
|
font-family: monospace;
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
.CodeMirror-scroll {
|
||||||
|
/* Set scrolling behaviour here */
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* PADDING */
|
||||||
|
|
||||||
|
.CodeMirror-lines {
|
||||||
|
padding: 4px 0; /* Vertical padding around content */
|
||||||
|
}
|
||||||
|
.CodeMirror pre {
|
||||||
|
padding: 0 4px; /* Horizontal padding of content */
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||||
|
background-color: white; /* The little square between H and V scrollbars */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* GUTTER */
|
||||||
|
|
||||||
|
.CodeMirror-gutters {
|
||||||
|
border-right: 1px solid #ddd;
|
||||||
|
background-color: #f7f7f7;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.CodeMirror-linenumbers {}
|
||||||
|
.CodeMirror-linenumber {
|
||||||
|
padding: 0 3px 0 5px;
|
||||||
|
min-width: 20px;
|
||||||
|
text-align: right;
|
||||||
|
color: #999;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-guttermarker { color: black; }
|
||||||
|
.CodeMirror-guttermarker-subtle { color: #999; }
|
||||||
|
|
||||||
|
/* CURSOR */
|
||||||
|
|
||||||
|
.CodeMirror div.CodeMirror-cursor {
|
||||||
|
border-left: 1px solid black;
|
||||||
|
}
|
||||||
|
/* Shown when moving in bi-directional text */
|
||||||
|
.CodeMirror div.CodeMirror-secondarycursor {
|
||||||
|
border-left: 1px solid silver;
|
||||||
|
}
|
||||||
|
.CodeMirror.cm-fat-cursor div.CodeMirror-cursor {
|
||||||
|
width: auto;
|
||||||
|
border: 0;
|
||||||
|
background: #7e7;
|
||||||
|
}
|
||||||
|
.CodeMirror.cm-fat-cursor div.CodeMirror-cursors {
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-animate-fat-cursor {
|
||||||
|
width: auto;
|
||||||
|
border: 0;
|
||||||
|
-webkit-animation: blink 1.06s steps(1) infinite;
|
||||||
|
-moz-animation: blink 1.06s steps(1) infinite;
|
||||||
|
animation: blink 1.06s steps(1) infinite;
|
||||||
|
}
|
||||||
|
@-moz-keyframes blink {
|
||||||
|
0% { background: #7e7; }
|
||||||
|
50% { background: none; }
|
||||||
|
100% { background: #7e7; }
|
||||||
|
}
|
||||||
|
@-webkit-keyframes blink {
|
||||||
|
0% { background: #7e7; }
|
||||||
|
50% { background: none; }
|
||||||
|
100% { background: #7e7; }
|
||||||
|
}
|
||||||
|
@keyframes blink {
|
||||||
|
0% { background: #7e7; }
|
||||||
|
50% { background: none; }
|
||||||
|
100% { background: #7e7; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Can style cursor different in overwrite (non-insert) mode */
|
||||||
|
div.CodeMirror-overwrite div.CodeMirror-cursor {}
|
||||||
|
|
||||||
|
.cm-tab { display: inline-block; text-decoration: inherit; }
|
||||||
|
|
||||||
|
.CodeMirror-ruler {
|
||||||
|
border-left: 1px solid #ccc;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* DEFAULT THEME */
|
||||||
|
|
||||||
|
.cm-s-default .cm-keyword {color: #708;}
|
||||||
|
.cm-s-default .cm-atom {color: #219;}
|
||||||
|
.cm-s-default .cm-number {color: #164;}
|
||||||
|
.cm-s-default .cm-def {color: #00f;}
|
||||||
|
.cm-s-default .cm-variable,
|
||||||
|
.cm-s-default .cm-punctuation,
|
||||||
|
.cm-s-default .cm-property,
|
||||||
|
.cm-s-default .cm-operator {}
|
||||||
|
.cm-s-default .cm-variable-2 {color: #05a;}
|
||||||
|
.cm-s-default .cm-variable-3 {color: #085;}
|
||||||
|
.cm-s-default .cm-comment {color: #a50;}
|
||||||
|
.cm-s-default .cm-string {color: #a11;}
|
||||||
|
.cm-s-default .cm-string-2 {color: #f50;}
|
||||||
|
.cm-s-default .cm-meta {color: #555;}
|
||||||
|
.cm-s-default .cm-qualifier {color: #555;}
|
||||||
|
.cm-s-default .cm-builtin {color: #30a;}
|
||||||
|
.cm-s-default .cm-bracket {color: #997;}
|
||||||
|
.cm-s-default .cm-tag {color: #170;}
|
||||||
|
.cm-s-default .cm-attribute {color: #00c;}
|
||||||
|
.cm-s-default .cm-header {color: blue;}
|
||||||
|
.cm-s-default .cm-quote {color: #090;}
|
||||||
|
.cm-s-default .cm-hr {color: #999;}
|
||||||
|
.cm-s-default .cm-link {color: #00c;}
|
||||||
|
|
||||||
|
.cm-negative {color: #d44;}
|
||||||
|
.cm-positive {color: #292;}
|
||||||
|
.cm-header, .cm-strong {font-weight: bold;}
|
||||||
|
.cm-em {font-style: italic;}
|
||||||
|
.cm-link {text-decoration: underline;}
|
||||||
|
.cm-strikethrough {text-decoration: line-through;}
|
||||||
|
|
||||||
|
.cm-s-default .cm-error {color: #f00;}
|
||||||
|
.cm-invalidchar {color: #f00;}
|
||||||
|
|
||||||
|
/* Default styles for common addons */
|
||||||
|
|
||||||
|
div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
|
||||||
|
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||||
|
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
||||||
|
.CodeMirror-activeline-background {background: #e8f2ff;}
|
||||||
|
|
||||||
|
/* STOP */
|
||||||
|
|
||||||
|
/* The rest of this file contains styles related to the mechanics of
|
||||||
|
the editor. You probably shouldn't touch them. */
|
||||||
|
|
||||||
|
.CodeMirror {
|
||||||
|
line-height: 1;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
background: white;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-scroll {
|
||||||
|
/* 30px is the magic margin used to hide the element's real scrollbars */
|
||||||
|
/* See overflow: hidden in .CodeMirror */
|
||||||
|
margin-bottom: -30px; margin-right: -30px;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
height: 100%;
|
||||||
|
outline: none; /* Prevent dragging from highlighting the element */
|
||||||
|
position: relative;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
.CodeMirror-sizer {
|
||||||
|
position: relative;
|
||||||
|
border-right: 30px solid transparent;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* The fake, visible scrollbars. Used to force redraw during scrolling
|
||||||
|
before actuall scrolling happens, thus preventing shaking and
|
||||||
|
flickering artifacts. */
|
||||||
|
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 6;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.CodeMirror-vscrollbar {
|
||||||
|
right: 0; top: 0;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
.CodeMirror-hscrollbar {
|
||||||
|
bottom: 0; left: 0;
|
||||||
|
overflow-y: hidden;
|
||||||
|
overflow-x: scroll;
|
||||||
|
}
|
||||||
|
.CodeMirror-scrollbar-filler {
|
||||||
|
right: 0; bottom: 0;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutter-filler {
|
||||||
|
left: 0; bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-gutters {
|
||||||
|
position: absolute; left: 0; top: 0;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutter {
|
||||||
|
white-space: normal;
|
||||||
|
height: 100%;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
margin-bottom: -32px;
|
||||||
|
display: inline-block;
|
||||||
|
/* Hack to make IE7 behave */
|
||||||
|
*zoom:1;
|
||||||
|
*display:inline;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutter-wrapper {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 4;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutter-elt {
|
||||||
|
position: absolute;
|
||||||
|
cursor: default;
|
||||||
|
z-index: 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-lines {
|
||||||
|
cursor: text;
|
||||||
|
min-height: 1px; /* prevents collapsing before first draw */
|
||||||
|
}
|
||||||
|
.CodeMirror pre {
|
||||||
|
/* Reset some styles that the rest of the page might have set */
|
||||||
|
-moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
|
||||||
|
border-width: 0;
|
||||||
|
background: transparent;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
margin: 0;
|
||||||
|
white-space: pre;
|
||||||
|
word-wrap: normal;
|
||||||
|
line-height: inherit;
|
||||||
|
color: inherit;
|
||||||
|
z-index: 2;
|
||||||
|
position: relative;
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
.CodeMirror-wrap pre {
|
||||||
|
word-wrap: break-word;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-linebackground {
|
||||||
|
position: absolute;
|
||||||
|
left: 0; right: 0; top: 0; bottom: 0;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-linewidget {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-widget {}
|
||||||
|
|
||||||
|
.CodeMirror-wrap .CodeMirror-scroll {
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-measure {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
.CodeMirror-measure pre { position: static; }
|
||||||
|
|
||||||
|
.CodeMirror div.CodeMirror-cursor {
|
||||||
|
position: absolute;
|
||||||
|
border-right: none;
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.CodeMirror-cursors {
|
||||||
|
visibility: hidden;
|
||||||
|
position: relative;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
.CodeMirror-focused div.CodeMirror-cursors {
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-selected { background: #d9d9d9; }
|
||||||
|
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
|
||||||
|
.CodeMirror-crosshair { cursor: crosshair; }
|
||||||
|
|
||||||
|
.cm-searching {
|
||||||
|
background: #ffa;
|
||||||
|
background: rgba(255, 255, 0, .4);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* IE7 hack to prevent it from returning funny offsetTops on the spans */
|
||||||
|
.CodeMirror span { *vertical-align: text-bottom; }
|
||||||
|
|
||||||
|
/* Used to force a border model for a node */
|
||||||
|
.cm-force-border { padding-right: .1px; }
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
/* Hide the cursor when printing */
|
||||||
|
.CodeMirror div.CodeMirror-cursors {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* See issue #2901 */
|
||||||
|
.cm-tab-wrap-hack:after { content: ''; }
|
||||||
|
|
||||||
|
/* Help users use markselection to safely style text background */
|
||||||
|
span.CodeMirror-selectedtext { background: none; }
|
|
@ -0,0 +1,86 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* global define, module, require, exports */
|
||||||
|
|
||||||
|
(function (root, factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
define([], function () {
|
||||||
|
return (nf.AuthorizationStorage = factory());
|
||||||
|
});
|
||||||
|
} else if (typeof exports === 'object' && typeof module === 'object') {
|
||||||
|
module.exports = (nf.AuthorizationStorage = factory());
|
||||||
|
} else {
|
||||||
|
nf.AuthorizationStorage = factory();
|
||||||
|
}
|
||||||
|
}(this, function () {
|
||||||
|
var TOKEN_ITEM_KEY = 'Access-Token-Expiration';
|
||||||
|
|
||||||
|
var REQUEST_TOKEN_PATTERN = new RegExp('Request-Token=([^;]+)');
|
||||||
|
|
||||||
|
return {
|
||||||
|
/**
|
||||||
|
* Get Request Token from document cookies
|
||||||
|
*
|
||||||
|
* @return Request Token string or null when not found
|
||||||
|
*/
|
||||||
|
getRequestToken: function () {
|
||||||
|
var requestToken = null;
|
||||||
|
var requestTokenMatcher = REQUEST_TOKEN_PATTERN.exec(document.cookie);
|
||||||
|
if (requestTokenMatcher) {
|
||||||
|
requestToken = requestTokenMatcher[1];
|
||||||
|
}
|
||||||
|
return requestToken;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Token from Session Storage
|
||||||
|
*
|
||||||
|
* @return Bearer Token string
|
||||||
|
*/
|
||||||
|
getToken: function () {
|
||||||
|
return sessionStorage.getItem(TOKEN_ITEM_KEY);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Has Token returns the status of whether Session Storage contains the Token
|
||||||
|
*
|
||||||
|
* @return Boolean status of whether Session Storage contains the Token
|
||||||
|
*/
|
||||||
|
hasToken: function () {
|
||||||
|
var token = this.getToken();
|
||||||
|
return typeof token === 'string';
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove Token from Session Storage
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
removeToken: function () {
|
||||||
|
sessionStorage.removeItem(TOKEN_ITEM_KEY);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Token in Session Storage
|
||||||
|
*
|
||||||
|
* @param token Token String
|
||||||
|
*/
|
||||||
|
setToken: function (token) {
|
||||||
|
sessionStorage.setItem(TOKEN_ITEM_KEY, token);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}));
|
|
@ -0,0 +1,20 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
// register the nf namespace
|
||||||
|
var nf;
|
||||||
|
if (!nf)
|
||||||
|
nf = {};
|
|
@ -0,0 +1,209 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* global define, module, require, exports */
|
||||||
|
|
||||||
|
(function (root, factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
define([], function () {
|
||||||
|
return (nf.Storage = factory());
|
||||||
|
});
|
||||||
|
} else if (typeof exports === 'object' && typeof module === 'object') {
|
||||||
|
module.exports = (nf.Storage = factory());
|
||||||
|
} else {
|
||||||
|
nf.Storage = factory();
|
||||||
|
}
|
||||||
|
}(this, function () {
|
||||||
|
|
||||||
|
var disconnectionAcknowledged = false;
|
||||||
|
|
||||||
|
// Store items for two days before being eligible for removal.
|
||||||
|
var MILLIS_PER_DAY = 86400000;
|
||||||
|
var TWO_DAYS = MILLIS_PER_DAY * 2;
|
||||||
|
|
||||||
|
var isUndefined = function (obj) {
|
||||||
|
return typeof obj === 'undefined';
|
||||||
|
};
|
||||||
|
|
||||||
|
var isNull = function (obj) {
|
||||||
|
return obj === null;
|
||||||
|
};
|
||||||
|
|
||||||
|
var isDefinedAndNotNull = function (obj) {
|
||||||
|
return !isUndefined(obj) && !isNull(obj);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks the expiration for the specified entry.
|
||||||
|
*
|
||||||
|
* @param {object} entry
|
||||||
|
* @returns {boolean}
|
||||||
|
*/
|
||||||
|
var checkExpiration = function (entry) {
|
||||||
|
if (isDefinedAndNotNull(entry.expires)) {
|
||||||
|
// get the expiration
|
||||||
|
var expires = new Date(entry.expires);
|
||||||
|
var now = new Date();
|
||||||
|
|
||||||
|
// return whether the expiration date has passed
|
||||||
|
return expires.valueOf() < now.valueOf();
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets an enty for the key. The entry expiration is not checked.
|
||||||
|
*
|
||||||
|
* @param {string} key
|
||||||
|
*/
|
||||||
|
var getEntry = function (key) {
|
||||||
|
try {
|
||||||
|
// parse the entry
|
||||||
|
var entry = JSON.parse(localStorage.getItem(key));
|
||||||
|
|
||||||
|
// ensure the entry and item are present
|
||||||
|
if (isDefinedAndNotNull(entry)) {
|
||||||
|
return entry;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
/**
|
||||||
|
* Initializes the storage. Items will be persisted for two days. Once the scripts runs
|
||||||
|
* thereafter, all eligible items will be removed. This strategy does not support persistence.
|
||||||
|
*/
|
||||||
|
init: function () {
|
||||||
|
for (var i = 0; i < localStorage.length; i++) {
|
||||||
|
try {
|
||||||
|
// get the next item
|
||||||
|
var key = localStorage.key(i);
|
||||||
|
|
||||||
|
// attempt to get the item which will expire if necessary
|
||||||
|
this.getItem(key);
|
||||||
|
} catch (e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
acknowledgeDisconnection: function () {
|
||||||
|
disconnectionAcknowledged = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
resetDisconnectionAcknowledgement: function () {
|
||||||
|
disconnectionAcknowledged = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
isDisconnectionAcknowledged: function () {
|
||||||
|
return disconnectionAcknowledged;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stores the specified item.
|
||||||
|
*
|
||||||
|
* @param {string} key
|
||||||
|
* @param {object} item
|
||||||
|
* @param {integer} expires
|
||||||
|
*/
|
||||||
|
setItem: function (key, item, expires) {
|
||||||
|
// calculate the expiration
|
||||||
|
expires = isDefinedAndNotNull(expires) ? expires : new Date().valueOf() + TWO_DAYS;
|
||||||
|
|
||||||
|
// create the entry
|
||||||
|
var entry = {
|
||||||
|
expires: expires,
|
||||||
|
item: item
|
||||||
|
};
|
||||||
|
|
||||||
|
// store the item
|
||||||
|
localStorage.setItem(key, JSON.stringify(entry));
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether there is an entry for this key. This will not check the expiration. If
|
||||||
|
* the entry is expired, it will return null on a subsequent getItem invocation.
|
||||||
|
*
|
||||||
|
* @param {string} key
|
||||||
|
* @returns {boolean}
|
||||||
|
*/
|
||||||
|
hasItem: function (key) {
|
||||||
|
return getEntry(key) !== null;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the item with the specified key. If an item with this key does
|
||||||
|
* not exist, null is returned. If an item exists but cannot be parsed
|
||||||
|
* or is malformed/unrecognized, null is returned.
|
||||||
|
*
|
||||||
|
* @param {type} key
|
||||||
|
*/
|
||||||
|
getItem: function (key) {
|
||||||
|
var entry = getEntry(key);
|
||||||
|
if (entry === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if the entry is expired, drop it and return null
|
||||||
|
if (checkExpiration(entry)) {
|
||||||
|
this.removeItem(key);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if the entry has the specified field return its value
|
||||||
|
if (isDefinedAndNotNull(entry['item'])) {
|
||||||
|
return entry['item'];
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the expiration for the specified item. This will not check the expiration. If
|
||||||
|
* the entry is expired, it will return null on a subsequent getItem invocation.
|
||||||
|
*
|
||||||
|
* @param {string} key
|
||||||
|
* @returns {integer}
|
||||||
|
*/
|
||||||
|
getItemExpiration: function (key) {
|
||||||
|
var entry = getEntry(key);
|
||||||
|
if (entry === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if the entry has the specified field return its value
|
||||||
|
if (isDefinedAndNotNull(entry['expires'])) {
|
||||||
|
return entry['expires'];
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the item with the specified key.
|
||||||
|
*
|
||||||
|
* @param {type} key
|
||||||
|
*/
|
||||||
|
removeItem: function (key) {
|
||||||
|
localStorage.removeItem(key);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}));
|
|
@ -23,11 +23,122 @@
|
||||||
<artifactId>nifi-image-viewer</artifactId>
|
<artifactId>nifi-image-viewer</artifactId>
|
||||||
<description>NiFi image viewer</description>
|
<description>NiFi image viewer</description>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
|
<properties>
|
||||||
|
<frontend.dependency.configs>${basedir}/src/main/frontend</frontend.dependency.configs>
|
||||||
|
<frontend.working.dir>${project.build.directory}/frontend-working-directory</frontend.working.dir>
|
||||||
|
<frontend.assets>${project.build.directory}/${project.build.finalName}/assets</frontend.assets>
|
||||||
|
</properties>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.nifi</groupId>
|
<groupId>org.apache.nifi</groupId>
|
||||||
<artifactId>nifi-framework-api</artifactId>
|
<artifactId>nifi-framework-api</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<webResources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/webapp/WEB-INF/jsp</directory>
|
||||||
|
<targetPath>WEB-INF/jsp</targetPath>
|
||||||
|
<includes>
|
||||||
|
<include>image.jsp</include>
|
||||||
|
</includes>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</resource>
|
||||||
|
</webResources>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>copy-client-side-deps</id>
|
||||||
|
<phase>prepare-package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>${frontend.assets}</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>${frontend.working.dir}/node_modules</directory>
|
||||||
|
<filtering>false</filtering>
|
||||||
|
<includes>
|
||||||
|
<!-- jquery -->
|
||||||
|
<include>jquery/dist/jquery.min*</include>
|
||||||
|
<include>jquery/LICENSE.txt</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>copy-package-json</id>
|
||||||
|
<phase>generate-sources</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>${frontend.working.dir}</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>${frontend.dependency.configs}</directory>
|
||||||
|
<filtering>false</filtering>
|
||||||
|
<includes>
|
||||||
|
<include>package.json</include>
|
||||||
|
<include>package-lock.json</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.github.eirslett</groupId>
|
||||||
|
<artifactId>frontend-maven-plugin</artifactId>
|
||||||
|
<version>${frontend.mvn.plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<installDirectory>${frontend.working.dir}</installDirectory>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>install-node-and-npm</id>
|
||||||
|
<goals>
|
||||||
|
<goal>install-node-and-npm</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>generate-resources</phase>
|
||||||
|
<configuration>
|
||||||
|
<nodeVersion>${node.version}</nodeVersion>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>npm install</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>run ci</arguments>
|
||||||
|
<workingDirectory>${frontend.working.dir}</workingDirectory>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.rat</groupId>
|
||||||
|
<artifactId>apache-rat-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<excludes combine.children="append">
|
||||||
|
<exclude>src/main/frontend/package.json</exclude>
|
||||||
|
<exclude>src/main/frontend/package-lock.json</exclude>
|
||||||
|
</excludes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
</project>
|
</project>
|
||||||
|
|
22
nifi-extension-bundles/nifi-media-bundle/nifi-image-viewer/src/main/frontend/package-lock.json
generated
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"name": "apache-nifi-image-viewer",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "apache-nifi-image-viewer",
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": "3.6.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16.13.2",
|
||||||
|
"npm": ">=8.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/jquery": {
|
||||||
|
"version": "3.6.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.4.tgz",
|
||||||
|
"integrity": "sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
"//-01": "Licensed to the Apache Software Foundation (ASF) under one or more",
|
||||||
|
"//-02": "contributor license agreements. See the NOTICE file distributed with",
|
||||||
|
"//-03": "this work for additional information regarding copyright ownership.",
|
||||||
|
"//-04": "The ASF licenses this file to You under the Apache License, Version 2.0",
|
||||||
|
"//-05": "(the \"License\"); you may not use this file except in compliance with",
|
||||||
|
"//-06": "the License. You may obtain a copy of the License at",
|
||||||
|
"//-07": "",
|
||||||
|
"//-08": "http://www.apache.org/licenses/LICENSE-2.0",
|
||||||
|
"//-09": "",
|
||||||
|
"//-10": "Unless required by applicable law or agreed to in writing, software",
|
||||||
|
"//-11": "distributed under the License is distributed on an \"AS IS\" BASIS,",
|
||||||
|
"//-12": "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
|
||||||
|
"//-13": "See the License for the specific language governing permissions and",
|
||||||
|
"//-14": "limitations under the License.",
|
||||||
|
"name": "apache-nifi-image-viewer",
|
||||||
|
"description": "Apache NiFi 3rd party client side resources.",
|
||||||
|
"scripts": {
|
||||||
|
"ci": "npm ci --ignore-scripts"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": "3.6.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16.13.2",
|
||||||
|
"npm": ">=8.1.2"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/apache/nifi.git"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/apache/nifi/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/apache/nifi#readme"
|
||||||
|
}
|
|
@ -0,0 +1,230 @@
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
APACHE NIFI SUBCOMPONENTS:
|
||||||
|
|
||||||
|
The Apache NiFi project contains subcomponents with separate copyright
|
||||||
|
notices and license terms. Your use of the source code for the these
|
||||||
|
subcomponents is subject to the terms and conditions of the following
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
This product bundles 'JQuery' which is available under and MIT style license.
|
||||||
|
(c) 2005, 2014 jQuery Foundation, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
|
@ -15,7 +15,7 @@
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
--%>
|
--%>
|
||||||
<%@ page contentType="text/html" pageEncoding="UTF-8" session="false" %>
|
<%@ page contentType="text/html" pageEncoding="UTF-8" session="false" %>
|
||||||
<script type="text/javascript" src="../nifi/assets/jquery/dist/jquery.min.js"></script>
|
<script type="text/javascript" src="../${project.build.finalName}/assets/jquery/dist/jquery.min.js"></script>
|
||||||
<style>
|
<style>
|
||||||
#image-holder {
|
#image-holder {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
@ -17,6 +17,11 @@
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>nifi-standard-content-viewer</artifactId>
|
<artifactId>nifi-standard-content-viewer</artifactId>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
|
<properties>
|
||||||
|
<frontend.dependency.configs>${basedir}/src/main/frontend</frontend.dependency.configs>
|
||||||
|
<frontend.working.dir>${project.build.directory}/frontend-working-directory</frontend.working.dir>
|
||||||
|
<frontend.assets>${project.build.directory}/${project.build.finalName}/assets</frontend.assets>
|
||||||
|
</properties>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.nifi</groupId>
|
<groupId>org.apache.nifi</groupId>
|
||||||
|
@ -40,4 +45,112 @@
|
||||||
<artifactId>snakeyaml</artifactId>
|
<artifactId>snakeyaml</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<webResources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/webapp/WEB-INF/jsp</directory>
|
||||||
|
<targetPath>WEB-INF/jsp</targetPath>
|
||||||
|
<includes>
|
||||||
|
<include>codemirror.jsp</include>
|
||||||
|
</includes>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</resource>
|
||||||
|
</webResources>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>copy-client-side-deps</id>
|
||||||
|
<phase>prepare-package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>${frontend.assets}</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>${frontend.working.dir}/node_modules</directory>
|
||||||
|
<filtering>false</filtering>
|
||||||
|
<includes>
|
||||||
|
<!-- jquery -->
|
||||||
|
<include>jquery/dist/jquery.min*</include>
|
||||||
|
<include>jquery/LICENSE.txt</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>copy-package-json</id>
|
||||||
|
<phase>generate-sources</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>${frontend.working.dir}</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>${frontend.dependency.configs}</directory>
|
||||||
|
<filtering>false</filtering>
|
||||||
|
<includes>
|
||||||
|
<include>package.json</include>
|
||||||
|
<include>package-lock.json</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.github.eirslett</groupId>
|
||||||
|
<artifactId>frontend-maven-plugin</artifactId>
|
||||||
|
<version>${frontend.mvn.plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<installDirectory>${frontend.working.dir}</installDirectory>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>install-node-and-npm</id>
|
||||||
|
<goals>
|
||||||
|
<goal>install-node-and-npm</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>generate-resources</phase>
|
||||||
|
<configuration>
|
||||||
|
<nodeVersion>${node.version}</nodeVersion>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>npm install</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>run ci</arguments>
|
||||||
|
<workingDirectory>${frontend.working.dir}</workingDirectory>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.rat</groupId>
|
||||||
|
<artifactId>apache-rat-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<excludes combine.children="append">
|
||||||
|
<exclude>src/main/frontend/package.json</exclude>
|
||||||
|
<exclude>src/main/frontend/package-lock.json</exclude>
|
||||||
|
<exclude>src/main/webapp/js/codemirror/</exclude>
|
||||||
|
</excludes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"name": "apache-nifi-standard-content-viewer",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "apache-nifi-standard-content-viewer",
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": "3.6.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16.13.2",
|
||||||
|
"npm": ">=8.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/jquery": {
|
||||||
|
"version": "3.6.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.4.tgz",
|
||||||
|
"integrity": "sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
"//-01": "Licensed to the Apache Software Foundation (ASF) under one or more",
|
||||||
|
"//-02": "contributor license agreements. See the NOTICE file distributed with",
|
||||||
|
"//-03": "this work for additional information regarding copyright ownership.",
|
||||||
|
"//-04": "The ASF licenses this file to You under the Apache License, Version 2.0",
|
||||||
|
"//-05": "(the \"License\"); you may not use this file except in compliance with",
|
||||||
|
"//-06": "the License. You may obtain a copy of the License at",
|
||||||
|
"//-07": "",
|
||||||
|
"//-08": "http://www.apache.org/licenses/LICENSE-2.0",
|
||||||
|
"//-09": "",
|
||||||
|
"//-10": "Unless required by applicable law or agreed to in writing, software",
|
||||||
|
"//-11": "distributed under the License is distributed on an \"AS IS\" BASIS,",
|
||||||
|
"//-12": "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
|
||||||
|
"//-13": "See the License for the specific language governing permissions and",
|
||||||
|
"//-14": "limitations under the License.",
|
||||||
|
"name": "apache-nifi-standard-content-viewer",
|
||||||
|
"description": "Apache NiFi 3rd party client side resources.",
|
||||||
|
"scripts": {
|
||||||
|
"ci": "npm ci --ignore-scripts"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": "3.6.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16.13.2",
|
||||||
|
"npm": ">=8.1.2"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/apache/nifi.git"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/apache/nifi/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/apache/nifi#readme"
|
||||||
|
}
|
|
@ -0,0 +1,230 @@
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
APACHE NIFI SUBCOMPONENTS:
|
||||||
|
|
||||||
|
The Apache NiFi project contains subcomponents with separate copyright
|
||||||
|
notices and license terms. Your use of the source code for the these
|
||||||
|
subcomponents is subject to the terms and conditions of the following
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
This product bundles 'JQuery' which is available under and MIT style license.
|
||||||
|
(c) 2005, 2014 jQuery Foundation, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
|
@ -15,10 +15,10 @@
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
--%>
|
--%>
|
||||||
<%@ page contentType="text/html" pageEncoding="UTF-8" session="false" %>
|
<%@ page contentType="text/html" pageEncoding="UTF-8" session="false" %>
|
||||||
<link rel="stylesheet" href="../nifi/js/codemirror/lib/codemirror.css" type="text/css" />
|
<link rel="stylesheet" href="../${project.build.finalName}/js/codemirror/lib/codemirror.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/js/codemirror/addon/fold/foldgutter.css" type="text/css" />
|
<link rel="stylesheet" href="../${project.build.finalName}/js/codemirror/addon/fold/foldgutter.css" type="text/css" />
|
||||||
<script type="text/javascript" src="../nifi/js/codemirror/lib/codemirror-compressed.js"></script>
|
<script type="text/javascript" src="../${project.build.finalName}/js/codemirror/lib/codemirror-compressed.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/jquery/dist/jquery.min.js"></script>
|
<script type="text/javascript" src="../${project.build.finalName}/assets/jquery/dist/jquery.min.js"></script>
|
||||||
|
|
||||||
<textarea id="codemirror-content"><%= request.getAttribute("content") == null ? "" : org.apache.nifi.util.EscapeUtils.escapeHtml(request.getAttribute("content").toString()) %></textarea>
|
<textarea id="codemirror-content"><%= request.getAttribute("content") == null ? "" : org.apache.nifi.util.EscapeUtils.escapeHtml(request.getAttribute("content").toString()) %></textarea>
|
||||||
<span id="codemirror-mode" style="display: none;"><%= org.apache.nifi.util.EscapeUtils.escapeHtml(request.getAttribute("mode").toString()) %></span>
|
<span id="codemirror-mode" style="display: none;"><%= org.apache.nifi.util.EscapeUtils.escapeHtml(request.getAttribute("mode").toString()) %></span>
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
|
@ -0,0 +1,20 @@
|
||||||
|
.CodeMirror-foldmarker {
|
||||||
|
color: blue;
|
||||||
|
text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
|
||||||
|
font-family: arial;
|
||||||
|
line-height: .3;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.CodeMirror-foldgutter {
|
||||||
|
width: .7em;
|
||||||
|
}
|
||||||
|
.CodeMirror-foldgutter-open,
|
||||||
|
.CodeMirror-foldgutter-folded {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.CodeMirror-foldgutter-open:after {
|
||||||
|
content: "\25BE";
|
||||||
|
}
|
||||||
|
.CodeMirror-foldgutter-folded:after {
|
||||||
|
content: "\25B8";
|
||||||
|
}
|
|
@ -0,0 +1,318 @@
|
||||||
|
/* BASICS */
|
||||||
|
|
||||||
|
.CodeMirror {
|
||||||
|
/* Set height, width, borders, and global font properties here */
|
||||||
|
font-family: monospace;
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
.CodeMirror-scroll {
|
||||||
|
/* Set scrolling behaviour here */
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* PADDING */
|
||||||
|
|
||||||
|
.CodeMirror-lines {
|
||||||
|
padding: 4px 0; /* Vertical padding around content */
|
||||||
|
}
|
||||||
|
.CodeMirror pre {
|
||||||
|
padding: 0 4px; /* Horizontal padding of content */
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||||
|
background-color: white; /* The little square between H and V scrollbars */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* GUTTER */
|
||||||
|
|
||||||
|
.CodeMirror-gutters {
|
||||||
|
border-right: 1px solid #ddd;
|
||||||
|
background-color: #f7f7f7;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.CodeMirror-linenumbers {}
|
||||||
|
.CodeMirror-linenumber {
|
||||||
|
padding: 0 3px 0 5px;
|
||||||
|
min-width: 20px;
|
||||||
|
text-align: right;
|
||||||
|
color: #999;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-guttermarker { color: black; }
|
||||||
|
.CodeMirror-guttermarker-subtle { color: #999; }
|
||||||
|
|
||||||
|
/* CURSOR */
|
||||||
|
|
||||||
|
.CodeMirror div.CodeMirror-cursor {
|
||||||
|
border-left: 1px solid black;
|
||||||
|
}
|
||||||
|
/* Shown when moving in bi-directional text */
|
||||||
|
.CodeMirror div.CodeMirror-secondarycursor {
|
||||||
|
border-left: 1px solid silver;
|
||||||
|
}
|
||||||
|
.CodeMirror.cm-fat-cursor div.CodeMirror-cursor {
|
||||||
|
width: auto;
|
||||||
|
border: 0;
|
||||||
|
background: #7e7;
|
||||||
|
}
|
||||||
|
.CodeMirror.cm-fat-cursor div.CodeMirror-cursors {
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-animate-fat-cursor {
|
||||||
|
width: auto;
|
||||||
|
border: 0;
|
||||||
|
-webkit-animation: blink 1.06s steps(1) infinite;
|
||||||
|
-moz-animation: blink 1.06s steps(1) infinite;
|
||||||
|
animation: blink 1.06s steps(1) infinite;
|
||||||
|
}
|
||||||
|
@-moz-keyframes blink {
|
||||||
|
0% { background: #7e7; }
|
||||||
|
50% { background: none; }
|
||||||
|
100% { background: #7e7; }
|
||||||
|
}
|
||||||
|
@-webkit-keyframes blink {
|
||||||
|
0% { background: #7e7; }
|
||||||
|
50% { background: none; }
|
||||||
|
100% { background: #7e7; }
|
||||||
|
}
|
||||||
|
@keyframes blink {
|
||||||
|
0% { background: #7e7; }
|
||||||
|
50% { background: none; }
|
||||||
|
100% { background: #7e7; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Can style cursor different in overwrite (non-insert) mode */
|
||||||
|
div.CodeMirror-overwrite div.CodeMirror-cursor {}
|
||||||
|
|
||||||
|
.cm-tab { display: inline-block; text-decoration: inherit; }
|
||||||
|
|
||||||
|
.CodeMirror-ruler {
|
||||||
|
border-left: 1px solid #ccc;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* DEFAULT THEME */
|
||||||
|
|
||||||
|
.cm-s-default .cm-keyword {color: #708;}
|
||||||
|
.cm-s-default .cm-atom {color: #219;}
|
||||||
|
.cm-s-default .cm-number {color: #164;}
|
||||||
|
.cm-s-default .cm-def {color: #00f;}
|
||||||
|
.cm-s-default .cm-variable,
|
||||||
|
.cm-s-default .cm-punctuation,
|
||||||
|
.cm-s-default .cm-property,
|
||||||
|
.cm-s-default .cm-operator {}
|
||||||
|
.cm-s-default .cm-variable-2 {color: #05a;}
|
||||||
|
.cm-s-default .cm-variable-3 {color: #085;}
|
||||||
|
.cm-s-default .cm-comment {color: #a50;}
|
||||||
|
.cm-s-default .cm-string {color: #a11;}
|
||||||
|
.cm-s-default .cm-string-2 {color: #f50;}
|
||||||
|
.cm-s-default .cm-meta {color: #555;}
|
||||||
|
.cm-s-default .cm-qualifier {color: #555;}
|
||||||
|
.cm-s-default .cm-builtin {color: #30a;}
|
||||||
|
.cm-s-default .cm-bracket {color: #997;}
|
||||||
|
.cm-s-default .cm-tag {color: #170;}
|
||||||
|
.cm-s-default .cm-attribute {color: #00c;}
|
||||||
|
.cm-s-default .cm-header {color: blue;}
|
||||||
|
.cm-s-default .cm-quote {color: #090;}
|
||||||
|
.cm-s-default .cm-hr {color: #999;}
|
||||||
|
.cm-s-default .cm-link {color: #00c;}
|
||||||
|
|
||||||
|
.cm-negative {color: #d44;}
|
||||||
|
.cm-positive {color: #292;}
|
||||||
|
.cm-header, .cm-strong {font-weight: bold;}
|
||||||
|
.cm-em {font-style: italic;}
|
||||||
|
.cm-link {text-decoration: underline;}
|
||||||
|
.cm-strikethrough {text-decoration: line-through;}
|
||||||
|
|
||||||
|
.cm-s-default .cm-error {color: #f00;}
|
||||||
|
.cm-invalidchar {color: #f00;}
|
||||||
|
|
||||||
|
/* Default styles for common addons */
|
||||||
|
|
||||||
|
div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
|
||||||
|
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||||
|
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
||||||
|
.CodeMirror-activeline-background {background: #e8f2ff;}
|
||||||
|
|
||||||
|
/* STOP */
|
||||||
|
|
||||||
|
/* The rest of this file contains styles related to the mechanics of
|
||||||
|
the editor. You probably shouldn't touch them. */
|
||||||
|
|
||||||
|
.CodeMirror {
|
||||||
|
line-height: 1;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
background: white;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-scroll {
|
||||||
|
/* 30px is the magic margin used to hide the element's real scrollbars */
|
||||||
|
/* See overflow: hidden in .CodeMirror */
|
||||||
|
margin-bottom: -30px; margin-right: -30px;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
height: 100%;
|
||||||
|
outline: none; /* Prevent dragging from highlighting the element */
|
||||||
|
position: relative;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
.CodeMirror-sizer {
|
||||||
|
position: relative;
|
||||||
|
border-right: 30px solid transparent;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* The fake, visible scrollbars. Used to force redraw during scrolling
|
||||||
|
before actuall scrolling happens, thus preventing shaking and
|
||||||
|
flickering artifacts. */
|
||||||
|
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 6;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.CodeMirror-vscrollbar {
|
||||||
|
right: 0; top: 0;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
.CodeMirror-hscrollbar {
|
||||||
|
bottom: 0; left: 0;
|
||||||
|
overflow-y: hidden;
|
||||||
|
overflow-x: scroll;
|
||||||
|
}
|
||||||
|
.CodeMirror-scrollbar-filler {
|
||||||
|
right: 0; bottom: 0;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutter-filler {
|
||||||
|
left: 0; bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-gutters {
|
||||||
|
position: absolute; left: 0; top: 0;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutter {
|
||||||
|
white-space: normal;
|
||||||
|
height: 100%;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
margin-bottom: -32px;
|
||||||
|
display: inline-block;
|
||||||
|
/* Hack to make IE7 behave */
|
||||||
|
*zoom:1;
|
||||||
|
*display:inline;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutter-wrapper {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 4;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutter-elt {
|
||||||
|
position: absolute;
|
||||||
|
cursor: default;
|
||||||
|
z-index: 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-lines {
|
||||||
|
cursor: text;
|
||||||
|
min-height: 1px; /* prevents collapsing before first draw */
|
||||||
|
}
|
||||||
|
.CodeMirror pre {
|
||||||
|
/* Reset some styles that the rest of the page might have set */
|
||||||
|
-moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
|
||||||
|
border-width: 0;
|
||||||
|
background: transparent;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
margin: 0;
|
||||||
|
white-space: pre;
|
||||||
|
word-wrap: normal;
|
||||||
|
line-height: inherit;
|
||||||
|
color: inherit;
|
||||||
|
z-index: 2;
|
||||||
|
position: relative;
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
.CodeMirror-wrap pre {
|
||||||
|
word-wrap: break-word;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-linebackground {
|
||||||
|
position: absolute;
|
||||||
|
left: 0; right: 0; top: 0; bottom: 0;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-linewidget {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-widget {}
|
||||||
|
|
||||||
|
.CodeMirror-wrap .CodeMirror-scroll {
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-measure {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
.CodeMirror-measure pre { position: static; }
|
||||||
|
|
||||||
|
.CodeMirror div.CodeMirror-cursor {
|
||||||
|
position: absolute;
|
||||||
|
border-right: none;
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.CodeMirror-cursors {
|
||||||
|
visibility: hidden;
|
||||||
|
position: relative;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
.CodeMirror-focused div.CodeMirror-cursors {
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-selected { background: #d9d9d9; }
|
||||||
|
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
|
||||||
|
.CodeMirror-crosshair { cursor: crosshair; }
|
||||||
|
|
||||||
|
.cm-searching {
|
||||||
|
background: #ffa;
|
||||||
|
background: rgba(255, 255, 0, .4);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* IE7 hack to prevent it from returning funny offsetTops on the spans */
|
||||||
|
.CodeMirror span { *vertical-align: text-bottom; }
|
||||||
|
|
||||||
|
/* Used to force a border model for a node */
|
||||||
|
.cm-force-border { padding-right: .1px; }
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
/* Hide the cursor when printing */
|
||||||
|
.CodeMirror div.CodeMirror-cursors {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* See issue #2901 */
|
||||||
|
.cm-tab-wrap-hack:after { content: ''; }
|
||||||
|
|
||||||
|
/* Help users use markselection to safely style text background */
|
||||||
|
span.CodeMirror-selectedtext { background: none; }
|
|
@ -22,8 +22,124 @@
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>nifi-update-attribute-ui</artifactId>
|
<artifactId>nifi-update-attribute-ui</artifactId>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
|
<properties>
|
||||||
|
<frontend.dependency.configs>${basedir}/src/main/frontend</frontend.dependency.configs>
|
||||||
|
<frontend.working.dir>${project.build.directory}/frontend-working-directory</frontend.working.dir>
|
||||||
|
<frontend.assets>${project.build.directory}/${project.build.finalName}/assets</frontend.assets>
|
||||||
|
</properties>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>copy-client-side-deps</id>
|
||||||
|
<phase>prepare-package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>${frontend.assets}</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>${frontend.working.dir}/node_modules</directory>
|
||||||
|
<filtering>false</filtering>
|
||||||
|
<includes>
|
||||||
|
<!-- font awesome -->
|
||||||
|
<include>font-awesome/css/**/*</include>
|
||||||
|
<include>font-awesome/fonts/**/*</include>
|
||||||
|
<include>font-awesome/README.md</include>
|
||||||
|
<!-- jquery -->
|
||||||
|
<include>jquery/dist/jquery.min*</include>
|
||||||
|
<include>jquery/LICENSE.txt</include>
|
||||||
|
<!-- jquery ui -->
|
||||||
|
<include>jquery-ui-dist/jquery-ui.min.js</include>
|
||||||
|
<include>jquery-ui-dist/jquery-ui.min.css</include>
|
||||||
|
<include>jquery-ui-dist/images/**/*</include>
|
||||||
|
<include>jquery-ui-dist/LICENSE.txt</include>
|
||||||
|
<!-- reset.css -->
|
||||||
|
<include>reset.css/reset.css</include>
|
||||||
|
<include>reset.css/README.md</include>
|
||||||
|
<!-- qtip2 -->
|
||||||
|
<include>qtip2/dist/*.css</include>
|
||||||
|
<include>qtip2/dist/jquery.qtip.min*</include>
|
||||||
|
<include>qtip2/LICENSE</include>
|
||||||
|
<!-- JSON2 -->
|
||||||
|
<include>JSON2/json2.js</include>
|
||||||
|
<!-- slickgrid -->
|
||||||
|
<include>slickgrid/slick.core.js</include>
|
||||||
|
<include>slickgrid/slick.dataview.js</include>
|
||||||
|
<include>slickgrid/slick.editors.js</include>
|
||||||
|
<include>slickgrid/slick.formatters.js</include>
|
||||||
|
<include>slickgrid/slick.grid.js</include>
|
||||||
|
<include>slickgrid/plugins/slick.autotooltips.js</include>
|
||||||
|
<include>slickgrid/plugins/slick.cellrangedecorator.js</include>
|
||||||
|
<include>slickgrid/plugins/slick.cellrangeselector.js</include>
|
||||||
|
<include>slickgrid/plugins/slick.cellselectionmodel.js</include>
|
||||||
|
<include>slickgrid/plugins/slick.rowselectionmodel.js</include>
|
||||||
|
<include>slickgrid/lib/jquery.event.drag-2.3.0.js</include>
|
||||||
|
<include>slickgrid/slick.grid.css</include>
|
||||||
|
<include>slickgrid/images/collapse.gif</include>
|
||||||
|
<include>slickgrid/images/expand.gif</include>
|
||||||
|
<include>slickgrid/MIT-LICENSE.txt</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>copy-package-json</id>
|
||||||
|
<phase>generate-sources</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>${frontend.working.dir}</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>${frontend.dependency.configs}</directory>
|
||||||
|
<filtering>false</filtering>
|
||||||
|
<includes>
|
||||||
|
<include>package.json</include>
|
||||||
|
<include>package-lock.json</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.github.eirslett</groupId>
|
||||||
|
<artifactId>frontend-maven-plugin</artifactId>
|
||||||
|
<version>${frontend.mvn.plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<installDirectory>${frontend.working.dir}</installDirectory>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>install-node-and-npm</id>
|
||||||
|
<goals>
|
||||||
|
<goal>install-node-and-npm</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>generate-resources</phase>
|
||||||
|
<configuration>
|
||||||
|
<nodeVersion>${node.version}</nodeVersion>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>npm install</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>run ci</arguments>
|
||||||
|
<workingDirectory>${frontend.working.dir}</workingDirectory>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-war-plugin</artifactId>
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
|
@ -40,6 +156,18 @@
|
||||||
</webResources>
|
</webResources>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.rat</groupId>
|
||||||
|
<artifactId>apache-rat-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<excludes combine.children="append">
|
||||||
|
<exclude>src/main/frontend/package.json</exclude>
|
||||||
|
<exclude>src/main/frontend/package-lock.json</exclude>
|
||||||
|
<exclude>src/main/webapp/js/codemirror/</exclude>
|
||||||
|
<exclude>src/main/webapp/fonts/**/*</exclude>
|
||||||
|
</excludes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
|
@ -0,0 +1,96 @@
|
||||||
|
{
|
||||||
|
"name": "apache-nifi-update-attribute-ui",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "apache-nifi-update-attribute-ui",
|
||||||
|
"dependencies": {
|
||||||
|
"font-awesome": "4.7.0",
|
||||||
|
"jquery": "3.6.4",
|
||||||
|
"jquery-ui-dist": "1.13.2",
|
||||||
|
"JSON2": "0.1.0",
|
||||||
|
"qtip2": "3.0.3",
|
||||||
|
"reset.css": "2.0.2",
|
||||||
|
"slickgrid": "2.4.45"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16.13.2",
|
||||||
|
"npm": ">=8.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/ev-emitter": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ev-emitter/-/ev-emitter-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-jQ5Ql18hdCQ4qS+RCrbLfz1n+Pags27q5TwMKvZyhp5hh2UULUYZUy1keqj6k6SYsdqIYjnmz7xyyEY0V67B8Q=="
|
||||||
|
},
|
||||||
|
"node_modules/font-awesome": {
|
||||||
|
"version": "4.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
|
||||||
|
"integrity": "sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/imagesloaded": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/imagesloaded/-/imagesloaded-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-/0JGSubc1MTCoDKVmonLHgbifBWHdyLkun+R/151E1c5n79hiSxcd7cB7mPXFgojYu8xnRZv7GYxzKoxW8BetQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"ev-emitter": "^2.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/jquery": {
|
||||||
|
"version": "3.6.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.4.tgz",
|
||||||
|
"integrity": "sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ=="
|
||||||
|
},
|
||||||
|
"node_modules/jquery-ui": {
|
||||||
|
"version": "1.13.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.13.3.tgz",
|
||||||
|
"integrity": "sha512-D2YJfswSJRh/B8M/zCowDpNFfwsDmtfnMPwjJTyvl+CBqzpYwQ+gFYIbUUlzijy/Qvoy30H1YhoSui4MNYpRwA==",
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": ">=1.8.0 <4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/jquery-ui-dist": {
|
||||||
|
"version": "1.13.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/jquery-ui-dist/-/jquery-ui-dist-1.13.2.tgz",
|
||||||
|
"integrity": "sha512-oVDRd1NLtTbBwpRKAYdIRgpWVDzeBhfy7Gu0RmY6JEaZtmBq6kDn1pm5SgDiAotrnDS+RoTRXO6xvcNTxA9tOA==",
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": ">=1.8.0 <4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/JSON2": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/JSON2/-/JSON2-0.1.0.tgz",
|
||||||
|
"integrity": "sha512-MRguCg79vy8Kx15/CXzoO5pEPi0tQq7T70mL/t1Hv3G+hVfJVO2BZqX3sl2kbWW08GAmzQYSRfWRtQhmK/eaYA==",
|
||||||
|
"engines": {
|
||||||
|
"node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/qtip2": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/qtip2/-/qtip2-3.0.3.tgz",
|
||||||
|
"integrity": "sha512-vfSEVYg1teA4g3RhT9fnBXzEQrkgyU5CrQE8j6WzZs5LBupG+Nq97mFq4BmDKcA6mGSMFiIqm70+ydvWW1KnGg==",
|
||||||
|
"dependencies": {
|
||||||
|
"imagesloaded": ">=3.0.0",
|
||||||
|
"jquery": ">=1.6.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/reset.css": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/reset.css/-/reset.css-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-HG5RQLYcAxou3yw+Gnzwan1jJCbOcIBZjwoD/YLWuAd8kkuDI/ZqC0uRhY4ReKOOJaM1Y1kvwebHOwK4P8Sevg=="
|
||||||
|
},
|
||||||
|
"node_modules/slickgrid": {
|
||||||
|
"version": "2.4.45",
|
||||||
|
"resolved": "https://registry.npmjs.org/slickgrid/-/slickgrid-2.4.45.tgz",
|
||||||
|
"integrity": "sha512-WvygGTaLU9LnMWZSxqW1agwq8IcDGeCZ289vP1E07eh3ffyLm5TGQsYHXvTwWCHtriZBw+L9RFK/h7TsIMcoLQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": ">=1.8.0",
|
||||||
|
"jquery-ui": ">=1.8.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
{
|
||||||
|
"//-01": "Licensed to the Apache Software Foundation (ASF) under one or more",
|
||||||
|
"//-02": "contributor license agreements. See the NOTICE file distributed with",
|
||||||
|
"//-03": "this work for additional information regarding copyright ownership.",
|
||||||
|
"//-04": "The ASF licenses this file to You under the Apache License, Version 2.0",
|
||||||
|
"//-05": "(the \"License\"); you may not use this file except in compliance with",
|
||||||
|
"//-06": "the License. You may obtain a copy of the License at",
|
||||||
|
"//-07": "",
|
||||||
|
"//-08": "http://www.apache.org/licenses/LICENSE-2.0",
|
||||||
|
"//-09": "",
|
||||||
|
"//-10": "Unless required by applicable law or agreed to in writing, software",
|
||||||
|
"//-11": "distributed under the License is distributed on an \"AS IS\" BASIS,",
|
||||||
|
"//-12": "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
|
||||||
|
"//-13": "See the License for the specific language governing permissions and",
|
||||||
|
"//-14": "limitations under the License.",
|
||||||
|
"name": "apache-nifi-update-attribute-ui",
|
||||||
|
"description": "Apache NiFi 3rd party client side resources.",
|
||||||
|
"scripts": {
|
||||||
|
"ci": "npm ci --ignore-scripts"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"font-awesome": "4.7.0",
|
||||||
|
"jquery": "3.6.4",
|
||||||
|
"jquery-ui-dist": "1.13.2",
|
||||||
|
"reset.css": "2.0.2",
|
||||||
|
"slickgrid": "2.4.45",
|
||||||
|
"qtip2": "3.0.3",
|
||||||
|
"JSON2": "0.1.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16.13.2",
|
||||||
|
"npm": ">=8.1.2"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/apache/nifi.git"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/apache/nifi/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/apache/nifi#readme"
|
||||||
|
}
|
|
@ -236,3 +236,147 @@ licenses.
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
This product bundles 'Fontello' which is available under an MIT license.
|
||||||
|
|
||||||
|
Copyright (C) 2011 by Vitaly Puzrin
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
This product bundles 'JQuery' which is available under and MIT style license.
|
||||||
|
(c) 2005, 2014 jQuery Foundation, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
This product bundles 'jQuery UI' which is available under an MIT style license.
|
||||||
|
For details see http://jqueryui.com
|
||||||
|
|
||||||
|
Copyright 2014 jQuery Foundation and other contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
This product bundles 'JQuery Event Drag' which is available under an MIT style
|
||||||
|
license.
|
||||||
|
Copyright (c) 2008-2015 ThreeDubMedia
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
This product bundles 'json2.js' which is available in the 'public domain'.
|
||||||
|
For details see https://github.com/douglascrockford/JSON-js
|
||||||
|
|
||||||
|
This product bundles 'reset.css' which is available in the 'public domain'.
|
||||||
|
For details see http://meyerweb.com/eric/tools/css/reset/
|
||||||
|
|
||||||
|
This product bundles 'SlickGrid v2.4' which is available under an MIT style license.
|
||||||
|
|
||||||
|
Copyright (c) 2009-present Michael Leibman and Ben McIntyre, http://github.com/6pac/slickgrid
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
This product bundles 'qTip2' which is available under an MIT style license.
|
||||||
|
For details see http://qtip2.com
|
||||||
|
|
||||||
|
Copyright (c) 2012 Craig Michael Thompson
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person
|
||||||
|
obtaining a copy of this software and associated documentation
|
||||||
|
files (the "Software"), to deal in the Software without
|
||||||
|
restriction, including without limitation the rights to use,
|
||||||
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following
|
||||||
|
conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -50,6 +50,11 @@ The following binary components are provided under the Common Development and Di
|
||||||
(CDDL 1.0) (GPL3) Streaming API For XML (javax.xml.stream:stax-api:jar:1.0-2 - no url provided)
|
(CDDL 1.0) (GPL3) Streaming API For XML (javax.xml.stream:stax-api:jar:1.0-2 - no url provided)
|
||||||
(CDDL 1.0) JavaBeans Activation Framework (JAF) (javax.activation:activation:jar:1.1 - http://java.sun.com/products/javabeans/jaf/index.jsp)
|
(CDDL 1.0) JavaBeans Activation Framework (JAF) (javax.activation:activation:jar:1.1 - http://java.sun.com/products/javabeans/jaf/index.jsp)
|
||||||
|
|
||||||
|
******************
|
||||||
|
SIL OFL 1.1
|
||||||
|
******************
|
||||||
|
|
||||||
|
The following binary components are provided under the SIL Open Font License 1.1
|
||||||
|
(SIL OFL 1.1) FontAwesome (4.7.0 - https://fontawesome.com/license/free)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,49 +19,49 @@
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
<link rel="stylesheet" href="../nifi/assets/jquery-ui-dist/jquery-ui.min.css" type="text/css" />
|
<link rel="stylesheet" href="assets/jquery-ui-dist/jquery-ui.min.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/assets/slickgrid/slick.grid.css" type="text/css" />
|
<link rel="stylesheet" href="assets/slickgrid/slick.grid.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/css/slick-nifi-theme.css" type="text/css" />
|
<link rel="stylesheet" href="css/slick-nifi-theme.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/js/jquery/modal/jquery.modal.css" type="text/css" />
|
<link rel="stylesheet" href="js/jquery/modal/jquery.modal.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/js/jquery/combo/jquery.combo.css" type="text/css" />
|
<link rel="stylesheet" href="js/jquery/combo/jquery.combo.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/assets/qtip2/dist/jquery.qtip.min.css" type="text/css" />
|
<link rel="stylesheet" href="assets/qtip2/dist/jquery.qtip.min.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/js/codemirror/lib/codemirror.css" type="text/css" />
|
<link rel="stylesheet" href="js/codemirror/lib/codemirror.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/js/codemirror/addon/hint/show-hint.css" type="text/css" />
|
<link rel="stylesheet" href="js/codemirror/addon/hint/show-hint.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/js/jquery/nfeditor/jquery.nfeditor.css" type="text/css" />
|
<link rel="stylesheet" href="js/jquery/nfeditor/jquery.nfeditor.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/js/jquery/nfeditor/languages/nfeditor.css" type="text/css" />
|
<link rel="stylesheet" href="js/jquery/nfeditor/languages/nfeditor.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/fonts/flowfont/flowfont.css" type="text/css" />
|
<link rel="stylesheet" href="fonts/flowfont/flowfont.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/assets/font-awesome/css/font-awesome.min.css" type="text/css" />
|
<link rel="stylesheet" href="assets/font-awesome/css/font-awesome.min.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/assets/reset.css/reset.css" type="text/css" />
|
<link rel="stylesheet" href="assets/reset.css/reset.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="css/main.css" type="text/css" />
|
<link rel="stylesheet" href="css/main.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../nifi/css/common-ui.css" type="text/css" />
|
<link rel="stylesheet" href="css/common-ui.css" type="text/css" />
|
||||||
<script type="text/javascript" src="../nifi/assets/jquery/dist/jquery.min.js"></script>
|
<script type="text/javascript" src="assets/jquery/dist/jquery.min.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/jquery/jquery.center.js"></script>
|
<script type="text/javascript" src="js/jquery/jquery.center.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/jquery/jquery.each.js"></script>
|
<script type="text/javascript" src="js/jquery/jquery.each.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/jquery/jquery.tab.js"></script>
|
<script type="text/javascript" src="js/jquery/jquery.tab.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/jquery/modal/jquery.modal.js"></script>
|
<script type="text/javascript" src="js/jquery/modal/jquery.modal.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/jquery/combo/jquery.combo.js"></script>
|
<script type="text/javascript" src="js/jquery/combo/jquery.combo.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/jquery/jquery.ellipsis.js"></script>
|
<script type="text/javascript" src="js/jquery/jquery.ellipsis.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/jquery-ui-dist/jquery-ui.min.js"></script>
|
<script type="text/javascript" src="assets/jquery-ui-dist/jquery-ui.min.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/qtip2/dist/jquery.qtip.min.js"></script>
|
<script type="text/javascript" src="assets/qtip2/dist/jquery.qtip.min.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/JSON2/json2.js"></script>
|
<script type="text/javascript" src="assets/JSON2/json2.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/slickgrid/lib/jquery.event.drag-2.3.0.js"></script>
|
<script type="text/javascript" src="assets/slickgrid/lib/jquery.event.drag-2.3.0.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/slickgrid/plugins/slick.cellrangedecorator.js"></script>
|
<script type="text/javascript" src="assets/slickgrid/plugins/slick.cellrangedecorator.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/slickgrid/plugins/slick.cellrangeselector.js"></script>
|
<script type="text/javascript" src="assets/slickgrid/plugins/slick.cellrangeselector.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/slickgrid/plugins/slick.cellselectionmodel.js"></script>
|
<script type="text/javascript" src="assets/slickgrid/plugins/slick.cellselectionmodel.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/slickgrid/plugins/slick.rowselectionmodel.js"></script>
|
<script type="text/javascript" src="assets/slickgrid/plugins/slick.rowselectionmodel.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/slickgrid/slick.formatters.js"></script>
|
<script type="text/javascript" src="assets/slickgrid/slick.formatters.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/slickgrid/slick.editors.js"></script>
|
<script type="text/javascript" src="assets/slickgrid/slick.editors.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/slickgrid/slick.dataview.js"></script>
|
<script type="text/javascript" src="assets/slickgrid/slick.dataview.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/slickgrid/slick.core.js"></script>
|
<script type="text/javascript" src="assets/slickgrid/slick.core.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/assets/slickgrid/slick.grid.js"></script>
|
<script type="text/javascript" src="assets/slickgrid/slick.grid.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/codemirror/lib/codemirror-compressed.js"></script>
|
<script type="text/javascript" src="js/codemirror/lib/codemirror-compressed.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/nf/nf-namespace.js"></script>
|
<script type="text/javascript" src="js/nf/nf-namespace.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/nf/nf-authorization-storage.js"></script>
|
<script type="text/javascript" src="js/nf/nf-authorization-storage.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/nf/nf-storage.js"></script>
|
<script type="text/javascript" src="js/nf/nf-storage.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/nf/nf-ajax-setup.js"></script>
|
<script type="text/javascript" src="js/nf/nf-ajax-setup.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/nf/nf-universal-capture.js"></script>
|
<script type="text/javascript" src="js/nf/nf-universal-capture.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/jquery/nfeditor/languages/nfel.js"></script>
|
<script type="text/javascript" src="js/jquery/nfeditor/languages/nfel.js"></script>
|
||||||
<script type="text/javascript" src="../nifi/js/jquery/nfeditor/jquery.nfeditor.js"></script>
|
<script type="text/javascript" src="js/jquery/nfeditor/jquery.nfeditor.js"></script>
|
||||||
<script type="text/javascript" src="js/application.js"></script>
|
<script type="text/javascript" src="js/application.js"></script>
|
||||||
<title>Update Attribute</title>
|
<title>Update Attribute</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -0,0 +1,734 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 300;
|
||||||
|
src: local('Roboto Light'),
|
||||||
|
local('Roboto-Light'),
|
||||||
|
url('../fonts/Roboto/Roboto-Light.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 300;
|
||||||
|
src: local('Roboto LightItalic'),
|
||||||
|
local('Roboto-LightItalic'),
|
||||||
|
url('../fonts/Roboto/Roboto-LightItalic.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
src: local('Roboto Regular'),
|
||||||
|
local('Roboto-Regular'),
|
||||||
|
url('../fonts/Roboto/Roboto-Regular.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 500;
|
||||||
|
src: local('Roboto Medium'),
|
||||||
|
local('Roboto-Medium'),
|
||||||
|
url('../fonts/Roboto/Roboto-Medium.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
src: local('Roboto Bold'),
|
||||||
|
local('Roboto-Bold'),
|
||||||
|
url('../fonts/Roboto/Roboto-Bold.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: normal;
|
||||||
|
src: local('Roboto Italic'),
|
||||||
|
local('Roboto-Italic'),
|
||||||
|
url('../fonts/Roboto/Roboto-Italic.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto Slab';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
src: local('RobotoSlab Regular'),
|
||||||
|
local('RobotoSlab-Regular'),
|
||||||
|
url('../fonts/Roboto_Slab/RobotoSlab-Regular.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto Slab';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
src: local('RobotoSlab Bold'),
|
||||||
|
local('RobotoSlab-Bold'),
|
||||||
|
url('../fonts/Roboto_Slab/RobotoSlab-Bold.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
/*remove margin from font awesome*/
|
||||||
|
i[class^="fa-"]:before, i[class*=" fa-"]:before {
|
||||||
|
margin: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*remove margin from flowfont*/
|
||||||
|
i[class^="icon-"]:before, i[class*=" icon-"]:before {
|
||||||
|
margin: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*shift rotated font awesome icons*/
|
||||||
|
.fa-rotate-90 {
|
||||||
|
left: -2px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
display: block;
|
||||||
|
font-family: Roboto, sans-serif;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #262626;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.md-default-theme, body, html.md-default-theme, html {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.value-color {
|
||||||
|
color: #775351;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.links li {
|
||||||
|
float: left;
|
||||||
|
display: block;
|
||||||
|
margin-left: 10px;
|
||||||
|
padding: 4px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: normal;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.links span.header-link-over {
|
||||||
|
color: #264c58;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
General Styles
|
||||||
|
*/
|
||||||
|
|
||||||
|
.unselectable {
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clear {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pointer {
|
||||||
|
cursor: pointer !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blank, .unset, .sensitive {
|
||||||
|
font-weight: normal !important;
|
||||||
|
color: #a8a8a8 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.required {
|
||||||
|
font-weight: bold !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ellipsis {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ellipsis.multiline {
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-cell {
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
line-height: normal;
|
||||||
|
float: left;
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-family: 'Roboto Slab', serif;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #262626; /*base-font-color*/
|
||||||
|
letter-spacing: 0.05rem;
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* placeholder styles */
|
||||||
|
|
||||||
|
*::placeholder {
|
||||||
|
color: #728e9b;
|
||||||
|
}
|
||||||
|
*::-webkit-input-placeholder {
|
||||||
|
color: #728e9b;
|
||||||
|
}
|
||||||
|
*:-moz-placeholder {
|
||||||
|
color: #728e9b;
|
||||||
|
}
|
||||||
|
*::-moz-placeholder {
|
||||||
|
color: #728e9b;
|
||||||
|
}
|
||||||
|
*:-ms-input-placeholder {
|
||||||
|
color: #728e9b;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=text], input[type=password] {
|
||||||
|
background-color: #eaeef0;
|
||||||
|
border: 1px solid #eaeef0;
|
||||||
|
font-family: Roboto, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
padding: 0px 10px 0px 10px;
|
||||||
|
resize: none;
|
||||||
|
height: 32px;
|
||||||
|
width: 100%;
|
||||||
|
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
|
||||||
|
-moz-box-sizing: border-box; /* Firefox, other Gecko */
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #262626;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
input:focus, textarea:focus {
|
||||||
|
background-color: #fff;
|
||||||
|
border: 1px solid #004849; /*link-color*/
|
||||||
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
background-color: #eaeef0;
|
||||||
|
border: 1px solid #eaeef0;
|
||||||
|
font-family: Roboto, sans-serif;
|
||||||
|
font-size: 13px !important;
|
||||||
|
padding: 10px 10px;
|
||||||
|
resize: vertical;
|
||||||
|
height: 32px;
|
||||||
|
width: 100%;
|
||||||
|
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
|
||||||
|
-moz-box-sizing: border-box; /* Firefox, other Gecko */
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #262626;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
overflow-y: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea[disabled] {
|
||||||
|
background: #b2b8c1;
|
||||||
|
color: #dbdee2;
|
||||||
|
border: 1px solid #b2b8c1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.property-info {
|
||||||
|
list-style-type: disc;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.property-info li {
|
||||||
|
padding: 0px 0px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.nf-checkbox {
|
||||||
|
cursor: pointer;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
float: left;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nf-checkbox-label {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.nf-checkbox.disabled {
|
||||||
|
opacity: .5;
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.checkbox-unchecked {
|
||||||
|
background: transparent url(../images/inputCheckbox.png) no-repeat scroll top left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.checkbox-checked {
|
||||||
|
background: transparent url(../images/inputCheckbox.png) no-repeat scroll top right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.ajax-loading {
|
||||||
|
background-image: url(../images/iconLoading.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.ajax-complete:before {
|
||||||
|
font-family: FontAwesome;
|
||||||
|
content: "\f00c";
|
||||||
|
font-size: 16px;
|
||||||
|
color: #70B59A;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.ajax-error:before {
|
||||||
|
font-family: FontAwesome;
|
||||||
|
content: "\f00d";
|
||||||
|
font-size: 16px;
|
||||||
|
color: #D18686;
|
||||||
|
}
|
||||||
|
|
||||||
|
.refresh-button {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-draggable .dialog-header {
|
||||||
|
cursor: move;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.link:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.link {
|
||||||
|
cursor: pointer;
|
||||||
|
color: #004849; /*link-color*/
|
||||||
|
font-weight: normal;
|
||||||
|
display: inline-block;
|
||||||
|
border-bottom: 1px solid #CCDADB;
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: Roboto;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.link-over {
|
||||||
|
border-bottom: 1px solid #004849;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.link-bold {
|
||||||
|
font-weight: bold;
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
height: 28px;
|
||||||
|
width: 28px;
|
||||||
|
border: 1px solid #CCDADB; /*tint link-color 80%*/
|
||||||
|
background-color: rgba(249, 250, 251, 0.97);
|
||||||
|
color: #004849;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.refresh-button {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
border: 1px solid #004849; /*link-color*/
|
||||||
|
}
|
||||||
|
|
||||||
|
button:disabled {
|
||||||
|
color: #CCDADB !important; /*tint link-color 80%*/
|
||||||
|
cursor: not-allowed;
|
||||||
|
border: 1px solid #CCDADB; /*tint link-color 80%*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/* angular material override */
|
||||||
|
|
||||||
|
button:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
input:focus {
|
||||||
|
background-color: #fff;
|
||||||
|
border: 1px solid #004849; /*link-color*/
|
||||||
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* filter controls */
|
||||||
|
|
||||||
|
.filter-controls {
|
||||||
|
position: absolute;
|
||||||
|
top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-container {
|
||||||
|
height: 32px;
|
||||||
|
width: 100%;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter {
|
||||||
|
margin-right: 3px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.filter {
|
||||||
|
width: 173px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-type,
|
||||||
|
.filter-status-dropdown {
|
||||||
|
float: left;
|
||||||
|
width: 148px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-status {
|
||||||
|
margin-top: 10px;
|
||||||
|
color: #775351;
|
||||||
|
font-family: Roboto;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-field.summary-filter-primary-node-container {
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-top: 8px;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* overlay icon styles */
|
||||||
|
|
||||||
|
.stop-configure-icon.fa-stop {
|
||||||
|
display : inline-block;
|
||||||
|
font-size: 15px;
|
||||||
|
position : relative;
|
||||||
|
top : -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stop-configure-icon::after {
|
||||||
|
content : "\f013";
|
||||||
|
font-size: 14px;
|
||||||
|
position : relative;
|
||||||
|
top : 0px;
|
||||||
|
left : -8px;
|
||||||
|
color : #ffffff;
|
||||||
|
-webkit-text-stroke-width : 1px;
|
||||||
|
-webkit-text-stroke-color : #004849;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
*.stop-configure-icon + span {
|
||||||
|
display : inline-block;
|
||||||
|
padding : 0px 0px 0px 0px;
|
||||||
|
margin-left : -10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* buttons */
|
||||||
|
|
||||||
|
button.fa {
|
||||||
|
color: #004849;
|
||||||
|
font-size: 16px;
|
||||||
|
cursor: pointer;
|
||||||
|
line-height: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.icon {
|
||||||
|
color: #004849;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.button-icon span {
|
||||||
|
padding-left: 5px;
|
||||||
|
vertical-align: middle;
|
||||||
|
font-style: normal;
|
||||||
|
font-family: Roboto;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.button-icon {
|
||||||
|
float: left !important;
|
||||||
|
margin-left: 0;
|
||||||
|
font-size: 18px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.button.auto-width,
|
||||||
|
div.button-icon.auto-width {
|
||||||
|
width : auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.button {
|
||||||
|
height: 32px;
|
||||||
|
width: 90px;
|
||||||
|
padding: 0 8px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 11px;
|
||||||
|
line-height: 33px;
|
||||||
|
text-align: center;
|
||||||
|
border: 0px;
|
||||||
|
float: right;
|
||||||
|
position: relative;
|
||||||
|
background: #728E9B;
|
||||||
|
color: #fff;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.button.disabled-button {
|
||||||
|
color: #a8a8a8 !important;
|
||||||
|
cursor: not-allowed;
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.button:hover:not(.disabled-button) {
|
||||||
|
background-color: #004849;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.secondary-button {
|
||||||
|
height: 32px;
|
||||||
|
width: 90px;
|
||||||
|
padding: 0 8px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 11px;
|
||||||
|
line-height: 33px;
|
||||||
|
text-align: center;
|
||||||
|
border: 0px;
|
||||||
|
float: right;
|
||||||
|
position: relative;
|
||||||
|
background: #E3E8EB;
|
||||||
|
color: #004849;
|
||||||
|
cursor:pointer
|
||||||
|
}
|
||||||
|
|
||||||
|
div.secondary-button:hover {
|
||||||
|
background-color: #C7D2D7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* tooltips */
|
||||||
|
|
||||||
|
.qtip-nifi {
|
||||||
|
border: 0px !important;
|
||||||
|
border-radius: 2px;
|
||||||
|
background-color: rgba(0, 0, 0, 0.54) !important;
|
||||||
|
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
|
||||||
|
font-family: Roboto;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.nifi-tooltip {
|
||||||
|
border: 0px !important;
|
||||||
|
border-radius: 2px;
|
||||||
|
background-color: rgba(0, 0, 0, 0.80) !important;
|
||||||
|
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
|
||||||
|
font-family: Roboto;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #fff !important;
|
||||||
|
max-width: 500px;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scrollable {
|
||||||
|
border-bottom: 1px solid #d0dbe0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*context menu */
|
||||||
|
|
||||||
|
.context-menu {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10006;
|
||||||
|
font-size: 13px;
|
||||||
|
padding:3px 0;
|
||||||
|
background-color:rgba(249,250,251,0.97); /*tint base-color 96%*/
|
||||||
|
border:1px solid #004849; /*link-color*/
|
||||||
|
box-shadow: 0 3px 6px rgba(0,0,0,0.3);
|
||||||
|
width: 215px;
|
||||||
|
max-height: inherit;
|
||||||
|
color:#004849
|
||||||
|
}
|
||||||
|
|
||||||
|
div.context-menu-item {
|
||||||
|
cursor: pointer;
|
||||||
|
height: 20px;
|
||||||
|
padding-top: 4px;
|
||||||
|
padding-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.context-menu-item.hover {
|
||||||
|
background-color:#C7D2D7; /*tint base-color 60%*/
|
||||||
|
box-shadow:0 1px 1px rgba(0,0,0,0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.context-menu-item-img {
|
||||||
|
float: left;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.context-menu-item-img.fa {
|
||||||
|
position: relative;
|
||||||
|
top: 2px;
|
||||||
|
left: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.context-menu-item-img.icon {
|
||||||
|
position: relative;
|
||||||
|
top: 1px;
|
||||||
|
left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.context-menu-item-text {
|
||||||
|
margin-left: 4px;
|
||||||
|
line-height: 16px;
|
||||||
|
float: left;
|
||||||
|
color: #262626;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.context-menu-group-item-img {
|
||||||
|
float: right;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
background-size: cover;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.context-menu-item-separator {
|
||||||
|
height: 1px;
|
||||||
|
background-color: #C7D2D7;
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-bottom: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* search */
|
||||||
|
|
||||||
|
li.search-no-matches {
|
||||||
|
padding: 4px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #aaa;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* progress bars */
|
||||||
|
|
||||||
|
md-progress-linear > div {
|
||||||
|
background-color: #eaeef0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-name {
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 500;
|
||||||
|
font-family: Roboto Slab;
|
||||||
|
text-transform: capitalize;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
color: #262626;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-name .fa {
|
||||||
|
color: #004849;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-field .fa {
|
||||||
|
color: #004849;
|
||||||
|
margin-left: 5px;
|
||||||
|
line-height: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-field {
|
||||||
|
line-height: normal;
|
||||||
|
width: 100%;
|
||||||
|
color: #775351;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-header {
|
||||||
|
color: #728e9b;
|
||||||
|
font-size: 12pt;
|
||||||
|
font-family: 'Roboto Slab';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror {
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
font-family: monospace;
|
||||||
|
background-color: #fff;
|
||||||
|
cursor: default;
|
||||||
|
line-height: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* jquery ui autocomplete override */
|
||||||
|
|
||||||
|
.ui-autocomplete {
|
||||||
|
overflow: auto !important;
|
||||||
|
border: 1px solid #aaaaaa !important;
|
||||||
|
font-size: 12px !important;
|
||||||
|
font-family: Roboto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-menu .ui-menu-item a {
|
||||||
|
display: block;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin: 0 !important;
|
||||||
|
color: #333 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-menu .ui-menu-item a.ui-state-active {
|
||||||
|
background: #D4E0E5 !important;
|
||||||
|
border: 1px solid #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* jquery ui slider override */
|
||||||
|
|
||||||
|
.ui-slider-handle.ui-state-active {
|
||||||
|
background: #fff !important;
|
||||||
|
}
|
|
@ -0,0 +1,153 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* nifi specific slick grid theme based on the supplied slick-default-theme.css */
|
||||||
|
|
||||||
|
.slick-header-columns {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #728E9B;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-header-column {
|
||||||
|
background: #728E9B;
|
||||||
|
color: #fff;
|
||||||
|
font-weight: bold;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-header-column:hover, .slick-header-column-active {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-row {
|
||||||
|
position: absolute;
|
||||||
|
background: white;
|
||||||
|
border: 0;
|
||||||
|
line-height: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-row:hover {
|
||||||
|
background-color: #dce3e6 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-cell {
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-cell.selected {
|
||||||
|
background-color: #ffef85;
|
||||||
|
border-top: 1px solid #000000;
|
||||||
|
border-bottom: 1px solid #000000;
|
||||||
|
padding-top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-row.odd {
|
||||||
|
background: #f4f6f7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-cell.invalid {
|
||||||
|
border-color: #ba554a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slickgrid-editor > textarea {
|
||||||
|
resize: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-canvas .slick-cell:first-child{
|
||||||
|
border-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-viewport .fa {
|
||||||
|
color: #004849;
|
||||||
|
line-height: 22px;
|
||||||
|
margin-top: 0;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-viewport .icon {
|
||||||
|
color: #004849;
|
||||||
|
line-height: 24px;
|
||||||
|
margin-top: 0;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-header.ui-state-default {
|
||||||
|
background-color: #728E9B;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-header.ui-state-default, .slick-headerrow.ui-state-default {
|
||||||
|
font-family: Roboto;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 12px;
|
||||||
|
font-style: normal;
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-header-column.ui-state-default {
|
||||||
|
height: 24px;
|
||||||
|
line-height: 24px;
|
||||||
|
border-right: 1px solid #728E9B;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-sortable-placeholder {
|
||||||
|
background: #728E9B;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-row.ui-widget-content, .slick-row.ui-state-active {
|
||||||
|
font-family: Roboto;
|
||||||
|
font-size: 12px;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #262626;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-cell, .slick-headerrow-column {
|
||||||
|
border-right: 0;
|
||||||
|
border-top: 0;
|
||||||
|
border-left: 1px solid #c7d2d7;
|
||||||
|
border-bottom: 1px solid #c7d2d7;
|
||||||
|
padding: 1px 2px 5px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.status-text {
|
||||||
|
padding-left: 4px;
|
||||||
|
line-height: 22px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-sort-indicator {
|
||||||
|
float: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-sort-indicator-desc {
|
||||||
|
background: url(../images/sort-desc.gif) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-sort-indicator-asc {
|
||||||
|
background: url(../images/sort-asc.gif) !important;
|
||||||
|
}
|
|
@ -0,0 +1,202 @@
|
||||||
|
|
||||||
|
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.
|
|
@ -0,0 +1,202 @@
|
||||||
|
|
||||||
|
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.
|
|
@ -0,0 +1,87 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: 'flowfont';
|
||||||
|
src: url('./flowfont.eot?8516181');
|
||||||
|
src: url('./flowfont.eot?8516181#iefix') format('embedded-opentype'),
|
||||||
|
url('./flowfont.woff2?8516181') format('woff2'),
|
||||||
|
url('./flowfont.woff?8516181') format('woff'),
|
||||||
|
url('./flowfont.ttf?8516181') format('truetype'),
|
||||||
|
url('./flowfont.svg?8516181#flowfont') format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
|
||||||
|
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
|
||||||
|
/*
|
||||||
|
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||||
|
@font-face {
|
||||||
|
font-family: 'flowfont';
|
||||||
|
src: url('../font/flowfont.svg?8516181#flowfont') format('svg');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
[class^="icon-"]:before, [class*=" icon-"]:before {
|
||||||
|
font-family: "flowfont";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
speak: never;
|
||||||
|
|
||||||
|
display: inline-block;
|
||||||
|
text-decoration: inherit;
|
||||||
|
width: 1em;
|
||||||
|
margin-right: .2em;
|
||||||
|
text-align: center;
|
||||||
|
/* opacity: .8; */
|
||||||
|
|
||||||
|
/* For safety - reset parent styles, that can break glyph codes*/
|
||||||
|
font-variant: normal;
|
||||||
|
text-transform: none;
|
||||||
|
|
||||||
|
/* fix buttons height, for twitter bootstrap */
|
||||||
|
line-height: 1em;
|
||||||
|
|
||||||
|
/* Animation center compensation - margins should be symmetric */
|
||||||
|
/* remove if not needed */
|
||||||
|
margin-left: .2em;
|
||||||
|
|
||||||
|
/* you can be more comfortable with increased icons size */
|
||||||
|
/* font-size: 120%; */
|
||||||
|
|
||||||
|
/* Font smoothing. That was taken from TWBS */
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
|
||||||
|
/* Uncomment for 3D effect */
|
||||||
|
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-funnel-add:before { content: '\e800'; } /* '' */
|
||||||
|
.icon-counter:before { content: '\e801'; } /* '' */
|
||||||
|
.icon-enable-false:before { content: '\e802'; } /* '' */
|
||||||
|
.icon-funnel:before { content: '\e803'; } /* '' */
|
||||||
|
.icon-group:before { content: '\e804'; } /* '' */
|
||||||
|
.icon-group-remote:before { content: '\e805'; } /* '' */
|
||||||
|
.icon-label:before { content: '\e806'; } /* '' */
|
||||||
|
.icon-processor:before { content: '\e807'; } /* '' */
|
||||||
|
.icon-provenance:before { content: '\e808'; } /* '' */
|
||||||
|
.icon-template:before { content: '\e809'; } /* '' */
|
||||||
|
.icon-transmit-false:before { content: '\e80a'; } /* '' */
|
||||||
|
.icon-zoom-actual:before { content: '\e80b'; } /* '' */
|
||||||
|
.icon-zoom-fit:before { content: '\e80c'; } /* '' */
|
||||||
|
.icon-label-add:before { content: '\e80d'; } /* '' */
|
||||||
|
.icon-template-add:before { content: '\e80e'; } /* '' */
|
||||||
|
.icon-group-add:before { content: '\e80f'; } /* '' */
|
||||||
|
.icon-template-import:before { content: '\e810'; } /* '' */
|
||||||
|
.icon-template-save:before { content: '\e811'; } /* '' */
|
||||||
|
.icon-group-remote-add:before { content: '\e812'; } /* '' */
|
||||||
|
.icon-port-out-add:before { content: '\e813'; } /* '' */
|
||||||
|
.icon-port-in-add:before { content: '\e814'; } /* '' */
|
||||||
|
.icon-processor-add:before { content: '\e815'; } /* '' */
|
||||||
|
.icon-lineage:before { content: '\e816'; } /* '' */
|
||||||
|
.icon-import-from-registry-add:before { content: '\e81d'; } /* '' */
|
||||||
|
.icon-import-from-registry:before { content: '\e81e'; } /* '' */
|
||||||
|
.icon-port-in:before { content: '\e832'; } /* '' */
|
||||||
|
.icon-port-out:before { content: '\e833'; } /* '' */
|
||||||
|
.icon-connect:before { content: '\e834'; } /* '' */
|
||||||
|
.icon-connect-add:before { content: '\e835'; } /* '' */
|
||||||
|
.icon-threads:before { content: '\e83f'; } /* '' */
|
||||||
|
.icon-drop:before { content: '\e888'; } /* '' */
|
|
@ -0,0 +1,72 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>Copyright (C) 2023 by original authors @ fontello.com</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="flowfont" horiz-adv-x="1000" >
|
||||||
|
<font-face font-family="flowfont" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
||||||
|
<missing-glyph horiz-adv-x="1000" />
|
||||||
|
<glyph glyph-name="funnel-add" unicode="" d="M948 786h-114a52 52 0 0 1-53-52v-147l-183-77a305 305 0 0 1-35 11l78 110h51a52 52 0 0 1 52 52v115a52 52 0 0 1-52 52h-114a52 52 0 0 1-52-52v-114a52 52 0 0 1 52-53h29l-74-108c-9 0-18-2-28-2s-19 4-28 3l-73 107h18a52 52 0 0 1 52 52v115a52 52 0 0 1-52 52h-114a52 52 0 0 1-51-52v-114a52 52 0 0 1 51-53h61l75-111a379 379 0 0 1-38-8l-187 75v147a52 52 0 0 1-53 52h-114a52 52 0 0 1-52-52v-114a52 52 0 0 1 52-51h156l159-68a39 39 0 0 1-28-29c0-28 74-51 166-51s167 22 167 50a40 40 0 0 1-29 31l159 67h146a52 52 0 0 1 52 51v114a52 52 0 0 1-52 52z m-365-128a31 31 0 0 0-32 31v104a31 31 0 0 0 32 31h105a31 31 0 0 0 31-31v-104a31 31 0 0 0-31-31h-105z m-270 0a31 31 0 0 0-32 31v104a31 31 0 0 0 32 31h104a31 31 0 0 0 31-31v-104a31 31 0 0 0-31-31h-104z m-121-33a31 31 0 0 0-31-32h-104a31 31 0 0 0-31 32v104a31 31 0 0 0 31 31h104a31 31 0 0 0 31-31v-104z m781 0a31 31 0 0 0-31-32h-103a31 31 0 0 0-31 32v104a31 31 0 0 0 31 31h104a31 31 0 0 0 31-31v-104z m-689-257a234 234 0 1 1 234-234 234 234 0 0 1-234 234z m140-268a9 9 0 0 0-9-9h-81a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-66a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-80a9 9 0 0 0-9 9v66a9 9 0 0 0 9 9h81a9 9 0 0 1 10 9v82a9 9 0 0 0 7 8h65a9 9 0 0 0 9-9v-81a9 9 0 0 1 9-9h81a9 9 0 0 0 9-9v-66z m153 252v-164a18 18 0 0 1 19-19h60c12 0 14-7 7-15l-115-122a281 281 0 0 1-164 366 514 514 0 0 1 121-14c20 0 194 2 202 80h12v-2a31 31 0 0 0 0-5c0-69-78-95-142-104z m51-301v-150a52 52 0 0 0-52-51h-138a52 52 0 0 0-43 22 281 281 0 0 1 43 23 31 31 0 0 1 18-6h104a31 31 0 0 1 31 31v96z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="counter" unicode="" d="M878-17h-756c-67 0-122 54-122 121v492c0 67 55 121 122 121h756c68 0 122-54 122-121v-492c0-67-54-121-122-121z m-756 670c-32 0-58-26-58-57v-492c0-31 26-57 58-57h756c32 0 58 26 58 57v492c0 31-26 57-58 57h-756z m358-535h-314v62l148 158c20 22 35 42 45 58 10 17 15 33 15 47 0 21-5 37-15 48-11 12-25 18-45 18-20 0-36-7-48-21-12-15-18-33-18-56h-91c0 28 7 53 20 76 13 23 32 41 56 54 25 13 52 20 83 20 47 0 84-11 110-34s39-55 39-96c0-22-6-45-18-69-11-23-31-51-60-82l-104-110h197v-73z m344 457c8-17 12-36 12-57 0-21-7-41-19-58-13-18-30-31-51-41 26-9 45-23 58-41 13-19 19-40 19-66 0-40-15-73-44-97s-69-37-118-37c-46 0-83 12-112 36-29 24-44 56-44 96h91c0-18 7-32 20-42 12-11 28-17 47-17 22 0 39 6 51 17 12 12 18 27 18 46 0 45-25 68-75 68h-48v71h48c23 0 40 6 51 17 12 12 17 27 17 46 0 19-5 33-16 43-11 11-26 16-45 16l140 0z m-141 0c-18 0-32-5-44-15-11-9-17-21-17-37h-91c0 19 4 36 12 52h140z m0-457l25 39h92v-39h-117z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="enable-false" unicode="" d="M912-123l-297 296-144-308c-5-9-14-15-25-15-3 0-6 1-9 1-13 4-21 17-18 30l96 392-71 70-150-37c-3-1-5-1-7-1-7 0-14 2-19 7-7 5-10 14-8 23l38 154-251 250 41 42 865-862-41-42z m-117 683c5 9 3 20-4 27-5 5-12 9-20 9-3 0-5-1-7-1l-238-59 102 278c2 4 3 7 3 11 0 14-12 25-27 25h-197c-12 0-23-8-26-19l-42-172 343-342 113 243z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="funnel" unicode="" d="M782 734v-147l-183-77c-11 2-21 9-35 11l77 111h51c28 0 52 23 52 52v114c0 29-24 52-52 52h-114c-29 0-52-23-52-52v-114c0-29 23-52 52-52h29l-74-108c-9 0-18-2-28-2-9 0-19 3-28 3l-73 107h18c29 0 52 23 52 52v114c0 29-23 52-52 52h-113c-29 0-53-23-53-52v-114c0-29 24-52 53-52h60l75-111c-13-2-27-6-38-9l-188 75v147c0 29-23 52-52 52h-114c-29 0-52-23-52-52v-114c0-29 23-52 52-52h157l158-68c-18-8-28-19-28-29 0-27 74-50 166-50 92 0 166 22 166 49 0 10-10 22-28 30l159 68h146c29 0 52 23 52 52v114c0 29-23 52-52 52h-114c-29 0-52-23-52-52z m-231-45v104c0 17 14 31 32 31h104c17 0 31-14 31-31v-104c0-17-14-31-31-31h-104c-18 0-32 14-32 31z m-269 0v104c0 17 14 31 31 31h105c17 0 31-14 31-31v-104c0-17-14-31-31-31h-105c-17 0-31 14-31 31z m-121-95h-104c-17 0-31 14-31 31v104c0 17 14 31 31 31h104c17 0 31-14 31-31v-104c0-17-14-31-31-31z m782 0h-104c-17 0-31 14-31 31v104c0 17 14 31 31 31h104c17 0 31-14 31-31v-104c0-17-14-31-31-31z m-452-592c8-9 20-9 28 0l144 153c8 8 5 16-6 16h-61c-11 0-19 7-19 18v164c64 9 142 35 142 104 0 2-1 3-1 5l-1 2-10 0c-8-78-182-80-202-80-20 0-194 2-202 80l-10 0 0-2c0-2 0-3 0-5 0-69 79-95 143-104v-164c0-11-11-18-22-18h-60c-11 0-14-8-7-16l144-153z m137 50v-150c0-29-23-52-52-52h-139c-29 0-52 23-52 52v150l38-36v-96c0-18 14-32 31-32h105c17 0 31 14 31 32v96l38 36z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="group" unicode="" d="M82 842c-45 0-82-36-82-82v-110h192v192h-110z m53-134h-77v36c0 22 18 41 41 41h36v-77z m783 134h-110v-192h192v110c0 46-37 82-82 82z m24-134h-77v77h36c23 0 41-19 41-41v-36z m-942-658v-110c0-46 37-82 82-82h110v192h-192z m135-135h-36c-23 0-41 19-41 41v36h77v-77z m673 135v-192h110c45 0 82 36 82 82v110h-192z m134-94c0-22-18-41-41-41h-36v77h77v-36z m-883 126v536h75v-536h-75z m807 0v536h75v-536h-75z m-634 627v75h536v-75h-536z m0-793v75h536v-75h-536z m454 530h-92v71c0 46-37 82-82 82h-179c-45 0-82-36-82-82v-178c0-46 37-82 82-82h92v-72c0-45 37-82 82-82h179c45 0 82 37 82 82v179c0 45-37 82-82 82z m-261-82v-67h-84c-27 0-49 22-49 49v164c0 27 22 49 49 49h163c27 0 49-22 49-49v-64h-46c-45 0-82-37-82-82z m302-172c0-27-22-49-49-49h-164c-27 0-49 22-49 49v164c0 27 22 49 49 49h164c27 0 49-22 49-49v-163z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="group-remote" unicode="" d="M82 842c-45 0-82-36-82-82v-110h192v192h-110z m53-134h-77v36c0 22 18 41 41 41h36v-77z m783 134h-110v-192h192v110c0 46-37 82-82 82z m24-134h-77v77h36c23 0 41-19 41-41v-36z m-942-658v-110c0-46 37-82 82-82h110v192h-192z m135-135h-36c-23 0-41 19-41 41v36h77v-77z m673 135v-192h110c45 0 82 36 82 82v110h-192z m134-94c0-22-18-41-41-41h-36v77h77v-36z m-211 433c-5 78-69 138-147 138-42 0-82-18-110-49-16 17-38 26-61 26-48 0-87-39-87-86l0-2c-4 1-7 1-11 1-67 0-122-55-122-122 0-67 55-122 122-122h384c60 0 110 50 110 111 0 49-32 91-78 105z m-32-158h-384c-86 0-75 143 11 127l68-13-10 68c-4 28 34 43 51 22l39-50 40 50c49 62 157 27 159-54l1-38 37-9c57-13 46-103-12-103z m-640-149v536h75v-536h-75z m882 0h-75v536h75v-536z m-709 627v75h536v-75h-536z m0-793v75h536v-75h-536z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="label" unicode="" d="M670 157c2 4 5 7 8 11l322 321v-43l-303-303c-3-3-7-6-11-8l-36-18 20 40z m-225-271l315 93c7 2 13 6 18 11l222 222v83l-207-207c-3-3-5-5-6-8l-40-65c-5-8-12-14-21-17l-167-61-5 10c-15 33-41 59-74 75l-10 5 60 166c3 9 10 17 18 21l62 38c3 2 6 4 8 6l382 382v83l-475-473c-5-5-8-11-10-18l-96-320c-5-16 10-31 26-26z m160 712c40 0 70 18 70 41s-30 40-70 40h-535c-40 0-70-17-70-40s30-41 70-41h535z m-59-136c40 0 70 18 70 41s-30 41-70 41h-476c-40 0-70-18-70-41s30-41 70-41h476z m-228-135c40 0 70 17 70 40 0 24-30 41-70 41h-248c-40 0-70-17-70-40 0-24 30-41 70-41h248z m178 407c40 0 70 17 70 40s-30 41-70 41h-426c-40 0-70-17-70-41s30-40 70-40h426z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="processor" unicode="" d="M101 832l-50-50-39-88 39 39v-120l-39-88 39 39v-120l-39-87 39 39v-121l-39-87 39 39v-121l-39-87 39 39v-121l-39-87 63 63h121l-15-63 63 63h121l-15-63 63 63h120l-14-63 63 63h120l-14-63 63 63h120l-15-63 114 113c11 12 18 28 18 44v760c0 46-37 83-83 83h-760c-16 0-32-7-44-18z m798-850h-738c-23 0-41 18-41 41v738c0 23 18 42 41 42h738c23 0 42-19 42-42v-738c0-23-19-41-42-41z m-119 564c-2 9-4 19-11 27-57 75-144 119-239 119-65 0-128-21-180-60-127-96-156-278-66-409 1-3 2-6 4-8 57-76 144-120 239-120 66 0 128 21 180 61 68 51 111 123 122 202 9 66-8 133-49 188z m-54-322c-39-30-87-45-137-45-80 0-157 40-208 106-11 15-28 24-46 24-13 0-25-4-36-12-12-10-20-23-23-39 0-4 1-7 1-11-60 110-39 246 55 317 39 29 86 45 136 45 80 0 158-40 208-107 11-15 28-23 47-23 13 0 25 4 35 11 16 13 23 32 22 51 63-110 42-245-54-317z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="provenance" unicode="" d="M827 160v-258c0-29-23-52-51-52h-724c-29 0-52 23-52 52v724c0 28 23 51 52 51h258v-465c0-29 23-52 52-52h465z m-193 293c-17 0-31 14-31 31v271h-150c-17 0-31-13-31-30v-422c0-17 14-30 31-30h422c17 0 30 13 30 30v150h-271z m366 145v193c0 33-26 59-59 59h-193c-32 0-58-26-58-59v-193c0-32 26-58 58-58h193c33 0 59 26 59 58z m-241 183h172v-172h-172v172z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="template" unicode="" d="M995 413v-157a31 31 0 0 0-31-31h-231l-195-156h153a31 31 0 0 0 32-31v-157a31 31 0 0 0-32-31h-434a31 31 0 0 0-31 31v157a31 31 0 0 0 31 31h231l196 156h-153a31 31 0 0 0-31 31v157a31 31 0 0 0 31 31h122l-373 187h-244a31 31 0 0 0-31 32v156a31 31 0 0 0 31 31h433a31 31 0 0 0 31-31v-156a31 31 0 0 0-31-32h-122l373-187h244a31 31 0 0 0 31-31z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="transmit-false" unicode="" d="M44 835l-44-44 163-163c-52-74-83-165-83-262 0-255 206-461 460-461 98 0 189 32 264 85l125-125 44 44-929 926z m287-374l60-60c-2-11-4-23-4-36 0-84 68-153 153-153 12 0 24 2 36 5l60-60c-29-14-62-22-96-22-127 0-230 103-230 230 0 35 8 67 21 96z m209-479c-212 0-383 172-383 383 0 77 23 148 62 208l55-55c-26-45-41-97-41-153 0-169 138-306 307-306 56 0 108 15 153 41l56-55c-60-40-132-63-209-63z m0 767c212 0 383-172 383-383 0-75-21-145-58-204l55-55v0c50 73 80 163 80 258 0 255-206 460-460 460-96 0-186-29-260-80l56-55c59 37 129 59 204 59z m269-531c24 44 38 94 38 148 0 169-138 306-307 306-54 0-104-14-148-38l57-57c28 12 59 18 91 18 127 0 230-102 230-230 0-32-7-62-18-90l57-57z m-299 298l180-180c2 10 3 19 3 30 0 84-68 153-153 153-10 0-20-1-30-3z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="zoom-actual" unicode="" d="M42-150c-23 0-42 19-42 42v916c0 23 19 42 42 42h83c23 0 42-19 42-42v-916c0-23-19-42-42-42h-83z m416 233c-22 0-41 19-41 42v108c0 23 19 42 41 42h84c23 0 41-19 41-42v-108c0-23-18-42-41-42h-84z m0 343c-22 0-41 18-41 41v108c0 23 19 42 41 42h84c23 0 41-19 41-42v-108c0-23-18-41-41-41h-84z m417-576c-23 0-42 19-42 42v916c0 23 19 42 42 42h83c23 0 42-19 42-42v-916c0-23-19-42-42-42h-83z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="zoom-fit" unicode="" d="M637 779c-12 12-15 30-9 45 7 16 22 26 39 26h291c23 0 42-19 42-42v-291c0-17-10-32-25-39-6-2-11-3-17-3-11 0-21 5-29 12l-292 292z m-566-292c-8-7-18-12-29-12-6 0-11 1-16 3-16 7-26 22-26 39v291c0 23 19 42 42 42h291c17 0 32-10 39-26 6-15 3-33-9-45l-292-292z m292-566c12-12 15-30 9-45-7-16-22-26-39-26h-291c-23 0-42 19-42 42v291c0 17 10 32 26 39 15 6 33 3 45-9l292-292z m566 292c12 12 30 15 46 9 15-7 25-22 25-39v-291c0-23-19-42-42-42h-291c-17 0-32 10-39 26-6 15-3 33 9 45l292 292z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="label-add" unicode="" d="M670 157a42 42 0 0 0 8 11l322 321v-43l-303-303a42 42 0 0 0-11-8l-36-17z m-65 441c40 0 70 18 70 41s-31 40-70 40h-535c-39 0-70-16-70-40s31-41 70-41h535z m-58-135c40 0 70 17 70 40s-32 41-70 41h-477c-39 0-70-18-70-41s31-40 70-40h477z m-51 271c40 0 70 17 70 40s-31 41-70 41h-426c-39 0-70-17-70-41s31-40 70-40h426z m-426-406h6a283 283 0 0 0 137 81h-143c-39-1-70-18-70-41s31-41 70-41z m214 40a234 234 0 1 1 234-234 234 234 0 0 1-234 234z m140-268a9 9 0 0 0-9-9h-81a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-66a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-80a9 9 0 0 0-9 9v66a9 9 0 0 0 9 9h81a9 9 0 0 1 10 9v82a9 9 0 0 0 7 8h65a9 9 0 0 0 9-9v-81a9 9 0 0 1 9-9h81a9 9 0 0 0 9-9v-66z m363-22l-40-64a42 42 0 0 0-21-18l-167-60-4 10a156 156 0 0 1-28 40 285 285 0 0 0-100-99 20 20 0 0 1 18-3l315 94a42 42 0 0 1 18 11l222 223v82l-207-206a42 42 0 0 1-6-8z m-250 182a281 281 0 0 0 17-43l56 34a42 42 0 0 1 8 6l382 383v83z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="template-add" unicode="" d="M723 38v-157a31 31 0 0 0-32-31h-406a283 283 0 0 1 276 219h132a31 31 0 0 0 30-31z m241 406h-244l-372 187h121a31 31 0 0 1 31 32v156a31 31 0 0 1-31 31h-433a31 31 0 0 1-31-31v-156a31 31 0 0 1 31-32h244l372-187h-121a31 31 0 0 1-31-31v-94a283 283 0 0 0 53-94h132l-117-94a284 284 0 0 0-5-43l170 137h231a31 31 0 0 1 31 31v157a31 31 0 0 1-31 31z m-446-310a234 234 0 1 0-234 234 234 234 0 0 0 234-234z m-94 32a9 9 0 0 1-9 9h-81a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-66a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-80a9 9 0 0 1-9-9v-66a9 9 0 0 1 9-9h81a9 9 0 0 0 10-9v-81a9 9 0 0 1 9-9h65a9 9 0 0 1 9 9v81a9 9 0 0 0 9 9h81a9 9 0 0 1 8 9v66z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="group-add" unicode="" d="M82 842a82 82 0 0 1-82-82v-110h192v192h-110z m53-134h-77v35a41 41 0 0 0 41 41h36v-76z m783 134h-110v-192h192v110a82 82 0 0 1-82 82z m24-134h-77v76h36a41 41 0 0 0 41-41v-35z m-134-657v-192h110a82 82 0 0 1 82 81v110h-192z m134-94a41 41 0 0 0-41-40h-36v76h77v-36z m-76 126v535h75v-536h-75z m-634 626v74h536v-75h-536z m536-719v-75h-302a285 285 0 0 1 62 75h240z m-485 375a234 234 0 1 1 235-234 234 234 0 0 1-234 237z m141-265a9 9 0 0 0-9-9h-81a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-66a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-80a9 9 0 0 0-9 9v66a9 9 0 0 0 9 9h81a9 9 0 0 1 10 9v82a9 9 0 0 0 7 8h65a9 9 0 0 0 9-9v-81a9 9 0 0 1 9-9h81a9 9 0 0 0 9-9v-66z m-365 206v312h75v-243a285 285 0 0 1-75-69z m709 58v-179a82 82 0 0 0-82-82h-120a286 286 0 0 1 1 31v10h111a49 49 0 0 1 49 50v162a49 49 0 0 1-49 49h-164a49 49 0 0 1-49-49v-6a284 284 0 0 1-38 27 82 82 0 0 0 80 67h46v66a49 49 0 0 1-49 49h-163a49 49 0 0 1-49-49v-94h-8a286 286 0 0 1-31-2v103a82 82 0 0 0 80 83h179a82 82 0 0 0 82-83v-72h92a82 82 0 0 0 82-81z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="template-import" unicode="" d="M990 432v-153a31 31 0 0 0-31-31h-430a31 31 0 0 0-31 31v153a31 31 0 0 0 31 31h116l-361 172h-243a31 31 0 0 0-31 31v153a31 31 0 0 0 31 31h430a31 31 0 0 0 31-31v-153a31 31 0 0 0-31-32h-115l360-171h243a31 31 0 0 0 31-31z m-656-558h-113a63 63 0 0 0-57 38h-154v-31a31 31 0 0 1 31-31h474a31 31 0 0 1 31 31v31h-154a63 63 0 0 0-57-39z m-115 31h115a31 31 0 0 1 31 31v151a13 13 0 0 0 14 13h159c8 0 10 4 5 9l-256 259a13 13 0 0 1-19 0l-255-258c-5-5-3-10 4-10h159a13 13 0 0 0 14-13v-152a31 31 0 0 1 31-31z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="template-save" unicode="" d="M990 432v-153a31 31 0 0 0-31-31h-430a31 31 0 0 0-31 31v153a31 31 0 0 0 31 31h116l-361 172h-243a31 31 0 0 0-31 31v153a31 31 0 0 0 31 31h430a31 31 0 0 0 31-31v-153a31 31 0 0 0-31-32h-115l360-171h243a31 31 0 0 0 31-31z m-508-560a22 22 0 0 0-22-22h-438a22 22 0 0 0-22 22v437a22 22 0 0 0 22 22h312a47 47 0 0 0 29-12l106-106a47 47 0 0 0 12-28v-313z m-40 18v286a25 25 0 0 1-7 15l-91 92a44 44 0 0 1-23 9v-139a22 22 0 0 0-22-22h-197a22 22 0 0 0-22 22v139h-40v-402h40v139a22 22 0 0 0 22 22h278a22 22 0 0 0 22-22v-139h40z m-81 0v121h-240v-121h241z m-80 402h-93v-121h71a22 22 0 0 1 22 23v98z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="group-remote-add" unicode="" d="M82 842a82 82 0 0 1-82-82v-110h192v192h-110z m53-134h-77v35a41 41 0 0 0 41 41h36v-76z m783 134h-110v-192h192v110a82 82 0 0 1-82 82z m24-134h-77v76h36a41 41 0 0 0 41-41v-35z m-134-657v-192h110a82 82 0 0 1 82 81v110h-192z m134-94a41 41 0 0 0-41-40h-36v76h77v-36z m0 126h-75v535h75v-536z m-710 626v74h536v-75h-536z m536-719v-75h-302a285 285 0 0 1 62 75h240z m-485 375a234 234 0 1 1 235-234 234 234 0 0 1-234 237z m141-265a9 9 0 0 0-9-9h-81a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-66a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-80a9 9 0 0 0-9 9v66a9 9 0 0 0 9 9h81a9 9 0 0 1 10 9v82a9 9 0 0 0 7 8h65a9 9 0 0 0 9-9v-81a9 9 0 0 1 9-9h81a9 9 0 0 0 9-9v-66z m-365 206v312h75v-243a285 285 0 0 1-75-69z m750-22a111 111 0 0 0-111-111h-134a281 281 0 0 1-14 59h148a53 53 0 0 1 13 103l-37 9v38a91 91 0 0 1-160 53l-39-50-39 50a29 29 0 0 1-52-22l3-16a281 281 0 0 1-61 16v3a87 87 0 0 0 148 61 148 148 0 0 0 257-89 110 110 0 0 0 78-104z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="port-out-add" unicode="" d="M284 368a234 234 0 1 1 234-234 234 234 0 0 1-234 234z m140-268a9 9 0 0 0-9-9h-81a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-66a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-80a9 9 0 0 0-9 9v66a9 9 0 0 0 9 9h81a9 9 0 0 1 10 9v82a9 9 0 0 0 7 8h65a9 9 0 0 0 9-9v-81a9 9 0 0 1 9-9h81a9 9 0 0 0 9-9v-66z m365 594v-102l-39 39v63a38 38 0 0 1-39 37h-615a38 38 0 0 1-38-37v-390a281 281 0 0 1-58-170v579l41 41a58 58 0 0 0 41 17h630a77 77 0 0 0 77-77z m205-421l-341-339c-9-8-16-6-16 7v192a22 22 0 0 1-22 22h-49a281 281 0 0 1-11 63h133a11 11 0 0 0 10-11v-132c0-6 4-7 8-3l212 209a11 11 0 0 1 0 15l-212 210c-4 5-8 3-8-3v-130a11 11 0 0 0-10-11h-208a11 11 0 0 1-11-12 283 283 0 0 1-63 40v10a22 22 0 0 0 22 22h188a22 22 0 0 1 22 21v194c0 11 6 15 15 6l341-339a22 22 0 0 0 0-31z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="port-in-add" unicode="" d="M786 148h-54v276h54v-276z m-179 154l-353 351c-9 10-16 6-16-6v-200a23 23 0 0 0-22-23h-193a23 23 0 0 1-23-22v-231a22 22 0 0 1 2-8 281 281 0 0 0 62 149v38a11 11 0 0 0 11 11h39a281 281 0 0 0 170 57h18v88c0 7 3 8 8 4l218-217a11 11 0 0 0 0-15 281 281 0 0 0 27-60l53 52a23 23 0 0 1-1 32z m-323 66a234 234 0 1 1 234-234 234 234 0 0 1-234 234z m140-268a9 9 0 0 0-9-9h-81a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-66a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-80a9 9 0 0 0-9 9v66a9 9 0 0 0 9 9h81a9 9 0 0 1 10 9v82a9 9 0 0 0 7 8h65a9 9 0 0 0 9-9v-81a9 9 0 0 1 9-9h81a9 9 0 0 0 9-9v-66z m534 668a60 60 0 0 1-42 18h-671a63 63 0 0 1-62-63l41-40v22a40 40 0 0 0 40 40h637a40 40 0 0 0 39-40v-636a40 40 0 0 0-39-40h-354a281 281 0 0 0-31-60h463l21 21v735z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="processor-add" unicode="" d="M988 767v-761a63 63 0 0 0-19-43l-113-113 15 62h-121l-62-62 14 62h-120l-63-62 15 62h-73a285 285 0 0 1 62 69h375a42 42 0 0 1 42 42v738a42 42 0 0 1-42 42h-737a42 42 0 0 1-42-42v-396a285 285 0 0 1-68-69v99l-39-38 39 87v120l-39-39 39 88v120l-39-39 39 88 50 50a63 63 0 0 0 44 18h760a83 83 0 0 0 83-83z m-469-634a234 234 0 1 0-234 235 234 234 0 0 0 233-234z m-94 32a9 9 0 0 1-9 9h-81a9 9 0 0 0-9 9v81a9 9 0 0 1-9 9h-67a9 9 0 0 1-9-9v-81a9 9 0 0 0-9-9h-80a9 9 0 0 1-9-9v-65a9 9 0 0 1 9-9h81a9 9 0 0 0 10-9v-81a9 9 0 0 1 9-9h65a9 9 0 0 1 9 9v81a9 9 0 0 0 9 9h81a9 9 0 0 1 8 9v66z m356 381a57 57 0 0 1-10 27 299 299 0 0 1-539-160l14 2a221 221 0 0 0 223 194 263 263 0 0 0 208-107 58 58 0 0 1 104 39 242 242 0 0 0-55-316 225 225 0 0 0-137-45 242 242 0 0 0-26 0 256 256 0 0 0 0-82 297 297 0 0 1 142 58 304 304 0 0 1 122 202 256 256 0 0 1-46 188z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="lineage" unicode="" d="M785 405a214 214 0 0 1-83-17l-58 87a215 215 0 1 1-266-18l-82-184a215 215 0 1 1 72-31l82 185a210 210 0 0 1 127 8l59-90a215 215 0 1 1 149 60z m-539-438a98 98 0 1 0 98 98 98 98 0 0 0-98-98z m157 668a98 98 0 1 0 97-97 98 98 0 0 0-97 97z m382-543a98 98 0 1 0 98 98 98 98 0 0 0-98-98z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="import-from-registry-add" unicode="" d="M890 579c7 37 2 91-47 125-52 37-106 21-135 7-24 43-92 131-251 125-84-3-149-29-190-78-45-51-53-114-54-145-48-8-161-42-160-195 0-58 29-99 65-127 9 12 17 22 27 32-28 20-50 50-50 95-1 151 134 155 140 155h23l-3 22c0 0-7 77 43 134 34 39 88 61 160 64 177 7 219-115 220-120l10-27 23 17c0 0 57 40 108 5 49-35 27-98 25-100l-9-25 27-3c6 0 146-17 136-157-7-109-143-107-148-108h-121v-42h124c63 0 180 30 187 147 8 129-84 183-150 198v1z m-40-375h-179c-5 0-10 2-14 6-4 4-7 8-7 14v173c0 5-2 10-6 14-4 4-8 7-14 7h-207c-5 0-10-2-15-6-2-3-3-7-4-10 34-8 67-22 95-41h84c0 0 5-1 8-3 2-1 2-4 2-7v-101c15-32 25-67 27-103h103c6 0 8-3 4-8l-141-142c-23-41-56-76-96-101l23-23c4-3 9-5 14-5 5 0 10 2 14 5l314 316c0 0 6 8 4 10-1 3-4 4-10 4l1 1z m-506 164c-42 0-81-10-117-31-36-21-64-49-85-85-21-36-32-75-32-118 0-42 11-81 32-117 21-36 49-65 85-85 36-21 75-32 117-32 43 0 82 11 118 32 36 20 64 49 85 85 21 36 31 75 31 117 0 43-10 82-31 118-21 36-49 64-85 85-36 21-75 31-118 31z m140-268c0 0 0-5-2-7-2-1-4-2-7-2h-81c0 0-5-1-6-3-2-1-3-4-3-6v-81c0 0-1-5-2-7-2-2-5-2-7-2h-66c0 0-5 0-7 2-1 2-2 4-2 7v81c0 0 0 5-3 6-1 2-4 3-6 3h-80c0 0-5 1-7 2-2 2-2 5-2 7v66c0 0 0 5 2 7 2 1 4 2 7 2h81c0 0 5 0 6 3 2 1 4 4 4 6v82c0 5 3 7 6 8h65c0 0 5-1 7-2 2-2 2-4 2-7v-81c0 0 0-5 3-6 2-2 4-3 7-3h80c0 0 5-1 7-2 2-2 3-5 3-7v-66h1z" horiz-adv-x="1083" />
|
||||||
|
|
||||||
|
<glyph glyph-name="import-from-registry" unicode="" d="M913 579c6 37 1 91-47 125-53 37-107 21-136 7-23 43-92 131-251 125-84-3-148-29-190-78-45-51-52-114-53-145-48-8-162-42-160-195 1-142 159-182 242-184h28v42h-28c-10 0-200 7-201 143-1 151 134 154 140 154h22l-2 23c0 0-7 77 42 134 34 39 89 61 161 63 177 8 218-114 220-119l9-27 24 16c0 0 57 41 108 5 49-34 27-97 25-100l-9-25 26-2c6 0 146-16 137-158-7-108-143-106-148-107h-121v-42h123c64 0 180 30 188 147 8 129-84 183-150 198h1z m-246-168c0 0 6-9 6-14v-173c0-5 1-10 6-14 4-4 9-6 14-6h180c5 0 8-1 10-4 0-2 0-6-5-10l-314-316c-4-3-9-5-14-5-5 0-10 2-14 5l-314 316c0 0-5 8-4 10 0 3 4 4 10 4h179c5 0 10 3 14 7 4 4 6 9 6 14v172c0 6 1 11 6 15 4 4 9 6 15 6h206c5 0 10-3 14-7h-1z m-174-50c0 0-5-1-8-3-2-3-2-5-2-8v-192c0 0-1-6-4-8-2-2-5-3-7-3h-121c-6 0-8-3-3-8l194-195c0 0 4-2 6-2 3 0 5 0 7 2l194 195c4 5 3 8-3 8h-119c0 0-6 1-8 3-2 3-3 5-3 8v193c0 0-1 5-3 7-1 3-4 3-7 3h-113z" horiz-adv-x="1083" />
|
||||||
|
|
||||||
|
<glyph glyph-name="port-in" unicode="" d="M1000-10v735l-42 43a60 60 0 0 1-42 18h-671a63 63 0 0 1-62-63l41-40v22a40 40 0 0 0 40 40h637a40 40 0 0 0 39-40v-636a40 40 0 0 0-39-40h-449l-60-60h587z m-1000 412v-231a23 23 0 0 1 23-23h192a23 23 0 0 0 23-22v-200c0-13 7-15 16-7l353 351a23 23 0 0 1 0 32l-353 351c-9 10-16 6-16-6v-200a23 23 0 0 0-22-23h-193a23 23 0 0 1-23-22z m63-52a11 11 0 0 0 11 11h216a11 11 0 0 1 12 12v133c0 7 3 8 8 4l218-217a11 11 0 0 0 0-15l-218-217c-5-4-8-3-8 4v135a11 11 0 0 1-12 12h-215a11 11 0 0 0-12 11v127z m722-201h-53v275h54v-276z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="port-out" unicode="" d="M0 3v710l41 41a58 58 0 0 0 41 17h630a77 77 0 0 0 77-77v-102l-39 39v63a38 38 0 0 1-39 37h-615a38 38 0 0 1-38-37v-616a38 38 0 0 1 38-38h482v-58h-558z m653-69l341 339a22 22 0 0 1 0 31l-341 339c-9 9-16 6-16-6v-193a22 22 0 0 0-22-22h-187a22 22 0 0 1-22-22v-222a22 22 0 0 1 22-22h187a22 22 0 0 0 22-22v-193c0-13 7-16 16-7z m45 141v131a11 11 0 0 1-10 11h-208a11 11 0 0 0-11 11v122a11 11 0 0 0 11 11h208a11 11 0 0 1 10 11v130c0 6 4 7 8 3l212-209a11 11 0 0 0 0-15l-212-209c-4-3-8-3-8 3z m-467 347a127 127 0 0 1-118-134 127 127 0 0 1 118-133 127 127 0 0 1 119 133 127 127 0 0 1-119 134z m0-223a84 84 0 0 0-79 89 84 84 0 0 0 79 89 84 84 0 0 0 79-89 84 84 0 0 0-79-89z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="connect" unicode="" d="M853 703a500 500 0 1 0-753-53 31 31 0 0 0 46 2l279-279a16 16 0 0 0 0-22l-93-94a8 8 0 0 1 3-13l332-74a8 8 0 0 1 9 9l-72 334a8 8 0 0 1-13 3l-94-93a16 16 0 0 0-22 0l-278 280a31 31 0 0 0 4 47 500 500 0 0 0 652-47z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="connect-add" unicode="" d="M853 703a500 500 0 1 0-752-53 31 31 0 0 0 46 2l154-154a16 16 0 0 0 0-22l-94-94a8 8 0 0 1 4-13l333-73a8 8 0 0 1 9 10l-74 331a8 8 0 0 1-13 4l-94-94a16 16 0 0 0-22 0l-152 156a31 31 0 0 0 3 47 500 500 0 0 0 652-47z m-55-523a8 8 0 0 1 8 8v70a8 8 0 0 0 7 8h70a8 8 0 0 1 8 8v56a8 8 0 0 1-8 8h-70a8 8 0 0 0-8 8v70a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8v-70a8 8 0 0 0-8-8h-69a8 8 0 0 1-8-8v-56a8 8 0 0 1 8-8h71a8 8 0 0 0 7-8v-70a8 8 0 0 1 8-8h56z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="threads" unicode="" d="M308 350a149 149 0 1 0-149 149 149 149 0 0 0 149-149z m10 341a159 159 0 1 1-159-158 159 159 0 0 1 159 158z m-66 0a94 94 0 1 0-94 94 94 94 0 0 0 94-94z m248 149a149 149 0 1 1 149-149 149 149 0 0 1-149 149z m-182-831a159 159 0 1 1-159-159 159 159 0 0 1 159 159z m-66 0a94 94 0 1 0-94 94 94 94 0 0 0 94-94z m248 149a149 149 0 1 1 149-149 149 149 0 0 1-149 149z m341 0a149 149 0 1 1 149-149 149 149 0 0 1-149 149z m159 192a159 159 0 1 1-159-159 159 159 0 0 1 159 159z m-66 0a94 94 0 1 0-94 94 94 94 0 0 0 94-94z m66 341a159 159 0 1 1-159-158 159 159 0 0 1 159 158z m-66 0a94 94 0 1 0-94 94 94 94 0 0 0 94-94z m-434-192a149 149 0 1 1 149-149 149 149 0 0 1-149 149z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="drop" unicode="" d="M507-38v104a8 8 0 0 0 8 8h104v-112h-112z m0-111a333 333 0 0 1 112 21v56h-104a8 8 0 0 1-8-8v-70z m237 236v112h-103a8 8 0 0 1-8-8v-103h111z m14-139a23 23 0 0 1 6 17v89h-111v-112h88a23 23 0 0 1 17 7z m-98-98a334 334 0 0 1 83 51h-83v-51z m174 238a332 332 0 0 1 22 111h-78v-111h56z m-28-126a333 333 0 0 1 50 83h-50v-83z m0 0a333 333 0 0 1 50 83h-50v-83z m21 258h-209a8 8 0 0 1-8-8v-117h-117a8 8 0 0 1-8-8v-209a342 342 0 0 0-341 343c0 162 127 318 214 432a1279 1279 0 0 1 125 195 4 4 0 0 0 7 0 1279 1279 0 0 1 125-195c85-114 212-270 212-432z m-489 326l-28 5a1143 1143 0 0 1-80-123 406 406 0 0 1-59-255 320 320 0 0 1 107-192 314 314 0 0 1 39-29 4 4 0 0 1 5 7 344 344 0 0 0-94 156 435 435 0 0 0 31 279 1210 1210 0 0 0 68 136z m72 138l-19-26c-20-28-41-55-62-82l24-3c18 29 36 58 53 86l14 25c3 7-6 6-10 0z" horiz-adv-x="1000" />
|
||||||
|
</font>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 117 B |
After Width: | Height: | Size: 224 B |
After Width: | Height: | Size: 59 B |
After Width: | Height: | Size: 59 B |
|
@ -0,0 +1,19 @@
|
||||||
|
Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
|
@ -0,0 +1,38 @@
|
||||||
|
.CodeMirror-hints {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10;
|
||||||
|
overflow: hidden;
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
|
margin: 0;
|
||||||
|
padding: 2px;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||||
|
-moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||||
|
box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px solid silver;
|
||||||
|
|
||||||
|
background: white;
|
||||||
|
font-size: 90%;
|
||||||
|
font-family: monospace;
|
||||||
|
|
||||||
|
max-height: 20em;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-hint {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 4px;
|
||||||
|
border-radius: 2px;
|
||||||
|
max-width: 19em;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: pre;
|
||||||
|
color: black;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
li.CodeMirror-hint-active {
|
||||||
|
background: #08f;
|
||||||
|
color: white;
|
||||||
|
}
|
|
@ -0,0 +1,318 @@
|
||||||
|
/* BASICS */
|
||||||
|
|
||||||
|
.CodeMirror {
|
||||||
|
/* Set height, width, borders, and global font properties here */
|
||||||
|
font-family: monospace;
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
.CodeMirror-scroll {
|
||||||
|
/* Set scrolling behaviour here */
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* PADDING */
|
||||||
|
|
||||||
|
.CodeMirror-lines {
|
||||||
|
padding: 4px 0; /* Vertical padding around content */
|
||||||
|
}
|
||||||
|
.CodeMirror pre {
|
||||||
|
padding: 0 4px; /* Horizontal padding of content */
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||||
|
background-color: white; /* The little square between H and V scrollbars */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* GUTTER */
|
||||||
|
|
||||||
|
.CodeMirror-gutters {
|
||||||
|
border-right: 1px solid #ddd;
|
||||||
|
background-color: #f7f7f7;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.CodeMirror-linenumbers {}
|
||||||
|
.CodeMirror-linenumber {
|
||||||
|
padding: 0 3px 0 5px;
|
||||||
|
min-width: 20px;
|
||||||
|
text-align: right;
|
||||||
|
color: #999;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-guttermarker { color: black; }
|
||||||
|
.CodeMirror-guttermarker-subtle { color: #999; }
|
||||||
|
|
||||||
|
/* CURSOR */
|
||||||
|
|
||||||
|
.CodeMirror div.CodeMirror-cursor {
|
||||||
|
border-left: 1px solid black;
|
||||||
|
}
|
||||||
|
/* Shown when moving in bi-directional text */
|
||||||
|
.CodeMirror div.CodeMirror-secondarycursor {
|
||||||
|
border-left: 1px solid silver;
|
||||||
|
}
|
||||||
|
.CodeMirror.cm-fat-cursor div.CodeMirror-cursor {
|
||||||
|
width: auto;
|
||||||
|
border: 0;
|
||||||
|
background: #7e7;
|
||||||
|
}
|
||||||
|
.CodeMirror.cm-fat-cursor div.CodeMirror-cursors {
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-animate-fat-cursor {
|
||||||
|
width: auto;
|
||||||
|
border: 0;
|
||||||
|
-webkit-animation: blink 1.06s steps(1) infinite;
|
||||||
|
-moz-animation: blink 1.06s steps(1) infinite;
|
||||||
|
animation: blink 1.06s steps(1) infinite;
|
||||||
|
}
|
||||||
|
@-moz-keyframes blink {
|
||||||
|
0% { background: #7e7; }
|
||||||
|
50% { background: none; }
|
||||||
|
100% { background: #7e7; }
|
||||||
|
}
|
||||||
|
@-webkit-keyframes blink {
|
||||||
|
0% { background: #7e7; }
|
||||||
|
50% { background: none; }
|
||||||
|
100% { background: #7e7; }
|
||||||
|
}
|
||||||
|
@keyframes blink {
|
||||||
|
0% { background: #7e7; }
|
||||||
|
50% { background: none; }
|
||||||
|
100% { background: #7e7; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Can style cursor different in overwrite (non-insert) mode */
|
||||||
|
div.CodeMirror-overwrite div.CodeMirror-cursor {}
|
||||||
|
|
||||||
|
.cm-tab { display: inline-block; text-decoration: inherit; }
|
||||||
|
|
||||||
|
.CodeMirror-ruler {
|
||||||
|
border-left: 1px solid #ccc;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* DEFAULT THEME */
|
||||||
|
|
||||||
|
.cm-s-default .cm-keyword {color: #708;}
|
||||||
|
.cm-s-default .cm-atom {color: #219;}
|
||||||
|
.cm-s-default .cm-number {color: #164;}
|
||||||
|
.cm-s-default .cm-def {color: #00f;}
|
||||||
|
.cm-s-default .cm-variable,
|
||||||
|
.cm-s-default .cm-punctuation,
|
||||||
|
.cm-s-default .cm-property,
|
||||||
|
.cm-s-default .cm-operator {}
|
||||||
|
.cm-s-default .cm-variable-2 {color: #05a;}
|
||||||
|
.cm-s-default .cm-variable-3 {color: #085;}
|
||||||
|
.cm-s-default .cm-comment {color: #a50;}
|
||||||
|
.cm-s-default .cm-string {color: #a11;}
|
||||||
|
.cm-s-default .cm-string-2 {color: #f50;}
|
||||||
|
.cm-s-default .cm-meta {color: #555;}
|
||||||
|
.cm-s-default .cm-qualifier {color: #555;}
|
||||||
|
.cm-s-default .cm-builtin {color: #30a;}
|
||||||
|
.cm-s-default .cm-bracket {color: #997;}
|
||||||
|
.cm-s-default .cm-tag {color: #170;}
|
||||||
|
.cm-s-default .cm-attribute {color: #00c;}
|
||||||
|
.cm-s-default .cm-header {color: blue;}
|
||||||
|
.cm-s-default .cm-quote {color: #090;}
|
||||||
|
.cm-s-default .cm-hr {color: #999;}
|
||||||
|
.cm-s-default .cm-link {color: #00c;}
|
||||||
|
|
||||||
|
.cm-negative {color: #d44;}
|
||||||
|
.cm-positive {color: #292;}
|
||||||
|
.cm-header, .cm-strong {font-weight: bold;}
|
||||||
|
.cm-em {font-style: italic;}
|
||||||
|
.cm-link {text-decoration: underline;}
|
||||||
|
.cm-strikethrough {text-decoration: line-through;}
|
||||||
|
|
||||||
|
.cm-s-default .cm-error {color: #f00;}
|
||||||
|
.cm-invalidchar {color: #f00;}
|
||||||
|
|
||||||
|
/* Default styles for common addons */
|
||||||
|
|
||||||
|
div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
|
||||||
|
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||||
|
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
||||||
|
.CodeMirror-activeline-background {background: #e8f2ff;}
|
||||||
|
|
||||||
|
/* STOP */
|
||||||
|
|
||||||
|
/* The rest of this file contains styles related to the mechanics of
|
||||||
|
the editor. You probably shouldn't touch them. */
|
||||||
|
|
||||||
|
.CodeMirror {
|
||||||
|
line-height: 1;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
background: white;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-scroll {
|
||||||
|
/* 30px is the magic margin used to hide the element's real scrollbars */
|
||||||
|
/* See overflow: hidden in .CodeMirror */
|
||||||
|
margin-bottom: -30px; margin-right: -30px;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
height: 100%;
|
||||||
|
outline: none; /* Prevent dragging from highlighting the element */
|
||||||
|
position: relative;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
.CodeMirror-sizer {
|
||||||
|
position: relative;
|
||||||
|
border-right: 30px solid transparent;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* The fake, visible scrollbars. Used to force redraw during scrolling
|
||||||
|
before actuall scrolling happens, thus preventing shaking and
|
||||||
|
flickering artifacts. */
|
||||||
|
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 6;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.CodeMirror-vscrollbar {
|
||||||
|
right: 0; top: 0;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
.CodeMirror-hscrollbar {
|
||||||
|
bottom: 0; left: 0;
|
||||||
|
overflow-y: hidden;
|
||||||
|
overflow-x: scroll;
|
||||||
|
}
|
||||||
|
.CodeMirror-scrollbar-filler {
|
||||||
|
right: 0; bottom: 0;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutter-filler {
|
||||||
|
left: 0; bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-gutters {
|
||||||
|
position: absolute; left: 0; top: 0;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutter {
|
||||||
|
white-space: normal;
|
||||||
|
height: 100%;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
margin-bottom: -32px;
|
||||||
|
display: inline-block;
|
||||||
|
/* Hack to make IE7 behave */
|
||||||
|
*zoom:1;
|
||||||
|
*display:inline;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutter-wrapper {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 4;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutter-elt {
|
||||||
|
position: absolute;
|
||||||
|
cursor: default;
|
||||||
|
z-index: 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-lines {
|
||||||
|
cursor: text;
|
||||||
|
min-height: 1px; /* prevents collapsing before first draw */
|
||||||
|
}
|
||||||
|
.CodeMirror pre {
|
||||||
|
/* Reset some styles that the rest of the page might have set */
|
||||||
|
-moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
|
||||||
|
border-width: 0;
|
||||||
|
background: transparent;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
margin: 0;
|
||||||
|
white-space: pre;
|
||||||
|
word-wrap: normal;
|
||||||
|
line-height: inherit;
|
||||||
|
color: inherit;
|
||||||
|
z-index: 2;
|
||||||
|
position: relative;
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
.CodeMirror-wrap pre {
|
||||||
|
word-wrap: break-word;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-linebackground {
|
||||||
|
position: absolute;
|
||||||
|
left: 0; right: 0; top: 0; bottom: 0;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-linewidget {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-widget {}
|
||||||
|
|
||||||
|
.CodeMirror-wrap .CodeMirror-scroll {
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-measure {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
.CodeMirror-measure pre { position: static; }
|
||||||
|
|
||||||
|
.CodeMirror div.CodeMirror-cursor {
|
||||||
|
position: absolute;
|
||||||
|
border-right: none;
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.CodeMirror-cursors {
|
||||||
|
visibility: hidden;
|
||||||
|
position: relative;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
.CodeMirror-focused div.CodeMirror-cursors {
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-selected { background: #d9d9d9; }
|
||||||
|
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
|
||||||
|
.CodeMirror-crosshair { cursor: crosshair; }
|
||||||
|
|
||||||
|
.cm-searching {
|
||||||
|
background: #ffa;
|
||||||
|
background: rgba(255, 255, 0, .4);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* IE7 hack to prevent it from returning funny offsetTops on the spans */
|
||||||
|
.CodeMirror span { *vertical-align: text-bottom; }
|
||||||
|
|
||||||
|
/* Used to force a border model for a node */
|
||||||
|
.cm-force-border { padding-right: .1px; }
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
/* Hide the cursor when printing */
|
||||||
|
.CodeMirror div.CodeMirror-cursors {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* See issue #2901 */
|
||||||
|
.cm-tab-wrap-hack:after { content: ''; }
|
||||||
|
|
||||||
|
/* Help users use markselection to safely style text background */
|
||||||
|
span.CodeMirror-selectedtext { background: none; }
|
|
@ -0,0 +1,118 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
Styles for the Nifi combo box.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.combo {
|
||||||
|
color: #262626;
|
||||||
|
font-family: Roboto, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
padding:0 10px;
|
||||||
|
height: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
border: 1px solid #eaeef0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combo-options {
|
||||||
|
background: #fefefe;
|
||||||
|
color: #262626;
|
||||||
|
list-style: none;
|
||||||
|
border: 1px solid #004849;
|
||||||
|
box-shadow:0 3px 6px rgba(0,0,0,0.3);
|
||||||
|
z-index: 2000;
|
||||||
|
border-top: none;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combo-options .fa {
|
||||||
|
color: #004849;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combo-open {
|
||||||
|
background: #fff !important;
|
||||||
|
border: 1px solid #004849 !important;
|
||||||
|
border-bottom: 1px solid #fff !important;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #262626;
|
||||||
|
box-shadow:0 3px 6px rgba(0,0,0,0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.combo .combo-arrow {
|
||||||
|
float: right;
|
||||||
|
width: 10px;
|
||||||
|
line-height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combo .combo-text {
|
||||||
|
float: left;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
width: calc(100% - 15px);
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.selected-disabled-option {
|
||||||
|
font-style: italic;
|
||||||
|
color: #828282;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combo-options ul > li {
|
||||||
|
height: 32px;
|
||||||
|
padding: 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combo-options ul > li.disabled-option {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combo-option-text {
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
float: left;
|
||||||
|
height: 32px;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 32px;
|
||||||
|
width: calc(100% - 15px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.combo-option-special {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combo-glass-pane {
|
||||||
|
position: absolute;
|
||||||
|
background: #E3E8EB;
|
||||||
|
opacity: 0.0;
|
||||||
|
left: 0px;
|
||||||
|
top: 0px;
|
||||||
|
right: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
z-index: 1999;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.combo-nifi-tooltip {
|
||||||
|
border: 1px solid #454545;
|
||||||
|
background-color: #FFFFA3;
|
||||||
|
color: #454545;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.combo-button-normal {
|
||||||
|
background-color: #eaeef0;
|
||||||
|
}
|
|
@ -0,0 +1,369 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* requires qtip plugin to be loaded first*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new combo box. The options are specified in the following
|
||||||
|
* format:
|
||||||
|
*
|
||||||
|
* {
|
||||||
|
* selectedOption: {
|
||||||
|
* value: 'option 2'
|
||||||
|
* },
|
||||||
|
* options: [{
|
||||||
|
* text: 'option 1',
|
||||||
|
* value: 'option 1',
|
||||||
|
* disabled: true,
|
||||||
|
* description: 'Option description...'
|
||||||
|
* }, {
|
||||||
|
* text: 'option 2',
|
||||||
|
* value: 'option 2',
|
||||||
|
* optionClass: 'my-style'
|
||||||
|
* }],
|
||||||
|
* maxHeight: 300,
|
||||||
|
* select: selectHandler
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* Options have a label (specified as the text property that is rendered
|
||||||
|
* to users) and a value which is not. Additionally, options can be marked
|
||||||
|
* as disabled. A disabled option cannot be selected by a user but may be
|
||||||
|
* programmatically selected (supporting the restoration of options that have
|
||||||
|
* become invalid). It is up to the developer to ensure that the selected
|
||||||
|
* option is not disabled.
|
||||||
|
*
|
||||||
|
* The optionClass option supports specifying a class to apply to the
|
||||||
|
* option element.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* jQuery plugin for a NiFi style combo box.
|
||||||
|
*
|
||||||
|
* @param {type} $
|
||||||
|
* @returns {undefined}
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
|
||||||
|
var isUndefined = function (obj) {
|
||||||
|
return typeof obj === 'undefined';
|
||||||
|
};
|
||||||
|
|
||||||
|
var isNull = function (obj) {
|
||||||
|
return obj === null;
|
||||||
|
};
|
||||||
|
|
||||||
|
var isDefinedAndNotNull = function (obj) {
|
||||||
|
return !isUndefined(obj) && !isNull(obj);
|
||||||
|
};
|
||||||
|
|
||||||
|
var isBlank = function (str) {
|
||||||
|
return isUndefined(str) || isNull(str) || str === '';
|
||||||
|
};
|
||||||
|
|
||||||
|
var selectOption = function (combo, text, value) {
|
||||||
|
var config = combo.data('options');
|
||||||
|
var comboText = combo.children('div.combo-text');
|
||||||
|
var selectedOption;
|
||||||
|
|
||||||
|
// attempt to match on value first
|
||||||
|
$.each(config.options, function (i, option) {
|
||||||
|
if (value === option.value) {
|
||||||
|
selectedOption = option;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// if no option values matched, try the text
|
||||||
|
if (isUndefined(selectedOption)) {
|
||||||
|
$.each(config.options, function (i, option) {
|
||||||
|
if (isUndefined(selectedOption)) {
|
||||||
|
selectedOption = option;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (text === option.text) {
|
||||||
|
selectedOption = option;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// ensure we found the selected option
|
||||||
|
if (isDefinedAndNotNull(selectedOption)) {
|
||||||
|
comboText.removeClass('selected-disabled-option').attr('title', selectedOption.text).text(selectedOption.text).data('text', selectedOption.text);
|
||||||
|
|
||||||
|
// if the selected option is disabled show it
|
||||||
|
if (selectedOption.disabled === true) {
|
||||||
|
comboText.addClass('selected-disabled-option');
|
||||||
|
}
|
||||||
|
|
||||||
|
// store the selected option
|
||||||
|
combo.data('selected-option', selectedOption);
|
||||||
|
|
||||||
|
// fire a select event if applicable
|
||||||
|
if (isDefinedAndNotNull(config.select)) {
|
||||||
|
config.select.call(combo, selectedOption);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
var methods = {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes the combo box.
|
||||||
|
*
|
||||||
|
* @argument {object} options The options for the combo box
|
||||||
|
*/
|
||||||
|
init: function (options) {
|
||||||
|
return this.each(function () {
|
||||||
|
// ensure the options have been properly specified
|
||||||
|
if (isDefinedAndNotNull(options) &&
|
||||||
|
isDefinedAndNotNull(options.options)) {
|
||||||
|
|
||||||
|
// get the combo
|
||||||
|
var combo = $(this);
|
||||||
|
|
||||||
|
// clear any current contents, remote events, and store options
|
||||||
|
combo.empty().unbind().data('options', options);
|
||||||
|
|
||||||
|
// add a div to hold the text
|
||||||
|
$('<div class="combo-text"></div>').appendTo(combo);
|
||||||
|
|
||||||
|
// add hover effect and handle a combo click
|
||||||
|
combo.addClass('combo-button-normal pointer combo').hover(function () {
|
||||||
|
combo.removeClass('button-normal').addClass('combo-button-over');
|
||||||
|
}, function () {
|
||||||
|
combo.removeClass('button-over').addClass('combo-button-normal');
|
||||||
|
}).click(function (event) {
|
||||||
|
var comboConfigOptions = combo.data('options');
|
||||||
|
|
||||||
|
//add active styles
|
||||||
|
$(this).addClass('combo-open');
|
||||||
|
|
||||||
|
// determine the position of the element in question
|
||||||
|
var position = combo.offset();
|
||||||
|
|
||||||
|
// create the combo box options beneath it
|
||||||
|
var comboOptions = $('<div></div>').addClass('combo-options').css({
|
||||||
|
'position': 'absolute',
|
||||||
|
'left': position.left + 'px',
|
||||||
|
'top': (position.top + Math.round(combo.outerHeight()) - 1) + 'px',
|
||||||
|
'width': (Math.round(combo.outerWidth()) - 2) + 'px',
|
||||||
|
'overflow-y': 'auto'
|
||||||
|
});
|
||||||
|
|
||||||
|
// keep track of the overall height
|
||||||
|
var actualHeight = 0;
|
||||||
|
|
||||||
|
// set the max height if necessary
|
||||||
|
var maxHeight = -1;
|
||||||
|
if (isDefinedAndNotNull(comboConfigOptions.maxHeight)) {
|
||||||
|
maxHeight = parseInt(comboConfigOptions.maxHeight);
|
||||||
|
if (maxHeight > 0) {
|
||||||
|
comboOptions.css('max-height', maxHeight + 'px');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
var windowHeight = $(window).height();
|
||||||
|
maxHeight = windowHeight - (position.top + Math.round(combo.outerHeight())) - 32;
|
||||||
|
comboOptions.css('max-height', maxHeight + 'px');
|
||||||
|
}
|
||||||
|
|
||||||
|
// create the list that will contain the options
|
||||||
|
var optionList = $('<ul></ul>').appendTo(comboOptions);
|
||||||
|
|
||||||
|
// process the options
|
||||||
|
$.each(comboConfigOptions.options, function (i, option) {
|
||||||
|
var optionText = $('<span class="combo-option-text"></span>').attr('title', option.text).text(option.text);
|
||||||
|
var optionValue = $('<span class="hidden"></span>').text(option.value);
|
||||||
|
|
||||||
|
// create each option
|
||||||
|
var optionElement = $('<li></li>').addClass(option.optionClass).append(optionText).append(optionValue).appendTo(optionList);
|
||||||
|
|
||||||
|
// this is option is enabled register appropriate listeners
|
||||||
|
if (option.disabled === true) {
|
||||||
|
optionElement.addClass('unset disabled-option');
|
||||||
|
} else {
|
||||||
|
optionElement.click(function () {
|
||||||
|
//remove active styles
|
||||||
|
$('.combo').removeClass('combo-open');
|
||||||
|
|
||||||
|
// select the option
|
||||||
|
selectOption(combo, option.text, option.value);
|
||||||
|
|
||||||
|
// click the glass pane which will hide the options
|
||||||
|
$('.combo-glass-pane').click();
|
||||||
|
}).hover(function () {
|
||||||
|
$(this).addClass('pointer').css('background', '#eaeef0');
|
||||||
|
}, function () {
|
||||||
|
$(this).removeClass('pointer').css('background', '#ffffff');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isBlank(option.description)) {
|
||||||
|
$('<div style="float: right; line-height: 32px;" class="fa fa-question-circle"></div>').appendTo(optionElement).qtip({
|
||||||
|
content: option.description,
|
||||||
|
position: {
|
||||||
|
at: 'top center',
|
||||||
|
my: 'bottom center',
|
||||||
|
adjust: {
|
||||||
|
y: 5
|
||||||
|
}
|
||||||
|
},
|
||||||
|
style: {
|
||||||
|
classes: 'nifi-tooltip'
|
||||||
|
},
|
||||||
|
show: {
|
||||||
|
solo: true,
|
||||||
|
effect: function(offset) {
|
||||||
|
$(this).slideDown(100);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
hide: {
|
||||||
|
effect: function(offset) {
|
||||||
|
$(this).slideUp(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
optionText.css('width', '100%');
|
||||||
|
}
|
||||||
|
|
||||||
|
actualHeight += 16;
|
||||||
|
});
|
||||||
|
|
||||||
|
// show the glass pane to catch the click events
|
||||||
|
var comboGlassPane = $('<div class="combo-glass-pane"></div>').one('click', function () {
|
||||||
|
if (comboOptions.length !== 0) {
|
||||||
|
// clean up tooltips
|
||||||
|
comboOptions.find('.fa').each(function () {
|
||||||
|
var tip = $(this);
|
||||||
|
if (tip.data('qtip')) {
|
||||||
|
var api = tip.qtip('api');
|
||||||
|
api.destroy(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// remove the options
|
||||||
|
comboOptions.remove();
|
||||||
|
|
||||||
|
//remove active styles
|
||||||
|
$('.combo').removeClass('combo-open');
|
||||||
|
}
|
||||||
|
|
||||||
|
// remove the glass pane
|
||||||
|
$(this).remove();
|
||||||
|
});
|
||||||
|
|
||||||
|
// add the combo to the dom
|
||||||
|
$('body').append(comboOptions).append(comboGlassPane);
|
||||||
|
|
||||||
|
// stop the event propagation so the body click event isn't fired
|
||||||
|
event.stopPropagation();
|
||||||
|
});
|
||||||
|
|
||||||
|
// add the drop down arrow
|
||||||
|
$('<div class="combo-arrow fa fa-chevron-down"></div>').appendTo(combo);
|
||||||
|
|
||||||
|
// get the first option
|
||||||
|
var firstOption = null;
|
||||||
|
if (options.options.length > 0) {
|
||||||
|
firstOption = options.options[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// set the selection
|
||||||
|
if (isDefinedAndNotNull(options.selectedOption)) {
|
||||||
|
selectOption(combo, options.selectedOption.text, options.selectedOption.value);
|
||||||
|
} else if (isNull(firstOption)) {
|
||||||
|
selectOption(combo);
|
||||||
|
} else {
|
||||||
|
selectOption(combo, firstOption.text, firstOption.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the selected option of the first matching element.
|
||||||
|
*/
|
||||||
|
getSelectedOption: function () {
|
||||||
|
var value;
|
||||||
|
|
||||||
|
this.each(function () {
|
||||||
|
value = $(this).data('selected-option');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
return value;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the selected option.
|
||||||
|
*
|
||||||
|
* @argument {object} option The option to select
|
||||||
|
*/
|
||||||
|
setSelectedOption: function (option) {
|
||||||
|
return this.each(function () {
|
||||||
|
selectOption($(this), option.text, option.value);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets whether the specified option is enabled or disabled.
|
||||||
|
*
|
||||||
|
* @param option
|
||||||
|
* @param enabled
|
||||||
|
*/
|
||||||
|
setOptionEnabled: function (option, enabled) {
|
||||||
|
return this.each(function () {
|
||||||
|
var combo = $(this);
|
||||||
|
var comboConfigOptions = combo.data('options');
|
||||||
|
|
||||||
|
$.each(comboConfigOptions.options, function (i, configOption) {
|
||||||
|
if (configOption.value === option.value) {
|
||||||
|
configOption.disabled = !enabled;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Destroys the combo.
|
||||||
|
*/
|
||||||
|
destroy: function () {
|
||||||
|
return this.each(function () {
|
||||||
|
$(this).empty().unbind().removeData();
|
||||||
|
|
||||||
|
// remove the options if open
|
||||||
|
$('div.combo-glass-pane').click();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Closes the combo.
|
||||||
|
*/
|
||||||
|
close: function () {
|
||||||
|
$('div.combo-glass-pane').click();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$.fn.combo = function (method) {
|
||||||
|
if (methods[method]) {
|
||||||
|
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
|
||||||
|
} else {
|
||||||
|
return methods.init.apply(this, arguments);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})(jQuery);
|
After Width: | Height: | Size: 251 B |
After Width: | Height: | Size: 233 B |
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simple jQuery plugin to center any matched elements. Implementation
|
||||||
|
* specifics suggested on StackOverflow.
|
||||||
|
*
|
||||||
|
* @param {type} $
|
||||||
|
* @returns {undefined}
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
$.fn.center = function () {
|
||||||
|
return this.each(function () {
|
||||||
|
$(this).css({
|
||||||
|
'position': 'absolute',
|
||||||
|
'top': ($(window).height() - $(this).outerHeight()) / 2 + $(window).scrollTop() + 'px',
|
||||||
|
'left': ($(window).width() - $(this).outerWidth()) / 2 + $(window).scrollLeft() + 'px'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
})(jQuery);
|
|
@ -0,0 +1,31 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
// get a reference to the original each method
|
||||||
|
var origEach = $.each;
|
||||||
|
|
||||||
|
// override the jQuery each method (not $.fn.each as
|
||||||
|
// we are not calling with a jQuery 'instance', $.fn.each
|
||||||
|
// defers to this function with 'this' as the object param)
|
||||||
|
$.each = function (object, callback, args) {
|
||||||
|
// ensure the object specified is not undefined or null
|
||||||
|
if (typeof object !== 'undefined' && object !== null) {
|
||||||
|
return origEach.call(this, object, callback, args);
|
||||||
|
}
|
||||||
|
return object;
|
||||||
|
};
|
||||||
|
})(jQuery);
|
|
@ -0,0 +1,165 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin to provide support for generating ellipsis. This plugin comprises
|
||||||
|
* a number of suggested techniques found on StackOverflow.
|
||||||
|
*
|
||||||
|
* @param {type} $
|
||||||
|
* @returns {undefined}
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
|
||||||
|
var entityMap = {
|
||||||
|
'&': '&',
|
||||||
|
'<': '<',
|
||||||
|
'>': '>',
|
||||||
|
'"': '"',
|
||||||
|
"'": ''',
|
||||||
|
'/': '/'
|
||||||
|
};
|
||||||
|
|
||||||
|
var escapeHtml = function (string) {
|
||||||
|
return String(string).replace(/[&<>"'\/]/g, function (s) {
|
||||||
|
return entityMap[s];
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inserts ellipsis in elements where the contents exceed the width. The
|
||||||
|
* original text is preserved in the title attribute of the element. The
|
||||||
|
* element should have the following css properties:
|
||||||
|
*
|
||||||
|
* overflow: hidden;
|
||||||
|
* white-space: nowrap;
|
||||||
|
* width: 50px (value must be set in 'px')
|
||||||
|
*
|
||||||
|
* If multiline is desired, add a 'multiline' class to the element.
|
||||||
|
*
|
||||||
|
* @param {type} addTooltip
|
||||||
|
*/
|
||||||
|
$.fn.ellipsis = function (addTooltip) {
|
||||||
|
addTooltip = (typeof addTooltip === 'undefined' || addTooltip === null) ? true : addTooltip;
|
||||||
|
|
||||||
|
// function for determining if the browser supports ellipsis via css
|
||||||
|
function supportsOverflowProperty() {
|
||||||
|
var s = document.documentElement.style;
|
||||||
|
return ('textOverflow' in s || 'OTextOverflow' in s);
|
||||||
|
}
|
||||||
|
|
||||||
|
function binarySearch(length, funct) {
|
||||||
|
var low = 0;
|
||||||
|
var high = length - 1;
|
||||||
|
var best = -1;
|
||||||
|
var mid;
|
||||||
|
|
||||||
|
while (low <= high) {
|
||||||
|
mid = ~~((low + high) / 2);
|
||||||
|
var result = funct(mid);
|
||||||
|
if (result < 0) {
|
||||||
|
high = mid - 1;
|
||||||
|
} else if (result > 0) {
|
||||||
|
low = mid + 1;
|
||||||
|
} else {
|
||||||
|
best = mid;
|
||||||
|
low = mid + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return best;
|
||||||
|
}
|
||||||
|
|
||||||
|
// chain and process each matched element
|
||||||
|
return this.each(function () {
|
||||||
|
var element = $(this);
|
||||||
|
|
||||||
|
// preserve the original text in the title attribute
|
||||||
|
var text = element.text();
|
||||||
|
if (addTooltip) {
|
||||||
|
element.attr('title', text);
|
||||||
|
}
|
||||||
|
|
||||||
|
// determine if this is a multiline element
|
||||||
|
var multiline = element.hasClass('multiline');
|
||||||
|
|
||||||
|
// if its not multiline and the browser supports ellipsis via css, use it
|
||||||
|
if (!multiline && supportsOverflowProperty()) {
|
||||||
|
element.css({
|
||||||
|
'text-overflow': 'ellipsis',
|
||||||
|
'o-text-overflow': 'ellipsis'
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// clone the element and add to the body - this addresses issues where
|
||||||
|
// the element may not have been added to the dom (causing its size and
|
||||||
|
// styles to be incorrect)
|
||||||
|
var cloneElement = $(this.cloneNode(true)).hide().appendTo('body');
|
||||||
|
|
||||||
|
// make a scratch element to adjusting the text size
|
||||||
|
var scratchElement = $(this.cloneNode(true)).hide().css({
|
||||||
|
'position': 'absolute',
|
||||||
|
'overflow': 'visible'
|
||||||
|
}).width(multiline ? cloneElement.width() : 'auto').height(multiline ? 'auto' : cloneElement.height()).appendTo('body');
|
||||||
|
|
||||||
|
// function for determining if the scratch element is too tall
|
||||||
|
var isTooTall = function () {
|
||||||
|
return scratchElement.height() >= cloneElement.height();
|
||||||
|
};
|
||||||
|
|
||||||
|
// function for determining if the scratch element is too wide
|
||||||
|
var isTooWide = function () {
|
||||||
|
return scratchElement.width() >= cloneElement.width();
|
||||||
|
};
|
||||||
|
|
||||||
|
// determine the appropriate function to use
|
||||||
|
var isTooBig = multiline ? isTooTall : isTooWide;
|
||||||
|
|
||||||
|
// if the text is too big, adjust it accordingly
|
||||||
|
if (isTooBig()) {
|
||||||
|
var originalText = escapeHtml(text);
|
||||||
|
|
||||||
|
// function for creating the text within the scratch element
|
||||||
|
var createContent = function (i) {
|
||||||
|
var t = originalText.substr(0, i);
|
||||||
|
scratchElement.html(t + '…');
|
||||||
|
};
|
||||||
|
|
||||||
|
// function for performing the search
|
||||||
|
var search = function (i) {
|
||||||
|
createContent(i);
|
||||||
|
if (isTooBig()) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
// determine the appropriate length
|
||||||
|
var length = binarySearch(originalText.length - 1, search);
|
||||||
|
|
||||||
|
// create the content at the appropriate length
|
||||||
|
createContent(length);
|
||||||
|
}
|
||||||
|
|
||||||
|
// update the actual elements value
|
||||||
|
element.html(scratchElement.html());
|
||||||
|
|
||||||
|
// remove the cloned and scratch elements
|
||||||
|
cloneElement.remove();
|
||||||
|
scratchElement.remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
})(jQuery);
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Plugin to support entering tab characters into textarea's or textfield's.
|
||||||
|
* Code heavily borrowed from stackoverflow post by user tim-down
|
||||||
|
* (http://stackoverflow.com/questions/4379535/tab-within-a-text-area-without-changing-focus-jquery/4380032#4380032)
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
/**
|
||||||
|
* Adds key listeners for capturing tab keys.
|
||||||
|
*/
|
||||||
|
function allowTabChar(element) {
|
||||||
|
$(element).keydown(function (e) {
|
||||||
|
if (e.which == 9) {
|
||||||
|
if (e.shiftKey == false && e.ctrlKey == false) {
|
||||||
|
insertText(this, '\t');
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}).keypress(function (e) {
|
||||||
|
if (e.which == 9) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inserts the specified text into the specified element.
|
||||||
|
*/
|
||||||
|
function insertText(element, text) {
|
||||||
|
element.focus();
|
||||||
|
if (typeof element.selectionStart == 'number') {
|
||||||
|
var value = element.value;
|
||||||
|
var selectionStart = element.selectionStart;
|
||||||
|
element.value = value.slice(0, selectionStart) + text + value.slice(element.selectionEnd);
|
||||||
|
element.selectionEnd = element.selectionStart = selectionStart + text.length;
|
||||||
|
} else if (typeof document.selection != 'undefined') {
|
||||||
|
var textRange = document.selection.createRange();
|
||||||
|
textRange.text = text;
|
||||||
|
textRange.collapse(false);
|
||||||
|
textRange.select();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$.fn.tab = function () {
|
||||||
|
return this.each(function () {
|
||||||
|
if (this.nodeType == 1) {
|
||||||
|
var nodeName = this.nodeName.toLowerCase();
|
||||||
|
if (nodeName == 'textarea' || (nodeName == 'input' && this.type == 'text')) {
|
||||||
|
allowTabChar(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})(jQuery);
|
|
@ -0,0 +1,111 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
Styles for the Nifi dialog.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.dialog {
|
||||||
|
background-color: #ffffff;
|
||||||
|
box-shadow: 0 5px 8px rgba(0,0,0,0.30);
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.small-dialog {
|
||||||
|
max-height: 32%;
|
||||||
|
max-width: 23%;
|
||||||
|
min-height: 250px;
|
||||||
|
min-width: 320px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.medium-dialog {
|
||||||
|
max-height: 55%;
|
||||||
|
max-width: 34%;
|
||||||
|
min-height: 420px;
|
||||||
|
min-width: 470px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.medium-short-dialog {
|
||||||
|
max-height: 32%;
|
||||||
|
max-width: 34%;
|
||||||
|
min-height: 250px;
|
||||||
|
min-width: 440px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.large-dialog {
|
||||||
|
max-height: 72%;
|
||||||
|
max-width: 55%;
|
||||||
|
min-height: 560px;
|
||||||
|
min-width: 760px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-glass {
|
||||||
|
position: absolute;
|
||||||
|
left: 0px;
|
||||||
|
top: 0px;
|
||||||
|
right: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
opacity: 0.65;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-header {
|
||||||
|
height: 56px;
|
||||||
|
background-color: #728E9B;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 18px;
|
||||||
|
font-family: 'Roboto Slab';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
line-height: 56px;
|
||||||
|
padding: 0 20px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-header-subtitle {
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-left: 10px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
.dialog-header-subtitle:not(:empty) {
|
||||||
|
border-left: 1px solid white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-content {
|
||||||
|
position: absolute;
|
||||||
|
top: 76px;
|
||||||
|
bottom: 52px;
|
||||||
|
left: 20px;
|
||||||
|
right: 20px;
|
||||||
|
overflow-y: auto;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-buttons {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 32px;
|
||||||
|
}
|
|
@ -0,0 +1,588 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new dialog.
|
||||||
|
*
|
||||||
|
* If the height, width, and fullscreen breakpoints options are not set this plugin will look for (and use)
|
||||||
|
* any CSS defined styles for height, min/max-height, width, min/max-width. If no CSS styles are defined then the
|
||||||
|
* plugin will attempt to calculate these values when the dialog is first opened (based on screen size).
|
||||||
|
*
|
||||||
|
* The options are specified in the following format:
|
||||||
|
*
|
||||||
|
* {
|
||||||
|
* header: true,
|
||||||
|
* footer: true,
|
||||||
|
* headerText: 'Dialog Header',
|
||||||
|
* subtitleText: 'Dialog subtitle',
|
||||||
|
* scrollableContentStyle: 'scrollable',
|
||||||
|
* buttons: [{
|
||||||
|
* buttonText: 'Cancel',
|
||||||
|
* color: {
|
||||||
|
* base: '#728E9B',
|
||||||
|
* hover: '#004849',
|
||||||
|
* text: '#ffffff'
|
||||||
|
* },
|
||||||
|
* disabled: isDisabledFunction,
|
||||||
|
* handler: {
|
||||||
|
* click: cancelHandler
|
||||||
|
* }
|
||||||
|
* }, {
|
||||||
|
* buttonText: 'Apply',
|
||||||
|
* color: {
|
||||||
|
* base: '#E3E8EB',
|
||||||
|
* hover: '#C7D2D7',
|
||||||
|
* text: '#004849'
|
||||||
|
* },
|
||||||
|
* disabled: isDisabledFunction,
|
||||||
|
* handler: {
|
||||||
|
* click: applyHandler
|
||||||
|
* }
|
||||||
|
* }],
|
||||||
|
* handler: {
|
||||||
|
* close: closeHandler,
|
||||||
|
* open: openHandler,
|
||||||
|
* resize: resizeHandler
|
||||||
|
* },
|
||||||
|
* height: "55%", //optional. Property can also be set with css (accepts 'px' or '%' values)
|
||||||
|
* width: "34%", //optional. Property can also be set with css (accepts 'px' or '%' values)
|
||||||
|
* min-height: "420px", //optional, defaults to 'height'. Property can also be set with css (accepts 'px' values)
|
||||||
|
* min-width: "470px" //optional, defaults to 'width'. Property can also be set with css (accepts 'px' values)
|
||||||
|
* responsive: {
|
||||||
|
* x: "true", //optional, default true
|
||||||
|
* y: "true", //optional, default true
|
||||||
|
* fullscreen-height: "420px", //optional, default is original dialog height (accepts 'px' values)
|
||||||
|
* fullscreen-width: "470px", //optional, default is original dialog width (accepts 'px' values)
|
||||||
|
* },
|
||||||
|
* glasspane: "#728E9B" //optional, sets the color of modal glasspane...default if unset is the dialog header color
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* The content of the dialog MUST be contained in an element with the class `dialog-content`
|
||||||
|
* directly under the dialog element.
|
||||||
|
*
|
||||||
|
* <div id="dialogId">
|
||||||
|
* <div class="dialog-content">
|
||||||
|
* //Dialog Content....
|
||||||
|
* </div>
|
||||||
|
* </div>
|
||||||
|
*
|
||||||
|
* @argument {jQuery} $
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
|
||||||
|
var isUndefined = function (obj) {
|
||||||
|
return typeof obj === 'undefined';
|
||||||
|
};
|
||||||
|
|
||||||
|
var isNull = function (obj) {
|
||||||
|
return obj === null;
|
||||||
|
};
|
||||||
|
|
||||||
|
var isDefinedAndNotNull = function (obj) {
|
||||||
|
return !isUndefined(obj) && !isNull(obj);
|
||||||
|
};
|
||||||
|
|
||||||
|
var isBlank = function (str) {
|
||||||
|
return isUndefined(str) || isNull(str) || str === '';
|
||||||
|
};
|
||||||
|
|
||||||
|
// private function for adding buttons
|
||||||
|
var addButtons = function (dialog, buttonModel) {
|
||||||
|
if (isDefinedAndNotNull(buttonModel)) {
|
||||||
|
var buttonWrapper = $('<div class="dialog-buttons"></div>');
|
||||||
|
$.each(buttonModel, function (i, buttonConfig) {
|
||||||
|
var isDisabled = function () {
|
||||||
|
return typeof buttonConfig.disabled === 'function' && buttonConfig.disabled.call() === true;
|
||||||
|
};
|
||||||
|
|
||||||
|
// create the button
|
||||||
|
var button = $('<div class="button"></div>').append($('<span></span>').text(buttonConfig.buttonText));
|
||||||
|
|
||||||
|
// add the class if specified
|
||||||
|
if (isDefinedAndNotNull(buttonConfig.clazz)) {
|
||||||
|
button.addClass(buttonConfig.clazz);
|
||||||
|
}
|
||||||
|
|
||||||
|
// set the color if specified
|
||||||
|
if (isDefinedAndNotNull(buttonConfig.color)) {
|
||||||
|
button.css({
|
||||||
|
'background': buttonConfig.color.base,
|
||||||
|
'color': buttonConfig.color.text
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if the button should be disabled
|
||||||
|
if (isDisabled()) {
|
||||||
|
button.addClass('disabled-button');
|
||||||
|
} else {
|
||||||
|
// enable custom hover if specified
|
||||||
|
if (isDefinedAndNotNull(buttonConfig.color)) {
|
||||||
|
button.hover(function () {
|
||||||
|
$(this).css("background-color", buttonConfig.color.hover);
|
||||||
|
}, function () {
|
||||||
|
$(this).css("background-color", buttonConfig.color.base);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
button.click(function () {
|
||||||
|
var handler = $(this).data('handler');
|
||||||
|
if (isDefinedAndNotNull(handler) && typeof handler.click === 'function') {
|
||||||
|
handler.click.call(dialog);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// add the button to the wrapper
|
||||||
|
button.data('handler', buttonConfig.handler).appendTo(buttonWrapper);
|
||||||
|
});
|
||||||
|
|
||||||
|
// store the button model to refresh later
|
||||||
|
dialog.append(buttonWrapper).data('buttonModel', buttonModel);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var methods = {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes the dialog.
|
||||||
|
*
|
||||||
|
* @argument {object} options The options for the plugin
|
||||||
|
*/
|
||||||
|
init: function (options) {
|
||||||
|
return this.each(function () {
|
||||||
|
// get the combo
|
||||||
|
var dialog = $(this).addClass('dialog cancellable modal');
|
||||||
|
dialog.css('display', 'none');
|
||||||
|
|
||||||
|
var nfDialogData = {};
|
||||||
|
if (isDefinedAndNotNull(dialog.data('nf-dialog'))) {
|
||||||
|
nfDialogData = dialog.data('nf-dialog');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ensure the options have been properly specified
|
||||||
|
if (isDefinedAndNotNull(options)) {
|
||||||
|
|
||||||
|
$.extend(nfDialogData, options);
|
||||||
|
|
||||||
|
//persist data attribute
|
||||||
|
dialog.data('nfDialog', nfDialogData);
|
||||||
|
}
|
||||||
|
|
||||||
|
// determine if dialog needs a header
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData.header) || nfDialogData.header) {
|
||||||
|
var dialogHeaderText = $('<span class="dialog-header-text"></span>');
|
||||||
|
var dialogHeader = $('<div class="dialog-header"></div>').prepend(dialogHeaderText);
|
||||||
|
|
||||||
|
// determine if the specified header text is null
|
||||||
|
if (!isBlank(nfDialogData.headerText)) {
|
||||||
|
dialogHeaderText.text(nfDialogData.headerText);
|
||||||
|
}
|
||||||
|
|
||||||
|
$('<span></span>').addClass("dialog-header-subtitle").text(nfDialogData.subtitleText).appendTo(dialogHeader);
|
||||||
|
|
||||||
|
|
||||||
|
dialog.prepend(dialogHeader);
|
||||||
|
}
|
||||||
|
|
||||||
|
// determine if dialog needs footer/buttons
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData.footer) || nfDialogData.footer) {
|
||||||
|
// add the buttons
|
||||||
|
addButtons(dialog, nfDialogData.buttons);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the handler that is used when the dialog is closed.
|
||||||
|
*
|
||||||
|
* @argument {function} handler The function to call when hiding the dialog
|
||||||
|
*/
|
||||||
|
setCloseHandler: function (handler) {
|
||||||
|
return this.each(function (index, dialog) {
|
||||||
|
|
||||||
|
var nfDialogData = {};
|
||||||
|
if (isDefinedAndNotNull($(this).data('nf-dialog'))) {
|
||||||
|
nfDialogData = $(dialog).data('nf-dialog');
|
||||||
|
}
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData.handler)){
|
||||||
|
nfDialogData.handler = {};
|
||||||
|
}
|
||||||
|
nfDialogData.handler.close = handler;
|
||||||
|
|
||||||
|
//persist data attribute
|
||||||
|
$(dialog).data('nfDialog', nfDialogData);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the handler that is used when the dialog is opened.
|
||||||
|
*
|
||||||
|
* @argument {function} handler The function to call when showing the dialog
|
||||||
|
*/
|
||||||
|
setOpenHandler: function (handler) {
|
||||||
|
return this.each(function (index, dialog) {
|
||||||
|
|
||||||
|
var nfDialogData = {};
|
||||||
|
if (isDefinedAndNotNull($(this).data('nf-dialog'))) {
|
||||||
|
nfDialogData = $(dialog).data('nf-dialog');
|
||||||
|
}
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData.handler)){
|
||||||
|
nfDialogData.handler = {};
|
||||||
|
}
|
||||||
|
nfDialogData.handler.open = handler;
|
||||||
|
|
||||||
|
//persist data attribute
|
||||||
|
$(dialog).data('nfDialog', nfDialogData);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the handler that is used when the dialog is resized.
|
||||||
|
*
|
||||||
|
* @argument {function} handler The function to call when resizing the dialog
|
||||||
|
*/
|
||||||
|
setResizeHandler: function (handler) {
|
||||||
|
return this.each(function (index, dialog) {
|
||||||
|
|
||||||
|
var nfDialogData = {};
|
||||||
|
if (isDefinedAndNotNull($(this).data('nf-dialog'))) {
|
||||||
|
nfDialogData = $(dialog).data('nf-dialog');
|
||||||
|
}
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData.handler)){
|
||||||
|
nfDialogData.handler = {};
|
||||||
|
}
|
||||||
|
nfDialogData.handler.resize = handler;
|
||||||
|
|
||||||
|
//persist data attribute
|
||||||
|
$(dialog).data('nfDialog', nfDialogData);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the button model for the selected dialog.
|
||||||
|
*
|
||||||
|
* @argument {array} buttons The new button model
|
||||||
|
*/
|
||||||
|
setButtonModel: function (buttons) {
|
||||||
|
return this.each(function () {
|
||||||
|
if (isDefinedAndNotNull(buttons)) {
|
||||||
|
var dialog = $(this);
|
||||||
|
|
||||||
|
// remove the current buttons
|
||||||
|
dialog.children('.dialog-buttons').remove();
|
||||||
|
|
||||||
|
// add the new buttons
|
||||||
|
addButtons(dialog, buttons);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refreshes the buttons with the existing model.
|
||||||
|
*/
|
||||||
|
refreshButtons: function () {
|
||||||
|
return this.each(function () {
|
||||||
|
var dialog = $(this);
|
||||||
|
var buttons = dialog.data('buttonModel');
|
||||||
|
|
||||||
|
// remove the current buttons
|
||||||
|
dialog.children('.dialog-buttons').remove();
|
||||||
|
|
||||||
|
// add the new buttons
|
||||||
|
addButtons(dialog, buttons);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the header text of the dialog.
|
||||||
|
*
|
||||||
|
* @argument {string} text Text to use a as a header
|
||||||
|
*/
|
||||||
|
setHeaderText: function (text) {
|
||||||
|
return this.each(function () {
|
||||||
|
$(this).find('span.dialog-header-text').text(text);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
setSubtitle: function (text) {
|
||||||
|
return this.each(function () {
|
||||||
|
$(this).find('span.dialog-header-subtitle').text(text);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
resize: function () {
|
||||||
|
var dialog = $(this);
|
||||||
|
var dialogContent = dialog.find('.dialog-content');
|
||||||
|
|
||||||
|
var nfDialogData = {};
|
||||||
|
if (isDefinedAndNotNull(dialog.data('nf-dialog'))) {
|
||||||
|
nfDialogData = dialog.data('nf-dialog');
|
||||||
|
}
|
||||||
|
|
||||||
|
//initialize responsive properties
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData.responsive)) {
|
||||||
|
nfDialogData.responsive = {};
|
||||||
|
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData.responsive.x)) {
|
||||||
|
nfDialogData.responsive.x = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData.responsive.y)) {
|
||||||
|
nfDialogData.responsive.y = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData.responsive.x)) {
|
||||||
|
nfDialogData.responsive.x = true;
|
||||||
|
} else {
|
||||||
|
nfDialogData.responsive.x = (nfDialogData.responsive.x == "true" || nfDialogData.responsive.x == true) ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData.responsive.y)) {
|
||||||
|
nfDialogData.responsive.y = true;
|
||||||
|
} else {
|
||||||
|
nfDialogData.responsive.y = (nfDialogData.responsive.y == "true" || nfDialogData.responsive.y == true) ? true : false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nfDialogData.responsive.y || nfDialogData.responsive.x) {
|
||||||
|
|
||||||
|
var fullscreenHeight;
|
||||||
|
var fullscreenWidth;
|
||||||
|
|
||||||
|
if (isDefinedAndNotNull(nfDialogData.responsive['fullscreen-height'])) {
|
||||||
|
fullscreenHeight = parseInt(nfDialogData.responsive['fullscreen-height'], 10);
|
||||||
|
} else {
|
||||||
|
nfDialogData.responsive['fullscreen-height'] = dialog.height() + 'px';
|
||||||
|
|
||||||
|
fullscreenHeight = parseInt(nfDialogData.responsive['fullscreen-height'], 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isDefinedAndNotNull(nfDialogData.responsive['fullscreen-width'])) {
|
||||||
|
fullscreenWidth = parseInt(nfDialogData.responsive['fullscreen-width'], 10);
|
||||||
|
} else {
|
||||||
|
nfDialogData.responsive['fullscreen-width'] = dialog.width() + 'px';
|
||||||
|
|
||||||
|
fullscreenWidth = parseInt(nfDialogData.responsive['fullscreen-width'], 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData.width)) {
|
||||||
|
nfDialogData.width = dialog.css('width');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData['min-width'])) {
|
||||||
|
if (parseInt(dialog.css('min-width'), 10) > 0) {
|
||||||
|
nfDialogData['min-width'] = dialog.css('min-width');
|
||||||
|
} else {
|
||||||
|
nfDialogData['min-width'] = nfDialogData.width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//min-width should always be set in terms of px
|
||||||
|
if (nfDialogData['min-width'].indexOf("%") > 0) {
|
||||||
|
nfDialogData['min-width'] = ($(window).width() * (parseInt(nfDialogData['min-width'], 10) / 100)) + 'px';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData.height)) {
|
||||||
|
nfDialogData.height = dialog.css('height');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isDefinedAndNotNull(nfDialogData['min-height'])) {
|
||||||
|
if (parseInt(dialog.css('min-height'), 10) > 0) {
|
||||||
|
nfDialogData['min-height'] = dialog.css('min-height');
|
||||||
|
} else {
|
||||||
|
nfDialogData['min-height'] = nfDialogData.height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//min-height should always be set in terms of px
|
||||||
|
if (nfDialogData['min-height'].indexOf("%") > 0) {
|
||||||
|
nfDialogData['min-height'] = ($(window).height() * (parseInt(nfDialogData['min-height'], 10) / 100)) + 'px';
|
||||||
|
}
|
||||||
|
|
||||||
|
//resize dialog
|
||||||
|
if ($(window).height() < fullscreenHeight) {
|
||||||
|
if (nfDialogData.responsive.y) {
|
||||||
|
dialog.css('height', '100%');
|
||||||
|
dialog.css('min-height', '100%');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//set the dialog min-height
|
||||||
|
dialog.css('min-height', nfDialogData['min-height']);
|
||||||
|
if (nfDialogData.responsive.y) {
|
||||||
|
//make sure nfDialogData.height is in terms of %
|
||||||
|
if (nfDialogData.height.indexOf("px") > 0) {
|
||||||
|
nfDialogData.height = (parseInt(nfDialogData.height, 10) / $(window).height() * 100) + '%';
|
||||||
|
}
|
||||||
|
dialog.css('height', nfDialogData.height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(window).width() < fullscreenWidth) {
|
||||||
|
if (nfDialogData.responsive.x) {
|
||||||
|
dialog.css('width', '100%');
|
||||||
|
dialog.css('min-width', '100%');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//set the dialog width
|
||||||
|
dialog.css('min-width', nfDialogData['min-width']);
|
||||||
|
if (nfDialogData.responsive.x) {
|
||||||
|
//make sure nfDialogData.width is in terms of %
|
||||||
|
if (nfDialogData.width.indexOf("px") > 0) {
|
||||||
|
nfDialogData.width = (parseInt(nfDialogData.width, 10) / $(window).width() * 100) + '%';
|
||||||
|
}
|
||||||
|
dialog.css('width', nfDialogData.width);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dialog.center();
|
||||||
|
|
||||||
|
//persist data attribute
|
||||||
|
dialog.data('nfDialog', nfDialogData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//apply scrollable style if applicable
|
||||||
|
if (dialogContent[0].offsetHeight < dialogContent[0].scrollHeight) {
|
||||||
|
// your element has overflow
|
||||||
|
if (isDefinedAndNotNull(nfDialogData.scrollableContentStyle)) {
|
||||||
|
dialogContent.addClass(nfDialogData.scrollableContentStyle);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// your element doesn't have overflow
|
||||||
|
if (isDefinedAndNotNull(nfDialogData.scrollableContentStyle)) {
|
||||||
|
dialogContent.removeClass(nfDialogData.scrollableContentStyle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isDefinedAndNotNull(nfDialogData.handler)) {
|
||||||
|
var handler = nfDialogData.handler.resize;
|
||||||
|
if (isDefinedAndNotNull(handler) && typeof handler === 'function') {
|
||||||
|
// invoke the handler
|
||||||
|
handler.call(dialog);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shows the dialog.
|
||||||
|
*/
|
||||||
|
show: function () {
|
||||||
|
var dialog = $(this);
|
||||||
|
|
||||||
|
var zIndex = dialog.css('z-index');
|
||||||
|
if (zIndex === 'auto') {
|
||||||
|
if (isDefinedAndNotNull(dialog.data('nf-dialog'))) {
|
||||||
|
zIndex = (isDefinedAndNotNull(dialog.data('nf-dialog')['z-index'])) ?
|
||||||
|
dialog.data('nf-dialog')['z-index'] : 1301;
|
||||||
|
} else {
|
||||||
|
zIndex = 1301;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var openDialogs = $.makeArray($('.dialog:visible'));
|
||||||
|
if (openDialogs.length >= 1){
|
||||||
|
var zVals = openDialogs.map(function(openDialog){
|
||||||
|
var index;
|
||||||
|
return isNaN(index = parseInt($(openDialog).css("z-index"), 10)) ? 0 : index;
|
||||||
|
});
|
||||||
|
//Add 2 so that we have room for the glass pane overlay of the new dialog
|
||||||
|
zIndex = Math.max.apply(null, zVals) + 2;
|
||||||
|
}
|
||||||
|
dialog.css('z-index', zIndex);
|
||||||
|
|
||||||
|
var nfDialogData = {};
|
||||||
|
if (isDefinedAndNotNull(dialog.data('nf-dialog'))) {
|
||||||
|
nfDialogData = dialog.data('nf-dialog');
|
||||||
|
}
|
||||||
|
|
||||||
|
var glasspane;
|
||||||
|
if (isDefinedAndNotNull(nfDialogData.glasspane)) {
|
||||||
|
glasspane = nfDialogData.glasspane;
|
||||||
|
} else {
|
||||||
|
nfDialogData.glasspane = glasspane = dialog.find('.dialog-header').css('background-color'); //default to header color
|
||||||
|
}
|
||||||
|
|
||||||
|
if(top !== window || !isDefinedAndNotNull(nfDialogData.glasspane)) {
|
||||||
|
nfDialogData.glasspane = glasspane = 'transparent';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$('body').find("[data-nf-dialog-parent='" + dialog.attr('id') + "']").is(':visible')) {
|
||||||
|
//create glass pane overlay
|
||||||
|
$('<div></div>').attr('data-nf-dialog-parent', dialog.attr('id')).addClass("modal-glass").css({
|
||||||
|
"background-color": glasspane,
|
||||||
|
"z-index": zIndex - 1
|
||||||
|
}).appendTo($('body'));
|
||||||
|
}
|
||||||
|
|
||||||
|
//persist data attribute
|
||||||
|
dialog.data('nfDialog', nfDialogData);
|
||||||
|
|
||||||
|
return this.each(function () {
|
||||||
|
// show the dialog
|
||||||
|
if (!dialog.is(':visible')) {
|
||||||
|
dialog.show();
|
||||||
|
dialog.modal('resize');
|
||||||
|
dialog.center();
|
||||||
|
|
||||||
|
if (isDefinedAndNotNull(nfDialogData.handler)) {
|
||||||
|
var handler = nfDialogData.handler.open;
|
||||||
|
if (isDefinedAndNotNull(handler) && typeof handler === 'function') {
|
||||||
|
// invoke the handler
|
||||||
|
handler.call(dialog);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hides the dialog.
|
||||||
|
*/
|
||||||
|
hide: function () {
|
||||||
|
return this.each(function () {
|
||||||
|
var dialog = $(this);
|
||||||
|
|
||||||
|
var nfDialogData = {};
|
||||||
|
if (isDefinedAndNotNull(dialog.data('nf-dialog'))) {
|
||||||
|
nfDialogData = dialog.data('nf-dialog');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isDefinedAndNotNull(nfDialogData.handler)) {
|
||||||
|
var handler = nfDialogData.handler.close;
|
||||||
|
if (isDefinedAndNotNull(handler) && typeof handler === 'function') {
|
||||||
|
// invoke the handler
|
||||||
|
handler.call(dialog);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// remove the modal glass pane overlay
|
||||||
|
$('body').find("[data-nf-dialog-parent='" + dialog.attr('id') + "']").remove();
|
||||||
|
|
||||||
|
if (dialog.is(':visible')) {
|
||||||
|
// hide the dialog
|
||||||
|
dialog.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$.fn.modal = function (method) {
|
||||||
|
if (methods[method]) {
|
||||||
|
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
|
||||||
|
} else {
|
||||||
|
return methods.init.apply(this, arguments);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})(jQuery);
|
|
@ -0,0 +1,80 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
CodeMirror styles
|
||||||
|
*/
|
||||||
|
|
||||||
|
.nf-editor .CodeMirror {
|
||||||
|
height: 100px;
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
font-family: monospace;
|
||||||
|
background-color: #fff;
|
||||||
|
cursor: default;
|
||||||
|
line-height: normal;
|
||||||
|
min-width: 210px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nf-editor .CodeMirror.blank {
|
||||||
|
background: #b2b8c1;
|
||||||
|
color: #dbdee2;
|
||||||
|
border: 1px solid #b2b8c1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nf-editor .CodeMirror-scroll {
|
||||||
|
overflow-x: auto;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nf-editor .ui-resizable-se {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
background-image: url(../../../images/iconResize.png);
|
||||||
|
z-index: 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Override some defaults...
|
||||||
|
*/
|
||||||
|
|
||||||
|
.CodeMirror-hints {
|
||||||
|
font-size: 13px !important;
|
||||||
|
z-index: 100001 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-default {
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-default .CodeMirror-matchingbracket {
|
||||||
|
color: #000 !important;
|
||||||
|
background-color: #aaa;
|
||||||
|
opacity: 0.5;
|
||||||
|
filter: alpha(opacity=50);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Override some defaults for this instance...
|
||||||
|
*/
|
||||||
|
|
||||||
|
.nf-editor .CodeMirror-vscrollbar {
|
||||||
|
bottom: 18px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nf-editor .CodeMirror-hscrollbar {
|
||||||
|
right: 18px !important;
|
||||||
|
}
|
|
@ -0,0 +1,355 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* global define, module, require, exports */
|
||||||
|
|
||||||
|
(function (root, factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
define(['jquery',
|
||||||
|
'CodeMirror',
|
||||||
|
'nf'],
|
||||||
|
function ($, CodeMirror, nf) {
|
||||||
|
factory($, CodeMirror, nf);
|
||||||
|
});
|
||||||
|
} else if (typeof exports === 'object' && typeof module === 'object') {
|
||||||
|
factory(require('jquery'),
|
||||||
|
require('CodeMirror'),
|
||||||
|
require('nf'));
|
||||||
|
} else {
|
||||||
|
factory(root.$,
|
||||||
|
root.CodeMirror,
|
||||||
|
root.nf);
|
||||||
|
}
|
||||||
|
}(this, function ($, CodeMirror, nf) {
|
||||||
|
|
||||||
|
var isUndefined = function (obj) {
|
||||||
|
return typeof obj === 'undefined';
|
||||||
|
};
|
||||||
|
|
||||||
|
var isNull = function (obj) {
|
||||||
|
return obj === null;
|
||||||
|
};
|
||||||
|
|
||||||
|
var isDefinedAndNotNull = function (obj) {
|
||||||
|
return !isUndefined(obj) && !isNull(obj);
|
||||||
|
};
|
||||||
|
|
||||||
|
var isBlank = function (str) {
|
||||||
|
return isUndefined(str) || isNull(str) || str === '';
|
||||||
|
};
|
||||||
|
|
||||||
|
var isFunction = function (funct) {
|
||||||
|
return typeof funct === 'function';
|
||||||
|
};
|
||||||
|
|
||||||
|
var methods = {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new nf editor. The options are specified in the following
|
||||||
|
* format:
|
||||||
|
*
|
||||||
|
* {
|
||||||
|
* languageMode: nf.nfel,
|
||||||
|
* resizable: true,
|
||||||
|
* sensitive: false,
|
||||||
|
* readOnly: false,
|
||||||
|
* content: '${attribute}',
|
||||||
|
* width: 200,
|
||||||
|
* height: 200,
|
||||||
|
* minWidth: 150,
|
||||||
|
* minHeight: 150
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* @param {object} options The options for this editor.
|
||||||
|
*/
|
||||||
|
init: function (options) {
|
||||||
|
return this.each(function () {
|
||||||
|
if (isUndefined(options) || isNull(options)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var languageMode = options.languageMode;
|
||||||
|
if (isUndefined(languageMode) || isNull(languageMode)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// should support resizing
|
||||||
|
var resizable = options.resizable === true;
|
||||||
|
|
||||||
|
// is the property sensitive
|
||||||
|
var sensitive = options.sensitive === true;
|
||||||
|
|
||||||
|
var content = isDefinedAndNotNull(options.content) ? options.content : '';
|
||||||
|
var field = $('<textarea></textarea>').text(content).appendTo($(this));
|
||||||
|
|
||||||
|
// define a mode for NiFi expression language
|
||||||
|
if (isFunction(languageMode.color)) {
|
||||||
|
CodeMirror.commands.autocomplete = function (cm) {
|
||||||
|
if (isFunction(languageMode.suggest)) {
|
||||||
|
CodeMirror.showHint(cm, languageMode.suggest);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
CodeMirror.defineMode(languageMode.getLanguageId(), languageMode.color);
|
||||||
|
|
||||||
|
// is the editor read only
|
||||||
|
var readOnly = options.readOnly === true;
|
||||||
|
|
||||||
|
var editor = CodeMirror.fromTextArea(field.get(0), {
|
||||||
|
mode: languageMode.getLanguageId(),
|
||||||
|
lineNumbers: true,
|
||||||
|
matchBrackets: true,
|
||||||
|
readOnly: readOnly,
|
||||||
|
extraKeys: {
|
||||||
|
'Ctrl-Space': 'autocomplete',
|
||||||
|
'Esc': function (cm) {
|
||||||
|
if (isFunction(options.escape)) {
|
||||||
|
options.escape();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'Enter': function (cm) {
|
||||||
|
if (isFunction(options.enter)) {
|
||||||
|
options.enter();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// set the size
|
||||||
|
var width = null;
|
||||||
|
if (isDefinedAndNotNull(options.width)) {
|
||||||
|
width = options.width;
|
||||||
|
}
|
||||||
|
var height = null;
|
||||||
|
if (isDefinedAndNotNull(options.height)) {
|
||||||
|
height = options.height;
|
||||||
|
}
|
||||||
|
editor.setSize(width, height);
|
||||||
|
|
||||||
|
// store the editor instance for later
|
||||||
|
$(this).data('editorInstance', editor);
|
||||||
|
|
||||||
|
// get a reference to the codemirror
|
||||||
|
var codeMirror = $(this).find('.CodeMirror');
|
||||||
|
|
||||||
|
// reference the code portion
|
||||||
|
var code = codeMirror.find('.CodeMirror-code');
|
||||||
|
|
||||||
|
// make this resizable if specified
|
||||||
|
if (resizable) {
|
||||||
|
codeMirror.append('<div class="ui-resizable-handle ui-resizable-se"></div>').resizable({
|
||||||
|
handles: {
|
||||||
|
'se': '.ui-resizable-se'
|
||||||
|
},
|
||||||
|
resize: function () {
|
||||||
|
editor.setSize($(this).width(), $(this).height());
|
||||||
|
editor.refresh();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// handle keydown to signify the content has changed
|
||||||
|
editor.on('change', function (cm, event) {
|
||||||
|
codeMirror.addClass('modified');
|
||||||
|
});
|
||||||
|
|
||||||
|
// handle keyHandled to stop event propagation/default as necessary
|
||||||
|
editor.on('keyHandled', function (cm, name, evt) {
|
||||||
|
if (name === 'Esc') {
|
||||||
|
// stop propagation of the escape event
|
||||||
|
evt.stopImmediatePropagation();
|
||||||
|
evt.preventDefault();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// handle sensitive values differently
|
||||||
|
if (sensitive) {
|
||||||
|
code.addClass('sensitive');
|
||||||
|
|
||||||
|
var handleSensitive = function (cm, event) {
|
||||||
|
if (code.hasClass('sensitive')) {
|
||||||
|
code.removeClass('sensitive');
|
||||||
|
editor.setValue('');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// remove the sensitive style if necessary
|
||||||
|
editor.on('mousedown', handleSensitive);
|
||||||
|
editor.on('keydown', handleSensitive);
|
||||||
|
}
|
||||||
|
|
||||||
|
// set the min width/height
|
||||||
|
if (isDefinedAndNotNull(options.minWidth)) {
|
||||||
|
codeMirror.resizable('option', 'minWidth', options.minWidth);
|
||||||
|
}
|
||||||
|
if (isDefinedAndNotNull(options.minHeight)) {
|
||||||
|
codeMirror.resizable('option', 'minHeight', options.minHeight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refreshes the editor.
|
||||||
|
*/
|
||||||
|
refresh: function () {
|
||||||
|
return this.each(function () {
|
||||||
|
var editor = $(this).data('editorInstance');
|
||||||
|
|
||||||
|
// ensure the editor was initialized
|
||||||
|
if (isDefinedAndNotNull(editor)) {
|
||||||
|
editor.refresh();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the size of the editor.
|
||||||
|
*
|
||||||
|
* @param {integer} width
|
||||||
|
* @param {integer} height
|
||||||
|
*/
|
||||||
|
setSize: function (width, height) {
|
||||||
|
return this.each(function () {
|
||||||
|
var editor = $(this).data('editorInstance');
|
||||||
|
|
||||||
|
// ensure the editor was initialized
|
||||||
|
if (isDefinedAndNotNull(editor)) {
|
||||||
|
editor.setSize(width, height);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets whether the editor is read only.
|
||||||
|
*
|
||||||
|
* @param {boolean|string} readOnly
|
||||||
|
*/
|
||||||
|
setReadOnly: function (readOnly) {
|
||||||
|
return this.each(function () {
|
||||||
|
var editor = $(this).data('editorInstance');
|
||||||
|
|
||||||
|
// ensure the editor was initialized
|
||||||
|
if (isDefinedAndNotNull(editor)) {
|
||||||
|
editor.setOption('readOnly', readOnly);
|
||||||
|
|
||||||
|
if (readOnly === false) {
|
||||||
|
$(this).find('.CodeMirror').removeClass('blank');
|
||||||
|
} else {
|
||||||
|
$(this).find('.CodeMirror').addClass('blank');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the editor in the first matching selector.
|
||||||
|
*/
|
||||||
|
getValue: function () {
|
||||||
|
var value;
|
||||||
|
|
||||||
|
this.each(function () {
|
||||||
|
var editor = $(this).data('editorInstance');
|
||||||
|
|
||||||
|
// ensure the editor was initialized
|
||||||
|
if (isDefinedAndNotNull(editor)) {
|
||||||
|
value = editor.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
return value;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the editor.
|
||||||
|
*
|
||||||
|
* @param {string} value
|
||||||
|
*/
|
||||||
|
setValue: function (value) {
|
||||||
|
return this.each(function () {
|
||||||
|
var editor = $(this).data('editorInstance');
|
||||||
|
|
||||||
|
// ensure the editor was initialized
|
||||||
|
if (isDefinedAndNotNull(editor)) {
|
||||||
|
editor.setValue(value);
|
||||||
|
|
||||||
|
// remove the modified marking since the value was reset
|
||||||
|
$(this).find('.CodeMirror').removeClass('modified');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the focus.
|
||||||
|
*/
|
||||||
|
focus: function () {
|
||||||
|
return this.each(function () {
|
||||||
|
var editor = $(this).data('editorInstance');
|
||||||
|
|
||||||
|
// ensure the editor was initialized
|
||||||
|
if (isDefinedAndNotNull(editor)) {
|
||||||
|
editor.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the focus.
|
||||||
|
*/
|
||||||
|
selectAll: function () {
|
||||||
|
return this.each(function () {
|
||||||
|
var editor = $(this).data('editorInstance');
|
||||||
|
|
||||||
|
// ensure the editor was initialized
|
||||||
|
if (isDefinedAndNotNull(editor)) {
|
||||||
|
editor.execCommand('selectAll');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets whether the value of the editor in the first matching selector has been modified.
|
||||||
|
*/
|
||||||
|
isModified: function () {
|
||||||
|
var modified;
|
||||||
|
|
||||||
|
this.each(function () {
|
||||||
|
modified = $(this).find('.CodeMirror').hasClass('modified');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
return modified;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Destroys the editor.
|
||||||
|
*/
|
||||||
|
destroy: function () {
|
||||||
|
return this.removeData('editorInstance').find('.CodeMirror').removeClass('modified');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$.fn.nfeditor = function (method) {
|
||||||
|
if (methods[method]) {
|
||||||
|
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
|
||||||
|
} else {
|
||||||
|
return methods.init.apply(this, arguments);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}));
|
|
@ -0,0 +1,131 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
ul.CodeMirror-hints {
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.el-section {
|
||||||
|
margin: 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.el-name {
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: monospace;
|
||||||
|
font-size: 16px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.el-header {
|
||||||
|
float: left;
|
||||||
|
width: 75px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.el-arguments {
|
||||||
|
margin-top: 5px;
|
||||||
|
list-style-type: disc;
|
||||||
|
list-style-position: inside;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.el-argument-name {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.nf-tooltip {
|
||||||
|
max-width: 350px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint-tip {
|
||||||
|
z-index: 14000;
|
||||||
|
width: 455px;
|
||||||
|
padding: 10px;
|
||||||
|
position: absolute;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
border-radius: 2px;
|
||||||
|
background-color: #fff;
|
||||||
|
box-shadow: 0 3px 12px rgba(0, 0, 0, 0.16);
|
||||||
|
font-size: 13px;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint-tip > :first-child {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint-tip-title-container {
|
||||||
|
display: flex;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint-tip-title-container > :first-child {
|
||||||
|
width: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
color: #898989;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint-tip-title-container > .mode-supported {
|
||||||
|
color: #151515;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint-tip-title-container > .mode-unsupported {
|
||||||
|
color: #676767;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint-tip-description-container {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint-tip-description-container .hint-pattern {
|
||||||
|
padding: 0 2px;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
font-weight: 400;
|
||||||
|
background-color: rgba(20, 145, 193, 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint-tip-description-container .hint-keystroke {
|
||||||
|
font-weight: 300;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint-container {
|
||||||
|
margin-top: 5px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
height: 13px;
|
||||||
|
font-size: 11px;
|
||||||
|
color: #898989;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint-element {
|
||||||
|
cursor: default;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 96px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint {
|
||||||
|
display: flex;
|
||||||
|
font-weight: bold;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.mode-hint-value {
|
||||||
|
margin-left: 5px;
|
||||||
|
color: #898989;
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* global define, module, require, exports */
|
||||||
|
|
||||||
|
(function (root, factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
define(['jquery',
|
||||||
|
'nf.AuthorizationStorage'],
|
||||||
|
function ($, nfAuthorizationStorage) {
|
||||||
|
return (nf.AjaxSetup = factory($, nfAuthorizationStorage));
|
||||||
|
});
|
||||||
|
} else if (typeof exports === 'object' && typeof module === 'object') {
|
||||||
|
module.exports = (nf.AjaxSetup = factory(require('jquery'),
|
||||||
|
require('nf.AuthorizationStorage')));
|
||||||
|
} else {
|
||||||
|
nf.AjaxSetup = factory(root.$,
|
||||||
|
root.nf.AuthorizationStorage);
|
||||||
|
}
|
||||||
|
}(this, function ($, nfAuthorizationStorage) {
|
||||||
|
/**
|
||||||
|
* Performs ajax setup for use within NiFi.
|
||||||
|
*/
|
||||||
|
$(document).ready(function ($) {
|
||||||
|
$.ajaxSetup({
|
||||||
|
'beforeSend': function (xhr) {
|
||||||
|
// Get the Request Token for CSRF mitigation on and send on all requests
|
||||||
|
var requestToken = nfAuthorizationStorage.getRequestToken();
|
||||||
|
if (requestToken !== null) {
|
||||||
|
xhr.setRequestHeader('Request-Token', requestToken);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}));
|
|
@ -0,0 +1,86 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* global define, module, require, exports */
|
||||||
|
|
||||||
|
(function (root, factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
define([], function () {
|
||||||
|
return (nf.AuthorizationStorage = factory());
|
||||||
|
});
|
||||||
|
} else if (typeof exports === 'object' && typeof module === 'object') {
|
||||||
|
module.exports = (nf.AuthorizationStorage = factory());
|
||||||
|
} else {
|
||||||
|
nf.AuthorizationStorage = factory();
|
||||||
|
}
|
||||||
|
}(this, function () {
|
||||||
|
var TOKEN_ITEM_KEY = 'Access-Token-Expiration';
|
||||||
|
|
||||||
|
var REQUEST_TOKEN_PATTERN = new RegExp('Request-Token=([^;]+)');
|
||||||
|
|
||||||
|
return {
|
||||||
|
/**
|
||||||
|
* Get Request Token from document cookies
|
||||||
|
*
|
||||||
|
* @return Request Token string or null when not found
|
||||||
|
*/
|
||||||
|
getRequestToken: function () {
|
||||||
|
var requestToken = null;
|
||||||
|
var requestTokenMatcher = REQUEST_TOKEN_PATTERN.exec(document.cookie);
|
||||||
|
if (requestTokenMatcher) {
|
||||||
|
requestToken = requestTokenMatcher[1];
|
||||||
|
}
|
||||||
|
return requestToken;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Token from Session Storage
|
||||||
|
*
|
||||||
|
* @return Bearer Token string
|
||||||
|
*/
|
||||||
|
getToken: function () {
|
||||||
|
return sessionStorage.getItem(TOKEN_ITEM_KEY);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Has Token returns the status of whether Session Storage contains the Token
|
||||||
|
*
|
||||||
|
* @return Boolean status of whether Session Storage contains the Token
|
||||||
|
*/
|
||||||
|
hasToken: function () {
|
||||||
|
var token = this.getToken();
|
||||||
|
return typeof token === 'string';
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove Token from Session Storage
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
removeToken: function () {
|
||||||
|
sessionStorage.removeItem(TOKEN_ITEM_KEY);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Token in Session Storage
|
||||||
|
*
|
||||||
|
* @param token Token String
|
||||||
|
*/
|
||||||
|
setToken: function (token) {
|
||||||
|
sessionStorage.setItem(TOKEN_ITEM_KEY, token);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}));
|