@aerogel/core 0.0.0-next.7f6ed5a1f91688a86bf5ede2adc465e4fd6cfdea → 0.0.0-next.c8f032a868370824898e171969aec1bb6827688e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aerogel-core.cjs.js +1 -1
- package/dist/aerogel-core.d.ts +229 -46
- package/dist/aerogel-core.esm.js +1 -1
- package/package.json +5 -8
- package/src/bootstrap/bootstrap.test.ts +0 -56
- package/src/bootstrap/index.ts +6 -25
- package/src/bootstrap/options.ts +5 -1
- package/src/components/basic/AGMarkdown.vue +20 -5
- package/src/components/forms/AGButton.vue +11 -1
- package/src/components/headless/forms/AGHeadlessInput.vue +2 -2
- package/src/components/headless/forms/AGHeadlessInputError.vue +9 -5
- package/src/components/headless/forms/AGHeadlessInputInput.vue +5 -1
- package/src/components/headless/forms/AGHeadlessInputLabel.vue +16 -0
- package/src/components/headless/forms/index.ts +6 -4
- package/src/components/headless/modals/AGHeadlessModal.vue +5 -1
- package/src/components/headless/modals/AGHeadlessModalPanel.vue +5 -1
- package/src/components/index.ts +2 -1
- package/src/components/modals/AGAlertModal.vue +13 -2
- package/src/components/modals/AGConfirmModal.vue +30 -0
- package/src/components/modals/AGModal.ts +4 -0
- package/src/components/modals/index.ts +3 -1
- package/src/directives/index.ts +5 -3
- package/src/forms/Form.ts +18 -6
- package/src/globals.ts +6 -0
- package/src/lang/Lang.ts +38 -7
- package/src/lang/index.ts +18 -75
- package/src/main.ts +3 -0
- package/src/plugins/Plugin.ts +7 -0
- package/src/plugins/index.ts +7 -0
- package/src/services/App.state.ts +10 -0
- package/src/services/App.ts +7 -0
- package/src/services/Service.ts +50 -9
- package/src/services/index.ts +13 -5
- package/src/types/vite.d.ts +0 -2
- package/src/ui/UI.state.ts +2 -6
- package/src/ui/UI.ts +20 -2
- package/src/ui/index.ts +15 -11
- package/src/utils/composition/hooks.ts +9 -0
- package/src/utils/index.ts +2 -0
- package/tsconfig.json +1 -10
- package/vite.config.ts +2 -6
- package/src/bootstrap/hooks.ts +0 -19
- package/src/lang/helpers.ts +0 -5
- package/src/models/index.ts +0 -18
- package/src/routing/index.ts +0 -33
- package/src/testing/stubs/lang/en.yaml +0 -1
- package/src/testing/stubs/models/User.ts +0 -3
package/dist/aerogel-core.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("core-js/modules/esnext.async-iterator.map.js"),require("core-js/modules/esnext.iterator.map.js");var e=require("vue");require("core-js/modules/esnext.async-iterator.for-each.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.for-each.js");var t=require("@noeldemartin/utils");require("core-js/modules/esnext.async-iterator.reduce.js"),require("core-js/modules/esnext.iterator.reduce.js");var r=require("vue-i18n"),o=require("@babel/runtime/helpers/defineProperty"),s=require("soukai"),n=require("vue-router");require("core-js/modules/esnext.string.at.js"),require("core-js/modules/esnext.async-iterator.filter.js"),require("core-js/modules/esnext.iterator.filter.js");var a=require("@headlessui/vue"),l=require("dompurify"),i=require("marked");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("core-js/modules/esnext.async-iterator.some.js"),require("core-js/modules/esnext.iterator.some.js");var d=u(o),c=u(l);const p=[];function m(){return{type:Boolean,default:arguments.length>0&&void 0!==arguments[0]&&arguments[0]}}function f(){return e.ref()}function v(e){return e}function h(t){const r=e.inject(t);return r?e.reactive(r):void 0}function _(e,r){return h(e)??t.fail(r??`Could not resolve '${e}' injection key`)}function x(){return{type:Object,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function g(){return{type:Number,required:!0}}function y(){return{type:Object,required:!0}}function b(){return{type:String,required:!0}}function k(){return{type:String,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}const A={"initial-focus":{mounted(e,t){let{value:r}=t;!1!==r&&e.focus()}}};var w=async e=>{Object.entries(A).forEach((t=>{let[r,o]=t;return e.directive(r,o)}))};class ServiceBootError extends t.JSError{constructor(e,t){super(`Service '${e}' failed booting`,{cause:t})}}function j(e){return class extends C{getInitialState(){return e.initialState}}}class C extends t.MagicObject{constructor(){super(),d.default(this,"_namespace",void 0),d.default(this,"_booted",void 0),d.default(this,"_state",void 0),this._namespace=new.target.name,this._booted=new t.PromisedValue,this._state=e.reactive(this.getInitialState())}get booted(){return this._booted}launch(e){const handleError=e=>this._booted.reject(new ServiceBootError(this._namespace,e));this._namespace=e??this._namespace;try{this.boot().then((()=>this._booted.resolve())).catch(handleError)}catch(e){handleError(e)}return this._booted}__get(e){return this.hasState(e)?this.getState(e):super.__get(e)}__set(e,t){this.setState({[e]:t})}hasState(e){return e in this._state}getState(e){return e?this._state[e]:this._state}setState(e){Object.assign(this._state,e)}getInitialState(){return{}}async boot(){}}class B extends C{constructor(){super(...arguments),d.default(this,"listeners",{})}async emit(e,t){const r=[...this.listeners[e]??[]];await Promise.all(r.map((e=>e(t)))??[])}on(e,r){return(this.listeners[e]??=t.arr([])).push(r),()=>this.off(e,r)}once(e,r){let o=null;return t.tap((()=>o&&this.off(e,o)),(s=>{(this.listeners[e]??=t.arr([])).push(o=function(){return s(),r(...arguments)})}))}off(e,t){const r=this.listeners[e];r&&(r.remove(t),r.isEmpty()&&delete this.listeners[e])}}var G=t.facade(new B);const S={$events:G};async function q(e,t){await Promise.all(Object.entries(t).map((async e=>{let[t,r]=e;await r.launch(t.slice(1)).catch((e=>console.error(e)))}))),Object.assign(e.config.globalProperties,t)}var M=e=>q(e,S);var P=t.facade(new class extends C{constructor(){super(...arguments),d.default(this,"i18n",void 0)}setup(){this.i18n=r.useI18n()}translate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.i18n?.t(e,t)??e}});function I(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return P.translate(e,t)}const E={$lang:P};async function $(e){const o=e.defaultLocale??"en",s=e.fallbackLocale??"en",n=function(e){return Object.entries(e).reduce(((e,r)=>{let[o,s]=r;const n=t.stringMatch(o,/.*\/lang\/(.+)\.yaml/)?.[1];return n&&(e[n]=()=>s().then((e=>{let{default:t}=e;return t}))),e}),{})}(e.messages),a=n[o]??t.fail(`Missing messages for '${o}' locale`),l={[o]:await a()};return r.createI18n({locale:o,fallbackLocale:s,messages:l})}var O=async(e,t)=>{const r=function(e){return e.lang?e.lang:e.langMessages?{messages:e.langMessages}:null}(t);if(!r)return;var o;o=()=>P.setup(),p.push(o);const s=await $(r);e.use(s),await q(e,E)},H=async(e,t)=>{t.models&&(s.setEngine(new s.IndexedDBEngine),s.bootModelsFromViteGlob(t.models))};var V=async(e,t)=>{if(!t.routes)return;const r=function(e){return n.createRouter({history:n.createWebHistory(e.basePath),routes:e.routes})}({routes:t.routes,basePath:t.basePath??__AG_BASE_PATH});e.use(r)},N=j({initialState:{modals:[]}});const F={AlertModal:"alert-modal"};var D=t.facade(new class extends N{constructor(){super(...arguments),d.default(this,"modalCallbacks",{}),d.default(this,"components",{})}alert(e){this.openModal(this.requireComponent(F.AlertModal),{message:e})}registerComponent(e,t){this.components[e]=t}async openModal(r,o){const s=t.uuid(),n={},a={id:s,properties:o??{},component:e.markRaw(r),beforeClose:new Promise((e=>n.willClose=e)),afterClose:new Promise((e=>n.closed=e))},l=this.modals.at(-1),i=this.modals.concat(a);return this.modalCallbacks[a.id]=n,this.setState({modals:i}),await e.nextTick(),await(l&&G.emit("hide-modal",{id:l.id})),await Promise.all([l||G.emit("show-overlays-backdrop"),G.emit("show-modal",{id:a.id})]),a}async closeModal(e,t){await G.emit("close-modal",{id:e,result:t})}async boot(){await super.boot(),this.watchModalEvents()}requireComponent(e){return this.components[e]??t.fail(`UI Component '${e}' is not defined!`)}watchModalEvents(){G.on("modal-will-close",(e=>{let{modal:t,result:r}=e;this.modalCallbacks[t.id]?.willClose?.(r),1===this.modals.length&&G.emit("hide-overlays-backdrop")})),G.on("modal-closed",(async e=>{let{modal:t,result:r}=e;this.setState({modals:this.modals.filter((e=>e.id!==t.id))}),this.modalCallbacks[t.id]?.closed?.(r),delete this.modalCallbacks[t.id];const o=this.modals.at(-1);await(o&&G.emit("show-modal",{id:o.id}))}))}});function R(t,r){const o=G.on(t,r);e.onUnmounted((()=>o()))}var L=e.defineComponent({__name:"AGHeadlessModal",props:{cancellable:m(!0)},setup(t,{expose:r}){const o=t,s=e.ref(null),n=e.ref(!0),l=e.ref(!1),{modal:i}=_("modal");async function u(){s.value?.$el&&(n.value=!0)}async function d(e){l.value||(G.emit("modal-will-close",{modal:i,result:e}),await u(),l.value=!0,G.emit("modal-closed",{modal:i,result:e}))}return R("close-modal",(async({id:e,result:t})=>{e===i.id&&await d(t)})),R("hide-modal",(async({id:e})=>{e===i.id&&await u()})),R("show-modal",(async({id:e})=>{e===i.id&&await async function(){s.value?.$el&&(n.value=!1)}()})),r({close:d,cancellable:e.toRef(o,"cancellable")}),(r,o)=>(e.openBlock(),e.createBlock(e.unref(a.Dialog),{ref_key:"$root",ref:s,open:!0,onClose:o[0]||(o[0]=e=>t.cancellable&&d())},{default:e.withCtx((()=>[e.renderSlot(r.$slots,"default",{close:d})])),_:3},512))}});L.__file="src/components/headless/modals/AGHeadlessModal.vue";var T=e.defineComponent({__name:"AGModalContext",props:{modal:y(),childIndex:g()},setup(t){const r=t;return e.provide("modal",{modal:e.toRef(r,"modal"),childIndex:e.toRef(r,"childIndex")}),(r,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.modal.component),e.normalizeProps(e.guardReactiveProps(t.modal.properties)),null,16))}});T.__file="src/components/modals/AGModalContext.vue";var z=e.defineComponent({__name:"AGHeadlessModalPanel",setup(t){const r=_("modal"),o=e.computed((()=>D.modals[r.childIndex]??null));return(t,s)=>(e.openBlock(),e.createBlock(e.unref(a.DialogPanel),null,{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default"),o.value?(e.openBlock(),e.createBlock(T,{key:0,"child-index":e.unref(r).childIndex+1,modal:o.value},null,8,["child-index","modal"])):e.createCommentVNode("v-if",!0)])),_:3}))}});z.__file="src/components/headless/modals/AGHeadlessModalPanel.vue";const U={class:"fixed inset-0 flex items-center justify-center"},K={class:"flex max-h-full flex-col overflow-auto p-4"};var Q=e.defineComponent({__name:"AGModal",setup:t=>(t,r)=>(e.openBlock(),e.createBlock(L,{class:"relative z-50"},{default:e.withCtx((({close:r})=>[e.createElementVNode("div",U,[e.createVNode(z,{class:"flex max-h-full max-w-full flex-col overflow-hidden bg-white"},{default:e.withCtx((()=>[e.createElementVNode("div",K,[e.renderSlot(t.$slots,"default",{close:r})])])),_:2},1024)])])),_:3}))});function W(e){return t=i.marked(e,{mangle:!1,headerIds:!1}),c.default.sanitize(t,{ADD_ATTR:["target"]});var t}Q.__file="src/components/modals/AGModal.vue";var J=e.defineComponent({__name:"AGMarkdown",props:{langKey:k(),text:k()},setup(t){const r=t,o=e.computed((()=>r.text??(r.langKey&&I(r.langKey)))),s=e.computed((()=>o.value&&W(o.value))),n=()=>e.h("div",{class:"prose",innerHTML:s.value});return(t,r)=>(e.openBlock(),e.createBlock(n))}});J.__file="src/components/basic/AGMarkdown.vue";var X=e.defineComponent({__name:"AGAlertModal",props:{message:b()},setup:t=>(r,o)=>(e.openBlock(),e.createBlock(Q,null,{default:e.withCtx((()=>[e.createVNode(J,{text:t.message},null,8,["text"])])),_:1}))});X.__file="src/components/modals/AGAlertModal.vue";const Y={$ui:D};var Z=async(e,t)=>{const r={[F.AlertModal]:X};Object.entries({...r,...t.components}).forEach((e=>{let[t,r]=e;return D.registerComponent(t,r)})),await q(e,Y)};const ee={key:0};var te=e.defineComponent({__name:"AGAppOverlays",setup(t){const r=e.ref(null),o=e.ref(!0),s=e.computed((()=>D.modals[0]??null));return R("show-overlays-backdrop",(async()=>{r.value&&o.value&&(o.value=!1,r.value.classList.remove("opacity-0"))})),R("hide-overlays-backdrop",(async()=>{r.value&&!o.value&&(o.value=!0,r.value.classList.add("opacity-0"))})),(t,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{ref_key:"$backdrop",ref:r,class:"pointer-events-none fixed inset-0 z-50 bg-black/30 opacity-0"},null,512),s.value?(e.openBlock(),e.createElementBlock("aside",ee,[e.createVNode(T,{"child-index":1,modal:s.value},null,8,["modal"])])):e.createCommentVNode("v-if",!0)],64))}});te.__file="src/components/AGAppOverlays.vue";const re={class:"flex h-full flex-col text-base font-normal leading-tight text-gray-900 antialiased"};var oe=e.defineComponent({__name:"AGAppLayout",setup:t=>(t,r)=>(e.openBlock(),e.createElementBlock("div",re,[e.renderSlot(t.$slots,"default"),e.createVNode(te)]))});oe.__file="src/components/AGAppLayout.vue";var se=e.defineComponent({__name:"AGHeadlessButton",props:{url:k(),route:k(),routeParams:x((()=>({}))),routeQuery:x((()=>({}))),submit:m()},setup(r){const{url:o,route:s,routeParams:n,routeQuery:a,submit:l}=r,i=e.computed((()=>s?{tag:"router-link",props:{to:t.objectWithoutEmpty({name:s,params:n,query:a})}}:o?{tag:"a",props:{target:"_blank",href:o}}:{tag:"button",props:{type:l?"submit":"button"}}));return(t,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value.tag),e.normalizeProps(e.guardReactiveProps(i.value.props)),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3},16))}});se.__file="src/components/headless/forms/AGHeadlessButton.vue";var ne=e.defineComponent({__name:"AGButton",setup:t=>(t,r)=>(e.openBlock(),e.createBlock(se,{class:"bg-indigo-600 px-2.5 py-1.5 text-white hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3}))});ne.__file="src/components/forms/AGButton.vue";const ae=["onSubmit"];var le=e.defineComponent({__name:"AGForm",props:{form:x()},emits:["submit"],setup(t,{emit:r}){const o=t;function s(){o.form&&!o.form.submit()||r("submit")}return e.provide("form",o.form),(t,r)=>(e.openBlock(),e.createElementBlock("form",{onSubmit:e.withModifiers(s,["prevent"])},[e.renderSlot(t.$slots,"default")],40,ae))}});le.__file="src/components/forms/AGForm.vue";var ie=e.defineComponent({__name:"AGHeadlessInput",props:{as:k(),name:k(),modelValue:k()},emits:["update:modelValue"],setup(r,{expose:o,emit:s}){const n=r,a=e.computed((()=>l&&n.name?l.errors[n.name]??null:null)),l=e.inject("form"),i={id:t.uuid(),value:e.computed((()=>l&&n.name?l.getFieldValue(n.name):n.modelValue)),errors:e.readonly(a),update(e){l&&n.name?l.setFieldValue(n.name,e):s("update:modelValue",e)}};return e.provide("input",i),o(i),(t,o)=>r.as?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.as),{key:0},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3})):e.renderSlot(t.$slots,"default",{key:1})}});ie.__file="src/components/headless/forms/AGHeadlessInput.vue";const ue=["value","aria-invalid","aria-describedby"];var de=e.defineComponent({__name:"AGHeadlessInputInput",setup(t){const r=e.ref(),o=_("input"),s=e.computed((()=>o.value));function n(){r.value&&o.update(r.value.value)}return(t,a)=>(e.openBlock(),e.createElementBlock("input",{ref_key:"$input",ref:r,type:"text",value:s.value,"aria-invalid":e.unref(o).errors?"true":"false","aria-describedby":e.unref(o).errors?`${e.unref(o).id}-error`:void 0,onInput:n},null,40,ue))}});de.__file="src/components/headless/forms/AGHeadlessInputInput.vue";const ce=["id"];var pe=e.defineComponent({__name:"AGHeadlessInputError",setup(t){const r=_("input"),o=e.computed((()=>r.errors?I(`errors.${r.errors[0]}`):null));return(t,s)=>o.value?(e.openBlock(),e.createElementBlock("p",{key:0,id:`${e.unref(r).id}-error`},e.toDisplayString(o.value),9,ce)):e.createCommentVNode("v-if",!0)}});pe.__file="src/components/headless/forms/AGHeadlessInputError.vue";var me=e.defineComponent({inheritAttrs:!1,__name:"AGInput",props:{name:k()},setup(t){const r=f();return(o,s)=>(e.openBlock(),e.createBlock(ie,{ref_key:"$input",ref:r,as:"div",class:"flex flex-col items-center",name:t.name},{default:e.withCtx((()=>[e.createVNode(de,e.mergeProps(o.$attrs,{class:["block w-full border-0 py-1.5 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600",{"ring-1 ring-red-500":e.unref(r)?.errors}]}),null,16,["class"]),e.createVNode(pe,{class:"mt-1 text-sm text-red-500"})])),_:1},8,["name"]))}});me.__file="src/components/forms/AGInput.vue";var fe=e.defineComponent({__name:"AGHeadlessModalTitle",props:{as:k("h2")},setup:t=>(r,o)=>(e.openBlock(),e.createBlock(e.unref(a.DialogTitle),{as:t.as},{default:e.withCtx((()=>[e.renderSlot(r.$slots,"default")])),_:3},8,["as"]))});fe.__file="src/components/headless/modals/AGHeadlessModalTitle.vue";const ve={String:"string",Number:"number"};class he extends t.MagicObject{constructor(t){super(),d.default(this,"errors",void 0),d.default(this,"_fields",void 0),d.default(this,"_data",void 0),d.default(this,"_valid",void 0),d.default(this,"_submitted",void 0),d.default(this,"_errors",void 0),this._fields=t,this._submitted=e.ref(!1),this._valid=e.ref(!0),this._data=this.getInitialData(t),this._errors=this.getInitialErrors(t),this.errors=e.readonly(this._errors)}get valid(){return this._valid.value}get submitted(){return this._submitted.value}setFieldValue(e,t){this._data[e]=t,this._submitted.value&&this.validate()}getFieldValue(e){return this._data[e]}validate(){const e=Object.entries(this._fields).reduce(((e,t)=>{let[r,o]=t;return e[r]=this.getFieldErrors(r,o),e}),{});return Object.assign(this._errors,e),this._valid.value=!Object.values(e).some((e=>null!==e))}submit(){return this._submitted.value=!0,this.validate()}__get(e){return e in this._fields?this._data[e]:super.__get(e)}__set(e,t){e in this._fields?Object.assign(this._data,{[e]:t}):super.__set(e,t)}getFieldErrors(e,t){const r=[];return t.rules?.includes("required")&&!this._data[e]&&r.push("required"),r.length>0?r:null}getInitialData(t){if(this.static().isConjuring())return{};const r=Object.entries(t).reduce(((e,t)=>{let[r,o]=t;return e[r]=o.default??null,e}),{});return e.reactive(r)}getInitialErrors(t){if(this.static().isConjuring())return{};const r=Object.keys(t).reduce(((e,t)=>(e[t]=null,e)),{});return e.reactive(r)}}exports.AGAppLayout=oe,exports.AGButton=ne,exports.AGForm=le,exports.AGHeadlessButton=se,exports.AGHeadlessInput=ie,exports.AGHeadlessModal=L,exports.AGHeadlessModalPanel=z,exports.AGHeadlessModalTitle=fe,exports.AGInput=me,exports.AGMarkdown=J,exports.AGModal=Q,exports.AGModalContext=T,exports.Events=G,exports.EventsService=B,exports.FormFieldTypes=ve,exports.Lang=P,exports.Service=C,exports.UI=D,exports.UIComponents=F,exports.arrayProp=function(e){return{type:Array,default:e??(()=>[])}},exports.booleanProp=m,exports.bootServices=q,exports.bootstrapApplication=async function(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=[w,O,H,V,M,Z],s=e.createApp({data:()=>({ready:!1}),mounted(){p.forEach((e=>e())),this.ready=!0},render(){return this.ready?e.h(t):null}});await Promise.all(o.map((e=>e(s,r)))),s.mount("#app")},exports.componentRef=f,exports.defineDirective=v,exports.defineServiceState=j,exports.enumProp=function(e,t){const r=Object.values(e);return{type:String,default:t??r[0]??null,validator:e=>r.includes(e)}},exports.injectOrFail=function(r,o){return e.inject(r)??t.fail(o??`Could not resolve '${r}' injection key`)},exports.injectReactive=h,exports.injectReactiveOrFail=_,exports.lang=I,exports.mixedProp=function(e){return{type:e,default:null}},exports.numberInput=function(e){return{default:e,type:ve.Number}},exports.numberProp=function(){return{type:Number,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}},exports.objectProp=x,exports.requiredArrayProp=function(){return{type:Array,required:!0}},exports.requiredEnumProp=function(e){const t=Object.values(e);return{type:String,required:!0,validator:e=>t.includes(e)}},exports.requiredMixedProp=function(e){return{type:e,required:!0}},exports.requiredNumberInput=function(e){return{default:e,type:ve.Number,rules:"required"}},exports.requiredNumberProp=g,exports.requiredObjectProp=y,exports.requiredStringInput=function(e){return{default:e,type:ve.String,rules:"required"}},exports.requiredStringProp=b,exports.stringInput=function(e){return{default:e,type:ve.String}},exports.stringProp=k,exports.useForm=function(e){return new he(e)};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("core-js/modules/esnext.async-iterator.map.js"),require("core-js/modules/esnext.iterator.map.js");var e=require("vue");require("core-js/modules/esnext.async-iterator.for-each.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.for-each.js");var t=require("@noeldemartin/utils"),r=require("@babel/runtime/helpers/defineProperty");require("core-js/modules/esnext.async-iterator.reduce.js"),require("core-js/modules/esnext.iterator.reduce.js"),require("core-js/modules/esnext.string.at.js"),require("core-js/modules/esnext.async-iterator.filter.js"),require("core-js/modules/esnext.iterator.filter.js");var o=require("@headlessui/vue"),s=require("dompurify"),n=require("marked");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("core-js/modules/esnext.async-iterator.some.js"),require("core-js/modules/esnext.iterator.some.js");var l=a(r),i=a(s);function u(e){return e}function d(){return{type:Boolean,default:arguments.length>0&&void 0!==arguments[0]&&arguments[0]}}function c(){return e.ref()}function p(e){return e}function m(t){const r=e.inject(t);return r?e.reactive(r):void 0}function f(e,r){return m(e)??t.fail(r??`Could not resolve '${e}' injection key`)}function v(){return{type:Object,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function h(){return{type:Number,required:!0}}function _(){return{type:Object,required:!0}}function x(){return{type:String,required:!0}}function g(){return{type:String,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}const b={"initial-focus":{mounted(e,t){let{value:r}=t;!1!==r&&e.focus()}}};var y={install(e){Object.entries(b).forEach((t=>{let[r,o]=t;return e.directive(r,o)}))}};class ServiceBootError extends t.JSError{constructor(e,t){super(`Service '${e}' failed booting`,{cause:t})}}function k(e){return class extends A{getInitialState(){return e.initialState}getComputedStateDefinition(){return e.computed??{}}}}class A extends t.MagicObject{constructor(){super(),l.default(this,"_namespace",void 0),l.default(this,"_booted",void 0),l.default(this,"_state",void 0),l.default(this,"_computedState",void 0),this._namespace=new.target.name,this._booted=new t.PromisedValue,this._state=e.reactive(this.getInitialState()),this._computedState=Object.entries(this.getComputedStateDefinition()).reduce(((t,r)=>{let[o,s]=r;return t[o]=e.computed((()=>s(this._state))),t}),{})}get booted(){return this._booted}launch(e){const handleError=e=>this._booted.reject(new ServiceBootError(this._namespace,e));this._namespace=e??this._namespace;try{this.boot().then((()=>this._booted.resolve())).catch(handleError)}catch(e){handleError(e)}return this._booted}__get(e){return this.hasState(e)?this.getState(e):this.hasComputedState(e)?this.getComputedState(e):super.__get(e)}__set(e,t){this.setState({[e]:t})}hasState(e){return e in this._state}hasComputedState(e){return e in this._computedState}getState(e){return e?this._state[e]:this._state}getComputedState(e){return this._computedState[e]?.value}setState(e){Object.assign(this._state,e)}getInitialState(){return{}}getComputedStateDefinition(){return{}}async boot(){}}var C=k({initialState:{environment:__AG_ENV},computed:{isDevelopment:e=>"development"===e.environment}});class w extends C{}var G=t.facade(new w);class S extends A{constructor(){super(...arguments),l.default(this,"listeners",{})}async emit(e,t){const r=[...this.listeners[e]??[]];await Promise.all(r.map((e=>e(t)))??[])}on(e,r){return(this.listeners[e]??=t.arr([])).push(r),()=>this.off(e,r)}once(e,r){let o=null;return t.tap((()=>o&&this.off(e,o)),(s=>{(this.listeners[e]??=t.arr([])).push(o=function(){return s(),r(...arguments)})}))}off(e,t){const r=this.listeners[e];r&&(r.remove(t),r.isEmpty()&&delete this.listeners[e])}}var j=t.facade(new S);const B={$app:G,$events:j};async function M(e,t){await Promise.all(Object.entries(t).map((async e=>{let[t,r]=e;await r.launch(t.slice(1)).catch((e=>console.error(e)))}))),Object.assign(e.config.globalProperties,t)}var I={async install(e){await M(e,B)}};var q=t.facade(new class extends A{constructor(){super(),l.default(this,"provider",void 0),this.provider={translate:e=>(G.isDevelopment&&console.warn("Lang provider is missing"),e)}}setProvider(e){this.provider=e}translate(e,t){return this.provider.translate(e,t)??e}translateWithDefault(e,t,r){r??=t;const o="string"==typeof t?{}:t,s=this.provider.translate(e,o)??e;return s===e?r:s}});const P={$lang:q},E=q.translate.bind(q),$=q.translateWithDefault.bind(q);var H={async install(e){e.config.globalProperties.$t??=E,e.config.globalProperties.$td=$,await M(e,P)}},V=k({initialState:{modals:[]}});const N={AlertModal:"alert-modal",ConfirmModal:"confirm-modal"};var O=t.facade(new class extends V{constructor(){super(...arguments),l.default(this,"modalCallbacks",{}),l.default(this,"components",{})}alert(e,t){const r="string"==typeof t?{title:e,message:t}:{message:e};this.openModal(this.requireComponent(N.AlertModal),r)}async confirm(e,t){const r="string"==typeof t?{title:e,message:t}:{message:e},o=await this.openModal(this.requireComponent(N.ConfirmModal),r);return await o.beforeClose??!1}registerComponent(e,t){this.components[e]=t}async openModal(r,o){const s=t.uuid(),n={},a={id:s,properties:o??{},component:e.markRaw(r),beforeClose:new Promise((e=>n.willClose=e)),afterClose:new Promise((e=>n.closed=e))},l=this.modals.at(-1),i=this.modals.concat(a);return this.modalCallbacks[a.id]=n,this.setState({modals:i}),await e.nextTick(),await(l&&j.emit("hide-modal",{id:l.id})),await Promise.all([l||j.emit("show-overlays-backdrop"),j.emit("show-modal",{id:a.id})]),a}async closeModal(e,t){await j.emit("close-modal",{id:e,result:t})}async boot(){await super.boot(),this.watchModalEvents()}requireComponent(e){return this.components[e]??t.fail(`UI Component '${e}' is not defined!`)}watchModalEvents(){j.on("modal-will-close",(e=>{let{modal:t,result:r}=e;this.modalCallbacks[t.id]?.willClose?.(r),1===this.modals.length&&j.emit("hide-overlays-backdrop")})),j.on("modal-closed",(async e=>{let{modal:t,result:r}=e;this.setState({modals:this.modals.filter((e=>e.id!==t.id))}),this.modalCallbacks[t.id]?.closed?.(r),delete this.modalCallbacks[t.id];const o=this.modals.at(-1);await(o&&j.emit("show-modal",{id:o.id}))}))}});function D(t,r){const o=j.on(t,r);e.onUnmounted((()=>o()))}var F=e.defineComponent({__name:"AGHeadlessModal",props:{cancellable:d(!0)},setup(t,{expose:r}){const s=t,n=e.ref(null),a=e.ref(!0),l=e.ref(!1),{modal:i}=f("modal","could not obtain modal reference from <AGHeadlessModal>, did you render this component manually? Show it using $ui.openModal() instead");async function u(){n.value?.$el&&(a.value=!0)}async function d(e){l.value||(j.emit("modal-will-close",{modal:i,result:e}),await u(),l.value=!0,j.emit("modal-closed",{modal:i,result:e}))}return D("close-modal",(async({id:e,result:t})=>{e===i.id&&await d(t)})),D("hide-modal",(async({id:e})=>{e===i.id&&await u()})),D("show-modal",(async({id:e})=>{e===i.id&&await async function(){n.value?.$el&&(a.value=!1)}()})),r({close:d,cancellable:e.toRef(s,"cancellable")}),(r,s)=>(e.openBlock(),e.createBlock(e.unref(o.Dialog),{ref_key:"$root",ref:n,open:!0,onClose:s[0]||(s[0]=e=>t.cancellable&&d())},{default:e.withCtx((()=>[e.renderSlot(r.$slots,"default",{close:d})])),_:3},512))}});F.__file="src/components/headless/modals/AGHeadlessModal.vue";var L=e.defineComponent({__name:"AGModalContext",props:{modal:_(),childIndex:h()},setup(t){const r=t;return e.provide("modal",{modal:e.toRef(r,"modal"),childIndex:e.toRef(r,"childIndex")}),(r,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.modal.component),e.normalizeProps(e.guardReactiveProps(t.modal.properties)),null,16))}});L.__file="src/components/modals/AGModalContext.vue";var T=e.defineComponent({__name:"AGHeadlessModalPanel",setup(t){const r=f("modal","could not obtain modal reference from <AGHeadlessModalPanel>, did you render this component manually? Show it using $ui.openModal() instead"),s=e.computed((()=>O.modals[r.childIndex]??null));return(t,n)=>(e.openBlock(),e.createBlock(e.unref(o.DialogPanel),null,{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default"),s.value?(e.openBlock(),e.createBlock(L,{key:0,"child-index":e.unref(r).childIndex+1,modal:s.value},null,8,["child-index","modal"])):e.createCommentVNode("v-if",!0)])),_:3}))}});T.__file="src/components/headless/modals/AGHeadlessModalPanel.vue";const R={class:"fixed inset-0 flex items-center justify-center"},z={class:"flex max-h-full flex-col overflow-auto p-4"};var U=e.defineComponent({__name:"AGModal",setup:t=>(t,r)=>(e.openBlock(),e.createBlock(F,{class:"relative z-50"},{default:e.withCtx((({close:r})=>[e.createElementVNode("div",R,[e.createVNode(T,{class:"flex max-h-full max-w-full flex-col overflow-hidden bg-white"},{default:e.withCtx((()=>[e.createElementVNode("div",z,[e.renderSlot(t.$slots,"default",{close:r})])])),_:2},1024)])])),_:3}))});function K(e){return t=n.marked(e,{mangle:!1,headerIds:!1}),i.default.sanitize(t,{ADD_ATTR:["target"]});var t}U.__file="src/components/modals/AGModal.vue";var W=e.defineComponent({__name:"AGMarkdown",props:{as:g("div"),langKey:g(),text:g(),inline:d(),raw:d()},setup(t){const r=t,o=e.computed((()=>r.text??(r.langKey&&E(r.langKey)))),s=e.computed((()=>{if(!o.value)return null;let e=K(o.value);return r.inline&&(e=e.replace("<p>","<span>").replace("</p>","</span>")),e})),n=()=>e.h(r.as,{class:r.raw?"":"prose",innerHTML:s.value});return(t,r)=>(e.openBlock(),e.createBlock(n))}});W.__file="src/components/basic/AGMarkdown.vue";var Q=e.defineComponent({__name:"AGAlertModal",props:{title:g(),message:x()},setup:t=>(r,o)=>(e.openBlock(),e.createBlock(U,null,{default:e.withCtx((()=>[t.title?(e.openBlock(),e.createBlock(W,{key:0,text:t.title,as:"h2",class:"font-semibold",raw:"",inline:""},null,8,["text"])):e.createCommentVNode("v-if",!0),e.createVNode(W,{text:t.message},null,8,["text"])])),_:1}))});Q.__file="src/components/modals/AGAlertModal.vue";var J=e.defineComponent({__name:"AGHeadlessButton",props:{url:g(),route:g(),routeParams:v((()=>({}))),routeQuery:v((()=>({}))),submit:d()},setup(r){const{url:o,route:s,routeParams:n,routeQuery:a,submit:l}=r,i=e.computed((()=>s?{tag:"router-link",props:{to:t.objectWithoutEmpty({name:s,params:n,query:a})}}:o?{tag:"a",props:{target:"_blank",href:o}}:{tag:"button",props:{type:l?"submit":"button"}}));return(t,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value.tag),e.normalizeProps(e.guardReactiveProps(i.value.props)),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3},16))}});J.__file="src/components/headless/forms/AGHeadlessButton.vue";var X=e.defineComponent({__name:"AGButton",props:{secondary:d()},setup:t=>(r,o)=>(e.openBlock(),e.createBlock(J,{class:e.normalizeClass(["px-2.5 py-1.5 text-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2",{"bg-indigo-600 hover:bg-indigo-500 focus-visible:outline-indigo-600":!t.secondary,"bg-gray-600 hover:bg-gray-500 focus-visible:outline-gray-600":t.secondary}])},{default:e.withCtx((()=>[e.renderSlot(r.$slots,"default")])),_:3},8,["class"]))});X.__file="src/components/forms/AGButton.vue";const Y={class:"mt-2 flex flex-row-reverse gap-2"};var Z=e.defineComponent({__name:"AGConfirmModal",props:{title:g(),message:x()},setup:t=>(r,o)=>(e.openBlock(),e.createBlock(U,{cancellable:!1},{default:e.withCtx((({close:o})=>[t.title?(e.openBlock(),e.createBlock(W,{key:0,text:t.title,as:"h1"},null,8,["text"])):e.createCommentVNode("v-if",!0),e.createVNode(W,{text:t.message},null,8,["text"]),e.createElementVNode("div",Y,[e.createVNode(X,{onClick:e=>o(!0)},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(r.$td("ui.ok","OK")),1)])),_:2},1032,["onClick"]),e.createVNode(X,{secondary:"",onClick:e=>o()},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(r.$td("ui.cancel","Cancel")),1)])),_:2},1032,["onClick"])])])),_:1}))});Z.__file="src/components/modals/AGConfirmModal.vue";const ee={$ui:O};var te={async install(e,t){const r={[N.AlertModal]:Q,[N.ConfirmModal]:Z};Object.entries({...r,...t.components}).forEach((e=>{let[t,r]=e;return O.registerComponent(t,r)})),await M(e,ee)}};const re={key:0};var oe=e.defineComponent({__name:"AGAppOverlays",setup(t){const r=e.ref(null),o=e.ref(!0),s=e.computed((()=>O.modals[0]??null));return D("show-overlays-backdrop",(async()=>{r.value&&o.value&&(o.value=!1,r.value.classList.remove("opacity-0"))})),D("hide-overlays-backdrop",(async()=>{r.value&&!o.value&&(o.value=!0,r.value.classList.add("opacity-0"))})),(t,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{ref_key:"$backdrop",ref:r,class:"pointer-events-none fixed inset-0 z-50 bg-black/30 opacity-0"},null,512),s.value?(e.openBlock(),e.createElementBlock("aside",re,[e.createVNode(L,{"child-index":1,modal:s.value},null,8,["modal"])])):e.createCommentVNode("v-if",!0)],64))}});oe.__file="src/components/AGAppOverlays.vue";const se={class:"flex h-full flex-col text-base font-normal leading-tight text-gray-900 antialiased"};var ne=e.defineComponent({__name:"AGAppLayout",setup:t=>(t,r)=>(e.openBlock(),e.createElementBlock("div",se,[e.renderSlot(t.$slots,"default"),e.createVNode(oe)]))});ne.__file="src/components/AGAppLayout.vue";const ae=["onSubmit"];var le=e.defineComponent({__name:"AGForm",props:{form:v()},emits:["submit"],setup(t,{emit:r}){const o=t;function s(){o.form&&!o.form.submit()||r("submit")}return e.provide("form",o.form),(t,r)=>(e.openBlock(),e.createElementBlock("form",{onSubmit:e.withModifiers(s,["prevent"])},[e.renderSlot(t.$slots,"default")],40,ae))}});le.__file="src/components/forms/AGForm.vue";var ie=e.defineComponent({__name:"AGHeadlessInput",props:{as:g(),name:g(),modelValue:g()},emits:["update:modelValue"],setup(r,{expose:o,emit:s}){const n=r,a=e.computed((()=>l&&n.name?l.errors[n.name]??null:null)),l=e.inject("form",null),i={id:`input-${t.uuid()}`,value:e.computed((()=>l&&n.name?l.getFieldValue(n.name):n.modelValue)),errors:e.readonly(a),update(e){l&&n.name?l.setFieldValue(n.name,e):s("update:modelValue",e)}};return e.provide("input",i),o(i),(t,o)=>r.as?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.as),{key:0},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3})):e.renderSlot(t.$slots,"default",{key:1})}});ie.__file="src/components/headless/forms/AGHeadlessInput.vue";const ue=["id","value","aria-invalid","aria-describedby"];var de=e.defineComponent({__name:"AGHeadlessInputInput",setup(t){const r=e.ref(),o=f("input","<AGHeadlessInputInput> must be a child of a <AGHeadlessInput>"),s=e.computed((()=>o.value));function n(){r.value&&o.update(r.value.value)}return(t,a)=>(e.openBlock(),e.createElementBlock("input",{id:e.unref(o).id,ref_key:"$input",ref:r,type:"text",value:s.value,"aria-invalid":e.unref(o).errors?"true":"false","aria-describedby":e.unref(o).errors?`${e.unref(o).id}-error`:void 0,onInput:n},null,40,ue))}});de.__file="src/components/headless/forms/AGHeadlessInputInput.vue";const ce=["id"];var pe=e.defineComponent({__name:"AGHeadlessInputError",setup(t){const r=f("input","<AGHeadlessInputError> must be a child of a <AGHeadlessInput>"),o=e.computed((()=>r.errors?$(`errors.${r.errors[0]}`,`Error: ${r.errors[0]}`):null));return(t,s)=>o.value?(e.openBlock(),e.createElementBlock("p",{key:0,id:`${e.unref(r).id}-error`},e.toDisplayString(o.value),9,ce)):e.createCommentVNode("v-if",!0)}});pe.__file="src/components/headless/forms/AGHeadlessInputError.vue";var me=e.defineComponent({inheritAttrs:!1,__name:"AGInput",props:{name:g()},setup(t){const r=c();return(o,s)=>(e.openBlock(),e.createBlock(ie,{ref_key:"$input",ref:r,as:"div",class:"flex flex-col items-center",name:t.name},{default:e.withCtx((()=>[e.createVNode(de,e.mergeProps(o.$attrs,{class:["block w-full border-0 py-1.5 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600",{"ring-1 ring-red-500":e.unref(r)?.errors}]}),null,16,["class"]),e.createVNode(pe,{class:"mt-1 text-sm text-red-500"})])),_:1},8,["name"]))}});me.__file="src/components/forms/AGInput.vue";const fe=["for"];var ve=e.defineComponent({__name:"AGHeadlessInputLabel",setup(t){const r=f("input","<AGHeadlessInputLabel> must be a child of a <AGHeadlessInput>");return(t,o)=>(e.openBlock(),e.createElementBlock("label",{for:e.unref(r).id},[e.renderSlot(t.$slots,"default")],8,fe))}});ve.__file="src/components/headless/forms/AGHeadlessInputLabel.vue";var he=e.defineComponent({__name:"AGHeadlessModalTitle",props:{as:g("h2")},setup:t=>(r,s)=>(e.openBlock(),e.createBlock(e.unref(o.DialogTitle),{as:t.as},{default:e.withCtx((()=>[e.renderSlot(r.$slots,"default")])),_:3},8,["as"]))});he.__file="src/components/headless/modals/AGHeadlessModalTitle.vue";const _e={String:"string",Number:"number"};class xe extends t.MagicObject{constructor(t){super(),l.default(this,"errors",void 0),l.default(this,"_fields",void 0),l.default(this,"_data",void 0),l.default(this,"_valid",void 0),l.default(this,"_submitted",void 0),l.default(this,"_errors",void 0),this._fields=t,this._submitted=e.ref(!1),this._data=this.getInitialData(t),this._errors=this.getInitialErrors(t),this._valid=e.computed((()=>!Object.values(this._errors).some((e=>null!==e)))),this.errors=e.readonly(this._errors)}get valid(){return this._valid.value}get submitted(){return this._submitted.value}setFieldValue(e,t){this._data[e]=t,this._submitted.value&&this.validate()}getFieldValue(e){return this._data[e]}validate(){const e=Object.entries(this._fields).reduce(((e,t)=>{let[r,o]=t;return e[r]=this.getFieldErrors(r,o),e}),{});return this.resetErrors(e),this.valid}reset(){this._submitted.value=!1,this.resetErrors()}submit(){return this._submitted.value=!0,this.validate()}__get(e){return e in this._fields?this._data[e]:super.__get(e)}__set(e,t){e in this._fields?Object.assign(this._data,{[e]:t}):super.__set(e,t)}getFieldErrors(e,t){const r=[];return t.rules?.includes("required")&&!this._data[e]&&r.push("required"),r.length>0?r:null}getInitialData(t){if(this.static().isConjuring())return{};const r=Object.entries(t).reduce(((e,t)=>{let[r,o]=t;return e[r]=o.default??null,e}),{});return e.reactive(r)}getInitialErrors(t){if(this.static().isConjuring())return{};const r=Object.keys(t).reduce(((e,t)=>(e[t]=null,e)),{});return e.reactive(r)}resetErrors(e){Object.keys(this._errors).forEach((e=>delete this._errors[e])),e&&Object.assign(this._errors,e)}}exports.AGAlertModal=Q,exports.AGAppLayout=ne,exports.AGAppOverlays=oe,exports.AGButton=X,exports.AGConfirmModal=Z,exports.AGForm=le,exports.AGHeadlessButton=J,exports.AGHeadlessInput=ie,exports.AGHeadlessInputError=pe,exports.AGHeadlessInputInput=de,exports.AGHeadlessInputLabel=ve,exports.AGHeadlessModal=F,exports.AGHeadlessModalPanel=T,exports.AGHeadlessModalTitle=he,exports.AGInput=me,exports.AGMarkdown=W,exports.AGModal=U,exports.AGModalContext=L,exports.App=G,exports.AppService=w,exports.Events=j,exports.EventsService=S,exports.FormFieldTypes=_e,exports.Lang=q,exports.Service=A,exports.UI=O,exports.UIComponents=N,exports.arrayProp=function(e){return{type:Array,default:e??(()=>[])}},exports.booleanProp=d,exports.bootServices=M,exports.bootstrapApplication=async function(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=[y,H,I,te,...r.plugins??[]],s=e.createApp(t);await Promise.all(o.map((e=>e.install(s,r)))??[]),s.mount("#app")},exports.componentRef=c,exports.defineDirective=p,exports.definePlugin=u,exports.defineServiceState=k,exports.enumProp=function(e,t){const r=Object.values(e);return{type:String,default:t??r[0]??null,validator:e=>r.includes(e)}},exports.injectOrFail=function(r,o){return e.inject(r)??t.fail(o??`Could not resolve '${r}' injection key`)},exports.injectReactive=m,exports.injectReactiveOrFail=f,exports.mixedProp=function(e){return{type:e,default:null}},exports.numberInput=function(e){return{default:e,type:_e.Number}},exports.numberProp=function(){return{type:Number,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}},exports.objectProp=v,exports.onCleanMounted=function(r){let o=t.noop;e.onMounted((()=>o=r())),e.onUnmounted((()=>o()))},exports.requiredArrayProp=function(){return{type:Array,required:!0}},exports.requiredEnumProp=function(e){const t=Object.values(e);return{type:String,required:!0,validator:e=>t.includes(e)}},exports.requiredMixedProp=function(e){return{type:e,required:!0}},exports.requiredNumberInput=function(e){return{default:e,type:_e.Number,rules:"required"}},exports.requiredNumberProp=h,exports.requiredObjectProp=_,exports.requiredStringInput=function(e){return{default:e,type:_e.String,rules:"required"}},exports.requiredStringProp=x,exports.stringInput=function(e){return{default:e,type:_e.String}},exports.stringProp=g,exports.translate=E,exports.translateWithDefault=$,exports.useEvent=D,exports.useForm=function(e){return new xe(e)};
|
|
2
2
|
//# sourceMappingURL=aerogel-core.cjs.js.map
|
package/dist/aerogel-core.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AllowedComponentProps } from 'vue';
|
|
2
|
-
import type { App } from 'vue';
|
|
2
|
+
import type { App as App_2 } from 'vue';
|
|
3
3
|
import type { Component } from 'vue';
|
|
4
4
|
import { ComponentCustomProps } from 'vue';
|
|
5
5
|
import { ComponentOptionsMixin } from 'vue';
|
|
6
|
+
import type { ComputedRef } from 'vue';
|
|
6
7
|
import { Constructor } from '@noeldemartin/utils';
|
|
7
8
|
import type { DeepReadonly } from 'vue';
|
|
8
9
|
import { DefineComponent } from 'vue';
|
|
@@ -23,14 +24,102 @@ import type { UnwrapNestedRefs } from 'vue';
|
|
|
23
24
|
import { VNode } from 'vue';
|
|
24
25
|
import { VNodeProps } from 'vue';
|
|
25
26
|
|
|
27
|
+
declare interface AerogelOptions {
|
|
28
|
+
plugins?: Plugin_2[];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export declare const AGAlertModal: DefineComponent< {
|
|
32
|
+
title: {
|
|
33
|
+
type: PropType<string | null>;
|
|
34
|
+
validator?(value: unknown): boolean;
|
|
35
|
+
} & {
|
|
36
|
+
default: string | (() => string | null) | null;
|
|
37
|
+
};
|
|
38
|
+
message: {
|
|
39
|
+
type: PropType<string>;
|
|
40
|
+
validator?(value: unknown): boolean;
|
|
41
|
+
} & {
|
|
42
|
+
required: true;
|
|
43
|
+
};
|
|
44
|
+
}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
45
|
+
[key: string]: any;
|
|
46
|
+
}>, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {
|
|
47
|
+
title: {
|
|
48
|
+
type: PropType<string | null>;
|
|
49
|
+
validator?(value: unknown): boolean;
|
|
50
|
+
} & {
|
|
51
|
+
default: string | (() => string | null) | null;
|
|
52
|
+
};
|
|
53
|
+
message: {
|
|
54
|
+
type: PropType<string>;
|
|
55
|
+
validator?(value: unknown): boolean;
|
|
56
|
+
} & {
|
|
57
|
+
required: true;
|
|
58
|
+
};
|
|
59
|
+
}>>, {
|
|
60
|
+
title: string | null;
|
|
61
|
+
}, {}>;
|
|
62
|
+
|
|
26
63
|
export declare const AGAppLayout: DefineComponent< {}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
27
64
|
[key: string]: any;
|
|
28
65
|
}>, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {}>>, {}, {}>;
|
|
29
66
|
|
|
30
|
-
export declare const
|
|
67
|
+
export declare const AGAppOverlays: DefineComponent< {}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
31
68
|
[key: string]: any;
|
|
32
69
|
}>, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {}>>, {}, {}>;
|
|
33
70
|
|
|
71
|
+
export declare const AGButton: DefineComponent< {
|
|
72
|
+
secondary: {
|
|
73
|
+
type: PropType<boolean>;
|
|
74
|
+
validator?(value: unknown): boolean;
|
|
75
|
+
} & {
|
|
76
|
+
default: boolean | (() => boolean) | null;
|
|
77
|
+
};
|
|
78
|
+
}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
79
|
+
[key: string]: any;
|
|
80
|
+
}>, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {
|
|
81
|
+
secondary: {
|
|
82
|
+
type: PropType<boolean>;
|
|
83
|
+
validator?(value: unknown): boolean;
|
|
84
|
+
} & {
|
|
85
|
+
default: boolean | (() => boolean) | null;
|
|
86
|
+
};
|
|
87
|
+
}>>, {
|
|
88
|
+
secondary: boolean;
|
|
89
|
+
}, {}>;
|
|
90
|
+
|
|
91
|
+
export declare const AGConfirmModal: DefineComponent< {
|
|
92
|
+
title: {
|
|
93
|
+
type: PropType<string | null>;
|
|
94
|
+
validator?(value: unknown): boolean;
|
|
95
|
+
} & {
|
|
96
|
+
default: string | (() => string | null) | null;
|
|
97
|
+
};
|
|
98
|
+
message: {
|
|
99
|
+
type: PropType<string>;
|
|
100
|
+
validator?(value: unknown): boolean;
|
|
101
|
+
} & {
|
|
102
|
+
required: true;
|
|
103
|
+
};
|
|
104
|
+
}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
105
|
+
[key: string]: any;
|
|
106
|
+
}>, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {
|
|
107
|
+
title: {
|
|
108
|
+
type: PropType<string | null>;
|
|
109
|
+
validator?(value: unknown): boolean;
|
|
110
|
+
} & {
|
|
111
|
+
default: string | (() => string | null) | null;
|
|
112
|
+
};
|
|
113
|
+
message: {
|
|
114
|
+
type: PropType<string>;
|
|
115
|
+
validator?(value: unknown): boolean;
|
|
116
|
+
} & {
|
|
117
|
+
required: true;
|
|
118
|
+
};
|
|
119
|
+
}>>, {
|
|
120
|
+
title: string | null;
|
|
121
|
+
}, {}>;
|
|
122
|
+
|
|
34
123
|
export declare const AGForm: DefineComponent< {
|
|
35
124
|
form: {
|
|
36
125
|
type: PropType<Form<FormFieldDefinitions> | null>;
|
|
@@ -173,6 +262,18 @@ name: string | null;
|
|
|
173
262
|
modelValue: string | null;
|
|
174
263
|
}, {}>;
|
|
175
264
|
|
|
265
|
+
export declare const AGHeadlessInputError: DefineComponent< {}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
266
|
+
[key: string]: any;
|
|
267
|
+
}>, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {}>>, {}, {}>;
|
|
268
|
+
|
|
269
|
+
export declare const AGHeadlessInputInput: DefineComponent< {}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
270
|
+
[key: string]: any;
|
|
271
|
+
}>, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {}>>, {}, {}>;
|
|
272
|
+
|
|
273
|
+
export declare const AGHeadlessInputLabel: DefineComponent< {}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
274
|
+
[key: string]: any;
|
|
275
|
+
}>, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {}>>, {}, {}>;
|
|
276
|
+
|
|
176
277
|
export declare const AGHeadlessModal: DefineComponent< {
|
|
177
278
|
cancellable: {
|
|
178
279
|
type: PropType<boolean>;
|
|
@@ -238,6 +339,12 @@ name: string | null;
|
|
|
238
339
|
}, {}>;
|
|
239
340
|
|
|
240
341
|
export declare const AGMarkdown: DefineComponent< {
|
|
342
|
+
as: {
|
|
343
|
+
type: PropType<string>;
|
|
344
|
+
validator?(value: unknown): boolean;
|
|
345
|
+
} & {
|
|
346
|
+
default: string | (() => string) | null;
|
|
347
|
+
};
|
|
241
348
|
langKey: {
|
|
242
349
|
type: PropType<string | null>;
|
|
243
350
|
validator?(value: unknown): boolean;
|
|
@@ -250,9 +357,27 @@ validator?(value: unknown): boolean;
|
|
|
250
357
|
} & {
|
|
251
358
|
default: string | (() => string | null) | null;
|
|
252
359
|
};
|
|
360
|
+
inline: {
|
|
361
|
+
type: PropType<boolean>;
|
|
362
|
+
validator?(value: unknown): boolean;
|
|
363
|
+
} & {
|
|
364
|
+
default: boolean | (() => boolean) | null;
|
|
365
|
+
};
|
|
366
|
+
raw: {
|
|
367
|
+
type: PropType<boolean>;
|
|
368
|
+
validator?(value: unknown): boolean;
|
|
369
|
+
} & {
|
|
370
|
+
default: boolean | (() => boolean) | null;
|
|
371
|
+
};
|
|
253
372
|
}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
254
373
|
[key: string]: any;
|
|
255
374
|
}>, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {
|
|
375
|
+
as: {
|
|
376
|
+
type: PropType<string>;
|
|
377
|
+
validator?(value: unknown): boolean;
|
|
378
|
+
} & {
|
|
379
|
+
default: string | (() => string) | null;
|
|
380
|
+
};
|
|
256
381
|
langKey: {
|
|
257
382
|
type: PropType<string | null>;
|
|
258
383
|
validator?(value: unknown): boolean;
|
|
@@ -265,9 +390,24 @@ validator?(value: unknown): boolean;
|
|
|
265
390
|
} & {
|
|
266
391
|
default: string | (() => string | null) | null;
|
|
267
392
|
};
|
|
393
|
+
inline: {
|
|
394
|
+
type: PropType<boolean>;
|
|
395
|
+
validator?(value: unknown): boolean;
|
|
396
|
+
} & {
|
|
397
|
+
default: boolean | (() => boolean) | null;
|
|
398
|
+
};
|
|
399
|
+
raw: {
|
|
400
|
+
type: PropType<boolean>;
|
|
401
|
+
validator?(value: unknown): boolean;
|
|
402
|
+
} & {
|
|
403
|
+
default: boolean | (() => boolean) | null;
|
|
404
|
+
};
|
|
268
405
|
}>>, {
|
|
406
|
+
as: string;
|
|
269
407
|
langKey: string | null;
|
|
270
408
|
text: string | null;
|
|
409
|
+
inline: boolean;
|
|
410
|
+
raw: boolean;
|
|
271
411
|
}, {}>;
|
|
272
412
|
|
|
273
413
|
export declare const AGModal: DefineComponent< {}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
@@ -304,6 +444,11 @@ required: true;
|
|
|
304
444
|
};
|
|
305
445
|
}>>, {}, {}>;
|
|
306
446
|
|
|
447
|
+
export declare const App: Facade<AppService, Constructor<AppService>>;
|
|
448
|
+
|
|
449
|
+
export declare class AppService extends _default {
|
|
450
|
+
}
|
|
451
|
+
|
|
307
452
|
export declare function arrayProp<T>(defaultValue?: () => T[]): OptionalProp<T[]>;
|
|
308
453
|
|
|
309
454
|
declare type BaseProp<T> = {
|
|
@@ -313,37 +458,50 @@ declare type BaseProp<T> = {
|
|
|
313
458
|
|
|
314
459
|
export declare function booleanProp(defaultValue?: boolean): OptionalProp<boolean>;
|
|
315
460
|
|
|
316
|
-
export declare function bootServices(app:
|
|
461
|
+
export declare function bootServices(app: App_2, services: Record<string, Service>): Promise<void>;
|
|
317
462
|
|
|
318
|
-
export declare function bootstrapApplication(rootComponent: Component, options?:
|
|
319
|
-
|
|
320
|
-
declare interface BootstrapOptions {
|
|
321
|
-
}
|
|
463
|
+
export declare function bootstrapApplication(rootComponent: Component, options?: AerogelOptions): Promise<void>;
|
|
322
464
|
|
|
323
465
|
export declare function componentRef<T>(): Ref<UnwrapNestedRefs<T> | undefined>;
|
|
324
466
|
|
|
325
|
-
declare
|
|
467
|
+
export declare type ComputedStateDefinition<TState extends ServiceState, TComputedState extends ServiceState> = {
|
|
468
|
+
[K in keyof TComputedState]: (state: TState) => TComputedState[K];
|
|
469
|
+
};
|
|
470
|
+
|
|
471
|
+
declare const _default: Constructor< {
|
|
472
|
+
environment: "production" | "development" | "testing";
|
|
473
|
+
}> & Constructor< {
|
|
474
|
+
isDevelopment: boolean;
|
|
475
|
+
}> & Constructor<Service<DefaultServiceState, {}>> & Service;
|
|
476
|
+
|
|
477
|
+
declare const _default_2: Constructor< {
|
|
478
|
+
modals: Modal<unknown>[];
|
|
479
|
+
}> & Constructor< {}> & Constructor<Service<DefaultServiceState, {}>> & Service;
|
|
326
480
|
|
|
327
481
|
export declare type DefaultServices = typeof defaultServices;
|
|
328
482
|
|
|
329
483
|
declare const defaultServices: {
|
|
330
|
-
$
|
|
484
|
+
$app: Facade<AppService, Constructor<AppService>>;
|
|
485
|
+
$events: Facade<EventsService, Constructor<EventsService>>;
|
|
331
486
|
};
|
|
332
487
|
|
|
333
488
|
export declare type DefaultServiceState = {};
|
|
334
489
|
|
|
335
490
|
export declare function defineDirective(directive: Directive): Directive;
|
|
336
491
|
|
|
337
|
-
export declare function
|
|
492
|
+
export declare function definePlugin<T extends Plugin_2>(plugin: T): T;
|
|
493
|
+
|
|
494
|
+
export declare function defineServiceState<State extends ServiceState = ServiceState, ComputedState extends ServiceState = {}>(options: {
|
|
338
495
|
initialState: State;
|
|
339
|
-
|
|
496
|
+
computed?: ComputedStateDefinition<State, ComputedState>;
|
|
497
|
+
}): Constructor<State> & Constructor<ComputedState> & ServiceConstructor;
|
|
340
498
|
|
|
341
499
|
export declare function enumProp<Enum extends Record<string, unknown>>(enumeration: Enum, defaultValue?: Enum[keyof Enum]): OptionalProp<Enum[keyof Enum]>;
|
|
342
500
|
|
|
343
501
|
declare type EventListener_2<T = unknown> = (payload: T) => unknown;
|
|
344
502
|
export { EventListener_2 as EventListener }
|
|
345
503
|
|
|
346
|
-
export declare const Events: Facade<EventsService
|
|
504
|
+
export declare const Events: Facade<EventsService, Constructor<EventsService>>;
|
|
347
505
|
|
|
348
506
|
export declare interface EventsPayload {
|
|
349
507
|
}
|
|
@@ -383,12 +541,14 @@ declare class Form<Fields extends FormFieldDefinitions = FormFieldDefinitions> e
|
|
|
383
541
|
setFieldValue<T extends keyof Fields>(field: T, value: FormData_2<Fields>[T]): void;
|
|
384
542
|
getFieldValue<T extends keyof Fields>(field: T): GetFormFieldValue<Fields[T]['type']>;
|
|
385
543
|
validate(): boolean;
|
|
544
|
+
reset(): void;
|
|
386
545
|
submit(): boolean;
|
|
387
546
|
protected __get(property: string): unknown;
|
|
388
547
|
protected __set(property: string, value: unknown): void;
|
|
389
548
|
private getFieldErrors;
|
|
390
549
|
private getInitialData;
|
|
391
550
|
private getInitialErrors;
|
|
551
|
+
private resetErrors;
|
|
392
552
|
}
|
|
393
553
|
|
|
394
554
|
declare type FormData_2<T> = {
|
|
@@ -417,6 +577,13 @@ export declare const FormFieldTypes: {
|
|
|
417
577
|
|
|
418
578
|
export declare type GetFormFieldValue<TType> = TType extends typeof FormFieldTypes.String ? string : TType extends typeof FormFieldTypes.Number ? number : never;
|
|
419
579
|
|
|
580
|
+
export declare interface IAGHeadlessInput {
|
|
581
|
+
id: string;
|
|
582
|
+
value: ComputedRef<string | number | null>;
|
|
583
|
+
errors: DeepReadonly<Ref<string[] | null>>;
|
|
584
|
+
update(value: string | number | null): void;
|
|
585
|
+
}
|
|
586
|
+
|
|
420
587
|
export declare interface IAGHeadlessModal extends IAGModal {
|
|
421
588
|
}
|
|
422
589
|
|
|
@@ -431,26 +598,23 @@ export declare function injectReactive<T extends object>(key: InjectionKey<T> |
|
|
|
431
598
|
|
|
432
599
|
export declare function injectReactiveOrFail<T extends object>(key: InjectionKey<T> | string, errorMessage?: string): UnwrapNestedRefs<T>;
|
|
433
600
|
|
|
434
|
-
export declare const Lang: Facade<LangService
|
|
601
|
+
export declare const Lang: Facade<LangService, Constructor<LangService>>;
|
|
435
602
|
|
|
436
|
-
export declare
|
|
437
|
-
|
|
438
|
-
export declare interface LangOptions {
|
|
439
|
-
messages: Record<string, unknown>;
|
|
440
|
-
defaultLocale?: string;
|
|
441
|
-
fallbackLocale?: string;
|
|
603
|
+
export declare interface LangProvider {
|
|
604
|
+
translate(key: string, parameters?: Record<string, unknown>): string;
|
|
442
605
|
}
|
|
443
606
|
|
|
444
607
|
declare class LangService extends Service {
|
|
445
|
-
private
|
|
446
|
-
|
|
608
|
+
private provider;
|
|
609
|
+
constructor();
|
|
610
|
+
setProvider(provider: LangProvider): void;
|
|
447
611
|
translate(key: string, parameters?: Record<string, unknown>): string;
|
|
612
|
+
translateWithDefault(key: string, defaultMessage: string): string;
|
|
613
|
+
translateWithDefault(key: string, parameters: Record<string, unknown>, defaultMessage: string): string;
|
|
448
614
|
}
|
|
449
615
|
|
|
450
616
|
export declare type LangServices = typeof services;
|
|
451
617
|
|
|
452
|
-
export declare type LazyMessages = () => Promise<Record<string, unknown>>;
|
|
453
|
-
|
|
454
618
|
export declare function mixedProp<T>(type: PropType<T>): OptionalProp<T | null>;
|
|
455
619
|
|
|
456
620
|
declare interface Modal<T = unknown> {
|
|
@@ -478,10 +642,17 @@ export declare function objectProp<T = Object>(): OptionalProp<T | null>;
|
|
|
478
642
|
|
|
479
643
|
export declare function objectProp<T>(defaultValue: () => T): OptionalProp<T>;
|
|
480
644
|
|
|
645
|
+
export declare function onCleanMounted(operation: () => Function): void;
|
|
646
|
+
|
|
481
647
|
declare type OptionalProp<T> = BaseProp<T> & {
|
|
482
648
|
default: T | (() => T) | null;
|
|
483
649
|
};
|
|
484
650
|
|
|
651
|
+
declare interface Plugin_2 {
|
|
652
|
+
install(app: App_2, options: AerogelOptions): void | Promise<void>;
|
|
653
|
+
}
|
|
654
|
+
export { Plugin_2 as Plugin }
|
|
655
|
+
|
|
485
656
|
export declare function requiredArrayProp<T>(): RequiredProp<T[]>;
|
|
486
657
|
|
|
487
658
|
export declare function requiredEnumProp<Enum extends Record<string, unknown>>(enumeration: Enum): RequiredProp<Enum[keyof Enum]>;
|
|
@@ -502,20 +673,24 @@ export declare function requiredStringInput(defaultValue?: string): FormFieldDef
|
|
|
502
673
|
|
|
503
674
|
export declare function requiredStringProp(): RequiredProp<string>;
|
|
504
675
|
|
|
505
|
-
export declare class Service<State extends ServiceState = DefaultServiceState> extends MagicObject {
|
|
676
|
+
export declare class Service<State extends ServiceState = DefaultServiceState, ComputedState extends ServiceState = {}> extends MagicObject {
|
|
506
677
|
protected _namespace: string;
|
|
507
678
|
private _booted;
|
|
508
679
|
private _state;
|
|
680
|
+
private _computedState;
|
|
509
681
|
constructor();
|
|
510
682
|
get booted(): PromisedValue<void>;
|
|
511
683
|
launch(namespace?: string): Promise<void>;
|
|
512
684
|
protected __get(property: string): unknown;
|
|
513
685
|
protected __set(property: string, value: unknown): void;
|
|
514
686
|
protected hasState<P extends keyof State>(property: P): boolean;
|
|
687
|
+
protected hasComputedState<P extends keyof State>(property: P): boolean;
|
|
515
688
|
protected getState(): State;
|
|
516
689
|
protected getState<P extends keyof State>(property: P): State[P];
|
|
690
|
+
protected getComputedState<P extends keyof ComputedState>(property: P): ComputedState[P];
|
|
517
691
|
protected setState(state: Partial<State>): void;
|
|
518
692
|
protected getInitialState(): State;
|
|
693
|
+
protected getComputedStateDefinition(): ComputedStateDefinition<State, ComputedState>;
|
|
519
694
|
protected boot(): Promise<void>;
|
|
520
695
|
}
|
|
521
696
|
|
|
@@ -525,37 +700,44 @@ export declare interface Services extends DefaultServices {
|
|
|
525
700
|
}
|
|
526
701
|
|
|
527
702
|
declare const services: {
|
|
528
|
-
$lang: Facade<LangService
|
|
703
|
+
$lang: Facade<LangService, Constructor<LangService>>;
|
|
529
704
|
};
|
|
530
705
|
|
|
531
706
|
declare const services_2: {
|
|
532
|
-
$ui: Facade<UIService
|
|
707
|
+
$ui: Facade<UIService, Constructor<UIService>>;
|
|
533
708
|
};
|
|
534
709
|
|
|
535
710
|
export declare type ServiceState = Record<string, any>;
|
|
536
711
|
|
|
537
|
-
declare interface State {
|
|
538
|
-
modals: Modal[];
|
|
539
|
-
}
|
|
540
|
-
|
|
541
712
|
export declare function stringInput(defaultValue?: string): FormFieldDefinition<typeof FormFieldTypes.String>;
|
|
542
713
|
|
|
543
714
|
export declare function stringProp(): OptionalProp<string | null>;
|
|
544
715
|
|
|
545
716
|
export declare function stringProp(defaultValue: string): OptionalProp<string>;
|
|
546
717
|
|
|
547
|
-
export declare const
|
|
718
|
+
export declare const translate: (key: string, parameters?: Record<string, unknown> | undefined) => string;
|
|
719
|
+
|
|
720
|
+
export declare const translateWithDefault: {
|
|
721
|
+
(key: string, defaultMessage: string): string;
|
|
722
|
+
(key: string, parameters: Record<string, unknown>, defaultMessage: string): string;
|
|
723
|
+
};
|
|
724
|
+
|
|
725
|
+
export declare const UI: Facade<UIService, Constructor<UIService>>;
|
|
548
726
|
|
|
549
727
|
export declare type UIComponent = ObjectValues<typeof UIComponents>;
|
|
550
728
|
|
|
551
729
|
export declare const UIComponents: {
|
|
552
730
|
readonly AlertModal: "alert-modal";
|
|
731
|
+
readonly ConfirmModal: "confirm-modal";
|
|
553
732
|
};
|
|
554
733
|
|
|
555
|
-
declare class UIService extends
|
|
734
|
+
declare class UIService extends _default_2 {
|
|
556
735
|
private modalCallbacks;
|
|
557
736
|
private components;
|
|
558
737
|
alert(message: string): void;
|
|
738
|
+
alert(title: string, message: string): void;
|
|
739
|
+
confirm(message: string): Promise<boolean>;
|
|
740
|
+
confirm(title: string, message: string): Promise<boolean>;
|
|
559
741
|
registerComponent(name: UIComponent, component: Component): void;
|
|
560
742
|
openModal<TModalComponent extends ModalComponent>(component: TModalComponent, properties?: ModalProperties<TModalComponent>): Promise<Modal<ModalResult<TModalComponent>>>;
|
|
561
743
|
closeModal(id: string, result?: unknown): Promise<void>;
|
|
@@ -568,27 +750,28 @@ export declare type UIServices = typeof services_2;
|
|
|
568
750
|
|
|
569
751
|
export declare type UnknownEvent<T> = T extends keyof EventsPayload ? never : T;
|
|
570
752
|
|
|
753
|
+
export declare function useEvent<Event extends EventWithoutPayload>(event: Event, listener: () => unknown): void;
|
|
754
|
+
|
|
755
|
+
export declare function useEvent<Event extends EventWithPayload>(event: Event, listener: EventListener_2<EventsPayload[Event]>): void;
|
|
756
|
+
|
|
757
|
+
export declare function useEvent<Event extends string>(event: UnknownEvent<Event>, listener: EventListener_2): void;
|
|
758
|
+
|
|
571
759
|
export declare function useForm<const T extends FormFieldDefinitions>(fields: T): Form<T> & FormData_2<T>;
|
|
572
760
|
|
|
573
761
|
export { }
|
|
574
762
|
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
763
|
+
declare global {
|
|
764
|
+
export const __AG_BASE_PATH: string | undefined;
|
|
765
|
+
export const __AG_ENV: 'production' | 'development' | 'testing';
|
|
766
|
+
}
|
|
579
767
|
|
|
580
768
|
interface Services extends LangServices {}
|
|
581
769
|
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
interface BootstrapOptions {
|
|
587
|
-
routes?: RouteRecordRaw[];
|
|
588
|
-
basePath?: string;
|
|
770
|
+
declare module '@vue/runtime-core' {
|
|
771
|
+
interface ComponentCustomProperties {
|
|
772
|
+
$td: typeof translateWithDefault;
|
|
589
773
|
}
|
|
590
|
-
|
|
591
|
-
import type { RouteRecordRaw } from 'vue-router';
|
|
774
|
+
}
|
|
592
775
|
|
|
593
776
|
declare module '@vue/runtime-core' {
|
|
594
777
|
interface ComponentCustomProperties extends Services {}
|
|
@@ -602,7 +785,7 @@ declare module '@vue/runtime-core' {
|
|
|
602
785
|
'show-modal': { id: string };
|
|
603
786
|
}
|
|
604
787
|
|
|
605
|
-
interface
|
|
788
|
+
interface AerogelOptions {
|
|
606
789
|
components?: Partial<Record<UIComponent, Component>>;
|
|
607
790
|
}
|
|
608
791
|
|