@vertigis/workflow 5.31.0 → 5.31.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.
Files changed (55) hide show
  1. package/amd/activities/forms/FormRenderer.d.ts +2 -2
  2. package/amd/activities/forms/FormRenderer.js +1 -1
  3. package/amd/activities/forms/GetFormElementItemsFromCollection.d.ts +6 -0
  4. package/amd/activities/forms/GetFormElementItemsFromCollection.js +1 -1
  5. package/amd/amdpile.js +1 -1
  6. package/amd/amdpile.js.LICENSE.txt +0 -17
  7. package/amd/bundle.js +1 -1
  8. package/amd/forms/FormHost.d.ts +5 -6
  9. package/amd/forms/FormHost.js +1 -1
  10. package/amd/forms/FormPresenterHost.d.ts +5 -8
  11. package/amd/forms/NumberParser.d.ts +25 -0
  12. package/amd/forms/NumberParser.js +1 -0
  13. package/amd/forms/components/NumberRangeSlider.js +1 -1
  14. package/amd/forms/components/NumberSlider.js +1 -1
  15. package/amd/forms/dateUtilities.js +1 -1
  16. package/amd/libs/version.d.ts +1 -1
  17. package/amd/libs/version.js +1 -1
  18. package/esm/activities/forms/FormRenderer.d.ts +2 -2
  19. package/esm/activities/forms/FormRenderer.js +1 -1
  20. package/esm/activities/forms/GetFormElementItemsFromCollection.d.ts +6 -0
  21. package/esm/activities/forms/GetFormElementItemsFromCollection.js +1 -1
  22. package/esm/forms/FormHost.d.ts +5 -6
  23. package/esm/forms/FormHost.js +1 -1
  24. package/esm/forms/FormPresenterHost.d.ts +5 -8
  25. package/esm/forms/NumberParser.d.ts +25 -0
  26. package/esm/forms/NumberParser.js +1 -0
  27. package/esm/forms/components/NumberRangeSlider.js +1 -1
  28. package/esm/forms/components/NumberSlider.js +1 -1
  29. package/esm/forms/dateUtilities.js +1 -1
  30. package/esm/libs/version.d.ts +1 -1
  31. package/esm/libs/version.js +1 -1
  32. package/package.json +1 -2
  33. package/runtime/activities/forms/FormRenderer.d.ts +2 -2
  34. package/runtime/activities/forms/FormRenderer.js +1 -1
  35. package/runtime/activities/forms/GetFormElementItemsFromCollection.d.ts +6 -0
  36. package/runtime/activities/forms/GetFormElementItemsFromCollection.js +1 -1
  37. package/runtime/amdpile.js +1 -1
  38. package/runtime/amdpile.js.LICENSE.txt +0 -17
  39. package/runtime/bundle.js +1 -1
  40. package/runtime/forms/FormHost.d.ts +5 -6
  41. package/runtime/forms/FormHost.js +1 -1
  42. package/runtime/forms/FormPresenterHost.d.ts +5 -8
  43. package/runtime/forms/NumberParser.d.ts +25 -0
  44. package/runtime/forms/NumberParser.js +1 -0
  45. package/runtime/forms/components/NumberRangeSlider.js +1 -1
  46. package/runtime/forms/components/NumberSlider.js +1 -1
  47. package/runtime/forms/dateUtilities.js +1 -1
  48. package/runtime/libs/version.d.ts +1 -1
  49. package/runtime/libs/version.js +1 -1
  50. package/amd/forms/locales/stock.d.ts +0 -1
  51. package/amd/forms/locales/stock.js +0 -1
  52. package/esm/forms/locales/stock.d.ts +0 -1
  53. package/esm/forms/locales/stock.js +0 -1
  54. package/runtime/forms/locales/stock.d.ts +0 -1
  55. package/runtime/forms/locales/stock.js +0 -1
@@ -2,9 +2,9 @@ import { Lookup } from "../Collections";
2
2
  import Bluebird from "../deps/bluebird_fork";
3
3
  import { Calendar } from "./Calendar";
4
4
  import * as defs from "./FormDefinition";
5
- import { FormPresenterHost, Facility } from "./FormPresenterHost";
5
+ import { FormPresenterHost } from "./FormPresenterHost";
6
6
  import { FormatOptions } from "./numberFormatter";
