openc3-tool-base 5.14.2 → 5.15.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/tools/base/543.openc3-tool-base.js +1 -1
- data/tools/base/543.openc3-tool-base.js.map +1 -1
- data/tools/base/576.openc3-tool-base.js +1 -1
- data/tools/base/576.openc3-tool-base.js.map +1 -1
- data/tools/base/js/vuetify-2.7.1.min.js +1 -1
- data/tools/base/openc3-tool-base.js +1 -1
- data/tools/base/openc3-tool-base.js.map +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cfc37a052d2b7f69fa6f9bc46f64130e95655976a1d67fe9ae695fff194f9334
|
4
|
+
data.tar.gz: 6b83b9d6e7f841b1a1ba55b943d7bdbad2e58335a9d3765131c21fcf9df094d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed3c51d9848deb1d49575aba4cd0905a503d8cf560c4d29964b8713dd5bd6dadb23d72937a78d2194b82c5c324424c1fc5f2728e9e37049a0b6b3df085d112b0
|
7
|
+
data.tar.gz: 9b4163f075b0619b7b3e622698ac91610b2170474dae288b470940f9de3634efe1265e7d1f7601f0733646256e51940170fb1ba3285f814cadd869c4a855015f
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";(self.webpackChunktool_base=self.webpackChunktool_base||[]).push([[543],{543:
|
1
|
+
"use strict";(self.webpackChunktool_base=self.webpackChunktool_base||[]).push([[543],{543:(s,t,e)=>{e.r(t),e.d(t,{default:()=>i});var o=function(){var s=this,t=s.$createElement,e=s._self._c||t;return e("v-card",[e("v-card-title",[s._v(" Login ")]),s._v(" "),e("v-card-subtitle",[s._v("\n "+s._s(s.isSet?"Enter the":"Create a")+"\n password to begin using OpenC3\n ")]),s._v(" "),e("v-card-text",[e("v-form",[s.isSet&&s.reset?e("v-text-field",{attrs:{type:"password",label:"Old Password"},model:{value:s.oldPassword,callback:function(t){s.oldPassword=t},expression:"oldPassword"}}):s._e(),s._v(" "),e("v-text-field",{attrs:{type:"password",label:(!s.isSet||s.reset?"New ":"")+"Password","data-test":"new-password"},model:{value:s.password,callback:function(t){s.password=t},expression:"password"}}),s._v(" "),s.reset?e("v-text-field",{attrs:{rules:[s.rules.matchPassword],type:"password",label:"Confirm Password","data-test":"confirm-password"},model:{value:s.confirmPassword,callback:function(t){s.confirmPassword=t},expression:"confirmPassword"}}):s._e(),s._v(" "),s.reset?e("v-btn",{attrs:{type:"submit",large:"",color:s.isSet?"warn":"success",disabled:!s.formValid,"data-test":"set-password"},on:{click:function(t){return t.preventDefault(),s.setPassword.apply(null,arguments)}}},[s._v("\n Set\n ")]):e("v-container",[e("v-row",[e("v-btn",{attrs:{type:"submit",large:"",color:"success",disabled:!s.formValid},on:{click:function(t){return t.preventDefault(),s.verifyPassword.apply(null,arguments)}}},[s._v("\n Login\n ")]),s._v(" "),e("v-spacer"),s._v(" "),e("v-btn",{attrs:{text:"",small:""},on:{click:s.showReset}},[s._v(" Change Password ")])],1)],1)],1)],1),s._v(" "),e("v-alert",{attrs:{type:s.alertType,dismissible:""},model:{value:s.showAlert,callback:function(t){s.showAlert=t},expression:"showAlert"}},[s._v("\n "+s._s(s.alert)+"\n ")])],1)};o._withStripped=!0;var r=e(554);const a={data:()=>({isSet:!0,password:"",confirmPassword:"",oldPassword:"",reset:!1,alert:"",alertType:"success",showAlert:!1}),computed:{options:function(){return{noAuth:!0,noScope:!0}},rules:function(){return{matchPassword:()=>this.password===this.confirmPassword||"Passwords must match"}},formValid:function(){return this.reset?this.isSet?!!this.oldPassword&&!!this.password&&this.password===this.confirmPassword:!!this.password&&this.password===this.confirmPassword:!!this.password}},created:function(){r.Z.get("/openc3-api/auth/token-exists",this.options).then((s=>{this.isSet=!!s.data.result,this.isSet||(this.reset=!0)}))},methods:{showReset:function(){this.reset=!0},login:function(){localStorage.openc3Token=this.password;const s=new URLSearchParams(window.location.search).get("redirect");window.location=decodeURI(s||"/")},verifyPassword:function(){this.showAlert=!1,r.Z.post("/openc3-api/auth/verify",{data:{token:this.password},...this.options}).then((s=>{this.login()})).catch((s=>{this.alert="Incorrect password",this.alertType="warning",this.showAlert=!0}))},setPassword:function(){this.showAlert=!1,r.Z.post("/openc3-api/auth/set",{data:{old_token:this.oldPassword,token:this.password},...this.options}).then(this.login)}}};var n=(0,e(900).Z)(a,o,[],!1,null,null,null);n.options.__file="packages/openc3-tool-common/src/tools/base/components/Login.vue";const i=n.exports}}]);
|
2
2
|
//# sourceMappingURL=543.openc3-tool-base.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"543.openc3-tool-base.js","mappings":"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","sources":["webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Login.vue?085f","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Login.vue?ebfd","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Login.vue","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Login.vue?dc66"],"sourcesContent":["var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-card\",\n [\n _c(\"v-card-title\", [_vm._v(\" Login \")]),\n _vm._v(\" \"),\n _c(\"v-card-subtitle\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.isSet ? \"Enter the\" : \"Create a\") +\n \"\\n password to begin using OpenC3\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\n \"v-form\",\n [\n _vm.isSet && _vm.reset\n ? _c(\"v-text-field\", {\n attrs: { type: \"password\", label: \"Old Password\" },\n model: {\n value: _vm.oldPassword,\n callback: function ($$v) {\n _vm.oldPassword = $$v\n },\n expression: \"oldPassword\",\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"v-text-field\", {\n attrs: {\n type: \"password\",\n label: (!_vm.isSet || _vm.reset ? \"New \" : \"\") + \"Password\",\n \"data-test\": \"new-password\",\n },\n model: {\n value: _vm.password,\n callback: function ($$v) {\n _vm.password = $$v\n },\n expression: \"password\",\n },\n }),\n _vm._v(\" \"),\n _vm.reset\n ? _c(\"v-text-field\", {\n attrs: {\n rules: [_vm.rules.matchPassword],\n type: \"password\",\n label: \"Confirm Password\",\n \"data-test\": \"confirm-password\",\n },\n model: {\n value: _vm.confirmPassword,\n callback: function ($$v) {\n _vm.confirmPassword = $$v\n },\n expression: \"confirmPassword\",\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.reset\n ? _c(\n \"v-btn\",\n {\n attrs: {\n type: \"submit\",\n large: \"\",\n color: _vm.isSet ? \"warn\" : \"success\",\n disabled: !_vm.formValid,\n \"data-test\": \"set-password\",\n },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.setPassword.apply(null, arguments)\n },\n },\n },\n [_vm._v(\"\\n Set\\n \")]\n )\n : _c(\n \"v-container\",\n [\n _c(\n \"v-row\",\n [\n _c(\n \"v-btn\",\n {\n attrs: {\n type: \"submit\",\n large: \"\",\n color: \"success\",\n disabled: !_vm.formValid,\n },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.verifyPassword.apply(\n null,\n arguments\n )\n },\n },\n },\n [_vm._v(\"\\n Login\\n \")]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { text: \"\", small: \"\" },\n on: { click: _vm.showReset },\n },\n [_vm._v(\" Change Password \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-alert\",\n {\n attrs: { type: _vm.alertType, dismissible: \"\" },\n model: {\n value: _vm.showAlert,\n callback: function ($$v) {\n _vm.showAlert = $$v\n },\n expression: \"showAlert\",\n },\n },\n [_vm._v(\"\\n \" + _vm._s(_vm.alert) + \"\\n \")]\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title> Login </v-card-title>\n <v-card-subtitle>\n {{ isSet ? 'Enter the' : 'Create a' }}\n password to begin using OpenC3\n </v-card-subtitle>\n <v-card-text>\n <v-form>\n <v-text-field\n v-if=\"isSet && reset\"\n v-model=\"oldPassword\"\n type=\"password\"\n label=\"Old Password\"\n />\n <v-text-field\n v-model=\"password\"\n type=\"password\"\n :label=\"`${!isSet || reset ? 'New ' : ''}Password`\"\n data-test=\"new-password\"\n />\n <v-text-field\n v-if=\"reset\"\n v-model=\"confirmPassword\"\n :rules=\"[rules.matchPassword]\"\n type=\"password\"\n label=\"Confirm Password\"\n data-test=\"confirm-password\"\n />\n <v-btn\n v-if=\"reset\"\n type=\"submit\"\n @click.prevent=\"setPassword\"\n large\n :color=\"isSet ? 'warn' : 'success'\"\n :disabled=\"!formValid\"\n data-test=\"set-password\"\n >\n Set\n </v-btn>\n <v-container v-else>\n <v-row>\n <v-btn\n type=\"submit\"\n @click.prevent=\"verifyPassword\"\n large\n color=\"success\"\n :disabled=\"!formValid\"\n >\n Login\n </v-btn>\n <v-spacer />\n <v-btn text small @click=\"showReset\"> Change Password </v-btn>\n </v-row>\n </v-container>\n </v-form>\n </v-card-text>\n <v-alert :type=\"alertType\" v-model=\"showAlert\" dismissible>\n {{ alert }}\n </v-alert>\n </v-card>\n</template>\n\n<script>\nimport Api from '../../../services/api'\n\nexport default {\n data() {\n return {\n isSet: true,\n password: '',\n confirmPassword: '',\n oldPassword: '',\n reset: false, // setting a password for the first time, or changing to a new password\n alert: '',\n alertType: 'success',\n showAlert: false,\n }\n },\n computed: {\n options: function () {\n return {\n noAuth: true,\n noScope: true, // lol\n }\n },\n rules: function () {\n return {\n matchPassword: () =>\n this.password === this.confirmPassword || 'Passwords must match',\n }\n },\n formValid: function () {\n if (this.reset) {\n if (!this.isSet) {\n return !!this.password && this.password === this.confirmPassword\n } else {\n return (\n !!this.oldPassword &&\n !!this.password &&\n this.password === this.confirmPassword\n )\n }\n } else {\n return !!this.password\n }\n },\n },\n created: function () {\n Api.get('/openc3-api/auth/token-exists', this.options).then((response) => {\n this.isSet = !!response.data.result\n if (!this.isSet) {\n this.reset = true\n }\n })\n },\n methods: {\n showReset: function () {\n this.reset = true\n },\n login: function () {\n localStorage.openc3Token = this.password\n const redirect = new URLSearchParams(window.location.search).get(\n 'redirect',\n )\n window.location = decodeURI(redirect || '/')\n },\n verifyPassword: function () {\n this.showAlert = false\n Api.post('/openc3-api/auth/verify', {\n data: {\n token: this.password,\n },\n ...this.options,\n })\n .then((response) => {\n this.login()\n })\n .catch((error) => {\n this.alert = 'Incorrect password'\n this.alertType = 'warning'\n this.showAlert = true\n })\n },\n setPassword: function () {\n this.showAlert = false\n Api.post('/openc3-api/auth/set', {\n data: {\n old_token: this.oldPassword,\n token: this.password,\n },\n ...this.options,\n }).then(this.login)\n },\n },\n}\n</script>\n","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=c187c65e&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('c187c65e')) {\n api.createRecord('c187c65e', component.options)\n } else {\n api.reload('c187c65e', component.options)\n }\n module.hot.accept(\"./Login.vue?vue&type=template&id=c187c65e&\", function () {\n api.rerender('c187c65e', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/tools/base/components/Login.vue\"\nexport default component.exports"],"names":["render","_vm","this","_h","$createElement","_c","_self","_v","_s","isSet","reset","attrs","type","label","model","value","oldPassword","callback","$$v","expression","_e","password","rules","matchPassword","confirmPassword","large","color","disabled","formValid","on","click","$event","preventDefault","setPassword","apply","arguments","verifyPassword","text","small","showReset","alertType","dismissible","showAlert","alert","_withStripped","data","computed","options","noAuth","noScope","created","Api","get","then","response","result","methods","login","localStorage","openc3Token","redirect","URLSearchParams","window","location","search","decodeURI","post","token","catch","error","old_token","component","__file"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"543.openc3-tool-base.js","mappings":"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","sources":["webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Login.vue?085f","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Login.vue","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Login.vue?ebfd","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Login.vue?dc66"],"sourcesContent":["var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-card\",\n [\n _c(\"v-card-title\", [_vm._v(\" Login \")]),\n _vm._v(\" \"),\n _c(\"v-card-subtitle\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.isSet ? \"Enter the\" : \"Create a\") +\n \"\\n password to begin using OpenC3\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\n \"v-form\",\n [\n _vm.isSet && _vm.reset\n ? _c(\"v-text-field\", {\n attrs: { type: \"password\", label: \"Old Password\" },\n model: {\n value: _vm.oldPassword,\n callback: function ($$v) {\n _vm.oldPassword = $$v\n },\n expression: \"oldPassword\",\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"v-text-field\", {\n attrs: {\n type: \"password\",\n label: (!_vm.isSet || _vm.reset ? \"New \" : \"\") + \"Password\",\n \"data-test\": \"new-password\",\n },\n model: {\n value: _vm.password,\n callback: function ($$v) {\n _vm.password = $$v\n },\n expression: \"password\",\n },\n }),\n _vm._v(\" \"),\n _vm.reset\n ? _c(\"v-text-field\", {\n attrs: {\n rules: [_vm.rules.matchPassword],\n type: \"password\",\n label: \"Confirm Password\",\n \"data-test\": \"confirm-password\",\n },\n model: {\n value: _vm.confirmPassword,\n callback: function ($$v) {\n _vm.confirmPassword = $$v\n },\n expression: \"confirmPassword\",\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.reset\n ? _c(\n \"v-btn\",\n {\n attrs: {\n type: \"submit\",\n large: \"\",\n color: _vm.isSet ? \"warn\" : \"success\",\n disabled: !_vm.formValid,\n \"data-test\": \"set-password\",\n },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.setPassword.apply(null, arguments)\n },\n },\n },\n [_vm._v(\"\\n Set\\n \")]\n )\n : _c(\n \"v-container\",\n [\n _c(\n \"v-row\",\n [\n _c(\n \"v-btn\",\n {\n attrs: {\n type: \"submit\",\n large: \"\",\n color: \"success\",\n disabled: !_vm.formValid,\n },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.verifyPassword.apply(\n null,\n arguments\n )\n },\n },\n },\n [_vm._v(\"\\n Login\\n \")]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { text: \"\", small: \"\" },\n on: { click: _vm.showReset },\n },\n [_vm._v(\" Change Password \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-alert\",\n {\n attrs: { type: _vm.alertType, dismissible: \"\" },\n model: {\n value: _vm.showAlert,\n callback: function ($$v) {\n _vm.showAlert = $$v\n },\n expression: \"showAlert\",\n },\n },\n [_vm._v(\"\\n \" + _vm._s(_vm.alert) + \"\\n \")]\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title> Login </v-card-title>\n <v-card-subtitle>\n {{ isSet ? 'Enter the' : 'Create a' }}\n password to begin using OpenC3\n </v-card-subtitle>\n <v-card-text>\n <v-form>\n <v-text-field\n v-if=\"isSet && reset\"\n v-model=\"oldPassword\"\n type=\"password\"\n label=\"Old Password\"\n />\n <v-text-field\n v-model=\"password\"\n type=\"password\"\n :label=\"`${!isSet || reset ? 'New ' : ''}Password`\"\n data-test=\"new-password\"\n />\n <v-text-field\n v-if=\"reset\"\n v-model=\"confirmPassword\"\n :rules=\"[rules.matchPassword]\"\n type=\"password\"\n label=\"Confirm Password\"\n data-test=\"confirm-password\"\n />\n <v-btn\n v-if=\"reset\"\n type=\"submit\"\n @click.prevent=\"setPassword\"\n large\n :color=\"isSet ? 'warn' : 'success'\"\n :disabled=\"!formValid\"\n data-test=\"set-password\"\n >\n Set\n </v-btn>\n <v-container v-else>\n <v-row>\n <v-btn\n type=\"submit\"\n @click.prevent=\"verifyPassword\"\n large\n color=\"success\"\n :disabled=\"!formValid\"\n >\n Login\n </v-btn>\n <v-spacer />\n <v-btn text small @click=\"showReset\"> Change Password </v-btn>\n </v-row>\n </v-container>\n </v-form>\n </v-card-text>\n <v-alert :type=\"alertType\" v-model=\"showAlert\" dismissible>\n {{ alert }}\n </v-alert>\n </v-card>\n</template>\n\n<script>\nimport Api from '../../../services/api'\n\nexport default {\n data() {\n return {\n isSet: true,\n password: '',\n confirmPassword: '',\n oldPassword: '',\n reset: false, // setting a password for the first time, or changing to a new password\n alert: '',\n alertType: 'success',\n showAlert: false,\n }\n },\n computed: {\n options: function () {\n return {\n noAuth: true,\n noScope: true, // lol\n }\n },\n rules: function () {\n return {\n matchPassword: () =>\n this.password === this.confirmPassword || 'Passwords must match',\n }\n },\n formValid: function () {\n if (this.reset) {\n if (!this.isSet) {\n return !!this.password && this.password === this.confirmPassword\n } else {\n return (\n !!this.oldPassword &&\n !!this.password &&\n this.password === this.confirmPassword\n )\n }\n } else {\n return !!this.password\n }\n },\n },\n created: function () {\n Api.get('/openc3-api/auth/token-exists', this.options).then((response) => {\n this.isSet = !!response.data.result\n if (!this.isSet) {\n this.reset = true\n }\n })\n },\n methods: {\n showReset: function () {\n this.reset = true\n },\n login: function () {\n localStorage.openc3Token = this.password\n const redirect = new URLSearchParams(window.location.search).get(\n 'redirect',\n )\n window.location = decodeURI(redirect || '/')\n },\n verifyPassword: function () {\n this.showAlert = false\n Api.post('/openc3-api/auth/verify', {\n data: {\n token: this.password,\n },\n ...this.options,\n })\n .then((response) => {\n this.login()\n })\n .catch((error) => {\n this.alert = 'Incorrect password'\n this.alertType = 'warning'\n this.showAlert = true\n })\n },\n setPassword: function () {\n this.showAlert = false\n Api.post('/openc3-api/auth/set', {\n data: {\n old_token: this.oldPassword,\n token: this.password,\n },\n ...this.options,\n }).then(this.login)\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=c187c65e&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('c187c65e')) {\n api.createRecord('c187c65e', component.options)\n } else {\n api.reload('c187c65e', component.options)\n }\n module.hot.accept(\"./Login.vue?vue&type=template&id=c187c65e&\", function () {\n api.rerender('c187c65e', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/tools/base/components/Login.vue\"\nexport default component.exports"],"names":["render","_vm","this","_h","$createElement","_c","_self","_v","_s","isSet","reset","attrs","type","label","model","value","oldPassword","callback","$$v","expression","_e","password","rules","matchPassword","confirmPassword","large","color","disabled","formValid","on","click","$event","preventDefault","setPassword","apply","arguments","verifyPassword","text","small","showReset","alertType","dismissible","showAlert","alert","_withStripped","data","computed","options","noAuth","noScope","created","Api","get","then","response","result","methods","login","localStorage","openc3Token","redirect","URLSearchParams","window","location","search","decodeURI","post","token","catch","error","old_token","component","__file"],"sourceRoot":""}
|
@@ -1,3 +1,3 @@
|
|
1
1
|
/*! For license information please see 576.openc3-tool-base.js.LICENSE.txt */
|
2
|
-
"use strict";(self.webpackChunktool_base=self.webpackChunktool_base||[]).push([[576],{576:
|
2
|
+
"use strict";(self.webpackChunktool_base=self.webpackChunktool_base||[]).push([[576],{576:(e,t,s)=>{s.r(t),s.d(t,{scopeCss:()=>T});const r="-shadowcsshost",c="-shadowcssslotted",o="-shadowcsscontext",n=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",l=new RegExp("("+r+n,"gim"),a=new RegExp("("+o+n,"gim"),i=new RegExp("("+c+n,"gim"),p=r+"-no-combinator",h=/-shadowcsshost-no-combinator([^\s]*)/,u=[/::shadow/g,/::content/g],g=/-shadowcsshost/gim,d=/:host/gim,m=/::slotted/gim,f=/:host-context/gim,$=/\/\*\s*[\s\S]*?\*\//g,x=/\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g,_=/(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g,w=/([{}])/g,b=/(^.*?[^\\])??((:+)(.*)|$)/,S="%BLOCK%",W=(e,t)=>{const s=k(e);let r=0;return s.escapedString.replace(_,((...e)=>{const c=e[2];let o="",n=e[4],l="";n&&n.startsWith("{"+S)&&(o=s.blocks[r++],n=n.substring(8),l="{");const a=t({selector:c,content:o});return`${e[1]}${a.selector}${e[3]}${l}${a.content}${n}`}))},k=e=>{const t=e.split(w),s=[],r=[];let c=0,o=[];for(let e=0;e<t.length;e++){const n=t[e];"}"===n&&c--,c>0?o.push(n):(o.length>0&&(r.push(o.join("")),s.push(S),o=[]),s.push(n)),"{"===n&&c++}return o.length>0&&(r.push(o.join("")),s.push(S)),{escapedString:s.join(""),blocks:r}},O=(e,t,s)=>e.replace(t,((...e)=>{if(e[2]){const t=e[2].split(","),r=[];for(let c=0;c<t.length;c++){const o=t[c].trim();if(!o)break;r.push(s(p,o,e[3]))}return r.join(",")}return p+e[3]})),j=(e,t,s)=>e+t.replace(r,"")+s,E=(e,t,s)=>t.indexOf(r)>-1?j(e,t,s):e+t+s+", "+t+" "+e+s,R=(e,t)=>e.replace(b,((e,s="",r,c="",o="")=>s+t+c+o)),C=(e,t,s,r,c)=>W(e,(e=>{let c=e.selector,o=e.content;return"@"!==e.selector[0]?c=((e,t,s,r)=>e.split(",").map((e=>r&&e.indexOf("."+r)>-1?e.trim():((e,t)=>!(e=>(e=e.replace(/\[/g,"\\[").replace(/\]/g,"\\]"),new RegExp("^("+e+")([>\\s~+[.,{:][\\s\\S]*)?$","m")))(t).test(e))(e,t)?((e,t,s)=>{const r="."+(t=t.replace(/\[is=([^\]]*)\]/g,((e,...t)=>t[0]))),c=e=>{let c=e.trim();if(!c)return"";if(e.indexOf(p)>-1)c=((e,t,s)=>{if(g.lastIndex=0,g.test(e)){const t=`.${s}`;return e.replace(h,((e,s)=>R(s,t))).replace(g,t+" ")}return t+" "+e})(e,t,s);else{const t=e.replace(g,"");t.length>0&&(c=R(t,r))}return c},o=(e=>{const t=[];let s=0;return{content:(e=e.replace(/(\[[^\]]*\])/g,((e,r)=>{const c=`__ph-${s}__`;return t.push(r),s++,c}))).replace(/(:nth-[-\w]+)(\([^)]+\))/g,((e,r,c)=>{const o=`__ph-${s}__`;return t.push(c),s++,r+o})),placeholders:t}})(e);let n,l="",a=0;const i=/( |>|\+|~(?!=))\s*/g;let u=!((e=o.content).indexOf(p)>-1);for(;null!==(n=i.exec(e));){const t=n[1],s=e.slice(a,n.index).trim();u=u||s.indexOf(p)>-1,l+=`${u?c(s):s} ${t} `,a=i.lastIndex}const d=e.substring(a);return u=u||d.indexOf(p)>-1,l+=u?c(d):d,m=o.placeholders,l.replace(/__ph-(\d+)__/g,((e,t)=>m[+t]));var m})(e,t,s).trim():e.trim())).join(", "))(e.selector,t,s,r):(e.selector.startsWith("@media")||e.selector.startsWith("@supports")||e.selector.startsWith("@page")||e.selector.startsWith("@document"))&&(o=C(e.content,t,s,r)),{selector:c.replace(/\s{2,}/g," ").trim(),content:o}})),T=(e,t,s)=>{const n=t+"-h",h=t+"-s",g=e.match(x)||[];e=e.replace($,"");const _=[];if(s){const t=e=>{const t=`/*!@___${_.length}___*/`,s=`/*!@${e.selector}*/`;return _.push({placeholder:t,comment:s}),e.selector=t+e.selector,e};e=W(e,(e=>"@"!==e.selector[0]?t(e):e.selector.startsWith("@media")||e.selector.startsWith("@supports")||e.selector.startsWith("@page")||e.selector.startsWith("@document")?(e.content=W(e.content,t),e):e))}const w=((e,t,s,n,h)=>{const g=((e,t)=>{const s="."+t+" > ",r=[];return e=e.replace(i,((...e)=>{if(e[2]){const t=e[2].trim(),c=e[3],o=s+t+c;let n="";for(let t=e[4]-1;t>=0;t--){const s=e[5][t];if("}"===s||","===s)break;n=s+n}const l=n+o,a=`${n.trimRight()}${o.trim()}`;if(l.trim()!==a.trim()){const e=`${a}, ${l}`;r.push({orgSelector:l,updatedSelector:e})}return o}return p+e[3]})),{selectors:r,cssText:e}})(e=(e=>O(e,a,E))(e=(e=>O(e,l,j))(e=e.replace(f,o).replace(d,r).replace(m,c))),n);return e=(e=>u.reduce(((e,t)=>e.replace(t," ")),e))(e=g.cssText),t&&(e=C(e,t,s,n)),{cssText:(e=(e=e.replace(/-shadowcsshost-no-combinator/g,`.${s}`)).replace(/>\s*\*\s+([^{, ]+)/gm," $1 ")).trim(),slottedSelectors:g.selectors}})(e,t,n,h);return e=[w.cssText,...g].join("\n"),s&&_.forEach((({placeholder:t,comment:s})=>{e=e.replace(t,s)})),w.slottedSelectors.forEach((t=>{e=e.replace(t.orgSelector,t.updatedSelector)})),e}}}]);
|
3
3
|
//# sourceMappingURL=576.openc3-tool-base.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"576.openc3-tool-base.js","mappings":"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","sources":["webpack://tool-base/./node_modules/@stencil/core/internal/client/shadow-css.js"],"sourcesContent":["/*\n Stencil Client Platform v3.4.2 | MIT Licensed | https://stenciljs.com\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n *\n * This file is a port of shadowCSS from webcomponents.js to TypeScript.\n * https://github.com/webcomponents/webcomponentsjs/blob/4efecd7e0e/src/ShadowCSS/ShadowCSS.js\n * https://github.com/angular/angular/blob/master/packages/compiler/src/shadow_css.ts\n */\nconst safeSelector = (selector) => {\n const placeholders = [];\n let index = 0;\n // Replaces attribute selectors with placeholders.\n // The WS in [attr=\"va lue\"] would otherwise be interpreted as a selector separator.\n selector = selector.replace(/(\\[[^\\]]*\\])/g, (_, keep) => {\n const replaceBy = `__ph-${index}__`;\n placeholders.push(keep);\n index++;\n return replaceBy;\n });\n // Replaces the expression in `:nth-child(2n + 1)` with a placeholder.\n // WS and \"+\" would otherwise be interpreted as selector separators.\n const content = selector.replace(/(:nth-[-\\w]+)(\\([^)]+\\))/g, (_, pseudo, exp) => {\n const replaceBy = `__ph-${index}__`;\n placeholders.push(exp);\n index++;\n return pseudo + replaceBy;\n });\n const ss = {\n content,\n placeholders,\n };\n return ss;\n};\nconst restoreSafeSelector = (placeholders, content) => {\n return content.replace(/__ph-(\\d+)__/g, (_, index) => placeholders[+index]);\n};\nconst _polyfillHost = '-shadowcsshost';\nconst _polyfillSlotted = '-shadowcssslotted';\n// note: :host-context pre-processed to -shadowcsshostcontext.\nconst _polyfillHostContext = '-shadowcsscontext';\nconst _parenSuffix = ')(?:\\\\((' + '(?:\\\\([^)(]*\\\\)|[^)(]*)+?' + ')\\\\))?([^,{]*)';\nconst _cssColonHostRe = new RegExp('(' + _polyfillHost + _parenSuffix, 'gim');\nconst _cssColonHostContextRe = new RegExp('(' + _polyfillHostContext + _parenSuffix, 'gim');\nconst _cssColonSlottedRe = new RegExp('(' + _polyfillSlotted + _parenSuffix, 'gim');\nconst _polyfillHostNoCombinator = _polyfillHost + '-no-combinator';\nconst _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\\s]*)/;\nconst _shadowDOMSelectorsRe = [/::shadow/g, /::content/g];\nconst _selectorReSuffix = '([>\\\\s~+[.,{:][\\\\s\\\\S]*)?$';\nconst _polyfillHostRe = /-shadowcsshost/gim;\nconst _colonHostRe = /:host/gim;\nconst _colonSlottedRe = /::slotted/gim;\nconst _colonHostContextRe = /:host-context/gim;\nconst _commentRe = /\\/\\*\\s*[\\s\\S]*?\\*\\//g;\nconst stripComments = (input) => {\n return input.replace(_commentRe, '');\n};\nconst _commentWithHashRe = /\\/\\*\\s*#\\s*source(Mapping)?URL=[\\s\\S]+?\\*\\//g;\nconst extractCommentsWithHash = (input) => {\n return input.match(_commentWithHashRe) || [];\n};\nconst _ruleRe = /(\\s*)([^;\\{\\}]+?)(\\s*)((?:{%BLOCK%}?\\s*;?)|(?:\\s*;))/g;\nconst _curlyRe = /([{}])/g;\nconst _selectorPartsRe = /(^.*?[^\\\\])??((:+)(.*)|$)/;\nconst OPEN_CURLY = '{';\nconst CLOSE_CURLY = '}';\nconst BLOCK_PLACEHOLDER = '%BLOCK%';\nconst processRules = (input, ruleCallback) => {\n const inputWithEscapedBlocks = escapeBlocks(input);\n let nextBlockIndex = 0;\n return inputWithEscapedBlocks.escapedString.replace(_ruleRe, (...m) => {\n const selector = m[2];\n let content = '';\n let suffix = m[4];\n let contentPrefix = '';\n if (suffix && suffix.startsWith('{' + BLOCK_PLACEHOLDER)) {\n content = inputWithEscapedBlocks.blocks[nextBlockIndex++];\n suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1);\n contentPrefix = '{';\n }\n const cssRule = {\n selector,\n content,\n };\n const rule = ruleCallback(cssRule);\n return `${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`;\n });\n};\nconst escapeBlocks = (input) => {\n const inputParts = input.split(_curlyRe);\n const resultParts = [];\n const escapedBlocks = [];\n let bracketCount = 0;\n let currentBlockParts = [];\n for (let partIndex = 0; partIndex < inputParts.length; partIndex++) {\n const part = inputParts[partIndex];\n if (part === CLOSE_CURLY) {\n bracketCount--;\n }\n if (bracketCount > 0) {\n currentBlockParts.push(part);\n }\n else {\n if (currentBlockParts.length > 0) {\n escapedBlocks.push(currentBlockParts.join(''));\n resultParts.push(BLOCK_PLACEHOLDER);\n currentBlockParts = [];\n }\n resultParts.push(part);\n }\n if (part === OPEN_CURLY) {\n bracketCount++;\n }\n }\n if (currentBlockParts.length > 0) {\n escapedBlocks.push(currentBlockParts.join(''));\n resultParts.push(BLOCK_PLACEHOLDER);\n }\n const strEscapedBlocks = {\n escapedString: resultParts.join(''),\n blocks: escapedBlocks,\n };\n return strEscapedBlocks;\n};\nconst insertPolyfillHostInCssText = (selector) => {\n selector = selector\n .replace(_colonHostContextRe, _polyfillHostContext)\n .replace(_colonHostRe, _polyfillHost)\n .replace(_colonSlottedRe, _polyfillSlotted);\n return selector;\n};\nconst convertColonRule = (cssText, regExp, partReplacer) => {\n // m[1] = :host(-context), m[2] = contents of (), m[3] rest of rule\n return cssText.replace(regExp, (...m) => {\n if (m[2]) {\n const parts = m[2].split(',');\n const r = [];\n for (let i = 0; i < parts.length; i++) {\n const p = parts[i].trim();\n if (!p)\n break;\n r.push(partReplacer(_polyfillHostNoCombinator, p, m[3]));\n }\n return r.join(',');\n }\n else {\n return _polyfillHostNoCombinator + m[3];\n }\n });\n};\nconst colonHostPartReplacer = (host, part, suffix) => {\n return host + part.replace(_polyfillHost, '') + suffix;\n};\nconst convertColonHost = (cssText) => {\n return convertColonRule(cssText, _cssColonHostRe, colonHostPartReplacer);\n};\nconst colonHostContextPartReplacer = (host, part, suffix) => {\n if (part.indexOf(_polyfillHost) > -1) {\n return colonHostPartReplacer(host, part, suffix);\n }\n else {\n return host + part + suffix + ', ' + part + ' ' + host + suffix;\n }\n};\nconst convertColonSlotted = (cssText, slotScopeId) => {\n const slotClass = '.' + slotScopeId + ' > ';\n const selectors = [];\n cssText = cssText.replace(_cssColonSlottedRe, (...m) => {\n if (m[2]) {\n const compound = m[2].trim();\n const suffix = m[3];\n const slottedSelector = slotClass + compound + suffix;\n let prefixSelector = '';\n for (let i = m[4] - 1; i >= 0; i--) {\n const char = m[5][i];\n if (char === '}' || char === ',') {\n break;\n }\n prefixSelector = char + prefixSelector;\n }\n const orgSelector = prefixSelector + slottedSelector;\n const addedSelector = `${prefixSelector.trimRight()}${slottedSelector.trim()}`;\n if (orgSelector.trim() !== addedSelector.trim()) {\n const updatedSelector = `${addedSelector}, ${orgSelector}`;\n selectors.push({\n orgSelector,\n updatedSelector,\n });\n }\n return slottedSelector;\n }\n else {\n return _polyfillHostNoCombinator + m[3];\n }\n });\n return {\n selectors,\n cssText,\n };\n};\nconst convertColonHostContext = (cssText) => {\n return convertColonRule(cssText, _cssColonHostContextRe, colonHostContextPartReplacer);\n};\nconst convertShadowDOMSelectors = (cssText) => {\n return _shadowDOMSelectorsRe.reduce((result, pattern) => result.replace(pattern, ' '), cssText);\n};\nconst makeScopeMatcher = (scopeSelector) => {\n const lre = /\\[/g;\n const rre = /\\]/g;\n scopeSelector = scopeSelector.replace(lre, '\\\\[').replace(rre, '\\\\]');\n return new RegExp('^(' + scopeSelector + ')' + _selectorReSuffix, 'm');\n};\nconst selectorNeedsScoping = (selector, scopeSelector) => {\n const re = makeScopeMatcher(scopeSelector);\n return !re.test(selector);\n};\nconst injectScopingSelector = (selector, scopingSelector) => {\n return selector.replace(_selectorPartsRe, (_, before = '', _colonGroup, colon = '', after = '') => {\n return before + scopingSelector + colon + after;\n });\n};\nconst applySimpleSelectorScope = (selector, scopeSelector, hostSelector) => {\n // In Android browser, the lastIndex is not reset when the regex is used in String.replace()\n _polyfillHostRe.lastIndex = 0;\n if (_polyfillHostRe.test(selector)) {\n const replaceBy = `.${hostSelector}`;\n return selector\n .replace(_polyfillHostNoCombinatorRe, (_, selector) => injectScopingSelector(selector, replaceBy))\n .replace(_polyfillHostRe, replaceBy + ' ');\n }\n return scopeSelector + ' ' + selector;\n};\nconst applyStrictSelectorScope = (selector, scopeSelector, hostSelector) => {\n const isRe = /\\[is=([^\\]]*)\\]/g;\n scopeSelector = scopeSelector.replace(isRe, (_, ...parts) => parts[0]);\n const className = '.' + scopeSelector;\n const _scopeSelectorPart = (p) => {\n let scopedP = p.trim();\n if (!scopedP) {\n return '';\n }\n if (p.indexOf(_polyfillHostNoCombinator) > -1) {\n scopedP = applySimpleSelectorScope(p, scopeSelector, hostSelector);\n }\n else {\n // remove :host since it should be unnecessary\n const t = p.replace(_polyfillHostRe, '');\n if (t.length > 0) {\n scopedP = injectScopingSelector(t, className);\n }\n }\n return scopedP;\n };\n const safeContent = safeSelector(selector);\n selector = safeContent.content;\n let scopedSelector = '';\n let startIndex = 0;\n let res;\n const sep = /( |>|\\+|~(?!=))\\s*/g;\n // If a selector appears before :host it should not be shimmed as it\n // matches on ancestor elements and not on elements in the host's shadow\n // `:host-context(div)` is transformed to\n // `-shadowcsshost-no-combinatordiv, div -shadowcsshost-no-combinator`\n // the `div` is not part of the component in the 2nd selectors and should not be scoped.\n // Historically `component-tag:host` was matching the component so we also want to preserve\n // this behavior to avoid breaking legacy apps (it should not match).\n // The behavior should be:\n // - `tag:host` -> `tag[h]` (this is to avoid breaking legacy apps, should not match anything)\n // - `tag :host` -> `tag [h]` (`tag` is not scoped because it's considered part of a\n // `:host-context(tag)`)\n const hasHost = selector.indexOf(_polyfillHostNoCombinator) > -1;\n // Only scope parts after the first `-shadowcsshost-no-combinator` when it is present\n let shouldScope = !hasHost;\n while ((res = sep.exec(selector)) !== null) {\n const separator = res[1];\n const part = selector.slice(startIndex, res.index).trim();\n shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1;\n const scopedPart = shouldScope ? _scopeSelectorPart(part) : part;\n scopedSelector += `${scopedPart} ${separator} `;\n startIndex = sep.lastIndex;\n }\n const part = selector.substring(startIndex);\n shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1;\n scopedSelector += shouldScope ? _scopeSelectorPart(part) : part;\n // replace the placeholders with their original values\n return restoreSafeSelector(safeContent.placeholders, scopedSelector);\n};\nconst scopeSelector = (selector, scopeSelectorText, hostSelector, slotSelector) => {\n return selector\n .split(',')\n .map((shallowPart) => {\n if (slotSelector && shallowPart.indexOf('.' + slotSelector) > -1) {\n return shallowPart.trim();\n }\n if (selectorNeedsScoping(shallowPart, scopeSelectorText)) {\n return applyStrictSelectorScope(shallowPart, scopeSelectorText, hostSelector).trim();\n }\n else {\n return shallowPart.trim();\n }\n })\n .join(', ');\n};\nconst scopeSelectors = (cssText, scopeSelectorText, hostSelector, slotSelector, commentOriginalSelector) => {\n return processRules(cssText, (rule) => {\n let selector = rule.selector;\n let content = rule.content;\n if (rule.selector[0] !== '@') {\n selector = scopeSelector(rule.selector, scopeSelectorText, hostSelector, slotSelector);\n }\n else if (rule.selector.startsWith('@media') ||\n rule.selector.startsWith('@supports') ||\n rule.selector.startsWith('@page') ||\n rule.selector.startsWith('@document')) {\n content = scopeSelectors(rule.content, scopeSelectorText, hostSelector, slotSelector);\n }\n const cssRule = {\n selector: selector.replace(/\\s{2,}/g, ' ').trim(),\n content,\n };\n return cssRule;\n });\n};\nconst scopeCssText = (cssText, scopeId, hostScopeId, slotScopeId, commentOriginalSelector) => {\n cssText = insertPolyfillHostInCssText(cssText);\n cssText = convertColonHost(cssText);\n cssText = convertColonHostContext(cssText);\n const slotted = convertColonSlotted(cssText, slotScopeId);\n cssText = slotted.cssText;\n cssText = convertShadowDOMSelectors(cssText);\n if (scopeId) {\n cssText = scopeSelectors(cssText, scopeId, hostScopeId, slotScopeId);\n }\n cssText = cssText.replace(/-shadowcsshost-no-combinator/g, `.${hostScopeId}`);\n cssText = cssText.replace(/>\\s*\\*\\s+([^{, ]+)/gm, ' $1 ');\n return {\n cssText: cssText.trim(),\n slottedSelectors: slotted.selectors,\n };\n};\nconst scopeCss = (cssText, scopeId, commentOriginalSelector) => {\n const hostScopeId = scopeId + '-h';\n const slotScopeId = scopeId + '-s';\n const commentsWithHash = extractCommentsWithHash(cssText);\n cssText = stripComments(cssText);\n const orgSelectors = [];\n if (commentOriginalSelector) {\n const processCommentedSelector = (rule) => {\n const placeholder = `/*!@___${orgSelectors.length}___*/`;\n const comment = `/*!@${rule.selector}*/`;\n orgSelectors.push({ placeholder, comment });\n rule.selector = placeholder + rule.selector;\n return rule;\n };\n cssText = processRules(cssText, (rule) => {\n if (rule.selector[0] !== '@') {\n return processCommentedSelector(rule);\n }\n else if (rule.selector.startsWith('@media') ||\n rule.selector.startsWith('@supports') ||\n rule.selector.startsWith('@page') ||\n rule.selector.startsWith('@document')) {\n rule.content = processRules(rule.content, processCommentedSelector);\n return rule;\n }\n return rule;\n });\n }\n const scoped = scopeCssText(cssText, scopeId, hostScopeId, slotScopeId);\n cssText = [scoped.cssText, ...commentsWithHash].join('\\n');\n if (commentOriginalSelector) {\n orgSelectors.forEach(({ placeholder, comment }) => {\n cssText = cssText.replace(placeholder, comment);\n });\n }\n scoped.slottedSelectors.forEach((slottedSelector) => {\n cssText = cssText.replace(slottedSelector.orgSelector, slottedSelector.updatedSelector);\n });\n return cssText;\n};\n\nexport { scopeCss };\n"],"names":["_polyfillHost","_polyfillSlotted","_polyfillHostContext","_parenSuffix","_cssColonHostRe","RegExp","_cssColonHostContextRe","_cssColonSlottedRe","_polyfillHostNoCombinator","_polyfillHostNoCombinatorRe","_shadowDOMSelectorsRe","_polyfillHostRe","_colonHostRe","_colonSlottedRe","_colonHostContextRe","_commentRe","_commentWithHashRe","_ruleRe","_curlyRe","_selectorPartsRe","BLOCK_PLACEHOLDER","processRules","input","ruleCallback","inputWithEscapedBlocks","escapeBlocks","nextBlockIndex","escapedString","replace","m","selector","content","suffix","contentPrefix","startsWith","blocks","substring","length","rule","inputParts","split","resultParts","escapedBlocks","bracketCount","currentBlockParts","partIndex","part","push","join","convertColonRule","cssText","regExp","partReplacer","parts","r","i","p","trim","colonHostPartReplacer","host","colonHostContextPartReplacer","indexOf","injectScopingSelector","scopingSelector","_","before","_colonGroup","colon","after","scopeSelectors","scopeSelectorText","hostSelector","slotSelector","commentOriginalSelector","map","shallowPart","scopeSelector","makeScopeMatcher","test","selectorNeedsScoping","className","_scopeSelectorPart","scopedP","lastIndex","replaceBy","applySimpleSelectorScope","t","safeContent","placeholders","index","keep","pseudo","exp","safeSelector","res","scopedSelector","startIndex","sep","shouldScope","exec","separator","slice","applyStrictSelectorScope","scopeCss","scopeId","hostScopeId","slotScopeId","commentsWithHash","match","orgSelectors","processCommentedSelector","placeholder","comment","scoped","slotted","slotClass","selectors","compound","slottedSelector","prefixSelector","char","orgSelector","addedSelector","trimRight","updatedSelector","convertColonSlotted","convertColonHostContext","convertColonHost","reduce","result","pattern","convertShadowDOMSelectors","slottedSelectors","scopeCssText","forEach"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"576.openc3-tool-base.js","mappings":"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","sources":["webpack://tool-base/./node_modules/@stencil/core/internal/client/shadow-css.js"],"sourcesContent":["/*\n Stencil Client Platform v3.4.2 | MIT Licensed | https://stenciljs.com\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n *\n * This file is a port of shadowCSS from webcomponents.js to TypeScript.\n * https://github.com/webcomponents/webcomponentsjs/blob/4efecd7e0e/src/ShadowCSS/ShadowCSS.js\n * https://github.com/angular/angular/blob/master/packages/compiler/src/shadow_css.ts\n */\nconst safeSelector = (selector) => {\n const placeholders = [];\n let index = 0;\n // Replaces attribute selectors with placeholders.\n // The WS in [attr=\"va lue\"] would otherwise be interpreted as a selector separator.\n selector = selector.replace(/(\\[[^\\]]*\\])/g, (_, keep) => {\n const replaceBy = `__ph-${index}__`;\n placeholders.push(keep);\n index++;\n return replaceBy;\n });\n // Replaces the expression in `:nth-child(2n + 1)` with a placeholder.\n // WS and \"+\" would otherwise be interpreted as selector separators.\n const content = selector.replace(/(:nth-[-\\w]+)(\\([^)]+\\))/g, (_, pseudo, exp) => {\n const replaceBy = `__ph-${index}__`;\n placeholders.push(exp);\n index++;\n return pseudo + replaceBy;\n });\n const ss = {\n content,\n placeholders,\n };\n return ss;\n};\nconst restoreSafeSelector = (placeholders, content) => {\n return content.replace(/__ph-(\\d+)__/g, (_, index) => placeholders[+index]);\n};\nconst _polyfillHost = '-shadowcsshost';\nconst _polyfillSlotted = '-shadowcssslotted';\n// note: :host-context pre-processed to -shadowcsshostcontext.\nconst _polyfillHostContext = '-shadowcsscontext';\nconst _parenSuffix = ')(?:\\\\((' + '(?:\\\\([^)(]*\\\\)|[^)(]*)+?' + ')\\\\))?([^,{]*)';\nconst _cssColonHostRe = new RegExp('(' + _polyfillHost + _parenSuffix, 'gim');\nconst _cssColonHostContextRe = new RegExp('(' + _polyfillHostContext + _parenSuffix, 'gim');\nconst _cssColonSlottedRe = new RegExp('(' + _polyfillSlotted + _parenSuffix, 'gim');\nconst _polyfillHostNoCombinator = _polyfillHost + '-no-combinator';\nconst _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\\s]*)/;\nconst _shadowDOMSelectorsRe = [/::shadow/g, /::content/g];\nconst _selectorReSuffix = '([>\\\\s~+[.,{:][\\\\s\\\\S]*)?$';\nconst _polyfillHostRe = /-shadowcsshost/gim;\nconst _colonHostRe = /:host/gim;\nconst _colonSlottedRe = /::slotted/gim;\nconst _colonHostContextRe = /:host-context/gim;\nconst _commentRe = /\\/\\*\\s*[\\s\\S]*?\\*\\//g;\nconst stripComments = (input) => {\n return input.replace(_commentRe, '');\n};\nconst _commentWithHashRe = /\\/\\*\\s*#\\s*source(Mapping)?URL=[\\s\\S]+?\\*\\//g;\nconst extractCommentsWithHash = (input) => {\n return input.match(_commentWithHashRe) || [];\n};\nconst _ruleRe = /(\\s*)([^;\\{\\}]+?)(\\s*)((?:{%BLOCK%}?\\s*;?)|(?:\\s*;))/g;\nconst _curlyRe = /([{}])/g;\nconst _selectorPartsRe = /(^.*?[^\\\\])??((:+)(.*)|$)/;\nconst OPEN_CURLY = '{';\nconst CLOSE_CURLY = '}';\nconst BLOCK_PLACEHOLDER = '%BLOCK%';\nconst processRules = (input, ruleCallback) => {\n const inputWithEscapedBlocks = escapeBlocks(input);\n let nextBlockIndex = 0;\n return inputWithEscapedBlocks.escapedString.replace(_ruleRe, (...m) => {\n const selector = m[2];\n let content = '';\n let suffix = m[4];\n let contentPrefix = '';\n if (suffix && suffix.startsWith('{' + BLOCK_PLACEHOLDER)) {\n content = inputWithEscapedBlocks.blocks[nextBlockIndex++];\n suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1);\n contentPrefix = '{';\n }\n const cssRule = {\n selector,\n content,\n };\n const rule = ruleCallback(cssRule);\n return `${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`;\n });\n};\nconst escapeBlocks = (input) => {\n const inputParts = input.split(_curlyRe);\n const resultParts = [];\n const escapedBlocks = [];\n let bracketCount = 0;\n let currentBlockParts = [];\n for (let partIndex = 0; partIndex < inputParts.length; partIndex++) {\n const part = inputParts[partIndex];\n if (part === CLOSE_CURLY) {\n bracketCount--;\n }\n if (bracketCount > 0) {\n currentBlockParts.push(part);\n }\n else {\n if (currentBlockParts.length > 0) {\n escapedBlocks.push(currentBlockParts.join(''));\n resultParts.push(BLOCK_PLACEHOLDER);\n currentBlockParts = [];\n }\n resultParts.push(part);\n }\n if (part === OPEN_CURLY) {\n bracketCount++;\n }\n }\n if (currentBlockParts.length > 0) {\n escapedBlocks.push(currentBlockParts.join(''));\n resultParts.push(BLOCK_PLACEHOLDER);\n }\n const strEscapedBlocks = {\n escapedString: resultParts.join(''),\n blocks: escapedBlocks,\n };\n return strEscapedBlocks;\n};\nconst insertPolyfillHostInCssText = (selector) => {\n selector = selector\n .replace(_colonHostContextRe, _polyfillHostContext)\n .replace(_colonHostRe, _polyfillHost)\n .replace(_colonSlottedRe, _polyfillSlotted);\n return selector;\n};\nconst convertColonRule = (cssText, regExp, partReplacer) => {\n // m[1] = :host(-context), m[2] = contents of (), m[3] rest of rule\n return cssText.replace(regExp, (...m) => {\n if (m[2]) {\n const parts = m[2].split(',');\n const r = [];\n for (let i = 0; i < parts.length; i++) {\n const p = parts[i].trim();\n if (!p)\n break;\n r.push(partReplacer(_polyfillHostNoCombinator, p, m[3]));\n }\n return r.join(',');\n }\n else {\n return _polyfillHostNoCombinator + m[3];\n }\n });\n};\nconst colonHostPartReplacer = (host, part, suffix) => {\n return host + part.replace(_polyfillHost, '') + suffix;\n};\nconst convertColonHost = (cssText) => {\n return convertColonRule(cssText, _cssColonHostRe, colonHostPartReplacer);\n};\nconst colonHostContextPartReplacer = (host, part, suffix) => {\n if (part.indexOf(_polyfillHost) > -1) {\n return colonHostPartReplacer(host, part, suffix);\n }\n else {\n return host + part + suffix + ', ' + part + ' ' + host + suffix;\n }\n};\nconst convertColonSlotted = (cssText, slotScopeId) => {\n const slotClass = '.' + slotScopeId + ' > ';\n const selectors = [];\n cssText = cssText.replace(_cssColonSlottedRe, (...m) => {\n if (m[2]) {\n const compound = m[2].trim();\n const suffix = m[3];\n const slottedSelector = slotClass + compound + suffix;\n let prefixSelector = '';\n for (let i = m[4] - 1; i >= 0; i--) {\n const char = m[5][i];\n if (char === '}' || char === ',') {\n break;\n }\n prefixSelector = char + prefixSelector;\n }\n const orgSelector = prefixSelector + slottedSelector;\n const addedSelector = `${prefixSelector.trimRight()}${slottedSelector.trim()}`;\n if (orgSelector.trim() !== addedSelector.trim()) {\n const updatedSelector = `${addedSelector}, ${orgSelector}`;\n selectors.push({\n orgSelector,\n updatedSelector,\n });\n }\n return slottedSelector;\n }\n else {\n return _polyfillHostNoCombinator + m[3];\n }\n });\n return {\n selectors,\n cssText,\n };\n};\nconst convertColonHostContext = (cssText) => {\n return convertColonRule(cssText, _cssColonHostContextRe, colonHostContextPartReplacer);\n};\nconst convertShadowDOMSelectors = (cssText) => {\n return _shadowDOMSelectorsRe.reduce((result, pattern) => result.replace(pattern, ' '), cssText);\n};\nconst makeScopeMatcher = (scopeSelector) => {\n const lre = /\\[/g;\n const rre = /\\]/g;\n scopeSelector = scopeSelector.replace(lre, '\\\\[').replace(rre, '\\\\]');\n return new RegExp('^(' + scopeSelector + ')' + _selectorReSuffix, 'm');\n};\nconst selectorNeedsScoping = (selector, scopeSelector) => {\n const re = makeScopeMatcher(scopeSelector);\n return !re.test(selector);\n};\nconst injectScopingSelector = (selector, scopingSelector) => {\n return selector.replace(_selectorPartsRe, (_, before = '', _colonGroup, colon = '', after = '') => {\n return before + scopingSelector + colon + after;\n });\n};\nconst applySimpleSelectorScope = (selector, scopeSelector, hostSelector) => {\n // In Android browser, the lastIndex is not reset when the regex is used in String.replace()\n _polyfillHostRe.lastIndex = 0;\n if (_polyfillHostRe.test(selector)) {\n const replaceBy = `.${hostSelector}`;\n return selector\n .replace(_polyfillHostNoCombinatorRe, (_, selector) => injectScopingSelector(selector, replaceBy))\n .replace(_polyfillHostRe, replaceBy + ' ');\n }\n return scopeSelector + ' ' + selector;\n};\nconst applyStrictSelectorScope = (selector, scopeSelector, hostSelector) => {\n const isRe = /\\[is=([^\\]]*)\\]/g;\n scopeSelector = scopeSelector.replace(isRe, (_, ...parts) => parts[0]);\n const className = '.' + scopeSelector;\n const _scopeSelectorPart = (p) => {\n let scopedP = p.trim();\n if (!scopedP) {\n return '';\n }\n if (p.indexOf(_polyfillHostNoCombinator) > -1) {\n scopedP = applySimpleSelectorScope(p, scopeSelector, hostSelector);\n }\n else {\n // remove :host since it should be unnecessary\n const t = p.replace(_polyfillHostRe, '');\n if (t.length > 0) {\n scopedP = injectScopingSelector(t, className);\n }\n }\n return scopedP;\n };\n const safeContent = safeSelector(selector);\n selector = safeContent.content;\n let scopedSelector = '';\n let startIndex = 0;\n let res;\n const sep = /( |>|\\+|~(?!=))\\s*/g;\n // If a selector appears before :host it should not be shimmed as it\n // matches on ancestor elements and not on elements in the host's shadow\n // `:host-context(div)` is transformed to\n // `-shadowcsshost-no-combinatordiv, div -shadowcsshost-no-combinator`\n // the `div` is not part of the component in the 2nd selectors and should not be scoped.\n // Historically `component-tag:host` was matching the component so we also want to preserve\n // this behavior to avoid breaking legacy apps (it should not match).\n // The behavior should be:\n // - `tag:host` -> `tag[h]` (this is to avoid breaking legacy apps, should not match anything)\n // - `tag :host` -> `tag [h]` (`tag` is not scoped because it's considered part of a\n // `:host-context(tag)`)\n const hasHost = selector.indexOf(_polyfillHostNoCombinator) > -1;\n // Only scope parts after the first `-shadowcsshost-no-combinator` when it is present\n let shouldScope = !hasHost;\n while ((res = sep.exec(selector)) !== null) {\n const separator = res[1];\n const part = selector.slice(startIndex, res.index).trim();\n shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1;\n const scopedPart = shouldScope ? _scopeSelectorPart(part) : part;\n scopedSelector += `${scopedPart} ${separator} `;\n startIndex = sep.lastIndex;\n }\n const part = selector.substring(startIndex);\n shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1;\n scopedSelector += shouldScope ? _scopeSelectorPart(part) : part;\n // replace the placeholders with their original values\n return restoreSafeSelector(safeContent.placeholders, scopedSelector);\n};\nconst scopeSelector = (selector, scopeSelectorText, hostSelector, slotSelector) => {\n return selector\n .split(',')\n .map((shallowPart) => {\n if (slotSelector && shallowPart.indexOf('.' + slotSelector) > -1) {\n return shallowPart.trim();\n }\n if (selectorNeedsScoping(shallowPart, scopeSelectorText)) {\n return applyStrictSelectorScope(shallowPart, scopeSelectorText, hostSelector).trim();\n }\n else {\n return shallowPart.trim();\n }\n })\n .join(', ');\n};\nconst scopeSelectors = (cssText, scopeSelectorText, hostSelector, slotSelector, commentOriginalSelector) => {\n return processRules(cssText, (rule) => {\n let selector = rule.selector;\n let content = rule.content;\n if (rule.selector[0] !== '@') {\n selector = scopeSelector(rule.selector, scopeSelectorText, hostSelector, slotSelector);\n }\n else if (rule.selector.startsWith('@media') ||\n rule.selector.startsWith('@supports') ||\n rule.selector.startsWith('@page') ||\n rule.selector.startsWith('@document')) {\n content = scopeSelectors(rule.content, scopeSelectorText, hostSelector, slotSelector);\n }\n const cssRule = {\n selector: selector.replace(/\\s{2,}/g, ' ').trim(),\n content,\n };\n return cssRule;\n });\n};\nconst scopeCssText = (cssText, scopeId, hostScopeId, slotScopeId, commentOriginalSelector) => {\n cssText = insertPolyfillHostInCssText(cssText);\n cssText = convertColonHost(cssText);\n cssText = convertColonHostContext(cssText);\n const slotted = convertColonSlotted(cssText, slotScopeId);\n cssText = slotted.cssText;\n cssText = convertShadowDOMSelectors(cssText);\n if (scopeId) {\n cssText = scopeSelectors(cssText, scopeId, hostScopeId, slotScopeId);\n }\n cssText = cssText.replace(/-shadowcsshost-no-combinator/g, `.${hostScopeId}`);\n cssText = cssText.replace(/>\\s*\\*\\s+([^{, ]+)/gm, ' $1 ');\n return {\n cssText: cssText.trim(),\n slottedSelectors: slotted.selectors,\n };\n};\nconst scopeCss = (cssText, scopeId, commentOriginalSelector) => {\n const hostScopeId = scopeId + '-h';\n const slotScopeId = scopeId + '-s';\n const commentsWithHash = extractCommentsWithHash(cssText);\n cssText = stripComments(cssText);\n const orgSelectors = [];\n if (commentOriginalSelector) {\n const processCommentedSelector = (rule) => {\n const placeholder = `/*!@___${orgSelectors.length}___*/`;\n const comment = `/*!@${rule.selector}*/`;\n orgSelectors.push({ placeholder, comment });\n rule.selector = placeholder + rule.selector;\n return rule;\n };\n cssText = processRules(cssText, (rule) => {\n if (rule.selector[0] !== '@') {\n return processCommentedSelector(rule);\n }\n else if (rule.selector.startsWith('@media') ||\n rule.selector.startsWith('@supports') ||\n rule.selector.startsWith('@page') ||\n rule.selector.startsWith('@document')) {\n rule.content = processRules(rule.content, processCommentedSelector);\n return rule;\n }\n return rule;\n });\n }\n const scoped = scopeCssText(cssText, scopeId, hostScopeId, slotScopeId);\n cssText = [scoped.cssText, ...commentsWithHash].join('\\n');\n if (commentOriginalSelector) {\n orgSelectors.forEach(({ placeholder, comment }) => {\n cssText = cssText.replace(placeholder, comment);\n });\n }\n scoped.slottedSelectors.forEach((slottedSelector) => {\n cssText = cssText.replace(slottedSelector.orgSelector, slottedSelector.updatedSelector);\n });\n return cssText;\n};\n\nexport { scopeCss };\n"],"names":["_polyfillHost","_polyfillSlotted","_polyfillHostContext","_parenSuffix","_cssColonHostRe","RegExp","_cssColonHostContextRe","_cssColonSlottedRe","_polyfillHostNoCombinator","_polyfillHostNoCombinatorRe","_shadowDOMSelectorsRe","_polyfillHostRe","_colonHostRe","_colonSlottedRe","_colonHostContextRe","_commentRe","_commentWithHashRe","_ruleRe","_curlyRe","_selectorPartsRe","BLOCK_PLACEHOLDER","processRules","input","ruleCallback","inputWithEscapedBlocks","escapeBlocks","nextBlockIndex","escapedString","replace","m","selector","content","suffix","contentPrefix","startsWith","blocks","substring","rule","inputParts","split","resultParts","escapedBlocks","bracketCount","currentBlockParts","partIndex","length","part","push","join","convertColonRule","cssText","regExp","partReplacer","parts","r","i","p","trim","colonHostPartReplacer","host","colonHostContextPartReplacer","indexOf","injectScopingSelector","scopingSelector","_","before","_colonGroup","colon","after","scopeSelectors","scopeSelectorText","hostSelector","slotSelector","commentOriginalSelector","map","shallowPart","scopeSelector","makeScopeMatcher","test","selectorNeedsScoping","className","_scopeSelectorPart","scopedP","lastIndex","replaceBy","applySimpleSelectorScope","t","safeContent","placeholders","index","keep","pseudo","exp","safeSelector","res","scopedSelector","startIndex","sep","shouldScope","exec","separator","slice","applyStrictSelectorScope","scopeCss","scopeId","hostScopeId","slotScopeId","commentsWithHash","match","orgSelectors","processCommentedSelector","placeholder","comment","scoped","slotted","slotClass","selectors","compound","slottedSelector","prefixSelector","char","orgSelector","addedSelector","trimRight","updatedSelector","convertColonSlotted","convertColonHostContext","convertColonHost","reduce","result","pattern","convertShadowDOMSelectors","slottedSelectors","scopeCssText","forEach"],"sourceRoot":""}
|