├── .babelrc
├── .env
├── .eslintrc.json
├── .gitignore
├── README.md
├── index.html
├── package.json
├── public
├── app.css
└── data.json
├── sources
├── addview.js
├── app.js
├── appguard.js
├── dashboard.js
├── datatable.js
├── locales
│ ├── en.js
│ └── es.js
├── modules
│ ├── clients.js
│ └── customWidgetA.js
├── plugins-locale.js
├── plugins-status.js
├── plugins-theme.js
├── plugins-unload.js
├── promises.js
├── redirects.js
├── refresh.js
├── routers-url.js
├── routes.js
├── screensize.js
├── tabbar.js
├── urlparams.js
├── viewapp.js
├── viewguard.js
├── viewresolve.js
├── views
│ ├── 404.js
│ ├── about.js
│ ├── area
│ │ ├── left
│ │ │ └── form.js
│ │ └── list.js
│ ├── dummy.js
│ ├── index.js
│ ├── main.js
│ └── top.js
├── webixview.js
└── windows.js
├── vite.config.js
└── yarn.lock
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@babel/preset-env",
5 | {
6 | "targets": {
7 | "browsers": ["last 2 versions", "IE >= 11"]
8 | },
9 | "modules": false,
10 | "loose": true
11 | }
12 | ]
13 | ],
14 | "plugins": [
15 | "@babel/plugin-transform-runtime",
16 | "@babel/plugin-proposal-object-rest-spread",
17 | "@babel/plugin-syntax-dynamic-import"
18 | ]
19 | }
20 |
--------------------------------------------------------------------------------
/.env:
--------------------------------------------------------------------------------
1 | APPNAME=Demo
2 | VERSION=1.0.0
3 | BUILD_AS_MODULE=false
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es6": true
5 | },
6 | "globals":{
7 | "webix":true,
8 | "scheduler":true,
9 | "APPNAME":true, "VERSION":true, "PRODUCTION":true, "BUILD_AS_MODULE":true
10 | },
11 | "extends": "eslint:recommended",
12 | "parserOptions": {
13 | "sourceType": "module",
14 | "ecmaVersion": 2020
15 | },
16 | "rules": {
17 | "indent": [
18 | "error",
19 | "tab",
20 | {"SwitchCase":1}
21 | ],
22 | "quotes": [
23 | "error",
24 | "double"
25 | ],
26 | "semi": [
27 | "error",
28 | "always"
29 | ]
30 | }
31 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | codebase/
3 | node_modules/
4 | *.log
5 | dist/
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Webix Jet Demos
2 | ================
3 |
4 | Repo contains demos for Jet 3.x
5 |
6 | ### How to start
7 |
8 | ```
9 | npm install
10 | npm start
11 | ```
12 |
13 | open ```http://localhost:8080```
14 |
15 |
16 | ### Webix UI
17 | http://webix.com
18 |
19 |
20 | ### Webix Jet Docs
21 | https://www.gitbook.com/book/webix/webix-jet
22 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "webix-jet-demos",
3 | "version": "1.6.0",
4 | "description": "Webix Jet Demos",
5 | "scripts": {
6 | "test": "echo \"Error: no test specified\" && exit 1",
7 | "lint": "eslint sources/",
8 | "build": "vite build",
9 | "start": "vite"
10 | },
11 | "keywords": [
12 | "webix",
13 | "jet"
14 | ],
15 | "license": "MIT",
16 | "devDependencies": {
17 | "vite": "^4.3.8",
18 | "eslint": "^8.41.0"
19 | },
20 | "dependencies": {
21 | "webix-jet": "^3.0.0"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/public/app.css:
--------------------------------------------------------------------------------
1 | .webixappstart{
2 | opacity:0;
3 | }
4 | .webixapp{
5 | transition: opacity 500ms;
6 | opacity: 1;
7 | }
8 |
9 | /*data loading status*/
10 | .status_good, .status_error, .status_saving{
11 | text-align: center;
12 | margin-left:-12px;
13 | color: #666;
14 | }
15 | .status_error{
16 | color:red;
17 | }
18 |
19 | /*login form*/
20 | .invalid_login .webix_header > div{
21 | background: #FC3636;
22 | transition: background 1s;
23 | }
24 | .invalid_login{
25 | -webkit-animation: formshake .5s linear;
26 | }
27 |
28 | @-webkit-keyframes formshake {
29 | 8%, 41% {
30 | -webkit-transform: translateX(-10px);
31 | }
32 | 25%, 58% {
33 | -webkit-transform: translateX(10px);
34 | }
35 | 75% {
36 | -webkit-transform: translateX(-5px);
37 | }
38 | 92% {
39 | -webkit-transform: translateX(5px);
40 | }
41 | 0%, 100% {
42 | -webkit-transform: translateX(0);
43 | }
44 | }
45 | .theme-material-shady .webix_layout_space{
46 | background: #BFB8D1;
47 | }
48 |
49 |
--------------------------------------------------------------------------------
/public/data.json:
--------------------------------------------------------------------------------
1 | [
2 | { "id":1, "title":"The Shawshank Redemption", "year":1994, "votes":678790, "rating":9.2, "rank":1},
3 | { "id":2, "title":"The Godfather", "year":1972, "votes":511495, "rating":9.2, "rank":2}
4 | ]
--------------------------------------------------------------------------------
/sources/addview.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView} from "webix-jet";
2 | let number = 3;
3 |
4 | class AdminView1 extends JetView {
5 | config(){
6 | return {
7 | height:50,
8 | css:"silver",
9 | template:"Admin view 1
Dashboard"
10 | };
11 | }
12 | }
13 |
14 | class AdminView2 extends JetView {
15 | config(){
16 | return {
17 | height:50,
18 | css:"silver",
19 | template:"Admin view 2
Meta info"
20 | };
21 | }
22 | }
23 |
24 | class AdminView3 extends JetView {
25 | config(){
26 | return {
27 | height:50,
28 | css:"silver",
29 | template: "Admin view #number#
The dynamic one",
30 | on:{
31 | onBeforeRender:function(){
32 | this.data.number = this.data.number || (number++);
33 | }
34 | }
35 | };
36 | }
37 | }
38 |
39 | class TopView extends JetView {
40 | config(){
41 | return {
42 | type: "space",
43 | rows: [
44 | /* Layout */
45 | { view:"button", inputWidth:200, value:"Add view below", type:"form", click:()=>{
46 | this.$$("main").addView(AdminView3);
47 | }},
48 | { id:"main", cols:[
49 | AdminView1,
50 | AdminView2
51 | ]},
52 |
53 |
54 |
55 | { view:"button", value:"Add view below", type:"form", inputWidth:200, click:()=>{
56 | this.$$("main2").addView({ view:"accordionitem", header: "Admin View 3", body: AdminView3});
57 | }},
58 | { id:"main2", view:"accordion", cols:[
59 | { header:"Admin View 1", body:AdminView1},
60 | { header:"Admin View 2", body:AdminView2}
61 | ]},
62 |
63 |
64 | { view:"button", inputWidth:200, type:"form", value:"Add view below", click:()=>{
65 | this.$$("main5").addView( AdminView3 );
66 | }},
67 | { id:"main5", view:"carousel", cols:[
68 | AdminView1,
69 | AdminView2
70 | ]},
71 | ]
72 | };
73 | }
74 | }
75 |
76 |
77 | const app = new JetApp({
78 | id: "windows",
79 | start: "/top",
80 | views:{
81 | top: TopView
82 | }
83 | });
84 |
85 |
86 | export default app;
--------------------------------------------------------------------------------
/sources/app.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView, EmptyRouter } from "webix-jet";
2 |
3 | import windows from "./windows";
4 | import appguard from "./appguard";
5 | import viewguard from "./viewguard";
6 | import pluginsunload from "./plugins-unload";
7 | import redirects from "./redirects";
8 | import viewresolve from "./viewresolve";
9 | import promises from "./promises";
10 | import routes from "./routes";
11 | import pluginslocale from "./plugins-locale";
12 | import pluginstheme from "./plugins-theme";
13 | import pluginsstatus from "./plugins-status";
14 | import routersurl from "./routers-url";
15 | import urlparams from "./urlparams";
16 | import screensize from "./screensize";
17 | import viewapp from "./viewapp";
18 | import tabbar from "./tabbar";
19 | import dashboard from "./dashboard";
20 | import addview from "./addview";
21 | import datatable from "./datatable";
22 | import webixview from "./webixview";
23 | import refresh from "./refresh";
24 |
25 |
26 | const samples = new webix.DataCollection({ data:[
27 | { group:1, value:"Windows", app: windows, id:"windows" },
28 | { group:1, value:"App level Guard", app: appguard, id:"appguard" },
29 | { group:1, value:"View level Guard", app: viewguard, id:"viewguard" },
30 | { group:1, value:"Unload Guard", app: pluginsunload, id:"plugins-unload" },
31 | { group:1, value:"Redirects", app: redirects, id:"redirects" },
32 | { group:1, value:"Resolving Files", app: viewresolve, id:"viewresolve" },
33 | { group:1, value:"Promises in views", app: promises, id:"promises" },
34 | { group:1, value:"Url Routes", app: routes, id:"routes" },
35 |
36 | { group:2, value:"Locales", app: pluginslocale, id:"plugins-locale" },
37 | { group:2, value:"Themes", app: pluginstheme, id:"plugins-theme" },
38 | { group:2, value:"Status", app: pluginsstatus, id:"plugins-status" },
39 |
40 | { group:3, value:"URL router", app: routersurl, id:"routers-url" },
41 | { group:3, value:"URL parameters", app: urlparams, id:"urlparams" },
42 |
43 | { group:4, value:"Adapting to Screen Size", app: screensize, id:"screensize" },
44 | { group:4, value:"Using App as Jet View", app: viewapp, id:"viewapp" },
45 | { group:4, value:"Using App as Webix View", app: webixview, id:"webixview" },
46 | { group:4, value:"Using Tabbar", app: tabbar, id:"tabbar" },
47 | { group:4, value:"Using Dashboard", app: dashboard, id:"dashboard" },
48 | { group:4, value:"Using Datatable with Subview",app: datatable, id:"datatable" },
49 | { group:4, value:"Dynamic views (addView)", app: addview, id:"addview" },
50 | { group:4, value:"Refresh view / app", app: refresh, id:"refresh" },
51 | ]});
52 |
53 |
54 | function showSample(id){
55 | window.open(id+"/", "_blank");
56 | }
57 |
58 | class SamplesNavigation extends JetView {
59 | config(){
60 | return {
61 | view:"scrollview", scroll:"x", body:{
62 | css:"webix_dark", margin:5, cols:[
63 | { header:"Functionality", body: {
64 | width: 320, view:"list", localId: "list1", click : showSample
65 | }},
66 | { rows:[
67 | { header:"Plugins", body: {
68 | width: 320, view:"list", localId: "list2", click : showSample
69 | }},
70 | { header:"Routers", body: {
71 | width: 320, view:"list", localId: "list3", click : showSample
72 | }}
73 | ]},
74 | { header:"Recipes", body: {
75 | width: 320, view:"list", localId: "list4", click : showSample
76 | }}
77 | ]
78 | }
79 | };
80 | }
81 | init(){
82 | this.$$("list1").sync(samples, function(){ this.filter(a => a.group === 1); });
83 | this.$$("list2").sync(samples, function(){ this.filter(a => a.group === 2); });
84 | this.$$("list3").sync(samples, function(){ this.filter(a => a.group === 3); });
85 | this.$$("list4").sync(samples, function(){ this.filter(a => a.group === 4); });
86 | }
87 | }
88 |
89 | const samplesApp = new JetApp({
90 | id: "jetsamples",
91 | start: "/top",
92 | router: EmptyRouter,
93 | views:{
94 | top: SamplesNavigation
95 | }
96 | });
97 |
98 | webix.ready(() => {
99 | const id = document.location.pathname.split("/")[1];
100 | const item = samples.getItem(id);
101 | if (item){
102 | const app = typeof item.app === "function" ? item.app() : item.app;
103 | document.title = item.value;
104 | app.render();
105 | } else {
106 | samplesApp.render();
107 | }
108 | });
--------------------------------------------------------------------------------
/sources/appguard.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView} from "webix-jet";
2 |
3 | const allowed1 = {
4 | template:"Allowed #1"
5 | };
6 | const allowed2 = {
7 | template:"Allowed #2"
8 | };
9 | const blocked = {
10 | template:"Blocked"
11 | };
12 |
13 | class TopView extends JetView {
14 | config(){
15 | return {
16 | type:"space", rows:[
17 | { type:"header", template:"Using windows"},
18 | {
19 | type:"wide",cols:[
20 | { view:"form", width: 200, rows:[
21 | { view:"button", value:"Allowed page 1", click:() =>
22 | this.show("allowed1") },
23 | { view:"button", value:"Allowed page 2", click:() =>
24 | this.show("allowed2") },
25 | { view:"button", value:"Blocked page", click:() =>
26 | this.show("blocked") },
27 | {}
28 | ]},
29 | { $subview: true }
30 | ]
31 | }
32 | ]
33 | };
34 | }
35 | }
36 |
37 |
38 | const app = new JetApp({
39 | id: "windows",
40 | start: "/top/blocked",
41 | views:{
42 | top: TopView,
43 | allowed1: allowed1,
44 | allowed2: allowed2,
45 | blocked: blocked
46 | }
47 | });
48 |
49 | app.attachEvent("app:guard", function(url, view, nav){
50 | if (url.indexOf("/blocked") !== -1){
51 | nav.redirect = "/top/allowed1";
52 | }
53 | });
54 |
55 | export default app;
--------------------------------------------------------------------------------
/sources/dashboard.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView} from "webix-jet";
2 |
3 | class AdminView1 extends JetView {
4 | config(){
5 | return {
6 | template:"Admin view 1
Dashboard"
7 | };
8 | }
9 | }
10 |
11 | class AdminView2 extends JetView {
12 | config(){
13 | return {
14 | template:"Admin view 2
Meta info"
15 | };
16 | }
17 | }
18 |
19 | class AdminView3 extends JetView {
20 | config(){
21 | return {
22 | template:"Admin view 3
Settings "
23 | };
24 | }
25 | }
26 |
27 |
28 | class TopView extends JetView {
29 | config(){
30 | return {
31 | type: "space",
32 | cols: [
33 | { rows:[
34 | { view:"list", id:"list",
35 | width:200,
36 | drag:"source",
37 | template:"#value# - (#dx#x#dy#)",
38 | data:[
39 | { id:"1", value:"AdminView1", dx:1, dy:1 },
40 | { id:"2", value:"AdminView2", dx:1, dy:2 },
41 | { id:"3", value:"AdminView3", dx:2, dy:1 }
42 | ]
43 | },
44 | { view:"button", value:"Reset", type:"form", click:() => {
45 | this.$$("grid").clearAll();
46 | }}
47 | ]},
48 | {
49 | view:"scrollview", body:{
50 | view:"dashboard", id:"grid",
51 | gridColumns:4, gridRows:4,
52 | cellHeight: 200,
53 | factory:(obj) => {
54 | obj.view = "panel";
55 | obj.resize = true;
56 | obj.body = this[webix.$$("list").getItem(obj.name).value];
57 | return obj;
58 | },
59 | on:{
60 | onChange:function(){
61 | var state = this.serialize();
62 | webix.storage.local.put("demo-dashboard-state", state);
63 | }
64 | }
65 | }
66 | }
67 | ]
68 | };
69 | }
70 | init(){
71 | this.AdminView1 = AdminView1;
72 | this.AdminView2 = AdminView2;
73 | this.AdminView3 = AdminView3;
74 |
75 | var state = webix.storage.local.get("demo-dashboard-state");
76 | if (state)
77 | this.$$("grid").restore(state);
78 | }
79 | }
80 |
81 |
82 | const app = new JetApp({
83 | id: "windows",
84 | start: "/top",
85 | views:{
86 | top: TopView
87 | }
88 | });
89 |
90 |
91 | export default app;
--------------------------------------------------------------------------------
/sources/datatable.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView} from "webix-jet";
2 |
3 | class SubLayout extends JetView {
4 | constructor(app, name, data){
5 | super(app, name);
6 | this.customData = data;
7 | }
8 | config(){
9 | return {
10 | rows:[
11 | { type:"header", template: () => this.customData.title },
12 | SubTemplate
13 | ]
14 | };
15 | }
16 | }
17 |
18 | class SubTemplate extends JetView {
19 | config(){
20 | return {
21 | template:"Subview", height: 30
22 | };
23 | }
24 | }
25 |
26 |
27 | class TopView extends JetView {
28 | config(){
29 | return {
30 | view:"datatable",
31 | subview: (obj, target) => {
32 | //will work only for sync JetViews
33 | var sub = new SubLayout(this.app, "", {
34 | title: obj.title
35 | });
36 | this.ui(sub, { container: target });
37 | return sub.getRoot();
38 | },
39 | columns:[
40 | { id:"title", header:"Title", sort:"string",
41 | template:"{common.subrow()} #title#", width:220 },
42 | { id:"year", header:"Year", width:100, sort:"int"},
43 | { id:"votes", header:"Votes", width:100, sort:"int"}
44 | ],
45 | data:[
46 | { id:1, title:"The Shawshank Redemption", year:1994, votes:678790 },
47 | { id:2, title:"The Godfather", year:1972, votes:511495 },
48 | { id:3, title:"The Godfather: Part II", year:1974, votes:319352 }
49 | ]
50 | };
51 | }
52 | }
53 |
54 |
55 | const app = new JetApp({
56 | id: "windows",
57 | start: "/top",
58 | views:{
59 | top: TopView
60 | }
61 | });
62 |
63 |
64 | export default app;
--------------------------------------------------------------------------------
/sources/locales/en.js:
--------------------------------------------------------------------------------
1 | export default {
2 | "Settings" : "Settings",
3 | "Language" : "Language",
4 | "Theme" : "Theme"
5 | };
--------------------------------------------------------------------------------
/sources/locales/es.js:
--------------------------------------------------------------------------------
1 | export default {
2 | "Settings" : "Ajustes",
3 | "Language" : "Idioma",
4 | "Theme" : "Tema"
5 | };
--------------------------------------------------------------------------------
/sources/modules/clients.js:
--------------------------------------------------------------------------------
1 | import {JetView} from "webix-jet";
2 |
3 | export default class TopView extends JetView {
4 | config(){
5 |
6 | return {
7 | type:"space", rows:[
8 | { type:"header", template:"Clients" },
9 | { template:"Nothing here yet." }
10 | ]
11 | };
12 |
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/sources/modules/customWidgetA.js:
--------------------------------------------------------------------------------
1 | webix.protoUI({
2 | name:"customWidgetA",
3 | defaults:{
4 | template:"Not so complex, actually..."
5 | }
6 | }, webix.ui.template);
--------------------------------------------------------------------------------
/sources/plugins-locale.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView, plugins} from "webix-jet";
2 |
3 | // locales, optional
4 | import en from "./locales/en";
5 | import es from "./locales/es";
6 |
7 | const locales = { en, es };
8 | const path = name => Promise.resolve(locales[name]);
9 |
10 | class SettingsView extends JetView {
11 | config(){
12 | const _ = this.app.getService("locale")._;
13 | const lang = this.app.getService("locale").getLang();
14 |
15 |
16 | return {
17 | type:"space", rows:[
18 | { template:_("Settings"), type:"header" },
19 | { name:"lang", optionWidth: 120, view:"segmented", label:_("Language"), options:[
20 | {id:"en", value:"English"},
21 | {id:"es", value:"Spanish"}
22 | ], click:() => this.toggleLanguage(), value:lang },
23 | {}
24 | ]
25 | };
26 | }
27 | toggleLanguage(){
28 | const langs = this.app.getService("locale");
29 | const value = this.getRoot().queryView({ name:"lang" }).getValue();
30 | langs.setLang(value);
31 | }
32 | }
33 |
34 |
35 | const app = new JetApp({
36 | id: "plugins-themes",
37 | start: "/start",
38 | views:{
39 | start: SettingsView
40 | }
41 | });
42 | app.use(plugins.Locale, { path });
43 |
44 | export default app;
--------------------------------------------------------------------------------
/sources/plugins-status.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView, plugins} from "webix-jet";
2 |
3 | class StartView extends JetView {
4 | config(){
5 | return {
6 | type:"space", rows:[
7 | { template:"Some Data", type:"header" },
8 | { view:"datatable", id:"table", autoConfig:true, editable:true },
9 | { view:"template", id:"app:status", height: 30 }
10 | ]
11 | };
12 | }
13 | init(){
14 | this.use(plugins.Status, {
15 | target: "app:status",
16 | ajax:true,
17 | expire: 5000
18 | });
19 |
20 | const data = new webix.DataCollection({
21 | url:"/data.json",
22 | save:"//docs.webix.com/wrongurl"
23 | });
24 | webix.$$("table").parse(data);
25 | }
26 | }
27 |
28 |
29 | const app = new JetApp({
30 | id: "plugins-themes",
31 | start: "/start",
32 | views:{
33 | start: StartView
34 | }
35 | });
36 |
37 | app.attachEvent("app:error:server", function(){
38 | webix.alert({
39 | title:"Data Saving Error",
40 | width: 480,
41 | text:"This sample has not server side,
so any attempt to save data will result in an error."
42 | });
43 | });
44 |
45 | export default app;
46 |
--------------------------------------------------------------------------------
/sources/plugins-theme.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView, plugins} from "webix-jet";
2 |
3 | class SettingsView extends JetView {
4 | config(){
5 | const theme = this.app.getService("theme").getTheme();
6 |
7 | return {
8 | type:"space", rows:[
9 | { template:"Settings", type:"header" },
10 | { name:"skin", optionWidth: 120, view:"segmented", label:"Theme", options:[
11 | {id:"material-default", value:"Default"},
12 | {id:"material-shady", value:"Shady"},
13 | {id:"mini-default", value:"Compact"},
14 | {id:"flat-default", value:"Flat"}
15 | ], click:() => this.toggleTheme(), value:theme },
16 | {}
17 | ]
18 | };
19 | }
20 | toggleTheme(){
21 | const themes = this.app.getService("theme");
22 | const value = this.getRoot().queryView({ name:"skin" }).getValue();
23 | themes.setTheme(value);
24 | }
25 | }
26 |
27 |
28 |
29 | const app = new JetApp({
30 | id: "plugins-themes",
31 | start: "/start",
32 | views:{
33 | start: SettingsView
34 | }
35 | });
36 |
37 | export default function(){
38 | //affect global styles, must be called only if you really plan to init the app
39 | debugger;
40 | app.use(plugins.Theme);
41 | return app;
42 | }
--------------------------------------------------------------------------------
/sources/plugins-unload.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView, plugins} from "webix-jet";
2 |
3 | class FormView extends JetView{
4 | config(){
5 | return {
6 | view:"form", elements:[
7 | { view:"text", name:"email", required:true, label:"Email" },
8 | { view:"button", value:"save", click:() => this.show("/Details") }
9 | ]
10 | };
11 | }
12 |
13 | init(){
14 | this.use(plugins.UnloadGuard, () => {
15 | if (this.getRoot().validate())
16 | return true;
17 | return new Promise((res, rej) => {
18 | webix.confirm({
19 | text: "Are you sure ?",
20 | callback: a => a ? res() : rej()
21 | });
22 | });
23 | });
24 | }
25 | }
26 |
27 |
28 | const DetailsView = () => ({ template:"Data saved" });
29 |
30 |
31 | var app = new JetApp({
32 | start:"/Form",
33 | views:{
34 | "Form":FormView,
35 | "Details":DetailsView
36 | }
37 | });
38 |
39 | export default app;
--------------------------------------------------------------------------------
/sources/promises.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView} from "webix-jet";
2 |
3 | const direct = {
4 | template:"Allowed #1"
5 | };
6 | const promised = () => {
7 | var t = webix.promise.defer();
8 | setTimeout(function(){
9 | t.resolve({ template:"Resolved by promise" });
10 | }, 1000);
11 | return t;
12 | };
13 |
14 | class TopView extends JetView {
15 | config(){
16 | var res = webix.promise.defer();
17 | var ui = {
18 | type:"space", rows:[
19 | { type:"header", template:"Using windows"},
20 | {
21 | type:"wide",cols:[
22 | { view:"form", width: 200, rows:[
23 | { view:"button", value:"Direct loading", click:() =>
24 | this.show("direct") },
25 | { view:"button", value:"Promised", click:() =>
26 | this.show("promised") },
27 | {}
28 | ]},
29 | { $subview: true }
30 | ]
31 | }
32 | ]
33 | };
34 |
35 |
36 | setTimeout(function(){
37 | res.resolve(ui);
38 | }, 1000);
39 | return res;
40 | }
41 | }
42 |
43 |
44 |
45 | const app = new JetApp({
46 | id: "windows",
47 | start: "/top/direct",
48 | views:{
49 | top: TopView,
50 | promised: promised,
51 | direct: direct
52 | }
53 | });
54 |
55 | export default app;
--------------------------------------------------------------------------------
/sources/redirects.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView} from "webix-jet";
2 |
3 | class Page1 extends JetView {
4 | config(){
5 | return {
6 | rows:[
7 | { type:"header", template:"page #1" },
8 | { $subview:true }
9 | ]
10 | };
11 | }
12 | ready(){
13 | this.show("page2");
14 | }
15 | }
16 |
17 | class Page2 extends JetView {
18 | config(){
19 | return {
20 | type:"space", rows:[
21 | { type:"header", template:"page #2" },
22 | { $subview:true }
23 | ]
24 | };
25 | }
26 | ready(){
27 | this.show("page3");
28 | }
29 | }
30 |
31 | const Page3 = {
32 | template:"page #3, load through .ready handler"
33 | };
34 |
35 | const Page4 = {
36 | template:"Dummy page"
37 | };
38 |
39 | class TopView extends JetView {
40 | config(){
41 | return {
42 | type:"space", rows:[
43 | { type:"header", template:"Redirect inner content from .ready handler"},
44 | {
45 | type:"wide",cols:[
46 | { view:"form", width: 200, rows:[
47 | { view:"button", value:"Page 1", click:() =>
48 | this.show("page1") },
49 | { view:"button", value:"Page 4", click:() =>
50 | this.show("page4") },
51 | {}
52 | ]},
53 | { $subview: true }
54 | ]
55 | }
56 | ]
57 | };
58 | }
59 | }
60 |
61 |
62 | const app = new JetApp({
63 | id: "windows",
64 | start: "/top/page1",
65 | views:{
66 | top: TopView,
67 | page1: Page1,
68 | page2: Page2,
69 | page3: Page3,
70 | page4: Page4
71 | }
72 | });
73 |
74 | app.attachEvent("app:guard", function(url, view, nav){
75 | if (url.indexOf("/blocked") !== -1){
76 | nav.redirect = "/top/page1";
77 | }
78 | });
79 |
80 | export default app;
--------------------------------------------------------------------------------
/sources/refresh.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView} from "webix-jet";
2 |
3 | const format = webix.Date.dateToStr("%h:%i:%s");
4 |
5 | class ContentView extends JetView{
6 | constructor(app, name){
7 | super(app, name);
8 | this.$count = 2;
9 | }
10 | config(){
11 | const lines = [];
12 |
13 | for (var i=0; i {
23 | this.$count++;
24 | this.refresh();
25 | }}
26 | ]},
27 | { gravity:2, cols: lines, type:"space" },
28 | { $subview: true }
29 | ]};
30 | }
31 | }
32 |
33 | class ContentSubView extends JetView{
34 | config(){
35 | return { template:"Static footer
rendered at " + format(new Date()), height: 60 };
36 | }
37 | }
38 |
39 |
40 | class TopView extends JetView {
41 | config(){
42 | var ui = {
43 | type:"space", rows:[
44 | { type:"header", template:"Top view, rendered at " + format(new Date())},
45 | {
46 | type:"wide",cols:[
47 | { view:"form", width: 200, rows:[
48 | { view:"button", value:"Refresh app", click:() =>
49 | this.app.refresh() },
50 | { view:"button", value:"Refresh view", click:() =>
51 | this.getSubView().refresh() },
52 | {}
53 | ]},
54 | { $subview: true }
55 | ]
56 | }
57 | ]
58 | };
59 |
60 |
61 | return ui;
62 | }
63 | }
64 |
65 |
66 |
67 | const app = new JetApp({
68 | id: "windows",
69 | start: "/top/content/subcontent",
70 | views:{
71 | top: TopView,
72 | content: ContentView,
73 | subcontent: ContentSubView
74 | }
75 | });
76 |
77 | export default app;
--------------------------------------------------------------------------------
/sources/routers-url.js:
--------------------------------------------------------------------------------
1 | import {JetApp, UrlRouter} from "webix-jet";
2 |
3 | const TopView = {
4 | type:"space", rows:[
5 | { type:"header", template:"Url router"},
6 | {
7 | type:"wide", cols:[
8 | { width:200, css:"navblock", template:`
9 | - show start
10 | - show details
11 | `},
12 | { $subview: true }
13 | ]
14 | }
15 | ]
16 | };
17 |
18 | const StartView = {
19 | template:"Start page"
20 | };
21 |
22 | const DetailsView = {
23 | template:"Details page"
24 | };
25 |
26 | const app = new JetApp({
27 | id: "plugins-themes",
28 |
29 | router: UrlRouter,
30 | routerPrefix: "/routers-url",
31 |
32 | start: "/top/start",
33 | views:{
34 | top: TopView,
35 | start: StartView,
36 | details: DetailsView
37 | }
38 | });
39 |
40 | export default app;
--------------------------------------------------------------------------------
/sources/routes.js:
--------------------------------------------------------------------------------
1 | import {JetApp } from "webix-jet";
2 | import { views } from "./views/index";
3 |
4 | const app = new JetApp({
5 | start: "/top/about",
6 | routes: {
7 | "/hi" : "/top/about",
8 | "/form" : "/top/area.left.form",
9 | "/list" : "/top/area.list"
10 | },
11 | views,
12 | debug:true
13 | });
14 |
15 | export default app;
--------------------------------------------------------------------------------
/sources/screensize.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView} from "webix-jet";
2 |
3 | const data = new webix.DataCollection({
4 | url:"/data.json"
5 | });
6 |
7 | export class ListA extends JetView {
8 | config(){
9 | return { view:"datatable", autoConfig:true, editable:true };
10 | }
11 | init(view){
12 | view.parse(data);
13 | }
14 | }
15 |
16 | export class ListB extends JetView {
17 | config(){
18 | var config = {
19 | view:"datatable",
20 | editable:true
21 | };
22 |
23 | switch(this.app.config.size){
24 | case "small":
25 | config.columns = [
26 | { id:"id" },
27 | { id:"title", fillspace:true }
28 | ];
29 | break;
30 | default:
31 | config.autoConfig = true;
32 | break;
33 | }
34 |
35 | return config;
36 | }
37 | init(view){
38 | view.parse(data);
39 | }
40 | }
41 |
42 | export class StartView extends JetView {
43 | config(){
44 | switch(this.app.config.size){
45 | case "small":
46 | return {
47 | view:"tabview", tabbar:{ optionWidth:100 }, cells:[
48 | { body: { rows:[ ListB ]}, header:"Table 1" },
49 | { body: { rows:[ ListA ]}, header:"Table 2" }
50 | ]
51 | };
52 | case "wide":
53 | return {
54 | type:"space", cols:[
55 | ListA,
56 | ListB
57 | ]
58 | };
59 | }
60 | }
61 | }
62 |
63 |
64 |
65 | const app = new JetApp({
66 | start: "/start",
67 | views:{
68 | start: StartView
69 | }
70 | });
71 |
72 | export default function(){
73 | const size = () => document.body.offsetWidth > 800 ? "wide" : "small";
74 | app.config.size = size();
75 | webix.event(window, "resize", function(){
76 | var newSize = size();
77 | if (newSize != app.config.size){
78 | app.config.size = newSize;
79 | app.refresh();
80 | }
81 | });
82 |
83 | return app;
84 | }
--------------------------------------------------------------------------------
/sources/tabbar.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView} from "webix-jet";
2 | let number = 3;
3 |
4 | // It is important to NOT DEFINE top level ID
5 | // for the content which will be hosted
6 | // inside of tabview
7 | class AdminView1 extends JetView {
8 | config(){
9 | return {
10 | height:50,
11 | css:"silver",
12 | template:"Admin view 1
Dashboard"
13 | };
14 | }
15 | }
16 |
17 | class AdminView2 extends JetView {
18 | config(){
19 | return {
20 | height:50,
21 | css:"silver",
22 | template:"Admin view 2
Meta info"
23 | };
24 | }
25 | }
26 |
27 | class AdminView3 extends JetView {
28 | constructor(app, name, data){
29 | super(app, name);
30 |
31 | this.customData = data || { number: 100 };
32 | }
33 | config(){
34 | return {
35 | height:50,
36 | css:"silver",
37 | template: "Admin view #number#
The dynamic one",
38 | data: this.customData
39 | };
40 | }
41 | }
42 |
43 | class TopView extends JetView {
44 | config(){
45 | return {
46 | type: "space",
47 | rows: [
48 | { view:"button", inputWidth:200, value:"Add view below", type:"form", click:()=>{
49 | this.$$("main3").addView({
50 | header: "Admin View "+number,
51 | // we can use both
52 | // body: AdminView3
53 | // and
54 | // body: new AdminView3(app, name)
55 | body: new AdminView3(this.app, "", { number: number++ })
56 | });
57 | }},
58 | { id:"main3", view:"tabview", cells:[
59 | { header:"Admin View 1", body:AdminView1},
60 | { header:"Admin View 2", body:AdminView2}
61 | ]},
62 | { height:50 },
63 | { view:"button", inputWidth:200, value:"Add view below", type:"form", click:()=>{
64 | var uid = webix.uid();
65 | this.$$("tabs").addOption({ id:uid, value:"Admin View 100" });
66 | this.$$("main4").addView({ id:uid, $subview: AdminView3 });
67 | }},
68 | { id:"tabs", view:"tabbar", multiview:true, options:[
69 | "Admin View 1", "Admin View 2"
70 | ]},
71 | { id:"main4", cells:[
72 | { id:"Admin View 1", $subview:AdminView1 },
73 | { id:"Admin View 2", $subview:AdminView2 }
74 | ]}
75 | ]
76 | };
77 | }
78 | }
79 |
80 |
81 | const app = new JetApp({
82 | id: "windows",
83 | start: "/top",
84 | views:{
85 | top: TopView
86 | }
87 | });
88 |
89 |
90 | export default app;
--------------------------------------------------------------------------------
/sources/urlparams.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView, plugins } from "webix-jet";
2 |
3 | class TopView extends JetView {
4 | config(){
5 | return {
6 | rows:[
7 | { view:"segmented", inputWidth:300, options:["full", "brief"], localId:"ms", on:{
8 | onChange: function(){
9 | this.$scope.setParam("mode", this.getValue(), true);
10 | }
11 | }},
12 | { $subview:true }
13 | ]
14 | };
15 | }
16 | init(){
17 | this.use(plugins.UrlParam, ["mode"]);
18 |
19 | var mode = this.getParam("mode");
20 | if (mode){
21 | this.$$("ms").setValue(mode);
22 | }
23 | }
24 | }
25 |
26 | class SubView extends JetView {
27 | config(){
28 | return {
29 | view:"template"
30 | };
31 | }
32 | urlChange(view){
33 | var id = this.getParam("id", true);
34 | var mode = this.getParam("mode", true);
35 | view.setHTML(mode+" mode for id="+id);
36 | }
37 | }
38 |
39 | class DetailsView extends JetView {
40 | config(){
41 | return {
42 | cols:[
43 | { width:200, view:"list", select:true, localId:"list",
44 | on:{
45 | onAfterSelect: (id) => {
46 | this.setParam("id", id, true);
47 | }
48 | }
49 | },
50 | { $subview:"sub" }
51 | ]
52 | };
53 | }
54 | init(){
55 | this.$$("list").parse([
56 | { id:1, value:"1. short data" },
57 | { id:2, value:"2. short data" },
58 | ]);
59 | }
60 | urlChange(){
61 | var id = this.getParam("id");
62 | if (id)
63 | this.$$("list").select(id);
64 | }
65 | }
66 |
67 | const app = new JetApp({
68 | start: "/top/full/details",
69 | views: {
70 | top: TopView,
71 | details: DetailsView,
72 | sub: SubView
73 | },
74 | debug:true
75 | });
76 |
77 | export default app;
--------------------------------------------------------------------------------
/sources/viewapp.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView, SubRouter } from "webix-jet";
2 |
3 | class TopView extends JetView {
4 | config(){
5 | return {
6 | type:"wide", rows:[
7 | { type:"header", template:"Base App"},
8 | { $subview: true }
9 | ]
10 | };
11 | }
12 | }
13 |
14 | class MasterTopView extends JetView {
15 | config(){
16 | return {
17 | type:"space", rows:[
18 | { view:"toolbar", cols:[
19 | { view:"label", label:"Master App"},
20 | { view:"segmented", width: 200,
21 | value:"details",
22 | options:["details","text"], click:function(){
23 | this.$scope.show(this.getValue());
24 | }
25 | }
26 | ]},
27 | { $subview: true }
28 | ]
29 | };
30 | }
31 | }
32 |
33 | class FormView extends JetView {
34 | config(){
35 | return {
36 | view:"form", width: 200, rows:[
37 | { label:"Name", view:"text" },
38 | { label:"Email", view:"text" },
39 | {}
40 | ]
41 | };
42 | }
43 | }
44 |
45 | const TextView = () => ({ template:"Some text here" });
46 |
47 |
48 |
49 |
50 | const baseApp1 = (app) => {
51 | return new JetApp({
52 | start: "/top/form",
53 | router: SubRouter,
54 | debug:true,
55 | app,
56 | views:{
57 | top: TopView,
58 | form: FormView
59 | }
60 | });
61 | };
62 |
63 | const masterApp = new JetApp({
64 | start: "/top/details",
65 | debug:true,
66 | views:{
67 | top: MasterTopView,
68 | details: baseApp1,
69 | text: TextView
70 | }
71 | });
72 |
73 | export default masterApp;
--------------------------------------------------------------------------------
/sources/viewguard.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView} from "webix-jet";
2 |
3 | class allowed extends JetView{
4 | config(){
5 | return { template:"Some cotent here" };
6 | }
7 | }
8 | class limited extends JetView{
9 | config(){
10 | var ui = { view:"form", rows:[
11 | { label:"Name", view:"text" },
12 | { label:"Email", view:"text" }
13 | ]};
14 |
15 | if (this.app.config.access == "writer"){
16 | ui.rows.push({ view:"text", label:"Salary" });
17 | ui.rows.push({ view:"button", value:"Delete" });
18 | }
19 |
20 | ui.rows.push({});
21 |
22 | return ui;
23 | }
24 | }
25 | class blocked extends JetView{
26 | config(){
27 | if (this.app.config.access != "writer"){
28 | return { };
29 | }
30 |
31 | return { template:"As writer you can read this content" };
32 | }
33 | }
34 |
35 | class TopView extends JetView {
36 | config(){
37 | return {
38 | type:"space", rows:[
39 | { view:"toolbar", cols:[
40 | { view:"label", label:"Using windows"},
41 | { view:"segmented", width: 300,
42 | label:"Access Level", labelWidth:100,
43 | value:this.app.config.access,
44 | options:["reader","writer"], click:function(){
45 | // change access level, for demo only
46 | var app = this.$scope.app;
47 | app.config.access = this.getValue();
48 | // repaint ui with new access level applied
49 | webix.delay(function(){
50 | app.refresh();
51 | });
52 | }}
53 | ]},
54 | {
55 | type:"wide",cols:[
56 | { view:"form", width: 200, rows:[
57 | { view:"button", value:"Allowed page 1", click:() =>
58 | this.show("allowed") },
59 | { view:"button", value:"Limited access", click:() =>
60 | this.show("limited") },
61 | { view:"button", value:"Blocked page", click:() =>
62 | this.show("blocked") },
63 | {}
64 | ]},
65 | { $subview: true }
66 | ]
67 | }
68 | ]
69 | };
70 | }
71 | }
72 |
73 |
74 | const app = new JetApp({
75 | id: "windows",
76 | access: "reader",
77 | start: "/top/blocked",
78 | views:{
79 | top: TopView,
80 | allowed: allowed,
81 | limited: limited,
82 | blocked: blocked
83 | }
84 | });
85 |
86 | export default app;
--------------------------------------------------------------------------------
/sources/viewresolve.js:
--------------------------------------------------------------------------------
1 | import {JetApp} from "webix-jet";
2 | import { views } from "./views/index";
3 |
4 | const app = new JetApp({
5 | start: "/top/start",
6 | views: {
7 | "start" : "area.list"
8 | },
9 | views,
10 | debug:true
11 | });
12 |
13 | export default app;
--------------------------------------------------------------------------------
/sources/views/404.js:
--------------------------------------------------------------------------------
1 | const about = {
2 | template:"404: Page not found"
3 | };
4 |
5 | export default about;
--------------------------------------------------------------------------------
/sources/views/about.js:
--------------------------------------------------------------------------------
1 | const about = {
2 | template:"This is dummy page"
3 | };
4 |
5 | export default about;
--------------------------------------------------------------------------------
/sources/views/area/left/form.js:
--------------------------------------------------------------------------------
1 | const form = {
2 | rows:[
3 | { view:"text"},
4 | { view:"button", value:"save"},
5 | {}
6 | ]
7 | };
8 |
9 | export default form;
--------------------------------------------------------------------------------
/sources/views/area/list.js:
--------------------------------------------------------------------------------
1 | const list = {
2 | view:"list",
3 | data:[
4 | {value:"Alex Brown"},
5 | {value:"Linda Wan"}
6 | ]
7 | };
8 |
9 | export default list;
--------------------------------------------------------------------------------
/sources/views/dummy.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/webix-hub/jet-demos/4150087df5267a379fb86726ef628c2cc1006ae1/sources/views/dummy.js
--------------------------------------------------------------------------------
/sources/views/index.js:
--------------------------------------------------------------------------------
1 | // dynamic import of views
2 | const modules = import.meta.glob("./**/*.js");
3 | export const views = name => {
4 | const mod = modules[`./${name.replace(/\./g, "/")}.js`];
5 | if (!mod)
6 | return modules["./404.js"]().then(x => x.default);
7 |
8 | return mod().then(x => x.default)
9 | };
--------------------------------------------------------------------------------
/sources/views/main.js:
--------------------------------------------------------------------------------
1 | import {JetView} from "webix-jet";
2 |
3 | export default class TopView extends JetView {
4 | config(){
5 |
6 | return {
7 | type:"space", cols:[
8 | { view:"list", width: 200, select:true, data:[
9 | { value:"About", id:"about", route:"about"},
10 | { value:"Module", id:"modules.clients", route:"modules.clients"}
11 | ], click:function(id){
12 | var item = this.getItem(id);
13 | this.$scope.show(item.route);
14 | }},
15 | { $subview: true }
16 | ]
17 | };
18 |
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/sources/views/top.js:
--------------------------------------------------------------------------------
1 | import {JetView} from "webix-jet";
2 |
3 | export default class TopView extends JetView {
4 | config(){
5 |
6 | return {
7 | type:"space", cols:[
8 | { view:"list", width: 200, select:true, data:[
9 | { value:"List", id:"list", route:"area.list"},
10 | { value:"Form", id:"form", route:"area.left.form"},
11 | { value:"About", id:"about", route:"about"}
12 | ], click:function(id){
13 | var item = this.getItem(id);
14 | this.$scope.show(item.route);
15 | }},
16 | { $subview: true }
17 | ]
18 | };
19 |
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/sources/webixview.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView, EmptyRouter } from "webix-jet";
2 |
3 | class TopView extends JetView {
4 | config(){
5 | return {
6 | type:"wide", rows:[
7 | { type:"header", template:"Base App"},
8 | { $subview: true }
9 | ]
10 | };
11 | }
12 | }
13 |
14 | class FormView extends JetView {
15 | config(){
16 | return {
17 | view:"form", width: 200, rows:[
18 | { label:"Name", view:"text" },
19 | { label:"Email", view:"text" },
20 | {}
21 | ]
22 | };
23 | }
24 | }
25 |
26 | class MySubApp extends JetApp{
27 | constructor(){
28 | super({
29 | start: "/top/form",
30 | router: EmptyRouter,
31 | debug:true,
32 | views:{
33 | top: TopView,
34 | form: FormView
35 | }
36 | });
37 | }
38 | }
39 | webix.protoUI({
40 | name:"sub-app",
41 | app: MySubApp
42 | }, webix.ui.jetapp);
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | class MasterTopView extends JetView {
51 | config(){
52 | return {
53 | type:"space", rows:[
54 | { view:"toolbar", cols:[
55 | { view:"label", label:"Master App"},
56 | { view:"segmented", width: 200,
57 | value:"details",
58 | options:["details","text"], click:function(){
59 | this.$scope.show(this.getValue());
60 | }
61 | }
62 | ]},
63 | { $subview: true }
64 | ]
65 | };
66 | }
67 | }
68 |
69 |
70 | const TextView = () => ({ template:"Some text here" });
71 | const DetailsView = () => ({ view:"sub-app" });
72 |
73 |
74 | const masterApp = new JetApp({
75 | start: "/top/details",
76 | debug:true,
77 | views:{
78 | top: MasterTopView,
79 | details: DetailsView,
80 | text: TextView
81 | }
82 | });
83 |
84 | export default masterApp;
--------------------------------------------------------------------------------
/sources/windows.js:
--------------------------------------------------------------------------------
1 | import {JetApp, JetView} from "webix-jet";
2 |
3 | const win1 = {
4 | view:"popup",
5 | position:"center",
6 | body:{ template:"Text 1 (center)" }
7 | };
8 |
9 | class WindowsView extends JetView {
10 | config(){
11 | return {
12 | view:"popup",
13 | top:200, left:300,
14 | body:{ template:"Text 2 (fixed position)" }
15 | };
16 | }
17 | showWindow(){
18 | this.getRoot().show();
19 | }
20 | }
21 |
22 | class TopView extends JetView {
23 | config(){
24 | return {
25 | type:"space", rows:[
26 | { type:"header", template:"Using windows"},
27 | {
28 | type:"wide",cols:[
29 | { view:"form", width: 200, rows:[
30 | { view:"button", value:"Show Window 1", click:() =>
31 | this.win1.show()
32 | },
33 | { view:"button", value:"Show Window 2", click:() =>
34 | this.win2.showWindow()
35 | },
36 | {}
37 | ]},
38 | { $subview: true }
39 | ]
40 | }
41 | ]
42 | };
43 | }
44 |
45 | init(){
46 | //webix view
47 | this.win1 = this.ui(win1);
48 |
49 | //WindowsView class
50 | this.win2 = this.ui(WindowsView);
51 | }
52 | }
53 |
54 |
55 | const app = new JetApp({
56 | id: "windows",
57 | start: "/top",
58 | views:{
59 | top: TopView
60 | }
61 | });
62 |
63 | export default app;
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | // vite.config.js
2 | import { defineConfig } from 'vite'
3 |
4 | export default defineConfig({
5 |
6 | })
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@esbuild/android-arm64@0.17.19":
6 | version "0.17.19"
7 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd"
8 | integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==
9 |
10 | "@esbuild/android-arm@0.17.19":
11 | version "0.17.19"
12 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d"
13 | integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==
14 |
15 | "@esbuild/android-x64@0.17.19":
16 | version "0.17.19"
17 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1"
18 | integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==
19 |
20 | "@esbuild/darwin-arm64@0.17.19":
21 | version "0.17.19"
22 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276"
23 | integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==
24 |
25 | "@esbuild/darwin-x64@0.17.19":
26 | version "0.17.19"
27 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb"
28 | integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==
29 |
30 | "@esbuild/freebsd-arm64@0.17.19":
31 | version "0.17.19"
32 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2"
33 | integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==
34 |
35 | "@esbuild/freebsd-x64@0.17.19":
36 | version "0.17.19"
37 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4"
38 | integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==
39 |
40 | "@esbuild/linux-arm64@0.17.19":
41 | version "0.17.19"
42 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb"
43 | integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==
44 |
45 | "@esbuild/linux-arm@0.17.19":
46 | version "0.17.19"
47 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a"
48 | integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==
49 |
50 | "@esbuild/linux-ia32@0.17.19":
51 | version "0.17.19"
52 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a"
53 | integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==
54 |
55 | "@esbuild/linux-loong64@0.17.19":
56 | version "0.17.19"
57 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72"
58 | integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==
59 |
60 | "@esbuild/linux-mips64el@0.17.19":
61 | version "0.17.19"
62 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289"
63 | integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==
64 |
65 | "@esbuild/linux-ppc64@0.17.19":
66 | version "0.17.19"
67 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7"
68 | integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==
69 |
70 | "@esbuild/linux-riscv64@0.17.19":
71 | version "0.17.19"
72 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09"
73 | integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==
74 |
75 | "@esbuild/linux-s390x@0.17.19":
76 | version "0.17.19"
77 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829"
78 | integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==
79 |
80 | "@esbuild/linux-x64@0.17.19":
81 | version "0.17.19"
82 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4"
83 | integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==
84 |
85 | "@esbuild/netbsd-x64@0.17.19":
86 | version "0.17.19"
87 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462"
88 | integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==
89 |
90 | "@esbuild/openbsd-x64@0.17.19":
91 | version "0.17.19"
92 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691"
93 | integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==
94 |
95 | "@esbuild/sunos-x64@0.17.19":
96 | version "0.17.19"
97 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273"
98 | integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==
99 |
100 | "@esbuild/win32-arm64@0.17.19":
101 | version "0.17.19"
102 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f"
103 | integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==
104 |
105 | "@esbuild/win32-ia32@0.17.19":
106 | version "0.17.19"
107 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03"
108 | integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==
109 |
110 | "@esbuild/win32-x64@0.17.19":
111 | version "0.17.19"
112 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061"
113 | integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==
114 |
115 | "@eslint-community/eslint-utils@^4.2.0":
116 | version "4.4.0"
117 | resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
118 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
119 | dependencies:
120 | eslint-visitor-keys "^3.3.0"
121 |
122 | "@eslint-community/regexpp@^4.4.0":
123 | version "4.5.1"
124 | resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884"
125 | integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==
126 |
127 | "@eslint/eslintrc@^2.0.3":
128 | version "2.0.3"
129 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331"
130 | integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==
131 | dependencies:
132 | ajv "^6.12.4"
133 | debug "^4.3.2"
134 | espree "^9.5.2"
135 | globals "^13.19.0"
136 | ignore "^5.2.0"
137 | import-fresh "^3.2.1"
138 | js-yaml "^4.1.0"
139 | minimatch "^3.1.2"
140 | strip-json-comments "^3.1.1"
141 |
142 | "@eslint/js@8.41.0":
143 | version "8.41.0"
144 | resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.41.0.tgz#080321c3b68253522f7646b55b577dd99d2950b3"
145 | integrity sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==
146 |
147 | "@humanwhocodes/config-array@^0.11.8":
148 | version "0.11.8"
149 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
150 | integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==
151 | dependencies:
152 | "@humanwhocodes/object-schema" "^1.2.1"
153 | debug "^4.1.1"
154 | minimatch "^3.0.5"
155 |
156 | "@humanwhocodes/module-importer@^1.0.1":
157 | version "1.0.1"
158 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
159 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
160 |
161 | "@humanwhocodes/object-schema@^1.2.1":
162 | version "1.2.1"
163 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
164 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
165 |
166 | "@nodelib/fs.scandir@2.1.5":
167 | version "2.1.5"
168 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
169 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
170 | dependencies:
171 | "@nodelib/fs.stat" "2.0.5"
172 | run-parallel "^1.1.9"
173 |
174 | "@nodelib/fs.stat@2.0.5":
175 | version "2.0.5"
176 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
177 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
178 |
179 | "@nodelib/fs.walk@^1.2.8":
180 | version "1.2.8"
181 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
182 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
183 | dependencies:
184 | "@nodelib/fs.scandir" "2.1.5"
185 | fastq "^1.6.0"
186 |
187 | acorn-jsx@^5.3.2:
188 | version "5.3.2"
189 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
190 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
191 |
192 | acorn@^8.8.0:
193 | version "8.8.2"
194 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
195 | integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
196 |
197 | ajv@^6.10.0, ajv@^6.12.4:
198 | version "6.12.6"
199 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
200 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
201 | dependencies:
202 | fast-deep-equal "^3.1.1"
203 | fast-json-stable-stringify "^2.0.0"
204 | json-schema-traverse "^0.4.1"
205 | uri-js "^4.2.2"
206 |
207 | ansi-regex@^5.0.1:
208 | version "5.0.1"
209 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
210 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
211 |
212 | ansi-styles@^4.1.0:
213 | version "4.3.0"
214 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
215 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
216 | dependencies:
217 | color-convert "^2.0.1"
218 |
219 | argparse@^2.0.1:
220 | version "2.0.1"
221 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
222 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
223 |
224 | balanced-match@^1.0.0:
225 | version "1.0.2"
226 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
227 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
228 |
229 | brace-expansion@^1.1.7:
230 | version "1.1.11"
231 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
232 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
233 | dependencies:
234 | balanced-match "^1.0.0"
235 | concat-map "0.0.1"
236 |
237 | callsites@^3.0.0:
238 | version "3.1.0"
239 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
240 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
241 |
242 | chalk@^4.0.0:
243 | version "4.1.2"
244 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
245 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
246 | dependencies:
247 | ansi-styles "^4.1.0"
248 | supports-color "^7.1.0"
249 |
250 | color-convert@^2.0.1:
251 | version "2.0.1"
252 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
253 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
254 | dependencies:
255 | color-name "~1.1.4"
256 |
257 | color-name@~1.1.4:
258 | version "1.1.4"
259 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
260 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
261 |
262 | concat-map@0.0.1:
263 | version "0.0.1"
264 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
265 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
266 |
267 | cross-spawn@^7.0.2:
268 | version "7.0.3"
269 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
270 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
271 | dependencies:
272 | path-key "^3.1.0"
273 | shebang-command "^2.0.0"
274 | which "^2.0.1"
275 |
276 | debug@^4.1.1, debug@^4.3.2:
277 | version "4.3.3"
278 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
279 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
280 | dependencies:
281 | ms "2.1.2"
282 |
283 | deep-is@^0.1.3:
284 | version "0.1.4"
285 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
286 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
287 |
288 | doctrine@^3.0.0:
289 | version "3.0.0"
290 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
291 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
292 | dependencies:
293 | esutils "^2.0.2"
294 |
295 | esbuild@^0.17.5:
296 | version "0.17.19"
297 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955"
298 | integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==
299 | optionalDependencies:
300 | "@esbuild/android-arm" "0.17.19"
301 | "@esbuild/android-arm64" "0.17.19"
302 | "@esbuild/android-x64" "0.17.19"
303 | "@esbuild/darwin-arm64" "0.17.19"
304 | "@esbuild/darwin-x64" "0.17.19"
305 | "@esbuild/freebsd-arm64" "0.17.19"
306 | "@esbuild/freebsd-x64" "0.17.19"
307 | "@esbuild/linux-arm" "0.17.19"
308 | "@esbuild/linux-arm64" "0.17.19"
309 | "@esbuild/linux-ia32" "0.17.19"
310 | "@esbuild/linux-loong64" "0.17.19"
311 | "@esbuild/linux-mips64el" "0.17.19"
312 | "@esbuild/linux-ppc64" "0.17.19"
313 | "@esbuild/linux-riscv64" "0.17.19"
314 | "@esbuild/linux-s390x" "0.17.19"
315 | "@esbuild/linux-x64" "0.17.19"
316 | "@esbuild/netbsd-x64" "0.17.19"
317 | "@esbuild/openbsd-x64" "0.17.19"
318 | "@esbuild/sunos-x64" "0.17.19"
319 | "@esbuild/win32-arm64" "0.17.19"
320 | "@esbuild/win32-ia32" "0.17.19"
321 | "@esbuild/win32-x64" "0.17.19"
322 |
323 | escape-string-regexp@^4.0.0:
324 | version "4.0.0"
325 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
326 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
327 |
328 | eslint-scope@^7.2.0:
329 | version "7.2.0"
330 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b"
331 | integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==
332 | dependencies:
333 | esrecurse "^4.3.0"
334 | estraverse "^5.2.0"
335 |
336 | eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1:
337 | version "3.4.1"
338 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994"
339 | integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==
340 |
341 | eslint@^8.41.0:
342 | version "8.41.0"
343 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.41.0.tgz#3062ca73363b4714b16dbc1e60f035e6134b6f1c"
344 | integrity sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==
345 | dependencies:
346 | "@eslint-community/eslint-utils" "^4.2.0"
347 | "@eslint-community/regexpp" "^4.4.0"
348 | "@eslint/eslintrc" "^2.0.3"
349 | "@eslint/js" "8.41.0"
350 | "@humanwhocodes/config-array" "^0.11.8"
351 | "@humanwhocodes/module-importer" "^1.0.1"
352 | "@nodelib/fs.walk" "^1.2.8"
353 | ajv "^6.10.0"
354 | chalk "^4.0.0"
355 | cross-spawn "^7.0.2"
356 | debug "^4.3.2"
357 | doctrine "^3.0.0"
358 | escape-string-regexp "^4.0.0"
359 | eslint-scope "^7.2.0"
360 | eslint-visitor-keys "^3.4.1"
361 | espree "^9.5.2"
362 | esquery "^1.4.2"
363 | esutils "^2.0.2"
364 | fast-deep-equal "^3.1.3"
365 | file-entry-cache "^6.0.1"
366 | find-up "^5.0.0"
367 | glob-parent "^6.0.2"
368 | globals "^13.19.0"
369 | graphemer "^1.4.0"
370 | ignore "^5.2.0"
371 | import-fresh "^3.0.0"
372 | imurmurhash "^0.1.4"
373 | is-glob "^4.0.0"
374 | is-path-inside "^3.0.3"
375 | js-yaml "^4.1.0"
376 | json-stable-stringify-without-jsonify "^1.0.1"
377 | levn "^0.4.1"
378 | lodash.merge "^4.6.2"
379 | minimatch "^3.1.2"
380 | natural-compare "^1.4.0"
381 | optionator "^0.9.1"
382 | strip-ansi "^6.0.1"
383 | strip-json-comments "^3.1.0"
384 | text-table "^0.2.0"
385 |
386 | espree@^9.5.2:
387 | version "9.5.2"
388 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b"
389 | integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==
390 | dependencies:
391 | acorn "^8.8.0"
392 | acorn-jsx "^5.3.2"
393 | eslint-visitor-keys "^3.4.1"
394 |
395 | esquery@^1.4.2:
396 | version "1.5.0"
397 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
398 | integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
399 | dependencies:
400 | estraverse "^5.1.0"
401 |
402 | esrecurse@^4.3.0:
403 | version "4.3.0"
404 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
405 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
406 | dependencies:
407 | estraverse "^5.2.0"
408 |
409 | estraverse@^5.1.0, estraverse@^5.2.0:
410 | version "5.3.0"
411 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
412 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
413 |
414 | esutils@^2.0.2:
415 | version "2.0.3"
416 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
417 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
418 |
419 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
420 | version "3.1.3"
421 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
422 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
423 |
424 | fast-json-stable-stringify@^2.0.0:
425 | version "2.1.0"
426 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
427 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
428 |
429 | fast-levenshtein@^2.0.6:
430 | version "2.0.6"
431 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
432 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
433 |
434 | fastq@^1.6.0:
435 | version "1.13.0"
436 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
437 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
438 | dependencies:
439 | reusify "^1.0.4"
440 |
441 | file-entry-cache@^6.0.1:
442 | version "6.0.1"
443 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
444 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
445 | dependencies:
446 | flat-cache "^3.0.4"
447 |
448 | find-up@^5.0.0:
449 | version "5.0.0"
450 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
451 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
452 | dependencies:
453 | locate-path "^6.0.0"
454 | path-exists "^4.0.0"
455 |
456 | flat-cache@^3.0.4:
457 | version "3.0.4"
458 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
459 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
460 | dependencies:
461 | flatted "^3.1.0"
462 | rimraf "^3.0.2"
463 |
464 | flatted@^3.1.0:
465 | version "3.2.4"
466 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2"
467 | integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==
468 |
469 | fs.realpath@^1.0.0:
470 | version "1.0.0"
471 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
472 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
473 |
474 | fsevents@~2.3.2:
475 | version "2.3.2"
476 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
477 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
478 |
479 | glob-parent@^6.0.2:
480 | version "6.0.2"
481 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
482 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
483 | dependencies:
484 | is-glob "^4.0.3"
485 |
486 | glob@^7.1.3:
487 | version "7.2.0"
488 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
489 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
490 | dependencies:
491 | fs.realpath "^1.0.0"
492 | inflight "^1.0.4"
493 | inherits "2"
494 | minimatch "^3.0.4"
495 | once "^1.3.0"
496 | path-is-absolute "^1.0.0"
497 |
498 | globals@^13.19.0:
499 | version "13.20.0"
500 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82"
501 | integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==
502 | dependencies:
503 | type-fest "^0.20.2"
504 |
505 | graphemer@^1.4.0:
506 | version "1.4.0"
507 | resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
508 | integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
509 |
510 | has-flag@^4.0.0:
511 | version "4.0.0"
512 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
513 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
514 |
515 | ignore@^5.2.0:
516 | version "5.2.0"
517 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
518 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
519 |
520 | import-fresh@^3.0.0, import-fresh@^3.2.1:
521 | version "3.3.0"
522 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
523 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
524 | dependencies:
525 | parent-module "^1.0.0"
526 | resolve-from "^4.0.0"
527 |
528 | imurmurhash@^0.1.4:
529 | version "0.1.4"
530 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
531 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
532 |
533 | inflight@^1.0.4:
534 | version "1.0.6"
535 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
536 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
537 | dependencies:
538 | once "^1.3.0"
539 | wrappy "1"
540 |
541 | inherits@2:
542 | version "2.0.4"
543 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
544 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
545 |
546 | is-extglob@^2.1.1:
547 | version "2.1.1"
548 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
549 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
550 |
551 | is-glob@^4.0.0, is-glob@^4.0.3:
552 | version "4.0.3"
553 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
554 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
555 | dependencies:
556 | is-extglob "^2.1.1"
557 |
558 | is-path-inside@^3.0.3:
559 | version "3.0.3"
560 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
561 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
562 |
563 | isexe@^2.0.0:
564 | version "2.0.0"
565 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
566 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
567 |
568 | js-yaml@^4.1.0:
569 | version "4.1.0"
570 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
571 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
572 | dependencies:
573 | argparse "^2.0.1"
574 |
575 | json-schema-traverse@^0.4.1:
576 | version "0.4.1"
577 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
578 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
579 |
580 | json-stable-stringify-without-jsonify@^1.0.1:
581 | version "1.0.1"
582 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
583 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
584 |
585 | levn@^0.4.1:
586 | version "0.4.1"
587 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
588 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
589 | dependencies:
590 | prelude-ls "^1.2.1"
591 | type-check "~0.4.0"
592 |
593 | locate-path@^6.0.0:
594 | version "6.0.0"
595 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
596 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
597 | dependencies:
598 | p-locate "^5.0.0"
599 |
600 | lodash.merge@^4.6.2:
601 | version "4.6.2"
602 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
603 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
604 |
605 | minimatch@^3.0.4:
606 | version "3.0.4"
607 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
608 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
609 | dependencies:
610 | brace-expansion "^1.1.7"
611 |
612 | minimatch@^3.0.5, minimatch@^3.1.2:
613 | version "3.1.2"
614 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
615 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
616 | dependencies:
617 | brace-expansion "^1.1.7"
618 |
619 | ms@2.1.2:
620 | version "2.1.2"
621 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
622 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
623 |
624 | nanoid@^3.3.6:
625 | version "3.3.6"
626 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
627 | integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
628 |
629 | natural-compare@^1.4.0:
630 | version "1.4.0"
631 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
632 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
633 |
634 | once@^1.3.0:
635 | version "1.4.0"
636 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
637 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
638 | dependencies:
639 | wrappy "1"
640 |
641 | optionator@^0.9.1:
642 | version "0.9.1"
643 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
644 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
645 | dependencies:
646 | deep-is "^0.1.3"
647 | fast-levenshtein "^2.0.6"
648 | levn "^0.4.1"
649 | prelude-ls "^1.2.1"
650 | type-check "^0.4.0"
651 | word-wrap "^1.2.3"
652 |
653 | p-limit@^3.0.2:
654 | version "3.1.0"
655 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
656 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
657 | dependencies:
658 | yocto-queue "^0.1.0"
659 |
660 | p-locate@^5.0.0:
661 | version "5.0.0"
662 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
663 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
664 | dependencies:
665 | p-limit "^3.0.2"
666 |
667 | parent-module@^1.0.0:
668 | version "1.0.1"
669 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
670 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
671 | dependencies:
672 | callsites "^3.0.0"
673 |
674 | path-exists@^4.0.0:
675 | version "4.0.0"
676 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
677 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
678 |
679 | path-is-absolute@^1.0.0:
680 | version "1.0.1"
681 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
682 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
683 |
684 | path-key@^3.1.0:
685 | version "3.1.1"
686 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
687 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
688 |
689 | picocolors@^1.0.0:
690 | version "1.0.0"
691 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
692 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
693 |
694 | postcss@^8.4.23:
695 | version "8.4.23"
696 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab"
697 | integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==
698 | dependencies:
699 | nanoid "^3.3.6"
700 | picocolors "^1.0.0"
701 | source-map-js "^1.0.2"
702 |
703 | prelude-ls@^1.2.1:
704 | version "1.2.1"
705 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
706 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
707 |
708 | punycode@^2.1.0:
709 | version "2.1.1"
710 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
711 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
712 |
713 | queue-microtask@^1.2.2:
714 | version "1.2.3"
715 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
716 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
717 |
718 | resolve-from@^4.0.0:
719 | version "4.0.0"
720 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
721 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
722 |
723 | reusify@^1.0.4:
724 | version "1.0.4"
725 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
726 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
727 |
728 | rimraf@^3.0.2:
729 | version "3.0.2"
730 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
731 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
732 | dependencies:
733 | glob "^7.1.3"
734 |
735 | rollup@^3.21.0:
736 | version "3.23.0"
737 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.23.0.tgz#b8d6146dac4bf058ee817f92820988e9b358b564"
738 | integrity sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ==
739 | optionalDependencies:
740 | fsevents "~2.3.2"
741 |
742 | run-parallel@^1.1.9:
743 | version "1.2.0"
744 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
745 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
746 | dependencies:
747 | queue-microtask "^1.2.2"
748 |
749 | shebang-command@^2.0.0:
750 | version "2.0.0"
751 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
752 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
753 | dependencies:
754 | shebang-regex "^3.0.0"
755 |
756 | shebang-regex@^3.0.0:
757 | version "3.0.0"
758 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
759 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
760 |
761 | source-map-js@^1.0.2:
762 | version "1.0.2"
763 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
764 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
765 |
766 | strip-ansi@^6.0.1:
767 | version "6.0.1"
768 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
769 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
770 | dependencies:
771 | ansi-regex "^5.0.1"
772 |
773 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
774 | version "3.1.1"
775 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
776 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
777 |
778 | supports-color@^7.1.0:
779 | version "7.2.0"
780 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
781 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
782 | dependencies:
783 | has-flag "^4.0.0"
784 |
785 | text-table@^0.2.0:
786 | version "0.2.0"
787 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
788 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
789 |
790 | type-check@^0.4.0, type-check@~0.4.0:
791 | version "0.4.0"
792 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
793 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
794 | dependencies:
795 | prelude-ls "^1.2.1"
796 |
797 | type-fest@^0.20.2:
798 | version "0.20.2"
799 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
800 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
801 |
802 | uri-js@^4.2.2:
803 | version "4.4.1"
804 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
805 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
806 | dependencies:
807 | punycode "^2.1.0"
808 |
809 | vite@^4.3.8:
810 | version "4.3.8"
811 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.3.8.tgz#70cd6a294ab52d7fb8f37f5bc63d117dd19e9918"
812 | integrity sha512-uYB8PwN7hbMrf4j1xzGDk/lqjsZvCDbt/JC5dyfxc19Pg8kRm14LinK/uq+HSLNswZEoKmweGdtpbnxRtrAXiQ==
813 | dependencies:
814 | esbuild "^0.17.5"
815 | postcss "^8.4.23"
816 | rollup "^3.21.0"
817 | optionalDependencies:
818 | fsevents "~2.3.2"
819 |
820 | webix-jet@^3.0.0:
821 | version "3.0.0"
822 | resolved "https://registry.yarnpkg.com/webix-jet/-/webix-jet-3.0.0.tgz#fafe40242ecb2bbb7d8473b029680a4f01f0c86c"
823 | integrity sha512-y/TEh0ECB/iZvkNCIGrmmHpBouzE0pSR+WJxWLHCy3sFpyTe9xJ4AUHJm0VxwS6F8h4f2SVowi91oJo6Ds38ng==
824 |
825 | which@^2.0.1:
826 | version "2.0.2"
827 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
828 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
829 | dependencies:
830 | isexe "^2.0.0"
831 |
832 | word-wrap@^1.2.3:
833 | version "1.2.3"
834 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
835 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
836 |
837 | wrappy@1:
838 | version "1.0.2"
839 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
840 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
841 |
842 | yocto-queue@^0.1.0:
843 | version "0.1.0"
844 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
845 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
846 |
--------------------------------------------------------------------------------