@golemui/gui-shared 1.0.3 → 1.1.1-rc.0
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/CHANGELOG.md +25 -0
- package/index.d.ts +1 -0
- package/index.js +268 -198
- package/index.umd.cjs +1 -1
- package/internals.d.ts +4 -4
- package/internals.js +339 -298
- package/internals.umd.cjs +1 -1
- package/lib/dx/core/defineShortcutType.d.ts +2 -1
- package/lib/dx/core/dx.domain.d.ts +6 -1
- package/lib/dx/core/itemTypeRegistry.d.ts +13 -1
- package/lib/dx/formDef.domain.d.ts +2 -1
- package/lib/dx/gui.d.ts +20 -0
- package/lib/dx/index.d.ts +30 -0
- package/lib/dx/resolveFormInput.d.ts +9 -1
- package/lib/dx/shortcuts/date-time-calendar/dateTimeCalendar.domain.d.ts +22 -0
- package/lib/dx/shortcuts/date-time-calendar/dateTimeCalendarSensibleDefaults.service.d.ts +6 -0
- package/lib/dx/shortcuts/date-time-calendar/guiDateTimeCalendar.impl.d.ts +6 -0
- package/lib/dx/shortcuts/date-time-calendar/register.d.ts +2 -0
- package/lib/dx/shortcuts/date-time-input/dateTimeInput.domain.d.ts +17 -0
- package/lib/dx/shortcuts/date-time-input/guiDateTimeInput.impl.d.ts +6 -0
- package/lib/dx/shortcuts/date-time-input/register.d.ts +2 -0
- package/lib/dx/shortcuts/date-time-picker/dateTimePicker.domain.d.ts +18 -0
- package/lib/dx/shortcuts/date-time-picker/guiDateTimePicker.impl.d.ts +7 -0
- package/lib/dx/shortcuts/date-time-picker/register.d.ts +2 -0
- package/lib/dx/shortcuts/range-date-time-calendar/guiRangeDateTimeCalendar.impl.d.ts +6 -0
- package/lib/dx/shortcuts/range-date-time-calendar/rangeDateTimeCalendar.domain.d.ts +17 -0
- package/lib/dx/shortcuts/range-date-time-calendar/register.d.ts +2 -0
- package/lib/dx/shortcuts/range-date-time-input/guiRangeDateTimeInput.impl.d.ts +6 -0
- package/lib/dx/shortcuts/range-date-time-input/rangeDateTimeInput.domain.d.ts +17 -0
- package/lib/dx/shortcuts/range-date-time-input/register.d.ts +2 -0
- package/lib/dx/shortcuts/range-date-time-picker/guiRangeDateTimePicker.impl.d.ts +6 -0
- package/lib/dx/shortcuts/range-date-time-picker/rangeDateTimePicker.domain.d.ts +17 -0
- package/lib/dx/shortcuts/range-date-time-picker/register.d.ts +2 -0
- package/lib/dx/shortcuts/range-time-input/guiRangeTimeInput.impl.d.ts +6 -0
- package/lib/dx/shortcuts/range-time-input/rangeTimeInput.domain.d.ts +17 -0
- package/lib/dx/shortcuts/range-time-input/register.d.ts +2 -0
- package/lib/dx/shortcuts/range-time-picker/guiRangeTimePicker.impl.d.ts +6 -0
- package/lib/dx/shortcuts/range-time-picker/rangeTimePicker.domain.d.ts +17 -0
- package/lib/dx/shortcuts/range-time-picker/register.d.ts +2 -0
- package/lib/dx/shortcuts/scopes/scopeChain.d.ts +30 -0
- package/lib/dx/shortcuts/time-input/guiTimeInput.impl.d.ts +6 -0
- package/lib/dx/shortcuts/time-input/register.d.ts +2 -0
- package/lib/dx/shortcuts/time-input/timeInput.domain.d.ts +17 -0
- package/lib/dx/shortcuts/time-picker/guiTimePicker.impl.d.ts +7 -0
- package/lib/dx/shortcuts/time-picker/register.d.ts +2 -0
- package/lib/dx/shortcuts/time-picker/timePicker.domain.d.ts +18 -0
- package/lib/golem-form.d.ts +32 -2
- package/lib/widget.props.d.ts +246 -26
- package/lib/widgets.d.ts +2 -2
- package/package.json +3 -3
- package/register-B3CJMfX9.cjs +1 -0
- package/{register-BaJnbpMX.js → register-De8Y1vW5.js} +805 -424
- package/register-BHpCnzXI.cjs +0 -1
package/internals.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./register-BHpCnzXI.cjs");require("@golemui/core");require("@golemui/gui-validators");function v(l,...e){return e.map(t=>({...t,targetState:l}))}function M(l,...e){return{kind:"aggregated",matcher:t=>t.tags?.includes(l)??!1,children:e}}const B={INPUTS:new Set(["INPUTS","TEXTAREA","PASSWORD","SELECT","DROPDOWN","RADIOGROUP","CHECKBOX","CALENDAR","DATE_INPUT","DATE_PICKER","RANGE_CALENDAR","RANGE_DATE_INPUT","RANGE_DATE_PICKER","CURRENCY","MARKDOWN","LIST","CUSTOM_INPUT","REPEATER","TAGS"]),ACTIONS:new Set(["ACTIONS","CUSTOM_ACTION"]),DISPLAYS:new Set(["DISPLAYS","ALERTS","MARKDOWN_TEXTS","CUSTOM_DISPLAY"]),LAYOUTS:new Set(["LAYOUTS","TABS","ACCORDION","CUSTOM_LAYOUT"])};function P(l,e){const t=B[l];return t?t.has(e):l===e}class L{resolve(e,t){const r=[];for(const i of t)i.kind==="aggregated"?this.collectFromAggregated(i,e,r):this.collectFromLeaf(i,e,r);const n=this.rollUpSensibleDefaults(r);return{leafSelectors:r,sensibleDefaults:n}}collectFromAggregated(e,t,r){if(e.matcher(t))for(const n of e.children)this.collectFromLeaf(n,t,r)}collectFromLeaf(e,t,r){P(e.selectorType,t.itemType??"")&&e.matcher(t)&&r.push(e)}rollUpSensibleDefaults(e){const t=new Map,r=(i,o)=>{const a=t.get(i)??[];a.push(o),t.set(i,a)};for(const i of e){const o=B[i.selectorType];if(o)for(const a of o)r(a,i);else r(i.selectorType,i)}const n={};for(const[i,o]of t)s.hasItemTypeHandler(i)&&(n[i]=s.getItemTypeHandler(i).rollUpSensibleDefaults(o));return n}}const F=new L;class j{deepMerge(e,t){if(t==null)return e;if(e==null||typeof e!="object"||typeof t!="object"||Array.isArray(e)||Array.isArray(t))return t;const r={...e};for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&(typeof t[n]=="object"&&!Array.isArray(t[n])&&t[n]!==null&&typeof e[n]=="object"&&!Array.isArray(e[n])&&e[n]!==null?r[n]=this.deepMerge(e[n],t[n]):r[n]=t[n]);return r}}const N=new j;class W{constructor(e){this.objectUtils=e}merge(e,t,r){let n={},i=null;typeof e=="function"&&(i=e);const o=this.collectDecorators(r);for(const c of o){if(i!=null){i=this.composeRuntimeFunctions(i,c);continue}if(typeof c=="function"){const g=c({...n,...typeof e=="function"?{}:e});if(typeof g=="function"){i=this.createPromotedFunction(n,e,g,t,r);continue}n=this.objectUtils.deepMerge(n,g)}else n=this.objectUtils.deepMerge(n,c)}if(i!=null)return{kind:"dynamic",fn:this.wrapWithSensibleDefaults(i,n,t,r)};const a=this.objectUtils.deepMerge(e,n);return{kind:"static",def:this.applySensibleDefaults({...a},t,r)}}collectDecorators(e){const t=[];for(const r of e.leafSelectors){const n=r.config;n.override!=null&&t.push(n.override)}return t}applySensibleDefaults(e,t,r){if(!s.hasItemTypeHandler(t))return e;const n=r.sensibleDefaults[t]??{};return s.getItemTypeHandler(t).applySensibleDefaults(e,n)}createPromotedFunction(e,t,r,n,i){return o=>{const a=r(o);let u=this.objectUtils.deepMerge(e,a);return u=this.objectUtils.deepMerge(u,t),this.applySensibleDefaults(u,n,i)}}wrapWithSensibleDefaults(e,t,r,n){return i=>{let o=e(i);return Object.keys(t).length>0&&(o=this.objectUtils.deepMerge(t,o)),this.applySensibleDefaults(o,r,n)}}composeRuntimeFunctions(e,t){return typeof t=="function"?r=>{const n=e(r),i=t(n);return typeof i=="function"?i(r):this.objectUtils.deepMerge(i,n)}:r=>{const n=e(r);return this.objectUtils.deepMerge(n,t)}}}const z=new W(N);class G{mapToWidget(e,t){if(e.kind==="dynamic"){const r=e.fn;return(n=>{const i=r(n);return this.mapStaticDef(i,t)})}return this.mapStaticDef(e.def,t)}mapStaticDef(e,t){const r=s.getItemTypeHandler(t).mapToWidget(e);return this.applyBaseWidgetFields(r,e)}applyBaseWidgetFields(e,t){return t.size!=null&&(e.size=t.size),t.defaultValue!=null&&e.kind==="input"&&(e.defaultValue=t.defaultValue),t.on!=null&&(e.on=t.on),t.include!=null&&(e.include=t.include),t.exclude!=null&&(e.exclude=t.exclude),e}}const $=new G;class H{normalizeSelectors(e){const t=Array.isArray(e)?e:[e],r=[],n=[];for(const i of t)i.kind==="leaf"?n.push(i):r.push(i);return n.length>0&&r.unshift({kind:"aggregated",matcher:()=>!0,children:n}),r}extractFormConfig(){return{suppressAutomaticStack:!1}}}const K=new H,V={input:new Set(["disabled","readonly","label","validator","size"]),action:new Set(["disabled","label","size"]),layout:new Set(["size"]),display:new Set([])},T={onChange:"change",onLoad:"load",onFilter:"filter",onClick:"click"};class Y{extractFromMergeResult(e,t){const r={};for(const a of t){const u=a.targetState,c=a.config,g=c.override&&typeof c.override!="function"?c.override:c;r[u]={...r[u]||{},...g}}if(e.kind==="dynamic"){const a=e.fn;return{cleanedResult:{kind:"dynamic",fn:c=>{const g=a(c),{states:d,..._}=g;return _}},stateData:{stateOverrides:r}}}const{states:n,...i}=e.def,o={};for(const[a,u]of Object.entries(r))o[a]={...u};if(n)for(const[a,u]of Object.entries(n))o[a]={...o[a]||{},...u};return{cleanedResult:{kind:"static",def:i},stateData:{stateOverrides:o}}}applyToWidget(e,t,r,n){const{stateOverrides:i}=t;if(Object.keys(i).length===0)return e;const o={...e},a=e.kind,u=V[a]||new Set;e.props&&(o.props={...e.props}),e.on&&(o.on={...e.on});for(const[c,g]of Object.entries(i))for(const[d,_]of Object.entries(g))d==="visible"?this.applyVisibility(o,c,_):T[d]?this.applyStateEvent(o,c,d,_,r,n):u.has(d)?o[`${d}.${c}`]=_:(o.props||(o.props={}),o.props[`${d}.${c}`]=_);return o}hasStateData(e){return Object.keys(e.stateOverrides).length>0}applyVisibility(e,t,r){if(r){const n=e.include?.in||[];e.include={...e.include||{},in:[...n,t]}}else{const n=e.exclude?.from||[];e.exclude={...e.exclude||{},from:[...n,t]}}}applyStateEvent(e,t,r,n,i,o){const a=T[r];if(e.on||(e.on={}),typeof n=="function"){const u=s.probeForHostEventName(n);if(u!=null)e.on[`${a}.${t}`]=u;else{const c=o.next();i.set(c,n),e.on[`${a}.${t}`]=c}}else typeof n=="string"&&(e.on[`${a}.${t}`]=n)}}const X=new Y;function q(){let l=0;return{next:()=>`event_${l++}`}}class J{constructor(e,t,r,n,i){this.resolver=e,this.merger=t,this.mapper=r,this.eventWiring=n,this.stateExpansion=i}walkAndMap(e,t,r){const n=new Map,i=q(),o={value:0},a=new Set;return{widgets:this.walkItems(e,t,n,r,i,o,a),eventRegistry:n}}walkItems(e,t,r,n,i,o,a){return e.flatMap(u=>{if(u.type!=="ITEMS")throw new Error("Unexpected gui shortcut type");return u.items.map(c=>this.processItem(c,u.itemType,u.tags,t,r,n,i,o,a))})}processItem(e,t,r,n,i,o,a,u,c){const g=t,d=s.getItemTypeHandler(t),_=d.parseEntry(e),m=this.buildBaseDef(_),w=this.buildDecoratorForMatching(m,g,r),h=this.resolver.resolve(w,n),x=h.leafSelectors.filter(p=>p.targetState!=null),k={leafSelectors:h.leafSelectors.filter(p=>p.targetState==null),sensibleDefaults:h.sensibleDefaults};let y=this.merger.merge(m,g,k);d.afterMerge&&(y=d.afterMerge(y,{eventRegistry:i,formConfig:o,eventIdGenerator:a})),y=this.eventWiring.wireInputLayoutEvents(y,i,a);const{cleanedResult:U,stateData:S}=this.stateExpansion.extractFromMergeResult(y,x);let f;if(d.buildCustomWidget){const p=this.buildCustomWidgetContext(_.children,n,i,o,a,u,c);f=this.buildCustomWidget(d,U,p)}else f=this.mapper.mapToWidget(U,g);if(typeof f!="function"){const p=f;p.uid||(p.path&&!c.has(p.path)?(p.uid=p.path,c.add(p.path)):p.uid=`dx_${u.value++}`)}if(this.stateExpansion.hasStateData(S))if(typeof f=="function"){const p=f;f=(O=>{const E=p(O);return this.stateExpansion.applyToWidget(E,S,i,a)})}else f=this.stateExpansion.applyToWidget(f,S,i,a);return f}buildCustomWidgetContext(e,t,r,n,i,o,a){return{children:e,mapStaticDef:(u,c)=>this.mapper.mapStaticDef(u,c),walkChildren:u=>this.walkItems(u,t,r,n,i,o,a)}}buildCustomWidget(e,t,r){return e.buildCustomWidget(t,r)}buildBaseDef(e){const t=e.baseDef;return typeof t=="function"?r=>{const n=s.withForm(r),i=t(n);return e.path!=null?{...i,path:e.path}:i}:e.path!=null?{...t,path:e.path}:t}buildDecoratorForMatching(e,t,r){if(typeof e=="function")return{itemType:t,tags:[...r]};const n=[...r,..."tags"in e&&e.tags?e.tags:[]],i="uid"in e?e.uid:void 0,o="type"in e?e.type:void 0;return{itemType:t,tags:n,uid:i,type:o}}}class Q{constructor(e,t){this.selectorNormalizer=e,this.walker=t}processDxFacade(e,t=[],r){const{defs:n,gslSelectors:i,formConfig:o}=this.prepareForm(e,t,r),{widgets:a,eventRegistry:u}=this.walker.walkAndMap(n,i,o),c=a[0];return this.buildResult({form:c},u,o)}prepareForm(e,t,r){const i=(Array.isArray(e)?[...e]:[e]).map(u=>typeof u=="function"?s._guiDisplay(u):u),o=this.selectorNormalizer.normalizeSelectors(t),a={...this.selectorNormalizer.extractFormConfig(),...r};if(!a.suppressAutomaticStack){const u={def:{uid:"#root",direction:"column",widgetName:"flex"},children:i};return{defs:[{type:"ITEMS",itemType:s.GuiItemTypes.LAYOUTS,items:[u],tags:[]}],gslSelectors:o,formConfig:a}}return{defs:i,gslSelectors:o,formConfig:a}}convertStateNames(e){const t={};for(const[r,n]of Object.entries(e))t[r.replace(/\$/g,":")]=n;return t}buildResult(e,t,r){r.states&&Object.keys(r.states).length>0&&(e={...e,states:this.convertStateNames(r.states)});const n={form:e};return t.size>0&&(n.events=i=>{const o=t.get(i.name);if(o){const a=c=>{if(c&&typeof c=="object"&&"path"in c&&!("type"in c)){const{path:g,...d}=c;for(const[_,m]of Object.entries(d))i.callback({type:"OVERRIDE_WIDGET_PROP",payload:{path:g,prop:_,value:m}})}else i.callback(c)},u={...i,callback:a,update:a};o(u)}}),r.dependencies&&(n.dependencies=r.dependencies),r.widgetLoaders&&(n.widgetLoaders=r.widgetLoaders),r.validateOn&&(n.validateOn=r.validateOn),r.itemRenderers&&(n.itemRenderers=r.itemRenderers),n}}const Z=new J(F,z,$,s.eventWiringService,X),R=new Q(K,Z);function D(l){return typeof l=="function"?!0:Array.isArray(l)?l.length===0||l.every(I):I(l)}function I(l){if(typeof l=="function")return!0;if(l===null||typeof l!="object")return!1;const e=l;return e.type==="ITEMS"&&typeof e.itemType=="string"}function ee(l){if(!l||typeof l!="object"||Array.isArray(l))return;const e=l.form;if(D(e))throw new Error("[GolemUI] The gui.* form definition was wrapped in an extra `{ form: ... }` object, so its fields were never resolved. Pass the gui.* array DIRECTLY as formDef (`config={{ formDef: form }}`) and put any named `states` in `formConfig`: `config={{ formDef: form, formConfig: { states } }}`. Do NOT wrap them as a `{ form: [...] }` object.")}const A=Object.freeze({}),te=Object.freeze({}),C=new WeakMap;function b(l,e){return l==null?e:typeof l=="object"?l:{}}function se(l,e,t){if(!D(l))return ee(l),{formDef:l};const r=b(l,A),n=b(e,A),i=b(t,te);let o=C.get(r);o||(o=new WeakMap,C.set(r,o));let a=o.get(n);a||(a=new WeakMap,o.set(n,a));const u=a.get(i);if(u)return u;const c=R.processDxFacade(l,e,t),g={formDef:c.form,formEvent:c.events,dependencies:c.dependencies,widgetLoaders:c.widgetLoaders,validateOn:c.validateOn,itemRenderers:c.itemRenderers};return a.set(i,g),g}class ne{create(e){return{states:e.states,form:{uid:"gui-root-uid",type:"flex",kind:"layout",children:e.form}}}}function re(){return new ne}const ie=l=>l!==null&&typeof l=="object"&&Object.prototype.hasOwnProperty.call(l,"label")&&Object.prototype.hasOwnProperty.call(l,"value");function oe(l,e){if(l!=null&&typeof l=="object"&&"__rid"in l)return l.__rid;const t=e();return Object.defineProperty(l,"__rid",{value:t,enumerable:!1,configurable:!1}),t}exports._gslAccordionByUid=s._gslAccordionByUid;exports._gslAccordions=s._gslAccordions;exports._gslActionByUid=s._gslActionByUid;exports._gslActions=s._gslActions;exports._gslAlertByUid=s._gslAlertByUid;exports._gslAlerts=s._gslAlerts;exports._gslBooleanInputs=s._gslBooleanInputs;exports._gslCalendarByUid=s._gslCalendarByUid;exports._gslCalendars=s._gslCalendars;exports._gslCheckboxByUid=s._gslCheckboxByUid;exports._gslCheckboxes=s._gslCheckboxes;exports._gslCurrencies=s._gslCurrencies;exports._gslCurrencyByUid=s._gslCurrencyByUid;exports._gslCustomActionByUid=s._gslCustomActionByUid;exports._gslCustomActions=s._gslCustomActions;exports._gslCustomDisplayByUid=s._gslCustomDisplayByUid;exports._gslCustomDisplays=s._gslCustomDisplays;exports._gslCustomInputByUid=s._gslCustomInputByUid;exports._gslCustomInputs=s._gslCustomInputs;exports._gslCustomLayoutByUid=s._gslCustomLayoutByUid;exports._gslCustomLayouts=s._gslCustomLayouts;exports._gslDateInputByUid=s._gslDateInputByUid;exports._gslDateInputs=s._gslDateInputs;exports._gslDatePickerByUid=s._gslDatePickerByUid;exports._gslDatePickers=s._gslDatePickers;exports._gslDisplayByUid=s._gslDisplayByUid;exports._gslDisplays=s._gslDisplays;exports._gslDropdownByUid=s._gslDropdownByUid;exports._gslDropdowns=s._gslDropdowns;exports._gslInputByUid=s._gslInputByUid;exports._gslInputs=s._gslInputs;exports._gslLayoutByUid=s._gslLayoutByUid;exports._gslLayouts=s._gslLayouts;exports._gslListByUid=s._gslListByUid;exports._gslLists=s._gslLists;exports._gslMarkdownByUid=s._gslMarkdownByUid;exports._gslMarkdownTextByUid=s._gslMarkdownTextByUid;exports._gslMarkdownTexts=s._gslMarkdownTexts;exports._gslMarkdowns=s._gslMarkdowns;exports._gslNumberInputs=s._gslNumberInputs;exports._gslPasswordByUid=s._gslPasswordByUid;exports._gslPasswords=s._gslPasswords;exports._gslRadiogroupByUid=s._gslRadiogroupByUid;exports._gslRadiogroups=s._gslRadiogroups;exports._gslRangeCalendarByUid=s._gslRangeCalendarByUid;exports._gslRangeCalendars=s._gslRangeCalendars;exports._gslRangeDateInputByUid=s._gslRangeDateInputByUid;exports._gslRangeDateInputs=s._gslRangeDateInputs;exports._gslRangeDatePickerByUid=s._gslRangeDatePickerByUid;exports._gslRangeDatePickers=s._gslRangeDatePickers;exports._gslRepeaterByUid=s._gslRepeaterByUid;exports._gslRepeaters=s._gslRepeaters;exports._gslSelectByUid=s._gslSelectByUid;exports._gslSelects=s._gslSelects;exports._gslTabs=s._gslTabs;exports._gslTabsByUid=s._gslTabsByUid;exports._gslTags=s._gslTags;exports._gslTagsByUid=s._gslTagsByUid;exports._gslTextInputs=s._gslTextInputs;exports._gslTextareaByUid=s._gslTextareaByUid;exports._gslTextareas=s._gslTextareas;exports._guiAccordion=s._guiAccordion;exports._guiAlert=s._guiAlert;exports._guiBooleanInput=s._guiBooleanInput;exports._guiButton=s._guiButton;exports._guiCalendar=s._guiCalendar;exports._guiCheckbox=s._guiCheckbox;exports._guiCurrency=s._guiCurrency;exports._guiCustomAction=s._guiCustomAction;exports._guiCustomDisplay=s._guiCustomDisplay;exports._guiCustomInput=s._guiCustomInput;exports._guiCustomLayout=s._guiCustomLayout;exports._guiDateInput=s._guiDateInput;exports._guiDatePicker=s._guiDatePicker;exports._guiDisplay=s._guiDisplay;exports._guiDropdown=s._guiDropdown;exports._guiFlex=s._guiFlex;exports._guiGrid=s._guiGrid;exports._guiHorizontalFlex=s._guiHorizontalFlex;exports._guiHorizontalGrid=s._guiHorizontalGrid;exports._guiList=s._guiList;exports._guiMarkdown=s._guiMarkdown;exports._guiMarkdownText=s._guiMarkdownText;exports._guiNumberInput=s._guiNumberInput;exports._guiPassword=s._guiPassword;exports._guiRadiogroup=s._guiRadiogroup;exports._guiRangeCalendar=s._guiRangeCalendar;exports._guiRangeDateInput=s._guiRangeDateInput;exports._guiRangeDatePicker=s._guiRangeDatePicker;exports._guiRepeater=s._guiRepeater;exports._guiSelect=s._guiSelect;exports._guiTabs=s._guiTabs;exports._guiTags=s._guiTags;exports._guiTextInput=s._guiTextInput;exports._guiTextarea=s._guiTextarea;exports._guiVerticalFlex=s._guiVerticalFlex;exports._guiVerticalGrid=s._guiVerticalGrid;exports.createGslSelector=s.createGslSelector;exports.defineShortcutType=s.defineShortcutType;exports.extractWidgetProps=s.extractWidgetProps;exports.processAutoLabel=s.processAutoLabel;exports.processAutoPlaceholder=s.processAutoPlaceholder;exports._gslStates=v;exports._gslTag=M;exports.formDefs=R;exports.getItemKey=oe;exports.golemForm=re;exports.isDxDefinitions=D;exports.isOption=ie;exports.resolveFormInput=se;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./register-B3CJMfX9.cjs");require("@golemui/core");require("@golemui/gui-validators");function M(o,...e){return e.map(s=>({...s,targetState:o}))}function O(o,...e){return{kind:"aggregated",matcher:s=>s.tags?.includes(o)??!1,children:e}}const A={INPUTS:new Set(["INPUTS","TEXTAREA","PASSWORD","SELECT","DROPDOWN","RADIOGROUP","CHECKBOX","CALENDAR","DATE_TIME_CALENDAR","DATE_TIME_PICKER","DATE_INPUT","DATE_PICKER","RANGE_CALENDAR","RANGE_DATE_INPUT","RANGE_DATE_TIME_INPUT","RANGE_DATE_TIME_CALENDAR","RANGE_DATE_TIME_PICKER","RANGE_TIME_INPUT","RANGE_DATE_PICKER","RANGE_TIME_PICKER","TIME_INPUT","TIME_PICKER","DATE_TIME_INPUT","CURRENCY","MARKDOWN","LIST","CUSTOM_INPUT","REPEATER","TAGS"]),ACTIONS:new Set(["ACTIONS","CUSTOM_ACTION"]),DISPLAYS:new Set(["DISPLAYS","ALERTS","MARKDOWN_TEXTS","CUSTOM_DISPLAY"]),LAYOUTS:new Set(["LAYOUTS","TABS","ACCORDION","CUSTOM_LAYOUT"])};function v(o,e){const s=A[o];return s?s.has(e):o===e}class N{resolve(e,s){const n=[];for(const r of s)r.kind==="aggregated"?this.collectFromAggregated(r,e,n):this.collectFromLeaf(r,e,n);const i=this.rollUpSensibleDefaults(n);return{leafSelectors:n,sensibleDefaults:i}}collectFromAggregated(e,s,n){if(e.matcher(s))for(const i of e.children)this.collectFromLeaf(i,s,n)}collectFromLeaf(e,s,n){v(e.selectorType,s.itemType??"")&&e.matcher(s)&&n.push(e)}rollUpSensibleDefaults(e){const s=new Map,n=(r,a)=>{const l=s.get(r)??[];l.push(a),s.set(r,l)};for(const r of e){const a=A[r.selectorType];if(a)for(const l of a)n(l,r);else n(r.selectorType,r)}const i={};for(const[r,a]of s)t.hasItemTypeHandler(r)&&(i[r]=t.getItemTypeHandler(r).rollUpSensibleDefaults(a));return i}}const L=new N;class F{deepMerge(e,s){if(s==null)return e;if(e==null||typeof e!="object"||typeof s!="object"||Array.isArray(e)||Array.isArray(s))return s;const n={...e};for(const i in s)Object.prototype.hasOwnProperty.call(s,i)&&(typeof s[i]=="object"&&!Array.isArray(s[i])&&s[i]!==null&&typeof e[i]=="object"&&!Array.isArray(e[i])&&e[i]!==null?n[i]=this.deepMerge(e[i],s[i]):n[i]=s[i]);return n}}const j=new F;class W{constructor(e){this.objectUtils=e}merge(e,s,n){let i={},r=null;typeof e=="function"&&(r=e);const a=this.collectDecorators(n);for(const u of a){if(r!=null){r=this.composeRuntimeFunctions(r,u);continue}if(typeof u=="function"){const g=u({...i,...typeof e=="function"?{}:e});if(typeof g=="function"){r=this.createPromotedFunction(i,e,g,s,n);continue}i=this.objectUtils.deepMerge(i,g)}else i=this.objectUtils.deepMerge(i,u)}if(r!=null)return{kind:"dynamic",fn:this.wrapWithSensibleDefaults(r,i,s,n)};const l=this.objectUtils.deepMerge(e,i);return{kind:"static",def:this.applySensibleDefaults({...l},s,n)}}collectDecorators(e){const s=[];for(const n of e.leafSelectors){const i=n.config;i.override!=null&&s.push(i.override)}return s}applySensibleDefaults(e,s,n){if(!t.hasItemTypeHandler(s))return e;const i=n.sensibleDefaults[s]??{};return t.getItemTypeHandler(s).applySensibleDefaults(e,i)}createPromotedFunction(e,s,n,i,r){return a=>{const l=n(a);let c=this.objectUtils.deepMerge(e,l);return c=this.objectUtils.deepMerge(c,s),this.applySensibleDefaults(c,i,r)}}wrapWithSensibleDefaults(e,s,n,i){return r=>{let a=e(r);return Object.keys(s).length>0&&(a=this.objectUtils.deepMerge(s,a)),this.applySensibleDefaults(a,n,i)}}composeRuntimeFunctions(e,s){return typeof s=="function"?n=>{const i=e(n),r=s(i);return typeof r=="function"?r(n):this.objectUtils.deepMerge(r,i)}:n=>{const i=e(n);return this.objectUtils.deepMerge(i,s)}}}const G=new W(j);class z{mapToWidget(e,s){if(e.kind==="dynamic"){const n=e.fn;return(i=>{const r=n(i);return this.mapStaticDef(r,s)})}return this.mapStaticDef(e.def,s)}mapStaticDef(e,s){const n=t.getItemTypeHandler(s).mapToWidget(e);return this.applyBaseWidgetFields(n,e)}applyBaseWidgetFields(e,s){return s.size!=null&&(e.size=s.size),s.defaultValue!=null&&e.kind==="input"&&(e.defaultValue=s.defaultValue),s.on!=null&&(e.on=s.on),s.include!=null&&(e.include=s.include),s.exclude!=null&&(e.exclude=s.exclude),e}}const K=new z;class ${normalizeSelectors(e){const s=Array.isArray(e)?e:[e],n=[],i=[];for(const r of s)r.kind==="leaf"?i.push(r):n.push(r);return i.length>0&&n.unshift({kind:"aggregated",matcher:()=>!0,children:i}),n}extractFormConfig(){return{suppressAutomaticStack:!1}}}const H=new $,V={input:new Set(["disabled","readonly","label","validator","size"]),action:new Set(["disabled","label","size"]),layout:new Set(["size"]),display:new Set([])},R={onChange:"change",onLoad:"load",onFilter:"filter",onClick:"click"};class Y{extractFromMergeResult(e,s){const n={};for(const l of s){const c=l.targetState,u=l.config,g=u.override&&typeof u.override!="function"?u.override:u;n[c]={...n[c]||{},...g}}if(e.kind==="dynamic"){const l=e.fn;return{cleanedResult:{kind:"dynamic",fn:u=>{const g=l(u),{states:d,...p}=g;return p}},stateData:{stateOverrides:n}}}const{states:i,...r}=e.def,a={};for(const[l,c]of Object.entries(n))a[l]={...c};if(i)for(const[l,c]of Object.entries(i))a[l]={...a[l]||{},...c};return{cleanedResult:{kind:"static",def:r},stateData:{stateOverrides:a}}}applyToWidget(e,s,n,i){const{stateOverrides:r}=s;if(Object.keys(r).length===0)return e;const a={...e},l=e.kind,c=V[l]||new Set;e.props&&(a.props={...e.props}),e.on&&(a.on={...e.on});for(const[u,g]of Object.entries(r))for(const[d,p]of Object.entries(g))d==="visible"?this.applyVisibility(a,u,p):R[d]?this.applyStateEvent(a,u,d,p,n,i):c.has(d)?a[`${d}.${u}`]=p:(a.props||(a.props={}),a.props[`${d}.${u}`]=p);return a}hasStateData(e){return Object.keys(e.stateOverrides).length>0}applyVisibility(e,s,n){if(n){const i=e.include?.in||[];e.include={...e.include||{},in:[...i,s]}}else{const i=e.exclude?.from||[];e.exclude={...e.exclude||{},from:[...i,s]}}}applyStateEvent(e,s,n,i,r,a){const l=R[n];if(e.on||(e.on={}),typeof i=="function"){const c=t.probeForHostEventName(i);if(c!=null)e.on[`${l}.${s}`]=c;else{const u=a.next();r.set(u,i),e.on[`${l}.${s}`]=u}}else typeof i=="string"&&(e.on[`${l}.${s}`]=i)}}const X=new Y;function q(){let o=0;return{next:()=>`event_${o++}`}}class J{constructor(e,s,n,i,r){this.resolver=e,this.merger=s,this.mapper=n,this.eventWiring=i,this.stateExpansion=r}walkAndMap(e,s,n){const i=new Map,r=q(),a={value:0},l=new Set;return{widgets:this.walkItems(e,s,i,n,r,a,l),eventRegistry:i}}walkItems(e,s,n,i,r,a,l){return e.flatMap(c=>{if(c.type!=="ITEMS")throw new Error("Unexpected gui shortcut type");return c.items.map(u=>this.processItem(u,c.itemType,c.tags,s,n,i,r,a,l))})}processItem(e,s,n,i,r,a,l,c,u){const g=s,d=t.getItemTypeHandler(s),p=d.parseEntry(e),m=this.buildBaseDef(p),k=this.buildDecoratorForMatching(m,g,n),T=this.resolver.resolve(k,i),E=T.leafSelectors.filter(_=>_.targetState!=null),P={leafSelectors:T.leafSelectors.filter(_=>_.targetState==null),sensibleDefaults:T.sensibleDefaults};let f=this.merger.merge(m,g,P);d.afterMerge&&(f=d.afterMerge(f,{eventRegistry:r,formConfig:a,eventIdGenerator:l})),f=this.eventWiring.wireInputLayoutEvents(f,r,l);const{cleanedResult:U,stateData:D}=this.stateExpansion.extractFromMergeResult(f,E);let y;if(d.buildCustomWidget){const _=this.buildCustomWidgetContext(p.children,i,r,a,l,c,u);y=this.buildCustomWidget(d,U,_)}else y=this.mapper.mapToWidget(U,g);if(typeof y!="function"){const _=y;_.uid||(_.path&&!u.has(_.path)?(_.uid=_.path,u.add(_.path)):_.uid=`dx_${c.value++}`)}if(this.stateExpansion.hasStateData(D))if(typeof y=="function"){const _=y;y=(w=>{const x=_(w);return this.stateExpansion.applyToWidget(x,D,r,l)})}else y=this.stateExpansion.applyToWidget(y,D,r,l);return y}buildCustomWidgetContext(e,s,n,i,r,a,l){return{children:e,mapStaticDef:(c,u)=>this.mapper.mapStaticDef(c,u),walkChildren:c=>this.walkItems(c,s,n,i,r,a,l)}}buildCustomWidget(e,s,n){return e.buildCustomWidget(s,n)}buildBaseDef(e){const s=e.baseDef;return typeof s=="function"?n=>{const i=t.withForm(n),r=s(i);return e.path!=null?{...r,path:e.path}:r}:e.path!=null?{...s,path:e.path}:s}buildDecoratorForMatching(e,s,n){if(typeof e=="function")return{itemType:s,tags:[...n]};const i=[...n,..."tags"in e&&e.tags?e.tags:[]],r="uid"in e?e.uid:void 0,a="type"in e?e.type:void 0;return{itemType:s,tags:i,uid:r,type:a}}}class Q{constructor(e,s){this.selectorNormalizer=e,this.walker=s}processDxFacade(e,s=[],n){const{defs:i,gslSelectors:r,formConfig:a}=this.prepareForm(e,s,n),{widgets:l,eventRegistry:c}=this.walker.walkAndMap(i,r,a),u=l[0];return this.buildResult({form:u},c,a)}prepareForm(e,s,n){const r=(Array.isArray(e)?[...e]:[e]).map(c=>typeof c=="function"?t._guiDisplay(c):c),a=this.selectorNormalizer.normalizeSelectors(s),l={...this.selectorNormalizer.extractFormConfig(),...n};if(!l.suppressAutomaticStack){const c={def:{uid:"#root",direction:"column",widgetName:"flex"},children:r};return{defs:[{type:"ITEMS",itemType:t.GuiItemTypes.LAYOUTS,items:[c],tags:[]}],gslSelectors:a,formConfig:l}}return{defs:r,gslSelectors:a,formConfig:l}}convertStateNames(e){const s={};for(const[n,i]of Object.entries(e))s[n.replace(/\$/g,":")]=i;return s}buildResult(e,s,n){n.states&&Object.keys(n.states).length>0&&(e={...e,states:this.convertStateNames(n.states)});const i={form:e};return s.size>0&&(i.events=r=>{const a=s.get(r.name);if(a){const l=u=>{if(u&&typeof u=="object"&&"path"in u&&!("type"in u)){const{path:g,...d}=u;for(const[p,m]of Object.entries(d))r.callback({type:"OVERRIDE_WIDGET_PROP",payload:{path:g,prop:p,value:m}})}else r.callback(u)},c={...r,callback:l,update:l};a(c)}}),n.dependencies&&(i.dependencies=n.dependencies),n.functions&&(i.functions=n.functions),n.widgetLoaders&&(i.widgetLoaders=n.widgetLoaders),n.validateOn&&(i.validateOn=n.validateOn),n.itemRenderers&&(i.itemRenderers=n.itemRenderers),i}}const Z=new J(L,G,K,t.eventWiringService,X),C=new Q(H,Z);function h(o){return typeof o=="function"?!0:Array.isArray(o)?o.length===0||o.every(S):S(o)}function S(o){if(typeof o=="function")return!0;if(o===null||typeof o!="object")return!1;const e=o;return e.type==="ITEMS"&&typeof e.itemType=="string"}function ee(o){if(!o||typeof o!="object"||Array.isArray(o))return;const e=o.form;if(h(e))throw new Error("[GolemUI] The gui.* form definition was wrapped in an extra `{ form: ... }` object, so its fields were never resolved. Pass the gui.* array DIRECTLY as formDef (`config={{ formDef: form }}`) and put any named `states` in `formConfig`: `config={{ formDef: form, formConfig: { states } }}`. Do NOT wrap them as a `{ form: [...] }` object.")}const b=Object.freeze({}),te=Object.freeze({}),B=new WeakMap;function I(o,e){return o==null?e:typeof o=="object"?o:{}}function se(o,e,s){if(!h(o))return ee(o),{formDef:o};const n=I(o,b),i=I(e,b),r=I(s,te);let a=B.get(n);a||(a=new WeakMap,B.set(n,a));let l=a.get(i);l||(l=new WeakMap,a.set(i,l));const c=l.get(r);if(c)return c;const u=C.processDxFacade(o,e,s),g={formDef:u.form,formEvent:u.events,dependencies:u.dependencies,functions:u.functions,widgetLoaders:u.widgetLoaders,validateOn:u.validateOn,itemRenderers:u.itemRenderers};return l.set(r,g),g}class ie{create(e){return{states:e.states,form:{uid:"gui-root-uid",type:"flex",kind:"layout",children:e.form}}}}function ne(){return new ie}const re=o=>o!==null&&typeof o=="object"&&Object.prototype.hasOwnProperty.call(o,"label")&&Object.prototype.hasOwnProperty.call(o,"value");function ae(o,e){if(o!=null&&typeof o=="object"&&"__rid"in o)return o.__rid;const s=e();return Object.defineProperty(o,"__rid",{value:s,enumerable:!1,configurable:!1}),s}exports._gslAccordionByUid=t._gslAccordionByUid;exports._gslAccordions=t._gslAccordions;exports._gslActionByUid=t._gslActionByUid;exports._gslActions=t._gslActions;exports._gslAlertByUid=t._gslAlertByUid;exports._gslAlerts=t._gslAlerts;exports._gslBooleanInputs=t._gslBooleanInputs;exports._gslCalendarByUid=t._gslCalendarByUid;exports._gslCalendars=t._gslCalendars;exports._gslCheckboxByUid=t._gslCheckboxByUid;exports._gslCheckboxes=t._gslCheckboxes;exports._gslCurrencies=t._gslCurrencies;exports._gslCurrencyByUid=t._gslCurrencyByUid;exports._gslCustomActionByUid=t._gslCustomActionByUid;exports._gslCustomActions=t._gslCustomActions;exports._gslCustomDisplayByUid=t._gslCustomDisplayByUid;exports._gslCustomDisplays=t._gslCustomDisplays;exports._gslCustomInputByUid=t._gslCustomInputByUid;exports._gslCustomInputs=t._gslCustomInputs;exports._gslCustomLayoutByUid=t._gslCustomLayoutByUid;exports._gslCustomLayouts=t._gslCustomLayouts;exports._gslDateInputByUid=t._gslDateInputByUid;exports._gslDateInputs=t._gslDateInputs;exports._gslDatePickerByUid=t._gslDatePickerByUid;exports._gslDatePickers=t._gslDatePickers;exports._gslDateTimeCalendarByUid=t._gslDateTimeCalendarByUid;exports._gslDateTimeCalendars=t._gslDateTimeCalendars;exports._gslDateTimeInputByUid=t._gslDateTimeInputByUid;exports._gslDateTimeInputs=t._gslDateTimeInputs;exports._gslDateTimePickerByUid=t._gslDateTimePickerByUid;exports._gslDateTimePickers=t._gslDateTimePickers;exports._gslDisplayByUid=t._gslDisplayByUid;exports._gslDisplays=t._gslDisplays;exports._gslDropdownByUid=t._gslDropdownByUid;exports._gslDropdowns=t._gslDropdowns;exports._gslInputByUid=t._gslInputByUid;exports._gslInputs=t._gslInputs;exports._gslLayoutByUid=t._gslLayoutByUid;exports._gslLayouts=t._gslLayouts;exports._gslListByUid=t._gslListByUid;exports._gslLists=t._gslLists;exports._gslMarkdownByUid=t._gslMarkdownByUid;exports._gslMarkdownTextByUid=t._gslMarkdownTextByUid;exports._gslMarkdownTexts=t._gslMarkdownTexts;exports._gslMarkdowns=t._gslMarkdowns;exports._gslNumberInputs=t._gslNumberInputs;exports._gslPasswordByUid=t._gslPasswordByUid;exports._gslPasswords=t._gslPasswords;exports._gslRadiogroupByUid=t._gslRadiogroupByUid;exports._gslRadiogroups=t._gslRadiogroups;exports._gslRangeCalendarByUid=t._gslRangeCalendarByUid;exports._gslRangeCalendars=t._gslRangeCalendars;exports._gslRangeDateInputByUid=t._gslRangeDateInputByUid;exports._gslRangeDateInputs=t._gslRangeDateInputs;exports._gslRangeDatePickerByUid=t._gslRangeDatePickerByUid;exports._gslRangeDatePickers=t._gslRangeDatePickers;exports._gslRangeDateTimeCalendarByUid=t._gslRangeDateTimeCalendarByUid;exports._gslRangeDateTimeCalendars=t._gslRangeDateTimeCalendars;exports._gslRangeDateTimeInputByUid=t._gslRangeDateTimeInputByUid;exports._gslRangeDateTimeInputs=t._gslRangeDateTimeInputs;exports._gslRangeDateTimePickerByUid=t._gslRangeDateTimePickerByUid;exports._gslRangeDateTimePickers=t._gslRangeDateTimePickers;exports._gslRangeTimeInputByUid=t._gslRangeTimeInputByUid;exports._gslRangeTimeInputs=t._gslRangeTimeInputs;exports._gslRangeTimePickerByUid=t._gslRangeTimePickerByUid;exports._gslRangeTimePickers=t._gslRangeTimePickers;exports._gslRepeaterByUid=t._gslRepeaterByUid;exports._gslRepeaters=t._gslRepeaters;exports._gslSelectByUid=t._gslSelectByUid;exports._gslSelects=t._gslSelects;exports._gslTabs=t._gslTabs;exports._gslTabsByUid=t._gslTabsByUid;exports._gslTags=t._gslTags;exports._gslTagsByUid=t._gslTagsByUid;exports._gslTextInputs=t._gslTextInputs;exports._gslTextareaByUid=t._gslTextareaByUid;exports._gslTextareas=t._gslTextareas;exports._gslTimeInputByUid=t._gslTimeInputByUid;exports._gslTimeInputs=t._gslTimeInputs;exports._gslTimePickerByUid=t._gslTimePickerByUid;exports._gslTimePickers=t._gslTimePickers;exports._guiAccordion=t._guiAccordion;exports._guiAlert=t._guiAlert;exports._guiBooleanInput=t._guiBooleanInput;exports._guiButton=t._guiButton;exports._guiCalendar=t._guiCalendar;exports._guiCheckbox=t._guiCheckbox;exports._guiCurrency=t._guiCurrency;exports._guiCustomAction=t._guiCustomAction;exports._guiCustomDisplay=t._guiCustomDisplay;exports._guiCustomInput=t._guiCustomInput;exports._guiCustomLayout=t._guiCustomLayout;exports._guiDateInput=t._guiDateInput;exports._guiDatePicker=t._guiDatePicker;exports._guiDateTimeCalendar=t._guiDateTimeCalendar;exports._guiDateTimeInput=t._guiDateTimeInput;exports._guiDateTimePicker=t._guiDateTimePicker;exports._guiDisplay=t._guiDisplay;exports._guiDropdown=t._guiDropdown;exports._guiFlex=t._guiFlex;exports._guiGrid=t._guiGrid;exports._guiHorizontalFlex=t._guiHorizontalFlex;exports._guiHorizontalGrid=t._guiHorizontalGrid;exports._guiList=t._guiList;exports._guiMarkdown=t._guiMarkdown;exports._guiMarkdownText=t._guiMarkdownText;exports._guiNumberInput=t._guiNumberInput;exports._guiPassword=t._guiPassword;exports._guiRadiogroup=t._guiRadiogroup;exports._guiRangeCalendar=t._guiRangeCalendar;exports._guiRangeDateInput=t._guiRangeDateInput;exports._guiRangeDatePicker=t._guiRangeDatePicker;exports._guiRangeDateTimeCalendar=t._guiRangeDateTimeCalendar;exports._guiRangeDateTimeInput=t._guiRangeDateTimeInput;exports._guiRangeDateTimePicker=t._guiRangeDateTimePicker;exports._guiRangeTimeInput=t._guiRangeTimeInput;exports._guiRangeTimePicker=t._guiRangeTimePicker;exports._guiRepeater=t._guiRepeater;exports._guiSelect=t._guiSelect;exports._guiTabs=t._guiTabs;exports._guiTags=t._guiTags;exports._guiTextInput=t._guiTextInput;exports._guiTextarea=t._guiTextarea;exports._guiTimeInput=t._guiTimeInput;exports._guiTimePicker=t._guiTimePicker;exports._guiVerticalFlex=t._guiVerticalFlex;exports._guiVerticalGrid=t._guiVerticalGrid;exports.createGslSelector=t.createGslSelector;exports.defineShortcutType=t.defineShortcutType;exports.extractWidgetProps=t.extractWidgetProps;exports.processAutoLabel=t.processAutoLabel;exports.processAutoPlaceholder=t.processAutoPlaceholder;exports._gslStates=M;exports._gslTag=O;exports.formDefs=C;exports.getItemKey=ae;exports.golemForm=ne;exports.isDxDefinitions=h;exports.isOption=re;exports.resolveFormInput=se;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NonFunctionWidget, FormWidget } from '@golemui/core';
|
|
2
2
|
import { GslLeafSelector, MergeResult } from './dx.domain';
|
|
3
3
|
import { GslConfigBase } from './dxUtilityTypes';
|
|
4
|
-
import { AfterMergeContext, BuildWidgetContext } from './itemTypeRegistry';
|
|
4
|
+
import { AfterMergeContext, BuildWidgetContext, ShortcutItemKind } from './itemTypeRegistry';
|
|
5
5
|
import { DxCommonFields } from './dxBase.types';
|
|
6
6
|
type EntryShape = 'bare' | 'keyed' | 'compound';
|
|
7
7
|
interface SensibleDefaultsSpec<TDecorator, TConfig> {
|
|
@@ -11,6 +11,7 @@ interface SensibleDefaultsSpec<TDecorator, TConfig> {
|
|
|
11
11
|
}
|
|
12
12
|
interface ShortcutTypeConfig<TEntry, TDecorator, TConfig> {
|
|
13
13
|
itemType: string;
|
|
14
|
+
kind?: ShortcutItemKind;
|
|
14
15
|
entryShape: EntryShape;
|
|
15
16
|
mapToWidget: (def: TDecorator) => NonFunctionWidget;
|
|
16
17
|
sensibleDefaults?: SensibleDefaultsSpec<TDecorator, TConfig>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FunctionWidgetParams, ValidateOn } from '@golemui/core';
|
|
1
|
+
import { ExpressionFunctions, FunctionWidgetParams, ValidateOn } from '@golemui/core';
|
|
2
2
|
import { WidgetItemDecorator, GslItemType } from '../formDef.domain';
|
|
3
3
|
import { Dependencies } from '../../shared';
|
|
4
4
|
export type { GslItemType } from '../formDef.domain';
|
|
@@ -34,6 +34,11 @@ export interface GslLeafSelector {
|
|
|
34
34
|
export interface FormConfig {
|
|
35
35
|
suppressAutomaticStack?: boolean;
|
|
36
36
|
dependencies?: Dependencies;
|
|
37
|
+
/**
|
|
38
|
+
* Pure functions callable from reactive expressions under the `$fn` namespace.
|
|
39
|
+
* Functions passed in the wrapper's `config.functions` win on name collisions.
|
|
40
|
+
*/
|
|
41
|
+
functions?: ExpressionFunctions;
|
|
37
42
|
widgetLoaders?: Record<string, () => Promise<unknown>>;
|
|
38
43
|
validateOn?: ValidateOn;
|
|
39
44
|
states?: Record<string, string>;
|
|
@@ -77,6 +77,18 @@ export interface ItemTypeHandler<TEntry = any, TDecorator extends DxCommonFields
|
|
|
77
77
|
buildCustomWidget?(mergeResult: MergeResult, context: BuildWidgetContext): FormWidget;
|
|
78
78
|
getChildren?(entry: TEntry): ValidGuiShortcut[] | undefined;
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
/**
|
|
81
|
+
* The widget kind an item type belongs to. Matches the `kind` discriminator of core widgets
|
|
82
|
+
*/
|
|
83
|
+
export type ShortcutItemKind = NonFunctionWidget['kind'];
|
|
84
|
+
export declare function registerItemType(itemType: string, handler: ItemTypeHandler<any, any, any>, kind?: ShortcutItemKind): void;
|
|
85
|
+
/**
|
|
86
|
+
* Returns the widget kind declared when the item type was registered, or undefined when it was registered without one
|
|
87
|
+
*/
|
|
88
|
+
export declare function getItemTypeKind(itemType: string): ShortcutItemKind | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* Returns the names of every registered item type
|
|
91
|
+
*/
|
|
92
|
+
export declare function getRegisteredItemTypes(): string[];
|
|
81
93
|
export declare function getItemTypeHandler(itemType: string): ItemTypeHandler<any, any, any>;
|
|
82
94
|
export declare function hasItemTypeHandler(itemType: string): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Form, FormEvent, UiState, ValidateOn } from '@golemui/core';
|
|
1
|
+
import { ExpressionFunctions, Form, FormEvent, UiState, ValidateOn } from '@golemui/core';
|
|
2
2
|
import { ValidGuiShortcut } from './core/dx.domain';
|
|
3
3
|
import { DxCommonFields, DxInternalFields } from './core/dxBase.types';
|
|
4
4
|
import { DxRuntimeParams } from './core/dxUtilityTypes';
|
|
@@ -20,6 +20,7 @@ export interface DxResult<S extends UiState = never, F extends Record<string, an
|
|
|
20
20
|
form: Form<S, F>;
|
|
21
21
|
events?: FormEvents;
|
|
22
22
|
dependencies?: Dependencies;
|
|
23
|
+
functions?: ExpressionFunctions;
|
|
23
24
|
widgetLoaders?: Record<string, () => Promise<unknown>>;
|
|
24
25
|
validateOn?: ValidateOn;
|
|
25
26
|
itemRenderers?: Record<string, unknown>;
|
package/lib/dx/gui.d.ts
CHANGED
|
@@ -11,11 +11,21 @@ import { _guiCurrency } from './shortcuts/currency/guiCurrency.impl';
|
|
|
11
11
|
import { _guiMarkdown } from './shortcuts/markdown/guiMarkdown.impl';
|
|
12
12
|
import { _guiList } from './shortcuts/list/guiList.impl';
|
|
13
13
|
import { _guiCalendar } from './shortcuts/calendar/guiCalendar.impl';
|
|
14
|
+
import { _guiDateTimeCalendar } from './shortcuts/date-time-calendar/guiDateTimeCalendar.impl';
|
|
14
15
|
import { _guiDateInput } from './shortcuts/date-input/guiDateInput.impl';
|
|
15
16
|
import { _guiDatePicker } from './shortcuts/date-picker/guiDatePicker.impl';
|
|
17
|
+
import { _guiDateTimePicker } from './shortcuts/date-time-picker/guiDateTimePicker.impl';
|
|
16
18
|
import { _guiRangeCalendar } from './shortcuts/range-calendar/guiRangeCalendar.impl';
|
|
17
19
|
import { _guiRangeDateInput } from './shortcuts/range-date-input/guiRangeDateInput.impl';
|
|
20
|
+
import { _guiRangeDateTimeInput } from './shortcuts/range-date-time-input/guiRangeDateTimeInput.impl';
|
|
21
|
+
import { _guiRangeDateTimeCalendar } from './shortcuts/range-date-time-calendar/guiRangeDateTimeCalendar.impl';
|
|
22
|
+
import { _guiRangeDateTimePicker } from './shortcuts/range-date-time-picker/guiRangeDateTimePicker.impl';
|
|
23
|
+
import { _guiRangeTimeInput } from './shortcuts/range-time-input/guiRangeTimeInput.impl';
|
|
18
24
|
import { _guiRangeDatePicker } from './shortcuts/range-date-picker/guiRangeDatePicker.impl';
|
|
25
|
+
import { _guiRangeTimePicker } from './shortcuts/range-time-picker/guiRangeTimePicker.impl';
|
|
26
|
+
import { _guiTimeInput } from './shortcuts/time-input/guiTimeInput.impl';
|
|
27
|
+
import { _guiTimePicker } from './shortcuts/time-picker/guiTimePicker.impl';
|
|
28
|
+
import { _guiDateTimeInput } from './shortcuts/date-time-input/guiDateTimeInput.impl';
|
|
19
29
|
import { _guiCustomInput } from './shortcuts/custom-input/guiCustomInput.impl';
|
|
20
30
|
import { _guiButton } from './shortcuts/actions/guiActions.impl';
|
|
21
31
|
import { _guiCustomAction } from './shortcuts/custom-action/guiCustomAction.impl';
|
|
@@ -43,11 +53,21 @@ export declare const gui: {
|
|
|
43
53
|
readonly markdown: typeof _guiMarkdown;
|
|
44
54
|
readonly list: typeof _guiList;
|
|
45
55
|
readonly calendar: typeof _guiCalendar;
|
|
56
|
+
readonly dateTimeCalendar: typeof _guiDateTimeCalendar;
|
|
46
57
|
readonly dateInput: typeof _guiDateInput;
|
|
47
58
|
readonly datePicker: typeof _guiDatePicker;
|
|
59
|
+
readonly dateTimePicker: typeof _guiDateTimePicker;
|
|
60
|
+
readonly timeInput: typeof _guiTimeInput;
|
|
61
|
+
readonly timePicker: typeof _guiTimePicker;
|
|
62
|
+
readonly dateTimeInput: typeof _guiDateTimeInput;
|
|
48
63
|
readonly rangeCalendar: typeof _guiRangeCalendar;
|
|
49
64
|
readonly rangeDateInput: typeof _guiRangeDateInput;
|
|
65
|
+
readonly rangeDateTimeInput: typeof _guiRangeDateTimeInput;
|
|
66
|
+
readonly rangeDateTimeCalendar: typeof _guiRangeDateTimeCalendar;
|
|
67
|
+
readonly rangeDateTimePicker: typeof _guiRangeDateTimePicker;
|
|
68
|
+
readonly rangeTimeInput: typeof _guiRangeTimeInput;
|
|
50
69
|
readonly rangeDatePicker: typeof _guiRangeDatePicker;
|
|
70
|
+
readonly rangeTimePicker: typeof _guiRangeTimePicker;
|
|
51
71
|
readonly repeater: typeof _guiRepeater;
|
|
52
72
|
readonly tags: typeof _guiTags;
|
|
53
73
|
readonly custom: typeof _guiCustomInput;
|
package/lib/dx/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export { _guiAccordion } from './shortcuts/accordion/guiAccordion.impl';
|
|
|
3
3
|
export { _guiButton } from './shortcuts/actions/guiActions.impl';
|
|
4
4
|
export { _guiAlert } from './shortcuts/alert/guiAlert.impl';
|
|
5
5
|
export { _guiCalendar } from './shortcuts/calendar/guiCalendar.impl';
|
|
6
|
+
export { _guiDateTimeCalendar } from './shortcuts/date-time-calendar/guiDateTimeCalendar.impl';
|
|
7
|
+
export { _guiDateTimePicker } from './shortcuts/date-time-picker/guiDateTimePicker.impl';
|
|
6
8
|
export { _guiCheckbox } from './shortcuts/checkbox/guiCheckbox.impl';
|
|
7
9
|
export { _guiCurrency } from './shortcuts/currency/guiCurrency.impl';
|
|
8
10
|
export { _guiCustomAction } from './shortcuts/custom-action/guiCustomAction.impl';
|
|
@@ -11,6 +13,7 @@ export { _guiCustomInput } from './shortcuts/custom-input/guiCustomInput.impl';
|
|
|
11
13
|
export { _guiCustomLayout } from './shortcuts/custom-layout/guiCustomLayout.impl';
|
|
12
14
|
export { _guiDateInput } from './shortcuts/date-input/guiDateInput.impl';
|
|
13
15
|
export { _guiDatePicker } from './shortcuts/date-picker/guiDatePicker.impl';
|
|
16
|
+
export { _guiDateTimeInput } from './shortcuts/date-time-input/guiDateTimeInput.impl';
|
|
14
17
|
export { _guiDisplay } from './shortcuts/display/guiDisplay.impl';
|
|
15
18
|
export { _guiDropdown } from './shortcuts/dropdown/guiDropdown.impl';
|
|
16
19
|
export { _guiBooleanInput } from './shortcuts/inputs/guiBooleanInput.impl';
|
|
@@ -24,16 +27,24 @@ export { _guiPassword } from './shortcuts/password/guiPassword.impl';
|
|
|
24
27
|
export { _guiRadiogroup } from './shortcuts/radiogroup/guiRadiogroup.impl';
|
|
25
28
|
export { _guiRangeCalendar } from './shortcuts/range-calendar/guiRangeCalendar.impl';
|
|
26
29
|
export { _guiRangeDateInput } from './shortcuts/range-date-input/guiRangeDateInput.impl';
|
|
30
|
+
export { _guiRangeDateTimeInput } from './shortcuts/range-date-time-input/guiRangeDateTimeInput.impl';
|
|
31
|
+
export { _guiRangeDateTimeCalendar } from './shortcuts/range-date-time-calendar/guiRangeDateTimeCalendar.impl';
|
|
32
|
+
export { _guiRangeDateTimePicker } from './shortcuts/range-date-time-picker/guiRangeDateTimePicker.impl';
|
|
33
|
+
export { _guiRangeTimeInput } from './shortcuts/range-time-input/guiRangeTimeInput.impl';
|
|
27
34
|
export { _guiRangeDatePicker } from './shortcuts/range-date-picker/guiRangeDatePicker.impl';
|
|
35
|
+
export { _guiRangeTimePicker } from './shortcuts/range-time-picker/guiRangeTimePicker.impl';
|
|
28
36
|
export { _guiRepeater } from './shortcuts/repeater/guiRepeater.impl';
|
|
29
37
|
export { _guiSelect } from './shortcuts/select/guiSelect.impl';
|
|
30
38
|
export { _guiTabs } from './shortcuts/tabs/guiTabs.impl';
|
|
31
39
|
export { _guiTags } from './shortcuts/tags/guiTags.impl';
|
|
32
40
|
export { _guiTextarea } from './shortcuts/textarea/guiTextarea.impl';
|
|
41
|
+
export { _guiTimeInput } from './shortcuts/time-input/guiTimeInput.impl';
|
|
42
|
+
export { _guiTimePicker } from './shortcuts/time-picker/guiTimePicker.impl';
|
|
33
43
|
export { _gslAccordionByUid, _gslAccordions } from './shortcuts/accordion/register';
|
|
34
44
|
export { _gslActionByUid, _gslActions } from './shortcuts/actions/register';
|
|
35
45
|
export { _gslAlertByUid, _gslAlerts } from './shortcuts/alert/register';
|
|
36
46
|
export { _gslCalendarByUid, _gslCalendars } from './shortcuts/calendar/register';
|
|
47
|
+
export { _gslDateTimeCalendarByUid, _gslDateTimeCalendars, } from './shortcuts/date-time-calendar/register';
|
|
37
48
|
export { _gslCheckboxByUid, _gslCheckboxes } from './shortcuts/checkbox/register';
|
|
38
49
|
export { _gslCurrencies, _gslCurrencyByUid } from './shortcuts/currency/register';
|
|
39
50
|
export { _gslCustomActionByUid, _gslCustomActions } from './shortcuts/custom-action/register';
|
|
@@ -42,6 +53,8 @@ export { _gslCustomInputByUid, _gslCustomInputs } from './shortcuts/custom-input
|
|
|
42
53
|
export { _gslCustomLayoutByUid, _gslCustomLayouts } from './shortcuts/custom-layout/register';
|
|
43
54
|
export { _gslDateInputByUid, _gslDateInputs } from './shortcuts/date-input/register';
|
|
44
55
|
export { _gslDatePickerByUid, _gslDatePickers } from './shortcuts/date-picker/register';
|
|
56
|
+
export { _gslDateTimePickerByUid, _gslDateTimePickers, } from './shortcuts/date-time-picker/register';
|
|
57
|
+
export { _gslDateTimeInputByUid, _gslDateTimeInputs } from './shortcuts/date-time-input/register';
|
|
45
58
|
export { _gslDisplayByUid, _gslDisplays } from './shortcuts/display/register';
|
|
46
59
|
export { _gslDropdownByUid, _gslDropdowns } from './shortcuts/dropdown/register';
|
|
47
60
|
export { _gslBooleanInputs, _gslNumberInputs, _gslTextInputs, } from './shortcuts/inputs/gslInputSubtypes';
|
|
@@ -54,12 +67,19 @@ export { _gslPasswordByUid, _gslPasswords } from './shortcuts/password/register'
|
|
|
54
67
|
export { _gslRadiogroupByUid, _gslRadiogroups } from './shortcuts/radiogroup/register';
|
|
55
68
|
export { _gslRangeCalendarByUid, _gslRangeCalendars } from './shortcuts/range-calendar/register';
|
|
56
69
|
export { _gslRangeDateInputByUid, _gslRangeDateInputs, } from './shortcuts/range-date-input/register';
|
|
70
|
+
export { _gslRangeDateTimeInputByUid, _gslRangeDateTimeInputs, } from './shortcuts/range-date-time-input/register';
|
|
71
|
+
export { _gslRangeDateTimeCalendarByUid, _gslRangeDateTimeCalendars, } from './shortcuts/range-date-time-calendar/register';
|
|
72
|
+
export { _gslRangeDateTimePickerByUid, _gslRangeDateTimePickers, } from './shortcuts/range-date-time-picker/register';
|
|
73
|
+
export { _gslRangeTimeInputByUid, _gslRangeTimeInputs, } from './shortcuts/range-time-input/register';
|
|
57
74
|
export { _gslRangeDatePickerByUid, _gslRangeDatePickers, } from './shortcuts/range-date-picker/register';
|
|
75
|
+
export { _gslRangeTimePickerByUid, _gslRangeTimePickers, } from './shortcuts/range-time-picker/register';
|
|
58
76
|
export { _gslRepeaterByUid, _gslRepeaters } from './shortcuts/repeater/register';
|
|
59
77
|
export { _gslSelectByUid, _gslSelects } from './shortcuts/select/register';
|
|
60
78
|
export { _gslTabs, _gslTabsByUid } from './shortcuts/tabs/register';
|
|
61
79
|
export { _gslTags, _gslTagsByUid } from './shortcuts/tags/register';
|
|
62
80
|
export { _gslTextareaByUid, _gslTextareas } from './shortcuts/textarea/register';
|
|
81
|
+
export { _gslTimeInputByUid, _gslTimeInputs } from './shortcuts/time-input/register';
|
|
82
|
+
export { _gslTimePickerByUid, _gslTimePickers } from './shortcuts/time-picker/register';
|
|
63
83
|
export { _gslStates } from './shortcuts/scopes/gslStates.impl';
|
|
64
84
|
export { _gslTag } from './shortcuts/scopes/gslTag.impl';
|
|
65
85
|
export type { DxFormConfig, FormConfig, GslSelectorsInput } from './core/dx.domain';
|
|
@@ -73,6 +93,7 @@ export type { AccordionDecorator, GslAccordionConfig, } from './shortcuts/accord
|
|
|
73
93
|
export type { ActionDecorator, GslActionsConfig } from './shortcuts/actions/actions.domain';
|
|
74
94
|
export type { AlertDecorator, GslAlertsConfig } from './shortcuts/alert/alert.domain';
|
|
75
95
|
export type { CalendarDecorator, GslCalendarConfig } from './shortcuts/calendar/calendar.domain';
|
|
96
|
+
export type { DateTimeCalendarDecorator, GslDateTimeCalendarConfig, } from './shortcuts/date-time-calendar/dateTimeCalendar.domain';
|
|
76
97
|
export type { CheckboxDecorator, GslCheckboxConfig } from './shortcuts/checkbox/checkbox.domain';
|
|
77
98
|
export type { CurrencyDecorator, GslCurrencyConfig } from './shortcuts/currency/currency.domain';
|
|
78
99
|
export type { CustomActionDecorator, GslCustomActionConfig, } from './shortcuts/custom-action/customAction.domain';
|
|
@@ -81,6 +102,8 @@ export type { CustomInputDecorator, GslCustomInputConfig, } from './shortcuts/cu
|
|
|
81
102
|
export type { CustomLayoutDecorator, GslCustomLayoutConfig, } from './shortcuts/custom-layout/customLayout.domain';
|
|
82
103
|
export type { DateInputDecorator, GslDateInputConfig, } from './shortcuts/date-input/dateInput.domain';
|
|
83
104
|
export type { DatePickerDecorator, GslDatePickerConfig, } from './shortcuts/date-picker/datePicker.domain';
|
|
105
|
+
export type { DateTimePickerDecorator, GslDateTimePickerConfig, } from './shortcuts/date-time-picker/dateTimePicker.domain';
|
|
106
|
+
export type { DateTimeInputDecorator, GslDateTimeInputConfig, } from './shortcuts/date-time-input/dateTimeInput.domain';
|
|
84
107
|
export type { DisplayDecorator, GslDisplaysConfig } from './shortcuts/display/display.domain';
|
|
85
108
|
export type { DropdownDecorator, GslDropdownConfig } from './shortcuts/dropdown/dropdown.domain';
|
|
86
109
|
export type { BooleanDataInputDecorator, GslInputsConfig, InputDecorator, InputTags, NumberDataInputDecorator, SimpleFieldDef, TextDataInputDecorator, ValidShortcutType, } from './shortcuts/inputs/inputs.domain';
|
|
@@ -91,12 +114,19 @@ export type { GslPasswordConfig, PasswordDecorator } from './shortcuts/password/
|
|
|
91
114
|
export type { GslRadiogroupConfig, RadiogroupDecorator, } from './shortcuts/radiogroup/radiogroup.domain';
|
|
92
115
|
export type { GslRangeCalendarConfig, RangeCalendarDecorator, } from './shortcuts/range-calendar/rangeCalendar.domain';
|
|
93
116
|
export type { GslRangeDateInputConfig, RangeDateInputDecorator, } from './shortcuts/range-date-input/rangeDateInput.domain';
|
|
117
|
+
export type { GslRangeDateTimeInputConfig, RangeDateTimeInputDecorator, } from './shortcuts/range-date-time-input/rangeDateTimeInput.domain';
|
|
118
|
+
export type { GslRangeDateTimeCalendarConfig, RangeDateTimeCalendarDecorator, } from './shortcuts/range-date-time-calendar/rangeDateTimeCalendar.domain';
|
|
119
|
+
export type { GslRangeDateTimePickerConfig, RangeDateTimePickerDecorator, } from './shortcuts/range-date-time-picker/rangeDateTimePicker.domain';
|
|
120
|
+
export type { GslRangeTimeInputConfig, RangeTimeInputDecorator, } from './shortcuts/range-time-input/rangeTimeInput.domain';
|
|
94
121
|
export type { GslRangeDatePickerConfig, RangeDatePickerDecorator, } from './shortcuts/range-date-picker/rangeDatePicker.domain';
|
|
122
|
+
export type { GslRangeTimePickerConfig, RangeTimePickerDecorator, } from './shortcuts/range-time-picker/rangeTimePicker.domain';
|
|
95
123
|
export type { GslRepeaterConfig, RepeaterDecorator } from './shortcuts/repeater/repeater.domain';
|
|
96
124
|
export type { GslSelectConfig, SelectDecorator } from './shortcuts/select/select.domain';
|
|
97
125
|
export type { GslTabsConfig, TabsDecorator } from './shortcuts/tabs/tabs.domain';
|
|
98
126
|
export type { GslTagsConfig, TagsDecorator } from './shortcuts/tags/tags.domain';
|
|
99
127
|
export type { GslTextareaConfig, TextareaDecorator } from './shortcuts/textarea/textarea.domain';
|
|
128
|
+
export type { GslTimeInputConfig, TimeInputDecorator, } from './shortcuts/time-input/timeInput.domain';
|
|
129
|
+
export type { GslTimePickerConfig, TimePickerDecorator, } from './shortcuts/time-picker/timePicker.domain';
|
|
100
130
|
export { defineShortcutType } from './core/defineShortcutType';
|
|
101
131
|
export type { ShortcutTypeSelectors } from './core/defineShortcutType';
|
|
102
132
|
export type { DxActionBase, DxCommonFields, DxDisplayBase, DxFormEvent, DxInputBase, DxInternalFields, DxLayoutBase, } from './core/dxBase.types';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValidateOn, Action, Form, I18nTranslator, Middleware, State } from '@golemui/core';
|
|
1
|
+
import { ExpressionFunctions, ValidateOn, Action, Form, I18nTranslator, Middleware, State } from '@golemui/core';
|
|
2
2
|
import { CustomValidatorSchemas } from '@golemui/gui-validators';
|
|
3
3
|
import { Dependencies } from '../shared';
|
|
4
4
|
import { DxFormConfig, GslSelectorsInput } from './core/dx.domain';
|
|
@@ -17,12 +17,20 @@ export interface GuiFormInitConfig {
|
|
|
17
17
|
itemRenderers?: Record<string, unknown>;
|
|
18
18
|
localization?: I18nTranslator;
|
|
19
19
|
dependencies?: Dependencies;
|
|
20
|
+
/**
|
|
21
|
+
* Pure functions callable from reactive expressions under the `$fn` namespace,
|
|
22
|
+
* e.g. `"text": "Total: {{ $fn.grandTotal($form.lineItems) }}"`.
|
|
23
|
+
* Merged over any functions declared by the DX bundle's `formConfig`;
|
|
24
|
+
* this config wins on name collisions.
|
|
25
|
+
*/
|
|
26
|
+
functions?: ExpressionFunctions;
|
|
20
27
|
formName?: string;
|
|
21
28
|
}
|
|
22
29
|
export interface ResolvedFormInput<FormData extends Record<string, any> = any> {
|
|
23
30
|
formDef: string | Record<string, any> | Form<any, FormData>;
|
|
24
31
|
formEvent?: FormEvents;
|
|
25
32
|
dependencies?: Dependencies;
|
|
33
|
+
functions?: ExpressionFunctions;
|
|
26
34
|
widgetLoaders?: Record<string, () => Promise<unknown>>;
|
|
27
35
|
validateOn?: ValidateOn;
|
|
28
36
|
itemRenderers?: Record<string, unknown>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { StringValidator } from '@golemui/gui-validators';
|
|
2
|
+
import { DateTimeCalendarProps } from '../../../widget.props';
|
|
3
|
+
import { DxCommonFields, DxInputBase, DxInternalFields } from '../../core/dxBase.types';
|
|
4
|
+
import { DefOrCallback, GslConfigBase, GuiShortcutOf } from '../../core/dxUtilityTypes';
|
|
5
|
+
import { DxValidator } from '../../core/dxValidatorHelper';
|
|
6
|
+
export interface DateTimeCalendarDecorator extends DxInputBase, DxCommonFields, Partial<DateTimeCalendarProps> {
|
|
7
|
+
type: 'dateTimeCalendar';
|
|
8
|
+
validator?: DxValidator<StringValidator>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Full decorator type including pipeline-internal fields.
|
|
12
|
+
* Used by the pipeline only — form authors use DateTimeCalendarDecorator.
|
|
13
|
+
*/
|
|
14
|
+
export type DateTimeCalendarDecoratorFull = DateTimeCalendarDecorator & DxInternalFields;
|
|
15
|
+
export interface DateTimeCalendarSensibleDefaultsConfig {
|
|
16
|
+
suppressAutomaticLabels?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface GslDateTimeCalendarConfig extends GslConfigBase<DateTimeCalendarDecorator> {
|
|
19
|
+
suppressAutomaticLabels?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export type DateTimeCalendarEntry = DefOrCallback<DateTimeCalendarDecorator>;
|
|
22
|
+
export type GuiDateTimeCalendarShortcut = GuiShortcutOf<'DATE_TIME_CALENDAR', DateTimeCalendarEntry>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DateTimeCalendarDecorator, DateTimeCalendarSensibleDefaultsConfig } from './dateTimeCalendar.domain';
|
|
2
|
+
export declare class DateTimeCalendarSensibleDefaultsService {
|
|
3
|
+
processAutomaticLabels(item: DateTimeCalendarDecorator, currentConfig: DateTimeCalendarSensibleDefaultsConfig): DateTimeCalendarDecorator;
|
|
4
|
+
}
|
|
5
|
+
declare const dateTimeCalendarSensibleDefaultsService: DateTimeCalendarSensibleDefaultsService;
|
|
6
|
+
export default dateTimeCalendarSensibleDefaultsService;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DxRuntimeParams } from '../../core/dxUtilityTypes';
|
|
2
|
+
import { GuiDateTimeCalendarShortcut, DateTimeCalendarDecorator } from './dateTimeCalendar.domain';
|
|
3
|
+
export declare function _guiDateTimeCalendar(path: string): GuiDateTimeCalendarShortcut;
|
|
4
|
+
export declare function _guiDateTimeCalendar(path: string, props: Partial<Omit<DateTimeCalendarDecorator, 'type'>>): GuiDateTimeCalendarShortcut;
|
|
5
|
+
export declare function _guiDateTimeCalendar(path: string, props: Partial<Omit<DateTimeCalendarDecorator, 'type'>>, tags: string[]): GuiDateTimeCalendarShortcut;
|
|
6
|
+
export declare function _guiDateTimeCalendar(path: string, callback: (params: DxRuntimeParams) => Partial<Omit<DateTimeCalendarDecorator, 'type'>>, tags?: string[]): GuiDateTimeCalendarShortcut;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DateTimeCalendarDecorator, GslDateTimeCalendarConfig } from './dateTimeCalendar.domain';
|
|
2
|
+
export declare const _gslDateTimeCalendars: (config: GslDateTimeCalendarConfig, matcher?: ((decorator: DateTimeCalendarDecorator) => boolean) | undefined) => import('../../core/dx.domain').GslLeafSelector, _gslDateTimeCalendarByUid: (uid: string, config: GslDateTimeCalendarConfig) => import('../../core/dx.domain').GslLeafSelector;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { StringValidator } from '@golemui/gui-validators';
|
|
2
|
+
import { DateTimeInputProps } from '../../../widget.props';
|
|
3
|
+
import { DxCommonFields, DxInputBase } from '../../core/dxBase.types';
|
|
4
|
+
import { DefOrCallback, GslConfigBase, GuiShortcutOf } from '../../core/dxUtilityTypes';
|
|
5
|
+
import { DxValidator } from '../../core/dxValidatorHelper';
|
|
6
|
+
export interface DateTimeInputDecorator extends DxInputBase, DxCommonFields, Partial<DateTimeInputProps> {
|
|
7
|
+
type: 'dateTimeInput';
|
|
8
|
+
validator?: DxValidator<StringValidator>;
|
|
9
|
+
}
|
|
10
|
+
export interface GslDateTimeInputConfig extends GslConfigBase<DateTimeInputDecorator> {
|
|
11
|
+
suppressAutomaticLabels?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export type DateTimeInputEntry = {
|
|
14
|
+
key: string;
|
|
15
|
+
def: DefOrCallback<DateTimeInputDecorator>;
|
|
16
|
+
};
|
|
17
|
+
export type GuiDateTimeInputShortcut = GuiShortcutOf<'DATE_TIME_INPUT', DateTimeInputEntry>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DxRuntimeParams } from '../../core/dxUtilityTypes';
|
|
2
|
+
import { DateTimeInputDecorator, GuiDateTimeInputShortcut } from './dateTimeInput.domain';
|
|
3
|
+
export declare function _guiDateTimeInput(path: string): GuiDateTimeInputShortcut;
|
|
4
|
+
export declare function _guiDateTimeInput(path: string, props: Partial<Omit<DateTimeInputDecorator, 'type'>>): GuiDateTimeInputShortcut;
|
|
5
|
+
export declare function _guiDateTimeInput(path: string, props: Partial<Omit<DateTimeInputDecorator, 'type'>>, tags: string[]): GuiDateTimeInputShortcut;
|
|
6
|
+
export declare function _guiDateTimeInput(path: string, callback: (params: DxRuntimeParams) => Partial<Omit<DateTimeInputDecorator, 'type'>>, tags?: string[]): GuiDateTimeInputShortcut;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DateTimeInputDecorator, GslDateTimeInputConfig } from './dateTimeInput.domain';
|
|
2
|
+
export declare const _gslDateTimeInputs: (config: GslDateTimeInputConfig, matcher?: ((decorator: DateTimeInputDecorator) => boolean) | undefined) => import('../../core/dx.domain').GslLeafSelector, _gslDateTimeInputByUid: (uid: string, config: GslDateTimeInputConfig) => import('../../core/dx.domain').GslLeafSelector;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { StringValidator } from '@golemui/gui-validators';
|
|
2
|
+
import { DateTimePickerProps } from '../../../widget.props';
|
|
3
|
+
import { DxCommonFields, DxInputBase } from '../../core/dxBase.types';
|
|
4
|
+
import { DefOrCallback, GslConfigBase, GuiShortcutOf } from '../../core/dxUtilityTypes';
|
|
5
|
+
import { DxValidator } from '../../core/dxValidatorHelper';
|
|
6
|
+
export interface DateTimePickerDecorator extends DxInputBase, DxCommonFields, Partial<DateTimePickerProps> {
|
|
7
|
+
type: 'dateTimePicker';
|
|
8
|
+
validator?: DxValidator<StringValidator>;
|
|
9
|
+
}
|
|
10
|
+
export interface GslDateTimePickerConfig extends GslConfigBase<DateTimePickerDecorator> {
|
|
11
|
+
suppressAutomaticLabels?: boolean;
|
|
12
|
+
suppressAutomaticPlaceholders?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export type DateTimePickerEntry = {
|
|
15
|
+
key: string;
|
|
16
|
+
def: DefOrCallback<DateTimePickerDecorator>;
|
|
17
|
+
};
|
|
18
|
+
export type GuiDateTimePickerShortcut = GuiShortcutOf<'DATE_TIME_PICKER', DateTimePickerEntry>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DxRuntimeParams } from '../../core/dxUtilityTypes';
|
|
2
|
+
import { DateTimePickerDecorator, GuiDateTimePickerShortcut } from './dateTimePicker.domain';
|
|
3
|
+
type DateTimePickerFactoryProps = Omit<DateTimePickerDecorator, 'type'>;
|
|
4
|
+
export declare function _guiDateTimePicker(path: string, props: DateTimePickerFactoryProps): GuiDateTimePickerShortcut;
|
|
5
|
+
export declare function _guiDateTimePicker(path: string, props: DateTimePickerFactoryProps, tags: string[]): GuiDateTimePickerShortcut;
|
|
6
|
+
export declare function _guiDateTimePicker(path: string, callback: (params: DxRuntimeParams) => DateTimePickerFactoryProps, tags?: string[]): GuiDateTimePickerShortcut;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DateTimePickerDecorator, GslDateTimePickerConfig } from './dateTimePicker.domain';
|
|
2
|
+
export declare const _gslDateTimePickers: (config: GslDateTimePickerConfig, matcher?: ((decorator: DateTimePickerDecorator) => boolean) | undefined) => import('../../core/dx.domain').GslLeafSelector, _gslDateTimePickerByUid: (uid: string, config: GslDateTimePickerConfig) => import('../../core/dx.domain').GslLeafSelector;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DxRuntimeParams } from '../../core/dxUtilityTypes';
|
|
2
|
+
import { GuiRangeDateTimeCalendarShortcut, RangeDateTimeCalendarDecorator } from './rangeDateTimeCalendar.domain';
|
|
3
|
+
export declare function _guiRangeDateTimeCalendar(path: string): GuiRangeDateTimeCalendarShortcut;
|
|
4
|
+
export declare function _guiRangeDateTimeCalendar(path: string, props: Partial<Omit<RangeDateTimeCalendarDecorator, 'type'>>): GuiRangeDateTimeCalendarShortcut;
|
|
5
|
+
export declare function _guiRangeDateTimeCalendar(path: string, props: Partial<Omit<RangeDateTimeCalendarDecorator, 'type'>>, tags: string[]): GuiRangeDateTimeCalendarShortcut;
|
|
6
|
+
export declare function _guiRangeDateTimeCalendar(path: string, callback: (params: DxRuntimeParams) => Partial<Omit<RangeDateTimeCalendarDecorator, 'type'>>, tags?: string[]): GuiRangeDateTimeCalendarShortcut;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ArrayValidator } from '@golemui/gui-validators';
|
|
2
|
+
import { RangeDateTimeCalendarProps } from '../../../widget.props';
|
|
3
|
+
import { DxCommonFields, DxInputBase } from '../../core/dxBase.types';
|
|
4
|
+
import { DefOrCallback, GslConfigBase, GuiShortcutOf } from '../../core/dxUtilityTypes';
|
|
5
|
+
import { DxValidator } from '../../core/dxValidatorHelper';
|
|
6
|
+
export interface RangeDateTimeCalendarDecorator extends DxInputBase, DxCommonFields, Partial<RangeDateTimeCalendarProps> {
|
|
7
|
+
type: 'rangeDateTimeCalendar';
|
|
8
|
+
validator?: DxValidator<ArrayValidator>;
|
|
9
|
+
}
|
|
10
|
+
export interface GslRangeDateTimeCalendarConfig extends GslConfigBase<RangeDateTimeCalendarDecorator> {
|
|
11
|
+
suppressAutomaticLabels?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export type RangeDateTimeCalendarEntry = {
|
|
14
|
+
key: string;
|
|
15
|
+
def: DefOrCallback<RangeDateTimeCalendarDecorator>;
|
|
16
|
+
};
|
|
17
|
+
export type GuiRangeDateTimeCalendarShortcut = GuiShortcutOf<'RANGE_DATE_TIME_CALENDAR', RangeDateTimeCalendarEntry>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { GslRangeDateTimeCalendarConfig, RangeDateTimeCalendarDecorator } from './rangeDateTimeCalendar.domain';
|
|
2
|
+
export declare const _gslRangeDateTimeCalendars: (config: GslRangeDateTimeCalendarConfig, matcher?: ((decorator: RangeDateTimeCalendarDecorator) => boolean) | undefined) => import('../../core/dx.domain').GslLeafSelector, _gslRangeDateTimeCalendarByUid: (uid: string, config: GslRangeDateTimeCalendarConfig) => import('../../core/dx.domain').GslLeafSelector;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DxRuntimeParams } from '../../core/dxUtilityTypes';
|
|
2
|
+
import { GuiRangeDateTimeInputShortcut, RangeDateTimeInputDecorator } from './rangeDateTimeInput.domain';
|
|
3
|
+
export declare function _guiRangeDateTimeInput(path: string): GuiRangeDateTimeInputShortcut;
|
|
4
|
+
export declare function _guiRangeDateTimeInput(path: string, props: Partial<Omit<RangeDateTimeInputDecorator, 'type'>>): GuiRangeDateTimeInputShortcut;
|
|
5
|
+
export declare function _guiRangeDateTimeInput(path: string, props: Partial<Omit<RangeDateTimeInputDecorator, 'type'>>, tags: string[]): GuiRangeDateTimeInputShortcut;
|
|
6
|
+
export declare function _guiRangeDateTimeInput(path: string, callback: (params: DxRuntimeParams) => Partial<Omit<RangeDateTimeInputDecorator, 'type'>>, tags?: string[]): GuiRangeDateTimeInputShortcut;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ArrayValidator } from '@golemui/gui-validators';
|
|
2
|
+
import { RangeDateTimeInputProps } from '../../../widget.props';
|
|
3
|
+
import { DxCommonFields, DxInputBase } from '../../core/dxBase.types';
|
|
4
|
+
import { DefOrCallback, GslConfigBase, GuiShortcutOf } from '../../core/dxUtilityTypes';
|
|
5
|
+
import { DxValidator } from '../../core/dxValidatorHelper';
|
|
6
|
+
export interface RangeDateTimeInputDecorator extends DxInputBase, DxCommonFields, Partial<RangeDateTimeInputProps> {
|
|
7
|
+
type: 'rangeDateTimeInput';
|
|
8
|
+
validator?: DxValidator<ArrayValidator>;
|
|
9
|
+
}
|
|
10
|
+
export interface GslRangeDateTimeInputConfig extends GslConfigBase<RangeDateTimeInputDecorator> {
|
|
11
|
+
suppressAutomaticLabels?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export type RangeDateTimeInputEntry = {
|
|
14
|
+
key: string;
|
|
15
|
+
def: DefOrCallback<RangeDateTimeInputDecorator>;
|
|
16
|
+
};
|
|
17
|
+
export type GuiRangeDateTimeInputShortcut = GuiShortcutOf<'RANGE_DATE_TIME_INPUT', RangeDateTimeInputEntry>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { GslRangeDateTimeInputConfig, RangeDateTimeInputDecorator } from './rangeDateTimeInput.domain';
|
|
2
|
+
export declare const _gslRangeDateTimeInputs: (config: GslRangeDateTimeInputConfig, matcher?: ((decorator: RangeDateTimeInputDecorator) => boolean) | undefined) => import('../../core/dx.domain').GslLeafSelector, _gslRangeDateTimeInputByUid: (uid: string, config: GslRangeDateTimeInputConfig) => import('../../core/dx.domain').GslLeafSelector;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DxRuntimeParams } from '../../core/dxUtilityTypes';
|
|
2
|
+
import { GuiRangeDateTimePickerShortcut, RangeDateTimePickerDecorator } from './rangeDateTimePicker.domain';
|
|
3
|
+
export declare function _guiRangeDateTimePicker(path: string): GuiRangeDateTimePickerShortcut;
|
|
4
|
+
export declare function _guiRangeDateTimePicker(path: string, props: Partial<Omit<RangeDateTimePickerDecorator, 'type'>>): GuiRangeDateTimePickerShortcut;
|
|
5
|
+
export declare function _guiRangeDateTimePicker(path: string, props: Partial<Omit<RangeDateTimePickerDecorator, 'type'>>, tags: string[]): GuiRangeDateTimePickerShortcut;
|
|
6
|
+
export declare function _guiRangeDateTimePicker(path: string, callback: (params: DxRuntimeParams) => Partial<Omit<RangeDateTimePickerDecorator, 'type'>>, tags?: string[]): GuiRangeDateTimePickerShortcut;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ArrayValidator } from '@golemui/gui-validators';
|
|
2
|
+
import { RangeDateTimePickerProps } from '../../../widget.props';
|
|
3
|
+
import { DxCommonFields, DxInputBase } from '../../core/dxBase.types';
|
|
4
|
+
import { DefOrCallback, GslConfigBase, GuiShortcutOf } from '../../core/dxUtilityTypes';
|
|
5
|
+
import { DxValidator } from '../../core/dxValidatorHelper';
|
|
6
|
+
export interface RangeDateTimePickerDecorator extends DxInputBase, DxCommonFields, Partial<RangeDateTimePickerProps> {
|
|
7
|
+
type: 'rangeDateTimePicker';
|
|
8
|
+
validator?: DxValidator<ArrayValidator>;
|
|
9
|
+
}
|
|
10
|
+
export interface GslRangeDateTimePickerConfig extends GslConfigBase<RangeDateTimePickerDecorator> {
|
|
11
|
+
suppressAutomaticLabels?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export type RangeDateTimePickerEntry = {
|
|
14
|
+
key: string;
|
|
15
|
+
def: DefOrCallback<RangeDateTimePickerDecorator>;
|
|
16
|
+
};
|
|
17
|
+
export type GuiRangeDateTimePickerShortcut = GuiShortcutOf<'RANGE_DATE_TIME_PICKER', RangeDateTimePickerEntry>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { GslRangeDateTimePickerConfig, RangeDateTimePickerDecorator } from './rangeDateTimePicker.domain';
|
|
2
|
+
export declare const _gslRangeDateTimePickers: (config: GslRangeDateTimePickerConfig, matcher?: ((decorator: RangeDateTimePickerDecorator) => boolean) | undefined) => import('../../core/dx.domain').GslLeafSelector, _gslRangeDateTimePickerByUid: (uid: string, config: GslRangeDateTimePickerConfig) => import('../../core/dx.domain').GslLeafSelector;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DxRuntimeParams } from '../../core/dxUtilityTypes';
|
|
2
|
+
import { GuiRangeTimeInputShortcut, RangeTimeInputDecorator } from './rangeTimeInput.domain';
|
|
3
|
+
export declare function _guiRangeTimeInput(path: string): GuiRangeTimeInputShortcut;
|
|
4
|
+
export declare function _guiRangeTimeInput(path: string, props: Partial<Omit<RangeTimeInputDecorator, 'type'>>): GuiRangeTimeInputShortcut;
|
|
5
|
+
export declare function _guiRangeTimeInput(path: string, props: Partial<Omit<RangeTimeInputDecorator, 'type'>>, tags: string[]): GuiRangeTimeInputShortcut;
|
|
6
|
+
export declare function _guiRangeTimeInput(path: string, callback: (params: DxRuntimeParams) => Partial<Omit<RangeTimeInputDecorator, 'type'>>, tags?: string[]): GuiRangeTimeInputShortcut;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ArrayValidator } from '@golemui/gui-validators';
|
|
2
|
+
import { RangeTimeInputProps } from '../../../widget.props';
|
|
3
|
+
import { DxCommonFields, DxInputBase } from '../../core/dxBase.types';
|
|
4
|
+
import { DefOrCallback, GslConfigBase, GuiShortcutOf } from '../../core/dxUtilityTypes';
|
|
5
|
+
import { DxValidator } from '../../core/dxValidatorHelper';
|
|
6
|
+
export interface RangeTimeInputDecorator extends DxInputBase, DxCommonFields, Partial<RangeTimeInputProps> {
|
|
7
|
+
type: 'rangeTimeInput';
|
|
8
|
+
validator?: DxValidator<ArrayValidator>;
|
|
9
|
+
}
|
|
10
|
+
export interface GslRangeTimeInputConfig extends GslConfigBase<RangeTimeInputDecorator> {
|
|
11
|
+
suppressAutomaticLabels?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export type RangeTimeInputEntry = {
|
|
14
|
+
key: string;
|
|
15
|
+
def: DefOrCallback<RangeTimeInputDecorator>;
|
|
16
|
+
};
|
|
17
|
+
export type GuiRangeTimeInputShortcut = GuiShortcutOf<'RANGE_TIME_INPUT', RangeTimeInputEntry>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { GslRangeTimeInputConfig, RangeTimeInputDecorator } from './rangeTimeInput.domain';
|
|
2
|
+
export declare const _gslRangeTimeInputs: (config: GslRangeTimeInputConfig, matcher?: ((decorator: RangeTimeInputDecorator) => boolean) | undefined) => import('../../core/dx.domain').GslLeafSelector, _gslRangeTimeInputByUid: (uid: string, config: GslRangeTimeInputConfig) => import('../../core/dx.domain').GslLeafSelector;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DxRuntimeParams } from '../../core/dxUtilityTypes';
|
|
2
|
+
import { GuiRangeTimePickerShortcut, RangeTimePickerDecorator } from './rangeTimePicker.domain';
|
|
3
|
+
export declare function _guiRangeTimePicker(path: string): GuiRangeTimePickerShortcut;
|
|
4
|
+
export declare function _guiRangeTimePicker(path: string, props: Partial<Omit<RangeTimePickerDecorator, 'type'>>): GuiRangeTimePickerShortcut;
|
|
5
|
+
export declare function _guiRangeTimePicker(path: string, props: Partial<Omit<RangeTimePickerDecorator, 'type'>>, tags: string[]): GuiRangeTimePickerShortcut;
|
|
6
|
+
export declare function _guiRangeTimePicker(path: string, callback: (params: DxRuntimeParams) => Partial<Omit<RangeTimePickerDecorator, 'type'>>, tags?: string[]): GuiRangeTimePickerShortcut;
|