13 | You can use the Azure OpenAI service to generate and download a Web of Things (WoT) Thing Description for the asset you want to configure automatically.
14 | Here is a good online editor for WoT files.
15 | After validating its contents, choose the file below.
16 | Finally, send it to UA Edge Translator via OPC UA to configure the asset.
17 | Although UA Edge Translator can load OPC UA nodeset files directly from the UA Cloud Library, you can also manually send OPC UA nodeset files to UA Edge Translator below. They can be used to map WoT properties to specific OPC UA types.
18 |
19 |
20 |
21 |
22 |
33 |
34 |
35 |
36 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/Views/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using Opc.Ua.Cloud.Publisher
2 | @using Opc.Ua.Cloud.Publisher.Models
3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
4 |
--------------------------------------------------------------------------------
/Views/_ViewStart.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "_Layout";
3 | }
4 |
--------------------------------------------------------------------------------
/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "DetailedErrors": true
10 | }
11 |
--------------------------------------------------------------------------------
/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "AllowedHosts": "*"
10 | }
11 |
--------------------------------------------------------------------------------
/screenshots/browser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/screenshots/browser.png
--------------------------------------------------------------------------------
/screenshots/configuration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/screenshots/configuration.png
--------------------------------------------------------------------------------
/screenshots/diagnostics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/screenshots/diagnostics.png
--------------------------------------------------------------------------------
/screenshots/publishednodesmanagement.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/screenshots/publishednodesmanagement.png
--------------------------------------------------------------------------------
/screenshots/translator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/screenshots/translator.png
--------------------------------------------------------------------------------
/tools/runSuper-linter-Local.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Get the current directory
4 | REPO_DIR=$(pwd)
5 | echo "$REPO_DIR"
6 |
7 | # Run the Docker container with the specified environment variables and volume mount
8 | docker run \
9 | -e FILTER_REGEX_EXCLUDE='.*wwwroot/lib/.*' \
10 | -e IGNORE_GITIGNORED_FILES=true \
11 | -e LOG_LEVEL=INFO \
12 | -e DEFAULT_BRANCH=origin/develop \
13 | -e RUN_LOCAL=true \
14 | -e VALIDATE_ALL_CODEBASE=true \
15 | -v "$REPO_DIR:/tmp/lint" -it --rm ghcr.io/super-linter/super-linter:v7.1.0
16 |
--------------------------------------------------------------------------------
/wwwroot/OPCUA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/wwwroot/OPCUA.png
--------------------------------------------------------------------------------
/wwwroot/css/32px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/wwwroot/css/32px.png
--------------------------------------------------------------------------------
/wwwroot/css/40px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/wwwroot/css/40px.png
--------------------------------------------------------------------------------
/wwwroot/css/throbber.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/wwwroot/css/throbber.gif
--------------------------------------------------------------------------------
/wwwroot/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/wwwroot/favicon.ico
--------------------------------------------------------------------------------
/wwwroot/js/site.js:
--------------------------------------------------------------------------------
1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
2 | // for details on configuring this project to bundle and minify static web assets.
3 |
4 | // Write your JavaScript code.
5 |
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 | /**
3 | * @author: Dennis Hernández
4 | * @webSite: http://djhvscf.github.io/Blog
5 | * @version: v2.1.1
6 | */
7 | .no-filter-control {
8 | height: 34px;
9 | }
10 |
11 | .filter-control {
12 | margin: 0 2px 2px 2px;
13 | }
14 |
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
3 | *
4 | * @version v1.18.3
5 | * @homepage https://bootstrap-table.com
6 | * @author wenzhixin (http://wenzhixin.net.cn/)
7 | * @license MIT
8 | */
9 |
10 | @charset "UTF-8";.no-filter-control{height:34px}.filter-control{margin:0 2px 2px 2px}
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.css:
--------------------------------------------------------------------------------
1 | .fixed-columns,
2 | .fixed-columns-right {
3 | position: absolute;
4 | top: 0;
5 | height: 100%;
6 | background-color: #fff;
7 | box-sizing: border-box;
8 | z-index: 1;
9 | }
10 |
11 | .fixed-columns {
12 | left: 0;
13 | }
14 |
15 | .fixed-columns .fixed-table-body {
16 | overflow: hidden !important;
17 | }
18 |
19 | .fixed-columns-right {
20 | right: 0;
21 | }
22 |
23 | .fixed-columns-right .fixed-table-body {
24 | overflow-x: hidden !important;
25 | }
26 |
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
3 | *
4 | * @version v1.18.3
5 | * @homepage https://bootstrap-table.com
6 | * @author wenzhixin (http://wenzhixin.net.cn/)
7 | * @license MIT
8 | */
9 |
10 | .fixed-columns,.fixed-columns-right{position:absolute;top:0;height:100%;background-color:#fff;box-sizing:border-box;z-index:1}.fixed-columns{left:0}.fixed-columns .fixed-table-body{overflow:hidden!important}.fixed-columns-right{right:0}.fixed-columns-right .fixed-table-body{overflow-x:hidden!important}
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.css:
--------------------------------------------------------------------------------
1 | .bootstrap-table .table > tbody > tr.groupBy.expanded,
2 | .bootstrap-table .table > tbody > tr.groupBy.collapsed {
3 | cursor: pointer;
4 | }
5 |
6 | .bootstrap-table .table > tbody > tr.hidden {
7 | display: none;
8 | }
9 |
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
3 | *
4 | * @version v1.18.3
5 | * @homepage https://bootstrap-table.com
6 | * @author wenzhixin (http://wenzhixin.net.cn/)
7 | * @license MIT
8 | */
9 |
10 | .bootstrap-table .table>tbody>tr.groupBy.collapsed,.bootstrap-table .table>tbody>tr.groupBy.expanded{cursor:pointer}.bootstrap-table .table>tbody>tr.hidden{display:none}
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js:
--------------------------------------------------------------------------------
1 | (function (global, factory) {
2 | typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
3 | typeof define === 'function' && define.amd ? define(['jquery'], factory) :
4 | (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jQuery));
5 | }(this, (function ($) { 'use strict';
6 |
7 | function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8 |
9 | var $__default = /*#__PURE__*/_interopDefaultLegacy($);
10 |
11 | function _classCallCheck(instance, Constructor) {
12 | if (!(instance instanceof Constructor)) {
13 | throw new TypeError("Cannot call a class as a function");
14 | }
15 | }
16 |
17 | function _defineProperties(target, props) {
18 | for (var i = 0; i < props.length; i++) {
19 | var descriptor = props[i];
20 | descriptor.enumerable = descriptor.enumerable || false;
21 | descriptor.configurable = true;
22 | if ("value" in descriptor) descriptor.writable = true;
23 | Object.defineProperty(target, descriptor.key, descriptor);
24 | }
25 | }
26 |
27 | function _createClass(Constructor, protoProps, staticProps) {
28 | if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29 | if (staticProps) _defineProperties(Constructor, staticProps);
30 | return Constructor;
31 | }
32 |
33 | function _inherits(subClass, superClass) {
34 | if (typeof superClass !== "function" && superClass !== null) {
35 | throw new TypeError("Super expression must either be null or a function");
36 | }
37 |
38 | subClass.prototype = Object.create(superClass && superClass.prototype, {
39 | constructor: {
40 | value: subClass,
41 | writable: true,
42 | configurable: true
43 | }
44 | });
45 | if (superClass) _setPrototypeOf(subClass, superClass);
46 | }
47 |
48 | function _getPrototypeOf(o) {
49 | _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
50 | return o.__proto__ || Object.getPrototypeOf(o);
51 | };
52 | return _getPrototypeOf(o);
53 | }
54 |
55 | function _setPrototypeOf(o, p) {
56 | _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
57 | o.__proto__ = p;
58 | return o;
59 | };
60 |
61 | return _setPrototypeOf(o, p);
62 | }
63 |
64 | function _isNativeReflectConstruct() {
65 | if (typeof Reflect === "undefined" || !Reflect.construct) return false;
66 | if (Reflect.construct.sham) return false;
67 | if (typeof Proxy === "function") return true;
68 |
69 | try {
70 | Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
71 | return true;
72 | } catch (e) {
73 | return false;
74 | }
75 | }
76 |
77 | function _assertThisInitialized(self) {
78 | if (self === void 0) {
79 | throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
80 | }
81 |
82 | return self;
83 | }
84 |
85 | function _possibleConstructorReturn(self, call) {
86 | if (call && (typeof call === "object" || typeof call === "function")) {
87 | return call;
88 | }
89 |
90 | return _assertThisInitialized(self);
91 | }
92 |
93 | function _createSuper(Derived) {
94 | var hasNativeReflectConstruct = _isNativeReflectConstruct();
95 |
96 | return function _createSuperInternal() {
97 | var Super = _getPrototypeOf(Derived),
98 | result;
99 |
100 | if (hasNativeReflectConstruct) {
101 | var NewTarget = _getPrototypeOf(this).constructor;
102 |
103 | result = Reflect.construct(Super, arguments, NewTarget);
104 | } else {
105 | result = Super.apply(this, arguments);
106 | }
107 |
108 | return _possibleConstructorReturn(this, result);
109 | };
110 | }
111 |
112 | /**
113 | * @author: Jewway
114 | * @update zhixin wen
115 | */
116 |
117 | $__default['default'].fn.bootstrapTable.methods.push('changeTitle');
118 | $__default['default'].fn.bootstrapTable.methods.push('changeLocale');
119 |
120 | $__default['default'].BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) {
121 | _inherits(_class, _$$BootstrapTable);
122 |
123 | var _super = _createSuper(_class);
124 |
125 | function _class() {
126 | _classCallCheck(this, _class);
127 |
128 | return _super.apply(this, arguments);
129 | }
130 |
131 | _createClass(_class, [{
132 | key: "changeTitle",
133 | value: function changeTitle(locale) {
134 | $__default['default'].each(this.options.columns, function (idx, columnList) {
135 | $__default['default'].each(columnList, function (idx, column) {
136 | if (column.field) {
137 | column.title = locale[column.field];
138 | }
139 | });
140 | });
141 | this.initHeader();
142 | this.initBody();
143 | this.initToolbar();
144 | }
145 | }, {
146 | key: "changeLocale",
147 | value: function changeLocale(localeId) {
148 | this.options.locale = localeId;
149 | this.initLocale();
150 | this.initPagination();
151 | this.initBody();
152 | this.initToolbar();
153 | }
154 | }]);
155 |
156 | return _class;
157 | }($__default['default'].BootstrapTable);
158 |
159 | })));
160 |
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/i18n-enhance/bootstrap-table-i18n-enhance.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
3 | *
4 | * @version v1.18.3
5 | * @homepage https://bootstrap-table.com
6 | * @author wenzhixin (http://wenzhixin.net.cn/)
7 | * @license MIT
8 | */
9 |
10 | !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).jQuery)}(this,(function(t){"use strict";function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var n=e(t);function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var n=0;n .pagination ul.pagination,
2 | .bootstrap-table.bootstrap3 .fixed-table-pagination > .pagination .page-jump-to {
3 | display: inline;
4 | }
5 |
6 | .bootstrap-table .fixed-table-pagination > .pagination .page-jump-to input {
7 | width: 70px;
8 | margin-left: 5px;
9 | text-align: center;
10 | float: left;
11 | }
12 |
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
3 | *
4 | * @version v1.18.3
5 | * @homepage https://bootstrap-table.com
6 | * @author wenzhixin (http://wenzhixin.net.cn/)
7 | * @license MIT
8 | */
9 |
10 | .bootstrap-table.bootstrap3 .fixed-table-pagination>.pagination .page-jump-to,.bootstrap-table.bootstrap3 .fixed-table-pagination>.pagination ul.pagination{display:inline}.bootstrap-table .fixed-table-pagination>.pagination .page-jump-to input{width:70px;margin-left:5px;text-align:center;float:left}
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.css:
--------------------------------------------------------------------------------
1 | .reorder_rows_onDragClass td {
2 | background-color: #eee;
3 | -webkit-box-shadow: 11px 5px 12px 2px #333, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset;
4 | -webkit-box-shadow: 6px 3px 5px #555, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset;
5 | -moz-box-shadow: 6px 4px 5px 1px #555, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset;
6 | -box-shadow: 6px 4px 5px 1px #555, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset;
7 | }
8 |
9 | .reorder_rows_onDragClass td:last-child {
10 | -webkit-box-shadow: 8px 7px 12px 0 #333, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset;
11 | -webkit-box-shadow: 1px 8px 6px -4px #555, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset;
12 | -moz-box-shadow: 0 9px 4px -4px #555, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset, -1px 0 0 #ccc inset;
13 | -box-shadow: 0 9px 4px -4px #555, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset, -1px 0 0 #ccc inset;
14 | }
15 |
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
3 | *
4 | * @version v1.18.3
5 | * @homepage https://bootstrap-table.com
6 | * @author wenzhixin (http://wenzhixin.net.cn/)
7 | * @license MIT
8 | */
9 |
10 | .reorder_rows_onDragClass td{background-color:#eee;-webkit-box-shadow:11px 5px 12px 2px #333,0 1px 0 #ccc inset,0 -1px 0 #ccc inset;-webkit-box-shadow:6px 3px 5px #555,0 1px 0 #ccc inset,0 -1px 0 #ccc inset;-moz-box-shadow:6px 4px 5px 1px #555,0 1px 0 #ccc inset,0 -1px 0 #ccc inset;-box-shadow:6px 4px 5px 1px #555,0 1px 0 #ccc inset,0 -1px 0 #ccc inset}.reorder_rows_onDragClass td:last-child{-webkit-box-shadow:8px 7px 12px 0 #333,0 1px 0 #ccc inset,0 -1px 0 #ccc inset;-webkit-box-shadow:1px 8px 6px -4px #555,0 1px 0 #ccc inset,0 -1px 0 #ccc inset;-moz-box-shadow:0 9px 4px -4px #555,0 1px 0 #ccc inset,0 -1px 0 #ccc inset,-1px 0 0 #ccc inset;-box-shadow:0 9px 4px -4px #555,0 1px 0 #ccc inset,0 -1px 0 #ccc inset,-1px 0 0 #ccc inset}
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.css:
--------------------------------------------------------------------------------
1 | /**
2 | * @author vincent loh
3 | * @update zhixin wen
4 | */
5 | .fix-sticky {
6 | position: fixed !important;
7 | overflow: hidden;
8 | z-index: 100;
9 | }
10 |
11 | .fix-sticky table thead {
12 | background: #fff;
13 | }
14 |
15 | .fix-sticky table thead.thead-light {
16 | background: #e9ecef;
17 | }
18 |
19 | .fix-sticky table thead.thead-dark {
20 | background: #212529;
21 | }
22 |
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
3 | *
4 | * @version v1.18.3
5 | * @homepage https://bootstrap-table.com
6 | * @author wenzhixin (http://wenzhixin.net.cn/)
7 | * @license MIT
8 | */
9 |
10 | .fix-sticky{position:fixed!important;overflow:hidden;z-index:100}.fix-sticky table thead{background:#fff}.fix-sticky table thead.thead-light{background:#e9ecef}.fix-sticky table thead.thead-dark{background:#212529}
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/wwwroot/lib/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.eot
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/wwwroot/lib/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.ttf
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/wwwroot/lib/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.woff
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2011-2018 Twitter, Inc.
4 | Copyright (c) 2011-2018 The Bootstrap Authors
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
3 | * Copyright 2011-2019 The Bootstrap Authors
4 | * Copyright 2011-2019 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 | *,
9 | *::before,
10 | *::after {
11 | box-sizing: border-box;
12 | }
13 |
14 | html {
15 | font-family: sans-serif;
16 | line-height: 1.15;
17 | -webkit-text-size-adjust: 100%;
18 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
19 | }
20 |
21 | article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
22 | display: block;
23 | }
24 |
25 | body {
26 | margin: 0;
27 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
28 | font-size: 1rem;
29 | font-weight: 400;
30 | line-height: 1.5;
31 | color: #212529;
32 | text-align: left;
33 | background-color: #fff;
34 | }
35 |
36 | [tabindex="-1"]:focus {
37 | outline: 0 !important;
38 | }
39 |
40 | hr {
41 | box-sizing: content-box;
42 | height: 0;
43 | overflow: visible;
44 | }
45 |
46 | h1, h2, h3, h4, h5, h6 {
47 | margin-top: 0;
48 | margin-bottom: 0.5rem;
49 | }
50 |
51 | p {
52 | margin-top: 0;
53 | margin-bottom: 1rem;
54 | }
55 |
56 | abbr[title],
57 | abbr[data-original-title] {
58 | text-decoration: underline;
59 | -webkit-text-decoration: underline dotted;
60 | text-decoration: underline dotted;
61 | cursor: help;
62 | border-bottom: 0;
63 | -webkit-text-decoration-skip-ink: none;
64 | text-decoration-skip-ink: none;
65 | }
66 |
67 | address {
68 | margin-bottom: 1rem;
69 | font-style: normal;
70 | line-height: inherit;
71 | }
72 |
73 | ol,
74 | ul,
75 | dl {
76 | margin-top: 0;
77 | margin-bottom: 1rem;
78 | }
79 |
80 | ol ol,
81 | ul ul,
82 | ol ul,
83 | ul ol {
84 | margin-bottom: 0;
85 | }
86 |
87 | dt {
88 | font-weight: 700;
89 | }
90 |
91 | dd {
92 | margin-bottom: .5rem;
93 | margin-left: 0;
94 | }
95 |
96 | blockquote {
97 | margin: 0 0 1rem;
98 | }
99 |
100 | b,
101 | strong {
102 | font-weight: bolder;
103 | }
104 |
105 | small {
106 | font-size: 80%;
107 | }
108 |
109 | sub,
110 | sup {
111 | position: relative;
112 | font-size: 75%;
113 | line-height: 0;
114 | vertical-align: baseline;
115 | }
116 |
117 | sub {
118 | bottom: -.25em;
119 | }
120 |
121 | sup {
122 | top: -.5em;
123 | }
124 |
125 | a {
126 | color: #007bff;
127 | text-decoration: none;
128 | background-color: transparent;
129 | }
130 |
131 | a:hover {
132 | color: #0056b3;
133 | text-decoration: underline;
134 | }
135 |
136 | a:not([href]):not([tabindex]) {
137 | color: inherit;
138 | text-decoration: none;
139 | }
140 |
141 | a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
142 | color: inherit;
143 | text-decoration: none;
144 | }
145 |
146 | a:not([href]):not([tabindex]):focus {
147 | outline: 0;
148 | }
149 |
150 | pre,
151 | code,
152 | kbd,
153 | samp {
154 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
155 | font-size: 1em;
156 | }
157 |
158 | pre {
159 | margin-top: 0;
160 | margin-bottom: 1rem;
161 | overflow: auto;
162 | }
163 |
164 | figure {
165 | margin: 0 0 1rem;
166 | }
167 |
168 | img {
169 | vertical-align: middle;
170 | border-style: none;
171 | }
172 |
173 | svg {
174 | overflow: hidden;
175 | vertical-align: middle;
176 | }
177 |
178 | table {
179 | border-collapse: collapse;
180 | }
181 |
182 | caption {
183 | padding-top: 0.75rem;
184 | padding-bottom: 0.75rem;
185 | color: #6c757d;
186 | text-align: left;
187 | caption-side: bottom;
188 | }
189 |
190 | th {
191 | text-align: inherit;
192 | }
193 |
194 | label {
195 | display: inline-block;
196 | margin-bottom: 0.5rem;
197 | }
198 |
199 | button {
200 | border-radius: 0;
201 | }
202 |
203 | button:focus {
204 | outline: 1px dotted;
205 | outline: 5px auto -webkit-focus-ring-color;
206 | }
207 |
208 | input,
209 | button,
210 | select,
211 | optgroup,
212 | textarea {
213 | margin: 0;
214 | font-family: inherit;
215 | font-size: inherit;
216 | line-height: inherit;
217 | }
218 |
219 | button,
220 | input {
221 | overflow: visible;
222 | }
223 |
224 | button,
225 | select {
226 | text-transform: none;
227 | }
228 |
229 | select {
230 | word-wrap: normal;
231 | }
232 |
233 | button,
234 | [type="button"],
235 | [type="reset"],
236 | [type="submit"] {
237 | -webkit-appearance: button;
238 | }
239 |
240 | button:not(:disabled),
241 | [type="button"]:not(:disabled),
242 | [type="reset"]:not(:disabled),
243 | [type="submit"]:not(:disabled) {
244 | cursor: pointer;
245 | }
246 |
247 | button::-moz-focus-inner,
248 | [type="button"]::-moz-focus-inner,
249 | [type="reset"]::-moz-focus-inner,
250 | [type="submit"]::-moz-focus-inner {
251 | padding: 0;
252 | border-style: none;
253 | }
254 |
255 | input[type="radio"],
256 | input[type="checkbox"] {
257 | box-sizing: border-box;
258 | padding: 0;
259 | }
260 |
261 | input[type="date"],
262 | input[type="time"],
263 | input[type="datetime-local"],
264 | input[type="month"] {
265 | -webkit-appearance: listbox;
266 | }
267 |
268 | textarea {
269 | overflow: auto;
270 | resize: vertical;
271 | }
272 |
273 | fieldset {
274 | min-width: 0;
275 | padding: 0;
276 | margin: 0;
277 | border: 0;
278 | }
279 |
280 | legend {
281 | display: block;
282 | width: 100%;
283 | max-width: 100%;
284 | padding: 0;
285 | margin-bottom: .5rem;
286 | font-size: 1.5rem;
287 | line-height: inherit;
288 | color: inherit;
289 | white-space: normal;
290 | }
291 |
292 | progress {
293 | vertical-align: baseline;
294 | }
295 |
296 | [type="number"]::-webkit-inner-spin-button,
297 | [type="number"]::-webkit-outer-spin-button {
298 | height: auto;
299 | }
300 |
301 | [type="search"] {
302 | outline-offset: -2px;
303 | -webkit-appearance: none;
304 | }
305 |
306 | [type="search"]::-webkit-search-decoration {
307 | -webkit-appearance: none;
308 | }
309 |
310 | ::-webkit-file-upload-button {
311 | font: inherit;
312 | -webkit-appearance: button;
313 | }
314 |
315 | output {
316 | display: inline-block;
317 | }
318 |
319 | summary {
320 | display: list-item;
321 | cursor: pointer;
322 | }
323 |
324 | template {
325 | display: none;
326 | }
327 |
328 | [hidden] {
329 | display: none !important;
330 | }
331 | /*# sourceMappingURL=bootstrap-reboot.css.map */
--------------------------------------------------------------------------------
/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
3 | * Copyright 2011-2019 The Bootstrap Authors
4 | * Copyright 2011-2019 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */
--------------------------------------------------------------------------------
/wwwroot/lib/jquery-ajax-unobtrusive/jquery.unobtrusive-ajax.min.js:
--------------------------------------------------------------------------------
1 | // Unobtrusive Ajax support library for jQuery
2 | // Copyright (c) .NET Foundation. All rights reserved.
3 | // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
4 | // @version v3.2.6
5 | //
6 | // Microsoft grants you the right to use these script files for the sole
7 | // purpose of either: (i) interacting through your browser with the Microsoft
8 | // website or online service, subject to the applicable licensing or use
9 | // terms; or (ii) using the files as included with a Microsoft product subject
10 | // to that product's license terms. Microsoft reserves all other rights to the
11 | // files not expressly granted by Microsoft, whether by implication, estoppel
12 | // or otherwise. Insofar as a script file is dual licensed under GPL,
13 | // Microsoft neither took the code under GPL nor distributes it thereunder but
14 | // under the terms set out in this paragraph. All notices and licenses
15 | // below are for informational purposes only.
16 | !function(t){function a(t,a){for(var e=window,r=(t||"").split(".");e&&r.length;)e=e[r.shift()];return"function"==typeof e?e:(a.push(t),Function.constructor.apply(null,a))}function e(t){return"GET"===t||"POST"===t}function r(t,a){e(a)||t.setRequestHeader("X-HTTP-Method-Override",a)}function n(a,e,r){var n;r.indexOf("application/x-javascript")===-1&&(n=(a.getAttribute("data-ajax-mode")||"").toUpperCase(),t(a.getAttribute("data-ajax-update")).each(function(a,r){switch(n){case"BEFORE":t(r).prepend(e);break;case"AFTER":t(r).append(e);break;case"REPLACE-WITH":t(r).replaceWith(e);break;default:t(r).html(e)}}))}function i(i,u){var o,c,d,s;if(o=i.getAttribute("data-ajax-confirm"),!o||window.confirm(o)){c=t(i.getAttribute("data-ajax-loading")),s=parseInt(i.getAttribute("data-ajax-loading-duration"),10)||0,t.extend(u,{type:i.getAttribute("data-ajax-method")||void 0,url:i.getAttribute("data-ajax-url")||void 0,cache:"true"===(i.getAttribute("data-ajax-cache")||"").toLowerCase(),beforeSend:function(t){var e;return r(t,d),e=a(i.getAttribute("data-ajax-begin"),["xhr"]).apply(i,arguments),e!==!1&&c.show(s),e},complete:function(){c.hide(s),a(i.getAttribute("data-ajax-complete"),["xhr","status"]).apply(i,arguments)},success:function(t,e,r){n(i,t,r.getResponseHeader("Content-Type")||"text/html"),a(i.getAttribute("data-ajax-success"),["data","status","xhr"]).apply(i,arguments)},error:function(){a(i.getAttribute("data-ajax-failure"),["xhr","status","error"]).apply(i,arguments)}}),u.data.push({name:"X-Requested-With",value:"XMLHttpRequest"}),d=u.type.toUpperCase(),e(d)||(u.type="POST",u.data.push({name:"X-HTTP-Method-Override",value:d}));var p=t(i);if(p.is("form")&&"multipart/form-data"==p.attr("enctype")){var f=new FormData;t.each(u.data,function(t,a){f.append(a.name,a.value)}),t("input[type=file]",p).each(function(){var a=this;t.each(a.files,function(t,e){f.append(a.name,e)})}),t.extend(u,{processData:!1,contentType:!1,data:f})}t.ajax(u)}}function u(a){var e=t(a).data(d);return!e||!e.validate||e.validate()}var o="unobtrusiveAjaxClick",c="unobtrusiveAjaxClickTarget",d="unobtrusiveValidation";t(document).on("click","a[data-ajax=true]",function(t){t.preventDefault(),i(this,{url:this.href,type:"GET",data:[]})}),t(document).on("click","form[data-ajax=true] input[type=image]",function(a){var e=a.target.name,r=t(a.target),n=t(r.parents("form")[0]),i=r.offset();n.data(o,[{name:e+".x",value:Math.round(a.pageX-i.left)},{name:e+".y",value:Math.round(a.pageY-i.top)}]),setTimeout(function(){n.removeData(o)},0)}),t(document).on("click","form[data-ajax=true] :submit",function(a){var e=a.currentTarget.name,r=t(a.target),n=t(r.parents("form")[0]);n.data(o,e?[{name:e,value:a.currentTarget.value}]:[]),n.data(c,r),setTimeout(function(){n.removeData(o),n.removeData(c)},0)}),t(document).on("submit","form[data-ajax=true]",function(a){var e=t(this).data(o)||[],r=t(this).data(c),n=r&&(r.hasClass("cancel")||void 0!==r.attr("formnovalidate"));a.preventDefault(),(n||u(this))&&i(this,{url:this.action,type:this.method||"GET",data:e.concat(t(this).serializeArray())})})}(jQuery);
--------------------------------------------------------------------------------
/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) .NET Foundation. All rights reserved.
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 | these files except in compliance with the License. You may obtain a copy of the
5 | License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software distributed
10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the
12 | specific language governing permissions and limitations under the License.
13 |
--------------------------------------------------------------------------------
/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js:
--------------------------------------------------------------------------------
1 | // Unobtrusive validation support library for jQuery and jQuery Validate
2 | // Copyright (c) .NET Foundation. All rights reserved.
3 | // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
4 | // @version v3.2.11
5 | !function(a){"function"==typeof define&&define.amd?define("jquery.validate.unobtrusive",["jquery-validation"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery-validation")):jQuery.validator.unobtrusive=a(jQuery)}(function(a){function e(a,e,n){a.rules[e]=n,a.message&&(a.messages[e]=a.message)}function n(a){return a.replace(/^\s+|\s+$/g,"").split(/\s*,\s*/g)}function t(a){return a.replace(/([!"#$%&'()*+,.\/:;<=>?@\[\\\]^`{|}~])/g,"\\$1")}function r(a){return a.substr(0,a.lastIndexOf(".")+1)}function i(a,e){return 0===a.indexOf("*.")&&(a=a.replace("*.",e)),a}function o(e,n){var r=a(this).find("[data-valmsg-for='"+t(n[0].name)+"']"),i=r.attr("data-valmsg-replace"),o=i?a.parseJSON(i)!==!1:null;r.removeClass("field-validation-valid").addClass("field-validation-error"),e.data("unobtrusiveContainer",r),o?(r.empty(),e.removeClass("input-validation-error").appendTo(r)):e.hide()}function d(e,n){var t=a(this).find("[data-valmsg-summary=true]"),r=t.find("ul");r&&r.length&&n.errorList.length&&(r.empty(),t.addClass("validation-summary-errors").removeClass("validation-summary-valid"),a.each(n.errorList,function(){a("").html(this.message).appendTo(r)}))}function s(e){var n=e.data("unobtrusiveContainer");if(n){var t=n.attr("data-valmsg-replace"),r=t?a.parseJSON(t):null;n.addClass("field-validation-valid").removeClass("field-validation-error"),e.removeData("unobtrusiveContainer"),r&&n.empty()}}function l(e){var n=a(this),t="__jquery_unobtrusive_validation_form_reset";if(!n.data(t)){n.data(t,!0);try{n.data("validator").resetForm()}finally{n.removeData(t)}n.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors"),n.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer")}}function u(e){var n=a(e),t=n.data(v),r=a.proxy(l,e),i=f.unobtrusive.options||{},u=function(n,t){var r=i[n];r&&a.isFunction(r)&&r.apply(e,t)};return t||(t={options:{errorClass:i.errorClass||"input-validation-error",errorElement:i.errorElement||"span",errorPlacement:function(){o.apply(e,arguments),u("errorPlacement",arguments)},invalidHandler:function(){d.apply(e,arguments),u("invalidHandler",arguments)},messages:{},rules:{},success:function(){s.apply(e,arguments),u("success",arguments)}},attachValidation:function(){n.off("reset."+v,r).on("reset."+v,r).validate(this.options)},validate:function(){return n.validate(),n.valid()}},n.data(v,t)),t}var m,f=a.validator,v="unobtrusiveValidation";return f.unobtrusive={adapters:[],parseElement:function(e,n){var t,r,i,o=a(e),d=o.parents("form")[0];d&&(t=u(d),t.options.rules[e.name]=r={},t.options.messages[e.name]=i={},a.each(this.adapters,function(){var n="data-val-"+this.name,t=o.attr(n),s={};void 0!==t&&(n+="-",a.each(this.params,function(){s[this]=o.attr(n+this)}),this.adapt({element:e,form:d,message:t,params:s,rules:r,messages:i}))}),a.extend(r,{__dummy__:!0}),n||t.attachValidation())},parse:function(e){var n=a(e),t=n.parents().addBack().filter("form").add(n.find("form")).has("[data-val=true]");n.find("[data-val=true]").each(function(){f.unobtrusive.parseElement(this,!0)}),t.each(function(){var a=u(this);a&&a.attachValidation()})}},m=f.unobtrusive.adapters,m.add=function(a,e,n){return n||(n=e,e=[]),this.push({name:a,params:e,adapt:n}),this},m.addBool=function(a,n){return this.add(a,function(t){e(t,n||a,!0)})},m.addMinMax=function(a,n,t,r,i,o){return this.add(a,[i||"min",o||"max"],function(a){var i=a.params.min,o=a.params.max;i&&o?e(a,r,[i,o]):i?e(a,n,i):o&&e(a,t,o)})},m.addSingleVal=function(a,n,t){return this.add(a,[n||"val"],function(r){e(r,t||a,r.params[n])})},f.addMethod("__dummy__",function(a,e,n){return!0}),f.addMethod("regex",function(a,e,n){var t;return!!this.optional(e)||(t=new RegExp(n).exec(a),t&&0===t.index&&t[0].length===a.length)}),f.addMethod("nonalphamin",function(a,e,n){var t;return n&&(t=a.match(/\W/g),t=t&&t.length>=n),t}),f.methods.extension?(m.addSingleVal("accept","mimtype"),m.addSingleVal("extension","extension")):m.addSingleVal("extension","extension","accept"),m.addSingleVal("regex","pattern"),m.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"),m.addMinMax("length","minlength","maxlength","rangelength").addMinMax("range","min","max","range"),m.addMinMax("minlength","minlength").addMinMax("maxlength","minlength","maxlength"),m.add("equalto",["other"],function(n){var o=r(n.element.name),d=n.params.other,s=i(d,o),l=a(n.form).find(":input").filter("[name='"+t(s)+"']")[0];e(n,"equalTo",l)}),m.add("required",function(a){"INPUT"===a.element.tagName.toUpperCase()&&"CHECKBOX"===a.element.type.toUpperCase()||e(a,"required",!0)}),m.add("remote",["url","type","additionalfields"],function(o){var d={url:o.params.url,type:o.params.type||"GET",data:{}},s=r(o.element.name);a.each(n(o.params.additionalfields||o.element.name),function(e,n){var r=i(n,s);d.data[r]=function(){var e=a(o.form).find(":input").filter("[name='"+t(r)+"']");return e.is(":checkbox")?e.filter(":checked").val()||e.filter(":hidden").val()||"":e.is(":radio")?e.filter(":checked").val()||"":e.val()}}),e(o,"remote",d)}),m.add("password",["min","nonalphamin","regex"],function(a){a.params.min&&e(a,"minlength",a.params.min),a.params.nonalphamin&&e(a,"nonalphamin",a.params.nonalphamin),a.params.regex&&e(a,"regex",a.params.regex)}),m.add("fileextensions",["extensions"],function(a){e(a,"extension",a.params.extensions)}),a(function(){f.unobtrusive.parse(document)}),f.unobtrusive});
--------------------------------------------------------------------------------
/wwwroot/lib/jquery-validation/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | =====================
3 |
4 | Copyright Jörn Zaefferer
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/wwwroot/lib/jquery/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright JS Foundation and other contributors, https://js.foundation/
2 |
3 | This software consists of voluntary contributions made by many
4 | individuals. For exact contribution history, see the revision history
5 | available at https://github.com/jquery/jquery
6 |
7 | The following license applies to all parts of this software except as
8 | documented below:
9 |
10 | ====
11 |
12 | Permission is hereby granted, free of charge, to any person obtaining
13 | a copy of this software and associated documentation files (the
14 | "Software"), to deal in the Software without restriction, including
15 | without limitation the rights to use, copy, modify, merge, publish,
16 | distribute, sublicense, and/or sell copies of the Software, and to
17 | permit persons to whom the Software is furnished to do so, subject to
18 | the following conditions:
19 |
20 | The above copyright notice and this permission notice shall be
21 | included in all copies or substantial portions of the Software.
22 |
23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 |
31 | ====
32 |
33 | All files located in the node_modules and external directories are
34 | externally maintained libraries used by this software which have their
35 | own licenses; we recommend you read them, as their terms may differ from
36 | the terms above.
37 |
--------------------------------------------------------------------------------
/wwwroot/lib/jstree/themes/default-dark/32px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/wwwroot/lib/jstree/themes/default-dark/32px.png
--------------------------------------------------------------------------------
/wwwroot/lib/jstree/themes/default-dark/40px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/wwwroot/lib/jstree/themes/default-dark/40px.png
--------------------------------------------------------------------------------
/wwwroot/lib/jstree/themes/default-dark/throbber.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/barnstee/UA-CloudPublisher/43c8b8666cbb89cddd6a8e6b53bd10fb3b62d74a/wwwroot/lib/jstree/themes/default-dark/throbber.gif
--------------------------------------------------------------------------------
/wwwroot/styles.css:
--------------------------------------------------------------------------------
1 |
2 | .uic-tree .uic-tree { margin-left:1.25rem; }
3 | .uic-tree--hidden { display:none; }
4 | .uic-tree__icon { float: left; }
5 | .uic-tree__title { margin-left:1.25rem; }
6 | .uic-tree--cursor-pointer { cursor:pointer; }
--------------------------------------------------------------------------------