@aerogel/core 0.0.0-next.59bf5f7cc06e728d0cf6c00de28f1da48d7d6b8e → 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 +39 -201
- package/dist/aerogel-core.esm.js +1 -1
- package/package.json +1 -2
- package/src/bootstrap/index.ts +1 -4
- package/src/components/basic/AGMarkdown.vue +3 -3
- package/src/components/forms/AGButton.vue +8 -21
- package/src/components/forms/AGInput.vue +4 -8
- package/src/components/forms/index.ts +1 -2
- package/src/components/headless/forms/AGHeadlessInput.ts +2 -2
- package/src/components/headless/forms/AGHeadlessInput.vue +3 -3
- package/src/components/headless/forms/AGHeadlessInputError.vue +1 -1
- package/src/components/headless/forms/AGHeadlessInputInput.vue +3 -15
- package/src/components/headless/modals/AGHeadlessModalPanel.vue +1 -5
- package/src/components/modals/AGModal.vue +2 -20
- package/src/components/modals/index.ts +1 -2
- package/src/forms/Form.ts +9 -12
- package/src/forms/utils.ts +0 -17
- package/src/lang/Lang.ts +3 -11
- package/src/lang/index.ts +4 -2
- package/src/main.ts +0 -1
- package/src/services/App.state.ts +0 -3
- package/src/services/App.ts +1 -11
- package/src/services/Service.ts +44 -126
- package/src/services/index.ts +4 -18
- package/src/ui/UI.state.ts +0 -1
- package/src/ui/UI.ts +0 -15
- package/src/ui/index.ts +0 -2
- package/src/utils/index.ts +0 -1
- package/src/components/forms/AGCheckbox.vue +0 -35
- package/src/components/modals/AGLoadingModal.vue +0 -19
- package/src/errors/Errors.state.ts +0 -31
- package/src/errors/Errors.ts +0 -132
- package/src/errors/index.ts +0 -21
- package/src/lang/utils.ts +0 -4
- package/src/services/store.ts +0 -27
- package/src/utils/composition/forms.ts +0 -11
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"),r=require("@babel/runtime/helpers/defineProperty");require("core-js/modules/esnext.set.add-all.js"),require("core-js/modules/esnext.set.delete-all.js"),require("core-js/modules/esnext.set.difference.js"),require("core-js/modules/esnext.set.every.js"),require("core-js/modules/esnext.set.filter.js"),require("core-js/modules/esnext.set.find.js"),require("core-js/modules/esnext.set.intersection.js"),require("core-js/modules/esnext.set.is-disjoint-from.js"),require("core-js/modules/esnext.set.is-subset-of.js"),require("core-js/modules/esnext.set.is-superset-of.js"),require("core-js/modules/esnext.set.join.js"),require("core-js/modules/esnext.set.map.js"),require("core-js/modules/esnext.set.reduce.js"),require("core-js/modules/esnext.set.some.js"),require("core-js/modules/esnext.set.symmetric-difference.js"),require("core-js/modules/esnext.set.union.js");var o=require("pinia");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"),require("core-js/modules/esnext.async-iterator.reduce.js"),require("core-js/modules/esnext.iterator.reduce.js"),require("core-js/modules/esnext.async-iterator.some.js"),require("core-js/modules/esnext.iterator.some.js");var s=require("@headlessui/vue"),n=require("dompurify"),a=require("marked");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=l(r),u=l(n);function c(e){return e}function d(){return{type:Boolean,default:arguments.length>0&&void 0!==arguments[0]&&arguments[0]}}function p(){return e.ref()}function m(e){return e}function f(t){const r=e.inject(t);return r?e.reactive(r):void 0}function h(e,r){return f(e)??t.fail(r??`Could not resolve '${e}' injection key`)}function v(e){return{type:e,default:null}}function g(){return{type:Object,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function x(){return{type:Number,required:!0}}function _(){return{type:Object,required:!0}}function b(){return{type:String,required:!0}}function y(){return{type:String,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}const k={"initial-focus":{mounted(e,t){let{value:r}=t;!1!==r&&e.focus()}}};var j={install(e){Object.entries(k).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})}}let A=null;function S(){return A||(A=o.createPinia(),o.setActivePinia(A)),A}function w(e){var t;return t=class extends C{usesStore(){return!0}getName(){return e.name??null}getInitialState(){return e.initialState}getComputedStateDefinition(){return e.computed??{}}serializePersistedState(t){return e.serialize?.(t)??t}},i.default(t,"persist",e.persist??[]),t}class C extends t.MagicObject{constructor(){super(),i.default(this,"_name",void 0),i.default(this,"_booted",void 0),i.default(this,"_computedStateKeys",void 0),i.default(this,"_store",void 0);const e=this.getComputedStateDefinition();var r,s;this._name=this.getName()??new.target.name,this._booted=new t.PromisedValue,this._computedStateKeys=new Set(Object.keys(e)),this._store=this.usesStore()&&(r=this._name,s={state:()=>this.getInitialState(),getters:e},S(),o.defineStore(r,s)())}get booted(){return this._booted}launch(){const handleError=e=>this._booted.reject(new ServiceBootError(this._name,e));try{this.boot().then((()=>this._booted.resolve())).catch(handleError)}catch(e){handleError(e)}return this._booted}hasState(e){return!!this._store&&(e in this._store.$state||this._computedStateKeys.has(e))}getState(e){const t=this._store;return e?t?t[e]:void 0:t||{}}setState(e,t){if(!this._store)return;const r="string"==typeof e?{[e]:t}:e;Object.assign(this._store.$state,r),this.onStateUpdated(r)}__get(e){return this.hasState(e)?this.getState(e):super.__get(e)}__set(e,t){this.setState({[e]:t})}onStateUpdated(e){const r=this.constructor.persist,o=t.objectOnly(e,r);if(t.isEmpty(o))return;const s=t.Storage.require(this._name);t.Storage.set(this._name,{...s,...this.serializePersistedState(t.objectDeepClone(o))})}usesStore(){return!1}getName(){return null}getInitialState(){return{}}getComputedStateDefinition(){return{}}serializePersistedState(e){return e}async boot(){this.restorePersistedState()}restorePersistedState(){const e=this.constructor.persist;if(this.usesStore()&&!t.isEmpty(e))if(t.Storage.has(this._name)){const e=t.Storage.require(this._name);this.setState(e)}else t.Storage.set(this._name,t.objectOnly(this.getState(),e))}}i.default(C,"persist",[]);class E extends C{constructor(){super(...arguments),i.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 E),B=w({name:"app",initialState:{environment:__AG_ENV,isMounted:!1},computed:{isDevelopment:e=>"development"===e.environment,isTesting:e=>"testing"===e.environment}});class q extends B{async boot(){await super.boot(),G.once("application-mounted",(()=>this.setState({isMounted:!0})))}}var M=t.facade(new q);const I={$app:M,$events:G};async function P(e,t){await Promise.all(Object.entries(t).map((async e=>{let[t,r]=e;await r.launch().catch((e=>console.error(e)))}))),Object.assign(e.config.globalProperties,t)}var $={async install(e,t){const r={...I,...t.services};e.use(A??S()),await P(e,r)}},N=w({name:"ui",initialState:{modals:[]}});const V={AlertModal:"alert-modal",ConfirmModal:"confirm-modal",LoadingModal:"loading-modal"};var H=t.facade(new class extends N{constructor(){super(...arguments),i.default(this,"modalCallbacks",{}),i.default(this,"components",{})}alert(e,t){const r="string"==typeof t?{title:e,message:t}:{message:e};this.openModal(this.requireComponent(V.AlertModal),r)}async confirm(e,t){const r="string"==typeof t?{title:e,message:t}:{message:e},o=await this.openModal(this.requireComponent(V.ConfirmModal),r);return await o.beforeClose??!1}async loading(e,t){t="string"==typeof e?t:e;const r="string"==typeof e?e:void 0,o=await this.openModal(this.requireComponent(V.LoadingModal),{message:r}),s=await t;return await this.closeModal(o.id),s}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}))}))}});var O=t.facade(new class extends C{constructor(){super(),i.default(this,"provider",void 0),this.provider={translate:e=>(M.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,r,o){o??=r;const s="string"==typeof r?{}:r??{},n=this.provider.translate(e,s)??e;return n===e?Object.entries(s).reduce(((e,r)=>{let[o,s]=r;return e.replace(new RegExp(`\\{\\s*${o}\\s*\\}`,"g"),t.toString(s))}),o):n}});const D=O.translate.bind(O),R=O.translateWithDefault.bind(O);var L=w({name:"errors",initialState:{logs:[],startupErrors:[]},computed:{hasErrors:e=>{let{logs:t}=e;return t.length>0},hasNewErrors:e=>{let{logs:t}=e;return t.some((e=>!e.seen))},hasStartupErrors:e=>{let{startupErrors:t}=e;return t.length>0}}});var F=t.facade(new class extends L{constructor(){super(...arguments),i.default(this,"forceReporting",!1),i.default(this,"enabled",!0)}enable(){this.enabled=!0}disable(){this.enabled=!1}async inspect(e){Array.isArray(e)||await this.createErrorReport(e)}async report(e,t){if((M.isDevelopment||M.isTesting)&&this.logError(e),!this.enabled)throw e;if(!M.isMounted){const t=await this.createStartupErrorReport(e);return void(t&&this.setState({startupErrors:this.startupErrors.concat(t)}))}const r={report:await this.createErrorReport(e),seen:!1,date:new Date};H.alert(t??"Something went wrong, but it's not your fault! (look at the console for details)"),this.setState({logs:[r].concat(this.logs)})}see(e){this.setState({logs:this.logs.map((t=>t.report!==e?t:{...t,seen:!0}))})}seeAll(){this.setState({logs:this.logs.map((e=>({...e,seen:!0})))})}logError(e){console.error(e),t.isObject(e)&&e.cause&&this.logError(e.cause)}async createErrorReport(e){return"string"==typeof e?{title:e}:e instanceof Error||e instanceof t.JSError?this.createErrorReportFromError(e):{title:D("errors.unknown"),error:e}}async createStartupErrorReport(e){return e instanceof ServiceBootError?e.cause instanceof ServiceBootError?null:this.createErrorReport(e.cause):this.createErrorReport(e)}createErrorReportFromError(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{title:e.name,description:e.message,details:e.stack,error:e,...t}}});const T={$errors:F};var z={async install(e){await P(e,T)}};const K={$lang:O};var U={async install(e){e.config.globalProperties.$t??=D,e.config.globalProperties.$td=R,await P(e,K)}};function W(t,r){const o=G.on(t,r);e.onUnmounted((()=>o()))}function J(){const r=e.useAttrs(),o=e.computed((()=>r.class));return[e.computed((()=>t.objectWithout(r,"class"))),o]}var Q=e.defineComponent({__name:"AGHeadlessModal",props:{cancellable:d(!0)},setup(t,{expose:r}){const o=t,n=e.ref(null),a=e.ref(!0),l=e.ref(!1),{modal:i}=h("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 c(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 W("close-modal",(async({id:e,result:t})=>{e===i.id&&await c(t)})),W("hide-modal",(async({id:e})=>{e===i.id&&await u()})),W("show-modal",(async({id:e})=>{e===i.id&&await async function(){n.value?.$el&&(a.value=!1)}()})),r({close:c,cancellable:e.toRef(o,"cancellable")}),(r,o)=>(e.openBlock(),e.createBlock(e.unref(s.Dialog),{ref_key:"$root",ref:n,open:!0,onClose:o[0]||(o[0]=e=>t.cancellable&&c())},{default:e.withCtx((()=>[e.renderSlot(r.$slots,"default",{close:c})])),_:3},512))}});Q.__file="src/components/headless/modals/AGHeadlessModal.vue";var X=e.defineComponent({__name:"AGModalContext",props:{modal:_(),childIndex:x()},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))}});X.__file="src/components/modals/AGModalContext.vue";const Y=e.createElementVNode("div",{class:"pointer-events-none fixed inset-0 z-50 bg-black/30"},null,-1);var Z=e.defineComponent({__name:"AGHeadlessModalPanel",setup(t){const r=h("modal","could not obtain modal reference from <AGHeadlessModalPanel>, did you render this component manually? Show it using $ui.openModal() instead"),o=e.computed((()=>H.modals[r.childIndex]??null));return(t,n)=>(e.openBlock(),e.createBlock(e.unref(s.DialogPanel),null,{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default"),o.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[Y,e.createVNode(X,{"child-index":e.unref(r).childIndex+1,modal:o.value},null,8,["child-index","modal"])],64)):e.createCommentVNode("v-if",!0)])),_:3}))}});Z.__file="src/components/headless/modals/AGHeadlessModalPanel.vue";const ee={class:"fixed inset-0 flex items-center justify-center"},te={class:"flex max-h-full flex-col overflow-auto p-4"};var re=e.defineComponent({__name:"AGModal",props:{cancellable:d(!0)},setup(t,{expose:r}){const o=e.ref();return r({close:async()=>o.value?.close(),cancellable:e.computed((()=>!!o.value?.cancellable))}),(r,s)=>(e.openBlock(),e.createBlock(Q,{ref_key:"$headlessModal",ref:o,cancellable:t.cancellable,class:"relative z-50"},{default:e.withCtx((({close:t})=>[e.createElementVNode("div",ee,[e.createVNode(Z,{class:"flex max-h-full max-w-full flex-col overflow-hidden bg-white"},{default:e.withCtx((()=>[e.createElementVNode("div",te,[e.renderSlot(r.$slots,"default",{close:t})])])),_:2},1024)])])),_:3},8,["cancellable"]))}});function oe(e){return t=a.marked(e,{mangle:!1,headerIds:!1}),u.default.sanitize(t,{ADD_ATTR:["target"]});var t}re.__file="src/components/modals/AGModal.vue";var se=e.defineComponent({__name:"AGMarkdown",props:{as:y("div"),langKey:y(),text:y(),inline:d(),raw:d()},setup(t){const r=t,o=e.computed((()=>r.text??(r.langKey&&D(r.langKey)))),s=e.computed((()=>{if(!o.value)return null;let e=oe(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))}});se.__file="src/components/basic/AGMarkdown.vue";var ne=e.defineComponent({__name:"AGAlertModal",props:{title:y(),message:b()},setup:t=>(r,o)=>(e.openBlock(),e.createBlock(re,null,{default:e.withCtx((()=>[t.title?(e.openBlock(),e.createBlock(se,{key:0,text:t.title,as:"h2",class:"font-semibold",raw:"",inline:""},null,8,["text"])):e.createCommentVNode("v-if",!0),e.createVNode(se,{text:t.message},null,8,["text"])])),_:1}))});ne.__file="src/components/modals/AGAlertModal.vue";var ae=e.defineComponent({__name:"AGHeadlessButton",props:{url:y(),route:y(),routeParams:g((()=>({}))),routeQuery:g((()=>({}))),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))}});ae.__file="src/components/headless/forms/AGHeadlessButton.vue";var le=e.defineComponent({__name:"AGButton",props:{clear:d(),secondary:d()},setup(t){const r=t,o=e.computed((()=>r.secondary?"text-white bg-gray-600 hover:bg-gray-500 focus-visible:outline-offset-2 focus-visible:outline-gray-600":r.clear?"hover:bg-gray-500/20 focus-visible:outline-gray-500/60":["text-white bg-indigo-600","hover:bg-indigo-500","focus-visible:outline-offset-2 focus-visible:outline-indigo-600"].join(" ")));return(t,r)=>(e.openBlock(),e.createBlock(ae,{class:e.normalizeClass(["px-2.5 py-1.5 focus-visible:outline focus-visible:outline-2",o.value])},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3},8,["class"]))}});le.__file="src/components/forms/AGButton.vue";const ie={class:"mt-2 flex flex-row-reverse gap-2"};var ue=e.defineComponent({__name:"AGConfirmModal",props:{title:y(),message:b()},setup:t=>(r,o)=>(e.openBlock(),e.createBlock(re,{cancellable:!1},{default:e.withCtx((({close:o})=>[t.title?(e.openBlock(),e.createBlock(se,{key:0,text:t.title,as:"h1"},null,8,["text"])):e.createCommentVNode("v-if",!0),e.createVNode(se,{text:t.message},null,8,["text"]),e.createElementVNode("div",ie,[e.createVNode(le,{onClick:e=>o(!0)},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(r.$td("ui.ok","OK")),1)])),_:2},1032,["onClick"]),e.createVNode(le,{secondary:"",onClick:e=>o()},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(r.$td("ui.cancel","Cancel")),1)])),_:2},1032,["onClick"])])])),_:1}))});ue.__file="src/components/modals/AGConfirmModal.vue";var ce=e.defineComponent({__name:"AGLoadingModal",props:{message:y()},setup(t){const r=t,o=e.computed((()=>r.message??R("ui.loading","Loading...")));return(t,r)=>(e.openBlock(),e.createBlock(re,{cancellable:!1},{default:e.withCtx((()=>[e.createVNode(se,{text:o.value},null,8,["text"])])),_:1}))}});ce.__file="src/components/modals/AGLoadingModal.vue";const de={$ui:H};var pe={async install(e,t){const r={[V.AlertModal]:ne,[V.ConfirmModal]:ue,[V.LoadingModal]:ce};Object.entries({...r,...t.components}).forEach((e=>{let[t,r]=e;return H.registerComponent(t,r)})),await P(e,de)}};const me={key:0};var fe=e.defineComponent({__name:"AGAppOverlays",setup(t){const r=e.ref(null),o=e.ref(!0),s=e.computed((()=>H.modals[0]??null));return W("show-overlays-backdrop",(async()=>{r.value&&o.value&&(o.value=!1,r.value.classList.remove("opacity-0"))})),W("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",me,[e.createVNode(X,{"child-index":1,modal:s.value},null,8,["modal"])])):e.createCommentVNode("v-if",!0)],64))}});fe.__file="src/components/AGAppOverlays.vue";const he={class:"flex h-full flex-col text-base font-normal leading-tight text-gray-900 antialiased"};var ve=e.defineComponent({__name:"AGAppLayout",setup:t=>(t,r)=>(e.openBlock(),e.createElementBlock("div",he,[e.renderSlot(t.$slots,"default"),e.createVNode(fe)]))});ve.__file="src/components/AGAppLayout.vue";var ge=e.defineComponent({__name:"AGHeadlessInput",props:{as:y("div"),name:y(),modelValue:v([String,Number,Boolean])},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})}});ge.__file="src/components/headless/forms/AGHeadlessInput.vue";const xe=["id"];var _e=e.defineComponent({__name:"AGHeadlessInputError",setup(t){const r=h("input","<AGHeadlessInputError> must be a child of a <AGHeadlessInput>"),o=e.computed((()=>r.errors?R(`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,xe)):e.createCommentVNode("v-if",!0)}});_e.__file="src/components/headless/forms/AGHeadlessInputError.vue";const be=["id","type","value","aria-invalid","aria-describedby","checked"];var ye=e.defineComponent({__name:"AGHeadlessInputInput",props:{type:y("text")},setup(t){const r=t,o=e.ref(),s=h("input","<AGHeadlessInputInput> must be a child of a <AGHeadlessInput>"),n=e.computed((()=>s.value)),a=e.computed((()=>{if("checkbox"===r.type)return!!n.value}));function l(){o.value&&s.update("checkbox"===r.type?o.value.checked:o.value.value)}return(r,i)=>(e.openBlock(),e.createElementBlock("input",{id:e.unref(s).id,ref_key:"$input",ref:o,type:t.type,value:n.value,"aria-invalid":e.unref(s).errors?"true":"false","aria-describedby":e.unref(s).errors?`${e.unref(s).id}-error`:void 0,checked:a.value,onInput:l},null,40,be))}});ye.__file="src/components/headless/forms/AGHeadlessInputInput.vue";const ke=["for"];var je=e.defineComponent({__name:"AGHeadlessInputLabel",setup(t){const r=h("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,ke))}});je.__file="src/components/headless/forms/AGHeadlessInputLabel.vue";const Ae={class:"ml-2"};var Se=e.defineComponent({inheritAttrs:!1,__name:"AGCheckbox",props:{name:y()},setup(t){const r=p();return(o,s)=>(e.openBlock(),e.createBlock(ge,{ref_key:"$input",ref:r,name:t.name,class:"flex"},{default:e.withCtx((()=>[e.createVNode(ye,e.mergeProps(o.$attrs,{type:"checkbox",class:{"text-indigo-600 focus:ring-indigo-600":!e.unref(r)?.errors,"border-red-200 text-red-600 focus:ring-red-600":e.unref(r)?.errors}}),null,16,["class"]),e.createElementVNode("div",Ae,[o.$slots.default?(e.openBlock(),e.createBlock(je,{key:0},{default:e.withCtx((()=>[e.renderSlot(o.$slots,"default")])),_:3})):e.createCommentVNode("v-if",!0),e.createVNode(_e,{class:"text-sm text-red-600"})])])),_:3},8,["name"]))}});Se.__file="src/components/forms/AGCheckbox.vue";const we=["onSubmit"];var Ce=e.defineComponent({__name:"AGForm",props:{form:g()},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,we))}});Ce.__file="src/components/forms/AGForm.vue";const Ee={class:"absolute bottom-0 left-0 translate-y-full"};var Ge=e.defineComponent({inheritAttrs:!1,__name:"AGInput",props:{name:y()},setup(t){const r=p(),[o,s]=J();return(n,a)=>(e.openBlock(),e.createBlock(ge,{ref_key:"$input",ref:r,class:e.normalizeClass(["relative flex flex-col items-center",e.unref(s)]),name:t.name},{default:e.withCtx((()=>[e.createVNode(ye,e.mergeProps(e.unref(o),{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.createElementVNode("div",Ee,[e.createVNode(_e,{class:"mt-1 text-sm text-red-500"})])])),_:1},8,["class","name"]))}});Ge.__file="src/components/forms/AGInput.vue";var Be=e.defineComponent({__name:"AGHeadlessModalTitle",props:{as:y("h2")},setup:t=>(r,o)=>(e.openBlock(),e.createBlock(e.unref(s.DialogTitle),{as:t.as},{default:e.withCtx((()=>[e.renderSlot(r.$slots,"default")])),_:3},8,["as"]))});Be.__file="src/components/headless/modals/AGHeadlessModalTitle.vue";const qe={String:"string",Number:"number",Boolean:"boolean"};class Me extends t.MagicObject{constructor(t){super(),i.default(this,"errors",void 0),i.default(this,"_fields",void 0),i.default(this,"_data",void 0),i.default(this,"_valid",void 0),i.default(this,"_submitted",void 0),i.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=ne,exports.AGAppLayout=ve,exports.AGAppOverlays=fe,exports.AGButton=le,exports.AGCheckbox=Se,exports.AGConfirmModal=ue,exports.AGForm=Ce,exports.AGHeadlessButton=ae,exports.AGHeadlessInput=ge,exports.AGHeadlessInputError=_e,exports.AGHeadlessInputInput=ye,exports.AGHeadlessInputLabel=je,exports.AGHeadlessModal=Q,exports.AGHeadlessModalPanel=Z,exports.AGHeadlessModalTitle=Be,exports.AGInput=Ge,exports.AGLoadingModal=ce,exports.AGMarkdown=se,exports.AGModal=re,exports.AGModalContext=X,exports.App=M,exports.AppService=q,exports.Errors=F,exports.Events=G,exports.EventsService=E,exports.FormFieldTypes=qe,exports.Lang=O,exports.Service=C,exports.UI=H,exports.UIComponents=V,exports.arrayProp=function(e){return{type:Array,default:e??(()=>[])}},exports.booleanInput=function(e){return{default:e,type:qe.Boolean}},exports.booleanProp=d,exports.bootServices=P,exports.bootstrapApplication=async function(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=[j,z,U,$,pe,...r.plugins??[]],s=e.createApp(t);await Promise.all(o.map((e=>e.install(s,r)))??[]),s.mount("#app"),G.emit("application-mounted")},exports.componentRef=p,exports.defineDirective=m,exports.definePlugin=c,exports.defineServiceState=w,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=f,exports.injectReactiveOrFail=h,exports.mixedProp=v,exports.numberInput=function(e){return{default:e,type:qe.Number}},exports.numberProp=function(){return{type:Number,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}},exports.objectProp=g,exports.onCleanMounted=function(r){let o=t.noop;e.onMounted((()=>o=r())),e.onUnmounted((()=>o()))},exports.requiredArrayProp=function(){return{type:Array,required:!0}},exports.requiredBooleanInput=function(e){return{default:e,type:qe.Boolean,rules:"required"}},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:qe.Number,rules:"required"}},exports.requiredNumberProp=x,exports.requiredObjectProp=_,exports.requiredStringInput=function(e){return{default:e,type:qe.String,rules:"required"}},exports.requiredStringProp=b,exports.stringInput=function(e){return{default:e,type:qe.String}},exports.stringProp=y,exports.translate=D,exports.translateWithDefault=R,exports.useEvent=W,exports.useForm=function(e){return new Me(e)},exports.useInputAttrs=J;
|
|
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
|
@@ -11,7 +11,6 @@ import type { Directive } from 'vue';
|
|
|
11
11
|
import { ExtractPropTypes } from 'vue';
|
|
12
12
|
import { Facade } from '@noeldemartin/utils';
|
|
13
13
|
import type { InjectionKey } from 'vue';
|
|
14
|
-
import type { JSError } from '@noeldemartin/utils';
|
|
15
14
|
import type { LocationQuery } from 'vue-router';
|
|
16
15
|
import { MagicObject } from '@noeldemartin/utils';
|
|
17
16
|
import type { ObjectValues } from '@noeldemartin/utils';
|
|
@@ -70,12 +69,6 @@ export declare const AGAppOverlays: DefineComponent< {}, (_ctx: any, _cache:
|
|
|
70
69
|
}>, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {}>>, {}, {}>;
|
|
71
70
|
|
|
72
71
|
export declare const AGButton: DefineComponent< {
|
|
73
|
-
clear: {
|
|
74
|
-
type: PropType<boolean>;
|
|
75
|
-
validator?(value: unknown): boolean;
|
|
76
|
-
} & {
|
|
77
|
-
default: boolean | (() => boolean) | null;
|
|
78
|
-
};
|
|
79
72
|
secondary: {
|
|
80
73
|
type: PropType<boolean>;
|
|
81
74
|
validator?(value: unknown): boolean;
|
|
@@ -85,12 +78,6 @@ default: boolean | (() => boolean) | null;
|
|
|
85
78
|
}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
86
79
|
[key: string]: any;
|
|
87
80
|
}>, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {
|
|
88
|
-
clear: {
|
|
89
|
-
type: PropType<boolean>;
|
|
90
|
-
validator?(value: unknown): boolean;
|
|
91
|
-
} & {
|
|
92
|
-
default: boolean | (() => boolean) | null;
|
|
93
|
-
};
|
|
94
81
|
secondary: {
|
|
95
82
|
type: PropType<boolean>;
|
|
96
83
|
validator?(value: unknown): boolean;
|
|
@@ -98,30 +85,9 @@ validator?(value: unknown): boolean;
|
|
|
98
85
|
default: boolean | (() => boolean) | null;
|
|
99
86
|
};
|
|
100
87
|
}>>, {
|
|
101
|
-
clear: boolean;
|
|
102
88
|
secondary: boolean;
|
|
103
89
|
}, {}>;
|
|
104
90
|
|
|
105
|
-
export declare const AGCheckbox: DefineComponent< {
|
|
106
|
-
name: {
|
|
107
|
-
type: PropType<string | null>;
|
|
108
|
-
validator?(value: unknown): boolean;
|
|
109
|
-
} & {
|
|
110
|
-
default: string | (() => string | null) | null;
|
|
111
|
-
};
|
|
112
|
-
}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
113
|
-
[key: string]: any;
|
|
114
|
-
}>, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {
|
|
115
|
-
name: {
|
|
116
|
-
type: PropType<string | null>;
|
|
117
|
-
validator?(value: unknown): boolean;
|
|
118
|
-
} & {
|
|
119
|
-
default: string | (() => string | null) | null;
|
|
120
|
-
};
|
|
121
|
-
}>>, {
|
|
122
|
-
name: string | null;
|
|
123
|
-
}, {}>;
|
|
124
|
-
|
|
125
91
|
export declare const AGConfirmModal: DefineComponent< {
|
|
126
92
|
title: {
|
|
127
93
|
type: PropType<string | null>;
|
|
@@ -250,10 +216,10 @@ submit: boolean;
|
|
|
250
216
|
|
|
251
217
|
export declare const AGHeadlessInput: DefineComponent< {
|
|
252
218
|
as: {
|
|
253
|
-
type: PropType<string>;
|
|
219
|
+
type: PropType<string | null>;
|
|
254
220
|
validator?(value: unknown): boolean;
|
|
255
221
|
} & {
|
|
256
|
-
default: string | (() => string) | null;
|
|
222
|
+
default: string | (() => string | null) | null;
|
|
257
223
|
};
|
|
258
224
|
name: {
|
|
259
225
|
type: PropType<string | null>;
|
|
@@ -262,19 +228,19 @@ validator?(value: unknown): boolean;
|
|
|
262
228
|
default: string | (() => string | null) | null;
|
|
263
229
|
};
|
|
264
230
|
modelValue: {
|
|
265
|
-
type: PropType<string |
|
|
231
|
+
type: PropType<string | null>;
|
|
266
232
|
validator?(value: unknown): boolean;
|
|
267
233
|
} & {
|
|
268
|
-
default: string |
|
|
234
|
+
default: string | (() => string | null) | null;
|
|
269
235
|
};
|
|
270
236
|
}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
271
237
|
[key: string]: any;
|
|
272
238
|
}>, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {
|
|
273
239
|
as: {
|
|
274
|
-
type: PropType<string>;
|
|
240
|
+
type: PropType<string | null>;
|
|
275
241
|
validator?(value: unknown): boolean;
|
|
276
242
|
} & {
|
|
277
|
-
default: string | (() => string) | null;
|
|
243
|
+
default: string | (() => string | null) | null;
|
|
278
244
|
};
|
|
279
245
|
name: {
|
|
280
246
|
type: PropType<string | null>;
|
|
@@ -283,42 +249,26 @@ validator?(value: unknown): boolean;
|
|
|
283
249
|
default: string | (() => string | null) | null;
|
|
284
250
|
};
|
|
285
251
|
modelValue: {
|
|
286
|
-
type: PropType<string |
|
|
252
|
+
type: PropType<string | null>;
|
|
287
253
|
validator?(value: unknown): boolean;
|
|
288
254
|
} & {
|
|
289
|
-
default: string |
|
|
255
|
+
default: string | (() => string | null) | null;
|
|
290
256
|
};
|
|
291
257
|
}>> & {
|
|
292
258
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
293
259
|
}, {
|
|
294
|
-
as: string;
|
|
260
|
+
as: string | null;
|
|
295
261
|
name: string | null;
|
|
296
|
-
modelValue: string |
|
|
262
|
+
modelValue: string | null;
|
|
297
263
|
}, {}>;
|
|
298
264
|
|
|
299
265
|
export declare const AGHeadlessInputError: DefineComponent< {}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
300
266
|
[key: string]: any;
|
|
301
267
|
}>, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {}>>, {}, {}>;
|
|
302
268
|
|
|
303
|
-
export declare const AGHeadlessInputInput: DefineComponent< {
|
|
304
|
-
type: {
|
|
305
|
-
type: PropType<string>;
|
|
306
|
-
validator?(value: unknown): boolean;
|
|
307
|
-
} & {
|
|
308
|
-
default: string | (() => string) | null;
|
|
309
|
-
};
|
|
310
|
-
}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
269
|
+
export declare const AGHeadlessInputInput: DefineComponent< {}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
311
270
|
[key: string]: any;
|
|
312
|
-
}>,
|
|
313
|
-
type: {
|
|
314
|
-
type: PropType<string>;
|
|
315
|
-
validator?(value: unknown): boolean;
|
|
316
|
-
} & {
|
|
317
|
-
default: string | (() => string) | null;
|
|
318
|
-
};
|
|
319
|
-
}>>, {
|
|
320
|
-
type: string;
|
|
321
|
-
}, {}>;
|
|
271
|
+
}>, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {}>>, {}, {}>;
|
|
322
272
|
|
|
323
273
|
export declare const AGHeadlessInputLabel: DefineComponent< {}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
324
274
|
[key: string]: any;
|
|
@@ -388,26 +338,6 @@ default: string | (() => string | null) | null;
|
|
|
388
338
|
name: string | null;
|
|
389
339
|
}, {}>;
|
|
390
340
|
|
|
391
|
-
export declare const AGLoadingModal: DefineComponent< {
|
|
392
|
-
message: {
|
|
393
|
-
type: PropType<string | null>;
|
|
394
|
-
validator?(value: unknown): boolean;
|
|
395
|
-
} & {
|
|
396
|
-
default: string | (() => string | null) | null;
|
|
397
|
-
};
|
|
398
|
-
}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
399
|
-
[key: string]: any;
|
|
400
|
-
}>, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {
|
|
401
|
-
message: {
|
|
402
|
-
type: PropType<string | null>;
|
|
403
|
-
validator?(value: unknown): boolean;
|
|
404
|
-
} & {
|
|
405
|
-
default: string | (() => string | null) | null;
|
|
406
|
-
};
|
|
407
|
-
}>>, {
|
|
408
|
-
message: string | null;
|
|
409
|
-
}, {}>;
|
|
410
|
-
|
|
411
341
|
export declare const AGMarkdown: DefineComponent< {
|
|
412
342
|
as: {
|
|
413
343
|
type: PropType<string>;
|
|
@@ -480,25 +410,9 @@ inline: boolean;
|
|
|
480
410
|
raw: boolean;
|
|
481
411
|
}, {}>;
|
|
482
412
|
|
|
483
|
-
export declare const AGModal: DefineComponent< {
|
|
484
|
-
cancellable: {
|
|
485
|
-
type: PropType<boolean>;
|
|
486
|
-
validator?(value: unknown): boolean;
|
|
487
|
-
} & {
|
|
488
|
-
default: boolean | (() => boolean) | null;
|
|
489
|
-
};
|
|
490
|
-
}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
413
|
+
export declare const AGModal: DefineComponent< {}, (_ctx: any, _cache: any) => VNode<RendererNode, RendererElement, {
|
|
491
414
|
[key: string]: any;
|
|
492
|
-
}>,
|
|
493
|
-
cancellable: {
|
|
494
|
-
type: PropType<boolean>;
|
|
495
|
-
validator?(value: unknown): boolean;
|
|
496
|
-
} & {
|
|
497
|
-
default: boolean | (() => boolean) | null;
|
|
498
|
-
};
|
|
499
|
-
}>>, {
|
|
500
|
-
cancellable: boolean;
|
|
501
|
-
}, {}>;
|
|
415
|
+
}>, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes< {}>>, {}, {}>;
|
|
502
416
|
|
|
503
417
|
export declare const AGModalContext: DefineComponent< {
|
|
504
418
|
modal: {
|
|
@@ -532,8 +446,7 @@ required: true;
|
|
|
532
446
|
|
|
533
447
|
export declare const App: Facade<AppService, Constructor<AppService>>;
|
|
534
448
|
|
|
535
|
-
export declare class AppService extends
|
|
536
|
-
protected boot(): Promise<void>;
|
|
449
|
+
export declare class AppService extends _default {
|
|
537
450
|
}
|
|
538
451
|
|
|
539
452
|
export declare function arrayProp<T>(defaultValue?: () => T[]): OptionalProp<T[]>;
|
|
@@ -543,8 +456,6 @@ declare type BaseProp<T> = {
|
|
|
543
456
|
validator?(value: unknown): boolean;
|
|
544
457
|
};
|
|
545
458
|
|
|
546
|
-
export declare function booleanInput(defaultValue?: boolean): FormFieldDefinition<typeof FormFieldTypes.Boolean>;
|
|
547
|
-
|
|
548
459
|
export declare function booleanProp(defaultValue?: boolean): OptionalProp<boolean>;
|
|
549
460
|
|
|
550
461
|
export declare function bootServices(app: App_2, services: Record<string, Service>): Promise<void>;
|
|
@@ -555,30 +466,17 @@ export declare function componentRef<T>(): Ref<UnwrapNestedRefs<T> | undefined>;
|
|
|
555
466
|
|
|
556
467
|
export declare type ComputedStateDefinition<TState extends ServiceState, TComputedState extends ServiceState> = {
|
|
557
468
|
[K in keyof TComputedState]: (state: TState) => TComputedState[K];
|
|
558
|
-
}
|
|
559
|
-
readonly [K in keyof TComputedState]: TComputedState[K];
|
|
560
|
-
}>;
|
|
469
|
+
};
|
|
561
470
|
|
|
562
471
|
declare const _default: Constructor< {
|
|
563
|
-
logs: ErrorReportLog[];
|
|
564
|
-
startupErrors: ErrorReport[];
|
|
565
|
-
}> & Constructor< {
|
|
566
|
-
hasErrors: boolean;
|
|
567
|
-
hasNewErrors: boolean;
|
|
568
|
-
hasStartupErrors: boolean;
|
|
569
|
-
}> & Constructor<Service<DefaultServiceState, {}, Partial<DefaultServiceState>>> & Service;
|
|
570
|
-
|
|
571
|
-
declare const _default_2: Constructor< {
|
|
572
472
|
environment: "production" | "development" | "testing";
|
|
573
|
-
isMounted: boolean;
|
|
574
473
|
}> & Constructor< {
|
|
575
474
|
isDevelopment: boolean;
|
|
576
|
-
|
|
577
|
-
}> & Constructor<Service<DefaultServiceState, {}, Partial<DefaultServiceState>>> & Service;
|
|
475
|
+
}> & Constructor<Service<DefaultServiceState, {}>> & Service;
|
|
578
476
|
|
|
579
|
-
declare const
|
|
477
|
+
declare const _default_2: Constructor< {
|
|
580
478
|
modals: Modal<unknown>[];
|
|
581
|
-
}> & Constructor< {}> & Constructor<Service<DefaultServiceState, {}
|
|
479
|
+
}> & Constructor< {}> & Constructor<Service<DefaultServiceState, {}>> & Service;
|
|
582
480
|
|
|
583
481
|
export declare type DefaultServices = typeof defaultServices;
|
|
584
482
|
|
|
@@ -587,56 +485,19 @@ declare const defaultServices: {
|
|
|
587
485
|
$events: Facade<EventsService, Constructor<EventsService>>;
|
|
588
486
|
};
|
|
589
487
|
|
|
590
|
-
export declare type DefaultServiceState =
|
|
488
|
+
export declare type DefaultServiceState = {};
|
|
591
489
|
|
|
592
490
|
export declare function defineDirective(directive: Directive): Directive;
|
|
593
491
|
|
|
594
492
|
export declare function definePlugin<T extends Plugin_2>(plugin: T): T;
|
|
595
493
|
|
|
596
494
|
export declare function defineServiceState<State extends ServiceState = ServiceState, ComputedState extends ServiceState = {}>(options: {
|
|
597
|
-
name: string;
|
|
598
495
|
initialState: State;
|
|
599
|
-
persist?: (keyof State)[];
|
|
600
496
|
computed?: ComputedStateDefinition<State, ComputedState>;
|
|
601
|
-
|
|
602
|
-
}): Constructor<State> & Constructor<ComputedState> & Constructor<Service<State, ComputedState, Partial<State>>>;
|
|
497
|
+
}): Constructor<State> & Constructor<ComputedState> & ServiceConstructor;
|
|
603
498
|
|
|
604
499
|
export declare function enumProp<Enum extends Record<string, unknown>>(enumeration: Enum, defaultValue?: Enum[keyof Enum]): OptionalProp<Enum[keyof Enum]>;
|
|
605
500
|
|
|
606
|
-
export declare interface ErrorReport {
|
|
607
|
-
title: string;
|
|
608
|
-
description?: string;
|
|
609
|
-
details?: string;
|
|
610
|
-
error?: Error | JSError | unknown;
|
|
611
|
-
}
|
|
612
|
-
|
|
613
|
-
export declare interface ErrorReportLog {
|
|
614
|
-
report: ErrorReport;
|
|
615
|
-
seen: boolean;
|
|
616
|
-
date: Date;
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
export declare const Errors: Facade<ErrorsService, Constructor<ErrorsService>>;
|
|
620
|
-
|
|
621
|
-
export declare type ErrorSource = string | Error | JSError | unknown;
|
|
622
|
-
|
|
623
|
-
declare class ErrorsService extends _default {
|
|
624
|
-
forceReporting: boolean;
|
|
625
|
-
private enabled;
|
|
626
|
-
enable(): void;
|
|
627
|
-
disable(): void;
|
|
628
|
-
inspect(error: ErrorSource | ErrorReport[]): Promise<void>;
|
|
629
|
-
report(error: ErrorSource, message?: string): Promise<void>;
|
|
630
|
-
see(report: ErrorReport): void;
|
|
631
|
-
seeAll(): void;
|
|
632
|
-
private logError;
|
|
633
|
-
private createErrorReport;
|
|
634
|
-
private createStartupErrorReport;
|
|
635
|
-
private createErrorReportFromError;
|
|
636
|
-
}
|
|
637
|
-
|
|
638
|
-
export declare type ErrorsServices = typeof services;
|
|
639
|
-
|
|
640
501
|
declare type EventListener_2<T = unknown> = (payload: T) => unknown;
|
|
641
502
|
export { EventListener_2 as EventListener }
|
|
642
503
|
|
|
@@ -713,16 +574,15 @@ export declare type FormFieldType = ObjectValues<typeof FormFieldTypes>;
|
|
|
713
574
|
export declare const FormFieldTypes: {
|
|
714
575
|
readonly String: "string";
|
|
715
576
|
readonly Number: "number";
|
|
716
|
-
readonly Boolean: "boolean";
|
|
717
577
|
};
|
|
718
578
|
|
|
719
|
-
export declare type GetFormFieldValue<TType> = TType extends typeof FormFieldTypes.String ? string : TType extends typeof FormFieldTypes.Number ? number :
|
|
579
|
+
export declare type GetFormFieldValue<TType> = TType extends typeof FormFieldTypes.String ? string : TType extends typeof FormFieldTypes.Number ? number : never;
|
|
720
580
|
|
|
721
581
|
export declare interface IAGHeadlessInput {
|
|
722
582
|
id: string;
|
|
723
|
-
value: ComputedRef<string | number |
|
|
583
|
+
value: ComputedRef<string | number | null>;
|
|
724
584
|
errors: DeepReadonly<Ref<string[] | null>>;
|
|
725
|
-
update(value: string | number |
|
|
585
|
+
update(value: string | number | null): void;
|
|
726
586
|
}
|
|
727
587
|
|
|
728
588
|
export declare interface IAGHeadlessModal extends IAGModal {
|
|
@@ -754,7 +614,7 @@ declare class LangService extends Service {
|
|
|
754
614
|
translateWithDefault(key: string, parameters: Record<string, unknown>, defaultMessage: string): string;
|
|
755
615
|
}
|
|
756
616
|
|
|
757
|
-
export declare type LangServices = typeof
|
|
617
|
+
export declare type LangServices = typeof services;
|
|
758
618
|
|
|
759
619
|
export declare function mixedProp<T>(type: PropType<T>): OptionalProp<T | null>;
|
|
760
620
|
|
|
@@ -796,8 +656,6 @@ export { Plugin_2 as Plugin }
|
|
|
796
656
|
|
|
797
657
|
export declare function requiredArrayProp<T>(): RequiredProp<T[]>;
|
|
798
658
|
|
|
799
|
-
export declare function requiredBooleanInput(defaultValue?: boolean): FormFieldDefinition<typeof FormFieldTypes.Boolean, 'required'>;
|
|
800
|
-
|
|
801
659
|
export declare function requiredEnumProp<Enum extends Record<string, unknown>>(enumeration: Enum): RequiredProp<Enum[keyof Enum]>;
|
|
802
660
|
|
|
803
661
|
export declare function requiredMixedProp<T>(type: PropType<T>): RequiredProp<T>;
|
|
@@ -816,30 +674,25 @@ export declare function requiredStringInput(defaultValue?: string): FormFieldDef
|
|
|
816
674
|
|
|
817
675
|
export declare function requiredStringProp(): RequiredProp<string>;
|
|
818
676
|
|
|
819
|
-
export declare class Service<State extends ServiceState = DefaultServiceState, ComputedState extends ServiceState = {}
|
|
820
|
-
|
|
821
|
-
protected _name: string;
|
|
677
|
+
export declare class Service<State extends ServiceState = DefaultServiceState, ComputedState extends ServiceState = {}> extends MagicObject {
|
|
678
|
+
protected _namespace: string;
|
|
822
679
|
private _booted;
|
|
823
|
-
private
|
|
824
|
-
private
|
|
680
|
+
private _state;
|
|
681
|
+
private _computedState;
|
|
825
682
|
constructor();
|
|
826
683
|
get booted(): PromisedValue<void>;
|
|
827
|
-
launch(): Promise<void>;
|
|
828
|
-
hasState<P extends keyof State>(property: P): boolean;
|
|
829
|
-
getState(): State;
|
|
830
|
-
getState<P extends keyof State>(property: P): State[P];
|
|
831
|
-
setState<P extends keyof State>(property: P, value: State[P]): void;
|
|
832
|
-
setState(state: Partial<State>): void;
|
|
684
|
+
launch(namespace?: string): Promise<void>;
|
|
833
685
|
protected __get(property: string): unknown;
|
|
834
686
|
protected __set(property: string, value: unknown): void;
|
|
835
|
-
protected
|
|
836
|
-
protected
|
|
837
|
-
protected
|
|
687
|
+
protected hasState<P extends keyof State>(property: P): boolean;
|
|
688
|
+
protected hasComputedState<P extends keyof State>(property: P): boolean;
|
|
689
|
+
protected getState(): State;
|
|
690
|
+
protected getState<P extends keyof State>(property: P): State[P];
|
|
691
|
+
protected getComputedState<P extends keyof ComputedState>(property: P): ComputedState[P];
|
|
692
|
+
protected setState(state: Partial<State>): void;
|
|
838
693
|
protected getInitialState(): State;
|
|
839
694
|
protected getComputedStateDefinition(): ComputedStateDefinition<State, ComputedState>;
|
|
840
|
-
protected serializePersistedState(state: Partial<State>): Partial<State>;
|
|
841
695
|
protected boot(): Promise<void>;
|
|
842
|
-
protected restorePersistedState(): void;
|
|
843
696
|
}
|
|
844
697
|
|
|
845
698
|
export declare type ServiceConstructor<T extends Service = Service> = Constructor<T> & typeof Service;
|
|
@@ -848,14 +701,10 @@ export declare interface Services extends DefaultServices {
|
|
|
848
701
|
}
|
|
849
702
|
|
|
850
703
|
declare const services: {
|
|
851
|
-
$errors: Facade<ErrorsService, Constructor<ErrorsService>>;
|
|
852
|
-
};
|
|
853
|
-
|
|
854
|
-
declare const services_2: {
|
|
855
704
|
$lang: Facade<LangService, Constructor<LangService>>;
|
|
856
705
|
};
|
|
857
706
|
|
|
858
|
-
declare const
|
|
707
|
+
declare const services_2: {
|
|
859
708
|
$ui: Facade<UIService, Constructor<UIService>>;
|
|
860
709
|
};
|
|
861
710
|
|
|
@@ -881,18 +730,15 @@ export declare type UIComponent = ObjectValues<typeof UIComponents>;
|
|
|
881
730
|
export declare const UIComponents: {
|
|
882
731
|
readonly AlertModal: "alert-modal";
|
|
883
732
|
readonly ConfirmModal: "confirm-modal";
|
|
884
|
-
readonly LoadingModal: "loading-modal";
|
|
885
733
|
};
|
|
886
734
|
|
|
887
|
-
declare class UIService extends
|
|
735
|
+
declare class UIService extends _default_2 {
|
|
888
736
|
private modalCallbacks;
|
|
889
737
|
private components;
|
|
890
738
|
alert(message: string): void;
|
|
891
739
|
alert(title: string, message: string): void;
|
|
892
740
|
confirm(message: string): Promise<boolean>;
|
|
893
741
|
confirm(title: string, message: string): Promise<boolean>;
|
|
894
|
-
loading<T>(operation: Promise<T>): Promise<T>;
|
|
895
|
-
loading<T>(message: string, operation: Promise<T>): Promise<T>;
|
|
896
742
|
registerComponent(name: UIComponent, component: Component): void;
|
|
897
743
|
openModal<TModalComponent extends ModalComponent>(component: TModalComponent, properties?: ModalProperties<TModalComponent>): Promise<Modal<ModalResult<TModalComponent>>>;
|
|
898
744
|
closeModal(id: string, result?: unknown): Promise<void>;
|
|
@@ -901,7 +747,7 @@ declare class UIService extends _default_3 {
|
|
|
901
747
|
private watchModalEvents;
|
|
902
748
|
}
|
|
903
749
|
|
|
904
|
-
export declare type UIServices = typeof
|
|
750
|
+
export declare type UIServices = typeof services_2;
|
|
905
751
|
|
|
906
752
|
export declare type UnknownEvent<T> = T extends keyof EventsPayload ? never : T;
|
|
907
753
|
|
|
@@ -913,12 +759,8 @@ export declare function useEvent<Event extends string>(event: UnknownEvent<Event
|
|
|
913
759
|
|
|
914
760
|
export declare function useForm<const T extends FormFieldDefinitions>(fields: T): Form<T> & FormData_2<T>;
|
|
915
761
|
|
|
916
|
-
export declare function useInputAttrs(): [ComputedRef<{}>, ComputedRef<unknown>];
|
|
917
|
-
|
|
918
762
|
export { }
|
|
919
763
|
|
|
920
|
-
interface Services extends ErrorsServices {}
|
|
921
|
-
|
|
922
764
|
declare global {
|
|
923
765
|
export const __AG_BASE_PATH: string | undefined;
|
|
924
766
|
export const __AG_ENV: 'production' | 'development' | 'testing';
|
|
@@ -932,10 +774,6 @@ declare module '@vue/runtime-core' {
|
|
|
932
774
|
}
|
|
933
775
|
}
|
|
934
776
|
|
|
935
|
-
interface AerogelOptions {
|
|
936
|
-
services?: Record<string, Service>;
|
|
937
|
-
}
|
|
938
|
-
|
|
939
777
|
declare module '@vue/runtime-core' {
|
|
940
778
|
interface ComponentCustomProperties extends Services {}
|
|
941
779
|
}
|