7
- export { defs, Facility };
7
+ export { defs };
8
8
  export interface FormEventSubscription {
9
9
  (): boolean;
10
10
  active: boolean;
@@ -16,6 +16,7 @@ export interface FormEventHandler {
16
16
  export declare abstract class FormHost implements FormPresenterHost {
17
17
  /** Indicates the overall state of the form. */
18
18
  form: defs.Form;
19
+ deriveLocale(): string;
19
20
  /** Indicates all errors to be assigned. */
20
21
  errors: Lookup<defs.Text>;
21
22
  /** Indicates any reference information relevant to components. */
@@ -178,7 +179,7 @@ export declare abstract class FormHost implements FormPresenterHost {
178
179
  /** Coerces a number. */
179
180
  coerceNumber(value: string): number;
180
181
  /** Formats a number. */
181
- formatNumber(value: number, options: Intl.NumberFormatOptions | FormatOptions, useBrowserIntlApi?: boolean): string;
182
+ formatNumber(value: number, options: FormatOptions): string;
182
183
  /** Renders a custom element. */
183
184
  renderCustom(component: {}, element: defs.Element): JSX.Element;
184
185
  /** Renders a component's state. */
@@ -188,9 +189,7 @@ export declare abstract class FormHost implements FormPresenterHost {
188
189
  /** Derives the locale for the given facility. */
189
190
  deriveCalendar(format: defs.DateTimeFormat): Calendar;
190
191
  /** Derives the locale for the given facility. */
191
- deriveLocale(facility: Facility): string;
192
- /** Derives the locale for the given facility. */
193
- deriveTimeZone(facility: Facility): any;
192
+ deriveTimeZone(): any;
194
193
  private getParentSection;
195
194
  private isSectionCollapsed;
196
195
  private isElementPositionBeforeLastFocused;
@@ -1 +1 @@
1
- define(["require","exports","tslib","globalize","moment-timezone","../Task","../constants","../deps/bluebird_fork","./Calendar","./FormComponent","./FormDefinition","./locales/stock","./numberFormatter","./presenter","./renderers","./styles/stock","./utils","globalize","globalize/number"],function(e,t,i,n,r,o,s,u,a,l,f,d,c,h,v,m,p){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FormHost=t.defs=void 0,n=(0,i.__importDefault)(n),r=(0,i.__importDefault)(r),u=(0,i.__importDefault)(u),f=(0,i.__importStar)(f),h=(0,i.__importStar)(h),v=(0,i.__importStar)(v),t.defs=f;var y="C0166F74-982A-464E-9FB6-9605CB7649C1:FormEvent";function b(e,t){return new CustomEvent(e,{bubbles:!1,cancelable:!1,detail:t})}function g(e,t){switch(typeof e){case"boolean":case"number":case"string":return e;case"object":break;default:return t}if(null===e)return t;if(e instanceof Array){var i=t;null==i&&(i=[]);for(var n=0,r=0,o=e;r<o.length;r++){var s=g(o[r],i[n]);void 0!==s&&(n<e.length?i[n]=s:i.push(s),++n)}return i}var u,a=t;for(u in void 0===a&&(a={}),e)a[u]=g(e[u],a[u]);return a}function x(e){function t(){return void 0!==e&&(t.active=!1,e(),!0)}return t.active=!0,t}var F=void 0,f=(E.prototype.mount=function(){var e=this.container,t=e.parentNode;null==t&&document.body.appendChild(e),this.update()},E.prototype.unmount=function(){var e=this.container,t=e.parentNode;null!=t&&t.removeChild(e)},E.prototype.observeFocus=function(e){this.enabled&&e instanceof HTMLElement&&(this.lastFocus&&this.lastFocus.target===e||this.setLastFocus(e))},E.prototype.focus=function(e){!0===(e=null==e?!1:e)&&(this.lastFocus=void 0),!1===e&&!1===(e=this.nextFocus)&&(e=!0),this.nextFocus=e,this.invalidate(!0!==e?e:void 0)},E.prototype.show=function(){var i=this,e=this.container;if(void 0===e)return!1;this.custom||void 0!==this.focusObserver||e.addEventListener("focus",this.focusObserver=function(e){return i.observeFocus(e.target)},!0),this.enabled||(this.nextRefresh=!0,this.focus());var t,n=[],r=this.errors;for(t in r){var o=this.form.elements[t];null!=o&&(o.error=r[t],this.invalidate(t),!1!==o.visible&&(o=this.getParentSection(o),this.isSectionCollapsed(o)&&n.push(o)))}return 0<n.length&&(n.forEach(function(e){var t;i.isAccordionSection(e)?(t=i.findName(e))&&i.updateAccordionSections(t):e.collapsed=!1}),this.invalidate()),this.errors={},this.idle(),!1!==this.nextRefresh&&(this.enabled=!0,this.visible=!0,this.mount()),this.enabled},E.prototype.spin=function(){return void 0!==this.container&&(this.idle(),this.visible&&!this.enabled||(this.nextRefresh=!0,this.enabled=!1,this.visible=!0,this.mount()),this.visible)},E.prototype.hide=function(){return void 0!==this.container&&(this.idle(),this.visible&&(this.enabled=!1,this.visible=!1,this.unmount()),!0)},E.prototype.dispose=function(){if(this.dismiss)return!1;this.dismiss=!0;var e=this.container;e.dispatchEvent(b(y));var t=this.focusObserver;return void 0!==t&&e.removeEventListener("focus",t,!0),this.idle(),this.unmount(),this.refs={},h.releaseForm(this.container),this.container=void 0,this.lastFocus=void 0,!(this.eventTask=void 0)},E.prototype.renderFocus=function(e,t){var i=this.nextFocus;if(this.enabled&&e instanceof HTMLElement)if(!1!==i)if(void 0!==t){if(t===i||!0===i&&void 0===this.lastFocus)return this.nextFocus=!1,this.setLastFocus(e,t),e.focus(),!0}else{var n=null===(n=this.lastFocus)||void 0===n?void 0:n.target;if(!0===i&&n instanceof HTMLElement&&e.contains(n))return this.nextFocus=!1,n.focus(),!0}else if(!1===i&&t&&t!==(null===(i=this.lastFocus)||void 0===i?void 0:i.name)&&this.isElementPositionBeforeLastFocused(t))return this.setLastFocus(e,t),e.focus(),!0;return!1},E.prototype.renderHtml=function(e,t){return"string"==typeof e?p.text.textToHtml(e):p.text.isMarkdown(e)?p.text.markdownToHtml(e.markdown,t):""},E.prototype.renderText=function(e){return"string"==typeof e?e:p.text.isMarkdown(e)?p.text.markdownToText(e.markdown):""},E.prototype.renderStyle=function(e){return"string"==typeof e?(0,p.addStyleToDocument)(e):F=F||(0,p.addStyleToDocument)(m.CSS)},E.prototype.renderVisual=function(e){return h.render(e)||h.renderNone(e)},E.prototype.qualifyDefault=function(e){var t,i=(0,p.sort)(this.form.elements);for(t in i){var n=i[t];if(null!=n&&!1!==n.visible&&n.enabled){if(n.default)return e.value=n.value,t;var r=(0,p.sort)(n.items);if(null!=r)for(var o in r){var s=r[o];if(null!=s&&s.visible&&s.enabled&&s.default)return e.item=o,e.value=s.value,t}}}},E.prototype.qualify=function(e,t){var i;return null==t&&(t={}),"clicked"===e&&void 0===t.name&&(t.name=this.qualifyDefault(t)),t.type=e,void 0===t.routingKey&&(i=t.name,t.routingKey=void 0!==i?e+"$"+i:e),t},E.prototype.post=function(e,t){t=this.publish(e,t);e=this.container;void 0!==e&&e.dispatchEvent(b(y,t))},E.prototype.subscribe=function(i){var e=this.container;if(void 0===e)return x();function n(){i=void 0,e.removeEventListener(y,t)}var t=function(e){var t=e.detail;void 0!==t?u.default.resolve().then(function(){"function"==typeof i&&i(t)}):n()};return e.addEventListener(y,t),x(n)},E.prototype.refresh=function(e){this.custom||("string"==typeof e?(e=this.refs[e],h.refresh(e)):(void 0===this.style&&(this.style=this.renderStyle()),this.refs={},h.refreshForm(this,this.container)))},E.prototype.invalidate=function(e){var t,i=this.nextRefresh;"string"==typeof e&&!0!==i&&(!1===i?this.nextRefresh=((t={})[e]=!0,t):i[e]=!0),void 0!==e&&!0!==e||(this.nextRefresh=!0),!1===e&&!1===i&&(this.nextRefresh={})},E.prototype.update=function(){var e=this.nextRefresh;if(!0===e&&(this.nextRefresh=!1,this.refresh()),"object"==typeof e)for(var t in this.nextRefresh=!1,e)!0===e[t]&&this.refresh(t)},E.prototype.idle=function(){var e=this.timerHandle;void 0!==e&&(this.timerHandle=void 0,e())},E.prototype.busy=function(){var e,t=this;void 0===this.timerHandle&&void 0!==this.container&&(e=setTimeout(function(){return t.spin()}),this.timerHandle=function(){void 0!==e&&(clearTimeout(e),e=void 0)})},E.prototype.publish=function(e,t){return this.enabled?(t=this.enqueue(e,t),0<this.eventQueue.length&&this.spin(),t):this.qualify(e,t)},E.prototype.enqueue=function(e,t){return t=this.qualify(e,t),void 0!==this.eventTask?(this.resolveEvent(t),this.eventTask=void 0):this.eventQueue.push(t),t},E.prototype.dequeue=function(){var e=this.eventQueue;if(0<e.length){var t=this.eventIndex,i=e[t++];return t>=e.length?e.length=this.eventIndex=0:this.eventIndex=t,i}},E.prototype.observe=function(){var t=this;return u.default.attempt(function(){if(void 0!==t.eventTask)return t.eventTask;var e=t.dequeue();return void 0!==e?e:t.show()?(t.eventTask=new o.Task(function(e){t.resolveEvent=e}),t.eventTask):void 0})},E.prototype.load=function(e,t){if(void 0===this.container)return!1;if(this.eventQueue.length=this.eventIndex=0,this.eventTask=void 0,this.errors={},this.lastFocus=void 0,this.nextFocus=!0,this.nextRefresh=!0,this.enqueue("load"),this.enqueue("prepare"),null!=e){var i,e=g(e,e={defaults:{},elements:{}});for(i in this.form=g(t,e),this.form.elements){var n=this.form.elements[i];if((n=g(n,{showFilter:!1,checked:!1,enabled:!0,hoisted:!1,visible:!0,overlay:!1,default:!1,validates:!1,readOnly:!1,require:!1,autoActivate:!1})).items)for(var r in n.items)n.items[r]=g(n.items[r],{enabled:!0,checked:!1,visible:!0,default:!1,validates:!1});this.form.elements[i]=n}}return!0},E.prototype.route=function(e){switch(e.type){case"changed":return this.cascade(e.name);case"prepare":return this.hydrate(e);case"suggest":return this.suggest(e);case"clicked":return this.click(e);case"validate":return this.verify(e);case"verify":return this.submit(e);case"checked":return this.changed(e)}return!1},E.prototype.changed=function(e){return this.enqueue("changed",{name:e.name,item:e.item,value:e.value}),!0},E.prototype.isElementValid=function(e,t,i){return void 0===t&&(t=!0),null!=e&&((i=void 0===i?{status:void 0}:i).status=void 0,p.text.isStatus(e.error)&&"invalid"===e.error.status?!(i.status="invalid"):!0!==e.require||(this.isElementEffectivelyVisible(e)?!!this.isElementValueDefined(e)||!(i.status="missing"):t))},E.prototype.isElementEffectivelyVisible=function(e){if(null==e)return!1;var t=this.getParentSection(e);return(!t||!1!==t.visible)&&!1!==e.visible},E.prototype.isElementValueDefined=function(e){if(null==e)return!1;if("CheckBox"===e.type)return!0;var t=e.current;if(null!=t)return!0;t=e.value;if(null!=t&&""!==t)return!0;t=e.label;if(null!=t&&""!==t)return!0;var i=e.items;if(null!=i)for(var n in i){n=i[n];if(null!=n&&!0===n.checked)return!0}return!1},E.prototype.trap=function(e){switch(e.type){case"populate":case"load":break;default:return!1}var t=e.name,i=this.find(t);if(null==i)return!1;e=i.dependsOn;if("string"!=typeof e)return!1;e=this.find(e);return i.enabled=this.isElementEffectivelyVisible(e)&&this.isElementValueDefined(e),this.invalidate(t),!i.enabled},E.prototype.cascade=function(e){var t=this.find(e);if(null==t||!1===t.dependsOn)return!1;var i,n=((t={})[e]=!0,t),r=(0,p.sort)(this.form.elements);for(i in r){var o,s=r[i],u=s.dependsOn;"string"==typeof u?(void 0!==(o=this.find(u))&&"string"!=typeof o.dependsOn&&(o.dependsOn=!0),!0===n[u]&&(n[i]=!0,s.checked=!1,s.current=void 0,s.label=void 0,s.items=void 0,s.value=void 0,this.invalidate(i),this.enqueue("populate",{name:i}))):s.dependsOn=!1}return!0},E.prototype.click=function(e){var t=this.form.elements[e.name];return null!=t&&"ButtonBar"==t.type&&this.validate(e)},E.prototype.hydrate=function(e){for(var t in(0,p.sort)(this.form.elements))this.enqueue("populate",{name:t}),this.enqueue("load",{name:t});return!0},E.prototype.shouldTriggerValidation=function(e){var t=this.find(e.name);if(null!=t&&"string"==typeof e.value){e=e.item;if("string"!=typeof e)return!0===t.validates;t=t.items;if(null!=t){e=t[e];if(null!=e)return!0===e.validates}}},E.prototype.validate=function(e){var t=this.shouldTriggerValidation(e);if(!0!==t)return!1===t&&(this.enqueue("end",{name:e.name,item:e.item,value:e.value,routingKey:"end"}),!0);var i,n=this.errors={},r=(0,p.sort)(this.form.elements);for(i in r){var o=r[i];null!=o&&(n[i]=void 0,this.enqueue("validate",{name:i}))}return this.enqueue("verify",{name:e.name,item:e.item,value:e.value,routingKey:"verify"}),!0},E.prototype.verify=function(e){var t=e.name,i=this.form.elements[t],e={status:void 0};return!this.isElementValid(i,!0,e)&&(e.status&&(this.errors[t]={status:e.status}),!1===this.nextFocus&&this.focus(t),!0)},E.prototype.suggest=function(e){var t=this.form.elements[e.name];return null!=t&&(t.items={message:{label:{status:"trivial"},enabled:!1}},this.invalidate(e.name),!0)},E.prototype.submit=function(e){return!this.hasErrors()&&(this.enqueue("submit",{name:e.name,item:e.item,value:e.value}),!0)},E.prototype.hasErrors=function(){var e,t=this.errors;for(e in t){var i=t[e];if(null!=i)return!0}return!1},E.prototype.find=function(e){if(null!=e)return"string"==typeof(e="object"==typeof e?e.name:e)?this.form.elements[e]:void 0},E.prototype.findName=function(e){for(var t in this.form.elements)if(this.form.elements[t]===e)return t},E.prototype.coerceNumber=function(e){var t=this.deriveLocale("globalize");return(0,n.default)(t).parseNumber(e)},E.prototype.formatNumber=function(e,t,i){if(i=void 0===i?!1:i)return(0,c.format)(t,e);i=this.deriveLocale("globalize");return(0,n.default)(i).formatNumber(e,t)},E.prototype.renderCustom=function(e,t){if(e instanceof l.FormComponent)return v.element.renderCustom(e,t)},E.prototype.renderState=function(e,t,i){return!1},E.prototype.deriveCalendar=function(e){return a.Calendar.useNative()},E.prototype.deriveLocale=function(e){return void 0===(t=n.default.locale())&&(n.default.load(d.LOCALE),n.default.locale(s.DEFAULT_LOCALE),t=n.default.locale()),t.locale;var t},E.prototype.deriveTimeZone=function(e){return void 0===(t=r.default.tz.names[0])&&r.default.tz.setDefault(t=r.default.tz.guess()),t;var t},E.prototype.getParentSection=function(e){e=e.section;if(e){e="string"==typeof e?e:e.name;return this.form.elements[e]}},E.prototype.isSectionCollapsed=function(e){return!(!e||"Section"!==e.type||"collapsible-section"!==e.format&&"accordion-section"!==e.format)&&!0===e.collapsed},E.prototype.isElementPositionBeforeLastFocused=function(e){var t,i=this.lastFocus;if(e&&i&&void 0!==i.rowNumber&&void 0!==i.rowIndex){e=null===(t=this.form.elements)||void 0===t?void 0:t[e];if(e)return void 0!==e.rowNumber&&void 0!==e.rowIndex?e.rowNumber<i.rowNumber||e.rowNumber===i.rowNumber&&e.rowIndex<i.rowIndex:e.index<i.rowNumber||e.index===i.rowNumber&&0<i.rowIndex}return!1},E.prototype.setLastFocus=function(e,t){this.lastFocus={target:e},t&&(this.lastFocus.name=t,(t=null===(e=this.form.elements)||void 0===e?void 0:e[t])&&(void 0!==t.rowNumber&&void 0!==t.rowIndex?(this.lastFocus.rowNumber=t.rowNumber,this.lastFocus.rowIndex=t.rowIndex):(this.lastFocus.rowNumber=t.index,this.lastFocus.rowIndex=0)))},E.prototype.isSection=function(e){return"Section"===(null==e?void 0:e.type)},E.prototype.isAccordionSection=function(e){return this.isSection(e)&&"accordion-section"===e.format},E.prototype.getAllSectionElements=function(){var e,t={};for(e in this.form.elements){var i=this.form.elements[e];this.isSection(i)&&(t[e]=i)}return t},E.prototype.getMutuallyExclusiveSectionElements=function(e){var t=this;if(!(n=this.mutuallyExclusiveSections[e])){var i=this.find(e);if(!this.isAccordionSection(i))return{};(r={})[e]=i;for(var n=r,r=this.getAllSectionElements(),o=Object.keys((0,p.sort)(r,function(e){return e.rowNumber})),e=o.indexOf(e),s=e-1;0<=s;s--){var u=o[s],a=this.find(u);if(!this.isAccordionSection(a))break;n[u]=a}for(s=e+1;s<o.length;s++){var l=o[s],a=this.find(l);if(!this.isAccordionSection(a))break;n[l]=a}Object.keys(n).forEach(function(e){t.mutuallyExclusiveSections[e]=n})}return n},E.prototype.updateAccordionSections=function(t){var i=this.getMutuallyExclusiveSectionElements(t);Object.keys(i).forEach(function(e){i[e].collapsed=e!==t}),h.refreshForm(this,this.container)},E);function E(){this.form={defaults:{},elements:{}},this.errors={},this.refs={},this.enabled=!1,this.visible=!1,this.dismiss=!1,this.custom=!1,this.container=document.createElement("div"),this.eventIndex=0,this.eventQueue=[],this.mutuallyExclusiveSections={},this.nextFocus=!1,this.nextRefresh=!1,this.style=void 0}t.FormHost=f});
1
+ define(["require","exports","tslib","moment-timezone","../Task","../constants","../deps/bluebird_fork","./Calendar","./FormComponent","./FormDefinition","./NumberParser","./numberFormatter","./presenter","./renderers","./styles/stock","./utils"],function(e,t,i,n,r,o,s,u,a,l,f,c,d,h,v,p){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FormHost=t.defs=void 0,n=(0,i.__importDefault)(n),s=(0,i.__importDefault)(s),l=(0,i.__importStar)(l),f=(0,i.__importDefault)(f),d=(0,i.__importStar)(d),h=(0,i.__importStar)(h),t.defs=l;var m="C0166F74-982A-464E-9FB6-9605CB7649C1:FormEvent";function y(e,t){return new CustomEvent(e,{bubbles:!1,cancelable:!1,detail:t})}function b(e,t){switch(typeof e){case"boolean":case"number":case"string":return e;case"object":break;default:return t}if(null===e)return t;if(e instanceof Array){var i=t;null==i&&(i=[]);for(var n=0,r=0,o=e;r<o.length;r++){var s=b(o[r],i[n]);void 0!==s&&(n<e.length?i[n]=s:i.push(s),++n)}return i}var u,a=t;for(u in void 0===a&&(a={}),e)a[u]=b(e[u],a[u]);return a}function g(e){function t(){return void 0!==e&&(t.active=!1,e(),!0)}return t.active=!0,t}var x=void 0,l=(F.prototype.deriveLocale=function(){return o.DEFAULT_LOCALE},F.prototype.mount=function(){var e=this.container,t=e.parentNode;null==t&&document.body.appendChild(e),this.update()},F.prototype.unmount=function(){var e=this.container,t=e.parentNode;null!=t&&t.removeChild(e)},F.prototype.observeFocus=function(e){this.enabled&&e instanceof HTMLElement&&(this.lastFocus&&this.lastFocus.target===e||this.setLastFocus(e))},F.prototype.focus=function(e){!0===(e=null==e?!1:e)&&(this.lastFocus=void 0),!1===e&&!1===(e=this.nextFocus)&&(e=!0),this.nextFocus=e,this.invalidate(!0!==e?e:void 0)},F.prototype.show=function(){var i=this,e=this.container;if(void 0===e)return!1;this.custom||void 0!==this.focusObserver||e.addEventListener("focus",this.focusObserver=function(e){return i.observeFocus(e.target)},!0),this.enabled||(this.nextRefresh=!0,this.focus());var t,n=[],r=this.errors;for(t in r){var o=this.form.elements[t];null!=o&&(o.error=r[t],this.invalidate(t),!1!==o.visible&&(o=this.getParentSection(o),this.isSectionCollapsed(o)&&n.push(o)))}return 0<n.length&&(n.forEach(function(e){var t;i.isAccordionSection(e)?(t=i.findName(e))&&i.updateAccordionSections(t):e.collapsed=!1}),this.invalidate()),this.errors={},this.idle(),!1!==this.nextRefresh&&(this.enabled=!0,this.visible=!0,this.mount()),this.enabled},F.prototype.spin=function(){return void 0!==this.container&&(this.idle(),this.visible&&!this.enabled||(this.nextRefresh=!0,this.enabled=!1,this.visible=!0,this.mount()),this.visible)},F.prototype.hide=function(){return void 0!==this.container&&(this.idle(),this.visible&&(this.enabled=!1,this.visible=!1,this.unmount()),!0)},F.prototype.dispose=function(){if(this.dismiss)return!1;this.dismiss=!0;var e=this.container;e.dispatchEvent(y(m));var t=this.focusObserver;return void 0!==t&&e.removeEventListener("focus",t,!0),this.idle(),this.unmount(),this.refs={},d.releaseForm(this.container),this.container=void 0,this.lastFocus=void 0,!(this.eventTask=void 0)},F.prototype.renderFocus=function(e,t){var i=this.nextFocus;if(this.enabled&&e instanceof HTMLElement)if(!1!==i)if(void 0!==t){if(t===i||!0===i&&void 0===this.lastFocus)return this.nextFocus=!1,this.setLastFocus(e,t),e.focus(),!0}else{var n=null===(n=this.lastFocus)||void 0===n?void 0:n.target;if(!0===i&&n instanceof HTMLElement&&e.contains(n))return this.nextFocus=!1,n.focus(),!0}else if(!1===i&&t&&t!==(null===(i=this.lastFocus)||void 0===i?void 0:i.name)&&this.isElementPositionBeforeLastFocused(t))return this.setLastFocus(e,t),e.focus(),!0;return!1},F.prototype.renderHtml=function(e,t){return"string"==typeof e?p.text.textToHtml(e):p.text.isMarkdown(e)?p.text.markdownToHtml(e.markdown,t):""},F.prototype.renderText=function(e){return"string"==typeof e?e:p.text.isMarkdown(e)?p.text.markdownToText(e.markdown):""},F.prototype.renderStyle=function(e){return"string"==typeof e?(0,p.addStyleToDocument)(e):x=x||(0,p.addStyleToDocument)(v.CSS)},F.prototype.renderVisual=function(e){return d.render(e)||d.renderNone(e)},F.prototype.qualifyDefault=function(e){var t,i=(0,p.sort)(this.form.elements);for(t in i){var n=i[t];if(null!=n&&!1!==n.visible&&n.enabled){if(n.default)return e.value=n.value,t;var r=(0,p.sort)(n.items);if(null!=r)for(var o in r){var s=r[o];if(null!=s&&s.visible&&s.enabled&&s.default)return e.item=o,e.value=s.value,t}}}},F.prototype.qualify=function(e,t){var i;return null==t&&(t={}),"clicked"===e&&void 0===t.name&&(t.name=this.qualifyDefault(t)),t.type=e,void 0===t.routingKey&&(i=t.name,t.routingKey=void 0!==i?e+"$"+i:e),t},F.prototype.post=function(e,t){t=this.publish(e,t);e=this.container;void 0!==e&&e.dispatchEvent(y(m,t))},F.prototype.subscribe=function(i){var e=this.container;if(void 0===e)return g();function n(){i=void 0,e.removeEventListener(m,t)}var t=function(e){var t=e.detail;void 0!==t?s.default.resolve().then(function(){"function"==typeof i&&i(t)}):n()};return e.addEventListener(m,t),g(n)},F.prototype.refresh=function(e){this.custom||("string"==typeof e?(e=this.refs[e],d.refresh(e)):(void 0===this.style&&(this.style=this.renderStyle()),this.refs={},d.refreshForm(this,this.container)))},F.prototype.invalidate=function(e){var t,i=this.nextRefresh;"string"==typeof e&&!0!==i&&(!1===i?this.nextRefresh=((t={})[e]=!0,t):i[e]=!0),void 0!==e&&!0!==e||(this.nextRefresh=!0),!1===e&&!1===i&&(this.nextRefresh={})},F.prototype.update=function(){var e=this.nextRefresh;if(!0===e&&(this.nextRefresh=!1,this.refresh()),"object"==typeof e)for(var t in this.nextRefresh=!1,e)!0===e[t]&&this.refresh(t)},F.prototype.idle=function(){var e=this.timerHandle;void 0!==e&&(this.timerHandle=void 0,e())},F.prototype.busy=function(){var e,t=this;void 0===this.timerHandle&&void 0!==this.container&&(e=setTimeout(function(){return t.spin()}),this.timerHandle=function(){void 0!==e&&(clearTimeout(e),e=void 0)})},F.prototype.publish=function(e,t){return this.enabled?(t=this.enqueue(e,t),0<this.eventQueue.length&&this.spin(),t):this.qualify(e,t)},F.prototype.enqueue=function(e,t){return t=this.qualify(e,t),void 0!==this.eventTask?(this.resolveEvent(t),this.eventTask=void 0):this.eventQueue.push(t),t},F.prototype.dequeue=function(){var e=this.eventQueue;if(0<e.length){var t=this.eventIndex,i=e[t++];return t>=e.length?e.length=this.eventIndex=0:this.eventIndex=t,i}},F.prototype.observe=function(){var t=this;return s.default.attempt(function(){if(void 0!==t.eventTask)return t.eventTask;var e=t.dequeue();return void 0!==e?e:t.show()?(t.eventTask=new r.Task(function(e){t.resolveEvent=e}),t.eventTask):void 0})},F.prototype.load=function(e,t){if(void 0===this.container)return!1;if(this.eventQueue.length=this.eventIndex=0,this.eventTask=void 0,this.errors={},this.lastFocus=void 0,this.nextFocus=!0,this.nextRefresh=!0,this.enqueue("load"),this.enqueue("prepare"),null!=e){var i,e=b(e,e={defaults:{},elements:{}});for(i in this.form=b(t,e),this.form.elements){var n=this.form.elements[i];if((n=b(n,{showFilter:!1,checked:!1,enabled:!0,hoisted:!1,visible:!0,overlay:!1,default:!1,validates:!1,readOnly:!1,require:!1,autoActivate:!1})).items)for(var r in n.items)n.items[r]=b(n.items[r],{enabled:!0,checked:!1,visible:!0,default:!1,validates:!1});this.form.elements[i]=n}}return!0},F.prototype.route=function(e){switch(e.type){case"changed":return this.cascade(e.name);case"prepare":return this.hydrate(e);case"suggest":return this.suggest(e);case"clicked":return this.click(e);case"validate":return this.verify(e);case"verify":return this.submit(e);case"checked":return this.changed(e)}return!1},F.prototype.changed=function(e){return this.enqueue("changed",{name:e.name,item:e.item,value:e.value}),!0},F.prototype.isElementValid=function(e,t,i){return void 0===t&&(t=!0),null!=e&&((i=void 0===i?{status:void 0}:i).status=void 0,p.text.isStatus(e.error)&&"invalid"===e.error.status?!(i.status="invalid"):!0!==e.require||(this.isElementEffectivelyVisible(e)?!!this.isElementValueDefined(e)||!(i.status="missing"):t))},F.prototype.isElementEffectivelyVisible=function(e){if(null==e)return!1;var t=this.getParentSection(e);return(!t||!1!==t.visible)&&!1!==e.visible},F.prototype.isElementValueDefined=function(e){if(null==e)return!1;if("CheckBox"===e.type)return!0;var t=e.current;if(null!=t)return!0;t=e.value;if(null!=t&&""!==t)return!0;t=e.label;if(null!=t&&""!==t)return!0;var i=e.items;if(null!=i)for(var n in i){n=i[n];if(null!=n&&!0===n.checked)return!0}return!1},F.prototype.trap=function(e){switch(e.type){case"populate":case"load":break;default:return!1}var t=e.name,i=this.find(t);if(null==i)return!1;e=i.dependsOn;if("string"!=typeof e)return!1;e=this.find(e);return i.enabled=this.isElementEffectivelyVisible(e)&&this.isElementValueDefined(e),this.invalidate(t),!i.enabled},F.prototype.cascade=function(e){var t=this.find(e);if(null==t||!1===t.dependsOn)return!1;var i,n=((t={})[e]=!0,t),r=(0,p.sort)(this.form.elements);for(i in r){var o,s=r[i],u=s.dependsOn;"string"==typeof u?(void 0!==(o=this.find(u))&&"string"!=typeof o.dependsOn&&(o.dependsOn=!0),!0===n[u]&&(n[i]=!0,s.checked=!1,s.current=void 0,s.label=void 0,s.items=void 0,s.value=void 0,this.invalidate(i),this.enqueue("populate",{name:i}))):s.dependsOn=!1}return!0},F.prototype.click=function(e){var t=this.form.elements[e.name];return null!=t&&"ButtonBar"==t.type&&this.validate(e)},F.prototype.hydrate=function(e){for(var t in(0,p.sort)(this.form.elements))this.enqueue("populate",{name:t}),this.enqueue("load",{name:t});return!0},F.prototype.shouldTriggerValidation=function(e){var t=this.find(e.name);if(null!=t&&"string"==typeof e.value){e=e.item;if("string"!=typeof e)return!0===t.validates;t=t.items;if(null!=t){e=t[e];if(null!=e)return!0===e.validates}}},F.prototype.validate=function(e){var t=this.shouldTriggerValidation(e);if(!0!==t)return!1===t&&(this.enqueue("end",{name:e.name,item:e.item,value:e.value,routingKey:"end"}),!0);var i,n=this.errors={},r=(0,p.sort)(this.form.elements);for(i in r){var o=r[i];null!=o&&(n[i]=void 0,this.enqueue("validate",{name:i}))}return this.enqueue("verify",{name:e.name,item:e.item,value:e.value,routingKey:"verify"}),!0},F.prototype.verify=function(e){var t=e.name,i=this.form.elements[t],e={status:void 0};return!this.isElementValid(i,!0,e)&&(e.status&&(this.errors[t]={status:e.status}),!1===this.nextFocus&&this.focus(t),!0)},F.prototype.suggest=function(e){var t=this.form.elements[e.name];return null!=t&&(t.items={message:{label:{status:"trivial"},enabled:!1}},this.invalidate(e.name),!0)},F.prototype.submit=function(e){return!this.hasErrors()&&(this.enqueue("submit",{name:e.name,item:e.item,value:e.value}),!0)},F.prototype.hasErrors=function(){var e,t=this.errors;for(e in t){var i=t[e];if(null!=i)return!0}return!1},F.prototype.find=function(e){if(null!=e)return"string"==typeof(e="object"==typeof e?e.name:e)?this.form.elements[e]:void 0},F.prototype.findName=function(e){for(var t in this.form.elements)if(this.form.elements[t]===e)return t},F.prototype.coerceNumber=function(e){var t=this.deriveLocale();return new f.default(t).parse(e)},F.prototype.formatNumber=function(e,t){return null!=t&&t.locale||((t=t||{}).locale=this.deriveLocale()),(0,c.format)(t,e)},F.prototype.renderCustom=function(e,t){if(e instanceof a.FormComponent)return h.element.renderCustom(e,t)},F.prototype.renderState=function(e,t,i){return!1},F.prototype.deriveCalendar=function(e){return u.Calendar.useNative()},F.prototype.deriveTimeZone=function(){return void 0===(e=n.default.tz.names[0])&&n.default.tz.setDefault(e=n.default.tz.guess()),e;var e},F.prototype.getParentSection=function(e){e=e.section;if(e){e="string"==typeof e?e:e.name;return this.form.elements[e]}},F.prototype.isSectionCollapsed=function(e){return!(!e||"Section"!==e.type||"collapsible-section"!==e.format&&"accordion-section"!==e.format)&&!0===e.collapsed},F.prototype.isElementPositionBeforeLastFocused=function(e){var t,i=this.lastFocus;if(e&&i&&void 0!==i.rowNumber&&void 0!==i.rowIndex){e=null===(t=this.form.elements)||void 0===t?void 0:t[e];if(e)return void 0!==e.rowNumber&&void 0!==e.rowIndex?e.rowNumber<i.rowNumber||e.rowNumber===i.rowNumber&&e.rowIndex<i.rowIndex:e.index<i.rowNumber||e.index===i.rowNumber&&0<i.rowIndex}return!1},F.prototype.setLastFocus=function(e,t){this.lastFocus={target:e},t&&(this.lastFocus.name=t,(t=null===(e=this.form.elements)||void 0===e?void 0:e[t])&&(void 0!==t.rowNumber&&void 0!==t.rowIndex?(this.lastFocus.rowNumber=t.rowNumber,this.lastFocus.rowIndex=t.rowIndex):(this.lastFocus.rowNumber=t.index,this.lastFocus.rowIndex=0)))},F.prototype.isSection=function(e){return"Section"===(null==e?void 0:e.type)},F.prototype.isAccordionSection=function(e){return this.isSection(e)&&"accordion-section"===e.format},F.prototype.getAllSectionElements=function(){var e,t={};for(e in this.form.elements){var i=this.form.elements[e];this.isSection(i)&&(t[e]=i)}return t},F.prototype.getMutuallyExclusiveSectionElements=function(e){var t=this;if(!(n=this.mutuallyExclusiveSections[e])){var i=this.find(e);if(!this.isAccordionSection(i))return{};(r={})[e]=i;for(var n=r,r=this.getAllSectionElements(),o=Object.keys((0,p.sort)(r,function(e){return e.rowNumber})),e=o.indexOf(e),s=e-1;0<=s;s--){var u=o[s],a=this.find(u);if(!this.isAccordionSection(a))break;n[u]=a}for(s=e+1;s<o.length;s++){var l=o[s],a=this.find(l);if(!this.isAccordionSection(a))break;n[l]=a}Object.keys(n).forEach(function(e){t.mutuallyExclusiveSections[e]=n})}return n},F.prototype.updateAccordionSections=function(t){var i=this.getMutuallyExclusiveSectionElements(t);Object.keys(i).forEach(function(e){i[e].collapsed=e!==t}),d.refreshForm(this,this.container)},F);function F(){this.form={defaults:{},elements:{}},this.errors={},this.refs={},this.enabled=!1,this.visible=!1,this.dismiss=!1,this.custom=!1,this.container=document.createElement("div"),this.eventIndex=0,this.eventQueue=[],this.mutuallyExclusiveSections={},this.nextFocus=!1,this.nextRefresh=!1,this.style=void 0}t.FormHost=l});
@@ -1,8 +1,6 @@
1
1
  import { Calendar } from "./Calendar";
2
2
  import * as defs from "./FormDefinition";
3
3
  import { FormatOptions } from "./numberFormatter";
4
- /** Concrete types of facilities which deviate in terms of functionality. */
5
- export declare type Facility = "browser" | "globalize" | "moment";
6
4
  /** Exposes various features to components that require features of the environment. */
7
5
  export interface FormPresenterHost {
8
6
  /** Indicates if the form is enabled or not. */
@@ -37,17 +35,16 @@ export interface FormPresenterHost {
37
35
  }): defs.Element;
38
36
  /** Coerces a number from a value. */
39
37
  coerceNumber(value: string): number;
40
- /** Formats a value into a string. If 'useBrowserIntlApi' is true then options must be of type 'FormatOptions'. */
41
- formatNumber(value: number, options: Intl.NumberFormatOptions | FormatOptions, useBrowserIntlApi?: boolean): string;
38
+ /** Formats a value into a string. */
39
+ formatNumber(value: number, options: FormatOptions): string;
42
40
  /** Formats a value into a string. */
43
41
  deriveCalendar(format: defs.DateTimeFormat): Calendar;
44
42
  /**
45
- * Derives the current locale based on the provided facility. If the facility is undefined
46
- * then the workflow locale set by the host application (or default if undefined) will be returned.
43
+ * Derives the current locale set by the host application (or default if undefined) will be returned.
47
44
  */
48
- deriveLocale(facility?: Facility): string;
45
+ deriveLocale(): string;
49
46
  /** Derives the current time zone. */
50
- deriveTimeZone(facility: Facility): string;
47
+ deriveTimeZone(): string;
51
48
  /**
52
49
  * Collapses all neighbouring accordion sections except the one specified.
53
50
  * @param expandedAccordionSection The name of the accordion section to be expanded. All others in the group will be collapsed.
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Parses a number based on the specified locale.
3
+ *
4
+ * WARNING: This technique assumes a positional number system, which isn't always the case for every locale (e.g. Hebrew, Korean).
5
+ * It seems though that at the moment, in all major browsers, `Intl.NumberFormat` will format these non-positional number systems
6
+ * using Western Arabic numerals ("123..."), so this works for now. But if any browser ever implements proper
7
+ * number system support for these locales, then this algorithm will no longer parse those locales properly.
8
+ */
9
+ export default class NumberParser {
10
+ private _group;
11
+ private _decimal;
12
+ private _numeral;
13
+ private _index;
14
+ /**
15
+ * Creates a new instance of the {@link NumberParser} class.
16
+ * @param locale The locale to use for parsing the text.
17
+ */
18
+ constructor(locale: string);
19
+ /**
20
+ * Parses a localized string representation of a number and returns the numeric value.
21
+ * @param str A localized string representation of a number.
22
+ * @returns The numeric value of the string.
23
+ */
24
+ parse(str: string): number;
25
+ }
@@ -0,0 +1 @@
1
+ define(["require","exports"],function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=(n.prototype.parse=function(e){e=e.trim().replace(this._group,"").replace(this._decimal,".").replace(this._numeral,this._index);return e?+e:NaN},n);function n(e){var t=new Intl.NumberFormat(e).formatToParts(12345.6),e=Array.from(new Intl.NumberFormat(e,{useGrouping:!1}).format(9876543210)).reverse(),r=new Map(e.map(function(e,t){return[e,t.toString()]}));this._group=new RegExp("[".concat(t.find(function(e){return"group"===e.type}).value,"]"),"g"),this._decimal=new RegExp("[".concat(t.find(function(e){return"decimal"===e.type}).value,"]")),this._numeral=new RegExp("[".concat(e.join(""),"]"),"g"),this._index=function(e){return r.get(e)}}t.default=r});
@@ -1 +1 @@
1
- define(["require","exports","tslib","react","react-range","../FormElementOuter","../common","../constants","../numberSliderUtilities","../utils"],function(e,k,F,L,I,w,R,U,P,B){"use strict";Object.defineProperty(k,"__esModule",{value:!0}),k.DEFAULT_STEP=k.DEFAULT_DECIMALS=k.MIN_DECIMALS=void 0,L=(0,F.__importStar)(L),w=(0,F.__importDefault)(w),k.MIN_DECIMALS=0,k.DEFAULT_DECIMALS=0,k.DEFAULT_STEP=0;k.default=function(e){function t(e){n.value=o.current=e}var a=e.component,n=e.element,r=(0,L.useMemo)(function(){return(0,P.getProcessedNumberFormat)(n.format,k.MIN_DECIMALS,k.DEFAULT_DECIMALS,k.DEFAULT_STEP)},[]),o=(0,L.useRef)(null),u=(0,L.useState)(),i=u[0],l=u[1],s=(0,L.useState)(),c=s[0],d=s[1];(0,L.useEffect)(function(){var e;null!==o.current&&n.value===o.current||(e=(0,P.getNumberSliderValues)(n.value,r),t(e),T(e))},[n.value]);var e=a.props,m=e.host,f=e.name,p=!a.enabled,u=(0,R.useFocusCallback)(a),v=r.lowerBound,g=r.upperBound,s=r.precision,_=n.showMinMaxLabels,x=n.manualEntry,E=r.step,y=n.showTickMarks,y=0<E&&y;0===E&&(E=1/Math.pow(10,s));function b(e){e=N(e),T(e),(Array.isArray(o.current)||e[0]===v&&e[1]===g)&&(!Array.isArray(o.current)||e[0]===o.current[0]&&e[1]===o.current[1])||(t(e),m.post("changed",{name:f,value:n.value}))}function h(e){a.autoInput=!0}function A(e){return e.target.select()}function N(e){return[e[0]<v?v:e[0]>g?g:e[0],e[1]>g?g:e[1]<v?v:e[1]].sort(function(e,t){return e-t})}function C(e,t,n,r,a,o){return L.default.createElement("div",{style:{position:"absolute",top:t,color:a=void 0===a?"#fff":a,fontWeight:"bold",fontSize:"14px",fontFamily:"Arial,Helvetica Neue,Helvetica,sans-serif",padding:"4px",borderRadius:"5px",backgroundColor:o=void 0===o?"#197dc8":o,left:n,right:r,whiteSpace:"nowrap"}},e)}var D={currency:r.currency,customDisplayFormat:r.customDisplayFormat,format:r.displayFormat,fractionalDigits:s,locale:m.deriveLocale()},e=m.renderText(n.tooltip),s=[n.type,(0,B.makeSafeClassName)(f)],M=(0,L.useMemo)(function(){return(0,B.throttle)(function(e){m.post("dragged",{name:f,value:e})})},[]),S=function(e,t){var n=i.slice(),e=""!==e?Number(e):NaN;isNaN(e)?T(n):(0===t?(e=e<v?v:e)>n[1]&&(e=n[1]):(e=g<e?g:e)<n[0]&&(e=n[0]),n[t]=e,b(n))},T=function(e){l(e),d(e)};return i?L.default.createElement(w.default,{className:s.join(" "),component:a,element:n,errorClassName:U.CssClasses.ERROR},L.default.createElement("div",{className:"slider-container",title:e},L.default.createElement(I.Range,{draggableTrack:!0,step:E,min:v,max:g,values:i,onChange:function(e){e=N(e),T(e),Array.isArray(n.value)&&e[0]===n.value[0]&&e[1]===n.value[1]||M(e)},onFinalChange:b,renderMark:function(e){var t=e.props,n=e.index,e=v+n*E,n=g<e,e=e>i[0]&&e<i[1]?"#197dc8":"#ccc";return y&&!n&&L.default.createElement("div",(0,F.__assign)({},t,{style:(0,F.__assign)((0,F.__assign)({},t.style),{height:"16px",width:"2px",backgroundColor:e})}))},renderTrack:function(e){var t=e.props,e=e.children;return L.default.createElement("div",(0,F.__assign)({},t,{style:(0,F.__assign)((0,F.__assign)({},t.style),{height:"6px",margin:"50px 0px 24px",width:"100%",background:(0,I.getTrackBackground)({values:i,colors:["#ccc","#197dc8","#ccc"],min:v,max:g,rtl:!1})})}),!1!==_&&C(m.formatNumber(v,D,!0),"20px","-12px",void 0,"#333","#fff"),!1!==_&&C(m.formatNumber(g,D,!0),"20px",void 0,"-12px","#333","#fff"),e)},renderThumb:function(e){var t=e.props,n=e.value,r=e.index,a=g-v,e=n-v,n=e<a/10?"0":"auto",e=9*a/10<e?"0":"auto";return L.default.createElement("div",(0,F.__assign)({},t,{style:(0,F.__assign)((0,F.__assign)({},t.style),{height:"24px",width:"24px",borderRadius:"12px",backgroundColor:"#197dc8",display:"flex",justifyContent:"center",alignItems:"center",boxShadow:"0px 2px 4px #AAA",outline:"none"})}),C(m.formatNumber(i[r],D,!0),"-32px",n,e))},disabled:p,ref:u})),x||!c?null:L.default.createElement("div",{className:"inputs"},c.map(function(e,r){return L.default.createElement("span",null,0===r?m.renderText("@common-start"):m.renderText("@common-end"),L.default.createElement("input",{key:r,type:"number",disabled:p,min:0===r?v:i[0],max:0===r?i[1]:g,step:E,title:e+"",value:e,onBlur:function(e){S(e.target.value,r)},onChange:function(e){return t=e,n=r,(e=c.slice())[n]=t.target.value,d(e),void(a.autoInput&&S(t.target.value,n));var t,n},onKeyDown:function(e){return t=r,(e=e).stopPropagation(),a.autoInput=!1,void("Enter"===e.key?S(c[t]+"",t):"Escape"===e.key&&T(i.slice()));var t},onMouseDown:h,onFocus:A}))}))):null}});
1
+ define(["require","exports","tslib","react","react-range","../FormElementOuter","../common","../constants","../numberSliderUtilities","../utils"],function(e,k,F,L,I,w,R,U,P,B){"use strict";Object.defineProperty(k,"__esModule",{value:!0}),k.DEFAULT_STEP=k.DEFAULT_DECIMALS=k.MIN_DECIMALS=void 0,L=(0,F.__importStar)(L),w=(0,F.__importDefault)(w),k.MIN_DECIMALS=0,k.DEFAULT_DECIMALS=0,k.DEFAULT_STEP=0;k.default=function(e){function t(e){n.value=o.current=e}var a=e.component,n=e.element,r=(0,L.useMemo)(function(){return(0,P.getProcessedNumberFormat)(n.format,k.MIN_DECIMALS,k.DEFAULT_DECIMALS,k.DEFAULT_STEP)},[]),o=(0,L.useRef)(null),u=(0,L.useState)(),i=u[0],l=u[1],s=(0,L.useState)(),c=s[0],d=s[1];(0,L.useEffect)(function(){var e;null!==o.current&&n.value===o.current||(e=(0,P.getNumberSliderValues)(n.value,r),t(e),T(e))},[n.value]);var e=a.props,m=e.host,f=e.name,p=!a.enabled,u=(0,R.useFocusCallback)(a),v=r.lowerBound,g=r.upperBound,s=r.precision,_=n.showMinMaxLabels,x=n.manualEntry,E=r.step,y=n.showTickMarks,y=0<E&&y;0===E&&(E=1/Math.pow(10,s));function b(e){e=N(e),T(e),(Array.isArray(o.current)||e[0]===v&&e[1]===g)&&(!Array.isArray(o.current)||e[0]===o.current[0]&&e[1]===o.current[1])||(t(e),m.post("changed",{name:f,value:n.value}))}function h(e){a.autoInput=!0}function A(e){return e.target.select()}function N(e){return[e[0]<v?v:e[0]>g?g:e[0],e[1]>g?g:e[1]<v?v:e[1]].sort(function(e,t){return e-t})}function C(e,t,n,r,a,o){return L.default.createElement("div",{style:{position:"absolute",top:t,color:a=void 0===a?"#fff":a,fontWeight:"bold",fontSize:"14px",fontFamily:"Arial,Helvetica Neue,Helvetica,sans-serif",padding:"4px",borderRadius:"5px",backgroundColor:o=void 0===o?"#197dc8":o,left:n,right:r,whiteSpace:"nowrap"}},e)}var D={currency:r.currency,customDisplayFormat:r.customDisplayFormat,format:r.displayFormat,fractionalDigits:s,locale:m.deriveLocale()},e=m.renderText(n.tooltip),s=[n.type,(0,B.makeSafeClassName)(f)],M=(0,L.useMemo)(function(){return(0,B.throttle)(function(e){m.post("dragged",{name:f,value:e})})},[]),S=function(e,t){var n=i.slice(),e=""!==e?Number(e):NaN;isNaN(e)?T(n):(0===t?(e=e<v?v:e)>n[1]&&(e=n[1]):(e=g<e?g:e)<n[0]&&(e=n[0]),n[t]=e,b(n))},T=function(e){l(e),d(e)};return i?L.default.createElement(w.default,{className:s.join(" "),component:a,element:n,errorClassName:U.CssClasses.ERROR},L.default.createElement("div",{className:"slider-container",title:e},L.default.createElement(I.Range,{draggableTrack:!0,step:E,min:v,max:g,values:i,onChange:function(e){e=N(e),T(e),Array.isArray(n.value)&&e[0]===n.value[0]&&e[1]===n.value[1]||M(e)},onFinalChange:b,renderMark:function(e){var t=e.props,n=e.index,e=v+n*E,n=g<e,e=e>i[0]&&e<i[1]?"#197dc8":"#ccc";return y&&!n&&L.default.createElement("div",(0,F.__assign)({},t,{style:(0,F.__assign)((0,F.__assign)({},t.style),{height:"16px",width:"2px",backgroundColor:e})}))},renderTrack:function(e){var t=e.props,e=e.children;return L.default.createElement("div",(0,F.__assign)({},t,{style:(0,F.__assign)((0,F.__assign)({},t.style),{height:"6px",margin:"50px 0px 24px",width:"100%",background:(0,I.getTrackBackground)({values:i,colors:["#ccc","#197dc8","#ccc"],min:v,max:g,rtl:!1})})}),!1!==_&&C(m.formatNumber(v,D),"20px","-12px",void 0,"#333","#fff"),!1!==_&&C(m.formatNumber(g,D),"20px",void 0,"-12px","#333","#fff"),e)},renderThumb:function(e){var t=e.props,n=e.value,r=e.index,a=g-v,e=n-v,n=e<a/10?"0":"auto",e=9*a/10<e?"0":"auto";return L.default.createElement("div",(0,F.__assign)({},t,{style:(0,F.__assign)((0,F.__assign)({},t.style),{height:"24px",width:"24px",borderRadius:"12px",backgroundColor:"#197dc8",display:"flex",justifyContent:"center",alignItems:"center",boxShadow:"0px 2px 4px #AAA",outline:"none"})}),C(m.formatNumber(i[r],D),"-32px",n,e))},disabled:p,ref:u})),x||!c?null:L.default.createElement("div",{className:"inputs"},c.map(function(e,r){return L.default.createElement("span",null,0===r?m.renderText("@common-start"):m.renderText("@common-end"),L.default.createElement("input",{key:r,type:"number",disabled:p,min:0===r?v:i[0],max:0===r?i[1]:g,step:E,title:e+"",value:e,onBlur:function(e){S(e.target.value,r)},onChange:function(e){return t=e,n=r,(e=c.slice())[n]=t.target.value,d(e),void(a.autoInput&&S(t.target.value,n));var t,n},onKeyDown:function(e){return t=r,(e=e).stopPropagation(),a.autoInput=!1,void("Enter"===e.key?S(c[t]+"",t):"Escape"===e.key&&T(i.slice()));var t},onMouseDown:h,onFocus:A}))}))):null}});
@@ -1 +1 @@
1
- define(["require","exports","tslib","react","react-range","../FormElementOuter","../common","../constants","../numberFormatter","../numberSliderUtilities","../utils"],function(e,k,w,P,R,U,O,j,B,H,V){"use strict";Object.defineProperty(k,"__esModule",{value:!0}),k.DEFAULT_STEP=k.DEFAULT_DECIMALS=k.MIN_DECIMALS=void 0,P=(0,w.__importStar)(P),U=(0,w.__importDefault)(U),k.MIN_DECIMALS=-20,k.DEFAULT_DECIMALS=3,k.DEFAULT_STEP=1;k.default=function(e){function n(e){u.value=s.current=(e=e,{refValueType:"number",format:l,display:o.formatNumber(e,_,!0),numeric:e})}var t=e.component,a=t.props,o=a.host,r=a.name,u=e.element,i=!t.enabled,l=(0,P.useMemo)(function(){return(0,H.getProcessedNumberFormat)(u.format,k.MIN_DECIMALS,k.DEFAULT_DECIMALS,k.DEFAULT_STEP)},[]),s=(0,P.useRef)(null),c=l.lowerBound,m=l.upperBound,d=l.precision,f=u.showMinMaxLabels,p=u.manualEntry,_={currency:l.currency,customDisplayFormat:l.customDisplayFormat,format:l.displayFormat,fractionalDigits:d,locale:o.deriveLocale()},g=(0,w.__assign)((0,w.__assign)({},_),{format:B.NumberDisplayFormat.FIXED_POINT}),a=(0,P.useState)(),v=a[0],E=a[1],e=(0,P.useState)(),b=e[0],x=e[1];(0,P.useEffect)(function(){var e;null!==s.current&&u.value===s.current||(e=(0,H.getNumberSliderValues)(u.value,l,!0),n(e[0]),L(e[0]))},[u.value]);var a=(0,O.useFocusCallback)(t),y=l.step,h=u.showTickMarks,h=0<y&&h;0===y&&(y=1/Math.pow(10,d));function N(e){var t=e[0],t=A(t);L(t),t!==(null===(e=s.current)||void 0===e?void 0:e.numeric)&&(n(t),o.post("changed",{name:r,value:u.value}))}function D(e){x(e.target.value),t.autoInput&&T(e.target.value)}function C(e){T(e.target.value)}function F(e){e.stopPropagation(),t.autoInput=!1,"Enter"===e.key?T(b+""):"Escape"===e.key&&L(v)}function S(e){t.autoInput=!0}function M(e){return e.target.select()}function A(e){return e<c?c:m<e?m:e}function I(e,t,n,a,r,o){return P.default.createElement("div",{style:{position:"absolute",top:t,color:r=void 0===r?"#fff":r,fontWeight:"bold",fontSize:"14px",fontFamily:"Arial,Helvetica Neue,Helvetica,sans-serif",padding:"4px",borderRadius:"5px",backgroundColor:o=void 0===o?"#197dc8":o,left:n,right:a,whiteSpace:"nowrap"}},e)}var e=o.renderText(u.tooltip),d=[u.type,(0,V.makeSafeClassName)(r)],T=function(e){e=""!==e?Number(e):NaN;isNaN(e)?L(e):N([e=m<(e=e<c?c:e)?m:e])},L=function(e){E(e),x(o.formatNumber(e,g,!0))};return P.default.createElement(U.default,{className:d.join(" "),component:t,element:u,errorClassName:j.CssClasses.ERROR},P.default.createElement("div",{className:"slider-container",title:e},P.default.createElement(R.Range,{step:y,min:c,max:m,values:[v],onChange:function(e){e=e[0],e=A(e);L(e)},onFinalChange:N,renderMark:function(e){var t=e.props,e=e.index;return h&&!(m<c+e*y)&&P.default.createElement("div",(0,w.__assign)({},t,{style:(0,w.__assign)((0,w.__assign)({},t.style),{height:"16px",width:"2px",backgroundColor:"#ccc"})}))},renderTrack:function(e){var t=e.props,e=e.children;return P.default.createElement("div",(0,w.__assign)({},t,{style:(0,w.__assign)((0,w.__assign)({},t.style),{height:"6px",margin:"50px 0px 24px",width:"100%",background:"#ccc"})}),!1!==f&&I(o.formatNumber(c,_,!0),"20px","-12px",void 0,"#333","#fff"),!1!==f&&I(o.formatNumber(m,_,!0),"20px",void 0,"-12px","#333","#fff"),e)},renderThumb:function(e){var t=e.props,n=e.value,a=(e.index,m-c),r=n-c,e=r<a/10?"0":"auto",r=9*a/10<r?"0":"auto";return P.default.createElement("div",(0,w.__assign)({},t,{style:(0,w.__assign)((0,w.__assign)({},t.style),{height:"24px",width:"24px",borderRadius:"12px",backgroundColor:"#197dc8",display:"flex",justifyContent:"center",alignItems:"center",boxShadow:"0px 2px 4px #AAA",outline:"none"})}),I(o.formatNumber(n,_,!0),"-32px",e,r))},disabled:i,ref:a})),!1===p?null:P.default.createElement("div",{className:"inputs"},P.default.createElement("span",null,P.default.createElement("input",{type:"number",disabled:i,min:c,max:m,step:y,title:b+"",value:b,onBlur:C,onChange:D,onKeyDown:F,onMouseDown:S,onFocus:M}))))}});
1
+ define(["require","exports","tslib","react","react-range","../FormElementOuter","../common","../constants","../numberFormatter","../numberSliderUtilities","../utils"],function(e,k,w,P,R,U,O,j,B,H,V){"use strict";Object.defineProperty(k,"__esModule",{value:!0}),k.DEFAULT_STEP=k.DEFAULT_DECIMALS=k.MIN_DECIMALS=void 0,P=(0,w.__importStar)(P),U=(0,w.__importDefault)(U),k.MIN_DECIMALS=-20,k.DEFAULT_DECIMALS=3,k.DEFAULT_STEP=1;k.default=function(e){function n(e){u.value=s.current=(e=e,{refValueType:"number",format:l,display:o.formatNumber(e,_),numeric:e})}var t=e.component,a=t.props,o=a.host,r=a.name,u=e.element,i=!t.enabled,l=(0,P.useMemo)(function(){return(0,H.getProcessedNumberFormat)(u.format,k.MIN_DECIMALS,k.DEFAULT_DECIMALS,k.DEFAULT_STEP)},[]),s=(0,P.useRef)(null),c=l.lowerBound,m=l.upperBound,d=l.precision,f=u.showMinMaxLabels,p=u.manualEntry,_={currency:l.currency,customDisplayFormat:l.customDisplayFormat,format:l.displayFormat,fractionalDigits:d,locale:o.deriveLocale()},g=(0,w.__assign)((0,w.__assign)({},_),{format:B.NumberDisplayFormat.FIXED_POINT}),a=(0,P.useState)(),v=a[0],E=a[1],e=(0,P.useState)(),b=e[0],x=e[1];(0,P.useEffect)(function(){var e;null!==s.current&&u.value===s.current||(e=(0,H.getNumberSliderValues)(u.value,l,!0),n(e[0]),L(e[0]))},[u.value]);var a=(0,O.useFocusCallback)(t),y=l.step,h=u.showTickMarks,h=0<y&&h;0===y&&(y=1/Math.pow(10,d));function N(e){var t=e[0],t=A(t);L(t),t!==(null===(e=s.current)||void 0===e?void 0:e.numeric)&&(n(t),o.post("changed",{name:r,value:u.value}))}function D(e){x(e.target.value),t.autoInput&&T(e.target.value)}function C(e){T(e.target.value)}function F(e){e.stopPropagation(),t.autoInput=!1,"Enter"===e.key?T(b+""):"Escape"===e.key&&L(v)}function S(e){t.autoInput=!0}function M(e){return e.target.select()}function A(e){return e<c?c:m<e?m:e}function I(e,t,n,a,r,o){return P.default.createElement("div",{style:{position:"absolute",top:t,color:r=void 0===r?"#fff":r,fontWeight:"bold",fontSize:"14px",fontFamily:"Arial,Helvetica Neue,Helvetica,sans-serif",padding:"4px",borderRadius:"5px",backgroundColor:o=void 0===o?"#197dc8":o,left:n,right:a,whiteSpace:"nowrap"}},e)}var e=o.renderText(u.tooltip),d=[u.type,(0,V.makeSafeClassName)(r)],T=function(e){e=""!==e?Number(e):NaN;isNaN(e)?L(e):N([e=m<(e=e<c?c:e)?m:e])},L=function(e){E(e),x(o.formatNumber(e,g))};return P.default.createElement(U.default,{className:d.join(" "),component:t,element:u,errorClassName:j.CssClasses.ERROR},P.default.createElement("div",{className:"slider-container",title:e},P.default.createElement(R.Range,{step:y,min:c,max:m,values:[v],onChange:function(e){e=e[0],e=A(e);L(e)},onFinalChange:N,renderMark:function(e){var t=e.props,e=e.index;return h&&!(m<c+e*y)&&P.default.createElement("div",(0,w.__assign)({},t,{style:(0,w.__assign)((0,w.__assign)({},t.style),{height:"16px",width:"2px",backgroundColor:"#ccc"})}))},renderTrack:function(e){var t=e.props,e=e.children;return P.default.createElement("div",(0,w.__assign)({},t,{style:(0,w.__assign)((0,w.__assign)({},t.style),{height:"6px",margin:"50px 0px 24px",width:"100%",background:"#ccc"})}),!1!==f&&I(o.formatNumber(c,_),"20px","-12px",void 0,"#333","#fff"),!1!==f&&I(o.formatNumber(m,_),"20px",void 0,"-12px","#333","#fff"),e)},renderThumb:function(e){var t=e.props,n=e.value,a=(e.index,m-c),r=n-c,e=r<a/10?"0":"auto",r=9*a/10<r?"0":"auto";return P.default.createElement("div",(0,w.__assign)({},t,{style:(0,w.__assign)((0,w.__assign)({},t.style),{height:"24px",width:"24px",borderRadius:"12px",backgroundColor:"#197dc8",display:"flex",justifyContent:"center",alignItems:"center",boxShadow:"0px 2px 4px #AAA",outline:"none"})}),I(o.formatNumber(n,_),"-32px",e,r))},disabled:i,ref:a})),!1===p?null:P.default.createElement("div",{className:"inputs"},P.default.createElement("span",null,P.default.createElement("input",{type:"number",disabled:i,min:c,max:m,step:y,title:b+"",value:b,onBlur:C,onChange:D,onKeyDown:F,onMouseDown:S,onFocus:M}))))}});
@@ -1 +1 @@
1
- define(["require","exports","tslib","date-fns","../definition/ProgramInspector"],function(c,e,i,o,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.__test__setlocaleDateFormatInCache=e.convertToDateRangeRef=e.getDateAsLocaleFormattedString=e.getLocaleDateFormatTokenPosition=e.getLocaleDateFormatSeparator=e.getLocaleDateFormat=e.getDateFnsLocale=e.tryParseDateText=e.tryParseDay=e.tryParseMonth=e.tryParseYear=e.isValidDate=void 0;var u=["cs","da","de","de-AT","en-AU","en-CA","en-GB","en-IN","en-NZ","en-US","en-ZA","fr","fr-CA","fr-CH","it","nb","nl","nl-BE","nn","pt","pt-BR"],t="",r="";function n(e){return e instanceof Date&&!isNaN(e.valueOf())}function f(e){var t;if(/^\d+$/.test(e)&&!(4<e.length)){for(2===e.length&&(t=parseInt(e,10)<=29?20:19,e="".concat(t).concat(e));e.length<4;)e="0".concat(e);return e}}function l(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e="0".concat(e));var t=parseInt(e,10);if(!(t<1||12<t))return e}}function y(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e="0".concat(e));var t=parseInt(e,10);if(!(t<1||31<t))return e}}function a(e){if(e){var t=(e=e.replace(/\\/g,"\\\\")).match(/(\d+)/g);if(t&&3===t.length){for(var e=g(),r=D("yyyy"),a=D("MM"),n=0;n<3;n++){switch(n){case r:t[n]=f(t[n]);break;case a:t[n]=l(t[n]);break;default:t[n]=y(t[n])}if(void 0===t[n])return}return"".concat(t[0]).concat(e).concat(t[1]).concat(e).concat(t[2])}}}function d(){if(t)return t;var e=new Date(1999,11,31,0,0,0);return t=(t=(t=(t=(t=e.toLocaleDateString(void 0,{year:"numeric",month:"numeric",day:"numeric"})).replace("1999","yyyy")).replace("99","yyyy")).replace("12","MM")).replace("31","dd")}function g(){if(r)return r;var e=d();return r=e[e.search(/[^dMy]/)]}function D(e){var t=d(),r=t.indexOf("yyyy"),a=t.indexOf("MM"),t=t.indexOf("dd");return"yyyy"===e?0===r?0:a<r&&t<r?2:1:"MM"===e?0===a?0:t<a&&r<a?2:1:0===t?0:a<t&&r<t?2:1}e.isValidDate=n,e.tryParseYear=f,e.tryParseMonth=l,e.tryParseDay=y,e.tryParseDateText=a,e.getDateFnsLocale=function(o){return(0,i.__awaiter)(this,void 0,void 0,function(){var t,r,a,n;return(0,i.__generator)(this,function(e){switch(e.label){case 0:if(r=[],!(t=(0,s.parseLocale)(o)))return[2];t.territory&&r.push("".concat(t.language,"-").concat(t.territory)),r.push(t.language),t=0,r=r,e.label=1;case 1:if(!(t<r.length))return[3,7];if(a=r[t],-1===u.indexOf(a))return[3,6];n=void 0,e.label=2;case 2:return e.trys.push([2,4,,5]),[4,new Promise(function(e,t){c(["date-fns/locale/".concat(a,"/index.min")],e,t)}).then(i.__importStar)];case 3:return n=e.sent(),[3,5];case 4:return e.sent(),[3,6];case 5:if(null!=n&&n.localize)return[2,n];e.label=6;case 6:return t++,[3,1];case 7:return[2]}})})},e.getLocaleDateFormat=d,e.getLocaleDateFormatSeparator=g,e.getLocaleDateFormatTokenPosition=D,e.getDateAsLocaleFormattedString=function(e){if(!n(e))return"";var t=f(e.getFullYear().toString()),r=l((e.getMonth()+1).toString()),a=y(e.getDate().toString());return e=(e=(e=(e=d()).replace("yyyy",t)).replace("MM",r)).replace("dd",a)};function v(e){if(e instanceof Date&&n(e))return new Date(e.valueOf());if("string"==typeof e)if(/^\d+$/.test(e))e=Number(e);else{var t=a(e);if(t){var r=d();if(n(r=(0,o.parse)(t,r,0)))return r}}return"number"==typeof e&&n(r=new Date(e))?r:void 0}e.convertToDateRangeRef=function(e){var t=void 0,r=void 0,a=!1;Array.isArray(e)?(t=v(e[0]),r=v(e[1]),a=!0):"object"==typeof e&&(t=v(e.startDate),r=v(e.endDate));var n=!!t&&!!r,e=n&&!(0,o.isAfter)(t,r);return a&&n&&!e&&(a=t,t=r,r=a,e=!0),n&&e?{refValueType:"daterange",startDate:t,endDate:r}:void 0},e.__test__setlocaleDateFormatInCache=function(e){t=e,r=""}});
1
+ define(["require","exports","tslib","date-fns","../definition/ProgramInspector"],function(i,e,c,o,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.__test__setlocaleDateFormatInCache=e.convertToDateRangeRef=e.getDateAsLocaleFormattedString=e.getLocaleDateFormatTokenPosition=e.getLocaleDateFormatSeparator=e.getLocaleDateFormat=e.getDateFnsLocale=e.tryParseDateText=e.tryParseDay=e.tryParseMonth=e.tryParseYear=e.isValidDate=void 0;var t,u=["cs","da","de","de-AT","en-AU","en-CA","en-GB","en-IN","en-NZ","en-US","en-ZA","fr","fr-CA","fr-CH","it","nb","nl","nl-BE","nn","pt","pt-BR"],r="";function n(e){return e instanceof Date&&!isNaN(e.valueOf())}function l(e){var t;if(/^\d+$/.test(e)&&!(4<e.length)){for(2===e.length&&(t=parseInt(e,10)<=29?20:19,e="".concat(t).concat(e));e.length<4;)e="0".concat(e);return e}}function f(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e="0".concat(e));var t=parseInt(e,10);if(!(t<1||12<t))return e}}function d(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e="0".concat(e));var t=parseInt(e,10);if(!(t<1||31<t))return e}}function a(e){if(e){var t=(e=e.replace(/\\/g,"\\\\")).match(/(\d+)/g);if(t&&3===t.length){for(var e=g(),r=v("yyyy"),a=v("MM"),n=0;n<3;n++){switch(n){case r:t[n]=l(t[n]);break;case a:t[n]=f(t[n]);break;default:t[n]=d(t[n])}if(void 0===t[n])return}return"".concat(t[0]).concat(e).concat(t[1]).concat(e).concat(t[2])}}}function y(){if(r)return r;var e=new Date(1999,11,31,0,0,0);return r=(r=(r=(r=(r=e.toLocaleDateString(void 0,{year:"numeric",month:"numeric",day:"numeric"})).replace("1999","yyyy")).replace("99","yyyy")).replace("12","MM")).replace("31","dd")}function g(){var e;return void 0===t&&(e=/[^dMy]+/.exec(y()),t=e?e[0]:""),t}function v(e){var t=y(),r=t.indexOf("yyyy"),a=t.indexOf("MM"),t=t.indexOf("dd");return"yyyy"===e?0===r?0:a<r&&t<r?2:1:"MM"===e?0===a?0:t<a&&r<a?2:1:0===t?0:a<t&&r<t?2:1}e.isValidDate=n,e.tryParseYear=l,e.tryParseMonth=f,e.tryParseDay=d,e.tryParseDateText=a,e.getDateFnsLocale=function(o){return(0,c.__awaiter)(this,void 0,void 0,function(){var t,r,a,n;return(0,c.__generator)(this,function(e){switch(e.label){case 0:if(r=[],!(t=(0,s.parseLocale)(o)))return[2];t.territory&&r.push("".concat(t.language,"-").concat(t.territory)),r.push(t.language),t=0,r=r,e.label=1;case 1:if(!(t<r.length))return[3,7];if(a=r[t],-1===u.indexOf(a))return[3,6];n=void 0,e.label=2;case 2:return e.trys.push([2,4,,5]),[4,new Promise(function(e,t){i(["date-fns/locale/".concat(a,"/index.min")],e,t)}).then(c.__importStar)];case 3:return n=e.sent(),[3,5];case 4:return e.sent(),[3,6];case 5:if(null!=n&&n.localize)return[2,n];e.label=6;case 6:return t++,[3,1];case 7:return[2]}})})},e.getLocaleDateFormat=y,e.getLocaleDateFormatSeparator=g,e.getLocaleDateFormatTokenPosition=v,e.getDateAsLocaleFormattedString=function(e){if(!n(e))return"";var t=l(e.getFullYear().toString()),r=f((e.getMonth()+1).toString()),a=d(e.getDate().toString());return e=(e=(e=(e=y()).replace("yyyy",t)).replace("MM",r)).replace("dd",a)};function D(e){if(e instanceof Date&&n(e))return new Date(e.valueOf());if("string"==typeof e)if(/^\d+$/.test(e))e=Number(e);else{var t=a(e);if(t){var r=y();if(n(r=(0,o.parse)(t,r,0)))return r}}return"number"==typeof e&&n(r=new Date(e))?r:void 0}e.convertToDateRangeRef=function(e){var t=void 0,r=void 0,a=!1;Array.isArray(e)?(t=D(e[0]),r=D(e[1]),a=!0):"object"==typeof e&&(t=D(e.startDate),r=D(e.endDate));var n=!!t&&!!r,e=n&&!(0,o.isAfter)(t,r);return a&&n&&!e&&(a=t,t=r,r=a,e=!0),n&&e?{refValueType:"daterange",startDate:t,endDate:r}:void 0},e.__test__setlocaleDateFormatInCache=function(e){r=e,t=void 0}});
@@ -1 +1 @@
1
- export declare const VERSION = "5.31.0+20";
1
+ export declare const VERSION = "5.31.1+15";
@@ -1 +1 @@
1
- define(["require","exports"],function(e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.VERSION=void 0,i.VERSION="5.31.0+20"});
1
+ define(["require","exports"],function(e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.VERSION=void 0,i.VERSION="5.31.1+15"});
@@ -1,7 +1,7 @@
1
1
  import { FormElementRegistration } from "../..";
