@vertigis/workflow 5.32.0 → 5.32.1
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/amd/app/AppActivity.d.ts +47 -1
- package/amd/app/AppActivity.js +1 -1
- package/amd/app/RegisterCustomFormElementBase.d.ts +11 -1
- package/amd/bundle.js +1 -1
- package/amd/forms/FormElementOuter.d.ts +3 -2
- package/amd/forms/FormElementOuter.js +1 -1
- package/amd/forms/assets/arrow.js +1 -1
- package/amd/forms/assets/chevron.js +1 -1
- package/amd/forms/assets/cross.js +1 -1
- package/amd/forms/assets/datetime.js +1 -1
- package/amd/forms/assets/remove.js +1 -1
- package/amd/forms/assets/scan.js +1 -1
- package/amd/forms/common.js +1 -1
- package/amd/forms/components/DatePicker.d.ts +1 -1
- package/amd/forms/components/DatePicker.js +1 -1
- package/amd/forms/components/DateRangePicker.d.ts +1 -1
- package/amd/forms/components/DateRangePicker.js +1 -1
- package/amd/forms/components/DateTimePicker.js +1 -1
- package/amd/forms/components/Navigator.js +1 -1
- package/amd/forms/components/NumberRangeSlider.d.ts +1 -1
- package/amd/forms/components/NumberRangeSlider.js +1 -1
- package/amd/forms/components/NumberSlider.d.ts +1 -1
- package/amd/forms/components/NumberSlider.js +1 -1
- package/amd/forms/components/SyntheticButton.js +1 -1
- package/amd/forms/components/TimePickerInput.d.ts +2 -2
- package/amd/forms/components/TimePickerInput.js +1 -1
- package/amd/forms/datetime.js +1 -1
- package/amd/forms/files.js +1 -1
- package/amd/forms/geometry.js +1 -1
- package/amd/forms/number.js +1 -1
- package/amd/forms/presenter.js +1 -1
- package/amd/forms/renderers.js +1 -1
- package/amd/forms/scanner.js +1 -1
- package/amd/forms/selectors.js +1 -1
- package/amd/forms/text.js +1 -1
- package/amd/libs/version.d.ts +1 -1
- package/amd/libs/version.js +1 -1
- package/amd/licensing/LicenseChecker.js +1 -1
- package/amd/licensing/Watermark.js +1 -1
- package/esm/app/AppActivity.d.ts +47 -1
- package/esm/app/AppActivity.js +1 -1
- package/esm/app/RegisterCustomFormElementBase.d.ts +11 -1
- package/esm/app/RegisterCustomFormElementBase.js +1 -1
- package/esm/forms/FormElementOuter.d.ts +3 -2
- package/esm/forms/FormElementOuter.js +1 -1
- package/esm/forms/assets/arrow.js +1 -1
- package/esm/forms/assets/chevron.js +1 -1
- package/esm/forms/assets/cross.js +1 -1
- package/esm/forms/assets/datetime.js +1 -1
- package/esm/forms/assets/remove.js +1 -1
- package/esm/forms/assets/scan.js +1 -1
- package/esm/forms/common.js +1 -1
- package/esm/forms/components/DatePicker.d.ts +1 -1
- package/esm/forms/components/DatePicker.js +1 -1
- package/esm/forms/components/DateRangePicker.d.ts +1 -1
- package/esm/forms/components/DateRangePicker.js +1 -1
- package/esm/forms/components/DateTimePicker.js +1 -1
- package/esm/forms/components/Navigator.js +1 -1
- package/esm/forms/components/NumberRangeSlider.d.ts +1 -1
- package/esm/forms/components/NumberRangeSlider.js +1 -1
- package/esm/forms/components/NumberSlider.d.ts +1 -1
- package/esm/forms/components/NumberSlider.js +1 -1
- package/esm/forms/components/SyntheticButton.js +1 -1
- package/esm/forms/components/TimePickerInput.d.ts +2 -2
- package/esm/forms/components/TimePickerInput.js +1 -1
- package/esm/forms/datetime.js +1 -1
- package/esm/forms/files.js +1 -1
- package/esm/forms/geometry.js +1 -1
- package/esm/forms/number.js +1 -1
- package/esm/forms/presenter.js +1 -1
- package/esm/forms/renderers.js +1 -1
- package/esm/forms/scanner.js +1 -1
- package/esm/forms/selectors.js +1 -1
- package/esm/forms/text.js +1 -1
- package/esm/libs/version.d.ts +1 -1
- package/esm/libs/version.js +1 -1
- package/esm/licensing/LicenseChecker.js +1 -1
- package/esm/licensing/Watermark.js +1 -1
- package/package.json +1 -1
- package/runtime/app/AppActivity.d.ts +47 -1
- package/runtime/app/AppActivity.js +1 -1
- package/runtime/app/RegisterCustomFormElementBase.d.ts +11 -1
- package/runtime/bundle.js +1 -1
- package/runtime/forms/FormElementOuter.d.ts +3 -2
- package/runtime/forms/FormElementOuter.js +1 -1
- package/runtime/forms/assets/arrow.js +1 -1
- package/runtime/forms/assets/chevron.js +1 -1
- package/runtime/forms/assets/cross.js +1 -1
- package/runtime/forms/assets/datetime.js +1 -1
- package/runtime/forms/assets/remove.js +1 -1
- package/runtime/forms/assets/scan.js +1 -1
- package/runtime/forms/common.js +1 -1
- package/runtime/forms/components/DatePicker.d.ts +1 -1
- package/runtime/forms/components/DatePicker.js +1 -1
- package/runtime/forms/components/DateRangePicker.d.ts +1 -1
- package/runtime/forms/components/DateRangePicker.js +1 -1
- package/runtime/forms/components/DateTimePicker.js +1 -1
- package/runtime/forms/components/Navigator.js +1 -1
- package/runtime/forms/components/NumberRangeSlider.d.ts +1 -1
- package/runtime/forms/components/NumberRangeSlider.js +1 -1
- package/runtime/forms/components/NumberSlider.d.ts +1 -1
- package/runtime/forms/components/NumberSlider.js +1 -1
- package/runtime/forms/components/SyntheticButton.js +1 -1
- package/runtime/forms/components/TimePickerInput.d.ts +2 -2
- package/runtime/forms/components/TimePickerInput.js +1 -1
- package/runtime/forms/datetime.js +1 -1
- package/runtime/forms/files.js +1 -1
- package/runtime/forms/geometry.js +1 -1
- package/runtime/forms/number.js +1 -1
- package/runtime/forms/presenter.js +1 -1
- package/runtime/forms/renderers.js +1 -1
- package/runtime/forms/scanner.js +1 -1
- package/runtime/forms/selectors.js +1 -1
- package/runtime/forms/text.js +1 -1
- package/runtime/libs/version.d.ts +1 -1
- package/runtime/libs/version.js +1 -1
- package/runtime/licensing/LicenseChecker.js +1 -1
- package/runtime/licensing/Watermark.js +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
import { Calendar } from "../Calendar";
|
|
3
3
|
export interface TimePickerInputProps {
|
|
4
4
|
/** Indicates what calendar to use for the time picker. */
|
|
@@ -20,5 +20,5 @@ export interface TimePickerInputProps {
|
|
|
20
20
|
/** Indicates the value for the time picker. */
|
|
21
21
|
value?: Date | number | string;
|
|
22
22
|
}
|
|
23
|
-
declare const _default:
|
|
23
|
+
declare const _default: React.ForwardRefExoticComponent<TimePickerInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
24
24
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{useCallback,useRef,useState,forwardRef}from"react";import*as React from"react";import{Calendar}from"../Calendar.js";import{CssClasses}from"../constants.js";import{Navigator}from"./Navigator.js";import{SyntheticButton as Button}from"./SyntheticButton.js";import{TimerManager}from"./TimerManager.js";import{setClass,applyFocusBehavior,scrollIntoView,captureMouseEvents}from"./utils.js";export default forwardRef(({calendar:n,disabled:c,doneText:e,isOpen:t,onChange:a,onPopupToggle:r,placeholder:s,title:o,value:u},l)=>{const i=(n=n||Calendar.useNative()).coerceIntoLocal(u),m=isFinite(i.valueOf())?n.format(i,Calendar.timeFormat):"",[p,d]=useState(i),[v,g]=useState({}),[f,N]=useState(m);let h,R=null,E=void 0,w,C;const k=new TimerManager;let b=[],H;const M=useRef(null),S=useRef(null),B=useRef(null),x=useRef(null),F=useRef(null),T=useRef(null),D=()=>{if(h){O();var a=n.today();let e=i;v===h?e=n.coerceTime(f,p??a):N(m),x.current.setState({tabIndex:c?void 0:0}),F.current.setState({tabIndex:c?void 0:0}),T.current.setState({tabIndex:c?void 0:0});let t="";const s=isFinite(e.valueOf())?e:a;a=n.format(s,Calendar.ampmFormat);0<s.getMilliseconds()&&(t=s.getMilliseconds().toString()),setClass(R,"show-ampm",0<a.length);const r=n.coerceIntoLocal(s);for(const o of b)switch(o.props.className){case"overlay":o.setState({content:t});break;case"value hour":o.setState({content:n.format(s,Calendar.hourFormat)});break;case"value minute":o.setState({content:n.format(s,Calendar.minuteFormat)});break;case"value ampm":o.setState({content:n.format(s,Calendar.ampmFormat)});break;case"item hour":r.setHours(s.getHours()+o.props.index),o.setState({content:n.format(r,Calendar.hourFormat)});break;case"item minute":r.setMinutes(s.getMinutes()+o.props.index),o.setState({content:n.format(r,Calendar.minuteFormat)});break;case"item ampm":r.setHours(s.getHours()+12*o.props.index),o.setState({content:n.format(r,Calendar.ampmFormat)})}p&&p.valueOf()===s.valueOf()||d(s)}},P=e=>{let t=n.coerceIntoLocal(p);t=e(t)||t,isFinite(t.valueOf())?a(n.coerceIntoValue(t)):a(void 0),d(t),N(n.format(t,Calendar.timeFormat))},y=()=>{if(f===m)return!1;{const e=n.coerceTime(f,p);return P(()=>e),d(e),!0}},I=(e,t,a,s)=>{t=((0<a?Math.floor(e/t):Math.ceil(e/t))+a)*t%s;return 0<=t?t:s+t};var Y=e=>{let t=!1;var a=e.key.toLowerCase(),s=Navigator.find(e);if(void 0!==s)switch(s.props.className+"/"+a){case"hours/arrowright":t=!0,P(e=>{e.setHours(I(e.getHours(),3,1,24))});break;case"hours/arrowleft":t=!0,P(e=>{e.setHours(I(e.getHours(),3,-1,24))});break;case"hours/arrowup":t=!0,P(e=>{e.setHours(I(e.getHours(),1,-1,24))});break;case"hours/arrowdown":t=!0,P(e=>{e.setHours(I(e.getHours(),1,1,24))});break;case"minutes/arrowright":t=!0,P(e=>{e.setMinutes(I(e.getMinutes(),15,1,60))});break;case"minutes/arrowleft":t=!0,P(e=>{e.setMinutes(I(e.getMinutes(),15,-1,60))});break;case"minutes/arrowup":t=!0,P(e=>{e.setMinutes(I(e.getMinutes(),1,-1,60))});break;case"minutes/arrowdown":t=!0,P(e=>{e.setMinutes(I(e.getMinutes(),1,1,60))});break;case"toggle/arrowup":case"toggle/arrowdown":t=!0,P(e=>{e.setHours(I(e.getHours(),1,12,24))})}if(e.target===h)switch(a){case"arrowdown":t=!0,r(!0);break;case"enter":t=y()}if("escape"===a&&(t=!0,(()=>{if(v===h){N(m);h.select()}})(),V()),t)return e.stopPropagation(),e.preventDefault(),!1};const O=()=>{var e=n.coerceIntoLocal(new Date);H.setState({content:n.format(e,Calendar.timeClockFormat)})};var j=useCallback(e=>(R=e,null===R?(h=void 0,void k.dispose()):void(void 0!==h&&(b=Button.search(R),H=b.filter(e=>"clock"===e.props.className)[0],applyFocusBehavior(h),D(),t?(setClass(R,"opened",!0),O(),k.repeat("clock",1e3,()=>O()),scrollIntoView(R)):(setClass(R,"opened",!1),k.stop("clock"))))),[t,h,f,m]),L=e=>{w=e.pageY;const t=Navigator.find(e);return void 0!==t&&(t.focus(),captureMouseEvents(e=>((e,t)=>{if(e!==undefined)z(e,t);else A(t)})(e,t))),e.preventDefault(),e.stopPropagation(),!1};const V=()=>{r(!1)},W=e=>{x.current&&!x.current.hasStates()&&(C=p.getHours(),x.current.setState({states:{rolling:!0}}));e=w-e,e=M.current.scrollTo(e);const t=I(C,1,e,24);p.getHours()!==t&&P(e=>{e.setHours(t)})},K=e=>{F.current&&!F.current.hasStates()&&(C=p.getMinutes(),F.current.setState({states:{rolling:!0}}));e=w-e,e=S.current.scrollTo(e);const t=I(C,1,e,60);p.getMinutes()!==t&&P(e=>{e.setMinutes(t)})},q=e=>{T.current&&!T.current.hasStates()&&(C=p.getHours(),T.current.setState({states:{rolling:!0}}));e=w-e,e=B.current.scrollTo(e);const t=I(C,1,12*e,24);p.getHours()!==t&&P(e=>{e.setHours(t)})},z=(e,t)=>{switch(t.props.className){case"hours":return W(e.pageY),!1;case"minutes":return K(e.pageY),!1;case"toggle":return q(e.pageY),!1}},A=e=>{void 0!==e&&e.hasStates()&&e.setState({states:void 0})};u=(e,t)=>{var a=-3;return React.createElement(Navigator,{className:"tape "+e,ref:t},React.createElement(Button,{className:"item "+e,index:a++}),React.createElement(Button,{className:"item "+e,index:a++}),React.createElement(Button,{className:"item "+e,index:a++}),React.createElement(Button,{className:"item "+e,index:a++}),React.createElement(Button,{className:"item "+e,index:a++}),React.createElement(Button,{className:"item "+e,index:+a}),React.createElement(Button,{className:"item "+e,index:3}))};return E?D():E=React.createElement("div",{className:"TimePickerInput"},React.createElement("div",{ref:j,onBlurCapture:e=>{g(void 0),e.target===h&&y()},onClickCapture:e=>{e=Button.find(e);if(void 0!==e){const t=e.props.index;switch(e.props.className){case"up hour":case"down hour":return void P(e=>{e.setHours(I(e.getHours(),1,t,24))});case"value hour":return void P(e=>{e.setHours(I(e.getHours(),3,1,24))});case"up minute":case"down minute":return void P(e=>{e.setMinutes(I(e.getMinutes(),1,t,60))});case"value minute":return void P(e=>{e.setMinutes(I(e.getMinutes(),15,1,60))});case"up ampm":case"down ampm":case"value ampm":return void P(e=>{e.setHours(I(e.getHours(),1,12,24))});case"close":return void V()}}},onFocusCapture:e=>{g(e.target)},onKeyDownCapture:Y,onWheelCapture:t=>{let e=!1;const a=Navigator.find(t);if(void 0!==a)switch(a.props.className){case"hours":e=!0,P(e=>{e.setHours(I(e.getHours(),1,0<t.deltaY?-1:1,24))});break;case"minutes":e=!0,P(e=>{e.setMinutes(I(e.getMinutes(),1,0<t.deltaY?-1:1,60))});break;case"toggle":e=!0,P(e=>{e.setHours(I(e.getHours(),12,1,24))})}if(e)return a.focus(),t.stopPropagation(),t.preventDefault(),!1}},React.createElement("div",{className:"editor"},React.createElement(Button,{className:"overlay"}),React.createElement("input",{"aria-label":"Time Picker",disabled:c,onChange:e=>{N(e.target.value)},placeholder:s,ref:e=>{"function"==typeof l?l(e):l.current=e,h=e},title:o,type:"text",value:f})),React.createElement("div",{className:CssClasses.DROPDOWN,onTouchStart:e=>{w=e.touches[0].pageY;const t=Navigator.find(e);if(void 0!==t)switch(t.focus(),t.props.className){case"hours":case"minutes":case"toggle":return e.preventDefault(),e.stopPropagation(),!1}},onTouchEnd:e=>{const t=Navigator.find(e);if(void 0!==t&&t.hasStates())return t.setState({states:void 0}),e.preventDefault(),e.stopPropagation(),!1},onTouchMove:e=>{var t=Navigator.find(e);if(void 0!==t)switch(t.props.className){case"hours":return W(e.touches[0].pageY),e.preventDefault(),e.stopPropagation(),!1;case"value minute":return K(e.touches[0].pageY),e.preventDefault(),e.stopPropagation(),!1;case"value ampm":return q(e.touches[0].pageY),e.preventDefault(),e.stopPropagation(),!1}},onMouseDown:L},React.createElement("div",{className:"rollers"},React.createElement("div",{className:"side"},React.createElement(Button,{className:"close",ariaLabel:e})),React.createElement("div",{className:"main"},React.createElement(Navigator,{className:"hours",ref:x},React.createElement("div",{className:"buttons"},React.createElement(Button,{className:"up hour",index:1}),React.createElement(Button,{className:"value hour"}),React.createElement(Button,{className:"down hour",index:-1})),React.createElement("div",{className:"tape marker"}),u("hour",M)),React.createElement(Navigator,{className:"minutes",ref:F},React.createElement("div",{className:"buttons"},React.createElement(Button,{className:"up minute",index:1}),React.createElement(Button,{className:"value minute"}),React.createElement(Button,{className:"down minute",index:-1})),React.createElement("div",{className:"tape marker"}),u("minute",S)),React.createElement(Navigator,{className:"toggle",ref:T},React.createElement("div",{className:"buttons"},React.createElement(Button,{className:"up ampm"}),React.createElement(Button,{className:"value ampm"}),React.createElement(Button,{className:"down ampm"})),React.createElement("div",{className:"tape marker"}),u("ampm",B))),React.createElement("div",{className:"bottom"},React.createElement(Button,{className:"clock"})))))),E});
|
package/esm/forms/datetime.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import*as React from"react";import DateRangePicker from"./components/DateRangePicker.js";import DateTimePicker from"./components/DateTimePicker.js";function renderDateRangePicker(e,r){return React.createElement(DateRangePicker,{component:e,element:r})}function renderDateTimePicker(e,r){return React.createElement(DateTimePicker,{component:e,element:r})}export{renderDateRangePicker,renderDateTimePicker};
|
package/esm/forms/files.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import*as React from"react";import FormElementOuter from"./FormElementOuter.js";import{renderCrossAdd,renderRemove}from"./assets/stock.js";import{renderFocus}from"./common.js";import{CssClasses}from"./constants.js";import{isFilesRef,makeSafeClassName}from"./utils.js";function renderFilePicker(a,s){const{host:r,name:t}=a.props;var e=s.size;let n=s.value,i=5,l;"number"==typeof e&&(i=1<e?Math.ceil(e):1),n&&(isFilesRef(n)&&Array.isArray(n.files)||(s.value=n=void 0));var c=r.renderText(s.tooltip);let o=a.enabled;const m=[];if(void 0!==n){o=a.enabled&&n.files.length<i;for(const u of n.files){var d=m.length;m.push(React.createElement("div",{className:"file",key:"$"+d},React.createElement("div",null,React.createElement("label",null,u.name),React.createElement("button",{"aria-label":r.renderText("@file-picker-remove-item-label"),className:"delete",disabled:!a.enabled,ref:e=>renderFocus(e,t,r),onClick:(e=>()=>{1<n.files.length?n.files.splice(e,1):s.value=void 0,a.forceUpdate(),r.post("changed",{name:t,value:s.value})})(d)},renderRemove()))))}}const f=e=>{if(e){var t=e.getAttribute("class");if(/\bneedsclick\b/.test(t)||e.setAttribute("class",t?t+" needsclick":"needsclick"),"svg"!==e.tagName){var l=e.children;for(let e=0;e<l.length;e++)f(l[e])}}};m.push(React.createElement("div",{className:"add-file",key:"footer"},React.createElement("button",{className:"add",disabled:!o,title:c,ref:e=>{renderFocus(e,t,r),f(e)},onClick:()=>{l.value=null,l.click()}},renderCrossAdd(),React.createElement("div",{className:"inline",dangerouslySetInnerHTML:{__html:r.renderHtml(s.prompt)}}))));const p=[s.type,makeSafeClassName(t)];e=1!==i;return React.createElement(FormElementOuter,{className:p.join(" "),component:a,element:s,errorClassName:CssClasses.ERROR},React.createElement("div",{className:"items"},m),React.createElement("input",{type:"file",style:{display:"none"},title:c,onChange:e=>(e=>{var t=e.files;if(t?.length){const l=n?.files||[];for(let e=0;e<t.length&&l.length!==i;e++)l.push(t[e]);e={refValueType:"files",files:l};s.value=e,a.forceUpdate(),r.post("changed",{name:a.props.name,value:e})}})(e.target),multiple:e,accept:s.fileTypes,ref:e=>{l=e}}))}export{renderFilePicker};
|
package/esm/forms/geometry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Component}from"react";import*as React from"react";import FormElementOuter from"./FormElementOuter.js";import{renderCrossAdd,renderArrowRollup,renderRemove}from"./assets/stock.js";import{renderFocus}from"./common.js";import{CssClasses}from"./constants.js";import{getKeyString}from"./keyboard.js";import{makeSafeClassName,sanitizeGeometryRef,setClass,text}from"./utils.js";class StateTrackingElement extends Component{render(){return React.createElement("div",{ref:e=>this.root=e,...this.props})}}function renderGeometryPicker(t,n){var e=t.props;const a=e.name,s=e.host;let r=5;var o=n.size;"number"==typeof o&&(r=1<o?Math.ceil(o):1);let c,l,d="✎",i=n.value=sanitizeGeometryRef(n.value);void 0!==i&&(c=i.geometry,R=n.itemLabel,Array.isArray(R)?l=R:(l=[],text.isMarkdown(R)?R.markdown&&(d=R):text.isStatus(R)?R.status&&(d=R.status):R&&(d=R)));let m=n.state;function u(e){let t=m[e];return void 0!==t&&null!==t||(m.length<=e&&(m.length=e,m.push({})),t=m[e]),t}void 0!==m&&null!==m||(m=n.state=[]);const p=t.enabled;function f(t,n=!0){let r;function o(){const e=u(t);e.checked=p&&r.checked,e.focused=p&&r.focused,e.pending=p&&r.pending,n&&s.renderState(a,"geometry",m),setClass(r.root,"checked",e.checked),setClass(r.root,"focus",e.focused),setClass(r.root,"hover",e.pending)}return{ref(e){r=e,null!==r&&o()},onChangeCapture:function(e){r&&(r.checked=null!==e.currentTarget.querySelector("input:checked"),o())},onFocusCapture:function(e){r&&(r.focused=!0,o())},onBlurCapture:function(){r&&(r.focused=!1,o())},onMouseOver:function(){r&&(r.pending=!0,o())},onMouseOut:function(){r&&(r.pending=!1,o())},onKeyDownCapture(e){p&&"delete"===getKeyString(e)&&void 0!==u(t).content&&h(t)()}}}function h(e){return function(){1<c.length?(c.splice(e,1),m.splice(e,1),e<l.length&&l.splice(e,1)):(n.value=void 0,n.state=void 0),t.forceUpdate(),s.post("changed",{name:a,value:i})}}let g=t.enabled;const v=[];if(void 0!==i){g=t.enabled&&i.geometry.length<r;for(const b of i.geometry){const y=v.length;u(y).content=b;var C={__html:s.renderHtml(l[y]||d)};v.push(React.createElement(StateTrackingElement,{className:"shape",key:"$"+y,...f(y)},React.createElement("div",null,React.createElement("label",null,React.createElement("input",{type:"checkbox",disabled:!t.enabled,ref:function(t){return function(e){null!==e&&(e.disabled||s.renderFocus(e,a),e.checked=u(t).checked)}}(y)}),React.createElement("div",{className:"inline",dangerouslySetInnerHTML:C})),React.createElement("button",{className:"delete",disabled:!t.enabled,ref:e=>renderFocus(e,a,s),onClick:h(y)},renderRemove()))))}}function k(){s.post("clicked",{name:a,value:i})}e={__html:s.renderHtml(n.prompt)},o=s.renderText(n.tooltip);const y=v.length;var R=t.enabled&&void 0!==i;v.push(React.createElement(StateTrackingElement,{className:"add-shape",key:"footer",...f(y,!1)},React.createElement("button",{className:"add",disabled:!g,title:o,ref:e=>renderFocus(e,a,s),onClick:k},renderCrossAdd(),React.createElement("div",{className:"inline",dangerouslySetInnerHTML:e})),React.createElement("button",{className:"clear",disabled:!R,ref:e=>renderFocus(e,a,s),onClick:function(){i=n.value=void 0,t.forceUpdate(),s.post("changed",{name:a,value:i})}},renderArrowRollup())));const E=[n.type,makeSafeClassName(a)];return 1===r&&E.push(CssClasses.SINGLE),void 0!==i&&i.geometry.length>=r&&E.push(CssClasses.FULL),t.enabled&&n.autoActivate&&(g&&setTimeout(()=>k()),delete n.autoActivate),React.createElement(FormElementOuter,{className:E.join(" "),component:t,element:n,errorClassName:CssClasses.ERROR,ref:function(e){null===e&&s.renderState(a,"geometry")}},React.createElement("div",{className:"items"},v))}export{renderGeometryPicker};
|
package/esm/forms/number.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{lazy,Suspense}from"react";import*as React from"react";import FormElementOuter from"./FormElementOuter.js";import{CssClasses}from"./constants.js";import{getKeyString}from"./keyboard.js";import{isNumberRef,isString,makeSafeClassName}from"./utils.js";const NumberRangeSlider=lazy(()=>import("./components/NumberRangeSlider")),NumberSlider=lazy(()=>import("./components/NumberSlider"));function renderNumberRangeSlider(e,r){return React.createElement(Suspense,{fallback:null},React.createElement(NumberRangeSlider,{component:e,element:r}))}function renderNumberSlider(e,r){return React.createElement(Suspense,{fallback:null},React.createElement(NumberSlider,{component:e,element:r}))}function renderRangeFormat(e,r){return r=null==(r=isNumberRef(e)?e.format:r)?{}:r}function renderNumber(n,t){const r=n.props.name,o=n.props.host;let u=renderRangeFormat(t.value,t.format),a=u.precision;"number"==typeof a&&0*a==0||(a=3);const l=Math.pow(10,-1*a);let e=Math.round(u.step/l)*l;"number"==typeof e&&0*e<e||(e=void 0);let m=Math.floor(u.lowerBound/l)*l;"number"==typeof m&&0*m==0||(m=void 0);let i=Math.ceil(u.upperBound/l)*l;"number"==typeof i&&0*i==0||(i=void 0),void 0!==m&&void 0!==i&&i<=m&&(m=void 0,i=void 0);const s=[CssClasses.NUMERIC,makeSafeClassName(r)];void 0!==e&&s.push(CssClasses.STEPPER),u={precision:a,step:e,lowerBound:m,upperBound:i};const c={useGrouping:!0,minimumFractionDigits:0<a?a:0,maximumFractionDigits:0<a?a:0};function p(r){if(void 0===(r=function(e){if("string"==typeof e){if(e.length<1)return;e=Number(e)}if("number"==typeof e&&0*e==0)return void 0!==i&&e>i&&(e=i),void 0!==m&&e<m&&(e=m),Math.round(e/l)*l}(r)))return t.value=void 0,"";{t.value={refValueType:"number",format:u,display:o.formatNumber(r,c),numeric:r};let e=a;return e=20<e?20:e,e=e<0?0:e,r.toFixed(e)}}let f=null,d=("number"==typeof(b=t.value)?.numeric&&(b=b.numeric),p("number"==typeof(b=isString(b)?o.coerceNumber(b):b)?b:void 0));var b;function v(e){return e=p(e),f.value=e,d!==e&&(d=e,o.post("changed",{name:r,value:t.value}),1)}var N=o.renderText(t.prompt),g=o.renderText(t.tooltip);return React.createElement(FormElementOuter,{className:s.join(" "),component:n,element:t,errorClassName:CssClasses.ERROR,htmlElementType:"label",ref:function(e){null!==e&&null===e.querySelector("*:focus")&&(f.value=d,o.renderFocus(f,r))}},React.createElement("input",{placeholder:N,title:g,type:"number",disabled:!n.enabled,min:m,max:i,step:e,onKeyDown:function(e){var r=getKeyString(e);if("enter"===r&&v(f.value))return f.select(),e.preventDefault(),e.stopPropagation(),!1;"escape"===r&&(f.value=d,f.select()),n.autoInput=!1},onFocus:function(){f.select()},onMouseDown:function(){n.autoInput=!0},onChange:function(){n.autoInput&&(v(f.value),f.select())},onBlur:function(){v(f.value)},ref:function(e){f=e}}))}export{renderNumberRangeSlider,renderNumberSlider,renderNumber};
|
package/esm/forms/presenter.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{createElement}from"react";import*as React from"react";import{unmountComponentAtNode,render as reactRender}from"react-dom";import{FormComponent}from"./FormComponent.js";import*as renderers from"./renderers.js";function refresh(e){e instanceof FormComponent&&e.forceUpdate()}function refreshForm(e,r){reactRender(React.createElement(FormComponent,{host:e,type:"form"}),r)}function releaseForm(e){unmountComponentAtNode(e)}function render(e){if(e instanceof FormComponent){switch(e.props.type){case"form":return renderers.renderForm(e);case"header":return renderers.renderHeader(e);case"main":return renderers.renderMain(e);case"footer":return renderers.renderFooter(e);case"body":return renderers.renderBody(e);case"row":return renderers.renderRow(e);case"section":return renderers.element.renderSection(e,e.prepare());case"element":break;default:return}var r=e.prepare();if(null==r)return;var n=r.type;if("string"!=typeof n)return;if("Custom"===n)return e.props.host.renderCustom(e,r);if(e.elementRegistration)return createElement(e.elementRegistration.component,renderers.getElementProps(e,r));const t=renderers.element["render"+n];if("function"==typeof t)return t(e,r)}}function renderNone(e){if(e instanceof FormComponent)return renderers.renderNone(e)}export{refresh,refreshForm,releaseForm,render,renderNone};
|
package/esm/forms/renderers.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{createElement}from"react";import*as React from"react";import{FormComponent,FormElement}from"./FormComponent.js";import*as defs from"./FormDefinition.js";import FormElementOuter from"./FormElementOuter.js";import{renderChevronDown,renderChevronUp}from"./assets/stock.js";import{renderDescription,renderTitle,renderError,renderFocus}from"./common.js";import{CssClasses,FormElementTypes,Orientation}from"./constants.js";import*as datetime from"./datetime.js";import*as files from"./files.js";import*as geometry from"./geometry.js";import{getKeyString}from"./keyboard.js";import*as number from"./number.js";import*as scanner from"./scanner.js";import*as selectors from"./selectors.js";import*as text from"./text.js";import{makeSafeClassName,sort,makeUniqueId}from"./utils.js";function renderForm(e){const o=e.props.host,n={host:o,type:"header",children:[]},s={host:o,type:"body",children:[]},m={host:o,type:"main",children:[]},a={host:o,type:"footer",children:[]},r={host:o,type:"body",children:[]},l={},c=[];function t(e){if(void 0===e)return s;if("header"===e)return n;if("footer"===e)return a;let r;r="object"==typeof e?e.name:e;let t=(e=>{for(const r of c)if(r.name===e)return r})(r);return void 0===t&&(t={host:o,name:r,type:"section",children:[]},c.push(t)),t}function i(e){return"Section"!==e}function d(e){return e===n||e===s||e===a?`${e.type}-section`:e.name}const p=sort(e.props.host.form.elements);for(const R in p){var u,f=p[R];if(!0!==(h=f).hoisted&&(!1!==h.visible&&i(h.type)))if(!0!==f.overlay){let e=t(f.section);void 0!==f.rowNumber&&(u=d(e),e=function(e,r){let t=l[r];t=t||(l[r]=[]);let n=t[e];return void 0===n&&(n=t[e]={host:o,type:"row",children:[]}),n}(f.rowNumber,u)),e.children.push(React.createElement(FormElement,{key:R,host:o,type:"element",name:R}))}else r.children.push(React.createElement(FormElement,{key:R,host:o,type:"element",name:R}))}var h,y;const E=[];if(0<n.children.length&&E.push(React.createElement(FormComponent,{key:"header",...n})),0<r.children.length)E.push(React.createElement(FormComponent,{key:"main",...r}));else{v(s);for(const N of c)y=N.name,null!=(y=p[y])&&(i(y.type)||!0===y.hoisted||!1===y.visible)||v(t(N.name));0<m.children.length&&E.push(React.createElement(FormComponent,{key:"main",...m}))}function v(e){var r=e===s?"body":`$${e.name}`,t=d(e),n=l[t];if(n)for(const a of Object.keys(n).sort((e,r)=>parseInt(e)-parseInt(r))){var o=n[a];1<o.children.length?e.children.push(React.createElement(FormComponent,{key:"row",...o})):1===o.children.length&&e.children.push(...o.children)}0<e.children.length&&m.children.push(React.createElement(FormComponent,{key:r,...e}))}return 0<a.children.length&&E.push(React.createElement(FormComponent,{key:"footer",...a})),React.createElement("div",{className:"gcx-forms defaults custom",ref:function(e){o.renderFocus(e)},onKeyDown:function(e){"enter"===getKeyString(e)&&(e.target instanceof HTMLButtonElement||o.post("clicked"))}},E)}function renderHeader(e){return React.createElement("div",{className:"Header"},e.props.children)}function renderFooter(e){return React.createElement("div",{className:"Footer"},e.props.children)}function renderBody(e){return React.createElement("div",{className:"Body"},e.props.children)}function renderRow(e){return React.createElement("div",{className:"Row"},e.props.children)}function renderMain(e){return React.createElement("div",{className:"Main"},e.props.children)}function renderNone(e){return React.createElement("div",{className:"None"},"--- Unsupported Form Element (name=",e.props.name,") ---")}var element;function getElementProps(e,r){return{...r,element:r,name:e.props.name,enabled:r.enabled,setProperty:e.setProperty,setValue:e.setValue,raiseEvent:e.raiseEvent,value:r.value}}!function(e){e.renderNumber=number.renderNumber,e.renderNumberRangeSlider=number.renderNumberRangeSlider,e.renderNumberSlider=number.renderNumberSlider,e.renderAutoComplete=selectors.renderAutoComplete,e.renderCheckBox=selectors.renderCheckBox,e.renderCheckGroup=selectors.renderCheckGroup,e.renderDropDownList=selectors.renderDropDownList,e.renderItemPicker=selectors.renderItemPicker,e.renderListBox=selectors.renderListBox,e.renderRadioGroup=selectors.renderRadioGroup,e.renderPasswordBox=text.renderPasswordBox,e.renderTextArea=text.renderTextArea,e.renderTextBox=text.renderTextBox,e.renderDatePicker=datetime.renderDateTimePicker,e.renderDateRangePicker=datetime.renderDateRangePicker,e.renderTimePicker=datetime.renderDateTimePicker,e.renderDateTimePicker=datetime.renderDateTimePicker,e.renderGeometryPicker=geometry.renderGeometryPicker,e.renderFilePicker=files.renderFilePicker,e.renderScanner=scanner.renderScanner,e.renderSection=function(r,t){const n=r.props.host,o=r.props.name;let e=void 0;null!=t&&t.format&&(e=t.format),e=void 0!==e&&null!==e?e:defs.DEFAULT_SECTION_FORMAT;const a="accordion-section"===e;var s=a||"collapsible-section"===e;const m=[t.type,makeSafeClassName(o),e];t.styleName&&m.push(makeSafeClassName(t.styleName));let l=null,c;var i=makeUniqueId(o);let d="content";if(s){let e="form-element-title";t.collapsed&&(e+=" collapsed",d+=" collapsed");var p=(t.collapsed?renderChevronDown:renderChevronUp)();l=renderTitle(t,n,i,"caption"),c=React.createElement("button",{className:e,onClick:function(){a&&t.collapsed?n.updateAccordionSections(o):(t.collapsed=!t.collapsed,r.forceUpdate())},ref:e=>renderFocus(e,o,n)},l||React.createElement("span",{className:"caption"}),p)}else l=renderTitle(t,n,i),c=l;var u=renderDescription(t,n,i),s=renderError(t,n),p=l?.props?.id,i=u?.props?.id;return React.createElement("div",{"aria-labelledby":p,"aria-describedby":i,className:m.join(" ")},c,React.createElement("div",{className:d},u,s,r.props.children))},e.renderHorizontalRule=function(e,r){e=e.props.name;const t=[FormElementTypes.HORIZONTALRULE,makeSafeClassName(e)];return r.styleName&&t.push(makeSafeClassName(r.styleName)),React.createElement("hr",{className:t.join(" ")})},e.renderText=function(e,r){var t=e.props.name;const n=[r.type,makeSafeClassName(t)];return React.createElement(FormElementOuter,{className:n.join(" "),component:e,element:r})},e.renderImage=function(e,r){const{host:t,name:n}=e.props;let o,a;var s=r.size;"number"==typeof s&&(a=s,o=s),"object"==typeof s&&("number"==typeof s.width&&(o=s.width),"number"==typeof s.height&&(a=s.height));let m=void 0;"string"==typeof(s=r.value)&&(m=s);const l=[r.type,makeSafeClassName(n)];return s=t.renderText(r.tooltip),React.createElement(FormElementOuter,{className:l.join(" "),component:e,element:r},React.createElement("img",{src:m,title:s,width:o,height:a}))},e.renderButtonBar=function(e,r){const{host:n,name:o}=e.props;var t=sort(r.items);let a=void 0;const s=[];for(const h in t){var m=t[h],l=e.enabled&&!1!==m.enabled&&!1!==m.visible,c={__html:n.renderHtml(m.label,defs.HTMLContentCategory.Phrasing)},i=n.renderText(m.tooltip),d=t[h].value;l&&void 0===a&&(a=h);var p=m.styleName?makeSafeClassName(m.styleName):void 0;!1!==m.visible&&s.push(React.createElement("button",{className:p,key:h,disabled:!l,title:i,ref:function(r){return function(e){null!==e&&r===a&&n.renderFocus(e,o)}}(h),onClick:function(r,t){return function(e){n.post("clicked",{name:o,item:r,value:t})}}(h,d),dangerouslySetInnerHTML:c}))}const u=[r.type,makeSafeClassName(o)],f=["items"];return r.orientation===Orientation.VERTICAL&&f.push("vertical"),React.createElement(FormElementOuter,{className:u.join(" "),component:e,element:r,errorClassName:CssClasses.ERROR},React.createElement("div",{className:f.join(" ")},s))},e.renderCustom=function(e,r){var t=e.props.name;e.elementRegistration||console.warn(`Unable to render custom form element '${t}' of type '${r.customType}'.`);const n=[r.type,makeSafeClassName(t)];return React.createElement(FormElementOuter,{className:n.join(" "),component:e,element:r,errorClassName:CssClasses.ERROR},e.elementRegistration?createElement(e.elementRegistration.component,getElementProps(e,r)):`--- ${r.customType} ---`)}}(element=element||{});export{renderForm,renderHeader,renderFooter,renderBody,renderRow,renderMain,renderNone,element,getElementProps};
|
package/esm/forms/scanner.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{useState,useEffect,useRef}from"react";import*as React from"react";import FormElementOuter from"./FormElementOuter.js";import{renderRemove,renderScanBarcode,renderScanQrcode,renderScanMulti}from"./assets/stock.js";import{useFocusCallback}from"./common.js";import{CssClasses,ScanType,SCANNER_DEFAULT_ROW_COUNT}from"./constants.js";import{getKeyString}from"./keyboard.js";import{isScanRef,makeSafeClassName}from"./utils.js";function renderScanner(e,a){return React.createElement(Scanner,{component:e,element:a})}const CAMERA_READY_TIMEOUT_MS=1500;var EntryMethod;!function(e){e.Camera="camera",e.Manual="manual"}(EntryMethod=EntryMethod||{});const convertToScanRef=(e,a,t)=>{var r=typeof e,r="number"==r||"string"==r?e.toString():e?.value?.toString();if(r)return a=a||e?.entryMethod||EntryMethod.Manual,{refValueType:"scan",value:r,scanType:t=t||e?.scanType,entryMethod:a}},Scanner=e=>{const[t,o]=useState(),[a,r]=useState(""),[n,c]=useState(!1),[s,l]=useState(!0),m=useRef(),{component:i,element:d}=e,{host:u,name:p}=i.props;var E="barcode"!==d.scanType;let v=d.value;useEffect(()=>(c(!0),()=>c(!1)),[]),useEffect(()=>{n&&d.enabled&&d.autoActivate&&(d.autoActivate=!1,R())},[n]),useEffect(()=>{const e=()=>{l(!1),setTimeout(()=>{n&&l(!0)},CAMERA_READY_TIMEOUT_MS)};return t&&e(),()=>{t&&(t.reset(),e())}},[t]);var y=useFocusCallback(i);useEffect(()=>{!isScanRef(v)&&v&&(d.value=v=convertToScanRef(v));var e=v?.value||"";a!==e&&r(e)},[v]);var S=u.renderText(d.tooltip);const f=(e,a,t)=>{e&&v?.value!==e&&(t=convertToScanRef(e,a,t),d.value=t,r(e),u.post("changed",{name:i.props.name,value:t}))},C=async e=>{var a=await import("@zxing/library");let t=void 0;return e===ScanType.QrCode?t=[a.BarcodeFormat.QR_CODE,a.BarcodeFormat.DATA_MATRIX,a.BarcodeFormat.AZTEC,a.BarcodeFormat.PDF_417,a.BarcodeFormat.MAXICODE]:e===ScanType.BarCode&&(t=[a.BarcodeFormat.CODABAR,a.BarcodeFormat.CODE_39,a.BarcodeFormat.CODE_93,a.BarcodeFormat.CODE_128,a.BarcodeFormat.EAN_8,a.BarcodeFormat.EAN_13,a.BarcodeFormat.ITF,a.BarcodeFormat.RSS_14,a.BarcodeFormat.RSS_EXPANDED,a.BarcodeFormat.UPC_A,a.BarcodeFormat.UPC_E]),t},R=async()=>{if(t)return o(null),void u.post("cancel",{name:i.props.name,type:"cancel"});var e;const a=await import("@zxing/library");n&&(e=await(async e=>{var a=await import("@zxing/library"),e=await C(e);const t=new Map;return t.set(a.DecodeHintType.POSSIBLE_FORMATS,e),t})(d.scanType),e=new a.BrowserMultiFormatReader(e),o(e),await(async e=>{try{var a=await e.listVideoInputDevices();if(!a||0==a.length)throw new DOMException("No video input devices detected.");const r=await e.decodeOnceFromVideoDevice(void 0,m.current),n=await C(ScanType.QrCode);var t=n.indexOf(r.getBarcodeFormat())<0?ScanType.BarCode:ScanType.QrCode;f(r.toString(),EntryMethod.Camera,t),o(null)}catch(e){e instanceof DOMException&&(d.error=e.message,o(null))}})(e))};var T=e=>{t&&o(null),f(e.currentTarget.value,EntryMethod.Manual)},e=e=>{r(e.currentTarget.value)};const F=[d.type,makeSafeClassName(p)];return React.createElement(FormElementOuter,{className:F.join(" "),component:i,element:d,errorClassName:CssClasses.ERROR},React.createElement("div",{className:"items"},React.createElement("div",{className:"scanner-container"},React.createElement("video",{className:"video-element",hidden:!t,ref:m}),React.createElement("div",{className:"user-controls"},E?React.createElement("textarea",{className:"manual-entry",disabled:!(i.enabled&&d.manualEntry),onBlur:T,onChange:e,onKeyDown:e=>e.stopPropagation(),ref:y,rows:d.size||SCANNER_DEFAULT_ROW_COUNT,spellCheck:!1,title:S,value:a}):React.createElement("input",{className:"manual-entry",disabled:!(i.enabled&&d.manualEntry),onBlur:T,onChange:e,onKeyDown:e=>{var a=e.currentTarget;"enter"===getKeyString(e)&&(e.stopPropagation(),t&&o(null),f(a.value,EntryMethod.Manual))},ref:y,title:S,type:"text",value:a}),React.createElement("button",{className:t?"scan activated":"scan",disabled:!(i.enabled&&s),title:S,onClick:e=>R(),ref:y},(t?renderRemove:d.scanType===ScanType.BarCode?renderScanBarcode:d.scanType===ScanType.QrCode?renderScanQrcode:renderScanMulti)())))))};export{renderScanner};
|
package/esm/forms/selectors.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ExclusiveTimer}from"./ExclusiveTimer.js";import*as defs from"./FormDefinition.js";import FormElementOuter from"./FormElementOuter.js";import{renderFocus}from"./common.js";import{CssClasses,Orientation}from"./constants.js";import{getKeyString}from"./keyboard.js";import{isDataRef,isGeometryRef,makeSafeClassName,sortItems,setClass}from"./utils.js";function renderCheckBox(e,n){const{host:o,name:s}=e.props,t=n.value;var r={__html:o.renderHtml(n.label)},a=o.renderText(n.tooltip);const l=[n.type,makeSafeClassName(s)];return _jsx(FormElementOuter,{className:l.join(" "),component:e,element:n,errorClassName:CssClasses.ERROR,children:_jsxs("label",{className:"items",title:a,children:[_jsx("input",{type:"checkbox",disabled:!e.enabled,ref:function(e){function t(){setClass(e.parentElement,"focus",document.activeElement===e)}null!==e&&(e.disabled||o.renderFocus(e,s),e.checked=n.checked=!0===n.checked,e.onfocus=t,(e.onblur=t)())},onChange:function(e){e=n.checked=e.currentTarget.checked,o.post("changed",{name:s,value:e?t:void 0})}},void 0),_jsx("div",{className:"inline",dangerouslySetInnerHTML:r},void 0)]},void 0)},void 0)}function renderCheckGroup(e,o){const{host:s,name:r}=e.props,a=sortItems(o);function l(){const e=[];for(const n in a){var t=a[n];t.checked&&e.push(t)}0===e.length?o.value=void 0:o.value={refValueType:"items",items:e}}o.current=void 0,l();const t=[];for(const v in a){const f=a[v];f.checked=!0===f.checked;var n=e.enabled&&!1!==f.enabled,i=s.renderText(f.tooltip),c={__html:s.renderHtml(f.label)},d=f.styleName?makeSafeClassName(f.styleName):void 0;t.push(_jsxs("label",{className:d,title:i,children:[_jsx("input",{type:"checkbox",disabled:!n,ref:function(n){return function(e){function t(){setClass(e.parentElement,"focus",document.activeElement===e)}null!==e&&(e.disabled||s.renderFocus(e,r),e.checked=!0===a[n].checked,e.onfocus=t,(e.onblur=t)())}}(v),onChange:function(t,n){return function(e){e=a[t].checked=e.currentTarget.checked;l(),s.post("changed",{name:r,item:t,value:e?n:void 0})}}(v,f.value)},void 0),_jsx("div",{className:"inline",dangerouslySetInnerHTML:c},void 0)]},v))}const u=[o.type,makeSafeClassName(r)],m=["items"];return o.orientation===Orientation.HORIZONTAL&&m.push("horizontal"),_jsx(FormElementOuter,{className:u.join(" "),component:e,element:o,errorClassName:CssClasses.ERROR,children:_jsx("div",{className:m.join(" "),children:t},void 0)},void 0)}function renderItemPicker(s,r){const{host:l,name:i}=s.props,c=r.items;let d,a,u,m=r.state;function v(){const e=[];for(const n in c){var t=c[n];t.checked&&e.push(t)}d=0===e.length?r.value=void 0:r.value={refValueType:"items",items:e}}function f(e,t=!0){let n=m.keyToIndex[e];if(null==n||null===n){if(!t)return;m.keyToIndex[e]=m.length,m.push({}),n=m.keyToIndex[e]}return m[n]}function p(e,t){c[e].checked=!!t,f(e).checked=t}function e(r,a){return function(e){var t,n=!!e.currentTarget.checked||void 0;if(t=a,e=n,c[t].checked!==e){if("checkbox"===r)p(a,n);else if(n)for(const s in c){var o=s===a||void 0;p(s,o)}v(),l.post("changed",{name:i,value:d}),l.renderState(i,"geometry",m)}}}function t(e){f(e.currentTarget.dataset.id).pending=!0,l.renderState(i,"geometry",m)}function n(e){delete f(e.currentTarget.dataset.id).pending,l.renderState(i,"geometry",m)}function o(e){f(e.currentTarget.dataset.id).focused=!0,l.renderState(i,"geometry",m)}function h(e){delete f(e.currentTarget.dataset.id).focused,l.renderState(i,"geometry",m)}v(),function(){void 0!==m&&null!==m||(m=r.state=[]),m.keyToIndex||(m.keyToIndex={});const e={};for(const n in r.items){var t=f(n,!1);t&&(e[n]=t)}m=r.state=[],m.keyToIndex={};for(const o in e)m.keyToIndex[o]=m.length,m.push(e[o])}();const b=[];let g;switch(r.selectionMode){case"single":g="radio";break;case"multiple":g="checkbox"}for(const E in c){var x,y,C,k,N=c[E];f(E).content=function(e){if(e){if(isGeometryRef(e))return e.geometry;if(isDataRef(e)&&e.data)return e.data.geometry}}(N.value),!1!==N.visible&&(x=s.enabled&&!1!==N.enabled,y=l.renderText(N.tooltip),C={__html:l.renderHtml(N.label)},k=g?void 0:0,N=N.styleName?makeSafeClassName(N.styleName):void 0,b.push(_jsxs("label",{className:N,"data-id":E,title:y,onMouseOver:t,onMouseOut:n,onFocus:o,onBlur:h,tabIndex:k,children:[g&&_jsx("input",{type:g,name:s.id,disabled:!x,ref:function(n){return function(e){function t(){setClass(e.parentElement,"focus",document.activeElement===e)}null!==e&&(e.disabled||l.renderFocus(e,i),f(n).checked=e.checked=!0===c[n].checked,e.onfocus=t,(e.onblur=t)())}}(E),onClick:e(g,E),value:E},void 0),_jsx("span",{className:"inline",dangerouslySetInnerHTML:C},void 0)]},E)))}var T=l.renderText(r.prompt);const j=[r.type,makeSafeClassName(i)];function _(){var e=a.value.toLowerCase();for(const t in c){const n=c[t];if(e){const o=l.renderText(n.label).toLowerCase();n.visible=-1!==o.indexOf(e)}else n.visible=!0}u.hidden=!e||void 0,s.forceUpdate()}var S="multiple"===r.selectionMode&&0<b.length;const R=["items"];return r.orientation===Orientation.HORIZONTAL&&R.push("horizontal"),_jsxs(FormElementOuter,{className:j.join(" "),component:s,element:r,errorClassName:CssClasses.ERROR,ref:function(e){null===e?l.renderState(i,"geometry"):l.renderState(i,"geometry",m)},children:[r.showFilter&&_jsxs("div",{className:"filter-container",children:[_jsx("input",{type:"text",ref:e=>{a=e,renderFocus(e,i,l)},placeholder:T,disabled:!s.enabled,onChange:_},void 0),_jsx("button",{ref:e=>u=e,disabled:!s.enabled,hidden:!0,onClick:function(){a.value="",_()},children:l.renderText("@common-clear")},void 0)]},void 0),S&&_jsxs("div",{children:[_jsx("button",{disabled:!s.enabled,onClick:()=>function(){for(const e in c)!1!==c[e].visible&&p(e,!0);v(),s.forceUpdate(),l.post("changed",{name:i,value:d})}(),children:l.renderText("@common-all")},void 0),_jsx("button",{disabled:!s.enabled,onClick:()=>function(){for(const e in c)p(e,void 0);v(),s.forceUpdate(),l.post("changed",{name:i,value:d})}(),children:l.renderText("@common-none")},void 0)]},void 0),_jsx("div",{className:R.join(" "),children:b},void 0)]},void 0)}function renderListBox(s,o){const{host:r,name:a}=s.props,l=sortItems(o);!function(){const e=[];for(const n in l){var t=l[n];t.checked&&e.push(t)}0===e.length?o.value=void 0:o.value={refValueType:"items",items:e}}();const e=[];for(const m in l){const v=l[m];var t=r.renderText(v.label);const i=r.renderText(v.tooltip);v.checked=!0===v.checked;var n=v.styleName?makeSafeClassName(v.styleName):void 0;e.push(_jsx("option",{className:n,title:i,value:m,selected:!0===v.checked,disabled:!1===v.enabled,children:t},m))}e.length<1&&(s.enabled=!1);const i=r.renderText(o.tooltip),c=[o.type,makeSafeClassName(a)];let d=void 0;var u=o.size;return"number"==typeof u&&(d=u),_jsx(FormElementOuter,{className:c.join(" "),component:s,element:o,errorClassName:CssClasses.ERROR,htmlElementType:"label",children:_jsx("select",{multiple:!0,disabled:!s.enabled,size:d,title:i,ref:e=>renderFocus(e,a,r),onChange:function(e){const t=e.currentTarget.options;for(let e=0;e<t.length;e++){var n=t.item(e),o=n.value;l[o].checked=n.selected}s.forceUpdate(),r.post("changed",{name:a})},children:e},void 0)},void 0)}function renderDropDownList(o,s){const{host:r,name:a}=o.props,l=sortItems(s);let e=o.enabled,t=void 0;for(const v in l){void 0===t&&(t=[],void 0===s.current&&(d=r.renderText(s.prompt),t.push(_jsx("option",{value:"none",selected:!0,children:d},"none"))));var n=l[v],i=v===s.current,c=r.renderText(n.label);const u=r.renderText(n.tooltip);var d=n.styleName?makeSafeClassName(n.styleName):void 0;t.push(_jsx("option",{className:d,ref:function(t){return function(e){null!==e&&(e.selected=t)}}(i),value:"$"+v,title:u,disabled:!1===n.enabled,children:c},"$"+v))}void 0===t&&(e=!1);const u=r.renderText(s.tooltip),m=[s.type,makeSafeClassName(a)];return _jsx(FormElementOuter,{className:m.join(" "),component:o,element:s,errorClassName:CssClasses.ERROR,htmlElementType:"label",children:_jsx("select",{disabled:!e,title:u,ref:e=>renderFocus(e,a,r),onChange:function(e){const t=e.currentTarget.value;var n;"$"===t[0]&&(n=t.substring(1),e=l[n].value,s.current=n,s.value=e,o.forceUpdate(),r.post("changed",{name:a,item:n,value:e}))},children:t},void 0)},void 0)}function renderRadioGroup(e,o){const{host:s,name:r}=e.props;var t=sortItems(o);let a=o.current;const l=o.current,n=[];for(const p in t){var i=t[p],c=e.enabled&&!1!==i.enabled,d=s.renderText(i.tooltip),u={__html:s.renderHtml(i.label)};c&&void 0===a&&(a=p);var m=i.styleName?makeSafeClassName(i.styleName):void 0;n.push(_jsxs("label",{className:m,title:d,children:[_jsx("input",{type:"radio",name:e.id,disabled:!c,ref:function(n){return function(e){function t(){setClass(e.parentElement,"focus",document.activeElement===e)}null!==e&&(a===n&&s.renderFocus(e,r),e.checked=l===n,e.onfocus=t,(e.onblur=t)())}}(p),onClick:function(t,n){return function(e){e.currentTarget.checked&&o.current!==t&&(o.current=t,o.value=n,s.post("changed",{name:r,item:t,value:n}))}}(p,i.value)},void 0),_jsx("div",{className:"inline",dangerouslySetInnerHTML:u},void 0)]},p))}const v=[o.type,makeSafeClassName(r)],f=["items"];return o.orientation===Orientation.HORIZONTAL&&f.push("horizontal"),_jsx(FormElementOuter,{className:v.join(" "),component:e,element:o,errorClassName:CssClasses.ERROR,children:_jsx("div",{className:f.join(" "),children:n},void 0)},void 0)}function renderAutoComplete(o,i){const{host:c,name:d}=o.props;let u=c.renderText(i.label);"string"==typeof u&&"\n"===u[u.length-1]&&(u=u.substring(0,u.length-1));let m=i.value;const v=sortItems(i),f=o.timer||(o.timer=new ExclusiveTimer);let p=i.state;void 0!==p&&null!==p||(p=i.state={nextAction:defs.PreSelectionAction.None,selectDisabled:!0,selectValue:""}),p.nextAction===defs.PreSelectionAction.None&&i.autoActivate&&o.enabled&&"string"==typeof u&&""!==u&&(i.autoActivate=!1,p.nextAction=defs.PreSelectionAction.RetrieveSuggestions),i.label=u,i.value=m;let t=i.delay;"number"==typeof t&&0*t<t||(t=300);let n=i.minLength;"number"!=typeof n&&(n=parseInt(String(n))),isNaN(n)&&(n=3);const e=function(e){return e.length>=n?e:""},s={},r={},a={},l={};let h=void 0,b=void 0;const g=[];let x;if(o.enabled)for(var y in v){var C=v[y];const u=c.renderText(C.label),P=c.renderText(C.tooltip);var k=!1!==C.enabled;y=k?(void 0!==h?(r[y]=b,s[b]=y):h=y,b=y,a[y]=u,void 0===l[u]&&(l[u]=y),"$"+y):"!"+y;var N=y===p.selectValue;let e=N?"selected":void 0;e=k?e:"disabled",C.styleName&&(e=e?e+" ":"",e+=makeSafeClassName(C.styleName));N=N?e=>x=e:void 0;g.push(_jsx("li",{title:P,"data-value":y,className:e,ref:N,children:u},void 0))}void 0!==b&&(r[h]=b,s[b]=h);let T=null,j=null,_=null;function S(){return null!==T.querySelector("input:focus")}function R(){p.selectDisabled=!0}function E(e,t){let n=p.selectValue;n="$"===n[0]?(n=n.substring(1),e[n]):t,j.value=a[n],p.selectValue="$"+n,j.select(),o.forceUpdate()}function O(e){i.current=e;var t=v[e];i.value=m=t.value,i.label=j.value=u=a[e],S()&&j.select(),c.post("changed",{name:d,value:m,argument:u})}function I(){if(f.reset(),!p.selectDisabled){R();const e=p.selectValue;if("$"===e[0])return O(e.substring(1)),o.forceUpdate(),1}if(j.value!==i.label)return i.current=void 0,i.label=u=j.value,i.value=m=void 0,S()&&j.select(),c.post("changed",{name:d,value:m,argument:u}),o.forceUpdate(),1;o.forceUpdate()}function D(){0<e(j.value).length?(i.items={message:{enabled:!1,label:{status:"pending"}}},c.post("suggest",{name:d,value:m,argument:j.value,cancellationToken:f.cancellationToken}),p.selectDisabled=!1,p.selectValue=""):(i.items={},R()),o.forceUpdate()}u=i.label=c.renderText(i.label);let F=10;var A=i.size;"number"==typeof A&&0*A<A&&(F=A),F=Math.min(F,g.length);var L=c.renderText(i.prompt);const P=c.renderText(i.tooltip),w=[i.type,makeSafeClassName(d),CssClasses.DROPDOWN];A=0<g.length&&!p.selectDisabled?void 0:{display:"none"};return _jsxs(FormElementOuter,{className:w.join(" "),component:o,element:i,errorClassName:CssClasses.ERROR,htmlElementType:"label",ref(e){if(null!==(T=e)?(f.resume(D),S()||(j.value=u,j.disabled||c.renderFocus(j,d))):f.suspend(),e&&_&&x){var t=_.getBoundingClientRect(),n=x.getBoundingClientRect(),o=t.top,s=t.bottom,t=n.top,n=n.bottom;let e=0;s<n?e=n-s:t<o&&(e=t-o),_.scrollTop+=e}if(e&&p.nextAction===defs.PreSelectionAction.RetrieveSuggestions&&setTimeout(()=>{i.items=void 0,c.post("suggest",{name:d,value:m,argument:u}),p.nextAction=defs.PreSelectionAction.SelectFirstItem}),e&&p.nextAction===defs.PreSelectionAction.SelectFirstItem&&i.items){p.nextAction=defs.PreSelectionAction.None;var r=u.toLowerCase();let e;for(const l in v){var a=v[l];if(a?.label)if(c.renderText(a.label).toLowerCase()===r){e=l;break}}e&&setTimeout(()=>O(e))}},onKeyDownCapture(e){return"enter"===getKeyString(e)||"tab"===getKeyString(e)&&!p.selectDisabled?I()?(e.preventDefault(),e.stopPropagation(),!1):void 0:"escape"===getKeyString(e)?(f.reset(),j.value=u,j.select(),R(),o.forceUpdate(),e.preventDefault(),e.stopPropagation(),!1):"arrowdown"===getKeyString(e)?(p.selectDisabled?(f.reset(),f.start(0,D)):void 0!==h&&E(s,h),e.preventDefault(),e.stopPropagation(),!1):"arrowup"===getKeyString(e)?(p.selectDisabled?(f.reset(),f.start(0,D)):void 0!==h&&E(r,b),e.preventDefault(),e.stopPropagation(),!1):void 0},onBlurCapture(e){I()},onFocusCapture(e){e.target===j&&j.select()},onMouseDown(e){if(o.enabled){var t,n=e.target;if(n instanceof HTMLElement&&(!_.contains(n)||(t=_.querySelector(":hover"))instanceof HTMLLIElement&&("$"===(t=t.attributes["data-value"].value)[0]&&(p.selectValue=t,I()))),n!==j)return j.focus(),e.preventDefault(),e.stopPropagation(),!1}},onTouchStart(e){if(o.enabled){var t,n=e.target;if(n instanceof HTMLElement&&(!_.contains(n)||(t=n.attributes["data-value"].value)&&"$"===t[0]&&(p.selectValue=t,I())),n!==j)return e.preventDefault(),e.stopPropagation(),!1}},onChangeCapture(e){f.reset(),R(),f.start(t,D)},children:[_jsx("input",{id:o.id,type:"text",disabled:!o.enabled,placeholder:L,title:P,ref:e=>j=e},void 0),_jsx("div",{className:"relative",children:_jsx("ul",{className:"suggestions",style:A,tabIndex:-1,ref:e=>_=e,children:g},void 0)},void 0)]},void 0)}export{renderCheckBox,renderCheckGroup,renderItemPicker,renderListBox,renderDropDownList,renderRadioGroup,renderAutoComplete};
|
|
1
|
+
import*as React from"react";import{ExclusiveTimer}from"./ExclusiveTimer.js";import*as defs from"./FormDefinition.js";import FormElementOuter from"./FormElementOuter.js";import{renderFocus}from"./common.js";import{CssClasses,Orientation}from"./constants.js";import{getKeyString}from"./keyboard.js";import{isDataRef,isGeometryRef,makeSafeClassName,sortItems,setClass}from"./utils.js";function renderCheckBox(e,n){const{host:a,name:r}=e.props,t=n.value;var o={__html:a.renderHtml(n.label)},l=a.renderText(n.tooltip);const s=[n.type,makeSafeClassName(r)];return React.createElement(FormElementOuter,{className:s.join(" "),component:e,element:n,errorClassName:CssClasses.ERROR},React.createElement("label",{className:"items",title:l},React.createElement("input",{type:"checkbox",disabled:!e.enabled,ref:function(e){function t(){setClass(e.parentElement,"focus",document.activeElement===e)}null!==e&&(e.disabled||a.renderFocus(e,r),e.checked=n.checked=!0===n.checked,e.onfocus=t,(e.onblur=t)())},onChange:function(e){e=n.checked=e.currentTarget.checked,a.post("changed",{name:r,value:e?t:void 0})}}),React.createElement("div",{className:"inline",dangerouslySetInnerHTML:o})))}function renderCheckGroup(e,a){const{host:r,name:o}=e.props,l=sortItems(a);function s(){const e=[];for(const n in l){var t=l[n];t.checked&&e.push(t)}0===e.length?a.value=void 0:a.value={refValueType:"items",items:e}}a.current=void 0,s();const t=[];for(const f in l){const p=l[f];p.checked=!0===p.checked;var n=e.enabled&&!1!==p.enabled,c=r.renderText(p.tooltip),i={__html:r.renderHtml(p.label)},u=p.styleName?makeSafeClassName(p.styleName):void 0;t.push(React.createElement("label",{className:u,key:f,title:c},React.createElement("input",{type:"checkbox",disabled:!n,ref:function(n){return function(e){function t(){setClass(e.parentElement,"focus",document.activeElement===e)}null!==e&&(e.disabled||r.renderFocus(e,o),e.checked=!0===l[n].checked,e.onfocus=t,(e.onblur=t)())}}(f),onChange:function(t,n){return function(e){e=l[t].checked=e.currentTarget.checked;s(),r.post("changed",{name:o,item:t,value:e?n:void 0})}}(f,p.value)}),React.createElement("div",{className:"inline",dangerouslySetInnerHTML:i})))}const d=[a.type,makeSafeClassName(o)],m=["items"];return a.orientation===Orientation.HORIZONTAL&&m.push("horizontal"),React.createElement(FormElementOuter,{className:d.join(" "),component:e,element:a,errorClassName:CssClasses.ERROR},React.createElement("div",{className:m.join(" ")},t))}function renderItemPicker(r,o){const{host:s,name:c}=r.props,i=o.items;let u,l,d,m=o.state;function f(){const e=[];for(const n in i){var t=i[n];t.checked&&e.push(t)}u=0===e.length?o.value=void 0:o.value={refValueType:"items",items:e}}function p(e,t=!0){let n=m.keyToIndex[e];if(null==n||null===n){if(!t)return;m.keyToIndex[e]=m.length,m.push({}),n=m.keyToIndex[e]}return m[n]}function v(e,t){i[e].checked=!!t,p(e).checked=t}function e(o,l){return function(e){var t,n=!!e.currentTarget.checked||void 0;if(t=l,e=n,i[t].checked!==e){if("checkbox"===o)v(l,n);else if(n)for(const r in i){var a=r===l||void 0;v(r,a)}f(),s.post("changed",{name:c,value:u}),s.renderState(c,"geometry",m)}}}function t(e){p(e.currentTarget.dataset.id).pending=!0,s.renderState(c,"geometry",m)}function n(e){delete p(e.currentTarget.dataset.id).pending,s.renderState(c,"geometry",m)}function a(e){p(e.currentTarget.dataset.id).focused=!0,s.renderState(c,"geometry",m)}function b(e){delete p(e.currentTarget.dataset.id).focused,s.renderState(c,"geometry",m)}f(),function(){void 0!==m&&null!==m||(m=o.state=[]),m.keyToIndex||(m.keyToIndex={});const e={};for(const n in o.items){var t=p(n,!1);t&&(e[n]=t)}m=o.state=[],m.keyToIndex={};for(const a in e)m.keyToIndex[a]=m.length,m.push(e[a])}();const h=[];let g;switch(o.selectionMode){case"single":g="radio";break;case"multiple":g="checkbox"}for(const I in i){var y,k,R,C,E=i[I];p(I).content=function(e){if(e){if(isGeometryRef(e))return e.geometry;if(isDataRef(e)&&e.data)return e.data.geometry}}(E.value),!1!==E.visible&&(y=r.enabled&&!1!==E.enabled,k=s.renderText(E.tooltip),R={__html:s.renderHtml(E.label)},C=g?void 0:0,E=E.styleName?makeSafeClassName(E.styleName):void 0,h.push(React.createElement("label",{className:E,key:I,"data-id":I,title:k,onMouseOver:t,onMouseOut:n,onFocus:a,onBlur:b,tabIndex:C},g&&React.createElement("input",{type:g,name:r.id,disabled:!y,ref:function(n){return function(e){function t(){setClass(e.parentElement,"focus",document.activeElement===e)}null!==e&&(e.disabled||s.renderFocus(e,c),p(n).checked=e.checked=!0===i[n].checked,e.onfocus=t,(e.onblur=t)())}}(I),onClick:e(g,I),value:I}),React.createElement("span",{className:"inline",dangerouslySetInnerHTML:R}))))}var N=s.renderText(o.prompt);const T=[o.type,makeSafeClassName(c)];function x(){var e=l.value.toLowerCase();for(const t in i){const n=i[t];if(e){const a=s.renderText(n.label).toLowerCase();n.visible=-1!==a.indexOf(e)}else n.visible=!0}d.hidden=!e||void 0,r.forceUpdate()}var S="multiple"===o.selectionMode&&0<h.length;const O=["items"];return o.orientation===Orientation.HORIZONTAL&&O.push("horizontal"),React.createElement(FormElementOuter,{className:T.join(" "),component:r,element:o,errorClassName:CssClasses.ERROR,ref:function(e){null===e?s.renderState(c,"geometry"):s.renderState(c,"geometry",m)}},o.showFilter&&React.createElement("div",{className:"filter-container"},React.createElement("input",{type:"text",ref:e=>{l=e,renderFocus(e,c,s)},placeholder:N,disabled:!r.enabled,onChange:x}),React.createElement("button",{ref:e=>d=e,disabled:!r.enabled,hidden:!0,onClick:function(){l.value="",x()}},s.renderText("@common-clear"))),S&&React.createElement("div",null,React.createElement("button",{disabled:!r.enabled,onClick:()=>function(){for(const e in i)!1!==i[e].visible&&v(e,!0);f(),r.forceUpdate(),s.post("changed",{name:c,value:u})}()},s.renderText("@common-all")),React.createElement("button",{disabled:!r.enabled,onClick:()=>function(){for(const e in i)v(e,void 0);f(),r.forceUpdate(),s.post("changed",{name:c,value:u})}()},s.renderText("@common-none"))),React.createElement("div",{className:O.join(" ")},h))}function renderListBox(r,a){const{host:o,name:l}=r.props,s=sortItems(a);!function(){const e=[];for(const n in s){var t=s[n];t.checked&&e.push(t)}0===e.length?a.value=void 0:a.value={refValueType:"items",items:e}}();const e=[];for(const m in s){const f=s[m];var t=o.renderText(f.label);const c=o.renderText(f.tooltip);f.checked=!0===f.checked;var n=f.styleName?makeSafeClassName(f.styleName):void 0;e.push(React.createElement("option",{className:n,key:m,title:c,value:m,selected:!0===f.checked,disabled:!1===f.enabled},t))}e.length<1&&(r.enabled=!1);const c=o.renderText(a.tooltip),i=[a.type,makeSafeClassName(l)];let u=void 0;var d=a.size;return"number"==typeof d&&(u=d),React.createElement(FormElementOuter,{className:i.join(" "),component:r,element:a,errorClassName:CssClasses.ERROR,htmlElementType:"label"},React.createElement("select",{multiple:!0,disabled:!r.enabled,size:u,title:c,ref:e=>renderFocus(e,l,o),onChange:function(e){const t=e.currentTarget.options;for(let e=0;e<t.length;e++){var n=t.item(e),a=n.value;s[a].checked=n.selected}r.forceUpdate(),o.post("changed",{name:l})}},e))}function renderDropDownList(a,r){const{host:o,name:l}=a.props,s=sortItems(r);let e=a.enabled,t=void 0;for(const f in s){void 0===t&&(t=[],void 0===r.current&&(u=o.renderText(r.prompt),t.push(React.createElement("option",{key:"none",value:"none",selected:!0},u))));var n=s[f],c=f===r.current,i=o.renderText(n.label);const d=o.renderText(n.tooltip);var u=n.styleName?makeSafeClassName(n.styleName):void 0;t.push(React.createElement("option",{className:u,ref:function(t){return function(e){null!==e&&(e.selected=t)}}(c),key:"$"+f,value:"$"+f,title:d,disabled:!1===n.enabled},i))}void 0===t&&(e=!1);const d=o.renderText(r.tooltip),m=[r.type,makeSafeClassName(l)];return React.createElement(FormElementOuter,{className:m.join(" "),component:a,element:r,errorClassName:CssClasses.ERROR,htmlElementType:"label"},React.createElement("select",{disabled:!e,title:d,ref:e=>renderFocus(e,l,o),onChange:function(e){const t=e.currentTarget.value;var n;"$"===t[0]&&(n=t.substring(1),e=s[n].value,r.current=n,r.value=e,a.forceUpdate(),o.post("changed",{name:l,item:n,value:e}))}},t))}function renderRadioGroup(e,a){const{host:r,name:o}=e.props;var t=sortItems(a);let l=a.current;const s=a.current,n=[];for(const v in t){var c=t[v],i=e.enabled&&!1!==c.enabled,u=r.renderText(c.tooltip),d={__html:r.renderHtml(c.label)};i&&void 0===l&&(l=v);var m=c.styleName?makeSafeClassName(c.styleName):void 0;n.push(React.createElement("label",{className:m,key:v,title:u},React.createElement("input",{type:"radio",name:e.id,disabled:!i,ref:function(n){return function(e){function t(){setClass(e.parentElement,"focus",document.activeElement===e)}null!==e&&(l===n&&r.renderFocus(e,o),e.checked=s===n,e.onfocus=t,(e.onblur=t)())}}(v),onClick:function(t,n){return function(e){e.currentTarget.checked&&a.current!==t&&(a.current=t,a.value=n,r.post("changed",{name:o,item:t,value:n}))}}(v,c.value)}),React.createElement("div",{className:"inline",dangerouslySetInnerHTML:d})))}const f=[a.type,makeSafeClassName(o)],p=["items"];return a.orientation===Orientation.HORIZONTAL&&p.push("horizontal"),React.createElement(FormElementOuter,{className:f.join(" "),component:e,element:a,errorClassName:CssClasses.ERROR},React.createElement("div",{className:p.join(" ")},n))}function renderAutoComplete(a,c){const{host:i,name:u}=a.props;let d=i.renderText(c.label);"string"==typeof d&&"\n"===d[d.length-1]&&(d=d.substring(0,d.length-1));let m=c.value;const f=sortItems(c),p=a.timer||(a.timer=new ExclusiveTimer);let v=c.state;void 0!==v&&null!==v||(v=c.state={nextAction:defs.PreSelectionAction.None,selectDisabled:!0,selectValue:""}),v.nextAction===defs.PreSelectionAction.None&&c.autoActivate&&a.enabled&&"string"==typeof d&&""!==d&&(c.autoActivate=!1,v.nextAction=defs.PreSelectionAction.RetrieveSuggestions),c.label=d,c.value=m;let t=c.delay;"number"==typeof t&&0*t<t||(t=300);let n=c.minLength;"number"!=typeof n&&(n=parseInt(String(n))),isNaN(n)&&(n=3);const e=function(e){return e.length>=n?e:""},r={},o={},l={},s={};let b=void 0,h=void 0;const g=[];let y;if(a.enabled)for(var k in f){var R=f[k];const d=i.renderText(R.label),w=i.renderText(R.tooltip);var C=!1!==R.enabled;k=C?(void 0!==b?(o[k]=h,r[h]=k):b=k,h=k,l[k]=d,void 0===s[d]&&(s[d]=k),"$"+k):"!"+k;var E=k===v.selectValue;let e=E?"selected":void 0;e=C?e:"disabled",R.styleName&&(e=e?e+" ":"",e+=makeSafeClassName(R.styleName));E=E?e=>y=e:void 0;g.push(React.createElement("li",{title:w,"data-value":k,className:e,ref:E},d))}void 0!==h&&(o[b]=h,r[h]=b);let N=null,T=null,x=null;function S(){return null!==N.querySelector("input:focus")}function O(){v.selectDisabled=!0}function I(e,t){let n=v.selectValue;n="$"===n[0]?(n=n.substring(1),e[n]):t,T.value=l[n],v.selectValue="$"+n,T.select(),a.forceUpdate()}function D(e){c.current=e;var t=f[e];c.value=m=t.value,c.label=T.value=d=l[e],S()&&T.select(),i.post("changed",{name:u,value:m,argument:d})}function F(){if(p.reset(),!v.selectDisabled){O();const e=v.selectValue;if("$"===e[0])return D(e.substring(1)),a.forceUpdate(),1}if(T.value!==c.label)return c.current=void 0,c.label=d=T.value,c.value=m=void 0,S()&&T.select(),i.post("changed",{name:u,value:m,argument:d}),a.forceUpdate(),1;a.forceUpdate()}function A(){0<e(T.value).length?(c.items={message:{enabled:!1,label:{status:"pending"}}},i.post("suggest",{name:u,value:m,argument:T.value,cancellationToken:p.cancellationToken}),v.selectDisabled=!1,v.selectValue=""):(c.items={},O()),a.forceUpdate()}d=c.label=i.renderText(c.label);let L=10;var j=c.size;"number"==typeof j&&0*j<j&&(L=j),L=Math.min(L,g.length);var P=i.renderText(c.prompt);const w=i.renderText(c.tooltip),H=[c.type,makeSafeClassName(u),CssClasses.DROPDOWN];j=0<g.length&&!v.selectDisabled?void 0:{display:"none"};return React.createElement(FormElementOuter,{className:H.join(" "),component:a,element:c,errorClassName:CssClasses.ERROR,htmlElementType:"label",ref(e){if(null!==(N=e)?(p.resume(A),S()||(T.value=d,T.disabled||i.renderFocus(T,u))):p.suspend(),e&&x&&y){var t=x.getBoundingClientRect(),n=y.getBoundingClientRect(),a=t.top,r=t.bottom,t=n.top,n=n.bottom;let e=0;r<n?e=n-r:t<a&&(e=t-a),x.scrollTop+=e}if(e&&v.nextAction===defs.PreSelectionAction.RetrieveSuggestions&&setTimeout(()=>{c.items=void 0,i.post("suggest",{name:u,value:m,argument:d}),v.nextAction=defs.PreSelectionAction.SelectFirstItem}),e&&v.nextAction===defs.PreSelectionAction.SelectFirstItem&&c.items){v.nextAction=defs.PreSelectionAction.None;var o=d.toLowerCase();let e;for(const s in f){var l=f[s];if(l?.label)if(i.renderText(l.label).toLowerCase()===o){e=s;break}}e&&setTimeout(()=>D(e))}},onKeyDownCapture(e){return"enter"===getKeyString(e)||"tab"===getKeyString(e)&&!v.selectDisabled?F()?(e.preventDefault(),e.stopPropagation(),!1):void 0:"escape"===getKeyString(e)?(p.reset(),T.value=d,T.select(),O(),a.forceUpdate(),e.preventDefault(),e.stopPropagation(),!1):"arrowdown"===getKeyString(e)?(v.selectDisabled?(p.reset(),p.start(0,A)):void 0!==b&&I(r,b),e.preventDefault(),e.stopPropagation(),!1):"arrowup"===getKeyString(e)?(v.selectDisabled?(p.reset(),p.start(0,A)):void 0!==b&&I(o,h),e.preventDefault(),e.stopPropagation(),!1):void 0},onBlurCapture(e){F()},onFocusCapture(e){e.target===T&&T.select()},onMouseDown(e){if(a.enabled){var t,n=e.target;if(n instanceof HTMLElement&&(!x.contains(n)||(t=x.querySelector(":hover"))instanceof HTMLLIElement&&("$"===(t=t.attributes["data-value"].value)[0]&&(v.selectValue=t,F()))),n!==T)return T.focus(),e.preventDefault(),e.stopPropagation(),!1}},onTouchStart(e){if(a.enabled){var t,n=e.target;if(n instanceof HTMLElement&&(!x.contains(n)||(t=n.attributes["data-value"].value)&&"$"===t[0]&&(v.selectValue=t,F())),n!==T)return e.preventDefault(),e.stopPropagation(),!1}},onChangeCapture(e){p.reset(),O(),p.start(t,A)}},React.createElement("input",{id:a.id,type:"text",disabled:!a.enabled,placeholder:P,title:w,ref:e=>T=e}),React.createElement("div",{className:"relative"},React.createElement("ul",{className:"suggestions",style:j,tabIndex:-1,ref:e=>x=e},g)))}export{renderCheckBox,renderCheckGroup,renderItemPicker,renderListBox,renderDropDownList,renderRadioGroup,renderAutoComplete};
|
package/esm/forms/text.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import*as React from"react";import FormElementOuter from"./FormElementOuter.js";import{CssClasses}from"./constants.js";import{getKeyString}from"./keyboard.js";import{makeSafeClassName}from"./utils.js";function renderPasswordBox(e,t){const{host:r,name:o}=e.props;let a="";var n=t.value;function l(e){e=e.value;a!==e&&(t.value=a=e,r.post("changed",{name:o,value:a}))}"string"==typeof n&&(a=n),t.value=a;var s=r.renderText(t.prompt),n=r.renderText(t.tooltip);const u=[t.type,makeSafeClassName(o)];return React.createElement(FormElementOuter,{className:u.join(" "),component:e,element:t,errorClassName:CssClasses.ERROR,htmlElementType:"label"},React.createElement("input",{type:"password",disabled:!e.enabled,placeholder:s,title:n,ref:function(n){if(null!==n){n.value=a;let t=!1;n.onmousedown=function(){t=!0},n.onmouseup=function(){t=!1},n.onfocus=function(){setTimeout(function(){var e=n.value.length;n.setSelectionRange(t?0:e,e)})},n.disabled||r.renderFocus(n,o)}},onKeyDown:function(e){var t=getKeyString(e);return"enter"===t?function(e){const t=e.currentTarget;if(a!==t.value)return l(t),t.select(),e.stopPropagation(),e.preventDefault(),!1}(e):"escape"===t?function(e){const t=e.currentTarget;if(a!==t.value)return t.value=a,t.select(),e.stopPropagation(),e.preventDefault(),!1}(e):void 0},onBlur:e=>l(e.currentTarget)}))}function renderTextBox(e,t){const{host:r,name:o}=e.props;let a="";var n=t.value;function l(e){e=e.value;a!==e&&(t.value=a=e,r.post("changed",{name:o,value:a}))}"string"==typeof n&&(a=n),"number"==typeof n&&(a=r.formatNumber(n,{useGrouping:!0})),t.value=a;var s=r.renderText(t.prompt),n=r.renderText(t.tooltip);const u=[t.type,makeSafeClassName(o)];return React.createElement(FormElementOuter,{className:u.join(" "),component:e,element:t,errorClassName:CssClasses.ERROR,htmlElementType:"label"},React.createElement("input",{type:"text",disabled:!e.enabled,maxLength:t.maxLength,readOnly:t.readOnly,placeholder:s,title:n,ref:function(n){if(null!==n){n.value=a;let t=!1;n.onmousedown=function(){t=!0},n.onmouseup=function(){t=!1},n.onfocus=function(){setTimeout(function(){var e=n.value.length;n.setSelectionRange(t?0:e,e)})},n.disabled||r.renderFocus(n,o)}},onKeyDown:function(e){var t=getKeyString(e);return"enter"===t?function(e){const t=e.currentTarget;if(a!==t.value)return l(t),t.select(),e.stopPropagation(),e.preventDefault(),!1}(e):"escape"===t?function(e){const t=e.currentTarget;if(a!==t.value)return t.value=a,t.select(),e.stopPropagation(),e.preventDefault(),!1}(e):void 0},onBlur:e=>l(e.currentTarget)}))}function renderTextArea(e,t){const{host:r,name:o}=e.props;let a="";var n=t.value;"string"==typeof n&&(a=n),t.value=a;var l=t.size;let s=8;"number"==typeof l&&(s=l);var u=r.renderText(t.prompt),n=r.renderText(t.tooltip),l=t.wrap||"off";const c=[t.type,makeSafeClassName(o)];return React.createElement(FormElementOuter,{className:c.join(" "),component:e,element:t,errorClassName:CssClasses.ERROR,htmlElementType:"label"},React.createElement("textarea",{disabled:!e.enabled,readOnly:t.readOnly,placeholder:u,rows:s,title:n,wrap:l,maxLength:t.maxLength,spellCheck:!1,ref:function(n){if(null!==n){n.value=a;let t=!(n.onkeydown=function(e){e.stopPropagation()});n.onmousedown=function(){t=!0},n.onmouseup=function(){t=!1},n.onfocus=function(){setTimeout(function(){var e=n.value.length;n.setSelectionRange(t?0:e,e),n.scrollTop=n.scrollHeight})},n.disabled||r.renderFocus(n,o)}},onBlur:function(e){e=e.currentTarget.value,a!==e&&(t.value=a=e,r.post("changed",{name:o,value:a}))}}))}export{renderPasswordBox,renderTextBox,renderTextArea};
|
package/esm/libs/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "5.32.
|
|
1
|
+
export declare const VERSION = "5.32.1+2";
|
package/esm/libs/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const VERSION="5.32.
|
|
1
|
+
const VERSION="5.32.1+2";export{VERSION};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{validate}from"@vertigis-internal/licensing";import*as React from"react";import{render}from"react-dom";import Watermark from"./Watermark.js";const workflowSkuCode="GCXWFL";let div;function show(){void 0===div&&(div=document.createElement("div")),div.parentNode!==document.body&&(null!==div.parentNode&&div.parentNode.removeChild(div),document.body.appendChild(div));render(React.createElement(Watermark,{hide:()=>{null!==div.parentNode&&div.parentNode.removeChild(div)},message:"VertiGIS Studio Workflow must be licensed for use in production applications."}),div)}async function check(i,o){if("localhost"!==location.hostname&&"127.0.0.1"!==location.hostname){o=o?`-${workflowSkuCode}-${o}-`:`${workflowSkuCode}-`;if(void 0===div&&(div=document.createElement("div")),null===div.parentNode){let e=i?.licenseInfo?.licenseeId;i=i?.licenseInfo?.licenseUrl;i&&!e&&(e="a");try{const t=await validate({sku:o,orgId:e,url:i});if(!t?.isValid){if(t&&!t.isEval&&t.expires)if(((new Date).getTime()-t.expires.getTime())/864e5<60)return;show()}}catch{show()}}}}export{check};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import*as React from"react";const Watermark=({hide:e,message:t})=>{return React.createElement("div",{style:{position:"fixed",top:"0",left:"0",right:"0",color:"#333",textAlign:"center",zIndex:"2147483647",pointerEvents:"none",opacity:1}},React.createElement("div",{style:{display:"inline-table",backgroundColor:"#ffd498",verticalAlign:"top",textAlign:"left",pointerEvents:"all",border:"1px solid #dab581",borderTop:"0",borderRadius:"0 0 2px 2px"}},React.createElement("svg",{style:{display:"table-cell",width:"32px",height:"34px",margin:"4px 0 4px 4px"},viewBox:"0 0 32 34"},React.createElement("path",{d:"M19.46.37.37,4.72V30.1L19.46,34l12.18-7.58V8.93ZM14,8.45a.84.84,0,0,1,.84-.84h3.35a.84.84,0,0,1,.84.84V11.8a.84.84,0,0,1-.84.84H14.82A.84.84,0,0,1,14,11.8ZM12.31,25.21a.84.84,0,0,1-.84.84H8.12a.84.84,0,0,1-.84-.84V21.86A.84.84,0,0,1,8.12,21h3.35a.84.84,0,0,1,.84.84Zm6.71,0a.84.84,0,0,1-.84.84H14.82a.84.84,0,0,1-.84-.84V21.86a.84.84,0,0,1,.84-.84h3.35a.84.84,0,0,1,.84.84Zm-1.89-7.75V20H15.87V17.46H10.42V20H9.16V16.83a.63.63,0,0,1,.63-.63h6.08V13.69h1.26V16.2H23.2a.63.63,0,0,1,.63.63V20H22.58V17.46Zm8.59,7.75a.84.84,0,0,1-.84.84H21.53a.84.84,0,0,1-.84-.84V21.86a.84.84,0,0,1,.84-.84h3.35a.84.84,0,0,1,.84.84Z"})),React.createElement("div",{style:{display:"table-cell",verticalAlign:"top",padding:"4px 8px",maxWidth:"260px"}},React.createElement("div",{style:{fontSize:"12px"},title:t},t)),React.createElement("div",{style:{display:"table-cell",cursor:"pointer",color:"#555",verticalAlign:"top"},onClick:e},React.createElement("button",{style:{marginRight:"4px",background:"none",border:"none",cursor:"pointer"}},"✖"))))};export default Watermark;
|
package/package.json
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Application, Map, Site, Widget } from "@vertigis/workflow/runtime/app";
|
|
3
|
+
import { FormRenderer } from "../activities/forms/FormRenderer";
|
|
1
4
|
/** Properties that control how an activity user interface is hosted by the host application. */
|
|
2
5
|
export interface ShowProps {
|
|
3
6
|
/** The name of the container that will host the activity user interface. */
|
|
@@ -24,8 +27,51 @@ export interface RenderResolve<T> {
|
|
|
24
27
|
/** Returns a rejection to the activity. */
|
|
25
28
|
reject(reason: any): any;
|
|
26
29
|
}
|
|
30
|
+
export interface IAppActivity {
|
|
31
|
+
/**
|
|
32
|
+
* The host application. For example:
|
|
33
|
+
* - Geocortex Viewer for HTML5: https://docs.vertigisstudio.com/essentials/gvh/latest/api-help/classes/_mapping_infrastructure_amd_d_._geocortex_infrastructure_viewer_.viewerapplication.html
|
|
34
|
+
* - Web AppBuilder: https://developers.arcgis.com/web-appbuilder/api-reference
|
|
35
|
+
*/
|
|
36
|
+
app: Application;
|
|
37
|
+
/**
|
|
38
|
+
* The map of the host application. For example:
|
|
39
|
+
* - ArcGIS API for JavaScript v3: https://developers.arcgis.com/javascript/3/jsapi/map-amd.html
|
|
40
|
+
* - ArcGIS API for JavaScript v4: https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html
|
|
41
|
+
*/
|
|
42
|
+
map: Map;
|
|
43
|
+
/**
|
|
44
|
+
* The Geocortex Essentials site of the host application. This is available in Geocortex Viewer for HTML5 applications only.
|
|
45
|
+
* See https://docs.vertigisstudio.com/essentials/gvh/latest/api-help/classes/_essentials_amd_d_._geocortex_essentials_site_.site.html
|
|
46
|
+
*/
|
|
47
|
+
site: Site;
|
|
48
|
+
/**
|
|
49
|
+
* The Web AppBuilder widget running the workflow. This is available in Web AppBuilder applications only.
|
|
50
|
+
*/
|
|
51
|
+
widget: Widget;
|
|
52
|
+
createRenderer(): FormRenderer;
|
|
53
|
+
/** Performs the activity execution logic. */
|
|
54
|
+
execute(...args: any[]): any;
|
|
55
|
+
/** Renders the activity user interface. */
|
|
56
|
+
render<T, TState>(method: RenderMethod<T, this, TState>, state: TState): Promise<T>;
|
|
57
|
+
/** Renders the activity user interface. */
|
|
58
|
+
render<T>(method: RenderMethod<T, this, any>): Promise<T>;
|
|
59
|
+
/** Renders the activity user interface. */
|
|
60
|
+
render(visual: JSX.Element): Promise<React.Component<any, any> | Element>;
|
|
61
|
+
/** Renders the activity user interface. */
|
|
62
|
+
render(visual: any): Promise<any>;
|
|
63
|
+
/** Renders the activity user interface. */
|
|
64
|
+
render(): Promise<HTMLElement>;
|
|
65
|
+
/** Renders the activity user interface. */
|
|
66
|
+
render(visual?: any, state?: any): Promise<any>;
|
|
67
|
+
}
|
|
68
|
+
export interface AppActivityConstructor {
|
|
69
|
+
new (): IAppActivity;
|
|
70
|
+
}
|
|
27
71
|
/**
|
|
28
72
|
* A base activity implementation that provides access to application level resources and
|
|
29
73
|
* facilitates rendering of custom user interfaces.
|
|
74
|
+
* @deprecated Decorate your activity's class with `@activate(<ClassName>)` to use `<ClassName>` in your activity instead.
|
|
75
|
+
* e.g. If you add `@activate(MapProvider)` before your class, you can add `mapProvider: typeof MapProvider` as an extra parameter to its `execute()` method.
|
|
30
76
|
*/
|
|
31
|
-
export declare
|
|
77
|
+
export declare const AppActivity: AppActivityConstructor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e){"object"==typeof module&&"object"==typeof module.exports?e(require,exports):"function"==typeof define&&define.amd&&define(["require","exports","tslib","react","react-dom","../Task"],e)}(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AppActivity=void 0;var
|
|
1
|
+
!function(e){"object"==typeof module&&"object"==typeof module.exports?e(require,exports):"function"==typeof define&&define.amd&&define(["require","exports","tslib","react","react-dom","../Task"],e)}(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AppActivity=void 0;var a=e("tslib"),r=e("react"),u=e("react-dom"),i=e("../Task");t.AppActivity=function(){var n=this.execute;this.execute=function(e,r){var i=this,t=r.ambient.trivia;return this.app=t.app,this.map=t.map,this.site=t.site,this.widget=t.widget,this.FormRenderer=t.FormRenderer,this.completion=r.ambient.completion,this.execute=n,this.createRenderer=function(){var e,t=i.renderer;return void 0===t&&((t=i.renderer=i.FormRenderer.createCustom()).state=r.ambient,e=function(){return t.dispose()},i.completion.then(e,e)),i.renderer||(i.renderer=i.FormRenderer.createCustom())},n.apply(this,arguments)}},t.AppActivity.prototype.createRenderer=function(){return null},t.AppActivity.prototype.applyProps=function(e){var t=this.createRenderer();!function(e,t){var r=!1;if(null!=t)for(var i in t)e[i]!==t[i]&&(e[i]=t[i],r=!0);return r}(this.showProps||(this.showProps={}),e)||(e=this.showProps,t.form={defaults:{container:e.container},elements:{header:{type:"Header",section:"header",title:{markdown:e.title},value:e.icon}}},t.invalidate())},t.AppActivity.prototype.show=function(e){return this.applyProps(e),this.createRenderer().show()},t.AppActivity.prototype.spin=function(e){return this.applyProps(e),this.createRenderer().spin()},t.AppActivity.prototype.spinNoBlock=function(e){return this.applyProps(e),this.createRenderer().spinNoBlock()},t.AppActivity.prototype.hide=function(){return this.createRenderer().hide()},t.AppActivity.prototype.render=function(t,c){return(0,a.__awaiter)(this,void 0,void 0,function(){var o,p,s;return(0,a.__generator)(this,function(e){return o=this.createRenderer().container,"function"==typeof t?(p=this,s=t,[2,new i.Task(function(i,n){return(0,a.__awaiter)(this,void 0,void 0,function(){var t,r;return(0,a.__generator)(this,function(e){switch(e.label){case 0:return(t=i.bind(void 0)).reject=n.bind(void 0),r=u.render,[4,s.call(p,t,c)];case 1:return r.apply(void 0,[e.sent(),o]),[2]}})})})]):(0,r.isValidElement)(t)?[2,new i.Task(function(e){(0,u.render)(t,o,e)})]:[2,o]})})}});
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IActivityHandler, IActivityContext, Deferrable } from "../IActivityHandler";
|
|
1
3
|
import { Element } from "../forms/FormDefinition";
|
|
2
4
|
/**
|
|
3
5
|
* The props of a custom form element.
|
|
@@ -16,9 +18,17 @@ export interface CustomFormElementProps {
|
|
|
16
18
|
*/
|
|
17
19
|
raiseEvent: (eventName: "changed" | "clicked" | "custom", eventValue: any) => void;
|
|
18
20
|
}
|
|
21
|
+
export interface IRegisterCustomFormElementBase extends IActivityHandler {
|
|
22
|
+
/** Executes the logic for an activity. */
|
|
23
|
+
execute(inputs: {}, context: IActivityContext, ...args: any[]): Deferrable<{}>;
|
|
24
|
+
register: (name: string, component: React.ComponentClass<CustomFormElementProps> | React.FunctionComponent<CustomFormElementProps>) => void;
|
|
25
|
+
}
|
|
26
|
+
export interface RegisterCustomFormElementBaseConstructor {
|
|
27
|
+
new (): IRegisterCustomFormElementBase;
|
|
28
|
+
}
|
|
19
29
|
/**
|
|
20
30
|
* A base activity implementation that provides a convenient way to register
|
|
21
31
|
* custom form elements to be used in Display Form activities.
|
|
22
32
|
* @deprecated Use `FormElementRegistration` instead.
|
|
23
33
|
*/
|
|
24
|
-
export declare
|
|
34
|
+
export declare const RegisterCustomFormElementBase: RegisterCustomFormElementBaseConstructor;
|