@aerogel/core 0.0.0-next.7f6ed5a1f91688a86bf5ede2adc465e4fd6cfdea → 0.0.0-next.926bde19326fe7b6b24b277666936862b64d8295
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 +231 -47
- 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.test.ts +21 -0
- package/src/forms/Form.ts +26 -7
- 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.resetData(),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)}resetData(){for(const[e,t]of Object.entries(this._fields))this._data[e]=t.default??null}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,16 +541,19 @@ 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 resetData;
|
|
552
|
+
private resetErrors;
|
|
392
553
|
}
|
|
393
554
|
|
|
394
555
|
declare type FormData_2<T> = {
|
|
395
|
-
[k in keyof T]: T[k] extends FormFieldDefinition<infer TType, infer TRules> ? TRules extends 'required' ? GetFormFieldValue<TType> : GetFormFieldValue<TType> | null : never;
|
|
556
|
+
-readonly [k in keyof T]: T[k] extends FormFieldDefinition<infer TType, infer TRules> ? TRules extends 'required' ? GetFormFieldValue<TType> : GetFormFieldValue<TType> | null : never;
|
|
396
557
|
};
|
|
397
558
|
export { FormData_2 as FormData }
|
|
398
559
|
|
|
@@ -417,6 +578,13 @@ export declare const FormFieldTypes: {
|
|
|
417
578
|
|
|
418
579
|
export declare type GetFormFieldValue<TType> = TType extends typeof FormFieldTypes.String ? string : TType extends typeof FormFieldTypes.Number ? number : never;
|
|
419
580
|
|
|
581
|
+
export declare interface IAGHeadlessInput {
|
|
582
|
+
id: string;
|
|
583
|
+
value: ComputedRef<string | number | null>;
|
|
584
|
+
errors: DeepReadonly<Ref<string[] | null>>;
|
|
585
|
+
update(value: string | number | null): void;
|
|
586
|
+
}
|
|
587
|
+
|
|
420
588
|
export declare interface IAGHeadlessModal extends IAGModal {
|
|
421
589
|
}
|
|
422
590
|
|
|
@@ -431,26 +599,23 @@ export declare function injectReactive<T extends object>(key: InjectionKey<T> |
|
|
|
431
599
|
|
|
432
600
|
export declare function injectReactiveOrFail<T extends object>(key: InjectionKey<T> | string, errorMessage?: string): UnwrapNestedRefs<T>;
|
|
433
601
|
|
|
434
|
-
export declare const Lang: Facade<LangService
|
|
602
|
+
export declare const Lang: Facade<LangService, Constructor<LangService>>;
|
|
435
603
|
|
|
436
|
-
export declare
|
|
437
|
-
|
|
438
|
-
export declare interface LangOptions {
|
|
439
|
-
messages: Record<string, unknown>;
|
|
440
|
-
defaultLocale?: string;
|
|
441
|
-
fallbackLocale?: string;
|
|
604
|
+
export declare interface LangProvider {
|
|
605
|
+
translate(key: string, parameters?: Record<string, unknown>): string;
|
|
442
606
|
}
|
|
443
607
|
|
|
444
608
|
declare class LangService extends Service {
|
|
445
|
-
private
|
|
446
|
-
|
|
609
|
+
private provider;
|
|
610
|
+
constructor();
|
|
611
|
+
setProvider(provider: LangProvider): void;
|
|
447
612
|
translate(key: string, parameters?: Record<string, unknown>): string;
|
|
613
|
+
translateWithDefault(key: string, defaultMessage: string): string;
|
|
614
|
+
translateWithDefault(key: string, parameters: Record<string, unknown>, defaultMessage: string): string;
|
|
448
615
|
}
|
|
449
616
|
|
|
450
617
|
export declare type LangServices = typeof services;
|
|
451
618
|
|
|
452
|
-
export declare type LazyMessages = () => Promise<Record<string, unknown>>;
|
|
453
|
-
|
|
454
619
|
export declare function mixedProp<T>(type: PropType<T>): OptionalProp<T | null>;
|
|
455
620
|
|
|
456
621
|
declare interface Modal<T = unknown> {
|
|
@@ -478,10 +643,17 @@ export declare function objectProp<T = Object>(): OptionalProp<T | null>;
|
|
|
478
643
|
|
|
479
644
|
export declare function objectProp<T>(defaultValue: () => T): OptionalProp<T>;
|
|
480
645
|
|
|
646
|
+
export declare function onCleanMounted(operation: () => Function): void;
|
|
647
|
+
|
|
481
648
|
declare type OptionalProp<T> = BaseProp<T> & {
|
|
482
649
|
default: T | (() => T) | null;
|
|
483
650
|
};
|
|
484
651
|
|
|
652
|
+
declare interface Plugin_2 {
|
|
653
|
+
install(app: App_2, options: AerogelOptions): void | Promise<void>;
|
|
654
|
+
}
|
|
655
|
+
export { Plugin_2 as Plugin }
|
|
656
|
+
|
|
485
657
|
export declare function requiredArrayProp<T>(): RequiredProp<T[]>;
|
|
486
658
|
|
|
487
659
|
export declare function requiredEnumProp<Enum extends Record<string, unknown>>(enumeration: Enum): RequiredProp<Enum[keyof Enum]>;
|
|
@@ -502,20 +674,24 @@ export declare function requiredStringInput(defaultValue?: string): FormFieldDef
|
|
|
502
674
|
|
|
503
675
|
export declare function requiredStringProp(): RequiredProp<string>;
|
|
504
676
|
|
|
505
|
-
export declare class Service<State extends ServiceState = DefaultServiceState> extends MagicObject {
|
|
677
|
+
export declare class Service<State extends ServiceState = DefaultServiceState, ComputedState extends ServiceState = {}> extends MagicObject {
|
|
506
678
|
protected _namespace: string;
|
|
507
679
|
private _booted;
|
|
508
680
|
private _state;
|
|
681
|
+
private _computedState;
|
|
509
682
|
constructor();
|
|
510
683
|
get booted(): PromisedValue<void>;
|
|
511
684
|
launch(namespace?: string): Promise<void>;
|
|
512
685
|
protected __get(property: string): unknown;
|
|
513
686
|
protected __set(property: string, value: unknown): void;
|
|
514
687
|
protected hasState<P extends keyof State>(property: P): boolean;
|
|
688
|
+
protected hasComputedState<P extends keyof State>(property: P): boolean;
|
|
515
689
|
protected getState(): State;
|
|
516
690
|
protected getState<P extends keyof State>(property: P): State[P];
|
|
691
|
+
protected getComputedState<P extends keyof ComputedState>(property: P): ComputedState[P];
|
|
517
692
|
protected setState(state: Partial<State>): void;
|
|
518
693
|
protected getInitialState(): State;
|
|
694
|
+
protected getComputedStateDefinition(): ComputedStateDefinition<State, ComputedState>;
|
|
519
695
|
protected boot(): Promise<void>;
|
|
520
696
|
}
|
|
521
697
|
|
|
@@ -525,37 +701,44 @@ export declare interface Services extends DefaultServices {
|
|
|
525
701
|
}
|
|
526
702
|
|
|
527
703
|
declare const services: {
|
|
528
|
-
$lang: Facade<LangService
|
|
704
|
+
$lang: Facade<LangService, Constructor<LangService>>;
|
|
529
705
|
};
|
|
530
706
|
|
|
531
707
|
declare const services_2: {
|
|
532
|
-
$ui: Facade<UIService
|
|
708
|
+
$ui: Facade<UIService, Constructor<UIService>>;
|
|
533
709
|
};
|
|
534
710
|
|
|
535
711
|
export declare type ServiceState = Record<string, any>;
|
|
536
712
|
|
|
537
|
-
declare interface State {
|
|
538
|
-
modals: Modal[];
|
|
539
|
-
}
|
|
540
|
-
|
|
541
713
|
export declare function stringInput(defaultValue?: string): FormFieldDefinition<typeof FormFieldTypes.String>;
|
|
542
714
|
|
|
543
715
|
export declare function stringProp(): OptionalProp<string | null>;
|
|
544
716
|
|
|
545
717
|
export declare function stringProp(defaultValue: string): OptionalProp<string>;
|
|
546
718
|
|
|
547
|
-
export declare const
|
|
719
|
+
export declare const translate: (key: string, parameters?: Record<string, unknown> | undefined) => string;
|
|
720
|
+
|
|
721
|
+
export declare const translateWithDefault: {
|
|
722
|
+
(key: string, defaultMessage: string): string;
|
|
723
|
+
(key: string, parameters: Record<string, unknown>, defaultMessage: string): string;
|
|
724
|
+
};
|
|
725
|
+
|
|
726
|
+
export declare const UI: Facade<UIService, Constructor<UIService>>;
|
|
548
727
|
|
|
549
728
|
export declare type UIComponent = ObjectValues<typeof UIComponents>;
|
|
550
729
|
|
|
551
730
|
export declare const UIComponents: {
|
|
552
731
|
readonly AlertModal: "alert-modal";
|
|
732
|
+
readonly ConfirmModal: "confirm-modal";
|
|
553
733
|
};
|
|
554
734
|
|
|
555
|
-
declare class UIService extends
|
|
735
|
+
declare class UIService extends _default_2 {
|
|
556
736
|
private modalCallbacks;
|
|
557
737
|
private components;
|
|
558
738
|
alert(message: string): void;
|
|
739
|
+
alert(title: string, message: string): void;
|
|
740
|
+
confirm(message: string): Promise<boolean>;
|
|
741
|
+
confirm(title: string, message: string): Promise<boolean>;
|
|
559
742
|
registerComponent(name: UIComponent, component: Component): void;
|
|
560
743
|
openModal<TModalComponent extends ModalComponent>(component: TModalComponent, properties?: ModalProperties<TModalComponent>): Promise<Modal<ModalResult<TModalComponent>>>;
|
|
561
744
|
closeModal(id: string, result?: unknown): Promise<void>;
|
|
@@ -568,27 +751,28 @@ export declare type UIServices = typeof services_2;
|
|
|
568
751
|
|
|
569
752
|
export declare type UnknownEvent<T> = T extends keyof EventsPayload ? never : T;
|
|
570
753
|
|
|
754
|
+
export declare function useEvent<Event extends EventWithoutPayload>(event: Event, listener: () => unknown): void;
|
|
755
|
+
|
|
756
|
+
export declare function useEvent<Event extends EventWithPayload>(event: Event, listener: EventListener_2<EventsPayload[Event]>): void;
|
|
757
|
+
|
|
758
|
+
export declare function useEvent<Event extends string>(event: UnknownEvent<Event>, listener: EventListener_2): void;
|
|
759
|
+
|
|
571
760
|
export declare function useForm<const T extends FormFieldDefinitions>(fields: T): Form<T> & FormData_2<T>;
|
|
572
761
|
|
|
573
762
|
export { }
|
|
574
763
|
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
764
|
+
declare global {
|
|
765
|
+
export const __AG_BASE_PATH: string | undefined;
|
|
766
|
+
export const __AG_ENV: 'production' | 'development' | 'testing';
|
|
767
|
+
}
|
|
579
768
|
|
|
580
769
|
interface Services extends LangServices {}
|
|
581
770
|
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
interface BootstrapOptions {
|
|
587
|
-
routes?: RouteRecordRaw[];
|
|
588
|
-
basePath?: string;
|
|
771
|
+
declare module '@vue/runtime-core' {
|
|
772
|
+
interface ComponentCustomProperties {
|
|
773
|
+
$td: typeof translateWithDefault;
|
|
589
774
|
}
|
|
590
|
-
|
|
591
|
-
import type { RouteRecordRaw } from 'vue-router';
|
|
775
|
+
}
|
|
592
776
|
|
|
593
777
|
declare module '@vue/runtime-core' {
|
|
594
778
|
interface ComponentCustomProperties extends Services {}
|
|
@@ -602,7 +786,7 @@ declare module '@vue/runtime-core' {
|
|
|
602
786
|
'show-modal': { id: string };
|
|
603
787
|
}
|
|
604
788
|
|
|
605
|
-
interface
|
|
789
|
+
interface AerogelOptions {
|
|
606
790
|
components?: Partial<Record<UIComponent, Component>>;
|
|
607
791
|
}
|
|
608
792
|
|