2
2
  import { Activator } from "../../Activator";
3
3
  import { Lookup } from "../../Collections";
4
- import { FormHost, defs, Facility } from "../../forms/FormHost";
4
+ import { FormHost, defs } from "../../forms/FormHost";
5
5
  export { defs };
6
6
  /** Defines what the renderer exposes. */
7
7
  export interface FormActor {
@@ -54,7 +54,7 @@ export declare class FormRenderer extends FormHost implements FormActor {
54
54
  assignElementProperty(elementName: string, propertyName: string, propertyValue: any, markdown?: boolean): void;
55
55
  assignItemsToElement(elementName: string, items: Lookup<defs.Item>, reset?: boolean): void;
56
56
  assignElementItemProperty(elementName: string, itemKey: string, propertyName: string, propertyValue: any, markdown?: boolean): void;
57
- deriveLocale(facility?: Facility): string;
57
+ deriveLocale(): string;
58
58
  /** Disposes the form renderer. */
59
59
  dispose(): boolean;
60
60
  /** Loads the form. */
@@ -1 +1 @@
1
- import{ActivityCancellationError}from"../../Errors.js";import{FormComponent}from"../../forms/FormComponent.js";import{FormHost,defs}from"../../forms/FormHost.js";import{element as elementRenderers}from"../../forms/renderers.js";import{text}from"../../forms/utils.js";import{FormElementNotFoundError,NoFormElementAvailableError}from"./Errors.js";function sanitizeValue(e,t,r){if("string"!=typeof t)return t;if(!0!==r)return t;switch(e){case"description":case"error":case"label":case"prompt":case"title":case"tooltip":case"itemLabel":break;default:return t}return{markdown:t}}const guid="F889738A-EBE2-4D52-8B46-3E24CC6E30F6:";class FormRenderer extends FormHost{static create(){return new this}static createCustom(){const e=new this;return e.custom=!0,e}static register(e){e.factories.push(e=>e===this.type?this:void 0)}spinNoBlock(){return this.spin()}hideElement(e){e.visible=!1,this.invalidate()}showElement(e){e.visible=!0,this.invalidate()}setCurrentItem(e,t,r){const s=this.getElement(e);if(!s||!s.items)return!1;let n;switch(r){case"index":n=(e,t,r)=>{var n=Object.keys(s.items);"number"==typeof r||parseInt(r);return 0<n.length&&e===n[r]};break;case"item":n=(e,t,r)=>r===t;break;case"key":n=(e,t,r)=>r===e;break;case"label":n=(e,t,r)=>r===t.label;break;case"value":n=(e,t,r)=>r===t.value;break;default:throw new Error("Unsupported value for itemMatchType: "+r)}for(const i in s.items)if(n(i,s.items[i],t))return s.current=i,this.invalidate(e),this.cascade(e),!0;return!1}setElementError(e,t,r){this.errors[e]=sanitizeValue("error",t,r)}assignElementProperty(t,r,n,e){n=sanitizeValue(r,n,e);const s=this.getElement(t);if(s[r]!==n){const i={},o=this.getElementRegistration(s);if(null!==o&&void 0!==o&&o.onPropertyChange)try{const a=(e,t)=>{i[e]!==t&&(i[e]=t,o.onPropertyChange({properties:{...s,...i},property:e,setProperty:a}))};a(r,n)}catch(e){throw console.error(`Error setting element property.\nElement: "${t}"\nProperty: "${r}"\nValue: ${n}\n`,e),e}else i[r]=n;for(const l of Object.keys(i))s[l]=i[l];if(o&&"value"in i&&this.post("changed",{name:t,value:i.value}),s.customType)this.refresh();else switch(r){case"autoActivate":case"collapsed":case"visible":this.invalidate();break;default:this.invalidate(t)}}}assignItemsToElement(e,t,r){const n=this.getElement(e);let s=n.items||{};!1!==r&&(s={});for(const i in t)s[i]=t[i];n.items=s,"GeometryPicker"!==n.type&&"ItemPicker"!==n.type||delete n.state,this.invalidate(e)}assignElementItemProperty(e,t,r,n,s){const i=this.getElement(e);i.items[t][r]=sanitizeValue(r,n,s),this.refresh(e)}deriveLocale(e){return e?super.deriveLocale(e):(null===(e=this.state)||void 0===e?void 0:e.locale)||"inv"}dispose(){if(super.dispose()){const e=this.state;return void 0!==e&&null!==e&&e.completion.isPending()&&e.reject(new ActivityCancellationError),!0}return!1}load(e,t){var r,t=super.load(e,t);if(t&&null!==(r=this.form)&&void 0!==r&&r.elements)for(const s in this.form.elements){var n=this.form.elements[s];const i=this.getElementRegistration(n);i&&i.getInitialProperties&&(n={...n,...i.getInitialProperties()},this.form.elements[s]=n)}return t}isRelated(e){return this.state&&this.state.trivia&&this.state.trivia.isDescendantOf&&this.state.trivia.isDescendantOf(e.state)}getElement(e,t){let r;if(e){if("string"!=typeof e)return e;r=e}else t&&t.name&&(r=t.name);if(r){t=this.form.elements[r];if(!t)throw new FormElementNotFoundError(r);return t}throw new NoFormElementAvailableError}getElementName(e,t){if(e){if("string"==typeof e)return e;for(const r in this.form.elements)if(this.form.elements[r]===e)return r;throw new FormElementNotFoundError(e)}if(t&&t.name)return t.name;throw new NoFormElementAvailableError}getElementRegistration(e){var t,r;return null===(t=null===(r=null===(t=this.state)||void 0===t?void 0:t.trivia)||void 0===r?void 0:r.getFormElementRegistration)||void 0===t?void 0:t.call(r,null!==(r=e.customType)&&void 0!==r?r:e.type)}renderHtml(e,t){return super.renderHtml(this.getText(e),t)}renderText(e){return super.renderText(this.getText(e))}filterItems(e,t){const r=this.find(e);if(void 0===r||null===r)return!1;var n=r.items;if(null==n)return!1;if("string"!=typeof t)return t;let s=!1;const i={};var o=t.toLowerCase().split(/\s+/);for(const m in n){var a=n[m];const f=this.renderText(a.label);var l=f.toLowerCase().split(/\s+/);for(const u of o)if(0<u.length)for(const c of l)0<c.length&&(0!==u.indexOf(c)&&0!==c.indexOf(u)||(s=!0,i[m]=a))}return r.items=i,this.invalidate(e),s}isStatus(e){return null!=e&&"string"==typeof e.status}getText(e){if(void 0!==this.state){const r=this.state.environment.getText;if("function"==typeof r){if(text.isMarkdown(e))return{markdown:r(e.markdown)};if(text.isStatus(e))return{markdown:r(`@form-element-status-${e.status}`)};if(e&&"@"===e[0]){var t=r(e);if(t)return t}}}return e}renderCustom(e,t){if(e instanceof FormComponent)return elementRenderers.renderCustom(e,t)}addElement(e,t,r){if(this.form.elements.hasOwnProperty(e))throw new Error(`Element already present: ${e}`);const n={};if("object"==typeof r)for(const s in r)n[s]=r[s];n.type=t;t=n.section;if(t){let e;if("object"==typeof t?e=t.name:"string"==typeof t&&(e=t),"header"===e||"footer"===e)throw new Error("Elements cannot be added to the header or footer.")}return this.form.elements[e]=n,this.invalidate(),n}}FormRenderer.type=guid+"FormRenderer";export{defs,FormRenderer};
1
+ import{ActivityCancellationError}from"../../Errors.js";import{FormComponent}from"../../forms/FormComponent.js";import{FormHost,defs}from"../../forms/FormHost.js";import{element as elementRenderers}from"../../forms/renderers.js";import{text}from"../../forms/utils.js";import{FormElementNotFoundError,NoFormElementAvailableError}from"./Errors.js";function sanitizeValue(e,t,r){if("string"!=typeof t)return t;if(!0!==r)return t;switch(e){case"description":case"error":case"label":case"prompt":case"title":case"tooltip":case"itemLabel":break;default:return t}return{markdown:t}}const guid="F889738A-EBE2-4D52-8B46-3E24CC6E30F6:";class FormRenderer extends FormHost{static create(){return new this}static createCustom(){const e=new this;return e.custom=!0,e}static register(e){e.factories.push(e=>e===this.type?this:void 0)}spinNoBlock(){return this.spin()}hideElement(e){e.visible=!1,this.invalidate()}showElement(e){e.visible=!0,this.invalidate()}setCurrentItem(e,t,r){const n=this.getElement(e);if(!n||!n.items)return!1;let s;switch(r){case"index":s=(e,t,r)=>{var s=Object.keys(n.items);"number"==typeof r||parseInt(r);return 0<s.length&&e===s[r]};break;case"item":s=(e,t,r)=>r===t;break;case"key":s=(e,t,r)=>r===e;break;case"label":s=(e,t,r)=>r===t.label;break;case"value":s=(e,t,r)=>r===t.value;break;default:throw new Error("Unsupported value for itemMatchType: "+r)}for(const i in n.items)if(s(i,n.items[i],t))return n.current=i,this.invalidate(e),this.cascade(e),!0;return!1}setElementError(e,t,r){this.errors[e]=sanitizeValue("error",t,r)}assignElementProperty(t,r,s,e){s=sanitizeValue(r,s,e);const n=this.getElement(t);if(n[r]!==s){const i={},o=this.getElementRegistration(n);if(null!==o&&void 0!==o&&o.onPropertyChange)try{const a=(e,t)=>{i[e]!==t&&(i[e]=t,o.onPropertyChange({properties:{...n,...i},property:e,setProperty:a}))};a(r,s)}catch(e){throw console.error(`Error setting element property.\nElement: "${t}"\nProperty: "${r}"\nValue: ${s}\n`,e),e}else i[r]=s;for(const l of Object.keys(i))n[l]=i[l];if(o&&"value"in i&&this.post("changed",{name:t,value:i.value}),n.customType)this.refresh();else switch(r){case"autoActivate":case"collapsed":case"visible":this.invalidate();break;default:this.invalidate(t)}}}assignItemsToElement(e,t,r){const s=this.getElement(e);let n=s.items||{};!1!==r&&(n={});for(const i in t)n[i]=t[i];s.items=n,"GeometryPicker"!==s.type&&"ItemPicker"!==s.type||delete s.state,this.invalidate(e)}assignElementItemProperty(e,t,r,s,n){const i=this.getElement(e);i.items[t][r]=sanitizeValue(r,s,n),this.refresh(e)}deriveLocale(){var e;return(null===(e=this.state)||void 0===e?void 0:e.locale)||super.deriveLocale()}dispose(){if(super.dispose()){const e=this.state;return void 0!==e&&null!==e&&e.completion.isPending()&&e.reject(new ActivityCancellationError),!0}return!1}load(e,t){var r,t=super.load(e,t);if(t&&null!==(r=this.form)&&void 0!==r&&r.elements)for(const n in this.form.elements){var s=this.form.elements[n];const i=this.getElementRegistration(s);i&&i.getInitialProperties&&(s={...s,...i.getInitialProperties()},this.form.elements[n]=s)}return t}isRelated(e){return this.state&&this.state.trivia&&this.state.trivia.isDescendantOf&&this.state.trivia.isDescendantOf(e.state)}getElement(e,t){let r;if(e){if("string"!=typeof e)return e;r=e}else t&&t.name&&(r=t.name);if(r){t=this.form.elements[r];if(!t)throw new FormElementNotFoundError(r);return t}throw new NoFormElementAvailableError}getElementName(e,t){if(e){if("string"==typeof e)return e;for(const r in this.form.elements)if(this.form.elements[r]===e)return r;throw new FormElementNotFoundError(e)}if(t&&t.name)return t.name;throw new NoFormElementAvailableError}getElementRegistration(e){var t,r;return null===(t=null===(r=null===(t=this.state)||void 0===t?void 0:t.trivia)||void 0===r?void 0:r.getFormElementRegistration)||void 0===t?void 0:t.call(r,null!==(r=e.customType)&&void 0!==r?r:e.type)}renderHtml(e,t){return super.renderHtml(this.getText(e),t)}renderText(e){return super.renderText(this.getText(e))}filterItems(e,t){const r=this.find(e);if(void 0===r||null===r)return!1;var s=r.items;if(null==s)return!1;if("string"!=typeof t)return t;let n=!1;const i={};var o=t.toLowerCase().split(/\s+/);for(const m in s){var a=s[m];const f=this.renderText(a.label);var l=f.toLowerCase().split(/\s+/);for(const u of o)if(0<u.length)for(const c of l)0<c.length&&(0!==u.indexOf(c)&&0!==c.indexOf(u)||(n=!0,i[m]=a))}return r.items=i,this.invalidate(e),n}isStatus(e){return null!=e&&"string"==typeof e.status}getText(e){if(void 0!==this.state){const r=this.state.environment.getText;if("function"==typeof r){if(text.isMarkdown(e))return{markdown:r(e.markdown)};if(text.isStatus(e))return{markdown:r(`@form-element-status-${e.status}`)};if(e&&"@"===e[0]){var t=r(e);if(t)return t}}}return e}renderCustom(e,t){if(e instanceof FormComponent)return elementRenderers.renderCustom(e,t)}addElement(e,t,r){if(this.form.elements.hasOwnProperty(e))throw new Error(`Element already present: ${e}`);const s={};if("object"==typeof r)for(const n in r)s[n]=r[n];s.type=t;t=s.section;if(t){let e;if("object"==typeof t?e=t.name:"string"==typeof t&&(e=t),"header"===e||"footer"===e)throw new Error("Elements cannot be added to the header or footer.")}return this.form.elements[e]=s,this.invalidate(),s}}FormRenderer.type=guid+"FormRenderer";export{defs,FormRenderer};
@@ -40,5 +40,11 @@ export declare class GetFormElementItemsFromCollection implements IActivityHandl
40
40
  */
41
41
  private _getPropertyValue;
42
42
  private _getTokenValues;
43
+ /**
44
+ * Gets all of the property names that are valid for the specified object.
45
+ * We can't simply rely on `Object.keys(obj)` as it could be inheriting properties.
46
+ * Instead, we check every prototype.
47
+ */
48
+ private getPropertyNames;
43
49
  execute(inputs: GetFormElementItemsFromCollectionInputs, context: IActivityContext): GetFormElementItemsFromCollectionOutputs;
44
50
  }
@@ -1 +1 @@
1
- import*as TemplateUtils from"../../TemplateUtils.js";import{validation}from"../../Validation.js";import{text}from"../../forms/utils.js";class GetFormElementItemsFromCollection{_isLabelFieldName(e,t){return null!=e&&0!==t.length&&e===this._getPropertyName(e,t)}_getPropertyName(e,t){return t.includes(e)?e:void 0}_getPropertyValue(e,t,l){return(e=this._getPropertyName(e,t))?TemplateUtils.valueOrEmptyString(l[e]):void 0}_getTokenValues(e,t,l){const o={};for(const i of e){var a,r=i.token;o.hasOwnProperty(r)||(a=this._getPropertyValue(r,t,l),a=TemplateUtils.getTokenValueString(r,a),o[r]=text.escapeTextForMarkdown(a))}return o}execute(l,e){var o=l.labelFieldName||void 0,a=validation.array("collection",l.collection,validation.never);const r={};var i=0<a.length?Object.keys(a[0]):[],n=this._isLabelFieldName(o,i),m=n?[]:TemplateUtils.findTokenInstances(o);for(let t=0;t<a.length;++t){var s,c=a[t];let e;e=n?c[l.labelFieldName]:o?(s=this._getTokenValues(m,i,c),TemplateUtils.replacePlaceholders(o,m,s)):c,void 0!==e&&null!==e||(e="");const u={};l.valueFieldName?u.value=c[l.valueFieldName]:u.value={refValueType:"data",type:"object",data:c},text.isMarkdown(e)?u.label=e:u.label=e.toString(),r[t]=u}return{items:r}}}GetFormElementItemsFromCollection.action="gcx:wf:forms::GetFormElementItemsFromCollection",GetFormElementItemsFromCollection.suite="gcx:wf:builtin";export{GetFormElementItemsFromCollection};
1
+ import*as TemplateUtils from"../../TemplateUtils.js";import{validation}from"../../Validation.js";import{text}from"../../forms/utils.js";class GetFormElementItemsFromCollection{_isLabelFieldName(e,t){return null!=e&&0!==t.length&&e===this._getPropertyName(e,t)}_getPropertyName(e,t){return t.includes(e)?e:void 0}_getPropertyValue(e,t,l){return(e=this._getPropertyName(e,t))?TemplateUtils.valueOrEmptyString(l[e]):void 0}_getTokenValues(e,t,l){const o={};for(const i of e){var r,a=i.token;o.hasOwnProperty(a)||(r=this._getPropertyValue(a,t,l),r=TemplateUtils.getTokenValueString(a,r),o[a]=text.escapeTextForMarkdown(r))}return o}getPropertyNames(e){const t=[];if(!e)return t;for(const l in e)"function"!=typeof e[l]&&t.push(l);return t}execute(l,e){var o=l.labelFieldName||void 0,r=validation.array("collection",l.collection,validation.never);const a={};var i=0<r.length?this.getPropertyNames(r[0]):[],n=this._isLabelFieldName(o,i),s=n?[]:TemplateUtils.findTokenInstances(o);for(let t=0;t<r.length;++t){var m,c=r[t];let e;e=n?c[l.labelFieldName]:o?(m=this._getTokenValues(s,i,c),TemplateUtils.replacePlaceholders(o,s,m)):c,void 0!==e&&null!==e||(e="");const u={};l.valueFieldName?u.value=c[l.valueFieldName]:u.value={refValueType:"data",type:"object",data:c},text.isMarkdown(e)?u.label=e:u.label=e.toString(),a[t]=u}return{items:a}}}GetFormElementItemsFromCollection.action="gcx:wf:forms::GetFormElementItemsFromCollection",GetFormElementItemsFromCollection.suite="gcx:wf:builtin";export{GetFormElementItemsFromCollection};
@@ -2,9 +2,9 @@ import { Lookup } from "../Collections";
2
2
  import Bluebird from "../deps/bluebird_fork";
3
3
  import { Calendar } from "./Calendar";
4
4
  import * as defs from "./FormDefinition";
5
- import { FormPresenterHost, Facility } from "./FormPresenterHost";
5
+ import { FormPresenterHost } from "./FormPresenterHost";
6
6
  import { FormatOptions } from "./numberFormatter";
7
- export { defs, Facility };
7
+ export { defs };
8
8
  export interface FormEventSubscription {
9
9
  (): boolean;
10
10
  active: boolean;
@@ -16,6 +16,7 @@ export interface FormEventHandler {
16
16
  export declare abstract class FormHost implements FormPresenterHost {
17
17
  /** Indicates the overall state of the form. */
18
18
  form: defs.Form;
19
+ deriveLocale(): string;
19
20
  /** Indicates all errors to be assigned. */
20
21
  errors: Lookup<defs.Text>;
21
22
  /** Indicates any reference information relevant to components. */
@@ -178,7 +179,7 @@ export declare abstract class FormHost implements FormPresenterHost {
178
179
  /** Coerces a number. */
179
180
  coerceNumber(value: string): number;
180
181
  /** Formats a number. */
181
- formatNumber(value: number, options: Intl.NumberFormatOptions | FormatOptions, useBrowserIntlApi?: boolean): string;
182
+ formatNumber(value: number, options: FormatOptions): string;
182
183
  /** Renders a custom element. */
183
184
  renderCustom(component: {}, element: defs.Element): JSX.Element;
184
185
  /** Renders a component's state. */
@@ -188,9 +189,7 @@ export declare abstract class FormHost implements FormPresenterHost {
188
189
  /** Derives the locale for the given facility. */
189
190
  deriveCalendar(format: defs.DateTimeFormat): Calendar;
190
191
  /** Derives the locale for the given facility. */
191
- deriveLocale(facility: Facility): string;
192
- /** Derives the locale for the given facility. */
193
- deriveTimeZone(facility: Facility): any;
192
+ deriveTimeZone(): any;
194
193
  private getParentSection;
195
194
  private isSectionCollapsed;
196
195
  private isElementPositionBeforeLastFocused;
@@ -1 +1 @@
1
- import Globalize from"globalize";import"globalize";import"globalize/number";import moment from"moment-timezone";import{Task}from"../Task.js";import{DEFAULT_LOCALE}from"../constants.js";import Bluebird from"../deps/bluebird_fork.js";import{Calendar}from"./Calendar.js";import{FormComponent}from"./FormComponent.js";import*as defs from"./FormDefinition.js";import{LOCALE}from"./locales/stock.js";import{format}from"./numberFormatter.js";import*as presenter from"./presenter.js";import*as renderers from"./renderers.js";import{CSS}from"./styles/stock.js";import{addStyleToDocument,sort,text}from"./utils.js";const guid="C0166F74-982A-464E-9FB6-9605CB7649C1:",eventName=guid+"FormEvent";function createEvent(e,t){return new CustomEvent(e,{bubbles:!1,cancelable:!1,detail:t})}function ensureTimeZone(){let e=moment.tz.names[0];return void 0===e&&moment.tz.setDefault(e=moment.tz.guess()),e}function ensureLocale(){let e=Globalize.locale();return void 0===e&&(Globalize.load(LOCALE),Globalize.locale(DEFAULT_LOCALE),e=Globalize.locale()),e.locale}function overlay(i,s){switch(typeof i){case"boolean":case"number":case"string":return i;case"object":break;default:return s}if(null===i)return s;if(i instanceof Array){let e=s;void 0!==e&&null!==e||(e=[]);let t=0;for(const n of i){var r=overlay(n,e[t]);void 0!==r&&(t<i.length?e[t]=r:e.push(r),++t)}return e}let e=s;void 0===e&&(e={});for(const t in i)e[t]=overlay(i[t],e[t]);return e}function createSubscription(e){function t(){return void 0!==e&&(t.active=!1,e(),!0)}return t.active=!0,t}let staticStyle=void 0;class FormHost{constructor(){this.form={defaults:{},elements:{}},this.errors={},this.refs={},this.enabled=!1,this.visible=!1,this.dismiss=!1,this.custom=!1,this.container=document.createElement("div"),this.eventIndex=0,this.eventQueue=[],this.mutuallyExclusiveSections={},this.nextFocus=!1,this.nextRefresh=!1,this.style=void 0}mount(){var e=this.container,t=e.parentNode;null==t&&document.body.appendChild(e),this.update()}unmount(){var e=this.container;const t=e.parentNode;void 0!==t&&null!==t&&t.removeChild(e)}observeFocus(e){this.enabled&&e instanceof HTMLElement&&(this.lastFocus&&this.lastFocus.target===e||this.setLastFocus(e))}focus(e){!0===(e=null==e?!1:e)&&(this.lastFocus=void 0),!1===e&&!1===(e=this.nextFocus)&&(e=!0),this.nextFocus=e,this.invalidate(!0!==e?e:void 0)}show(){const e=this.container;if(void 0===e)return!1;this.custom||void 0!==this.focusObserver||e.addEventListener("focus",this.focusObserver=e=>this.observeFocus(e.target),!0),this.enabled||(this.nextRefresh=!0,this.focus());const t=[];var i,s=this.errors;for(const r in s){const n=this.form.elements[r];void 0!==n&&null!==n&&(n.error=s[r],this.invalidate(r),!1!==n.visible&&(i=this.getParentSection(n),this.isSectionCollapsed(i)&&t.push(i)))}return 0<t.length&&(t.forEach(e=>{var t;this.isAccordionSection(e)?(t=this.findName(e))&&this.updateAccordionSections(t):e.collapsed=!1}),this.invalidate()),this.errors={},this.idle(),!1!==this.nextRefresh&&(this.enabled=!0,this.visible=!0,this.mount()),this.enabled}spin(){return void 0!==this.container&&(this.idle(),this.visible&&!this.enabled||(this.nextRefresh=!0,this.enabled=!1,this.visible=!0,this.mount()),this.visible)}hide(){return void 0!==this.container&&(this.idle(),this.visible&&(this.enabled=!1,this.visible=!1,this.unmount()),!0)}dispose(){if(this.dismiss)return!1;{this.dismiss=!0;const t=this.container;t.dispatchEvent(createEvent(eventName));var e=this.focusObserver;return void 0!==e&&t.removeEventListener("focus",e,!0),this.idle(),this.unmount(),this.refs={},presenter.releaseForm(this.container),this.container=void 0,this.lastFocus=void 0,!(this.eventTask=void 0)}}renderFocus(e,t){var i,s=this.nextFocus;if(this.enabled&&e instanceof HTMLElement)if(!1!==s)if(void 0!==t){if(t===s||!0===s&&void 0===this.lastFocus)return this.nextFocus=!1,this.setLastFocus(e,t),e.focus(),!0}else{const r=null===(i=this.lastFocus)||void 0===i?void 0:i.target;if(!0===s&&r instanceof HTMLElement&&e.contains(r))return this.nextFocus=!1,r.focus(),!0}else if(!1===s&&t&&t!==(null===(s=this.lastFocus)||void 0===s?void 0:s.name)&&this.isElementPositionBeforeLastFocused(t))return this.setLastFocus(e,t),e.focus(),!0;return!1}renderHtml(e,t){return"string"==typeof e?text.textToHtml(e):text.isMarkdown(e)?text.markdownToHtml(e.markdown,t):""}renderText(e){return"string"==typeof e?e:text.isMarkdown(e)?text.markdownToText(e.markdown):""}renderStyle(e){return"string"==typeof e?addStyleToDocument(e):staticStyle=staticStyle||addStyleToDocument(CSS)}renderVisual(e){return presenter.render(e)||presenter.renderNone(e)}qualifyDefault(e){var t=sort(this.form.elements);for(const n in t){var i=t[n];if(null!=i&&!1!==i.visible&&i.enabled){if(i.default)return e.value=i.value,n;var s=sort(i.items);if(null!=s)for(const o in s){var r=s[o];if(null!=r&&r.visible&&r.enabled&&r.default)return e.item=o,e.value=r.value,n}}}}qualify(e,t){var i;return null==t&&(t={}),"clicked"===e&&void 0===t.name&&(t.name=this.qualifyDefault(t)),t.type=e,void 0===t.routingKey&&(i=t.name,t.routingKey=void 0!==i?e+"$"+i:e),t}post(e,t){t=this.publish(e,t);const i=this.container;void 0!==i&&i.dispatchEvent(createEvent(eventName,t))}subscribe(i){const e=this.container;if(void 0===e)return createSubscription();const s=function(){i=void 0,e.removeEventListener(eventName,t)},t=function(e){const t=e.detail;void 0!==t?Bluebird.resolve().then(function(){"function"==typeof i&&i(t)}):s()};return e.addEventListener(eventName,t),createSubscription(s)}refresh(e){this.custom||("string"==typeof e?(e=this.refs[e],presenter.refresh(e)):(void 0===this.style&&(this.style=this.renderStyle()),this.refs={},presenter.refreshForm(this,this.container)))}invalidate(e){const t=this.nextRefresh;"string"==typeof e&&!0!==t&&(!1===t?this.nextRefresh={[e]:!0}:t[e]=!0),void 0!==e&&!0!==e||(this.nextRefresh=!0),!1===e&&!1===t&&(this.nextRefresh={})}update(){var e=this.nextRefresh;if(!0===e&&(this.nextRefresh=!1,this.refresh()),"object"==typeof e){this.nextRefresh=!1;for(const t in e)!0===e[t]&&this.refresh(t)}}idle(){const e=this.timerHandle;void 0!==e&&(this.timerHandle=void 0,e())}busy(){if(void 0===this.timerHandle&&void 0!==this.container){let e=setTimeout(()=>this.spin());this.timerHandle=function(){void 0!==e&&(clearTimeout(e),e=void 0)}}}publish(e,t){return this.enabled?(t=this.enqueue(e,t),0<this.eventQueue.length&&this.spin(),t):this.qualify(e,t)}enqueue(e,t){return t=this.qualify(e,t),void 0!==this.eventTask?(this.resolveEvent(t),this.eventTask=void 0):this.eventQueue.push(t),t}dequeue(){const e=this.eventQueue;if(0<e.length){var t=this.eventIndex,i=e[t++];return t>=e.length?e.length=this.eventIndex=0:this.eventIndex=t,i}}observe(){const t=this;return Bluebird.attempt(function(){if(void 0!==t.eventTask)return t.eventTask;var e=t.dequeue();return void 0!==e?e:t.show()?(t.eventTask=new Task(e=>{t.resolveEvent=e}),t.eventTask):void 0})}load(e,t){if(void 0===this.container)return!1;if(this.eventQueue.length=this.eventIndex=0,this.eventTask=void 0,this.errors={},this.lastFocus=void 0,this.nextFocus=!0,this.nextRefresh=!0,this.enqueue("load"),this.enqueue("prepare"),null!=e){e=overlay(e,e={defaults:{},elements:{}});this.form=overlay(t,e);for(const i in this.form.elements){let e=this.form.elements[i];if(e=overlay(e,{showFilter:!1,checked:!1,enabled:!0,hoisted:!1,visible:!0,overlay:!1,default:!1,validates:!1,readOnly:!1,require:!1,autoActivate:!1}),e.items)for(const s in e.items)e.items[s]=overlay(e.items[s],{enabled:!0,checked:!1,visible:!0,default:!1,validates:!1});this.form.elements[i]=e}}return!0}route(e){switch(e.type){case"changed":return this.cascade(e.name);case"prepare":return this.hydrate(e);case"suggest":return this.suggest(e);case"clicked":return this.click(e);case"validate":return this.verify(e);case"verify":return this.submit(e);case"checked":return this.changed(e)}return!1}changed(e){return this.enqueue("changed",{name:e.name,item:e.item,value:e.value}),!0}isElementValid(e,t=!0,i={status:void 0}){return null!=e&&(i.status=void 0,text.isStatus(e.error)&&"invalid"===e.error.status?!(i.status="invalid"):!0!==e.require||(this.isElementEffectivelyVisible(e)?!!this.isElementValueDefined(e)||!(i.status="missing"):t))}isElementEffectivelyVisible(e){if(null==e)return!1;var t=this.getParentSection(e);return(!t||!1!==t.visible)&&!1!==e.visible}isElementValueDefined(e){if(null==e)return!1;if("CheckBox"===e.type)return!0;var t=e.current;if(null!=t)return!0;t=e.value;if(null!=t&&""!==t)return!0;t=e.label;if(null!=t&&""!==t)return!0;var i=e.items;if(null!=i)for(const r in i){var s=i[r];if(null!=s&&!0===s.checked)return!0}return!1}trap(e){switch(e.type){case"populate":case"load":break;default:return!1}var t=e.name;const i=this.find(t);if(void 0===i||null===i)return!1;e=i.dependsOn;if("string"!=typeof e)return!1;e=this.find(e);return i.enabled=this.isElementEffectivelyVisible(e)&&this.isElementValueDefined(e),this.invalidate(t),!i.enabled}cascade(e){var t=this.find(e);if(null==t||!1===t.dependsOn)return!1;const i={[e]:!0};var s=sort(this.form.elements);for(const n in s){const o=s[n];var r=o.dependsOn;if("string"==typeof r){const a=this.find(r);void 0!==a&&"string"!=typeof a.dependsOn&&(a.dependsOn=!0),!0===i[r]&&(i[n]=!0,o.checked=!1,o.current=void 0,o.label=void 0,o.items=void 0,o.value=void 0,this.invalidate(n),this.enqueue("populate",{name:n}))}else o.dependsOn=!1}return!0}click(e){var t=this.form.elements[e.name];return null!=t&&"ButtonBar"==t.type&&this.validate(e)}hydrate(e){for(const t in sort(this.form.elements))this.enqueue("populate",{name:t}),this.enqueue("load",{name:t});return!0}shouldTriggerValidation(e){var t=this.find(e.name);if(null!=t&&"string"==typeof e.value){e=e.item;if("string"!=typeof e)return!0===t.validates;t=t.items;if(null!=t){e=t[e];if(null!=e)return!0===e.validates}}}validate(e){var t=this.shouldTriggerValidation(e);if(!0!==t)return!1===t&&(this.enqueue("end",{name:e.name,item:e.item,value:e.value,routingKey:"end"}),!0);{const r=this.errors={};var i=sort(this.form.elements);for(const n in i){var s=i[n];null!=s&&(r[n]=void 0,this.enqueue("validate",{name:n}))}return this.enqueue("verify",{name:e.name,item:e.item,value:e.value,routingKey:"verify"}),!0}}verify(e){var t=e.name,i=this.form.elements[t],e={status:void 0};return!this.isElementValid(i,!0,e)&&(e.status&&(this.errors[t]={status:e.status}),!1===this.nextFocus&&this.focus(t),!0)}suggest(e){const t=this.form.elements[e.name];return void 0!==t&&null!==t&&(t.items={message:{label:{status:"trivial"},enabled:!1}},this.invalidate(e.name),!0)}submit(e){return!this.hasErrors()&&(this.enqueue("submit",{name:e.name,item:e.item,value:e.value}),!0)}hasErrors(){var e=this.errors;for(const i in e){var t=e[i];if(null!=t)return!0}return!1}find(e){if(null!=e)return"string"==typeof(e="object"==typeof e?e.name:e)?this.form.elements[e]:void 0}findName(e){for(const t in this.form.elements)if(this.form.elements[t]===e)return t}coerceNumber(e){var t=this.deriveLocale("globalize");return Globalize(t).parseNumber(e)}formatNumber(e,t,i=!1){if(i)return format(t,e);i=this.deriveLocale("globalize");return Globalize(i).formatNumber(e,t)}renderCustom(e,t){if(e instanceof FormComponent)return renderers.element.renderCustom(e,t)}renderState(e,t,i){return!1}deriveCalendar(e){return Calendar.useNative()}deriveLocale(e){return ensureLocale()}deriveTimeZone(e){return ensureTimeZone()}getParentSection(e){e=e.section;if(e){e="string"==typeof e?e:e.name;return this.form.elements[e]}}isSectionCollapsed(e){return!(!e||"Section"!==e.type||"collapsible-section"!==e.format&&"accordion-section"!==e.format)&&!0===e.collapsed}isElementPositionBeforeLastFocused(e){var t,i=this.lastFocus;if(e&&i&&void 0!==i.rowNumber&&void 0!==i.rowIndex){e=null===(t=this.form.elements)||void 0===t?void 0:t[e];if(e)return void 0!==e.rowNumber&&void 0!==e.rowIndex?e.rowNumber<i.rowNumber||e.rowNumber===i.rowNumber&&e.rowIndex<i.rowIndex:e.index<i.rowNumber||e.index===i.rowNumber&&0<i.rowIndex}return!1}setLastFocus(e,t){this.lastFocus={target:e},t&&(this.lastFocus.name=t,(t=null===(e=this.form.elements)||void 0===e?void 0:e[t])&&(void 0!==t.rowNumber&&void 0!==t.rowIndex?(this.lastFocus.rowNumber=t.rowNumber,this.lastFocus.rowIndex=t.rowIndex):(this.lastFocus.rowNumber=t.index,this.lastFocus.rowIndex=0)))}isSection(e){return"Section"===(null==e?void 0:e.type)}isAccordionSection(e){return this.isSection(e)&&"accordion-section"===e.format}getAllSectionElements(){const e={};for(const i in this.form.elements){var t=this.form.elements[i];this.isSection(t)&&(e[i]=t)}return e}getMutuallyExclusiveSectionElements(t){let i=this.mutuallyExclusiveSections[t];if(!i){var e=this.find(t);if(!this.isAccordionSection(e))return{};i={[t]:e};e=this.getAllSectionElements();const n=Object.keys(sort(e,e=>e.rowNumber));t=n.indexOf(t);for(let e=t-1;0<=e;e--){const o=n[e];var s=this.find(o);if(!this.isAccordionSection(s))break;i[o]=s}for(let e=t+1;e<n.length;e++){const o=n[e];var r=this.find(o);if(!this.isAccordionSection(r))break;i[o]=r}Object.keys(i).forEach(e=>{this.mutuallyExclusiveSections[e]=i})}return i}updateAccordionSections(t){const i=this.getMutuallyExclusiveSectionElements(t);Object.keys(i).forEach(e=>{i[e].collapsed=e!==t}),presenter.refreshForm(this,this.container)}}export{defs,FormHost};
1
+ import moment from"moment-timezone";import{Task}from"../Task.js";import{DEFAULT_LOCALE}from"../constants.js";import Bluebird from"../deps/bluebird_fork.js";import{Calendar}from"./Calendar.js";import{FormComponent}from"./FormComponent.js";import*as defs from"./FormDefinition.js";import NumberParser from"./NumberParser.js";import{format}from"./numberFormatter.js";import*as presenter from"./presenter.js";import*as renderers from"./renderers.js";import{CSS}from"./styles/stock.js";import{addStyleToDocument,sort,text}from"./utils.js";const guid="C0166F74-982A-464E-9FB6-9605CB7649C1:",eventName=guid+"FormEvent";function createEvent(e,t){return new CustomEvent(e,{bubbles:!1,cancelable:!1,detail:t})}function ensureTimeZone(){let e=moment.tz.names[0];return void 0===e&&moment.tz.setDefault(e=moment.tz.guess()),e}function overlay(i,s){switch(typeof i){case"boolean":case"number":case"string":return i;case"object":break;default:return s}if(null===i)return s;if(i instanceof Array){let e=s;void 0!==e&&null!==e||(e=[]);let t=0;for(const n of i){var r=overlay(n,e[t]);void 0!==r&&(t<i.length?e[t]=r:e.push(r),++t)}return e}let e=s;void 0===e&&(e={});for(const t in i)e[t]=overlay(i[t],e[t]);return e}function createSubscription(e){function t(){return void 0!==e&&(t.active=!1,e(),!0)}return t.active=!0,t}let staticStyle=void 0;class FormHost{constructor(){this.form={defaults:{},elements:{}},this.errors={},this.refs={},this.enabled=!1,this.visible=!1,this.dismiss=!1,this.custom=!1,this.container=document.createElement("div"),this.eventIndex=0,this.eventQueue=[],this.mutuallyExclusiveSections={},this.nextFocus=!1,this.nextRefresh=!1,this.style=void 0}deriveLocale(){return DEFAULT_LOCALE}mount(){var e=this.container,t=e.parentNode;null==t&&document.body.appendChild(e),this.update()}unmount(){var e=this.container;const t=e.parentNode;void 0!==t&&null!==t&&t.removeChild(e)}observeFocus(e){this.enabled&&e instanceof HTMLElement&&(this.lastFocus&&this.lastFocus.target===e||this.setLastFocus(e))}focus(e){!0===(e=null==e?!1:e)&&(this.lastFocus=void 0),!1===e&&!1===(e=this.nextFocus)&&(e=!0),this.nextFocus=e,this.invalidate(!0!==e?e:void 0)}show(){const e=this.container;if(void 0===e)return!1;this.custom||void 0!==this.focusObserver||e.addEventListener("focus",this.focusObserver=e=>this.observeFocus(e.target),!0),this.enabled||(this.nextRefresh=!0,this.focus());const t=[];var i,s=this.errors;for(const r in s){const n=this.form.elements[r];void 0!==n&&null!==n&&(n.error=s[r],this.invalidate(r),!1!==n.visible&&(i=this.getParentSection(n),this.isSectionCollapsed(i)&&t.push(i)))}return 0<t.length&&(t.forEach(e=>{var t;this.isAccordionSection(e)?(t=this.findName(e))&&this.updateAccordionSections(t):e.collapsed=!1}),this.invalidate()),this.errors={},this.idle(),!1!==this.nextRefresh&&(this.enabled=!0,this.visible=!0,this.mount()),this.enabled}spin(){return void 0!==this.container&&(this.idle(),this.visible&&!this.enabled||(this.nextRefresh=!0,this.enabled=!1,this.visible=!0,this.mount()),this.visible)}hide(){return void 0!==this.container&&(this.idle(),this.visible&&(this.enabled=!1,this.visible=!1,this.unmount()),!0)}dispose(){if(this.dismiss)return!1;{this.dismiss=!0;const t=this.container;t.dispatchEvent(createEvent(eventName));var e=this.focusObserver;return void 0!==e&&t.removeEventListener("focus",e,!0),this.idle(),this.unmount(),this.refs={},presenter.releaseForm(this.container),this.container=void 0,this.lastFocus=void 0,!(this.eventTask=void 0)}}renderFocus(e,t){var i,s=this.nextFocus;if(this.enabled&&e instanceof HTMLElement)if(!1!==s)if(void 0!==t){if(t===s||!0===s&&void 0===this.lastFocus)return this.nextFocus=!1,this.setLastFocus(e,t),e.focus(),!0}else{const r=null===(i=this.lastFocus)||void 0===i?void 0:i.target;if(!0===s&&r instanceof HTMLElement&&e.contains(r))return this.nextFocus=!1,r.focus(),!0}else if(!1===s&&t&&t!==(null===(s=this.lastFocus)||void 0===s?void 0:s.name)&&this.isElementPositionBeforeLastFocused(t))return this.setLastFocus(e,t),e.focus(),!0;return!1}renderHtml(e,t){return"string"==typeof e?text.textToHtml(e):text.isMarkdown(e)?text.markdownToHtml(e.markdown,t):""}renderText(e){return"string"==typeof e?e:text.isMarkdown(e)?text.markdownToText(e.markdown):""}renderStyle(e){return"string"==typeof e?addStyleToDocument(e):staticStyle=staticStyle||addStyleToDocument(CSS)}renderVisual(e){return presenter.render(e)||presenter.renderNone(e)}qualifyDefault(e){var t=sort(this.form.elements);for(const n in t){var i=t[n];if(null!=i&&!1!==i.visible&&i.enabled){if(i.default)return e.value=i.value,n;var s=sort(i.items);if(null!=s)for(const o in s){var r=s[o];if(null!=r&&r.visible&&r.enabled&&r.default)return e.item=o,e.value=r.value,n}}}}qualify(e,t){var i;return null==t&&(t={}),"clicked"===e&&void 0===t.name&&(t.name=this.qualifyDefault(t)),t.type=e,void 0===t.routingKey&&(i=t.name,t.routingKey=void 0!==i?e+"$"+i:e),t}post(e,t){t=this.publish(e,t);const i=this.container;void 0!==i&&i.dispatchEvent(createEvent(eventName,t))}subscribe(i){const e=this.container;if(void 0===e)return createSubscription();const s=function(){i=void 0,e.removeEventListener(eventName,t)},t=function(e){const t=e.detail;void 0!==t?Bluebird.resolve().then(function(){"function"==typeof i&&i(t)}):s()};return e.addEventListener(eventName,t),createSubscription(s)}refresh(e){this.custom||("string"==typeof e?(e=this.refs[e],presenter.refresh(e)):(void 0===this.style&&(this.style=this.renderStyle()),this.refs={},presenter.refreshForm(this,this.container)))}invalidate(e){const t=this.nextRefresh;"string"==typeof e&&!0!==t&&(!1===t?this.nextRefresh={[e]:!0}:t[e]=!0),void 0!==e&&!0!==e||(this.nextRefresh=!0),!1===e&&!1===t&&(this.nextRefresh={})}update(){var e=this.nextRefresh;if(!0===e&&(this.nextRefresh=!1,this.refresh()),"object"==typeof e){this.nextRefresh=!1;for(const t in e)!0===e[t]&&this.refresh(t)}}idle(){const e=this.timerHandle;void 0!==e&&(this.timerHandle=void 0,e())}busy(){if(void 0===this.timerHandle&&void 0!==this.container){let e=setTimeout(()=>this.spin());this.timerHandle=function(){void 0!==e&&(clearTimeout(e),e=void 0)}}}publish(e,t){return this.enabled?(t=this.enqueue(e,t),0<this.eventQueue.length&&this.spin(),t):this.qualify(e,t)}enqueue(e,t){return t=this.qualify(e,t),void 0!==this.eventTask?(this.resolveEvent(t),this.eventTask=void 0):this.eventQueue.push(t),t}dequeue(){const e=this.eventQueue;if(0<e.length){var t=this.eventIndex,i=e[t++];return t>=e.length?e.length=this.eventIndex=0:this.eventIndex=t,i}}observe(){const t=this;return Bluebird.attempt(function(){if(void 0!==t.eventTask)return t.eventTask;var e=t.dequeue();return void 0!==e?e:t.show()?(t.eventTask=new Task(e=>{t.resolveEvent=e}),t.eventTask):void 0})}load(e,t){if(void 0===this.container)return!1;if(this.eventQueue.length=this.eventIndex=0,this.eventTask=void 0,this.errors={},this.lastFocus=void 0,this.nextFocus=!0,this.nextRefresh=!0,this.enqueue("load"),this.enqueue("prepare"),null!=e){e=overlay(e,e={defaults:{},elements:{}});this.form=overlay(t,e);for(const i in this.form.elements){let e=this.form.elements[i];if(e=overlay(e,{showFilter:!1,checked:!1,enabled:!0,hoisted:!1,visible:!0,overlay:!1,default:!1,validates:!1,readOnly:!1,require:!1,autoActivate:!1}),e.items)for(const s in e.items)e.items[s]=overlay(e.items[s],{enabled:!0,checked:!1,visible:!0,default:!1,validates:!1});this.form.elements[i]=e}}return!0}route(e){switch(e.type){case"changed":return this.cascade(e.name);case"prepare":return this.hydrate(e);case"suggest":return this.suggest(e);case"clicked":return this.click(e);case"validate":return this.verify(e);case"verify":return this.submit(e);case"checked":return this.changed(e)}return!1}changed(e){return this.enqueue("changed",{name:e.name,item:e.item,value:e.value}),!0}isElementValid(e,t=!0,i={status:void 0}){return null!=e&&(i.status=void 0,text.isStatus(e.error)&&"invalid"===e.error.status?!(i.status="invalid"):!0!==e.require||(this.isElementEffectivelyVisible(e)?!!this.isElementValueDefined(e)||!(i.status="missing"):t))}isElementEffectivelyVisible(e){if(null==e)return!1;var t=this.getParentSection(e);return(!t||!1!==t.visible)&&!1!==e.visible}isElementValueDefined(e){if(null==e)return!1;if("CheckBox"===e.type)return!0;var t=e.current;if(null!=t)return!0;t=e.value;if(null!=t&&""!==t)return!0;t=e.label;if(null!=t&&""!==t)return!0;var i=e.items;if(null!=i)for(const r in i){var s=i[r];if(null!=s&&!0===s.checked)return!0}return!1}trap(e){switch(e.type){case"populate":case"load":break;default:return!1}var t=e.name;const i=this.find(t);if(void 0===i||null===i)return!1;e=i.dependsOn;if("string"!=typeof e)return!1;e=this.find(e);return i.enabled=this.isElementEffectivelyVisible(e)&&this.isElementValueDefined(e),this.invalidate(t),!i.enabled}cascade(e){var t=this.find(e);if(null==t||!1===t.dependsOn)return!1;const i={[e]:!0};var s=sort(this.form.elements);for(const n in s){const o=s[n];var r=o.dependsOn;if("string"==typeof r){const a=this.find(r);void 0!==a&&"string"!=typeof a.dependsOn&&(a.dependsOn=!0),!0===i[r]&&(i[n]=!0,o.checked=!1,o.current=void 0,o.label=void 0,o.items=void 0,o.value=void 0,this.invalidate(n),this.enqueue("populate",{name:n}))}else o.dependsOn=!1}return!0}click(e){var t=this.form.elements[e.name];return null!=t&&"ButtonBar"==t.type&&this.validate(e)}hydrate(e){for(const t in sort(this.form.elements))this.enqueue("populate",{name:t}),this.enqueue("load",{name:t});return!0}shouldTriggerValidation(e){var t=this.find(e.name);if(null!=t&&"string"==typeof e.value){e=e.item;if("string"!=typeof e)return!0===t.validates;t=t.items;if(null!=t){e=t[e];if(null!=e)return!0===e.validates}}}validate(e){var t=this.shouldTriggerValidation(e);if(!0!==t)return!1===t&&(this.enqueue("end",{name:e.name,item:e.item,value:e.value,routingKey:"end"}),!0);{const r=this.errors={};var i=sort(this.form.elements);for(const n in i){var s=i[n];null!=s&&(r[n]=void 0,this.enqueue("validate",{name:n}))}return this.enqueue("verify",{name:e.name,item:e.item,value:e.value,routingKey:"verify"}),!0}}verify(e){var t=e.name,i=this.form.elements[t],e={status:void 0};return!this.isElementValid(i,!0,e)&&(e.status&&(this.errors[t]={status:e.status}),!1===this.nextFocus&&this.focus(t),!0)}suggest(e){const t=this.form.elements[e.name];return void 0!==t&&null!==t&&(t.items={message:{label:{status:"trivial"},enabled:!1}},this.invalidate(e.name),!0)}submit(e){return!this.hasErrors()&&(this.enqueue("submit",{name:e.name,item:e.item,value:e.value}),!0)}hasErrors(){var e=this.errors;for(const i in e){var t=e[i];if(null!=t)return!0}return!1}find(e){if(null!=e)return"string"==typeof(e="object"==typeof e?e.name:e)?this.form.elements[e]:void 0}findName(e){for(const t in this.form.elements)if(this.form.elements[t]===e)return t}coerceNumber(e){var t=this.deriveLocale();return new NumberParser(t).parse(e)}formatNumber(e,t){return null!=t&&t.locale||((t=t||{}).locale=this.deriveLocale()),format(t,e)}renderCustom(e,t){if(e instanceof FormComponent)return renderers.element.renderCustom(e,t)}renderState(e,t,i){return!1}deriveCalendar(e){return Calendar.useNative()}deriveTimeZone(){return ensureTimeZone()}getParentSection(e){e=e.section;if(e){e="string"==typeof e?e:e.name;return this.form.elements[e]}}isSectionCollapsed(e){return!(!e||"Section"!==e.type||"collapsible-section"!==e.format&&"accordion-section"!==e.format)&&!0===e.collapsed}isElementPositionBeforeLastFocused(e){var t,i=this.lastFocus;if(e&&i&&void 0!==i.rowNumber&&void 0!==i.rowIndex){e=null===(t=this.form.elements)||void 0===t?void 0:t[e];if(e)return void 0!==e.rowNumber&&void 0!==e.rowIndex?e.rowNumber<i.rowNumber||e.rowNumber===i.rowNumber&&e.rowIndex<i.rowIndex:e.index<i.rowNumber||e.index===i.rowNumber&&0<i.rowIndex}return!1}setLastFocus(e,t){this.lastFocus={target:e},t&&(this.lastFocus.name=t,(t=null===(e=this.form.elements)||void 0===e?void 0:e[t])&&(void 0!==t.rowNumber&&void 0!==t.rowIndex?(this.lastFocus.rowNumber=t.rowNumber,this.lastFocus.rowIndex=t.rowIndex):(this.lastFocus.rowNumber=t.index,this.lastFocus.rowIndex=0)))}isSection(e){return"Section"===(null==e?void 0:e.type)}isAccordionSection(e){return this.isSection(e)&&"accordion-section"===e.format}getAllSectionElements(){const e={};for(const i in this.form.elements){var t=this.form.elements[i];this.isSection(t)&&(e[i]=t)}return e}getMutuallyExclusiveSectionElements(t){let i=this.mutuallyExclusiveSections[t];if(!i){var e=this.find(t);if(!this.isAccordionSection(e))return{};i={[t]:e};e=this.getAllSectionElements();const n=Object.keys(sort(e,e=>e.rowNumber));t=n.indexOf(t);for(let e=t-1;0<=e;e--){const o=n[e];var s=this.find(o);if(!this.isAccordionSection(s))break;i[o]=s}for(let e=t+1;e<n.length;e++){const o=n[e];var r=this.find(o);if(!this.isAccordionSection(r))break;i[o]=r}Object.keys(i).forEach(e=>{this.mutuallyExclusiveSections[e]=i})}return i}updateAccordionSections(t){const i=this.getMutuallyExclusiveSectionElements(t);Object.keys(i).forEach(e=>{i[e].collapsed=e!==t}),presenter.refreshForm(this,this.container)}}export{defs,FormHost};
@@ -1,8 +1,6 @@
1
1
  import { Calendar } from "./Calendar";
2
2
  import * as defs from "./FormDefinition";
3
3
  import { FormatOptions } from "./numberFormatter";
4
- /** Concrete types of facilities which deviate in terms of functionality. */
5
- export declare type Facility = "browser" | "globalize" | "moment";
6
4
  /** Exposes various features to components that require features of the environment. */
7
5
  export interface FormPresenterHost {
8
6
  /** Indicates if the form is enabled or not. */
@@ -37,17 +35,16 @@ export interface FormPresenterHost {
37
35
  }): defs.Element;
38
36
  /** Coerces a number from a value. */
39
37
  coerceNumber(value: string): number;
40
- /** Formats a value into a string. If 'useBrowserIntlApi' is true then options must be of type 'FormatOptions'. */
41
- formatNumber(value: number, options: Intl.NumberFormatOptions | FormatOptions, useBrowserIntlApi?: boolean): string;
38
+ /** Formats a value into a string. */
39
+ formatNumber(value: number, options: FormatOptions): string;
42
40
  /** Formats a value into a string. */
43
41
  deriveCalendar(format: defs.DateTimeFormat): Calendar;
44
42
  /**
45
- * Derives the current locale based on the provided facility. If the facility is undefined
46
- * then the workflow locale set by the host application (or default if undefined) will be returned.
43
+ * Derives the current locale set by the host application (or default if undefined) will be returned.
47
44
  */
48
- deriveLocale(facility?: Facility): string;
45
+ deriveLocale(): string;
49
46
  /** Derives the current time zone. */
50
- deriveTimeZone(facility: Facility): string;
47
+ deriveTimeZone(): string;
51
48
  /**
52
49
  * Collapses all neighbouring accordion sections except the one specified.
53
50
  * @param expandedAccordionSection The name of the accordion section to be expanded. All others in the group will be collapsed.
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Parses a number based on the specified locale.
3
+ *
4
+ * WARNING: This technique assumes a positional number system, which isn't always the case for every locale (e.g. Hebrew, Korean).
5
+ * It seems though that at the moment, in all major browsers, `Intl.NumberFormat` will format these non-positional number systems
6
+ * using Western Arabic numerals ("123..."), so this works for now. But if any browser ever implements proper
7
+ * number system support for these locales, then this algorithm will no longer parse those locales properly.
8
+ */
9
+ export default class NumberParser {
10
+ private _group;
11
+ private _decimal;
12
+ private _numeral;
13
+ private _index;
14
+ /**
15
+ * Creates a new instance of the {@link NumberParser} class.
16
+ * @param locale The locale to use for parsing the text.
17
+ */
18
+ constructor(locale: string);
19
+ /**
20
+ * Parses a localized string representation of a number and returns the numeric value.
21
+ * @param str A localized string representation of a number.
22
+ * @returns The numeric value of the string.
23
+ */
24
+ parse(str: string): number;
25
+ }
@@ -0,0 +1 @@
1
+ export default class NumberParser{constructor(e){const r=new Intl.NumberFormat(e).formatToParts(12345.6),t=Array.from(new Intl.NumberFormat(e,{useGrouping:!1}).format(9876543210)).reverse(),a=new Map(t.map((e,r)=>[e,r.toString()]));this._group=new RegExp(`[${r.find(e=>"group"===e.type).value}]`,"g"),this._decimal=new RegExp(`[${r.find(e=>"decimal"===e.type).value}]`),this._numeral=new RegExp(`[${t.join("")}]`,"g"),this._index=e=>a.get(e)}parse(e){e=e.trim().replace(this._group,"").replace(this._decimal,".").replace(this._numeral,this._index);return e?+e:NaN}}
@@ -1 +1 @@
1
- import React,{useEffect,useMemo,useRef,useState}from"react";import{Range,getTrackBackground}from"react-range";import FormElementOuter from"../FormElementOuter.js";import{useFocusCallback}from"../common.js";import{CssClasses}from"../constants.js";import{getProcessedNumberFormat,getNumberSliderValues}from"../numberSliderUtilities.js";import{makeSafeClassName,throttle}from"../utils.js";const MIN_DECIMALS=0,DEFAULT_DECIMALS=0,DEFAULT_STEP=0,NumberRangeSlider=e=>{const a=e.component,t=e.element,r=useMemo(()=>getProcessedNumberFormat(t.format,MIN_DECIMALS,DEFAULT_DECIMALS,DEFAULT_STEP),[]),o=useRef(null),n=e=>{t.value=o.current=e},[s,l]=useState(),[c,u]=useState();useEffect(()=>{var e;null!==o.current&&t.value===o.current||(e=getNumberSliderValues(t.value,r),n(e),M(e))},[t.value]);const{host:m,name:i}=a.props,p=!a.enabled;var d=useFocusCallback(a);const{lowerBound:f,upperBound:g,precision:E}=r,{showMinMaxLabels:v,manualEntry:x}=t;let b=r.step,y=t.showTickMarks;y=0<b&&y,0===b&&(b=1/Math.pow(10,E));const h={currency:r.currency,customDisplayFormat:r.customDisplayFormat,format:r.displayFormat,fractionalDigits:E,locale:m.deriveLocale()};e=m.renderText(t.tooltip);const N=[t.type,makeSafeClassName(i)],A=e=>{e=S(e),M(e),(Array.isArray(o.current)||e[0]===f&&e[1]===g)&&(!Array.isArray(o.current)||e[0]===o.current[0]&&e[1]===o.current[1])||(n(e),m.post("changed",{name:i,value:t.value}))};const C=e=>{a.autoInput=!0},R=e=>e.target.select(),S=e=>{let t=e[0]<f?f:e[0]>g?g:e[0],r=e[1]>g?g:e[1]<f?f:e[1];return[t,r].sort((e,t)=>e-t)},k=useMemo(()=>throttle(e=>{m.post("dragged",{name:i,value:e})}),[]),F=(e,t)=>{const r=s.slice();let a=""!==e?Number(e):NaN;isNaN(a)?M(r):(0===t?(a<f&&(a=f),a>r[1]&&(a=r[1])):(a>g&&(a=g),a<r[0]&&(a=r[0])),r[t]=a,A(r))},M=e=>{l(e),u(e)};const T=(e,t,r,a,o="#fff",n="#197dc8")=>React.createElement("div",{style:{position:"absolute",top:t,color:o,fontWeight:"bold",fontSize:"14px",fontFamily:"Arial,Helvetica Neue,Helvetica,sans-serif",padding:"4px",borderRadius:"5px",backgroundColor:n,left:r,right:a,whiteSpace:"nowrap"}},e);return s?React.createElement(FormElementOuter,{className:N.join(" "),component:a,element:t,errorClassName:CssClasses.ERROR},React.createElement("div",{className:"slider-container",title:e},React.createElement(Range,{draggableTrack:!0,step:b,min:f,max:g,values:s,onChange:e=>{e=S(e),M(e),Array.isArray(t.value)&&e[0]===t.value[0]&&e[1]===t.value[1]||k(e)},onFinalChange:A,renderMark:e=>{var{props:t,index:r}=e,e=f+r*b,r=e>g,e=e>s[0]&&e<s[1]?"#197dc8":"#ccc";return y&&!r&&React.createElement("div",{...t,style:{...t.style,height:"16px",width:"2px",backgroundColor:e}})},renderTrack:e=>{var{props:t,children:e}=e;return React.createElement("div",{...t,style:{...t.style,height:"6px",margin:"50px 0px 24px",width:"100%",background:getTrackBackground({values:s,colors:["#ccc","#197dc8","#ccc"],min:f,max:g,rtl:!1})}},!1!==v&&T(m.formatNumber(f,h,!0),"20px","-12px",void 0,"#333","#fff"),!1!==v&&T(m.formatNumber(g,h,!0),"20px",void 0,"-12px","#333","#fff"),e)},renderThumb:e=>{var{props:t,value:r,index:a}=e,o=g-f,e=r-f,r=e<o/10?"0":"auto",e=9*o/10<e?"0":"auto";return React.createElement("div",{...t,style:{...t.style,height:"24px",width:"24px",borderRadius:"12px",backgroundColor:"#197dc8",display:"flex",justifyContent:"center",alignItems:"center",boxShadow:"0px 2px 4px #AAA",outline:"none"}},T(m.formatNumber(s[a],h,!0),"-32px",r,e))},disabled:p,ref:d})),x||!c?null:React.createElement("div",{className:"inputs"},c.map((e,t)=>React.createElement("span",null,0===t?m.renderText("@common-start"):m.renderText("@common-end"),React.createElement("input",{key:t,type:"number",disabled:p,min:0===t?f:s[0],max:0===t?s[1]:g,step:b,title:e+"",value:e,onBlur:e=>((e,t)=>{F(e.target.value,t)})(e,t),onChange:e=>((e,t)=>{const r=c.slice();r[t]=e.target.value,u(r),a.autoInput&&F(e.target.value,t)})(e,t),onKeyDown:e=>((e,t)=>{e.stopPropagation(),a.autoInput=!1,"Enter"===e.key?F(c[t]+"",t):"Escape"===e.key&&M(s.slice())})(e,t),onMouseDown:C,onFocus:R}))))):null};export default NumberRangeSlider;export{MIN_DECIMALS,DEFAULT_DECIMALS,DEFAULT_STEP};
1
+ import React,{useEffect,useMemo,useRef,useState}from"react";import{Range,getTrackBackground}from"react-range";import FormElementOuter from"../FormElementOuter.js";import{useFocusCallback}from"../common.js";import{CssClasses}from"../constants.js";import{getProcessedNumberFormat,getNumberSliderValues}from"../numberSliderUtilities.js";import{makeSafeClassName,throttle}from"../utils.js";const MIN_DECIMALS=0,DEFAULT_DECIMALS=0,DEFAULT_STEP=0,NumberRangeSlider=e=>{const a=e.component,t=e.element,r=useMemo(()=>getProcessedNumberFormat(t.format,MIN_DECIMALS,DEFAULT_DECIMALS,DEFAULT_STEP),[]),o=useRef(null),n=e=>{t.value=o.current=e},[s,l]=useState(),[c,u]=useState();useEffect(()=>{var e;null!==o.current&&t.value===o.current||(e=getNumberSliderValues(t.value,r),n(e),M(e))},[t.value]);const{host:m,name:i}=a.props,p=!a.enabled;var d=useFocusCallback(a);const{lowerBound:f,upperBound:g,precision:E}=r,{showMinMaxLabels:v,manualEntry:x}=t;let b=r.step,y=t.showTickMarks;y=0<b&&y,0===b&&(b=1/Math.pow(10,E));const h={currency:r.currency,customDisplayFormat:r.customDisplayFormat,format:r.displayFormat,fractionalDigits:E,locale:m.deriveLocale()};e=m.renderText(t.tooltip);const N=[t.type,makeSafeClassName(i)],A=e=>{e=S(e),M(e),(Array.isArray(o.current)||e[0]===f&&e[1]===g)&&(!Array.isArray(o.current)||e[0]===o.current[0]&&e[1]===o.current[1])||(n(e),m.post("changed",{name:i,value:t.value}))};const C=e=>{a.autoInput=!0},R=e=>e.target.select(),S=e=>{let t=e[0]<f?f:e[0]>g?g:e[0],r=e[1]>g?g:e[1]<f?f:e[1];return[t,r].sort((e,t)=>e-t)},k=useMemo(()=>throttle(e=>{m.post("dragged",{name:i,value:e})}),[]),F=(e,t)=>{const r=s.slice();let a=""!==e?Number(e):NaN;isNaN(a)?M(r):(0===t?(a<f&&(a=f),a>r[1]&&(a=r[1])):(a>g&&(a=g),a<r[0]&&(a=r[0])),r[t]=a,A(r))},M=e=>{l(e),u(e)};const T=(e,t,r,a,o="#fff",n="#197dc8")=>React.createElement("div",{style:{position:"absolute",top:t,color:o,fontWeight:"bold",fontSize:"14px",fontFamily:"Arial,Helvetica Neue,Helvetica,sans-serif",padding:"4px",borderRadius:"5px",backgroundColor:n,left:r,right:a,whiteSpace:"nowrap"}},e);return s?React.createElement(FormElementOuter,{className:N.join(" "),component:a,element:t,errorClassName:CssClasses.ERROR},React.createElement("div",{className:"slider-container",title:e},React.createElement(Range,{draggableTrack:!0,step:b,min:f,max:g,values:s,onChange:e=>{e=S(e),M(e),Array.isArray(t.value)&&e[0]===t.value[0]&&e[1]===t.value[1]||k(e)},onFinalChange:A,renderMark:e=>{var{props:t,index:r}=e,e=f+r*b,r=e>g,e=e>s[0]&&e<s[1]?"#197dc8":"#ccc";return y&&!r&&React.createElement("div",{...t,style:{...t.style,height:"16px",width:"2px",backgroundColor:e}})},renderTrack:e=>{var{props:t,children:e}=e;return React.createElement("div",{...t,style:{...t.style,height:"6px",margin:"50px 0px 24px",width:"100%",background:getTrackBackground({values:s,colors:["#ccc","#197dc8","#ccc"],min:f,max:g,rtl:!1})}},!1!==v&&T(m.formatNumber(f,h),"20px","-12px",void 0,"#333","#fff"),!1!==v&&T(m.formatNumber(g,h),"20px",void 0,"-12px","#333","#fff"),e)},renderThumb:e=>{var{props:t,value:r,index:a}=e,o=g-f,e=r-f,r=e<o/10?"0":"auto",e=9*o/10<e?"0":"auto";return React.createElement("div",{...t,style:{...t.style,height:"24px",width:"24px",borderRadius:"12px",backgroundColor:"#197dc8",display:"flex",justifyContent:"center",alignItems:"center",boxShadow:"0px 2px 4px #AAA",outline:"none"}},T(m.formatNumber(s[a],h),"-32px",r,e))},disabled:p,ref:d})),x||!c?null:React.createElement("div",{className:"inputs"},c.map((e,t)=>React.createElement("span",null,0===t?m.renderText("@common-start"):m.renderText("@common-end"),React.createElement("input",{key:t,type:"number",disabled:p,min:0===t?f:s[0],max:0===t?s[1]:g,step:b,title:e+"",value:e,onBlur:e=>((e,t)=>{F(e.target.value,t)})(e,t),onChange:e=>((e,t)=>{const r=c.slice();r[t]=e.target.value,u(r),a.autoInput&&F(e.target.value,t)})(e,t),onKeyDown:e=>((e,t)=>{e.stopPropagation(),a.autoInput=!1,"Enter"===e.key?F(c[t]+"",t):"Escape"===e.key&&M(s.slice())})(e,t),onMouseDown:C,onFocus:R}))))):null};export default NumberRangeSlider;export{MIN_DECIMALS,DEFAULT_DECIMALS,DEFAULT_STEP};
@@ -1 +1 @@
1
- import React,{useEffect,useMemo,useRef,useState}from"react";import{Range}from"react-range";import FormElementOuter from"../FormElementOuter.js";import{useFocusCallback}from"../common.js";import{CssClasses}from"../constants.js";import{NumberDisplayFormat}from"../numberFormatter.js";import{getProcessedNumberFormat,getNumberSliderValues}from"../numberSliderUtilities.js";import{makeSafeClassName}from"../utils.js";const MIN_DECIMALS=-20,DEFAULT_DECIMALS=3,DEFAULT_STEP=1,NumberSlider=e=>{const t=e.component,{host:n,name:r}=t.props,a=e.element,o=!t.enabled,l=useMemo(()=>getProcessedNumberFormat(a.format,MIN_DECIMALS,DEFAULT_DECIMALS,DEFAULT_STEP),[]),s=useRef(null),{lowerBound:m,upperBound:u,precision:c}=l,{showMinMaxLabels:i,manualEntry:p}=a,d={currency:l.currency,customDisplayFormat:l.customDisplayFormat,format:l.displayFormat,fractionalDigits:c,locale:n.deriveLocale()},f={...d,format:NumberDisplayFormat.FIXED_POINT},E=e=>{a.value=s.current=(e=e,{refValueType:"number",format:l,display:n.formatNumber(e,d,!0),numeric:e})},[b,v]=useState(),[g,x]=useState();useEffect(()=>{var e;null!==s.current&&a.value===s.current||(e=getNumberSliderValues(a.value,l,!0),E(e[0]),k(e[0]))},[a.value]);var N=useFocusCallback(t);let y=l.step,h=a.showTickMarks;h=0<y&&h,0===y&&(y=1/Math.pow(10,c));e=n.renderText(a.tooltip);const F=[a.type,makeSafeClassName(r)],C=e=>{var t=e[0],t=I(t);k(t),t!==(null===(e=s.current)||void 0===e?void 0:e.numeric)&&(E(t),n.post("changed",{name:r,value:a.value}))};const S=e=>{x(e.target.value),t.autoInput&&T(e.target.value)},D=e=>{T(e.target.value)},R=e=>{e.stopPropagation(),t.autoInput=!1,"Enter"===e.key?T(g+""):"Escape"===e.key&&k(b)},M=e=>{t.autoInput=!0},A=e=>e.target.select(),I=e=>e<m?m:e>u?u:e,T=e=>{let t=""!==e?Number(e):NaN;isNaN(t)?k(t):(t<m&&(t=m),t>u&&(t=u),C([t]))},k=e=>{v(e),x(n.formatNumber(e,f,!0))};const L=(e,t,r,a,o="#fff",n="#197dc8")=>React.createElement("div",{style:{position:"absolute",top:t,color:o,fontWeight:"bold",fontSize:"14px",fontFamily:"Arial,Helvetica Neue,Helvetica,sans-serif",padding:"4px",borderRadius:"5px",backgroundColor:n,left:r,right:a,whiteSpace:"nowrap"}},e);return React.createElement(FormElementOuter,{className:F.join(" "),component:t,element:a,errorClassName:CssClasses.ERROR},React.createElement("div",{className:"slider-container",title:e},React.createElement(Range,{step:y,min:m,max:u,values:[b],onChange:e=>{e=e[0],e=I(e);k(e)},onFinalChange:C,renderMark:e=>{var{props:t,index:e}=e,e=m+e*y>u;return h&&!e&&React.createElement("div",{...t,style:{...t.style,height:"16px",width:"2px",backgroundColor:"#ccc"}})},renderTrack:e=>{var{props:t,children:e}=e;return React.createElement("div",{...t,style:{...t.style,height:"6px",margin:"50px 0px 24px",width:"100%",background:"#ccc"}},!1!==i&&L(n.formatNumber(m,d,!0),"20px","-12px",void 0,"#333","#fff"),!1!==i&&L(n.formatNumber(u,d,!0),"20px",void 0,"-12px","#333","#fff"),e)},renderThumb:e=>{var{props:t,value:r}=e,a=u-m,o=r-m,e=o<a/10?"0":"auto",o=9*a/10<o?"0":"auto";return React.createElement("div",{...t,style:{...t.style,height:"24px",width:"24px",borderRadius:"12px",backgroundColor:"#197dc8",display:"flex",justifyContent:"center",alignItems:"center",boxShadow:"0px 2px 4px #AAA",outline:"none"}},L(n.formatNumber(r,d,!0),"-32px",e,o))},disabled:o,ref:N})),!1===p?null:React.createElement("div",{className:"inputs"},React.createElement("span",null,React.createElement("input",{type:"number",disabled:o,min:m,max:u,step:y,title:g+"",value:g,onBlur:D,onChange:S,onKeyDown:R,onMouseDown:M,onFocus:A}))))};export default NumberSlider;export{MIN_DECIMALS,DEFAULT_DECIMALS,DEFAULT_STEP};
1
+ import React,{useEffect,useMemo,useRef,useState}from"react";import{Range}from"react-range";import FormElementOuter from"../FormElementOuter.js";import{useFocusCallback}from"../common.js";import{CssClasses}from"../constants.js";import{NumberDisplayFormat}from"../numberFormatter.js";import{getProcessedNumberFormat,getNumberSliderValues}from"../numberSliderUtilities.js";import{makeSafeClassName}from"../utils.js";const MIN_DECIMALS=-20,DEFAULT_DECIMALS=3,DEFAULT_STEP=1,NumberSlider=e=>{const t=e.component,{host:n,name:r}=t.props,a=e.element,o=!t.enabled,l=useMemo(()=>getProcessedNumberFormat(a.format,MIN_DECIMALS,DEFAULT_DECIMALS,DEFAULT_STEP),[]),s=useRef(null),{lowerBound:m,upperBound:u,precision:c}=l,{showMinMaxLabels:i,manualEntry:p}=a,d={currency:l.currency,customDisplayFormat:l.customDisplayFormat,format:l.displayFormat,fractionalDigits:c,locale:n.deriveLocale()},f={...d,format:NumberDisplayFormat.FIXED_POINT},E=e=>{a.value=s.current=(e=e,{refValueType:"number",format:l,display:n.formatNumber(e,d),numeric:e})},[b,v]=useState(),[g,x]=useState();useEffect(()=>{var e;null!==s.current&&a.value===s.current||(e=getNumberSliderValues(a.value,l,!0),E(e[0]),k(e[0]))},[a.value]);var N=useFocusCallback(t);let y=l.step,h=a.showTickMarks;h=0<y&&h,0===y&&(y=1/Math.pow(10,c));e=n.renderText(a.tooltip);const F=[a.type,makeSafeClassName(r)],C=e=>{var t=e[0],t=I(t);k(t),t!==(null===(e=s.current)||void 0===e?void 0:e.numeric)&&(E(t),n.post("changed",{name:r,value:a.value}))};const S=e=>{x(e.target.value),t.autoInput&&T(e.target.value)},D=e=>{T(e.target.value)},R=e=>{e.stopPropagation(),t.autoInput=!1,"Enter"===e.key?T(g+""):"Escape"===e.key&&k(b)},M=e=>{t.autoInput=!0},A=e=>e.target.select(),I=e=>e<m?m:e>u?u:e,T=e=>{let t=""!==e?Number(e):NaN;isNaN(t)?k(t):(t<m&&(t=m),t>u&&(t=u),C([t]))},k=e=>{v(e),x(n.formatNumber(e,f))};const L=(e,t,r,a,o="#fff",n="#197dc8")=>React.createElement("div",{style:{position:"absolute",top:t,color:o,fontWeight:"bold",fontSize:"14px",fontFamily:"Arial,Helvetica Neue,Helvetica,sans-serif",padding:"4px",borderRadius:"5px",backgroundColor:n,left:r,right:a,whiteSpace:"nowrap"}},e);return React.createElement(FormElementOuter,{className:F.join(" "),component:t,element:a,errorClassName:CssClasses.ERROR},React.createElement("div",{className:"slider-container",title:e},React.createElement(Range,{step:y,min:m,max:u,values:[b],onChange:e=>{e=e[0],e=I(e);k(e)},onFinalChange:C,renderMark:e=>{var{props:t,index:e}=e,e=m+e*y>u;return h&&!e&&React.createElement("div",{...t,style:{...t.style,height:"16px",width:"2px",backgroundColor:"#ccc"}})},renderTrack:e=>{var{props:t,children:e}=e;return React.createElement("div",{...t,style:{...t.style,height:"6px",margin:"50px 0px 24px",width:"100%",background:"#ccc"}},!1!==i&&L(n.formatNumber(m,d),"20px","-12px",void 0,"#333","#fff"),!1!==i&&L(n.formatNumber(u,d),"20px",void 0,"-12px","#333","#fff"),e)},renderThumb:e=>{var{props:t,value:r}=e,a=u-m,o=r-m,e=o<a/10?"0":"auto",o=9*a/10<o?"0":"auto";return React.createElement("div",{...t,style:{...t.style,height:"24px",width:"24px",borderRadius:"12px",backgroundColor:"#197dc8",display:"flex",justifyContent:"center",alignItems:"center",boxShadow:"0px 2px 4px #AAA",outline:"none"}},L(n.formatNumber(r,d),"-32px",e,o))},disabled:o,ref:N})),!1===p?null:React.createElement("div",{className:"inputs"},React.createElement("span",null,React.createElement("input",{type:"number",disabled:o,min:m,max:u,step:y,title:g+"",value:g,onBlur:D,onChange:S,onKeyDown:R,onMouseDown:M,onFocus:A}))))};export default NumberSlider;export{MIN_DECIMALS,DEFAULT_DECIMALS,DEFAULT_STEP};
@@ -1 +1 @@
1
- import{parse,isAfter}from"date-fns";import{parseLocale}from"../definition/ProgramInspector.js";const CURRENT_CENTURY_YEAR_CUTOFF=29,SUPPORTED_DATE_FNS_LOCALES=["cs","da","de","de-AT","en-AU","en-CA","en-GB","en-IN","en-NZ","en-US","en-ZA","fr","fr-CA","fr-CH","it","nb","nl","nl-BE","nn","pt","pt-BR"];let localeDateFormat="",dateFormatSeparator="";function isValidDate(e){return e instanceof Date&&!isNaN(e.valueOf())}function tryParseYear(e){if(/^\d+$/.test(e)&&!(4<e.length)){for(2===e.length&&(e=`${CURRENT_CENTURY_YEAR_CUTOFF>=parseInt(e,10)?20:19}${e}`);e.length<4;)e=`0${e}`;return e}}function tryParseMonth(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e=`0${e}`);var t=parseInt(e,10);if(!(t<1||12<t))return e}}function tryParseDay(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e=`0${e}`);var t=parseInt(e,10);if(!(t<1||31<t))return e}}function tryParseDateText(e){if(e){const r=(e=e.replace(/\\/g,"\\\\")).match(/(\d+)/g);if(r&&3===r.length){var e=getLocaleDateFormatSeparator(),t=getLocaleDateFormatTokenPosition("yyyy"),a=getLocaleDateFormatTokenPosition("MM");for(let e=0;e<3;e++){switch(e){case t:r[e]=tryParseYear(r[e]);break;case a:r[e]=tryParseMonth(r[e]);break;default:r[e]=tryParseDay(r[e])}if(void 0===r[e])return}return`${r[0]}${e}${r[1]}${e}${r[2]}`}}}async function getDateFnsLocale(e){const t=[];e=parseLocale(e);if(e){e.territory&&t.push(`${e.language}-${e.territory}`),t.push(e.language);for(const a of t)if(-1!==SUPPORTED_DATE_FNS_LOCALES.indexOf(a)){let e;try{e=await import(`date-fns/locale/${a}/index.min`)}catch{continue}if(null!==e&&void 0!==e&&e.localize)return e}}}function getLocaleDateFormat(){if(localeDateFormat)return localeDateFormat;const e=new Date(1999,11,31,0,0,0);return localeDateFormat=e.toLocaleDateString(void 0,{year:"numeric",month:"numeric",day:"numeric"}),localeDateFormat=localeDateFormat.replace("1999","yyyy"),localeDateFormat=localeDateFormat.replace("99","yyyy"),localeDateFormat=localeDateFormat.replace("12","MM"),localeDateFormat=localeDateFormat.replace("31","dd"),localeDateFormat}function getLocaleDateFormatSeparator(){if(dateFormatSeparator)return dateFormatSeparator;const e=getLocaleDateFormat();return dateFormatSeparator=e[e.search(/[^dMy]/)],dateFormatSeparator}function getLocaleDateFormatTokenPosition(e){const t=getLocaleDateFormat();var a=t.indexOf("yyyy"),r=t.indexOf("MM"),o=t.indexOf("dd");return"yyyy"===e?0===a?0:r<a&&o<a?2:1:"MM"===e?0===r?0:o<r&&a<r?2:1:0===o?0:r<o&&a<o?2:1}function getDateAsLocaleFormattedString(e){if(!isValidDate(e))return"";var t=tryParseYear(e.getFullYear().toString()),a=tryParseMonth((e.getMonth()+1).toString()),e=tryParseDay(e.getDate().toString());let r=getLocaleDateFormat();return r=r.replace("yyyy",t),r=r.replace("MM",a),r=r.replace("dd",e),r}const coerceIntoDate=e=>{if(e instanceof Date&&isValidDate(e))return new Date(e.valueOf());if("string"==typeof e)if(/^\d+$/.test(e))e=Number(e);else{var t=tryParseDateText(e);if(t){var a=getLocaleDateFormat(),a=parse(t,a,0);if(isValidDate(a))return a}}if("number"==typeof e){e=new Date(e);if(isValidDate(e))return e}};function convertToDateRangeRef(e){let t=void 0,a=void 0,r=!1;Array.isArray(e)?(t=coerceIntoDate(e[0]),a=coerceIntoDate(e[1]),r=!0):"object"==typeof e&&(t=coerceIntoDate(e.startDate),a=coerceIntoDate(e.endDate));var o=!!t&&!!a;let n=o&&!isAfter(t,a);return r&&o&&!n&&(e=t,t=a,a=e,n=!0),o&&n?{refValueType:"daterange",startDate:t,endDate:a}:void 0}function __test__setlocaleDateFormatInCache(e){localeDateFormat=e,dateFormatSeparator=""}export{isValidDate,tryParseYear,tryParseMonth,tryParseDay,tryParseDateText,getDateFnsLocale,getLocaleDateFormat,getLocaleDateFormatSeparator,getLocaleDateFormatTokenPosition,getDateAsLocaleFormattedString,convertToDateRangeRef,__test__setlocaleDateFormatInCache};
1
+ import{parse,isAfter}from"date-fns";import{parseLocale}from"../definition/ProgramInspector.js";const CURRENT_CENTURY_YEAR_CUTOFF=29,SUPPORTED_DATE_FNS_LOCALES=["cs","da","de","de-AT","en-AU","en-CA","en-GB","en-IN","en-NZ","en-US","en-ZA","fr","fr-CA","fr-CH","it","nb","nl","nl-BE","nn","pt","pt-BR"];let localeDateFormat="",dateFormatSeparator;function isValidDate(e){return e instanceof Date&&!isNaN(e.valueOf())}function tryParseYear(e){if(/^\d+$/.test(e)&&!(4<e.length)){for(2===e.length&&(e=`${CURRENT_CENTURY_YEAR_CUTOFF>=parseInt(e,10)?20:19}${e}`);e.length<4;)e=`0${e}`;return e}}function tryParseMonth(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e=`0${e}`);var t=parseInt(e,10);if(!(t<1||12<t))return e}}function tryParseDay(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e=`0${e}`);var t=parseInt(e,10);if(!(t<1||31<t))return e}}function tryParseDateText(e){if(e){const r=(e=e.replace(/\\/g,"\\\\")).match(/(\d+)/g);if(r&&3===r.length){var e=getLocaleDateFormatSeparator(),t=getLocaleDateFormatTokenPosition("yyyy"),a=getLocaleDateFormatTokenPosition("MM");for(let e=0;e<3;e++){switch(e){case t:r[e]=tryParseYear(r[e]);break;case a:r[e]=tryParseMonth(r[e]);break;default:r[e]=tryParseDay(r[e])}if(void 0===r[e])return}return`${r[0]}${e}${r[1]}${e}${r[2]}`}}}async function getDateFnsLocale(e){const t=[];e=parseLocale(e);if(e){e.territory&&t.push(`${e.language}-${e.territory}`),t.push(e.language);for(const a of t)if(-1!==SUPPORTED_DATE_FNS_LOCALES.indexOf(a)){let e;try{e=await import(`date-fns/locale/${a}/index.min`)}catch{continue}if(null!==e&&void 0!==e&&e.localize)return e}}}function getLocaleDateFormat(){if(localeDateFormat)return localeDateFormat;const e=new Date(1999,11,31,0,0,0);return localeDateFormat=e.toLocaleDateString(void 0,{year:"numeric",month:"numeric",day:"numeric"}),localeDateFormat=localeDateFormat.replace("1999","yyyy"),localeDateFormat=localeDateFormat.replace("99","yyyy"),localeDateFormat=localeDateFormat.replace("12","MM"),localeDateFormat=localeDateFormat.replace("31","dd"),localeDateFormat}function getLocaleDateFormatSeparator(){var e;return void 0===dateFormatSeparator&&(e=/[^dMy]+/.exec(getLocaleDateFormat()),dateFormatSeparator=e?e[0]:""),dateFormatSeparator}function getLocaleDateFormatTokenPosition(e){const t=getLocaleDateFormat();var a=t.indexOf("yyyy"),r=t.indexOf("MM"),o=t.indexOf("dd");return"yyyy"===e?0===a?0:r<a&&o<a?2:1:"MM"===e?0===r?0:o<r&&a<r?2:1:0===o?0:r<o&&a<o?2:1}function getDateAsLocaleFormattedString(e){if(!isValidDate(e))return"";var t=tryParseYear(e.getFullYear().toString()),a=tryParseMonth((e.getMonth()+1).toString()),e=tryParseDay(e.getDate().toString());let r=getLocaleDateFormat();return r=r.replace("yyyy",t),r=r.replace("MM",a),r=r.replace("dd",e),r}const coerceIntoDate=e=>{if(e instanceof Date&&isValidDate(e))return new Date(e.valueOf());if("string"==typeof e)if(/^\d+$/.test(e))e=Number(e);else{var t=tryParseDateText(e);if(t){var a=getLocaleDateFormat(),a=parse(t,a,0);if(isValidDate(a))return a}}if("number"==typeof e){e=new Date(e);if(isValidDate(e))return e}};function convertToDateRangeRef(e){let t=void 0,a=void 0,r=!1;Array.isArray(e)?(t=coerceIntoDate(e[0]),a=coerceIntoDate(e[1]),r=!0):"object"==typeof e&&(t=coerceIntoDate(e.startDate),a=coerceIntoDate(e.endDate));var o=!!t&&!!a;let n=o&&!isAfter(t,a);return r&&o&&!n&&(e=t,t=a,a=e,n=!0),o&&n?{refValueType:"daterange",startDate:t,endDate:a}:void 0}function __test__setlocaleDateFormatInCache(e){localeDateFormat=e,dateFormatSeparator=void 0}export{isValidDate,tryParseYear,tryParseMonth,tryParseDay,tryParseDateText,getDateFnsLocale,getLocaleDateFormat,getLocaleDateFormatSeparator,getLocaleDateFormatTokenPosition,getDateAsLocaleFormattedString,convertToDateRangeRef,__test__setlocaleDateFormatInCache};
@@ -1 +1 @@
1
- export declare const VERSION = "5.31.0+20";
1
+ export declare const VERSION = "5.31.1+15";