{"version":3,"sources":["core/RecordBrowse.ts","core/Broadcast.ts","components/helpers/StyledText.tsx","core/TimeFormatter.ts","core/FieldFormatter.ts","core/RecordErrorSet.ts","core/RecordMeta.ts","core/Schema.ts","core/FieldRef.ts","core/Focus.tsx","core/ActionRef.ts","core/AppSession.tsx","core/SpinnerManager.tsx","core/Url.ts","core/ContextMenuHandler.tsx","core/HoverPopupHandler.tsx","core/CanvasSettingsCache.ts","core/MenuHandler.tsx","core/Application.tsx","core/types.tsx","components/helpers/ClickThrottle.tsx","core/Collection.ts","core/expressions/ExpressionOps.ts","core/expressions/Lexer.ts","core/expressions/Parser.ts","core/expressions/Serializer.ts","core/expressions/Evaluator.ts","core/HtmlRender.tsx","core/DynamicRender.tsx","components/helpers/AnchorPoint.tsx","core/RenderEvent.ts","components/popups/Popup.tsx","components/helpers/LoadingDots.tsx","components/Icon.tsx","components/studio/StudioToolboxLaunch.tsx","core/DragState.tsx","components/PageContextMenu.tsx","core/PageContainer.tsx","core/Dialog.tsx","core/ActionEvent.tsx","core/IfBlockRunner.ts","core/ConfigurationRunner.ts","core/errors/PageForbiddenError.ts","core/Response.ts","core/Request.ts","core/FileDownloadManager.ts","core/studio/DesignerToolbox.tsx","core/studio/StudioCommandBuffer.tsx","core/StatementRunner.tsx","core/AutoRefreshSettings.ts","core/Canvas.tsx","core/CollectionRef.ts","core/InputControl.tsx","components/HelpButton.tsx","components/Button.tsx","core/studio/Expressions.ts","components/studio/InlineTextPropEditor.tsx","components/studio/StudioEditorChildren.tsx","components/Card.tsx","components/Column.tsx","components/Panel.tsx","components/EditLink.tsx","components/helpers/index.tsx","components/popups/DatePickerPopup.tsx","components/display/FieldError.tsx","components/display/FieldLabel.tsx","components/display/TextBox.tsx","components/Line.tsx","components/display/LongCharText.tsx","components/display/ReadonlyField.tsx","components/display/Checkbox.tsx","components/display/Select.tsx","components/display/TextArea.tsx","components/PutField.tsx","components/popups/DialogContainer.tsx","components/popups/Error.tsx","components/popups/MessageBox.tsx","components/popups/Confirm.tsx","core/TabState.tsx","components/Tabs.tsx","components/NotificationToast.tsx","components/Spinner.tsx","components/EmptyState.tsx","components/FileUpload.tsx","components/ColorSwatch.tsx","components/Timeline.tsx","components/RadioButtons.tsx","components/RecordTabs.tsx","components/TemplateEditor.tsx","components/ButtonGroup.tsx","components/studio/StudioIconChooser.tsx","components/NavLink.tsx","components/InlinePage.tsx","components/Text.tsx","components/Spacer.tsx","components/FilterField.tsx","components/helpers/HorizontalSizer.tsx","components/helpers/ScrollRegion.tsx","components/helpers/StackLayerContainer.tsx","components/popups/DIalogIcons.tsx","components/Dialog.tsx","components/BrowseNavigator.tsx","components/Page.tsx","components/MainNavMenu.tsx","components/Workspace.tsx","components/product-table/ProductMenu.tsx","components/product-table/ProductTableStore.tsx","components/product-table/FilterItem.tsx","components/product-table/FilterGroup.tsx","components/product-table/CellValue.tsx","components/product-table/PivotList.tsx","components/product-table/SingleValueFilter.tsx","components/product-table/ProductRow.tsx","components/product-table/ProductTitleBar.tsx","components/product-table/ProductTable.tsx","components/product-table/CartItem.tsx","components/product-table/ToggleLink.tsx","components/product-table/Sidebar.tsx","components/product-table/CartDetail.tsx","components/data-table/DataViewTabs.tsx","components/SearchPanel.tsx","components/CodeBlock.tsx","api/LISAApi.ts","components/Navigator.tsx","components/Signin.tsx","components/data-table/DataView.tsx","core/BotState.tsx","components/Bot.tsx","components/charts/Wrapper.tsx","components/charts/ValueLimitChart.tsx","components/charts/SeriesChart.tsx","components/ToggleCard.tsx","components/NavBarValueSelector.tsx","components/popups/DateRangePicker.tsx","core/CollectionGrouper.ts","components/data-table/DataGridGroupHeader.tsx","components/data-table/DataGridGroupFooter.tsx","components/data-table/BoardView.tsx","components/data-table/DataTable.tsx","components/PortalBanner.tsx","components/Layout.tsx","components/LayoutNavStrip.tsx","components/Footer.tsx","components/Header.tsx","components/ActionBar.tsx","components/WhenEmpty.tsx","components/ForEach.tsx","components/product-table/ProductBreadcrumbs.tsx","components/product-table/FutureStock.tsx","components/Sidebar.tsx","components/PageSource.tsx","components/product-table/AvailableQtyCell.tsx","components/Container.tsx","components/InNavbar.tsx","components/filters/MultiOptionFilter.tsx","components/filters/FilterPanel.tsx","components/PageTitle.tsx","components/DialogButtons.tsx","components/InSearch.tsx","components/Stacked.tsx","components/InTotalBar.tsx","components/Value.tsx","components/SearchableList.tsx","components/RowSelector.tsx","components/studio/StudioMenuItem.tsx","components/studio/StudioPropEditor.tsx","components/InlineEditor.tsx","components/ActivityTimeline.tsx","components/Image.tsx","components/studio/StudioNode.tsx","components/InToolbox.tsx","components/TaskList.tsx","core/search/KeywordFilter.ts","components/SearchBox.tsx","components/DatePicker.tsx","components/InlineFieldEditor.tsx","components/studio/StudioToolbox.tsx","components/SectionEditor.tsx","components/studio/StudioEditorDialog.tsx","components/SpotHolder.tsx","components/studio/StudioInlinePage.tsx","components/studio/DesignerContentSlot.tsx","components/DropList.tsx","components/Link.tsx","components/studio/StatementNode.tsx","components/studio/SourceCode.tsx","components/PutBlock.tsx","components/studio/ElementContextMenu.tsx","components/studio/DesignerProp.tsx","components/table/Table.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"names":["RecordBrowse","label","rows","currentIndex","onRecordChanged","renderRecord","triggerAction","step","newIndex","this","length","Broadcast","listeners","action","data","i","listener","handler","component","forceUpdate","findListenerIndex","push","splice","dispatch","StyledText","value","elems","segments","split","bold","segment","style","marginLeft","marginRight","fontWeight","toString","end","indexOf","formatted","substring","plain","colon","lastIndexOf","styles","computeStyles","format","FieldFormatter","className","defined","override","iconName","iconClasses","icon","classNames","s","p","startsWith","name","join","TimeFormatter","parsed","parse","invalid","hour","StringFormatter","padZero","minute","raw","undefined","second","parts","trim","part","num","parseInt","isNaN","isPM","lastIndex","lastSegment","toUpperCase","up","pop","endsWith","isFinite","storedTimeFormat","type","named","namedFormats","formatDate","formatDateTime","formatInteger","formatMoney","formatNumber","toDisplay","RegExp","test","NumberFormatter","DateFormatter","parseInteger","formatInt","parseMoney","parseNumber","parseDate","parseDateTime","parseUID","parseFromInput","parseDateFromInput","n","len","count","v","c","isNegative","charAt","parseFloat","replace","substr","defaultDateFormat","tokenStream","getTokenStream","position","tokens","token","dayPosition","monthPosition","yearPosition","t","cache","FormatTokenStream","tokenChars","defaultDateTimeFormat","namedFormat","applyFormat","date","d","day","m","month","y","year","h","w","dayOfWeek","a","getMonthName","getDayName","minutes","explicitAM","explicitPM","minutesSegment","toLowerCase","storedDateTimeFormat","Date","storedDateFormat","getFullYear","getMonth","getDate","dateOnly","dt","UTC","getDay","seconds","numDays","getUTCFullYear","getUTCMonth","getUTCDate","numMonths","today","timeSegments","zoneSplit","dateTimeSplit","dateSegments","secondSegments","minutesOffset","timeZone","milliSeconds","timestamp","parseISODate","getDurationText","getTime","e","time","now","diffInSeconds","getFutureDurationText","diffInMinutes","Math","floor","diffInHours","diffInDays","ceil","Array","dw","datePlaceholder","ch","source","sLen","index","parseToken","parseLiteral","formatString","nf","NumberFormat","defaultMoney","defaultNumber","defaultInteger","decimals","decimalsOptional","comma","leadingZero","hideZero","zeroLiteral","isPercent","prev","numberToken","decimalPoint","newTokens","negativeHandled","getFormattedNumber","abs","toFixed","result","getWholePortion","getDecimalPortion","fixedString","r","RecordErrorSet","title","messages","fields","code","handled","hasErrors","message","field","meta","error","get","RecordMeta","readonly","metaProps","schema","record","$$meta","fieldName","getOrCreateFieldMeta","required","getBoolean","disabled","disabledHelp","hidden","options","fieldMeta","hasEmptyOption","unshift","option","text","placeholder","help","lookupLabel","forRecord","Schema","canvas","qualified","target","defaultRecord","getRecordSchema","getFieldDef","recordName","f","recordSchema","FieldRef","scope","def","lookupLabelRef","isExpression","exprValue","formatOverride","labelOverride","getFieldFromMeta","getFieldRef","getRecordValue","isRange","$$get","filter","$type","setValue","toValue","setRecordValueNoUpdate","Focus","shouldFocus","getValue","labelStyles","suffixExpression","size","upValue","formatValue","getOptionLabel","compare","opt","handleEnterKey","metaValue","valueRange","lookup","formattedValue","setLookupLabel","onClick","getFieldMeta","ActionRef","onValueChanged","recordMeta","actionRef","trigger","triggerOnChange","bucket","pendingFocusField","statements","disableIf","shouldFocusButton","continue","AppSession","app","homePage","broadcast","firstName","lastName","userType","botConnect","values","parentCanvas","props","dialog","page","Canvas","launchParams","Dialog","open","method","Application","instance","doPostRequest","getPostUrl","domain","branch","json","urlValues","container","document","createElement","body","appendChild","content","renderSignin","location","assign","ReactDOM","render","done","username","password","res","success","window","top","appName","SpinnerManager","spinnerState","spinnerTimer","pendingAction","lastAction","showSpinnerElem","hideSpinnerElem","startTimer","clearTimeout","updateSpinnerState","console","delay","setTimeout","visible","Url","pathname","search","folder","filename","isScreen","decodeURIComponent","searchValues","parseSearch","params","key","patch","stringifySearch","parameters","obj","parameter","origin","stringify","searchObj","isPrimitive","encodeURIComponent","form","url","Object","ContextMenuHandler","id","handleOpen","onClose","isOpen","row","elemId","x","rect","manager","update","ContextMenuManager","_handlers","_nextId","args","handlerElem","closest","handlerId","getAttribute","findHandler","close","HoverPopupHandler","HoverPopupManager","activeHandlerId","CanvasSettingsCache","_pages","pageName","settings","CanvasSettings","getSettings","overlayWidth","_pageName","_overlayWidth","_viewType","MenuHandler","MenuManager","CartManager","appData","callback","connect","disconnect","AppDataRecord","notifications","pageNavigate","spinner","getMessageBox","getConfirmDialog","renderError","studioWindow","host","activeScreens","studioOpen","session","signinSettings","studioSettings","studioBroadcast","studioContent","studioContentKey","designerToolboxBroadcast","version","portalTitle","showOverlay","overlayBroadcast","selectedBlock","codeDesignerEnabled","designerTargetPage","codeDesignBroadcast","workspaceKey","currentWorkspace","workspaceContentKey","currentWorkspaceLink","currentWorkspaceContent","cart","canvasSettingsCache","contextMenuManager","hoverPopupManager","menuManager","workspaceTabState","currentDraftView","pollingTimer","screen","screenName","activeScreen","reload","qualifyUri","path","workspace","link","replaceState","pushState","setWorkspaceUrl","asReplace","history","setWorkspaceScreen","refresh","autoRefreshSettings","refreshIfStale","setInterval","executeCanvasPollCycle","clearInterval","namespace","manifest","components","$def","screens","KIND","SidebarState","frames","activeFrame","NavbarState","isCollapsed","makeComponent","getActionName","$name","ClickThrottle","lastClick","lastCurrentTarget","current","currentTarget","preventDefault","stopPropagation","log","Collection","isCollection","newArray","incrementVersion","table","sortBy","CollectionSorter","executeSort","is_selected","keyField","collectionName","col","rowKey","getSchema","collection","comparers","buildComparers","comparerCount","sort","rowA","rowB","sortItem","sortExpr","j","expr","descending","buildComparer","fieldType","BooleanComparer","NumberComparer","StringComparer","b","ExpressionOps","left","right","isArray","stringsForCompare","right1","right2","istrue","context","getCurrentRow","totals","getRow","getCollectionRef","$$isTable","apply","eventValue","returnValue","selected","isRowSelected","projection","projectionFields","SerializeRows","include","output","outRec","prefix","arguments","arg","sep","first","last","initials","trueValue","falseValue","totalName","total","getRecord","parseVariable","propName","onlySelected","modifier","Number","separator","prop","currentRow","Lexer","lastToken","keywords","systemFunctions","keyword","asVariable","expression","scanCode","isWhiteSpace","scanFormat","isPunctuation","peek","isNumber","scanNumber","scanLiteral","isIdentifierStart","scanIdentifier","op","getOperator","pendingEscape","match","k","isGlobalScript","scanScript","isIdentifierChar","u","isSystemFunction","getKeywordOperator","isDataType","isKeyword","isSystemVariable","isGlobal","lexer","lexExpression","Parser","typeChecking","operators","pendingNode","pendingOp","endOfBlock","valueNode","isMoreTokens","advance","opText","nodeType","opNode","getPrecedence","getNode","tokenType","getSystemFunc","getIdentifier","node","computed","computedExpr","indexer","iNode","getFunction","getIndexer","varName","rec","getVariableType","createPropNode","createTargetNode","isTarget","getLocalType","sysFuncName","extendedName","getExtendedName","withStackItem","findWith","getProp","indexed","getFuncArgs","funcName","getNameof","targetField","pNode","getPropertyType","root","o","precedence","ScriptKeywords","getExpression","ScriptFunctions","ScriptOperators","NEG","MOD","EQ","NE","LE","LT","GT","GTE","BEGINS","CONTAINS","ENDS","BETWEEN","NOT","AND","OR","XOR","TRIM","ABS","MID","WHEN","AVAILABLE","Serializer","quotedString","serializeBool","serialize","quoteFunction","serializeArgs","argTypes","tableName","JSON","Function","Evaluator","expressionCache","exprFunc","createExpressionFunction","HtmlRender","event","elem","tag","$tag","propValue","getPropValue","renderItem","renderArray","children","reactPropMap","componentMap","onclick","React","Wrapper","child","item","renderTag","_","evaluate","href","newProps","DynamicRender","containerProps","$id","$sec","kind","$kind","renderHTMLElement","forEachElem","evalWhen","renderForEach","runIfBlock","contentValue","computeProp","loadPageSettings","Comp","getKind","keyPrefix","$dynamic","$elem","$src_kind","asRenderFunc","asDesignMode","childEvent","create","designMode","reactElem","subtitle","width","height","scrollable","stackPosition","showClose","getParams","getActionRef","createLaunchParameters","conditions","cond","statement","condition","renderTest","requiresHandlers","nextKey","WrappedChildren","Children","map","Component","color","argValue","stringValue","argName","spacer","fontFamily","fontSize","marginBottom","opacity","collectionRef","rowEvent","whenEmptyProps","whenEmpty","AnchorPoint","HtmlTag","clickThrottle","handleClick","handle","RenderEvent","depth","visibilityContainer","actionName","actions","blockState","newState","getBlockState","getImageUrl","TopLeftCorner","BottomRightCorner","TopAlignCenter","BottomAlignCenter","TopRightCorner","BottomLeftCorner","RightVerticalCenter","LeftVerticalCenter","TopAlignLeft","BottomAlignLeft","TopAlignRight","BottomAlignRight","ZeroRect","bottom","getRectForAnchor","contentRect","anchorRect","anchorPoint","anchorWidth","contentWidth","anchorHeight","contentHeight","isRectangleOutside","collider","bounds","isOutside","getWindowRect","innerWidth","innerHeight","getAnchoredPositionResult","preferedAnchorPoint","bestChoice","bestAnchorPoint","windowRect","testAnchors","testAnchor","positionedRect","getUpdateMenuPosition","menuRect","positionResult","newContentRect","showOnSide","windowWidth","isOnRight","getAnchorPoint","anchoredTo","Popup","state","contentsRef","isPositionedOnce","handleWheel","contentEle","getContentEle","contains","onWheel","handleScroll","handlePossibleOutsideClick","isTop","getIsTop","popupContainer","getStackPosition","attachedEle","getAttachedEle","onForceClose","updatePosition","attachedRef","attachedRect","isAttachedToPosition","isAttachedToRect","getBoundingClientRect","onAnchored","handleContentsRef","setState","popupStack","addEventListener","findDOMNode","removeEventListener","updateStack","removeChild","slice","prevProps","prevState","cover","containerStyle","zIndex","withCover","popupStackPosition","ref","data-popup-stack","onResize","contents","renderContents","createPortal","LoadingDots","icons","svgIcon","viewBox","Icon","iconDef","html","__html","display","fill","dangerouslySetInnerHTML","IconComponent","canvasIcon","StudioToolboxLaunch","designerToolbox","toolboxElem","toolbox","dragState","dragging","buttonStyle","padding","borderRadius","cursor","alignItems","gap","border","transition","backgroundColor","transform","DragState","_dragging","dragElementId","dragElementContainerId","highlightIndex","highlightMode","targetHeight","containerHeight","containerRef","createRef","transitionSpeed","dropbarBroadcast","imageBroadcast","onDragEnd","onDragStart","onDrop","dragTool","dropTargetId","dropTargetKind","dropTargetContainerRect","dropPosition","mouseDownPos","renderDragImage","dragImageTop","dragImageLeft","scrollPulse","scrollPulseDirection","expanded","dropBar","handleMouseUp","endDrag","handleMouseMove","getSelection","sel","removeAllRanges","clientX","clientY","dropZone","elementFromPoint","dropTarget","noDrop","dropTargetRec","targetContainer","parentElement","setDropZoneHighlight","setDropbar","handleScrollPulse","setDropZoneTimer","pendingDropRect","scrollTop","elementId","initDrag","tool","offsetHeight","pending","DropBar","dragOver","dataTransfer","dropEffect","dragEnter","dropBarElem","targetContainerOutline","containerRect","pointerEvents","boxShadow","data-drop-bar","onDragOver","onDragEnter","DragImage","PageContextMenu","handleLoaded","onLoaded","pageProps","pageParams","PageContainer","pageLoadError","parent","renderEvent","visibiltyContainer","autoRefresh","setAutoRefresh","botInfo","loadSettings","studioSource","registerScreen","layer","layerZIndex","closeDialogBox","handleRecordChanged","noPadding","asWidget","start","updateComponent","unregisterScreen","renderDisabled","loadError","unableToLoadContent","$$error","cloneElement","isCachedVersionRefresh","show","initialized","hide","dataRequestId","botState","waitingForData","displayContent","loaded","suffix","onChildLoaded","loadedFromCache","insideLoadedFromCache","resetData","CanvasContainer","contextMenuHandler","handleContextMenuClick","renderActivePopupContent","maxWidth","flexDirection","minHeight","activePopup","renderMenu","pageId","handlePopupForceClose","createHandler","contextMenuId","snapshot","pendingRestart","getIsStackCovered","restart","contextMenu","popup","designerElem","renderContextMenu","renderActivePopup","designerOpen","RefreshableContentWrapper","hardRefreshKey","getDialogStack","isStudio","studioStack","appStack","DialogContainer","dialogStack","renderStudioStack","stack","overflow","ErrorDialogContainer","ErrorDialog","errorBroadcast","errorStack","isStudioPage","pause","Promise","resolve","reject","stackIndex","recordEvent","isRecordChanged","targetCanvas","Stack","getTargetCanvas","stackChild","setDialogStack","resume","kill","previous","asLookupFor","qualifiedName","lookupScreen","stacked","asPopup","promise","closeStack","asSidebar","sidebarContent","showStackContent","closed","targetPos","openPopup","stackPositionOverride","stackStyle","recordBrowse","browse","isBrowseMove","coveredTitle","isStackTarget","recordScreen","ActionEvent","ScreenRef","eventOptions","setData","recordTypeName","forEdit","initalizeRecord","setRecord","unlockRecord","lockRecord","currentValue","bindSchema","setMetaProps","setCurrentRow","dataBroadcast","rowid","locate","browseOptions","enterKeyAction","asDialog","MessageBox","fieldRef","setRequired","setFormat","setHelp","parseTarget","setLabel","setPlaceholder","fieldDef","getQualifiedFieldDef","autoLaunch","labelField","setDisabled","setDisabledHelp","setHidden","setReadonly","setOptions","focus","getMeta","setRecordReadonly","errorSet","recordChanged","template","getCollectionName","addRow","removeRow","recordDef","clearErrors","opField","toField","Confirm","getTargetName","IfBlockRunner","executeCommands","executeConfig","commands","command","func","then","PageForbiddenError","showDialog","sourceCode","codeErrors","validationErrors","Error","Response","callType","currentRowKeys","getCurrentRowKeys","loadStartValues","pageInfo","errorTable","pageErrorCode","errorRender","codeSource","run","processErrors","restoreCurrentRowKeys","configure","setSchema","bot","data_request_id","PageResponseCache","_items","_recentKeys","_cacheItemCount","cacheKey","cacheStrategy","response","addKey","evict","removeFromCache","removeKey","RECENT_KEY_COUNT","newCache","Request","getScreenPath","signin","insideRequest","process","draft_id","screenId","layout","view","client","designer_sections","stopOnWarning","buildCacheKey","cacheItem","getCachedResponse","executeRequest","retryAfterWarnings","updateCache","items","keys","FileDownloadManager","autoOpen","contentType","extension","decodeBase64","blob","Blob","downloadBlob","URL","createObjectURL","download","clickHandler","revokeObjectURL","click","base64","binaryString","atob","bytes","Uint8Array","charCodeAt","DesignerToolbox","activeFolder","activeFolderContent","_folderContent","fetchFolderContent","studioCommandBuffer","loadToolbox","send","designFocus","setFolderContent","activateFolder","StudioCommandBuffer","destination","commandsToSend","exprVal","setCompare","activateTab","mode","shouldContinue","stop","disable","downloadFile","onEnterKey","concat","enable","hasUnsavedChanges","setCollection","setFilter","pageType","setLookup","newWindow","optional","dataName","currentRows","newRows","rowIndex","findRowIndex","replaceRowkey","recordChangedEvent","manditory","unhide","setPromptValue","sidebarState","trackUnsavedChanges","restartPages","setRowSelected","openWorkspace","useDragState","slotContent","setToValue","setValueNoUpdate","currentOptions","noUpdate","callMethod","paramValues","createScriptCallParameters","results","callBatch","targetScreen","findScreen","targetScreenRef","$computed","openDialog","question","addQuestion","openSidebar","withBrowse","browseLabel","openOnStack","showWarning","block","noDelay","triggerSearch","noDialog","AutoRefreshSettings","frequencySeconds","frequencyMilliSeconds","_lastRefresh","shouldRefresh","getIsVisible","CanvasDesigner","dropTargetElem","dropTargetIsContainer","dragElem","dragElemContainer","nextId","isContainer","_data","pendingFocusRow","navbarState","stackOverlayOffsetX","getContainerWidth","activeContentId","tabContent","designer","animationComplete","activeDesignElement","autofillFields","renderDesignSlot","childCanvas","startAction","input","getFieldValue","appValues","appRecord","bounding","helpTopics","clickTarget","menuElement","menuId","preserveInputParams","begin","getRowKey","rowKeys","findRowByKey","setRecordProp","appValueUpdated","clearError","$$set","onValueChangedAction","getActionHandler","executeActionHandler","errorDialog","isVisible","CollectionRef","findRow","newRow","makeInput","editValue","dirty","focusElemRef","finderOpen","allowInputWithFinderOpen","findButtonRef","dropValues","keyListeners","handleLaunchFinder","onBlur","relatedTarget","isLookup","launchFinder","clickInsidePopup","updateValue","onChange","newValue","uppercase","onKeyPress","onKeyDown","isToValue","formattedToValue","parseInput","isAutoLaunch","openLookup","displayValue","findListener","HelpButton","topic","flexGrow","justifyContent","Button","button","tabIndex","helpTopic","getHelpTopic","ButtonPresenter","buttonRef","data-elem-id","Expressions","replaceAll","InlineTextPropEditor","handleKeyPress","commandBuffer","fromDisplayValue","setProp","allowEnterForNewLine","appendLine","handleBlur","handleChange","divStyle","paddingRight","textAreaStyle","outline","resize","sourceElem","toDisplayValue","placeHolder","StudioEditorChildren","forEach","isColumnContainer","addMargin","appendElem","hideAppend","appendStyle","appendClass","data-drop-target","data-drop-position","data-drop-zone","ContentItem","handleMouseDown","containerId","startDrag","letterSpacing","handleDotsClick","handleSwapClick","swapPosition","handleClickLeft","moveLeft","handleClickRight","moveRight","swapIcon","dataDropTarget","borderStyle","borderColor","paddingLeft","marginTop","asColumn","flexBasis","spanSize","isLast","itemSelector","dotsClassname","contentStyle","paddingBottom","onMouseDown","flexShrink","targetKind","data-target-kind","Card","shiftKey","postMessage","renderSection","header","actionElems","buttons","helpButton","labelClass","data-no-drop","Actions","Column","verticalCenter","alignSelf","textAlign","divider","decorate","Panel","columnSize","background","annotation","annotated","PanelPresenter","handleToggleChange","handleHelpClick","renderAnnotated","renderContent","footer","titleElem","toggle","checked","renderCheckmark","getSegmentElements","spans","asStrong","targetWindow","KeyCode","DatePickerPopup","activeDate","activeStartOfMonthDate","handleDayClick","handlePrevMonthClick","goPrevMonth","handleNextMonthClick","goNextMonth","handleCalendarClick","ele","nodeName","parentNode","attributes","getNamedItem","selectedDateString","dataset","handleInputKey","keyCode","altKey","getActiveStartOfMonthDate","moveActiveDayIfPossible","connectKeyListener","disconnectKeyListener","dateHelper","createDateHelper","goPreviousMonth","currentDate","getCalendarDate","parsedDate","getToday","effectiveActiveDate","moveToDate","addDaysToDate","canDayBeDisplayed","displayDate","calendarDate","datePickerMonth","getDisplayCalendarMonth","selectedDate","monthName","yearName","weeks","renderedWeeks","weekIndex","week","renderedDays","dayIndex","days","dayClass","ignore","inActive","isToday","data-handler","data-event","data-date","dateString","data-month","data-year","renderPrevIcon","renderNextIcon","fillRule","helper","DateHelper","allowedValues","newDate","searchDate","baseYear","baseMonth","startDay","prevMonthDays","daysInMonth","curMonthDays","firstDayOfMonth","inPrevMonth","inCurMonth","baseDay","dateDiffDays","baseDate","compareDate","minDate","todayIndex","selectedIndex","cols","rowData","colData","addDays","getIsDateAllowed","year2","month2","day2","dayNames","parseDateFromInput_","parseResult","isDateTime","isInvalid","parsedTime","FieldError","FieldLabel","helpIcon","topicId","FieldInfoIcon","renderInfoIcon","TextBox","select","autoComplete","registerAutoFillField","unregisterAutoFillField","isComboBox","hideLabel","maxLen","noTabStop","TextBoxPresenter","datePickerRef","handleFinderClick","handleClear","launchDatePicker","handleDatePickerChange","handleCloseDatePicker","handleClose","hideValue","containerClass","errorElem","helpElem","inputClassName","readOnly","displayElem","clearButton","hasFinder","finderButton","datePicker","isDatePicker","Icons","renderDatePicker","maxLength","inputType","getAllowedDateValues","ClearIcon","data-studio-click","focusable","xmlns","role","Line","handleToggleClick","spacing","spanSegments","spanPattern","span","align","vertSpacing","vertAlign","LongCharText","ReadonlyField","handleHyperlinkClick","fireOnClick","textAlignClass","valueElem","labelElem","contentClasses","renderStaticCheckmark","onClickAction","labelContent","splitLabel","labelClassName","outerClass","inner","outerStyle","labelPosition","Checkbox","Select","optionElems","TextArea","PutField","componentProps","asCalendar","DesignModeField","renderExpr","$src_expr","animate","sizeClass","backdropStyle","data-context-menu","getTitle","renderMessages","renderValidationErrors","renderSourceCode","requiredCount","ValidationErrorPresenter","ErrorDialogPresenter","renderErrorIcon","headerClass","buttonClass","ServerRenderedErrorPresenter","errors","data-retool-error","generalMessages","fieldMessages","genMessageElems","fieldMessageElems","requiredContent","requiredFields","labelColor","renderSuccessIcon","strokeWidth","handleContinue","handleCancel","confirmButtonClass","buttonContainerClass","renderConfirmIcon","cancelLabel","continueLabel","styleClass","TabSetState","activeTab","tabs","tabList","stackContent","menuState","firstTabName","tabName","tab","contentKey","refreshContent","TabSet","tabState","stateKey","createTabs","variant","noPullPadding","TabSetPresenter","handleTabClick","panels","activeLabel","isMenu","pullPadding","isActive","render_children","hideLabels","TabLabel","data-studio-select","Tab","$onClick","$isActive","TabPanelContainer","hasBeenActive","TabPanelContent","nextProps","HorizontalTabSet","insideDialog","VerticalTabSet","paddingTop","MenuTabSet","dropRef","renderPopup","borderBottom","renderAngleDown","MenuItem","check","stroke","textDecoration","NotificationToast","timer","hideMessage","messageItem","innerClassName","overlay","strokeLinecap","cx","cy","Spinner","EmptyState","FileUpload","file","files","reader","FileReader","onload","readAsDataURL","handleFileDrop","handleClearClick","src","preview","previewImage","hasContent","FileDropZone","dragCounter","handleDrop","isDropTarget","getAsFile","handleDragOver","handleDragEnter","handleDragLeave","renderIcon","onDragLeave","ColorSwatch","Timeline","lastDate","TimelineItem","user","richText","out","Text","Target","renderRichText","RadioButtons","controlName","changeValue","optionElements","valueIsOption","cls","direction","RadioOption","checkedCls","RecordTabs","renderedRow","panel","Label","tags","getTagList","tagName","instructions","renderReadonly","formatReadonly","tagStyle","delimStyle","errorStyle","tagsCollection","isValidTag","Name","TagRow","navigator","clipboard","writeText","ButtonGroup","StudioIconPropEditor","flexWrap","overflowY","IconOption","closePopup","NavLink","chooseIcon","description","Menu","itemMinHeight","columns","perColumn","totalCount","columnIndex","renderColumn","InlinePage","prevParams","nextParams","buildCompareObject","paramsMatch","prevValues","nextValues","prevValue","nextValue","targetKey","addPrefix","textElem","Spacer","sizePadding","borderTop","FilterField","operatorRef","handleChooseOperator","operator","handleForcePopupClose","handleOperatorClick","opDesc","fromInput","opClass","compareOptions","findCompare","hasValue","hasToValue","compareLabel","upperBoundInput","upperBoundValue","drop","borderWidth","renderPopupContent","dropContent","anchorRef","OperatorPopup","handleChoose","fo","onChoose","OperatorChoice","LogicalFilter","active","LogicalFilterChoice","SelectFilter","TextFilter","inputElem","HorizontalSizer","startX","offsetX","sizing","clearSelection","capture","ev","setSize","ScrollRegion","scrolled","onScroll","defaultPageBackgroundColor","StackLayerContainer","setOverlaySize","adjustX","newOffset","containerWidth","offsetWidth","setOverlayWidth","handleOpenSidebar","handleCloseSidebar","handleOpenNavbar","handleCloseNavbar","handleCloseStack","handleClickClose","headerElem","bodyDisplay","covered","sizer","bodyClass","sidebarProps","bodyStyle","borderBottomLeftRadius","borderBottomRightRadius","stackClass","renderCoveredHeader","converedTitle","colorBlock","peekWidth","getPageBackgroundColor","closeButtonBackgroundColor","sidebar","sidebarOpen","sidebarWidth","navbarOpen","navbarWidth","navbarContent","navbarProps","fixedOpen","closeButton","sidebarStyle","overlayBody","renderCloseSidebar","renderOpenSidebar","navbarStyle","collapsible","rowGap","navbar","footerElem","mainContent","sidebarElem","navbarElem","draftInfo","mainStyle","footerClass","sidebarClass","navbarClass","nav","borderTopLeftRadius","borderTopRightRadius","OverlayCloseButton","handleClickFull","handleClickOverlay","goFull","goOverlay","DialogIcons","dialogSize","dialogHeight","Header","addOnClass","renderFullScreenDialog","footerProps","Footer","bodyHeader","addOnClassName","ctrlKey","viewSource","BrowseNavigator","handleClickBack","move","handleClickNext","backClass","forwardClass","renderBackIcon","renderForwardIcon","Page","actionElem","headerContent","headerFieldsElem","headerFields","noSpaceAbove","PageBanner","contentRow","PageActions","MainMenuLaunch","menuHandler","handleMouseEnter","handleForceClose","forceClose","data-main-nav-menu","onMouseEnter","MainMenuPopup","data-menu-id","MainMenu","signout","getInitials","links","DropMenuItem","desc","MainMenuLink","closeMenu","Workspace","closeLinkContent","renderStackChild","hideMenu","lineHeight","WorkspaceLink","isWorkspaceContent","MenuStore","menu","activeSection","section","MenuPanel","clickListener","store","renderMenuItems","Section","handleSectionClick","caret","renderCaret","data-menu-section","borderLeft","borderRight","handleMenuClick","DefaultTheme","cartValueColor","cartValueWarningColor","cartCountBackground","circleCheckColor","filterCheckedBackground","filterCheckedFill","linkColor","headerBackgroundColor","headerFontSize","headerColor","bodyFontSize","ProductTableStore","colors","profileImages","colorOptions","familyColors","family","profile","available_date","selected_product_id","colorNames","activeRowId","tableKey","theme","loadSidebarAction","rowMap","handleCartChange","handleColorChange","formatData","handleSelectAll","colorSet","handleSelectNone","handleFamilyFilterChange","handleProfileFilterChange","handleSelectCell","selectedField","sku","profileOptions","image","fc","loadTheme","settingsField","emptyStateMessage","productTitleSub","productTitleMain","pivotColumnLabel","assortedLabel","orderBy","groupByFamily","mapRows","priceLevel","price","price1","price2","price3","qty","FilterItem","iconOpacity","boxBackground","boxBorder","FilterGroup","onSelectAll","onClear","textTransform","CellValue","onSelectCell","qty_future","cart_qty","minWidth","PivotList","activeRow","SingleValueFilter","ProductRow","ProductTitleBar","handleShowCartClick","handleSwitchCartClick","CartStatus","handleCartCloseClick","onClickClose","closeIcon","cartName","cartItemCount","countText","branchName","menuStore","ProductTable","renderedVersion","loadData","connectDataListener","disconnectDataListener","addToCart","load","tbody","colorValues","rowOptions","isEmpty","tableElems","shadeBody","tables","renderTableHeader","familyFilter","profileFilter","profileContent","sameProduct","forceBreak","buildFamilyColors","family_text","rowStyle","colSpan","rowSpan","profileFontSize","verticalAlign","profile_text","tdStyle","familyText","sizeStyle","whiteSpace","showAvailOnly","overflowX","renderColorFilter","renderSidebar","familyColorSet","filterElems","colorOption","colorHeaders","thStyle","profileStyle","descripStyle","colorStyle","CartItem","backOrderElem","itemNote","backorderFlag","backorder_note","renderNote","backorder_qty","cardClass","card","product_descrip","category","avail_to_ship","indexStyle","rowIndexElem","DataCard","iconElem","ToggleLink","Sidebar","parseQty","handleAddToCart","handleToggleShowDetails","details_visible","qtyIcon","buttonLabel","future","qty_avail","inbound","renderInbound","cartButtonOpacity","cartButtonDisabled","color_text","pkg_size","renderNotes","notes","availQty","line","expected_date","cart_id","getOrCreate","CartDetail","inventoryCollectionName","setPrices","screenRef","renderMessage","renderCartItems","backorderNote","backorderDate","productRow","findStoreRow","product_id","rowElem","sidebarBackground","DataViewTabs","grid","changeView","dataViews","activeView","getActiveView","dataView","SearchPanel","dataViewTabs","CodeBlock","LISAApi","info","credentials","headers","replacer","fetch","debug","entry","Navigator","ready","handleMessage","reloadScreen","handlePopState","loadConfig","windowUrl","err","pingInterval","ping","config","componentClass","StartupError","handleRetry","Signin","supportLinkLabel","supportLinkHref","usernameLabel","submitLabel","registerLabel","forgotPasswordLabel","passwordResetInstruction","resetSentMessage","logoFile","logoSize","closePage","submit","busy","attemptSignin","getErrorMessage","requestToken","requestType","signup","resetPassword","handleInputChange","stateChange","handleRegisterClick","confirmPassword","handleForgotClick","handleReturnToLoginClick","pwdToken","renderLoginScreen","renderRegister","renderForgot","renderRequestSent","renderReset","renderWelcome","assistanceLink","register","forgot","submitButton","assistance","onSubmit","textDesc","DataView","DataViewColumns","DataViewSorting","DataViewSort","DataViewGrouping","BotPubSub","webSocket","connectToPubSub","botConnectUrl","ws","WebSocket","onopen","onclose","onmessage","onWebSocketMessage","BotState","promptBroadcast","promptRef","scrollRef","promptValue","inputHelp","commandMenuOpen","commandMenuActiveIndex","commandMenuItems","hint","greeting","botName","botPubSub","commandText","findCommand","parseParameterValues","eventParamName","eventParam","paramName","seg","sp","nextParam","messageId","message_id","dataArrived","space","buildCommmandMenu","getCommand","cancel","findMessage","findCanvas","Bot","deltaY","getCommands","scrollToEnd","screenElems","BotCommand","BotDialogCard","handleChooseOption","executeOption","answered","BotMessage","typing","questionParams","getParamsForQuestion","BotPrompt","chooseActiveCommand","handleKeyDown","menuDown","menuUp","commandList","CommandMenu","BotOptions","BotOption","BotDialogButton","labelElems","Typing","ValueLimitChart","progress","limit","percentage","progressColor","smallerIsBetter","dangerValue","warningValue","widgetLabel","valueText","round","percent","PieChart","Pie","dataKey","startAngle","endAngle","outerRadius","innerRadius","margin","ValueChart","SeriesChart","formatYTick","valueType","handleBarClick","onRowClick","dataRow","activePayload","payload","handlePieClick","renderLabel","chartType","renderPieChart","renderLineChart","renderAreaChart","renderBarChart","renderEmptyState","lines","dataKeys","colorIndex","activeDot","LineChart","CartesianGrid","strokeDasharray","XAxis","YAxis","Tooltip","Legend","Area","AreaChart","bars","Bar","BarChart","minTickGap","tick","tickFormatter","formatter","isAnimationActive","Cell","CustomizedAxisTick","dy","textAnchor","PureComponent","ToggleCard","CardGroup","LogicalValue","Annotation","List","itemClass","isValidElement","NavBarValueSelector","DateRangePicker","ranges","range","handleOptionClick","findRange","from","to","handleRangeSelectorClick","dates","borderLeftWidth","Option","CollectionGrouper","groups","reportGroup","definedTotals","pageSize","_currentHeaders","_currentTotals","_currentRowCount","_lineIndex","_pageRowCount","_lastGroup","reportTotals","noGroups","createTotals","pages","summaryGroup","firstRow","createHeaders","addRowTotals","lastRow","level","getBreakLevel","createFooters","newPage","group","breakLevel","addPageHeaders","continued","addTotals","innermost","defTotal","createTotal","add","TotalSum","_value","TotalRowCount","TotalAvg","_count","DataGridGroupHeader","renderedRowDataVersion","topRight","printElems","columnHeaders","DataGridGroupFooter","footerElems","isLastRow","BoardView","renderedDataVersion","renderedGridVersion","dataVersion","gridState","rowElems","groupMap","currentPage","currentHeader","columnElems","column","BoardColumn","BoardCard","cell","colIndex","buttonName","cardContent","DataTable","onRefresh","totalBar","DataTablePresenter","headerContainer","currentView","renderedPageVersion","renderedLayout","renderedCollectionVersion","measure","stretchColumn","definedWidth","stretch","measured","stretchWidth","Grid","setWidth","handleRefreshClick","handlePageNumberClick","pageNumber","createGrid","grouper","groupRows","getVersion","defaultView","totalWidth","rowSelector","reportHeader","gridContent","searchPanel","isGrouped","viewType","hideHeader","grouped","renderReportHeader","searchProps","renderButtonBar","tableLayout","onSelectorClick","verbose","queryPopulated","rowCount","countElem","totalBarElem","pagination","tableView","boardView","numPages","viewSelector","ViewTypeIcon","GridRows","pageIndex","renderGroupHeaderContent","renderGroupFooterContent","tableStyle","extra","footerContent","ColumnarRow","handleSelectorChange","fireSelectorChanged","handleSelectorClick","rowRenderEvent","cells","offset","renderSelectorCell","displayLabelInCell","valueStyle","getStyle","getSuffix","cellClasses","contentCss","drawAs","data-col-index","getRowStyle","rowStyles","rowCalcStyle","data-row-index","HeaderContainer","ColumnarHeader","handleColumnResize","selectAllValue","setSelected","renderHeaderSelectorCell","HeaderCell","setSort","sortElem","getColumnSort","resizeHandle","TotalRow","TotalCell","SortDirectionDesc","SortDirectionAsc","ColumnResizeHandle","currentWidth","newWidth","moving","change","css","buildTotals","rowMenu","hideRowCount","computeColumns","rowStyleExpression","totalType","reportTotal","rowCountTotal","currentSortField","Pagination","handleIconClick","handlePageClick","userSelect","next","rangeElems","leftEdge","rightEdge","PageIconButton","PageButton","RowContextMenu","RowContextMenuItem","PortalBanner","handleLogoClick","launch","themeColor","renderLogo","company","Layout","navStrip","contentLeft","navstrip","LayoutHeader","LayoutNavStrip","handleClickSettings","handleAppClick","handleClickHome","renderAppContent","editPage","LayoutNavIcon","getWorkspace","ProfileIcon","popupOpen","ProfileMenu","ActionBar","WhenEmpty","ForEach","NumberedList","renderRow","render_row","forCollectionRow","rowContent","NumberedListItem","ProductBreadcrumbs","getData","renderHeader","renderBody","categoriesElem","actionBar","child_categories","getCategoryValue","renderChooseWrapper","renderSiblingCategories","categ_id","getCategoryDescrip","childCategories","categ","withBullet","descrip","sibling_categories","matches","value1","value2","categ1_label","categ2_label","categ3_label","categ4_label","categ5_label","categ1","categ2","categ3","categ4","categ5","products","product","shaded","available_qty","cartQty","cellPadding","cellSpacing","borderCollapse","borderSpacing","CategoryLink","labelStyle","bullet","ProductQtyCell","FutureStock","PageSource","AvailableQtyCell","Container","hoverPopupHandler","renderHoverMenu","data-hover-popup","handleShowHover","hoverPopup","dataHoverPopupId","renderHoverPopup","MenuLaunch","InNavbar","MultiOptionFilter","allowMultiple","SingleOptionFilter","Presenter","handleToggle","selectedValues","getOptionIndex","clearElem","toggleElem","renderOptions","fieldValue","containsOption","isMultiSelect","optionValue","FilterPanel","PageTitle","handleTitleClick","getLinkHref","renderForDialog","entityLabelElem","titleStyle","recordLink","titleClass","subTitle","stringifyScreenLink","DialogButtons","confirming","handleCancelClick","handleReturnClick","handleProceedClick","renderConfirming","cancelButton","hideCancel","InSearch","Stacked","InTotalBar","Value","SearchableList","testValue","keywordField","matchExpr","matchFieldName","isMatch","rowLabel","SearchableListItem","RowSelector","onSelect","checkboxElem","StudioMenuItem","closeAll","menuClick","StudioPropEditor","InlineEditor","editing","setFocus","handleCommitClick","commitValue","ActivityTimeline","Item","channels","channel","reason","logged_at","reason_label","user_name","Image","setAsset","renderDesignMode","StudioNode","data-studio-node","node_id","InToolbox","TaskList","onTaskClick","duration","due_date","KeywordFilter","partial","filtered","filterProducts","extraMap","addMatches","addResultsFromMap","autoKeyword","addOnMatch","addOnMap","addOnExtraMap","newMap","addOnResults","hitCount","containsAllKeys","includes","found","keyBold","addToMap","KeywordLexer","scanString","getKeywords","SearchBox","filterValue","activeIndex","keywordSet","inputRef","getResults","handleItemClick","getResultText","querySelector","scrollIntoView","popupPortal","popupList","popupStyle","maxHeight","clearIcon","elemRect","matchKeywords","isPartial","searchEngine","SearchBoxItem","data-index","DatePicker","InlineFieldEditor","InlineIconEditor","StudioToolbox","handleSearchChange","StudioToolboxFolder","StudioToolboxItem","renderTool","startToolDrag","childContent","isFolder","ToolboxFolderContent","handleClickLoad","getFolderContent","Search","SectionEditor","toolDrop","EditorMenu","elements","StudioEditorDialog","SpotHolder","renderDesign","StudioInlinePage","sections","DesignerContentSlot","DropList","DropValue","Link","StatementNode","tree","statementDef","propNodes","isPropNode","isExpanded","isEdit","setEdit","setExpanded","afterId","getIndex","StatementTree","_expandedId","_editId","createNode","propNode","sectionNode","keywordColor","keywordStyle","SourceCodeState","_expanded","_isEdit","SourceCode","codeState","handleKeyUp","loadStatements","loadSource","onMouseMove","onKeyUp","list","hasCursorAsChild","Element","handleEndFocus","clearExpanded","handleElementKeyDown","handleClickCursorBelow","handleClickCursorAbove","prevSibling","getPrevSibling","handleClickProps","implicitProp","propDef","propElems","asInput","statementElem","propLabel","implicitName","onFocus","statementType","toolbar","editBar","openingParenthesis","closingParenthesis","marker","fillColor","hasCursorAfter","containsExpanded","ElementProp","addCursor","nameElem","closing","displayFlex","inputBackground","fontStyle","inputValue","PropValue","Cursor","handleHelperClick","newNode","newElem","buttonHelperClick","lastChild","nextSibling","getNextSibling","helpers","PutBlock","Body","TableRow","ElementContextMenu","nodeId","element","draft","DesignerProp","TableState","tableChildren","thead","colName","columnSort","buildRowMap","footerIndex","break_field","buildRows","repTotal","buildRow","curCol","colElems","colindex","colspan","Table","tableState","tableProps","init","mapItems","bodySet","BodySet","dr","rowScope","flush","groupContent","renderGroupContent","tbodies","createScope","tableRows","outputRows","thElems","class","sortField","sort_field","setColumnSort","addComponents","Node","apiPath","renderNavigator","screenProps","App","enabled","PageShell","handleContextMenu","hoverElem","visibilityState","startPolling","stopPolling","appContent","DesignerOverlay","dynamicStyleSheet","activeElemId","isDesignerOpen","setActiveElement","CSSStyleSheet","adoptedStyleSheets","renderToolbar","data-app-container","sheet","cssRules","deleteRule","fullId","insertRule","reportWebVitals","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","StrictMode","getElementById"],"mappings":"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U,MAAMirE,YAAcl/E,KAAKiU,MAAMopE,cACpC/7E,EAAM04B,gBAAkB,mBACxB14B,EAAMuvB,MAAQ,OACdvvB,EAAMG,WAAa,KAMhB,wBAAQH,MAAOA,EAClBmR,QAASzS,KAAK6xB,YADX,SACyB7xB,KAAKiU,MAAMirE,iB,GAd1B5xD,IAAMsD,WC3e/Bnc,EAAY8mF,cAAc,KAAK,CAC3BnoB,OACA,aAAcM,GACd,cAAcD,GACd,aAAaiB,GACbl4B,QACAgN,YACAoE,OACAxV,UACA9jC,UACA,gBAAgBA,GAAOgoD,OACvB7I,eACAvC,eACA/T,UACA4gC,aACAruB,cACAC,cACA6F,eACA/8B,KAAKO,GACL0uB,QACAqM,WACAtW,SACAmU,gBACAS,cACA1F,UACAwE,YACAE,gBACAoD,cACA4X,eACAhX,UACA5D,QACAwN,aACAK,iBACAwG,gBACAyG,aACA7D,YACAc,YACAyB,cACAqF,YAAS,mBAAmBC,GAAgB,oBAAoBG,GAAiB,gBAAgBD,GAAa,mBAAmBD,GACjI,mBAAmBsE,GACnBqB,eACA,cAAcD,GACd2C,cACAC,aACAvb,QACA6b,uBACAC,mBACAiM,gBACAM,UACAK,kBACAM,iBACAP,gBACAjN,gBACAC,cACAC,QACAvc,UACAJ,UACAsqB,aACAC,aACAC,WACAO,sBACA2C,eACA91B,QACAmR,cACA0hB,gBACApd,WACAihB,YACAX,cACAC,oBACAC,aACAU,qBACAE,sBACAY,eACAC,aACAU,iBACAQ,YACA/tB,gBACAguB,WACAC,cACAC,SACAlzC,wBACAmzC,kBACAQ,eACAG,kBACAI,gBACAtD,cACA2D,oBACAQ,SACAM,aACAC,YACAgD,qBACArE,oBACAuE,iBACAG,qBACAD,uBACAU,iBACAI,sBACAxC,aACAqB,cACAoB,cACAlB,oBACAoB,oBACAE,uBACAC,YACAE,QACAuB,cACAqD,YACAC,QACAC,YACAK,kBAGJzsE,GAAWW,aAAe,CACtBnf,MAAM,SAACye,EAAMzY,GAAP,OAAiB,cAACu1C,GAAD,CAA0B98B,MAAOA,EAAOze,MAAOgG,EAAMhG,MAAOzO,M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","file":"static/js/main.6a49fcc1.chunk.js","sourcesContent":["import { ActionRef } from \"./ActionRef\";\r\n\r\nexport class RecordBrowse {\r\n label:string;\r\n rows:any[];\r\n currentIndex:number;\r\n onRecordChanged:ActionRef;\r\n renderRecord:(row:any) => any;\r\n triggerAction:ActionRef;\r\n\r\n move(step:number){\r\n let newIndex = this.currentIndex + step;\r\n if (newIndex < 0){\r\n newIndex = 0;\r\n }\r\n if (newIndex >= this.rows.length){\r\n newIndex = this.rows.length - 1;\r\n }\r\n if (newIndex != this.currentIndex){\r\n this.currentIndex = newIndex;\r\n }\r\n\r\n }\r\n\r\n get current():any {\r\n return this.rows[this.currentIndex];\r\n }\r\n}","export interface IBroadcastListener {\r\n component: React.Component;\r\n action: string;\r\n handler?:(action?:string,data?:any)=>any;\r\n}\r\n\r\nexport class Broadcast {\r\n private listeners: IBroadcastListener[] = [];\r\n\r\n dispatch(action: string,data?:any) {\r\n for (var i = 0; i < this.listeners.length; i++) {\r\n let listener = this.listeners[i];\r\n if (listener.action == \"*\" || listener.action == action) {\r\n if (listener.handler){\r\n listener.handler(action,data);\r\n }\r\n else {\r\n listener.component.forceUpdate();\r\n }\r\n }\r\n }\r\n }\r\n\r\n connect(listener: React.Component, action?: string,handler?:(action:string,data:any)=> any) {\r\n let i = this.findListenerIndex(listener);\r\n if (i == -1) {\r\n if (!action) {\r\n action = \"*\";\r\n }\r\n this.listeners.push({ component: listener, action,handler });\r\n }\r\n }\r\n\r\n disconnect(listener: React.Component) {\r\n let i = this.findListenerIndex(listener);\r\n if (i != -1) {\r\n this.listeners.splice(i, 1);\r\n }\r\n }\r\n\r\n refresh(){\r\n this.dispatch('refresh');\r\n }\r\n private findListenerIndex(component: React.Component): number {\r\n for (let i = 0; i < this.listeners.length; i++) {\r\n if (this.listeners[i].component == component) return i;\r\n }\r\n return -1;\r\n }\r\n}\r\n","import { ComponentStyles, FieldFormatter } from \"core\";\r\nimport { IStyleIcon } from \"core/types\";\r\n\r\nexport class StyledText {\r\n public static formatOld(value:any){\r\n if (typeof(value) === \"string\"){\r\n let elems = [];\r\n let segments = value.split('__');\r\n if (segments.length == 1) return value;\r\n let bold = false;\r\n for(let i = 0; i < segments.length;i++){\r\n let segment = segments[i];\r\n if (segment){\r\n if (bold){\r\n elems.push({segment})\r\n }\r\n else {\r\n elems.push(segment);\r\n }\r\n }\r\n bold = !bold;\r\n }\r\n return elems;\r\n }\r\n else if (value){\r\n return (value.toString());\r\n }\r\n }\r\n\r\n public static format(value:any){\r\n if (typeof(value) === \"string\"){\r\n let elems = [];\r\n let segments = value.split('~|');\r\n if (segments.length == 1) return value;\r\n if (segments[0]){\r\n elems.push(segments[0]);\r\n }\r\n \r\n for(let i = 1; i < segments.length;i++){\r\n let segment = segments[i];\r\n if (segment){\r\n let end = segment.indexOf('|~');\r\n let formatted = segment.substring(0,end);\r\n let plain = segment.substring(end + 2);\r\n if (formatted){\r\n let colon = formatted.lastIndexOf(':');\r\n if (colon != -1){\r\n let styles = StyledText.computeStyles(formatted.substring(colon + 1));\r\n let value = formatted.substring(0,colon);\r\n if (styles.format){\r\n value = FieldFormatter.format(value,null,styles.format);\r\n }\r\n elems.push({value})\r\n }\r\n else {\r\n elems.push(formatted);\r\n }\r\n }\r\n if (plain){\r\n elems.push(plain);\r\n }\r\n }\r\n }\r\n return elems;\r\n }\r\n else if (value){\r\n return (value.toString());\r\n }\r\n }\r\n\r\n public static computeStyles(defined:string,override?:string):ComponentStyles{\r\n \r\n let styles:string[] = [];\r\n if (defined){\r\n styles.push(defined);\r\n }\r\n if (override){\r\n styles.push(override);\r\n }\r\n if (!styles.length) return {style:null,className:null};\r\n \r\n let classNames:string[] = [];\r\n let style:React.CSSProperties = {};\r\n let format:string;\r\n let iconName:string;\r\n let iconClasses:string[];\r\n for(let s = 0; s < styles.length; s++){\r\n let segments = styles[s].split(';');\r\n for(let i = 0; i < segments.length;i++){\r\n let segment = segments[i];\r\n let p = segment.indexOf(\"=\");\r\n if (p == -1){\r\n if (segment.startsWith(\"format-\")){\r\n format = segment.substring(7);\r\n continue;\r\n }\r\n else if (segment.startsWith(\"icon-\")){\r\n if(segment.startsWith(\"icon-name-\")){\r\n iconName = segment.substring(10);\r\n }\r\n else {\r\n iconClasses = iconClasses || [];\r\n iconClasses.push(segment);\r\n }\r\n continue;\r\n }\r\n classNames.push(segment);\r\n }\r\n else {\r\n style[segment.substring(0,p)] = segment.substring(p + 1);\r\n }\r\n }\r\n }\r\n let icon:IStyleIcon;\r\n if (iconName || iconClasses){\r\n icon = {name:iconName,className:iconClasses ? iconClasses.join(' ') : null};\r\n }\r\n return {style,className:classNames.join(' '),format,icon};\r\n }\r\n}","import { StringFormatter } from \"./FieldFormatter\";\r\n\r\nexport interface IParsedTime {\r\n raw?: string;\r\n invalid?: boolean;\r\n hour?: number;\r\n minute?: number;\r\n second?: number;\r\n}\r\n\r\n\r\nexport class TimeFormatter {\r\n public static format(value):string {\r\n if (value == null) {\r\n return \"\";\r\n }\r\n\r\n var parsed = this.parse(value);\r\n if (parsed == null || parsed.invalid) return \"\";\r\n if (parsed.hour == 12){\r\n return parsed.hour + \":\" + StringFormatter.padZero(parsed.minute.toString(), 2) + \" PM\";\r\n }\r\n else if (parsed.hour > 12){\r\n return (parsed.hour - 12) + \":\" + StringFormatter.padZero(parsed.minute.toString(), 2) + \" PM\";\r\n }\r\n else if (parsed.hour == 0){\r\n return \"12:\" + StringFormatter.padZero(parsed.minute.toString(), 2) + \" AM\";\r\n }\r\n else {\r\n return parsed.hour + \":\" + StringFormatter.padZero(parsed.minute.toString(), 2) + \" AM\";\r\n }\r\n }\r\n\r\n public static parse(value: string): IParsedTime {\r\n if (value == null || value == '') return null;\r\n var parsed: IParsedTime = {\r\n raw: value,\r\n invalid: undefined,\r\n hour:0,\r\n minute:0,\r\n second:0\r\n }\r\n var segments = ['hour', 'minute', 'second']\r\n if (value != null && typeof value == \"string\") {\r\n value = value.trim();\r\n var parts = value.split(/[-\\s:]/)\r\n for (var i = 0; i < segments.length; i++) {\r\n var segment = segments[i];\r\n var part = parts[i];\r\n var num = parseInt(part, 10);\r\n if (isNaN(num)) {\r\n parsed.invalid = true\r\n parsed[segment] = part\r\n } else {\r\n parsed[segment] = num\r\n }\r\n }\r\n }\r\n \r\n return parsed;\r\n }\r\n\r\n static parseFromInput(value: string): string {\r\n if (!value) return null;\r\n value = value.trim();\r\n \r\n let segments = value.split(/\\W+/);\r\n\r\n let hour: number;\r\n let minute: number;\r\n let second: number;\r\n let isPM:boolean;\r\n\r\n if (segments.length == 0 ) return null;\r\n let lastIndex = segments.length - 1;\r\n let lastSegment = segments[lastIndex];\r\n if (lastSegment.toUpperCase){\r\n let up = lastSegment.toUpperCase();\r\n if (up == \"P\" || up == \"PM\"){\r\n isPM = true;\r\n segments.pop();\r\n }\r\n else if (up == \"A\" || up == \"AM\"){\r\n segments.pop();\r\n }\r\n else if (up.endsWith(\"PM\")){\r\n isPM = true;\r\n segments[lastIndex] = lastSegment.substring(0,lastSegment.length - 2);\r\n }\r\n else if (up.endsWith(\"P\")){\r\n isPM = true;\r\n segments[lastIndex] = lastSegment.substring(0,lastSegment.length - 1);\r\n }\r\n else if (up.endsWith(\"AM\")){\r\n segments[lastIndex] = lastSegment.substring(0,lastSegment.length - 2);\r\n }\r\n else if (up.endsWith(\"A\")){\r\n segments[lastIndex] = lastSegment.substring(0,lastSegment.length - 1);\r\n }\r\n }\r\n\r\n\r\n if (segments.length == 1) {\r\n // assume entered only hour\r\n hour = parseInt(segments[0], 10);\r\n if (isFinite(hour) && hour > 0 && hour <= 24) {\r\n if (hour < 12 && isPM){\r\n hour += 12;\r\n }\r\n return this.storedTimeFormat(hour,0,0);\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else if (segments.length == 2) {\r\n // assume entered hour and minute\r\n hour = parseInt(segments[0], 10);\r\n minute = parseInt(segments[1], 10);\r\n if (!isFinite(hour) || hour < 0 || hour > 23) {\r\n return null;\r\n }\r\n\r\n if (!isFinite(minute) || minute < 0 || minute > 59) {\r\n return null;\r\n }\r\n if (hour < 12 && isPM){\r\n hour += 12;\r\n }\r\n return this.storedTimeFormat(hour,minute,0);\r\n }\r\n else {\r\n hour = parseInt(segments[0], 10);\r\n minute = parseInt(segments[1], 10);\r\n second = parseInt(segments[2], 10);\r\n if (!isFinite(hour) || !isFinite(minute) || !isFinite(second)) {\r\n return null;\r\n }\r\n \r\n if (hour < 0 || hour > 23) {\r\n return null;\r\n }\r\n if (minute < 0 || minute > 59) {\r\n return null;\r\n }\r\n if (second < 0 || second > 59) {\r\n return null;\r\n }\r\n\r\n if (hour < 12 && isPM){\r\n hour += 12;\r\n }\r\n return this.storedTimeFormat(hour, minute, second);\r\n }\r\n }\r\n\r\n public static storedTimeFormat(hour: number, minute: number, second: number): string {\r\n return hour + ':' + StringFormatter.padZero(minute.toString(), 2) + ':' + StringFormatter.padZero(second.toString(), 2);\r\n }\r\n}","import { TimeFormatter } from \"./TimeFormatter\";\r\nimport { FieldType } from \"./types\";\r\n\r\nexport class FieldFormatter {\r\n\r\n static namedFormats: { [name: string]: string } = {\r\n \"money\":\"$#,##0.00\",\r\n \"money-short\":\"$#,##0\",\r\n \"number-short\":\"#,##0\",\r\n \"date\":\"mm-dd-yyyy\",\r\n \"number\":\"#,##0\",\r\n \"accounting\":\"$#,##0.00;0;($#,##0.00)\",\r\n \"2-decimals\":\"#,##0.00\",\r\n \"3-decimals\":\"#,##0.000\",\r\n \"4-decimals\":\"#,##0.0000\",\r\n \"time\":\"h:nn a\"\r\n };\r\n\r\n static format(value:any,type:FieldType,format?:string):string {\r\n if (format){\r\n let named = FieldFormatter.namedFormats[format];\r\n if (named){\r\n format = named;\r\n }\r\n }\r\n if(type === 'date') {\r\n return this.formatDate(value,format);\r\n } else if(type == 'datetime') {\r\n return this.formatDateTime(value,format);\r\n } else if(type == 'integer') {\r\n return this.formatInteger(value,format);\r\n } else if(type == 'money') {\r\n return this.formatMoney(value,format);\r\n } else if(type == 'decimal') {\r\n return this.formatNumber(value,format);\r\n }\r\n else if (type == 'logical'){\r\n if (value && value !== \"0\"){\r\n return \"Yes\";\r\n }\r\n else {\r\n return \"No\";\r\n }\r\n }\r\n else if (type == 'character' || type =='longchar'){\r\n return toDisplay(value);\r\n }\r\n else if (type == \"time\"){\r\n return TimeFormatter.format(value);\r\n }\r\n else if (!type && format){\r\n let isNumeric = new RegExp('[$#0]').test(format);\r\n if (isNumeric){\r\n return NumberFormatter.format(value,format);\r\n }\r\n return DateFormatter.format(value,format);\r\n }\r\n if (value === null || value === undefined) return \"\";\r\n if (typeof value === \"string\") return value;\r\n return value.toString();\r\n }\r\n \r\n static formatDate(value,format:string):string {\r\n return DateFormatter.format(value,format); \r\n }\r\n\r\n static formatDateTime(value,format:string):string{\r\n return DateFormatter.formatDateTime(value);\r\n }\r\n \r\n static formatInteger(value,format:string):string {\r\n var parsed = this.parseInteger(value)\r\n return NumberFormatter.formatInt(parsed, format); \r\n }\r\n\r\n static formatMoney(value,format:string):string {\r\n var parsed = this.parseMoney(value)\r\n return NumberFormatter.formatMoney(parsed, format); \r\n }\r\n\r\n static formatNumber(value,format:string):string {\r\n var parsed = this.parseNumber(value)\r\n return NumberFormatter.formatNumber(parsed, format); \r\n }\r\n\r\n static parseInput(value:any,type:FieldType):any {\r\n if(type === 'date') {\r\n return this.parseDate(value);\r\n } else if(type == 'datetime') {\r\n return this.parseDateTime(value);\r\n } else if(type == 'integer') {\r\n return this.parseInteger(value);\r\n } else if(type == 'money') {\r\n return this.parseMoney(value);\r\n } else if(type == 'decimal') {\r\n return this.parseNumber(value);\r\n }\r\n else if (type == \"uid\"){\r\n return this.parseUID(value);\r\n }\r\n else if (type == \"character\"){\r\n if (value && value.trim) return value.trim();\r\n }\r\n else if (type == \"time\"){\r\n return TimeFormatter.parseFromInput(value);\r\n }\r\n return value;\r\n } \r\n\r\n static parseDate(value) {\r\n return DateFormatter.parseDateFromInput(value); \r\n }\r\n\r\n static parseDateTime(value) {\r\n return DateFormatter.parseDateFromInput(value); \r\n // return DateFormatter.parseDateTimeFromInput(value);\r\n }\r\n\r\n static parseInteger(value) {\r\n var n = StringFormatter.parseNumber(value);\r\n if (isNaN(n)){\r\n n = 0;\r\n }\r\n return n; \r\n }\r\n\r\n static parseMoney(value) {\r\n var n = StringFormatter.parseNumber(value);\r\n if (isNaN(n)){\r\n n = 0;\r\n }\r\n return n; \r\n }\r\n\r\n static parseNumber(value) {\r\n var n = StringFormatter.parseNumber(value);\r\n if (isNaN(n)){\r\n n = 0;\r\n }\r\n return n; \r\n }\r\n\r\n static parseUID(value) {\r\n if (typeof value !== \"string\"){\r\n return null;\r\n }\r\n if (value.length != 36){\r\n return null;\r\n }\r\n if (value[8] != \"-\" || value[13] != \"-\" || value[18] !=\"-\" || value[23] != \"-\") return null;\r\n return value;\r\n }\r\n\r\n static applyNamedFormat(value:any,format:string):string {\r\n if (!format) return value;\r\n \r\n if (typeof(value) === \"number\"){\r\n return this.formatNumber(value,format);\r\n }\r\n return this.formatDate(value,format);\r\n }\r\n \r\n}\r\n\r\nexport class StringFormatter{\r\n static padZero(value:string, len:number):string {\r\n var count = len - value.length;\r\n if (count <= 0) {\r\n return value;\r\n }\r\n else {\r\n for (var i = 1; i <= count; i++) {\r\n value = '0' + value;\r\n }\r\n return value;\r\n }\r\n }\r\n static parseNumber(v:any):any {\r\n if (!v){\r\n return 0;\r\n }\r\n if (typeof v == \"number\"){\r\n return v;\r\n }\r\n var s = '';\r\n var c = '';\r\n var isNegative = false;\r\n for (var i = 0; i < v.length; i++) {\r\n c = v.charAt(i);\r\n if (((c >= '0') && (c <= '9')) || (c == '.') || (c == '-')) {\r\n s += c;\r\n }\r\n else if (c == '(') {\r\n isNegative = true;\r\n }\r\n }\r\n if (isNegative) {\r\n s = '-' + s;\r\n }\r\n return parseFloat(s);\r\n }\r\n\r\n static trim(value:string):string {\r\n return value.replace(/^\\s+|\\s+$/g, '') ;\r\n }\r\n\r\n static trimLeft(value:string):string {\r\n if (value === undefined || value === null) return \"\";\r\n for(var i = 0;i < value.length;i++){\r\n if (value[i] !== ' '){\r\n return value.substr(i);\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n static endsWith(value:string,test:string):boolean{\r\n if (value.length >= test.length && value.substr(value.length - test.length) == test){\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\n\r\nexport interface IParsedDate {\r\n raw?: string;\r\n invalid?: boolean;\r\n dateOnly?: boolean\r\n year?: number;\r\n month?: number;\r\n day?: number;\r\n hour?: number;\r\n minute?: number;\r\n second?: number;\r\n dayOfWeek?: number;\r\n}\r\n\r\nexport class DateFormatter {\r\n\r\n static defaultDateFormat = \"mm-dd-yyyy\"; // \"yyyy-mm-dd\"; // \"mm/dd/yyyy\";\r\n static datePlaceholder = \"MM-DD-YYYY\";\r\n static defaultDateTimeFormat = \"mmm d, yyyy h:nn a\";\r\n static monthPosition: number = 0;\r\n static dayPosition: number = 1;\r\n static yearPosition: number = 2;\r\n static tokenChars = \"dmyhnaw\";\r\n \r\n\r\n static cache: any = {};\r\n\r\n static setFormat(format: string) {\r\n DateFormatter.defaultDateFormat = format;\r\n var tokenStream = DateFormatter.getTokenStream(format);\r\n var position = 0;\r\n for (var i = 0; i < tokenStream.tokens.length; i++) {\r\n var token = tokenStream.tokens[i];\r\n if (token[0] == \"d\") {\r\n DateFormatter.dayPosition = position;\r\n position++;\r\n }\r\n else if (token[0] == \"m\") {\r\n DateFormatter.monthPosition = position;\r\n position++;\r\n }\r\n else if (token[0] == \"y\") {\r\n DateFormatter.yearPosition = position;\r\n position++;\r\n }\r\n }\r\n }\r\n\r\n static getTokenStream(format: string) {\r\n var t = DateFormatter.cache[format];\r\n if (t) return t;\r\n t = new FormatTokenStream(format, DateFormatter.tokenChars);\r\n DateFormatter.cache[format] = t;\r\n return t;\r\n }\r\n\r\n static formatDateTime(value: string): string {\r\n return this.format(value, this.defaultDateTimeFormat);\r\n }\r\n\r\n public static format(value: any, format?: string): string {\r\n if (value == null) {\r\n return \"\";\r\n }\r\n\r\n var parsed = this.parse(value);\r\n if (parsed == null || parsed.invalid) return \"\";\r\n if (format) {\r\n var namedFormat = FieldFormatter.namedFormats[format];\r\n if (namedFormat) {\r\n format = namedFormat;\r\n }\r\n }\r\n\r\n return this.applyFormat(parsed, format || this.defaultDateFormat);\r\n }\r\n\r\n private static applyFormat(date: IParsedDate, format: string): string {\r\n var tokenStream = DateFormatter.getTokenStream(format);\r\n var s = \"\";\r\n var d = date.day;\r\n var m = date.month;\r\n var y = date.year;\r\n var h = date.hour;\r\n var w = date.dayOfWeek;\r\n var a = \"AM\";\r\n if (h == 12) {\r\n a = \"PM\";\r\n }\r\n else if (h > 12){\r\n a = \"PM\";\r\n h = h - 12;\r\n }\r\n else if (h == 0) {\r\n h = 12;\r\n }\r\n\r\n var n = date.minute;\r\n\r\n for (var i = 0; i < tokenStream.tokens.length; i++) {\r\n switch (tokenStream.tokens[i]) {\r\n case \"d\": s += d;\r\n break;\r\n case \"dd\": s += (d >= 10) ? d.toString() : \"0\" + d;\r\n break;\r\n case \"m\": s += m;\r\n break;\r\n case \"mm\": s += (m >= 10) ? m.toString() : \"0\" + m;\r\n break;\r\n case \"mmm\": s += DateFormatter.getMonthName(m - 1).substr(0, 3);\r\n break;\r\n case \"mmmm\": s += DateFormatter.getMonthName(m - 1);\r\n break;\r\n case \"yyyy\": s += y;\r\n break;\r\n case \"yy\": s += (y % 100);\r\n break;\r\n case \"h\": s += h;\r\n break;\r\n case \"hh\": s += (h >= 10) ? h.toString() : \"0\" + h;\r\n break;\r\n case \"n\":\r\n case \"nn\": s += (n >= 10) ? n.toString() : \"0\" + n;\r\n break;\r\n case \"w\":\r\n s += DateFormatter.getDayName(w).substr(0, 3);\r\n break;\r\n case \"ww\":\r\n s += DateFormatter.getDayName(w);\r\n break;\r\n case \"a\":\r\n s += a;\r\n break;\r\n default: s += tokenStream.tokens[i];\r\n break;\r\n }\r\n }\r\n return s;\r\n }\r\n\r\n static parseDateTimeFromInput(value: string): string {\r\n if (!value) { return null };\r\n value = value.trim();\r\n var segments = value.split(/\\W+/);\r\n\r\n if (segments.length < 3) {\r\n return null;\r\n }\r\n var month = parseInt(segments[DateFormatter.monthPosition], 10);\r\n if (!isFinite(month) || month < 1 || month > 12) {\r\n return null;\r\n }\r\n var day = parseInt(segments[DateFormatter.dayPosition], 10);\r\n if (!isFinite(day) || day < 1 || day > 31) {\r\n return null;\r\n }\r\n var year = parseInt(segments[DateFormatter.yearPosition], 10);\r\n if (!isFinite(year)) {\r\n return null;\r\n }\r\n if (year < 40) {\r\n year += 2000;\r\n }\r\n else if (year < 100) {\r\n year += 1900;\r\n }\r\n var hour: number = 0;\r\n var minutes: number = 0;\r\n var explicitAM: boolean = false;\r\n var explicitPM: boolean = false;\r\n\r\n if (segments.length > 3) {\r\n hour = parseInt(segments[3], 10);\r\n if (!isFinite(hour) || hour < 0 || hour > 23) {\r\n return null;\r\n }\r\n }\r\n if (segments.length > 4) {\r\n var minutesSegment = segments[4];\r\n var i = minutesSegment.indexOf('a');\r\n if (i != -1) {\r\n minutesSegment = minutesSegment.substr(0, i);\r\n explicitAM = true;\r\n }\r\n else {\r\n i = minutesSegment.indexOf('p');\r\n if (i != -1) {\r\n minutesSegment = minutesSegment.substr(0, i);\r\n explicitPM = true;\r\n }\r\n }\r\n minutes = parseInt(minutesSegment, 10);\r\n if (!isFinite(minutes) || minutes < 0 || minutes > 59) {\r\n return null;\r\n }\r\n }\r\n if (!explicitAM && !explicitPM && segments.length > 5) {\r\n // check am/pm\r\n if (segments[5][0].toLowerCase() == \"p\") {\r\n explicitPM = true;\r\n\r\n }\r\n else if (segments[5][0].toLowerCase() == \"a\") {\r\n explicitAM = true;\r\n }\r\n else {\r\n // unknown (not am or pm)\r\n return null;\r\n }\r\n }\r\n if (explicitPM) {\r\n if (hour > 12) {\r\n return null;\r\n }\r\n if (hour < 12) {\r\n hour += 12;\r\n }\r\n }\r\n else if (explicitAM) {\r\n if (hour > 12) {\r\n return null;\r\n }\r\n if (hour == 12) {\r\n hour = 0;\r\n }\r\n }\r\n return this.storedDateTimeFormat(year, month, day, hour, minutes, 9);\r\n }\r\n\r\n public static today(): string {\r\n var date = new Date();\r\n return this.storedDateFormat(date.getFullYear(), date.getMonth() + 1, date.getDate())\r\n }\r\n\r\n public static parse(value: string): IParsedDate {\r\n if (value == null || value == '') return null;\r\n var parsed: IParsedDate = {\r\n raw: value,\r\n invalid: undefined\r\n }\r\n var segments = ['year', 'month', 'day', 'hour', 'minute', 'second']\r\n if (value != null && typeof value == \"string\") {\r\n value = value.trim();\r\n var parts = value.split(/[-\\s:]/)\r\n if (parts.length == 3) {\r\n parsed.dateOnly = true\r\n }\r\n for (var i = 0; i < segments.length; i++) {\r\n var segment = segments[i];\r\n var part = parts[i];\r\n if (parsed.dateOnly && i >= 3) {\r\n parsed[segment] = 0;\r\n continue;\r\n }\r\n var num = parseInt(part, 10);\r\n if (isNaN(num)) {\r\n parsed.invalid = true\r\n parsed[segment] = part\r\n } else {\r\n parsed[segment] = num\r\n }\r\n }\r\n }\r\n \r\n var dt = new Date(Date.UTC(parsed.year, parsed.month - 1, parsed.day));\r\n parsed.dayOfWeek = dt.getDay();\r\n return parsed;\r\n }\r\n\r\n public static storedDateTimeFormat(year: number, month: number, day: number, hour: number, minutes: number, seconds: number) {\r\n return year + '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds;\r\n }\r\n\r\n public static storedDateFormat(year: number, month: number, day: number): string {\r\n return year + '-' + StringFormatter.padZero(month.toString(), 2) + '-' + StringFormatter.padZero(day.toString(), 2);\r\n }\r\n\r\n public static addDays(date: string, numDays: number) {\r\n var parsed = this.parse(date);\r\n var dt = Date.UTC(parsed.year, parsed.month - 1, parsed.day) + numDays * 1000 * 60 * 60 * 24;\r\n var d = new Date(dt);\r\n return this.storedDateFormat(d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate());\r\n }\r\n\r\n public static addMonths(date: string, numMonths: number) {\r\n var parsed = this.parse(date);\r\n var dt = Date.UTC(parsed.year, parsed.month - 1 + numMonths, parsed.day);\r\n var d = new Date(dt);\r\n return this.storedDateFormat(d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate());\r\n }\r\n\r\n static parseDateFromInput(value: string): string {\r\n if (!value) return null;\r\n value = value.trim();\r\n \r\n var segments = value.split(/\\W+/);\r\n\r\n var today = new Date();\r\n var day: number;\r\n var month: number;\r\n var year: number;\r\n\r\n if (segments.length == 1) {\r\n // assume entered only day of month\r\n day = parseInt(segments[0], 10);\r\n if (isFinite(day) && day > 0 && day <= 31) {\r\n return this.storedDateFormat(today.getFullYear(), today.getMonth() + 1, day);\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else if (segments.length == 2) {\r\n // assume entered month and day\r\n if (DateFormatter.monthPosition < DateFormatter.dayPosition) {\r\n month = parseInt(segments[0], 10);\r\n day = parseInt(segments[1], 10);\r\n }\r\n else {\r\n month = parseInt(segments[1], 10);\r\n day = parseInt(segments[0], 10);\r\n }\r\n if (!isFinite(month) || month < 1 || month > 12) {\r\n return null;\r\n }\r\n\r\n if (!isFinite(day) || day < 1 || day > 31) {\r\n return null;\r\n }\r\n return this.storedDateFormat(today.getFullYear(), month, day);\r\n }\r\n else {\r\n month = parseInt(segments[DateFormatter.monthPosition], 10);\r\n day = parseInt(segments[DateFormatter.dayPosition], 10);\r\n year = parseInt(segments[DateFormatter.yearPosition], 10);\r\n if (!isFinite(day) || !isFinite(month) || !isFinite(year)) {\r\n return null;\r\n }\r\n if (month > 100){\r\n // assume year mm dd;\r\n let y = year;\r\n year = month;\r\n month = day;\r\n day = y;\r\n }\r\n if (month < 1 || month > 12) {\r\n return null;\r\n }\r\n if (day <1 || day > 31) {\r\n return null;\r\n }\r\n\r\n if (year < 50) {\r\n year += 2000;\r\n }\r\n else if (year < 100) {\r\n year += 1900;\r\n }\r\n if (year < 1753){\r\n return null;\r\n }\r\n return this.storedDateFormat(year, month, day);\r\n }\r\n }\r\n\r\n\r\n static parseISODate(date: any): Date {\r\n if (!date) {\r\n return null;\r\n }\r\n if (date instanceof Date) {\r\n return date as Date;\r\n }\r\n var zoneSplit = date.split('Z');\r\n var dateTimeSplit = zoneSplit[0].split('T');\r\n\r\n var dateSegments = dateTimeSplit[0].split('-');\r\n var timeSegments: string[];\r\n if (dateTimeSplit.length >= 2) {\r\n timeSegments = dateTimeSplit[1].split(':');\r\n }\r\n else {\r\n timeSegments = ['00', '00', '00'];\r\n }\r\n if (timeSegments.length < 3) return null;\r\n var secondSegments = timeSegments[2].split('.');\r\n\r\n var minutesOffset = 0;\r\n if (zoneSplit.length > 1) {\r\n var timeZone = zoneSplit[1];\r\n if (timeZone.length) {\r\n minutesOffset = parseInt(timeZone.substr(1, 2), 10) * 60 + parseInt(timeZone.substr(3, 2), 10);\r\n if (timeZone[0] === \"+\") {\r\n minutesOffset = 0 - minutesOffset;\r\n\r\n }\r\n }\r\n }\r\n var milliSeconds = (secondSegments.length > 1) ? parseInt(secondSegments[1], 10) : 0;\r\n var timestamp = Date.UTC(parseInt(dateSegments[0], 10), parseInt(dateSegments[1], 10) - 1, parseInt(dateSegments[2], 10), parseInt(timeSegments[0], 10), parseInt(timeSegments[1], 10) + minutesOffset, parseInt(secondSegments[0], 10), milliSeconds);\r\n return new Date(timestamp);\r\n }\r\n\r\n static formatISOAsDuration(value: string): string {\r\n try {\r\n var dt = DateFormatter.parseISODate(value);\r\n return this.getDurationText(dt.getTime());\r\n }\r\n catch (e) {\r\n return value;\r\n }\r\n }\r\n\r\n\r\n static getDurationText(time: number): string {\r\n\r\n var now = new Date();\r\n\r\n var diffInSeconds = (now.getTime() - time) / 1000;\r\n if (diffInSeconds < 0){\r\n return DateFormatter.getFutureDurationText(time);\r\n }\r\n var diffInMinutes = Math.floor(diffInSeconds / 60);\r\n var diffInHours = Math.floor(diffInMinutes / 60);\r\n var diffInDays = Math.ceil((new Date(now.getFullYear(), now.getMonth(), now.getDate()).getTime() - time) / (24 * 60 * 60 * 1000));\r\n if (diffInSeconds < 15) {\r\n return \"a few seconds ago\";\r\n }\r\n if (diffInSeconds < 60) {\r\n return \"less than a minute ago\";\r\n }\r\n else if (diffInSeconds < 3600) {\r\n var diffInMinutes = Math.floor(diffInSeconds / 60);\r\n if (diffInMinutes > 1) {\r\n return diffInMinutes + \" minutes ago\";\r\n }\r\n else {\r\n return \"1 minute ago\";\r\n }\r\n }\r\n else if (diffInHours < 24) {\r\n if (diffInHours > 1) {\r\n return diffInHours + \" hours ago\";\r\n }\r\n else {\r\n return \"1 hour ago\";\r\n }\r\n }\r\n else if (diffInDays == 1) {\r\n return \"yesterday\"\r\n }\r\n else if (diffInDays <= 5) {\r\n return diffInDays + \" days ago\";\r\n }\r\n else {\r\n var dt = new Date(time);\r\n return DateFormatter.format(DateFormatter.storedDateFormat(dt.getFullYear(), dt.getMonth() + 1, dt.getDate()));\r\n }\r\n }\r\n\r\n static getFutureDurationText(time: number): string {\r\n\r\n var now = new Date();\r\n\r\n var diffInSeconds = (time - now.getTime()) / 1000;\r\n var diffInMinutes = Math.floor(diffInSeconds / 60);\r\n var diffInHours = Math.floor(diffInMinutes / 60);\r\n var diffInDays = Math.ceil((time - new Date(now.getFullYear(), now.getMonth(), now.getDate()).getTime()) / (24 * 60 * 60 * 1000));\r\n if (diffInSeconds < 15) {\r\n return \"a few seconds from now\";\r\n }\r\n if (diffInSeconds < 60) {\r\n return \"less than a minute from now\";\r\n }\r\n else if (diffInSeconds < 3600) {\r\n var diffInMinutes = Math.floor(diffInSeconds / 60);\r\n if (diffInMinutes > 1) {\r\n return diffInMinutes + \" minutes from now\";\r\n }\r\n else {\r\n return \"1 minute from now\";\r\n }\r\n }\r\n else if (diffInHours < 24) {\r\n if (diffInHours > 1) {\r\n return diffInHours + \" hours from now\";\r\n }\r\n else {\r\n return \"1 hour from now\";\r\n }\r\n }\r\n else if (diffInDays == 1) {\r\n return \"tomorrow\"\r\n }\r\n else if (diffInDays <= 14) {\r\n return diffInDays + \" days from now\";\r\n }\r\n else {\r\n var dt = new Date(time);\r\n return DateFormatter.format(DateFormatter.storedDateFormat(dt.getFullYear(), dt.getMonth() + 1, dt.getDate()));\r\n }\r\n }\r\n\r\n\r\n static getMonthName(month: number) {\r\n var monthName = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');\r\n return monthName[month];\r\n }\r\n\r\n static getDayName(dw: number) {\r\n var dayName = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');\r\n return dayName[dw];\r\n }\r\n\r\n}\r\n\r\nexport class FormatTokenStream {\r\n\r\n public source:string;\r\n public sLen:number;\r\n public index:number;\r\n public tokens:string[];\r\n public tokenChars:string;\r\n\r\n constructor(value:string,tokenChars:string){\r\n this.source = value;\r\n this.tokenChars = tokenChars;\r\n this.index = 0;\r\n this.tokens = [];\r\n this.sLen = value.length;\r\n var ch;\r\n while (this.index < this.sLen){\r\n ch = value[this.index];\r\n if (tokenChars.indexOf(ch) != -1){\r\n this.parseToken();\r\n }\r\n else {\r\n this.parseLiteral();\r\n }\r\n }\r\n }\r\n\r\n parseToken(){\r\n var ch = this.source[this.index++];\r\n var token = ch;\r\n while (this.index < this.sLen && this.source[this.index] == ch){\r\n token += ch;\r\n this.index++;\r\n }\r\n this.tokens.push(token);\r\n }\r\n\r\n parseLiteral(){\r\n var token = \"\";\r\n while (this.index < this.sLen){\r\n var ch = this.source[this.index];\r\n if (this.tokenChars.indexOf(ch) != -1){\r\n break;\r\n }\r\n token += ch;\r\n this.index++;\r\n }\r\n this.tokens.push(token);\r\n }\r\n}\r\n\r\nexport class NumberFormatter {\r\n public static cache:any = {};\t\t// cacheformatters\r\n public static defaultMoney = \"($#,##0.00)\";\r\n public static defaultNumber = \"#,##0\";\r\n public static defaultInteger = \"#,##0\";\r\n static namedFormats:{[name:string]:string} = {};\r\n\r\n static format(value:any,formatString:string):string{\r\n if (!formatString){\r\n if (value){\r\n return value.toString();\r\n }\r\n return \"\";\r\n }\r\n let namedFormat = this.namedFormats[formatString];\r\n if (namedFormat){\r\n formatString = namedFormat;\r\n }\r\n\r\n var nf:NumberFormat = NumberFormatter.cache[formatString];\r\n if (!nf){\r\n nf = new NumberFormat(formatString);\r\n NumberFormatter.cache[formatString] = nf;\r\n }\r\n return nf.toString(value);\r\n }\r\n\r\n static formatMoney(value:any,formatString?:string){\r\n return NumberFormatter.format(value,formatString || NumberFormatter.defaultMoney);\r\n }\r\n\r\n static formatNumber(value:any,formatString?:string){\r\n return NumberFormatter.format(value,formatString || NumberFormatter.defaultNumber);\r\n }\r\n\r\n static formatInt(value:any,formatString?:string){\r\n return NumberFormatter.format(value, formatString || NumberFormatter.defaultInteger);\r\n }\r\n}\r\n\r\n\r\n\r\nexport class NumberFormat {\r\n public tokens:string[];\r\n public decimals:number;\r\n public decimalsOptional:boolean;\r\n public comma:boolean;\r\n public leadingZero:boolean;\r\n public hideZero:boolean;\r\n public zeroLiteral:string;\r\n public format:string;\r\n public isPercent:boolean;\r\n\r\n constructor(format:string){\r\n format = format || \"\";\r\n var segments = format.split(\";\");\r\n if (segments.length > 1){\r\n if (segments[1]){\r\n this.zeroLiteral = segments[1];\r\n }\r\n else {\r\n this.hideZero = true;\r\n }\r\n }\r\n this.format = format;\r\n var tokenStream = new FormatTokenStream(segments[0],\"+(#,.0)%\");\r\n var tokens = tokenStream.tokens;\r\n var token;\r\n var prev;\r\n var newTokens = [];\r\n this.decimals = 0;\r\n var numberToken:boolean;\r\n var decimalPoint:boolean;\r\n\r\n for(var i = 0; i < tokens.length;i++){\r\n token = tokens[i];\r\n switch(token[0]){\r\n case \",\":\r\n this.comma = true;\r\n break;\r\n case \".\":\r\n decimalPoint = true;\r\n if (prev == \"0\"){\r\n this.leadingZero = true;\r\n }\r\n if (!numberToken){\r\n numberToken = true;\r\n newTokens.push(\"#\");\r\n }\r\n break;\r\n case \"#\":\r\n if (!numberToken){\r\n numberToken = true;\r\n newTokens.push(\"#\");\r\n }\r\n if (decimalPoint){\r\n this.decimals = token.length;\r\n this.decimalsOptional = true;\r\n }\r\n break;\r\n case \"0\":\r\n if (!numberToken){\r\n numberToken = true;\r\n newTokens.push(\"#\");\r\n }\r\n if (decimalPoint){\r\n this.decimals = token.length;\r\n }\r\n break;\r\n case \"%\":\r\n this.isPercent = true;\r\n newTokens.push(token);\r\n break;\r\n default:\r\n newTokens.push(token);\r\n break;\r\n }\r\n prev = token;\r\n }\r\n this.tokens = newTokens;\r\n }\r\n\r\n toString(value:any):string{\r\n value = StringFormatter.parseNumber(value);\r\n if (isNaN(value)){\r\n value = 0;\r\n }\r\n if (value == 0){\r\n if (this.hideZero){\r\n return \"\";\r\n }\r\n if (this.zeroLiteral) {\r\n return this.zeroLiteral;\r\n }\r\n }\r\n /*\r\n if (this.isPercent){\r\n value = value * 100;\r\n }\r\n */\r\n var tokens = this.tokens;\r\n var s = \"\";\r\n var negativeHandled = false;\r\n for(var i = 0; i < tokens.length;i++){\r\n var token = tokens[i];\r\n switch(token){\r\n case \"#\":\r\n s += this.getFormattedNumber(value);\r\n break;\r\n case \"(\":\r\n case \")\":\r\n if (value < 0){\r\n s += token;\r\n }\r\n negativeHandled = true;\r\n break;\r\n case \"+\":\r\n if (value > 0){\r\n s += \"+\";\r\n }\r\n else if (value < 0){\r\n s += \"-\";\r\n }\r\n negativeHandled = true;\r\n break;\r\n default:\r\n s += token;\r\n break;\r\n }\r\n }\r\n if (value < 0 && !negativeHandled){\r\n return \"-\" + s;\r\n }\r\n return s;\r\n }\r\n\r\n getFormattedNumber(value:any):string {\r\n \r\n \r\n \r\n if (value < 0){\r\n value = Math.abs(value);\r\n }\r\n \r\n var s = value.toFixed(this.decimals).split(\".\");\r\n var result = this.getWholePortion(s[0]);\r\n if (s.length > 1){\r\n result += this.getDecimalPortion(s[1]);\r\n }\r\n return result;\r\n }\r\n\r\n getWholePortion(fixedString:string):string {\r\n\r\n if (fixedString == \"0\"){\r\n if (this.leadingZero){\r\n return \"0\";\r\n }\r\n return \"\";\r\n }\t \r\n if (this.comma){\t\r\n var p = 0;\r\n var r = \"\";\r\n \r\n for (var i = fixedString.length - 1 ; i >= 0 ; i--){\r\n if (p == 3){\r\n r = ','+ r;\r\n p = 0;\r\n }\r\n r = fixedString.charAt(i) + r;\r\n p++;\r\n }\r\n return r;\r\n }\r\n \r\n return fixedString;\r\n }\r\n\r\n getDecimalPortion(fixedString:string):string {\r\n if (this.decimalsOptional){\r\n // trim trailing zeros\r\n var i = fixedString.length - 1;\r\n while (i >=0 && fixedString[i] == \"0\"){\r\n i--;\r\n }\r\n if (i >=0){\r\n return \".\" + fixedString.substr(0,i+1);\r\n }\r\n return \"\";\r\n }\r\n return \".\" + fixedString;\r\n }\r\n}\r\n\r\n\r\nfunction toDisplay(value: any) {\r\n if (value && typeof (value) !== \"string\") {\r\n return (value as any).toString();\r\n }\r\n return value;\r\n}","import { RecordMeta } from \"./RecordMeta\";\r\n\r\nexport interface FieldError{\r\n type:FieldErrorType;\r\n message:string;\r\n}\r\n\r\nexport type IErrorMessages = string[];\r\n\r\n \r\n\r\nexport interface IFieldErrorCollection {\r\n [name:string]:FieldError\r\n}\r\n\r\nexport type FieldErrorType = 'VALIDATION' | 'NOTFOUND' | 'ERROR' | 'FATAL' | 'INFORMATION' | 'WARNING' | 'NO-DIALOG';\r\n\r\nexport class RecordErrorSet {\r\n public messages:IErrorMessages;\r\n public fields:IFieldErrorCollection;\r\n public title:string;\r\n public code:string = \"VALIDATION_ERROR\";\r\n public handled:boolean = true;\r\n public hasErrors:boolean;\r\n\r\n constructor(title:string){\r\n this.title = title;\r\n this.messages = [];\r\n this.fields = {};\r\n }\r\n\r\n\r\n static get(meta:RecordMeta):RecordErrorSet {\r\n if (meta) return meta.error;\r\n }\r\n\r\n static getFieldError(meta:RecordMeta,field:string):FieldError {\r\n let error = this.get(meta);\r\n if (!error || !error.fields) return null;\r\n return error.fields[field];\r\n }\r\n\r\n message(message:string):RecordErrorSet {\r\n this.messages.push(message);\r\n this.hasErrors = true;\r\n return this;\r\n }\r\n\r\n clear(field:string){\r\n this.fields[field] = null;\r\n }\r\n\r\n field(name:string,message:string,type:FieldErrorType):RecordErrorSet {\r\n if (!message){\r\n this.fields[name] = null;\r\n return;\r\n }\r\n this.fields[name] = {\r\n message,\r\n type\r\n };\r\n return this;\r\n }\r\n\r\n}\r\n","\r\nimport { RecordErrorSet } from \"./RecordErrorSet\";\r\nimport { IRecordSchema } from \"./Schema\";\r\n\r\n\r\nexport interface IFieldOption {\r\n value: any;\r\n label: string;\r\n compare?:any;\r\n divider?:boolean;\r\n color?:string;\r\n}\r\nexport type IFieldOptions = IFieldOption[];\r\n\r\nexport interface IFieldCompareOption {\r\n value:string,\r\n label:string,\r\n hasValue:boolean,\r\n hasToValue:boolean\r\n}\r\n\r\nexport type IFieldCompareOptions = IFieldCompareOption[];\r\n\r\nexport interface IFieldMetaProps {\r\n label:string;\r\n required:boolean;\r\n disabled:boolean;\r\n disabledHelp:string;\r\n hidden:boolean;\r\n options:IFieldOptions;\r\n format:string;\r\n validationReq:boolean;\r\n help:string;\r\n placeholder:string; \r\n valueRange:string;\r\n loading:boolean;\r\n lookupLabel:string;\r\n onEnterKeyAction:string;\r\n}\r\n\r\nexport type FieldMetaProps = {[name:string]:IFieldMetaProps};\r\n\r\nexport class RecordMeta {\r\n readonly:boolean;\r\n metaProps:FieldMetaProps;\r\n error:RecordErrorSet;\r\n schema:IRecordSchema;\r\n index:number;\r\n \r\n static forRecord(record:any):RecordMeta{\r\n if (record){\r\n return record.$$meta;\r\n }\r\n }\r\n static setRecordReadonly(meta:RecordMeta,value:boolean){\r\n meta.readonly = value;\r\n }\r\n\r\n static setRequired(meta:RecordMeta,fieldName:string,value:any){\r\n let fieldMeta = this.getOrCreateFieldMeta(meta,fieldName);\r\n fieldMeta.required = this.getBoolean(value);\r\n }\r\n\r\n \r\n static setDisabled(meta:RecordMeta,fieldName:string,value:any){\r\n let fieldMeta = this.getOrCreateFieldMeta(meta,fieldName);\r\n fieldMeta.disabled = this.getBoolean(value);\r\n }\r\n\r\n static setDisabledHelp(meta:RecordMeta,fieldName:string,value:any){\r\n let fieldMeta = this.getOrCreateFieldMeta(meta,fieldName);\r\n fieldMeta.disabledHelp = value;\r\n }\r\n\r\n static setHidden(meta:RecordMeta,fieldName:string,value:any){\r\n let fieldMeta = this.getOrCreateFieldMeta(meta,fieldName);\r\n fieldMeta.hidden = this.getBoolean(value);\r\n }\r\n\r\n static setReadonly(meta:RecordMeta,fieldName:string,value:any){\r\n let fieldMeta = this.getOrCreateFieldMeta(meta,fieldName);\r\n fieldMeta.disabled = this.getBoolean(value);\r\n }\r\n\r\n static setOptions(meta:RecordMeta,fieldName:string,options:IFieldOptions){\r\n let fieldMeta = this.getOrCreateFieldMeta(meta,fieldName);\r\n if (options){\r\n if (!hasEmptyOption(options)){\r\n options.unshift({value:\"\",label:\"?\"});\r\n }\r\n for(let i = 0; i < options.length;i++){\r\n let option = options[i];\r\n if (option.value && option.value.toUpperCase){\r\n option.value = option.value.toUpperCase();\r\n }\r\n }\r\n }\r\n fieldMeta.options = options;\r\n }\r\n\r\n static setFormat(meta:RecordMeta,fieldName:string,formatString:string){\r\n let fieldMeta = this.getOrCreateFieldMeta(meta,fieldName);\r\n fieldMeta.format = formatString;\r\n }\r\n\r\n static setLabel(meta:RecordMeta,fieldName:string,label:string){\r\n let fieldMeta = this.getOrCreateFieldMeta(meta,fieldName);\r\n fieldMeta.label = label;\r\n }\r\n\r\n static setPlaceholder(meta:RecordMeta,fieldName:string,text:string){\r\n let fieldMeta = this.getOrCreateFieldMeta(meta,fieldName);\r\n fieldMeta.placeholder = text;\r\n }\r\n\r\n static setHelp(meta:RecordMeta,fieldName:string,text:string){\r\n let fieldMeta = this.getOrCreateFieldMeta(meta,fieldName);\r\n fieldMeta.help = text;\r\n }\r\n\r\n static setLookupLabel(meta:RecordMeta,fieldName:string,value:any){\r\n let fieldMeta = this.getOrCreateFieldMeta(meta,fieldName);\r\n fieldMeta.lookupLabel = value;\r\n }\r\n\r\n\r\n static getBoolean(value:any):boolean {\r\n if (!value) return false;\r\n if (typeof value === \"string\"){\r\n let c = value[0];\r\n if (c == 'Y' || c == 'y' || c=='T' || c=='t'){\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n\r\n static getOrCreateFieldMeta(meta:RecordMeta,fieldName:string):IFieldMetaProps {\r\n let metaProps = meta.metaProps;\r\n if (!metaProps){\r\n metaProps = {};\r\n meta.metaProps = metaProps;\r\n }\r\n let fieldMeta = metaProps[fieldName];\r\n if (fieldMeta){\r\n return fieldMeta;\r\n }\r\n fieldMeta = {} as any;\r\n metaProps[fieldName] = fieldMeta;\r\n return fieldMeta;\r\n }\r\n \r\n static getFieldMeta(meta:RecordMeta,name:string):IFieldMetaProps{\r\n \r\n if (!meta || !meta.metaProps) return null;\r\n return meta.metaProps[name];\r\n }\r\n\r\n static initalizeRecord(schema:IRecordSchema,data:any):any{\r\n data = data || {};\r\n let meta = new RecordMeta();\r\n meta.schema = schema;\r\n data.$$meta = meta;\r\n return data;\r\n }\r\n\r\n static clearErrors(data:any){\r\n let meta = RecordMeta.forRecord(data);\r\n if (meta){\r\n meta.error = null;\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction hasEmptyOption(options:IFieldOptions):boolean {\r\n for(let i = 0; i < options.length;i++){\r\n let value = options[i].value;\r\n if (!value && value !== 0) return true;\r\n }\r\n return false\r\n}","import { Canvas } from \"./Canvas\";\r\nimport { IReportTotal } from \"./CollectionGrouper\";\r\nimport { IFieldCompareOptions, IFieldOptions, RecordMeta } from \"./RecordMeta\";\r\nimport { FieldType } from \"./types\";\r\n\r\n\r\nexport interface IRecordSchema {\r\n name:string;\r\n fields:{[name:string]:IFieldDefinition};\r\n onRowClick?:string;\r\n onSelectorClick?:string;\r\n onValueChanged?:string;\r\n dataViews?:any;\r\n keyField?:string;\r\n projection:string[];\r\n totals?:IRecordTotal[];\r\n}\r\n\r\nexport interface IRecordTotal {\r\n name:string;\r\n field:string;\r\n fieldType:FieldType;\r\n totalType:'sum' | 'count' | 'avg' | 'min' | 'max';\r\n}\r\nexport type IScreenParameter = {name:string,value:string};\r\n\r\nexport interface IFieldLookup {\r\n name?:string;\r\n autoLaunch?:boolean;\r\n params?:IScreenParameter[];\r\n}\r\n\r\nexport interface IFieldSortExpr {\r\n name:string;\r\n type:FieldType;\r\n descending:boolean;\r\n}\r\n\r\nexport interface IFieldDefinition {\r\n name:string;\r\n type:FieldType;\r\n label?:string;\r\n size?:number;\r\n onValueChanged?:string;\r\n onClick?:string;\r\n lookup?:IFieldLookup;\r\n lookupLabel?:string;\r\n recordSchema?:IRecordSchema;\r\n readonly?:boolean;\r\n required?:boolean;\r\n options?:IFieldOptions;\r\n compareOptions?:IFieldCompareOptions;\r\n placeholder?:string;\r\n format?:string;\r\n help?:string;\r\n uppercase?:boolean;\r\n computed?:string;\r\n computedExpr?:string;\r\n isRange?:boolean;\r\n hidden?:boolean;\r\n valueRange?:string;\r\n input?:boolean;\r\n sortExpr?:IFieldSortExpr[];\r\n styles?:string;\r\n labelStyles?:string;\r\n suffixExpression?:string;\r\n}\r\n\r\nexport class Schema {\r\n static getFieldFromMeta(meta:RecordMeta,name:string):IFieldDefinition{\r\n if (meta.schema && name){\r\n return meta.schema.fields[name.toLowerCase()];\r\n }\r\n }\r\n\r\n static getFieldDef(schema:IRecordSchema,name:string):IFieldDefinition{\r\n if (schema && name){\r\n return schema.fields[name.toLowerCase()];\r\n }\r\n }\r\n\r\n static getQualifiedFieldDef(canvas:Canvas,qualified:string):IFieldDefinition {\r\n if (!qualified) return null;\r\n let target:string;\r\n let name:string;\r\n if (qualified[0] != '@'){\r\n if (canvas.defaultRecord){\r\n target = canvas.defaultRecord;\r\n name = qualified;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n [target,name] = qualified.split('.');\r\n }\r\n if (name){\r\n let schema = Schema.getRecordSchema(canvas,target);\r\n if (!schema) return null;\r\n return Schema.getFieldDef(schema,name);\r\n }\r\n \r\n let schema = canvas.schema;\r\n return Schema.getFieldDef(schema,target);\r\n\r\n }\r\n static getRecordSchema(canvas:Canvas,recordName:string):IRecordSchema {\r\n if (canvas && canvas.schema && recordName){\r\n let f = canvas.schema.fields[recordName.toLowerCase()];\r\n if (!f) return null;\r\n return f.recordSchema;\r\n }\r\n }\r\n}","import { Canvas } from \"./Canvas\";\r\nimport { Focus } from \"./Focus\";\r\nimport { FieldFormatter } from \"./FieldFormatter\";\r\nimport { FieldError, RecordErrorSet } from \"./RecordErrorSet\";\r\nimport { IFieldMetaProps, IFieldOption, RecordMeta } from \"./RecordMeta\";\r\nimport { IFieldDefinition, IFieldLookup, Schema } from \"./Schema\";\r\nimport { FieldType, IEventScope, IFilterValue } from \"./types\";\r\nimport { ActionRef } from \"./ActionRef\";\r\n\r\nexport class FieldRef {\r\n public name: string;\r\n public record:any;\r\n public meta: RecordMeta;\r\n public canvas:Canvas;\r\n public scope:IEventScope;\r\n public def:IFieldDefinition;\r\n public lookupLabelRef:FieldRef;\r\n public recordName:string;\r\n public isExpression:boolean;\r\n public exprValue:any;\r\n public formatOverride:string;\r\n public labelOverride:string;\r\n\r\n constructor(canvas:Canvas,scope:IEventScope,data:any,name:string,recordName:string){\r\n this.canvas = canvas;\r\n this.scope = scope;\r\n this.recordName = recordName;\r\n if (data){\r\n this.record = data;\r\n this.meta = data.$$meta;\r\n if (this.meta){\r\n let def = Schema.getFieldFromMeta(this.meta,name);\r\n if (def){\r\n this.def = def;\r\n name = def.name;\r\n if (def.lookupLabel){\r\n this.lookupLabelRef = canvas.getFieldRef(def.lookupLabel,scope);\r\n }\r\n }\r\n }\r\n }\r\n this.name = name;\r\n }\r\n \r\n get fieldMeta():IFieldMetaProps {\r\n if (!this.meta || !this.meta.metaProps) return null;\r\n var meta = this.meta.metaProps;\r\n if (!meta) return null;\r\n return meta[this.name];\r\n }\r\n\r\n get value(): any {\r\n if (this.isExpression) return this.exprValue;\r\n if (!this.record) return null;\r\n let v;\r\n if (this.name[0] == '@'){\r\n v = this.getRecordValue(this.name.substr(1));\r\n }\r\n else {\r\n v = this.getRecordValue(this.name);\r\n }\r\n if (this.def && this.def.isRange){\r\n if (v){\r\n return v.value;\r\n }\r\n return null;\r\n }\r\n return v;\r\n }\r\n\r\n get filter(): IFilterValue {\r\n let v:any;\r\n if (this.name[0] == '@'){\r\n v = this.getRecordValue(this.name.substring(1));\r\n }\r\n else {\r\n v = this.getRecordValue(this.name);\r\n }\r\n return v \r\n }\r\n\r\n private getRecordValue(name:string):any {\r\n if (this.record.$$get){\r\n return this.record.$$get(name);\r\n }\r\n return this.record[name];\r\n }\r\n\r\n async setValue(value:any){\r\n if (this.def && this.def.isRange){\r\n let filter = this.filter || {$type:\"filter\"};\r\n filter.value = value;\r\n await this.canvas.setValue(this,filter);\r\n }\r\n else {\r\n await this.canvas.setValue(this,value);\r\n }\r\n }\r\n\r\n async setValueNoUpdate(value:any){\r\n if (this.def && this.def.isRange){\r\n let filter = this.filter || {$type:\"filter\"};\r\n if (value && typeof(value) === \"string\"){\r\n let i = value.indexOf('|');\r\n if (i != -1){\r\n filter.value = value.substring(0,i);\r\n filter.toValue = value.substring(i + 1);\r\n }\r\n else {\r\n filter.value = value;\r\n }\r\n }\r\n else {\r\n filter.value = value;\r\n }\r\n await this.canvas.setRecordValueNoUpdate(this,filter);\r\n }\r\n else {\r\n await this.canvas.setRecordValueNoUpdate(this,value);\r\n }\r\n }\r\n\r\n get shouldFocus():boolean {\r\n if (this.readonly || this.disabled) return false;\r\n return Focus.shouldFocus(this.canvas,this);\r\n }\r\n\r\n\r\n get disabled(): boolean {\r\n let fieldMeta = this.fieldMeta;\r\n if (fieldMeta){\r\n let value = fieldMeta.disabled;\r\n if (value !== undefined) return value;\r\n }\r\n }\r\n\r\n get disabledHelp(): string {\r\n let fieldMeta = this.fieldMeta;\r\n if (fieldMeta){\r\n return fieldMeta.disabledHelp;\r\n }\r\n }\r\n\r\n get styles():string {\r\n if (this.def && this.def.styles){\r\n return this.canvas.getValue(this.def.styles,{scope:this.scope});\r\n }\r\n }\r\n\r\n get labelStyles():string {\r\n if (this.def && this.def.labelStyles){\r\n return this.canvas.getValue(this.def.labelStyles,{scope:this.scope});\r\n }\r\n }\r\n\r\n get suffix():string {\r\n if (this.def && this.def.suffixExpression){\r\n return this.canvas.getValue(this.def.suffixExpression,{scope:this.scope});\r\n }\r\n }\r\n \r\n get size():number {\r\n if (this.def){\r\n return this.def.size;\r\n }\r\n }\r\n \r\n get readonly():boolean {\r\n if (this.meta && this.meta.readonly) return true;\r\n if (this.def && this.def.readonly) return true;\r\n if (this.isExpression) return true;\r\n return false;\r\n }\r\n \r\n get hidden(): boolean {\r\n let fieldMeta = this.fieldMeta;\r\n if (fieldMeta){\r\n let value = fieldMeta.hidden;\r\n if (value !== undefined) return value;\r\n }\r\n if (this.def){\r\n return this.def.hidden;\r\n }\r\n }\r\n\r\n get required(): boolean {\r\n let fieldMeta = this.fieldMeta;\r\n if (fieldMeta){\r\n let value = fieldMeta.required;\r\n if (value !== undefined) return value;\r\n }\r\n if (this.def){\r\n return this.def.required;\r\n }\r\n }\r\n\r\n get options(): IFieldOption[] {\r\n let fieldMeta = this.fieldMeta;\r\n if (fieldMeta){\r\n let value = fieldMeta.options;\r\n if (value !== undefined) return value;\r\n }\r\n if (this.def){\r\n return this.def.options;\r\n }\r\n }\r\n\r\n valueIsOption(option:IFieldOption):boolean {\r\n if (!option) return false;\r\n let value = this.value;\r\n let upValue;\r\n if (value && value.toUpperCase){\r\n upValue = value.toUpperCase();\r\n }\r\n return upValue == option.value;\r\n }\r\n\r\n get formattedValue(): string {\r\n return this.formatValue(this.value);\r\n }\r\n\r\n private formatValue(value:any):string {\r\n var options = this.options;\r\n \r\n if (options && this.type != \"date\") {\r\n return this.getOptionLabel(options,value);\r\n }\r\n else {\r\n var format = this.format;\r\n let formatted = FieldFormatter.format(value, this.type, format);\r\n return formatted;\r\n }\r\n return value;\r\n }\r\n\r\n get formattedToValue():string {\r\n return this.formatValue(this.toValue);\r\n }\r\n\r\n private getOptionLabel(options:IFieldOption[],value:any):string {\r\n if (!options) return value;\r\n let compare:string;\r\n if (value === null || value === undefined){\r\n compare = \"\";\r\n }\r\n else if (value.toUpperCase){\r\n compare = value.toUpperCase();\r\n }\r\n else {\r\n compare = value.toString();\r\n }\r\n if (compare){\r\n for(let i =0 ; i < options.length;i++){\r\n let opt = options[i];\r\n if (opt.value){\r\n if (opt.value.toUpperCase){\r\n if (opt.value.toUpperCase() == compare) return opt.label;\r\n }\r\n else {\r\n if (opt.value == compare) return opt.label;\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n // looking for option without value;\r\n for (var i = 0; i < options.length; i++) {\r\n let opt = options[i];\r\n if (!opt.value) return opt.label;\r\n }\r\n return value;\r\n }\r\n\r\n get error(): FieldError {\r\n var error = RecordErrorSet.get(this.meta);\r\n if (!error || !error.fields) return null;\r\n \r\n return error.fields[this.name];\r\n }\r\n\r\n clearError() {\r\n var error = RecordErrorSet.get(this.meta);\r\n if (error){\r\n error.fields[this.name] = null;\r\n }\r\n }\r\n\r\n handleEnterKey(){\r\n this.canvas.handleEnterKey(this.scope);\r\n }\r\n\r\n get label():string {\r\n if (this.labelOverride) return this.labelOverride;\r\n let fieldMeta = this.fieldMeta;\r\n if (fieldMeta){\r\n let metaValue = fieldMeta.label;\r\n if (metaValue !== undefined) return metaValue;\r\n }\r\n if (this.def){\r\n return this.def.label;\r\n }\r\n }\r\n\r\n get placeholder():string {\r\n let fieldMeta = this.fieldMeta;\r\n if (fieldMeta){\r\n let metaValue = fieldMeta.placeholder;\r\n if (metaValue !== undefined) return metaValue;\r\n }\r\n if (this.def){\r\n return this.def.placeholder;\r\n }\r\n }\r\n\r\n get valueRange():string {\r\n let fieldMeta = this.fieldMeta;\r\n if (fieldMeta){\r\n let metaValue = fieldMeta.valueRange;\r\n if (metaValue !== undefined) return metaValue;\r\n }\r\n if (this.def){\r\n return this.def.valueRange;\r\n }\r\n }\r\n\r\n get format():string {\r\n if (this.formatOverride) return this.formatOverride;\r\n let fieldMeta = this.fieldMeta;\r\n if (fieldMeta){\r\n let metaValue = fieldMeta.format;\r\n if (metaValue !== undefined) return metaValue;\r\n }\r\n if (this.def){\r\n return this.def.format;\r\n }\r\n }\r\n\r\n get help():string {\r\n let fieldMeta = this.fieldMeta;\r\n if (fieldMeta){\r\n let metaValue = fieldMeta.help;\r\n if (metaValue !== undefined) return metaValue;\r\n }\r\n if (this.def){\r\n return this.def.help;\r\n }\r\n }\r\n\r\n get lookup():IFieldLookup {\r\n if (this.def) {\r\n return this.def.lookup;\r\n }\r\n }\r\n\r\n get type():FieldType {\r\n if (this.def){\r\n return this.def.type;\r\n }\r\n }\r\n\r\n \r\n\r\n get lookupLabel():string {\r\n if (this.lookupLabelRef){\r\n return this.lookupLabelRef.formattedValue;\r\n }\r\n let fieldMeta = this.fieldMeta;\r\n if (fieldMeta){\r\n return fieldMeta.lookupLabel || \"\";\r\n }\r\n return \"\";\r\n }\r\n\r\n set lookupLabel(value:string){\r\n if (this.lookupLabelRef){\r\n this.canvas.setRecordValueNoUpdate(this.lookupLabelRef,value);\r\n }\r\n else if (this.meta){\r\n RecordMeta.setLookupLabel(this.meta,this.name,value);\r\n }\r\n }\r\n\r\n get onClickAction():ActionRef {\r\n if (!this.def || !this.def.onClick) return null;\r\n let meta = RecordMeta.getFieldMeta(this.canvas.$$meta,this.def.onClick);\r\n if (meta && meta.hidden){\r\n return null;\r\n }\r\n return new ActionRef(this.canvas,this.def.onClick,this.scope);\r\n }\r\n\r\n get onValueChanged():string {\r\n if (this.def && this.def.onValueChanged) return this.def.onValueChanged;\r\n let recordMeta = RecordMeta.forRecord(this.record);\r\n if (recordMeta && recordMeta.schema.onValueChanged){\r\n return recordMeta.schema.onValueChanged;\r\n }\r\n }\r\n async fireOnClick(){\r\n let actionRef = new ActionRef(this.canvas,this.def.onClick,this.scope);\r\n await actionRef.trigger();\r\n }\r\n\r\n async setCompare(compare:string,triggerOnChange:boolean){\r\n let filter = this.filter || {$type:\"filter\"};\r\n filter.compare = compare;\r\n if (triggerOnChange){\r\n await this.canvas.setValue(this,filter);\r\n }\r\n else {\r\n this.canvas.setRecordValueNoUpdate(this,filter);\r\n }\r\n }\r\n\r\n get compare():string {\r\n let filter = this.filter;\r\n if (filter) return filter.compare;\r\n return null;\r\n }\r\n\r\n async setBucket(compare:string){\r\n let filter = this.filter || {$type:\"filter\"};\r\n filter.bucket = compare;\r\n await this.canvas.setValue(this,filter);\r\n }\r\n\r\n get bucket():string {\r\n let filter = this.filter;\r\n if (filter) return filter.bucket;\r\n return null;\r\n }\r\n\r\n async setToValue(value:any){\r\n let filter = this.filter || {$type:'filter'};\r\n filter.toValue = value;\r\n await this.canvas.setValue(this,filter);\r\n }\r\n\r\n get toValue():any {\r\n let filter = this.filter;\r\n if (filter) return filter.toValue;\r\n return null;\r\n }\r\n\r\n get qualifiedName():string {\r\n if (this.recordName){\r\n return this.recordName + \".\" + this.name;\r\n }\r\n return this.name;\r\n }\r\n \r\n\r\n}","import { Canvas } from \"./Canvas\";\r\nimport { FieldRef } from \"./FieldRef\";\r\n\r\n\r\nexport class Focus {\r\n static shouldFocus(canvas:Canvas,field: FieldRef): boolean {\r\n \r\n if (!field.record || field.readonly) return false;\r\n\r\n let pendingFocusField = canvas.pendingFocusField;\r\n if (pendingFocusField === undefined){\r\n canvas.pendingFocusField = null;\r\n return true;\r\n }\r\n \r\n if (\r\n pendingFocusField &&\r\n pendingFocusField.record == field.record &&\r\n pendingFocusField.name == field.name\r\n ) {\r\n canvas.pendingFocusField = null;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n static shouldFocusButton(canvas:Canvas,name:string):boolean {\r\n let pendingFocusField = canvas.pendingFocusField;\r\n if (\r\n pendingFocusField &&\r\n !pendingFocusField.meta &&\r\n pendingFocusField.name == name\r\n ) {\r\n canvas.pendingFocusField = null;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n static focus(canvas:Canvas,field: FieldRef) {\r\n if (!field) return;\r\n canvas.pendingFocusField = field;\r\n }\r\n\r\n static focusButton(canvas:Canvas,name:string) {\r\n canvas.pendingFocusField = new FieldRef(canvas,null,null,name,null);\r\n }\r\n\r\n\r\n static cancelInitialFocus(canvas:Canvas) {\r\n if (canvas.pendingFocusField === undefined) {\r\n canvas.pendingFocusField = null;\r\n }\r\n }\r\n\r\n}","import { Canvas } from \"./Canvas\";\r\nimport { Focus } from \"./Focus\";\r\nimport { RecordMeta } from \"./RecordMeta\";\r\nimport { IActionDefinition, IActionResult, IEventOptions, IEventScope } from \"./types\";\r\n\r\nexport class ActionRef {\r\n canvas:Canvas;\r\n name:string;\r\n scope:IEventScope;\r\n def:IActionDefinition;\r\n statements:any[];\r\n \r\n constructor(canvas:Canvas,name:string,scope:IEventScope){\r\n this.canvas = canvas;\r\n this.name = name;\r\n this.scope = scope;\r\n }\r\n\r\n get hidden():boolean {\r\n let meta = RecordMeta.getFieldMeta(this.canvas.$$meta,this.name);\r\n if (meta){\r\n return meta.hidden;\r\n }\r\n return false;\r\n }\r\n \r\n get disabled():boolean {\r\n let meta = RecordMeta.getFieldMeta(this.canvas.$$meta,this.name);\r\n if (meta && meta.disabled){\r\n return true;\r\n }\r\n if (this.def && this.def.disableIf){\r\n let test = this.canvas.getValue(this.def.disableIf,{scope:this.scope});\r\n if (test){\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n get disabledHelp():string {\r\n let meta = RecordMeta.getFieldMeta(this.canvas.$$meta,this.name);\r\n if (meta){\r\n return meta.disabledHelp;\r\n }\r\n return null;\r\n }\r\n \r\n\r\n get label():string {\r\n let meta = RecordMeta.getFieldMeta(this.canvas.$$meta,this.name);\r\n if (meta){\r\n if (meta.label !== undefined) return meta.label;\r\n }\r\n if (this.def){\r\n return this.def.label;\r\n }\r\n }\r\n\r\n get icon():string {\r\n if (this.def){\r\n return this.def.icon;\r\n }\r\n }\r\n\r\n get styles():string {\r\n if (this.def && this.def.styles){\r\n return this.canvas.getValue(this.def.styles,{scope:this.scope});\r\n }\r\n }\r\n \r\n get help():string {\r\n let meta = RecordMeta.getFieldMeta(this.canvas.$$meta,this.name);\r\n if (meta){\r\n if (meta.help !== undefined) return meta.help;\r\n }\r\n if (this.def){\r\n return this.def.help;\r\n }\r\n }\r\n\r\n get shouldFocus():boolean {\r\n return Focus.shouldFocusButton(this.canvas,this.name);\r\n }\r\n\r\n async trigger(options?:IEventOptions):Promise{\r\n options = options || {};\r\n options.scope = {...this.scope,...options.scope};\r\n try {\r\n let result = await this.canvas.triggerAction(this,options);\r\n return result;\r\n }\r\n catch(e){\r\n if (e != \"stopped\"){\r\n throw e;\r\n }\r\n return {continue:false};\r\n }\r\n }\r\n}\r\n\r\n","\r\nimport ReactDOM from 'react-dom';\r\nimport {Application, ISigninProps, ISigninUrlValues} from './Application';\r\nimport { Broadcast } from './Broadcast';\r\nimport { Canvas } from './Canvas';\r\nimport { Dialog, DialogResult } from './Dialog';\r\nimport { PageContainer } from './PageContainer';\r\nimport { ICanvasError, ISigninSettings, IStudioSettings } from './types';\r\n\r\n\r\nexport interface IWorkspace {\r\n name:string;\r\n label:string;\r\n icon:string;\r\n}\r\n\r\nexport interface ISessionResult {\r\n success:boolean;\r\n didSignin?:boolean;\r\n error?:string;\r\n userType?:string;\r\n firstName?:string;\r\n lastName?:string;\r\n homePage?:string;\r\n signinSettings?:ISigninSettings;\r\n studioSettings?:IStudioSettings;\r\n version?:string;\r\n botConnect?:string;\r\n}\r\n\r\nexport class AppSession {\r\n\r\n app:Application;\r\n public homePage:string;\r\n public broadcast:Broadcast;\r\n public firstName:string;\r\n public lastName:string;\r\n public userType:'employee' | 'account';\r\n public botConnect:string;\r\n\r\n private values:any = {};\r\n\r\n constructor(app:Application){\r\n this.app = app;\r\n this.broadcast = new Broadcast();\r\n }\r\n\r\n async signin(\r\n app: Application,\r\n parentCanvas:Canvas,\r\n options:{insideRequest?:boolean},\r\n props:any\r\n \r\n ):Promise {\r\n \r\n /*\r\n let res = await this.tryGetSession(app);\r\n if (!res){\r\n throw new Error(\"Unable to communicate with server at this time...\");\r\n }\r\n if (res.signinSettings){\r\n app.signinSettings = res.signinSettings;\r\n app.studioSettings = res.studioSettings;\r\n }\r\n \r\n \r\n let params = new URLSearchParams(document.location.search.substr(1));\r\n let pwdToken = params.get(\"_pwdtoken\");\r\n if (pwdToken){\r\n let tokenType = params.get(\"type\");\r\n this.renderResetPassword(app,{token:pwdToken,tokenType,username:params.get(\"username\")});\r\n return res;\r\n }\r\n */\r\n \r\n let dialog = ;\r\n let canvas = new Canvas(null);\r\n canvas.launchParams = {name:\"root\",props:{}};\r\n\r\n let result = await Dialog.open(canvas,dialog,null,\"dialog\");\r\n return result;\r\n // res.didSignin = true;\r\n \r\n \r\n \r\n /*\r\n res = await this.tryGetSession(app);\r\n if (res.userType){\r\n this.firstName = res.firstName;\r\n this.lastName = res.lastName;\r\n this.homePage = res.homePage;\r\n this.botConnect = res.botConnect;\r\n this.userType = res.userType as any;\r\n res.didSignin = true;\r\n return res;\r\n }\r\n */\r\n /*\r\n let elem = document.createElement(\"div\");\r\n document.body.appendChild(elem);\r\n var p = new Promise((resolve) => {\r\n let onClose = (result:ISessionResult)=> {\r\n document.body.removeChild(elem);\r\n resolve(result);\r\n }\r\n let content = this.renderSignin(app,onClose,{});\r\n ReactDOM.render(content, elem);\r\n })\r\n res = await p;\r\n app.studioSettings = res.studioSettings;\r\n this.broadcast.refresh();\r\n res.didSignin = true;\r\n */\r\n \r\n }\r\n \r\n getPostUrl(app:Application,method:string){\r\n return \"/session/\" + method;\r\n }\r\n async tryGetSession(app:Application):Promise{\r\n\r\n try {\r\n let json = await Application.instance.doPostRequest(this.getPostUrl(app,\"status\"),{domain:app.domain,branch:app.branch});\r\n return json; \r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n \r\n renderResetPassword(app: Application,urlValues:ISigninUrlValues ) {\r\n let container = document.createElement(\"div\");\r\n document.body.appendChild(container);\r\n let done = () => {\r\n document.location.assign(\"/\");\r\n };\r\n let content = this.renderSignin(app,done,urlValues);\r\n ReactDOM.render(content, container);\r\n }\r\n\r\n renderSignin(app:Application,done:(result:ISessionResult)=> void,urlValues:ISigninUrlValues):any{\r\n let container = document.createElement(\"div\");\r\n document.body.appendChild(container);\r\n return app.renderSignin({app,done,urlValues});\r\n }\r\n\r\n\r\n public async attemptSignin(username:string,password:string):Promise {\r\n\r\n let app = Application.instance;\r\n let res = await app.doPostRequest(this.getPostUrl(app,\"signin\"),{domain:this.app.domain,username,password});\r\n return res;\r\n }\r\n\r\n public async requestToken(username:string):Promise{\r\n let app = Application.instance;\r\n let res = await app.doPostRequest(this.getPostUrl(app,\"send-reset-token\"),{domain:this.app.domain,username});\r\n return res;\r\n }\r\n\r\n public async resetPassword(token:string,password:string):Promise{\r\n let app = Application.instance;\r\n let res = await app.doPostRequest(this.getPostUrl(app,\"set-password\"),{domain:this.app.domain,token,password});\r\n return res;\r\n }\r\n\r\n public async ping():Promise{\r\n let app = Application.instance;\r\n let res = await app.doPostRequest(this.getPostUrl(app,\"ping\"),{domain:this.app.domain});\r\n return res;\r\n }\r\n \r\n public getValue(name:string):any {\r\n if (!name) return;\r\n return this.values[name.toLowerCase()];\r\n }\r\n\r\n\r\n public async signout():Promise{\r\n let app = Application.instance;\r\n let res = await app.doPostRequest(this.getPostUrl(app,\"signout\"),{domain:this.app.domain});\r\n if (res.success){\r\n window.top.location.assign(\"/\" + app.appName);\r\n }\r\n return res;\r\n }\r\n \r\n}","import { Application } from \"./Application\";\r\n\r\n\r\nexport type IUpdateSpinnerState = (visible:boolean) => void;\r\n\r\nexport class SpinnerManager {\r\n private spinnerState:string[] = [];\r\n private spinnerTimer:any;\r\n private pendingAction:'show' | 'hide';\r\n private app:Application;\r\n private lastAction:'show' | 'hide';\r\n\r\n constructor(app:Application){\r\n this.app = app;\r\n }\r\n\r\n public show(){\r\n if (this.lastAction){\r\n this.spinnerState.push(this.lastAction);\r\n }\r\n this.lastAction = 'show';\r\n this.showSpinnerElem();\r\n }\r\n\r\n public pause(){\r\n this.spinnerState.push(\"hide\");\r\n this.lastAction = 'hide';\r\n this.hideSpinnerElem();\r\n }\r\n\r\n public resume(){\r\n \r\n if (this.spinnerState.length){\r\n this.lastAction = this.spinnerState.pop() as any;\r\n if (this.lastAction == \"show\"){\r\n this.showSpinnerElem();\r\n }\r\n else {\r\n this.hideSpinnerElem();\r\n }\r\n }\r\n else {\r\n this.hideSpinnerElem();\r\n }\r\n }\r\n\r\n public hide(){\r\n if (this.spinnerState.length){\r\n this.lastAction = this.spinnerState.pop() as any;\r\n if (this.lastAction != \"show\"){\r\n this.hideSpinnerElem();\r\n }\r\n }\r\n else {\r\n this.hideSpinnerElem();\r\n this.lastAction = null;\r\n }\r\n }\r\n\r\n \r\n\r\n private showSpinnerElem(){ \r\n this.startTimer('show');\r\n }\r\n\r\n public kill(){\r\n if (this.spinnerTimer){\r\n clearTimeout(this.spinnerTimer);\r\n this.spinnerTimer = null;\r\n }\r\n this.spinnerState = [];\r\n this.pendingAction = null;\r\n this.lastAction = null;\r\n try {\r\n this.app.updateSpinnerState(false);\r\n }\r\n catch(e){\r\n console.error(\"Error showing spinner\",e);\r\n }\r\n }\r\n \r\n private startTimer(action:'hide' | 'show'){\r\n if (this.spinnerTimer){\r\n this.pendingAction = action;\r\n return;\r\n }\r\n this.pendingAction = action;\r\n let delay = action == 'show' ? 250 : 25;\r\n this.spinnerTimer = setTimeout(()=>{\r\n this.spinnerTimer = null;\r\n let visible:boolean;\r\n if (this.pendingAction == \"show\"){\r\n visible = true;\r\n }\r\n else {\r\n visible = false;\r\n }\r\n this.pendingAction = null;\r\n if (this.app.updateSpinnerState){\r\n try {\r\n this.app.updateSpinnerState(visible);\r\n }\r\n catch(e){\r\n console.error(\"Error showing spinner\",e);\r\n }\r\n }\r\n \r\n },delay);\r\n }\r\n \r\n private hideSpinnerElem(){\r\n this.startTimer('hide');\r\n }\r\n}","import { Application } from \"./Application\";\r\nimport { IPageLaunchParams } from \"./types\";\r\n\r\nexport interface IParsedUrl {\r\n app:string;\r\n domain:string;\r\n folder:string;\r\n filename:string;\r\n search:{[name:string]:string};\r\n branch:string;\r\n isScreen:boolean;\r\n}\r\n\r\n\r\nexport class Url {\r\n\r\n static parse(pathname:string,search:string): IParsedUrl {\r\n let domain:string;\r\n let folder:string;\r\n let filename:string;\r\n \r\n let app:string;\r\n let isScreen:boolean;\r\n\r\n if (pathname){\r\n pathname = pathname.substring(1);\r\n let segments = pathname.split('/');\r\n \r\n for(let i =0 ; i < segments.length;i++){\r\n let segment = decodeURIComponent(segments[i]);\r\n if (!app){\r\n app = segment;\r\n }\r\n else if (!folder && segment[0] == '@'){\r\n domain = segment.substring(1);\r\n }\r\n else if (!folder){\r\n if (segment == \"screens\"){\r\n isScreen = true;\r\n }\r\n else {\r\n folder = segment;\r\n }\r\n }\r\n else if (!filename){\r\n filename = segment;\r\n }\r\n }\r\n }\r\n if (!app){\r\n app = \"pages\";\r\n }\r\n\r\n\r\n let searchValues = Url.parseSearch(search);\r\n let params = {};\r\n if (search) {\r\n for (var key in searchValues) {\r\n if (key[0] != \"_\"){\r\n let v = search[key];\r\n params[key] = v;\r\n }\r\n }\r\n }\r\n let branch = searchValues[\"_branch\"];\r\n return {\r\n app,\r\n domain,\r\n folder,\r\n filename,\r\n search:searchValues,\r\n branch,\r\n isScreen\r\n }\r\n }\r\n \r\n static updateSearch(location:Location,patch:any):string{\r\n let pathname = location.pathname;\r\n let search = Url.parseSearch(location.search);\r\n search = {...search,...patch};\r\n return pathname + Url.stringifySearch(search);\r\n }\r\n \r\n static parseSearch(search: string): any {\r\n\r\n if (!search) {\r\n return {};\r\n }\r\n if (search[0] == \"?\") {\r\n search = search.substr(1);\r\n }\r\n var parameters = search.split('&');\r\n var obj = {};\r\n for (var i = 0; i < parameters.length; i++) {\r\n var parameter = parameters[i].split('=');\r\n var pName = decodeURIComponent(parameter[0]);\r\n obj[pName] = decodeURIComponent(parameter[1]);\r\n }\r\n return obj;\r\n\r\n }\r\n\r\n static stringify(app:Application,folder:string,filename:string,params?:any):string {\r\n \r\n\r\n let pathname = '/' + app.appName + '/';\r\n if (app.domain){\r\n pathname = pathname + \"@\" + app.domain + \"/\";\r\n }\r\n pathname = pathname + folder + \"/\";\r\n if (filename){\r\n pathname += filename;\r\n }\r\n if (params){\r\n pathname = pathname + Url.stringifySearch(params);\r\n }\r\n return pathname;\r\n }\r\n\r\n static stringifyScreenLink(app:Application,launchParams:IPageLaunchParams):string {\r\n return document.location.origin + Url.stringify(app,\"screens\",launchParams.name,launchParams.props);\r\n }\r\n\r\n static stringifySearch(searchObj: any): string {\r\n var segments: string[] = [];\r\n\r\n if (searchObj) {\r\n for (var key in searchObj) {\r\n if (key[0] != \"_\"){\r\n let value = searchObj[key];\r\n if (Url.isPrimitive(value)) {\r\n segments.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(value));\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n if (segments.length) {\r\n return \"?\" + segments.join('&');\r\n }\r\n return \"\";\r\n }\r\n\r\n static stringifyRedirect(domain:string,form?:string,search?:string):string {\r\n let url = \"/@\" + encodeURIComponent(domain);\r\n if (form){\r\n url += \"/\" + encodeURIComponent(form);\r\n }\r\n\r\n if (search){\r\n url += \"/\" + search;\r\n }\r\n return url;\r\n }\r\n\r\n static isPrimitive(value: any): boolean {\r\n if (value === undefined || value === null) return false;\r\n if (typeof (value) == \"string\" || typeof (value) == \"number\" || typeof (value) == \"boolean\") {\r\n return true;\r\n }\r\n return (value != Object(value));\r\n }\r\n}","import { Rectangle } from \"recharts\";\r\nimport { ActionRef } from \"./ActionRef\";\r\nimport { Canvas } from \"./Canvas\";\r\n\r\n\r\nexport type ContextMenuTargetRect = {top:number,bottom:number,left:number,right:number};\r\nexport type ContextMenuHandlerArgs = {rect:ContextMenuTargetRect,target:HTMLElement};\r\n\r\nexport class ContextMenuHandler {\r\n public id:string;\r\n public handleOpen:(args:ContextMenuHandlerArgs) => void;\r\n public onClose:() => void;\r\n public isOpen:boolean;\r\n public canvas:Canvas;\r\n public row:any;\r\n public elemId:string;\r\n public x:number;\r\n public y:number;\r\n public rect:ContextMenuTargetRect;\r\n\r\n public manager:ContextMenuManager;\r\n\r\n public open(){\r\n this.isOpen = true;\r\n this.canvas.update();\r\n }\r\n public close(){\r\n this.isOpen = false;\r\n if (this.onClose){\r\n this.onClose()\r\n }\r\n this.canvas.update();\r\n }\r\n\r\n public trigger(action:string,scope:any){\r\n this.isOpen = false;\r\n this.canvas.update();\r\n let actionRef = new ActionRef(this.canvas,action,scope);\r\n actionRef.trigger();\r\n }\r\n}\r\n\r\n\r\nexport class ContextMenuManager {\r\n private _handlers:ContextMenuHandler[] = [];\r\n private _nextId = 1;\r\n\r\n public createHandler(canvas:Canvas,handleOpen:(args:ContextMenuHandlerArgs) => void):ContextMenuHandler{\r\n let handler = new ContextMenuHandler();\r\n handler.canvas = canvas;\r\n handler.id = (this._nextId++).toString();\r\n handler.handleOpen = handleOpen;\r\n return handler;\r\n }\r\n\r\n public connect(handler:ContextMenuHandler){\r\n this._handlers.push(handler);\r\n }\r\n \r\n public disconnect(handler:ContextMenuHandler){\r\n let i = this._handlers.indexOf(handler);\r\n if (i != -1){\r\n this._handlers.splice(i,1);\r\n }\r\n }\r\n\r\n public handleOpen(args:ContextMenuHandlerArgs){\r\n let target = args.target;\r\n let handlerElem = target.closest('[data-context-menu]');\r\n if (!handlerElem) return;\r\n let handlerId = handlerElem.getAttribute('data-context-menu');\r\n let handler = this.findHandler(handlerId);\r\n if (handler){\r\n handler.handleOpen(args);\r\n }\r\n }\r\n\r\n private findHandler(id:string):ContextMenuHandler {\r\n for(let i =0 ; i < this._handlers.length;i++){\r\n let handler = this._handlers[i];\r\n if (handler.id == id) return handler;\r\n }\r\n return null;\r\n }\r\n\r\n public closeAll(){\r\n for(let i =0 ; i < this._handlers.length;i++){\r\n let handler = this._handlers[i];\r\n if (handler.isOpen){\r\n handler.close();\r\n }\r\n }\r\n return null;\r\n }\r\n}","import { ActionRef } from \"./ActionRef\";\r\nimport { Canvas } from \"./Canvas\";\r\n\r\nexport type HoverPopupHandlerArgs = {x:number,y:number,target:HTMLElement};\r\n\r\nexport class HoverPopupHandler {\r\n public id:string;\r\n public handleOpen:(args:HoverPopupHandlerArgs) => void;\r\n public isOpen:boolean;\r\n public canvas:Canvas;\r\n public row:any;\r\n public x:number;\r\n public y:number;\r\n\r\n public manager:HoverPopupManager;\r\n\r\n public open(){\r\n this.isOpen = true;\r\n this.canvas.update();\r\n }\r\n public close(){\r\n this.isOpen = false;\r\n this.canvas.update();\r\n }\r\n\r\n public trigger(action:string,scope:any){\r\n this.isOpen = false;\r\n this.canvas.update();\r\n let actionRef = new ActionRef(this.canvas,action,scope);\r\n actionRef.trigger();\r\n }\r\n}\r\n\r\n\r\nexport class HoverPopupManager {\r\n private _handlers:HoverPopupHandler[] = [];\r\n private _nextId = 1;\r\n\r\n public activeHandlerId:string;\r\n\r\n public createHandler(canvas:Canvas,handleOpen:(args:HoverPopupHandlerArgs) => void):HoverPopupHandler{\r\n let handler = new HoverPopupHandler();\r\n handler.canvas = canvas;\r\n handler.id = (this._nextId++).toString();\r\n handler.handleOpen = handleOpen;\r\n this._handlers.push(handler);\r\n return handler;\r\n }\r\n\r\n public disconnect(handler:HoverPopupHandler){\r\n let i = this._handlers.indexOf(handler);\r\n if (i != -1){\r\n this._handlers.splice(i,1);\r\n }\r\n }\r\n\r\n public handleOpen(args:HoverPopupHandlerArgs){\r\n let target = args.target;\r\n let handlerElem = target.closest('[data-hover-popup]');\r\n if (!handlerElem) return;\r\n let handlerId = handlerElem.getAttribute('data-hover-popup');\r\n let handler = this.findHandler(handlerId);\r\n if (handler){\r\n if (this.activeHandlerId){\r\n this.close();\r\n }\r\n this.activeHandlerId = handlerId;\r\n handler.handleOpen(args);\r\n }\r\n }\r\n\r\n public close(){\r\n this.activeHandlerId = null;\r\n for(let i =0; i < this._handlers.length;i++){\r\n let handler = this._handlers[i];\r\n if (handler.isOpen){\r\n handler.close();\r\n }\r\n }\r\n }\r\n\r\n private findHandler(id:string):HoverPopupHandler {\r\n for(let i =0 ; i < this._handlers.length;i++){\r\n let handler = this._handlers[i];\r\n if (handler.id == id) return handler;\r\n }\r\n return null;\r\n }\r\n}","import { GridViewType } from \"components/data-table/types\";\r\nimport { Application } from \"./Application\";\r\n\r\nexport class CanvasSettingsCache {\r\n private _pages:{[name:string]:CanvasSettings} = {};\r\n public app:Application;\r\n\r\n constructor(app:Application){\r\n this.app = app;\r\n }\r\n getSettings(pageName:string){\r\n if (!pageName) return;\r\n let settings = this._pages[pageName.toLowerCase()];\r\n if (!settings){\r\n settings = new CanvasSettings(this.app,pageName);\r\n this._pages[pageName.toLowerCase()] = settings;\r\n }\r\n return settings;\r\n }\r\n\r\n setOverlayWidth(pageName:string,value:number){\r\n let settings = this.getSettings(pageName);\r\n if (!settings) return;\r\n settings.overlayWidth = value;\r\n }\r\n}\r\n\r\nexport class CanvasSettings {\r\n public _pageName:string;\r\n private _overlayWidth:number;\r\n private _viewType:GridViewType;\r\n public app:Application;\r\n\r\n constructor(app:Application,pageName:string){\r\n this.app = app;\r\n this._pageName = pageName;\r\n }\r\n\r\n get overlayWidth():number {\r\n return this._overlayWidth;\r\n }\r\n\r\n set overlayWidth(value:number){\r\n this._overlayWidth = value;\r\n }\r\n\r\n get viewType():GridViewType {\r\n return this._viewType;\r\n }\r\n\r\n set viewType(value:GridViewType){\r\n this._viewType = value;\r\n }\r\n}","\r\nimport { Canvas } from \"./Canvas\";\r\n\r\n\r\nexport class MenuHandler {\r\n public id:string;\r\n public onClose:() => void;\r\n public isOpen:boolean;\r\n public canvas:Canvas;\r\n \r\n public manager:MenuManager;\r\n\r\n public open(){\r\n this.isOpen = true;\r\n this.canvas.update();\r\n }\r\n public close(){\r\n this.isOpen = false;\r\n if (this.onClose){\r\n this.onClose()\r\n }\r\n this.canvas.update();\r\n }\r\n\r\n\r\n}\r\n\r\n\r\nexport class MenuManager {\r\n private _handlers:MenuHandler[] = [];\r\n private _nextId = 1;\r\n\r\n public createHandler(canvas:Canvas,onClose:() => void):MenuHandler{\r\n let handler = new MenuHandler();\r\n handler.canvas = canvas;\r\n handler.onClose = onClose;\r\n handler.id = (this._nextId++).toString();\r\n return handler;\r\n }\r\n\r\n public connect(handler:MenuHandler){\r\n this._handlers.push(handler);\r\n }\r\n \r\n public disconnect(handler:MenuHandler){\r\n let i = this._handlers.indexOf(handler);\r\n if (i != -1){\r\n this._handlers.splice(i,1);\r\n }\r\n }\r\n\r\n public close(id:string){\r\n let handler = this.findHandler(id);\r\n if (handler){\r\n handler.close();\r\n }\r\n }\r\n\r\n private findHandler(id:string):MenuHandler {\r\n for(let i =0 ; i < this._handlers.length;i++){\r\n let handler = this._handlers[i];\r\n if (handler.id == id) return handler;\r\n }\r\n return null;\r\n }\r\n\r\n \r\n}","import React from \"react\";\r\nimport { AppSession, ISessionResult } from \"./AppSession\";\r\nimport { Broadcast } from \"./Broadcast\";\r\nimport {PageContainer} from \"./PageContainer\";\r\nimport { IUpdateSpinnerState, SpinnerManager } from \"./SpinnerManager\";\r\nimport { ICanvasError, IPageLaunchParams, ISigninSettings,IStudioSettings } from \"./types\";\r\nimport { Url } from \"./Url\";\r\nimport { IComponentDefinition } from \"./ComponentDefinition\";\r\nimport { RecordMeta } from \"./RecordMeta\";\r\nimport { Canvas } from \"core\";\r\nimport { ContextMenuManager } from \"./ContextMenuHandler\";\r\nimport { HoverPopupManager } from \"./HoverPopupHandler\";\r\nimport { CanvasSettingsCache } from \"./CanvasSettingsCache\";\r\nimport { MenuManager } from \"./MenuHandler\";\r\nimport {TabSetState} from './TabState';\r\n\r\n\r\nexport type ISigninUrlValues = {token?:string,tokenType?:string,username?:string};\r\nexport type ISigninProps = {app:Application,done:(result:ISessionResult)=> void,urlValues:ISigninUrlValues};\r\n\r\nexport type DesignMode = 'UI' | 'Code' | 'FieldEdit';\r\n\r\n\r\nclass CartManager {\r\n broadcast:Broadcast = new Broadcast();\r\n appData:any;\r\n\r\n constructor(app:Application){\r\n this.appData = app.appData;\r\n }\r\n\r\n get cart_id():string {\r\n return this.appData[\"cart_id\"];\r\n }\r\n set cart_id(value:string){\r\n this.appData[\"cart_id\"] = value;\r\n this.broadcast.dispatch(\"changed\");\r\n }\r\n\r\n get cart_name():string {\r\n return this.appData[\"cart_name\"]\r\n }\r\n set cart_name(value:string){\r\n this.appData[\"cart_name\"] = value;\r\n }\r\n\r\n get cart_item_count():number {\r\n return this.appData[\"cart_item_count\"]\r\n }\r\n set cart_item_count(value:number){\r\n this.appData[\"cart_item_count\"] = value;\r\n }\r\n\r\n get cart_branch_name():string {\r\n return this.appData[\"cart_branch_name\"]\r\n }\r\n\r\n set cart_branch_name(value:string){\r\n this.appData[\"cart_branch_name\"] = value;\r\n }\r\n\r\n connect(listener:React.Component<{},{}>,callback:()=> void){\r\n this.broadcast.connect(listener,\"*\",(action,data) => callback());\r\n }\r\n\r\n disconnect(listener:React.Component<{},{}>){\r\n this.broadcast.disconnect(listener);\r\n }\r\n\r\n}\r\n\r\nexport class AppDataRecord {\r\n record:any;\r\n\r\n $$meta:RecordMeta;\r\n \r\n constructor(record:any){\r\n this.record = record;\r\n this.$$meta = new RecordMeta();\r\n this.$$meta.readonly = true;\r\n }\r\n $$get(name:string){\r\n return this.record[name];\r\n }\r\n $$set(name:string,value:any){\r\n this.record[name] = value;\r\n }\r\n}\r\n\r\nexport class Application {\r\n notifications:Broadcast = new Broadcast();\r\n pageNavigate:Broadcast = new Broadcast();\r\n\r\n updateSpinnerState:IUpdateSpinnerState;\r\n spinner:SpinnerManager = new SpinnerManager(this);\r\n getMessageBox:() => React.ComponentType<{message:string,style:string}>;\r\n getConfirmDialog:() => React.ComponentType<{message:string,style:string}>;\r\n doPostRequest:(path:string,body:any) => Promise;\r\n renderError:(canvas:Canvas,error:ICanvasError) => any;\r\n renderSignin:(props:ISigninProps) => React.ReactElement;\r\n static components:{[name:string]:React.ComponentClass} = {};\r\n \r\n static instance:Application;\r\n static screens:{[name:string]:React.ComponentType} = {};\r\n\r\n studioWindow:Window;\r\n host:string;\r\n activeScreens:PageContainer[] = [];\r\n domain:string;\r\n branch:string;\r\n appName:string;\r\n studioOpen:boolean;\r\n session:AppSession;\r\n signinSettings: ISigninSettings;\r\n studioSettings:IStudioSettings;\r\n studioBroadcast:Broadcast = new Broadcast();\r\n studioContent:IPageLaunchParams;\r\n studioContentKey:number;\r\n designerToolboxBroadcast:Broadcast = new Broadcast();\r\n version:string;\r\n portalTitle:string;\r\n showOverlay:boolean;\r\n overlayBroadcast:Broadcast = new Broadcast();\r\n selectedBlock:string;\r\n\r\n codeDesignerEnabled:boolean;\r\n designerTargetPage:string;\r\n codeDesignBroadcast:Broadcast = new Broadcast();\r\n\r\n workspaceKey = 1;\r\n currentWorkspace:string;\r\n workspaceContentKey = 1;\r\n currentWorkspaceLink:string;\r\n currentWorkspaceContent:IPageLaunchParams;\r\n appData:any;\r\n cart:CartManager;\r\n canvasSettingsCache:CanvasSettingsCache;\r\n \r\n contextMenuManager:ContextMenuManager = new ContextMenuManager();\r\n hoverPopupManager:HoverPopupManager = new HoverPopupManager();\r\n menuManager:MenuManager = new MenuManager();\r\n\r\n workspaceTabState:TabSetState;\r\n currentDraftView:{[pageName:string]:string} = {};\r\n \r\n constructor(){\r\n this.session = new AppSession(this);\r\n this.appData = {};\r\n this.cart = new CartManager(this);\r\n this.canvasSettingsCache = new CanvasSettingsCache(this);\r\n\r\n }\r\n\r\n registerScreen(screen:PageContainer){\r\n this.activeScreens.push(screen);\r\n }\r\n\r\n unregisterScreen(screen:PageContainer){\r\n let i = this.activeScreens.indexOf(screen);\r\n if (i != -1){\r\n this.activeScreens.splice(i,1);\r\n }\r\n }\r\n\r\n reloadScreen(screenName:string){\r\n for(let i = 0; i < this.activeScreens.length;i++){\r\n let activeScreen = this.activeScreens[i];\r\n if (activeScreen.canvas.launchParams.name == screenName){\r\n activeScreen.reload();\r\n }\r\n }\r\n }\r\n\r\n findScreen(screenName:string):PageContainer{\r\n for(let i = 0; i < this.activeScreens.length;i++){\r\n let activeScreen = this.activeScreens[i];\r\n if (activeScreen.canvas.launchParams.name == screenName){\r\n return activeScreen;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n static addComponents(namespace:string,manifest:any){\r\n if (manifest){\r\n for(let key in manifest){\r\n if (namespace){\r\n Application.components[namespace + \".\" + key] = manifest[key];\r\n }\r\n else {\r\n Application.components[key] = manifest[key];\r\n }\r\n }\r\n }\r\n }\r\n static getKind(name:string):any{\r\n return Application.components[name];\r\n }\r\n\r\n static getComponentDef(name:string):IComponentDefinition {\r\n let c = Application.components[name];\r\n if (c){\r\n return (c as any).$def as IComponentDefinition;\r\n }\r\n return null;\r\n }\r\n\r\n getImageUrl(filename:string): string {\r\n if (!filename) return null;\r\n if (filename.indexOf(\"//\") != -1 || filename[0] == \"/\"){\r\n return filename;\r\n }\r\n return this.qualifyUri(\"content/\" + filename);\r\n }\r\n\r\n qualifyUri(path:string):string {\r\n let host = this.host || \"\";\r\n host += \"/\" + this.appName + \"/\";\r\n if (!path){\r\n return host;\r\n }\r\n if (path[0] == '/'){\r\n return host + path.substr(1);\r\n }\r\n return host + path;\r\n }\r\n\r\n \r\n setWorkspaceScreen(workspace:string,link:string,options:{pushState?:boolean,replaceState?:boolean,page?:IPageLaunchParams}){\r\n // this.workspaceContentKey++;\r\n document.title = \"\"; // this.bannerSettings.windowTitle;\r\n this.currentWorkspace = workspace;\r\n\r\n this.currentWorkspaceLink = link;\r\n \r\n let page = options.page;\r\n if (!page){\r\n this.currentWorkspaceContent = null;\r\n if (options.replaceState || options.pushState){\r\n this.setWorkspaceUrl(options.replaceState);\r\n }\r\n }\r\n else {\r\n this.currentWorkspaceContent = page;\r\n }\r\n }\r\n\r\n setWorkspaceUrl(asReplace:boolean){\r\n let folder:string;\r\n let workspace = this.currentWorkspace;\r\n if (workspace){\r\n let i = workspace.lastIndexOf('/');\r\n if (i != -1){\r\n folder = workspace.substring(i + 1);\r\n }\r\n }\r\n \r\n let url = Url.stringify(this,folder,null);\r\n if (asReplace){\r\n window.history.replaceState(null,null,url);\r\n }\r\n else {\r\n window.history.pushState(null,null,url);\r\n }\r\n }\r\n\r\n openWorkspace(workspace:string,options?:{page?:IPageLaunchParams}){\r\n this.workspaceKey++;\r\n options = options || {};\r\n this.setWorkspaceScreen(workspace,null,{pushState:true,page:options.page});\r\n this.pageNavigate.refresh();\r\n }\r\n\r\n isWorkspaceContent(link:string):boolean{\r\n if (this.currentWorkspaceLink && this.currentWorkspaceLink == link){\r\n return true;\r\n }\r\n }\r\n\r\n executeCanvasPollCycle(){\r\n for(let key in this.activeScreens){\r\n let canvas = this.activeScreens[key].canvas;\r\n if (canvas.autoRefreshSettings){\r\n canvas.autoRefreshSettings.refreshIfStale();\r\n }\r\n }\r\n }\r\n\r\n pollingTimer:any;\r\n\r\n startPolling(){\r\n let frequency = 10 * 1000; // 10 seconds\r\n this.pollingTimer = setInterval(()=> {\r\n Application.instance.executeCanvasPollCycle()\r\n },frequency);\r\n Application.instance.executeCanvasPollCycle();\r\n }\r\n\r\n stopPolling(){\r\n clearInterval(this.pollingTimer);\r\n this.pollingTimer = null;\r\n }\r\n\r\n openStudio(page:IPageLaunchParams){\r\n this.studioContent = page;\r\n this.studioContentKey++;\r\n this.studioOpen = true;\r\n this.studioBroadcast.refresh();\r\n }\r\n\r\n closeStudio(){\r\n this.studioOpen = false;\r\n this.studioBroadcast.refresh();\r\n }\r\n \r\n}\r\n\r\nApplication.instance = new Application();\r\n\r\n","\r\nimport { ActionEvent } from './ActionEvent';\r\nimport { IComponentDefinition } from './ComponentDefinition';\r\n\r\nexport const COMMENT = \"Comment\";\r\nexport const KIND = {\r\n IF:\"If\",\r\n ELSE_IF:\"ElseIf\",\r\n ELSE:\"Else\",\r\n COMMENT:\"Comment\",\r\n PASS:\"Pass\",\r\n RETURN:\"Return\",\r\n PARAM_CONTENT:\"ParamContent\"\r\n}\r\nexport interface ISidebarFrame {\r\n name:string;\r\n label:string;\r\n content?:any;\r\n}\r\nexport class SidebarState {\r\n frames:ISidebarFrame[];\r\n activeFrame:string;\r\n isOpen:boolean;\r\n}\r\n\r\n\r\nexport class NavbarState {\r\n isCollapsed:boolean;\r\n}\r\n\r\nexport interface IActionResult {\r\n continue:boolean;\r\n error?:string;\r\n}\r\n\r\nexport interface IAsLookupFor {\r\n page:string;\r\n field:string;\r\n}\r\n\r\nexport interface IEventOptions {\r\n current?:any,\r\n value?:any,\r\n returnValue?:any,\r\n table?:any[],\r\n scope?:any;\r\n showStackContent?:(content:any) => void;\r\n actionName?:string;\r\n title?:string;\r\n noUpdate?:boolean;\r\n isRecordChanged?:boolean;\r\n isBrowseMove?:boolean;\r\n triggerSearch?:boolean;\r\n targetPos?:{x:number,y:number};\r\n isCachedVersionRefresh?:boolean;\r\n }\r\n\r\n export interface IFilterValue {\r\n $type:\"filter\",\r\n value?:any;\r\n compare?:string;\r\n toValue?:any\r\n bucket?:string;\r\n }\r\n\r\n export type RecordChangedAction = \"created\" | \"updated\" | \"deleted\";\r\n\r\n export interface IRecordChangedEvent {\r\n action:RecordChangedAction;\r\n rowKey:string;\r\n table:string;\r\n }\r\n \r\n export type RecordChangedHandler = (recordEvent:IRecordChangedEvent) => Promise;\r\n\r\n\r\n\r\nexport function makeComponent(c:T,def?:IComponentDefinition):T {\r\n let comp = c as any;\r\n comp.$def = def;\r\n return c;\r\n}\r\n\r\nexport type ActionHandler = (event?:ActionEvent)=> Promise;\r\n\r\n\r\nexport type FieldType = 'character' | 'logical' | 'date' | 'datetime' | 'time'\r\n| 'integer' | 'money' | 'decimal' \r\n| 'longchar' | 'uid' | 'record' | 'collection' | 'action';\r\n\r\n\r\nexport interface IEventScope {\r\n enterKeyAction?:string;\r\n}\r\n\r\nexport type FilterOp = \"=\" | \">\" | \">=\" | \"<\" | \"<=\" | \"begins\" | \"contains\" | \"between\" | \"ends\" | \"<>\" | 'or' | 'and' | 'is empty' | 'is not empty';\r\n\r\nexport type FieldErrorType = 'VALIDATION' | 'NOTFOUND' | 'ERROR' | 'FATAL' | 'INFORMATION' | 'WARNING' | 'NO-DIALOG';\r\n\r\nexport type ICodeError = {\r\n id:string,\r\n message:string\r\n}\r\nexport interface ICanvasError {\r\n showDialog?:boolean;\r\n messages:string[];\r\n sourceCode?:any;\r\n codeErrors?:ICodeError[];\r\n validationErrors?:IValidationError[];\r\n $$error:true\r\n name?:string;\r\n render?:any;\r\n}\r\n\r\nexport interface IValidationError {\r\n field?:string;\r\n type?:FieldErrorType;\r\n message?:string;\r\n label?:string;\r\n noDialog?:boolean;\r\n}\r\n\r\n\r\n\r\nexport interface IActionDefinition {\r\n label?:string;\r\n help?:string;\r\n icon?:string;\r\n styles?:string;\r\n type?:string;\r\n statements?:any[];\r\n disableIf?:string;\r\n}\r\n\r\nexport interface IPageLaunchParams {\r\n name:string;\r\n layout?:string;\r\n view?:string;\r\n props?:any;\r\n asLookupFor?:IAsLookupFor;\r\n draft_id?:string;\r\n designer_sections?:string;\r\n}\r\n\r\nexport interface IStyleIcon {name?:string,className?:string};\r\n\r\nexport type ComponentStyles = {style?:any,className?:string,format?:string,icon?:IStyleIcon};\r\n\r\nexport function getActionName(action:ActionHandler | string):string{\r\n if (typeof action == \"string\"){\r\n return action;\r\n }\r\n if (action) return (action as any).$name;\r\n}\r\n\r\n\r\nexport function getTargetName(target:string | ActionHandler):string{\r\n if (typeof target == \"string\") return target;\r\n if (target) return (target as any).$name;\r\n}\r\n\r\nexport interface ISigninSettings {\r\n supportLinkLabel?:string;\r\n supportLinkHref?:string;\r\n usernameLabel?:string;\r\n submitLabel?:string;\r\n registerLabel?:string;\r\n forgotPasswordLabel?:string;\r\n passwordResetInstruction?:string;\r\n resetSentMessage?:string;\r\n logoFile?:string;\r\n logoSize?:string;\r\n redirect?:string;\r\n}\r\n\r\nexport interface IStudioSettings {\r\n enabled:boolean;\r\n launchUrl:string;\r\n repo:string;\r\n}\r\n\r\nexport interface IVisibilityContainer {\r\n hidden:boolean;\r\n}\r\n\r\n","export class ClickThrottle {\r\n lastClick:number = 0;\r\n lastCurrentTarget:any;\r\n delay:number = 1000;\r\n\r\n handle(e:React.MouseEvent,id:string,handler:()=> any){\r\n let current = Date.now();\r\n let lastClick = this.lastClick;\r\n let lastCurrentTarget = this.lastCurrentTarget;\r\n\r\n this.lastClick = current;\r\n this.lastCurrentTarget = e.currentTarget;\r\n\r\n if (lastCurrentTarget == e.currentTarget && id == id && lastClick && ((current - lastClick) < this.delay)){\r\n e.preventDefault();\r\n e.stopPropagation();\r\n console.log(\"Click ignored\");\r\n return;\r\n }\r\n handler();\r\n }\r\n}","import { Broadcast, Canvas, FieldType, RecordMeta } from \".\";\r\nimport { IRecordSchema, Schema } from \"./Schema\";\r\n\r\n\r\n export interface ICollectionSortField {\r\n name: string;\r\n descending?: boolean;\r\n}\r\n\r\nexport interface ICollectionGroup {\r\n name:string;\r\n label?:string;\r\n display?:string;\r\n headerContent?:any;\r\n footerContent?:any;\r\n sort:ICollectionSortField[];\r\n onClick?:string;\r\n}\r\n\r\n export type CollectionArray = any[] & {$$meta?:ICollectionMeta};\r\n\r\n\r\n export interface ICollectionMeta {\r\n version:number;\r\n schema:IRecordSchema;\r\n chart?:any;\r\n tableLayout?:any;\r\n isCollection:true;\r\n totals?:any;\r\n currentPage?:number;\r\n numPages?:number;\r\n broadcast?:Broadcast;\r\n pageSize?:number;\r\n sort?:ICollectionSortField[];\r\n }\r\n\r\n export class Collection {\r\n\r\n \r\n public static incrementVersion(rows:CollectionArray){\r\n if (rows){\r\n if (rows.$$meta){\r\n rows.$$meta.version++;\r\n }\r\n else {\r\n rows.$$meta = {version:Date.now(),schema:null,isCollection:true};\r\n }\r\n }\r\n }\r\n\r\n public static getVersion(rows:CollectionArray):number{\r\n if (rows && rows.$$meta){\r\n return rows.$$meta.version;\r\n }\r\n }\r\n\r\n public static getSchema(rows:CollectionArray):IRecordSchema{\r\n if (rows && rows.$$meta){\r\n return rows.$$meta.schema;\r\n }\r\n }\r\n\r\n public static replace(current:CollectionArray,newArray:CollectionArray,schema:IRecordSchema):CollectionArray{\r\n if (current && current.$$meta){\r\n newArray.$$meta = current.$$meta;\r\n Collection.incrementVersion(newArray);\r\n }\r\n else {\r\n newArray.$$meta = {version:Date.now(),schema,isCollection:true};\r\n }\r\n return newArray;\r\n }\r\n\r\n static setMetaProps(rows:CollectionArray,values:any){\r\n if (rows){\r\n if (!rows.$$meta){\r\n rows.$$meta = {schema:null,version:null,isCollection:true};\r\n }\r\n Object.assign(rows.$$meta,values);\r\n }\r\n }\r\n static sort(table:any[],schema:IRecordSchema,sortBy:ICollectionSortField[]){\r\n \r\n let instance = new CollectionSorter(table,schema,sortBy);\r\n instance.executeSort();\r\n }\r\n\r\n static isRowSelected(row:any):boolean {\r\n if (row && row.is_selected) return true;\r\n return false;\r\n }\r\n\r\n static getRowKey(row:any,schema:IRecordSchema):any {\r\n if (schema && schema.keyField){\r\n return row[schema.keyField]\r\n }\r\n return null;\r\n }\r\n static setRowSelected(row:any,value:boolean){\r\n if (row){\r\n row.is_selected = value;\r\n }\r\n }\r\n\r\n static setCurrentRow(canvas:Canvas,collectionName:string,row:any){\r\n canvas.data[collectionName + \"$current\"] = row;\r\n }\r\n\r\n static getCurrentRow(canvas:Canvas,collectionName:string):any{\r\n return canvas.data[collectionName + \"$current\"];\r\n }\r\n static getRow(canvas:Canvas,collectionName:string,index:number):any {\r\n let col = canvas.data[collectionName.substring(1)];\r\n if (!col) return null;\r\n return col[index];\r\n }\r\n \r\n static findRowByKey(canvas:Canvas,collectionName:string,rowKey:any){\r\n let rows = canvas.data[collectionName.substring(1)];\r\n if (!rows) return null;\r\n let schema = Collection.getSchema(rows);\r\n if (schema && schema.keyField){\r\n let keyField = schema.keyField;\r\n for(let i =0 ; i < rows.length;i++){\r\n let row = rows[i];\r\n if (row[keyField]== rowKey) return row;\r\n }\r\n }\r\n return null\r\n }\r\n\r\n static bindSchema(schema:IRecordSchema,rows:any[],readonly:boolean){\r\n if (!rows) return;\r\n for(let i =0 ; i < rows.length; i++){\r\n let row = rows[i];\r\n if (row){\r\n let meta:RecordMeta = row.$$meta;\r\n if (meta){\r\n meta.schema = schema;\r\n meta.readonly = readonly\r\n meta.index = i;\r\n }\r\n else {\r\n meta = new RecordMeta();\r\n meta.schema = schema;\r\n meta.readonly = readonly;\r\n meta.index = i;\r\n row.$$meta = meta;\r\n }\r\n }\r\n }\r\n } \r\n\r\n }\r\n export class CollectionSorter {\r\n\r\n collection:any[];\r\n schema:IRecordSchema;\r\n sortBy:ICollectionSortField[];\r\n\r\n \r\n constructor(collection:any[],schema:IRecordSchema,sortBy:ICollectionSortField[]){\r\n this.collection = collection;\r\n this.schema = schema;\r\n this.sortBy = sortBy;\r\n }\r\n\r\n executeSort(){\r\n \r\n let comparers = this.buildComparers(this.schema,this.sortBy);\r\n let comparerCount = comparers.length;\r\n\r\n let compareRow = (rowA:any,rowB:any):number => {\r\n for (let i = 0; i < comparerCount;i++){\r\n let v = comparers[i].compare(rowA,rowB);\r\n if (v) return v;\r\n }\r\n return 0;\r\n }\r\n this.collection.sort(compareRow);\r\n }\r\n\r\n\r\n buildComparers(schema:IRecordSchema,sortBy:ICollectionSortField[]):IComparer[]{\r\n let comparers:IComparer[] = [];\r\n for(let i = 0; i < sortBy.length;i++){\r\n let sortItem = sortBy[i];\r\n let field = Schema.getFieldDef(schema,sortItem.name);\r\n if (field){\r\n if (field.sortExpr){\r\n for(let j = 0; j < field.sortExpr.length;j++){\r\n let expr = field.sortExpr[j];\r\n let descending = expr.descending;\r\n if (sortItem.descending){\r\n descending = !descending;\r\n }\r\n comparers.push(this.buildComparer(expr.type,expr.name,descending));\r\n }\r\n }\r\n else {\r\n comparers.push(this.buildComparer(field.type,field.name,sortItem.descending));\r\n }\r\n }\r\n }\r\n return comparers;\r\n }\r\n buildComparer(fieldType:FieldType,fieldName:string,descending:boolean):IComparer {\r\n if (fieldType == \"logical\"){\r\n return new BooleanComparer(fieldName,descending);\r\n }\r\n else if (fieldType == \"decimal\" || fieldType == \"integer\" || fieldType == \"money\"){\r\n return new NumberComparer(fieldName,descending);\r\n }\r\n return new StringComparer(fieldName,descending);\r\n \r\n }\r\n\r\n}\r\n\r\ninterface IComparer {\r\n compare(rowA:any,rowB:any):number;\r\n}\r\n\r\nclass StringComparer implements IComparer {\r\n public field:string;\r\n public descending:boolean;\r\n\r\n constructor(field:string,descending:boolean){\r\n this.field = field;\r\n this.descending = descending;\r\n }\r\n\r\n compare(rowA:any,rowB:any):number {\r\n let a:string;\r\n let b:string;\r\n if (this.descending){\r\n b = rowA[this.field];\r\n a = rowB[this.field];\r\n }\r\n else {\r\n a = rowA[this.field]\r\n b = rowB[this.field];\r\n }\r\n if (!a){\r\n if (!b) return 0;\r\n return -1\r\n }\r\n if (!b){\r\n return 1;\r\n }\r\n if (a.toLowerCase){\r\n a = a.toLowerCase();\r\n }\r\n if (b.toLowerCase){\r\n b = b.toLowerCase();\r\n }\r\n \r\n if (a > b) { return 1 }\r\n else if (a < b) { return -1 };\r\n return 0;\r\n \r\n }\r\n}\r\n\r\nclass NumberComparer implements IComparer {\r\n public field:string;\r\n public descending:boolean;\r\n\r\n constructor(field:string,descending:boolean){\r\n this.field = field;\r\n this.descending = descending;\r\n }\r\n\r\n\r\n compare(rowA:any,rowB:any):number {\r\n let a:number;\r\n let b:number;\r\n if (this.descending){\r\n b = rowA[this.field] || 0;\r\n a = rowB[this.field] || 0;\r\n }\r\n else {\r\n a = rowA[this.field] || 0;\r\n b = rowB[this.field] || 0;\r\n }\r\n \r\n if (a > b) { return 1 }\r\n else if (a < b) { return -1 };\r\n return 0;\r\n \r\n }\r\n}\r\n\r\nclass BooleanComparer implements IComparer {\r\n public field:string;\r\n public descending:boolean;\r\n\r\n constructor(field:string,descending:boolean){\r\n this.field = field;\r\n this.descending = descending;\r\n }\r\n\r\n\r\n compare(rowA:any,rowB:any):number {\r\n let a:boolean;\r\n let b:boolean;\r\n if (this.descending){\r\n b = rowA[this.field];\r\n a = rowB[this.field];\r\n }\r\n else {\r\n a = rowA[this.field];\r\n b = rowB[this.field];\r\n }\r\n \r\n if (a == b) return 0;\r\n if (a){\r\n return 1;\r\n }\r\n else {\r\n return -1;\r\n }\r\n \r\n }\r\n}\r\n\r\n","import { FieldType } from \"core\";\r\nimport { ActionRef } from \"core/ActionRef\";\r\nimport { CollectionRef } from \"core/CollectionRef\";\r\nimport { FieldFormatter } from \"core/FieldFormatter\";\r\nimport { FieldRef } from \"core/FieldRef\";\r\nimport { Collection, CollectionArray } from \"../Collection\";\r\nimport { IEvalContext } from \"./types\";\r\n\r\nexport class ExpressionOps{\r\n\r\n public static add(left,right){\r\n if (left === null || left === undefined){\r\n if (right === null || right === undefined) {\r\n return null;\r\n }\r\n return right;\r\n }\r\n if (right == null || right === undefined){\r\n return left;\r\n }\r\n return left + right;\r\n }\r\n\r\n public static sub(left,right){\r\n return left - right;\r\n }\r\n\r\n public static mult(left,right){\r\n return left * right;\r\n }\r\n\r\n public static div(left,right){\r\n try {\r\n return left / right;\r\n }\r\n catch {\r\n return 0;\r\n }\r\n }\r\n\r\n public static idiv(left,right){\r\n try {\r\n return left / right;\r\n }\r\n catch {\r\n return 0;\r\n }\r\n }\r\n\r\n public static exp(left,right){\r\n return left ^ right;\r\n }\r\n\r\n public static mod(left,right){\r\n return left % right;\r\n }\r\n\r\n public static con(left,right){\r\n if (left === null || left === undefined){\r\n if (right === null || right === undefined) {\r\n return null;\r\n }\r\n return right;\r\n }\r\n if (right == null || right === undefined){\r\n return left;\r\n }\r\n return left + right;\r\n }\r\n\r\n public static isempty(value){\r\n if (!value) return true;\r\n if (Array.isArray(value) && !value.length) return true;\r\n return false;\r\n }\r\n\r\n public static isnull(value){\r\n return value === undefined || value === null;\r\n }\r\n\r\n public static contains(left,right){\r\n let s = ExpressionOps.stringsForCompare(left,right);\r\n if (s){\r\n return (s.left.toUpperCase().indexOf(s.right.toUpperCase()) != -1);\r\n }\r\n return false;\r\n }\r\n public static begins(left,right){\r\n let s = ExpressionOps.stringsForCompare(left,right);\r\n if (s){\r\n return s.left.toUpperCase().startsWith(s.right.toUpperCase());\r\n }\r\n return false;\r\n }\r\n\r\n public static ends(left,right){\r\n let s = ExpressionOps.stringsForCompare(left,right);\r\n if (s){\r\n return s.left.toUpperCase().endsWith(s.right.toUpperCase());\r\n }\r\n return false;\r\n }\r\n\r\n public static between(left,right1,right2){\r\n let s = ExpressionOps.stringsForCompare(left,right1);\r\n if (s){\r\n if (s.left < s.right) return false;\r\n }\r\n else if(left < right1) return false;\r\n\r\n s = ExpressionOps.stringsForCompare(left,right2);\r\n if (s){\r\n return (s.left <= s.right);\r\n }\r\n return left < right2;\r\n }\r\n\r\n public static eq(left,right){\r\n var s = ExpressionOps.stringsForCompare(left,right);\r\n if (s){\r\n return s.left.toUpperCase() == s.right.toUpperCase();\r\n }\r\n return left == right;\r\n }\r\n\r\n private static stringsForCompare(left:any,right:any):{left:string,right:string}{\r\n if (typeof(left) === \"string\"){\r\n if (right === null || right === undefined){\r\n return {left,right:\"\"};\r\n }\r\n return {left,right:right.toString()}\r\n }\r\n if (typeof(right) === \"string\"){\r\n if (left === null || left === undefined){\r\n return {left:\"\",right};\r\n }\r\n return {left,right}\r\n }\r\n return null;\r\n }\r\n\r\n public static neq(left,right){\r\n var s = ExpressionOps.stringsForCompare(left,right);\r\n if (s){\r\n return s.left.toUpperCase() != s.right.toUpperCase();\r\n }\r\n return left != right;\r\n }\r\n\r\n public static gt(left,right){\r\n var s = ExpressionOps.stringsForCompare(left,right);\r\n if (s){\r\n return s.left.toUpperCase() > s.right.toUpperCase();\r\n }\r\n return left > right;\r\n }\r\n\r\n public static gte(left,right){\r\n var s = ExpressionOps.stringsForCompare(left,right);\r\n if (s){\r\n return s.left.toUpperCase() >= s.right.toUpperCase();\r\n }\r\n return left >= right;\r\n }\r\n\r\n public static lt(left,right){\r\n var s = ExpressionOps.stringsForCompare(left,right);\r\n if (s){\r\n return s.left.toUpperCase() < s.right.toUpperCase();\r\n }\r\n return left < right;\r\n }\r\n\r\n public static lte(left,right){\r\n var s = ExpressionOps.stringsForCompare(left,right);\r\n if (s){\r\n return s.left.toUpperCase() <= s.right.toUpperCase();\r\n }\r\n return left <= right;\r\n }\r\n\r\n public static and(left,right){\r\n return left && right;\r\n }\r\n\r\n public static or(left,right){\r\n return left || right;\r\n }\r\n\r\n public static xor(left,right){\r\n return false;\r\n }\r\n\r\n public static neg(value){\r\n return -(value);\r\n }\r\n\r\n public static not(value){\r\n return !value;\r\n }\r\n\r\n public static istrue(value):boolean {\r\n if(value && value !== 0){\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public static isfalse(value):boolean {\r\n return !this.istrue(value);\r\n }\r\n\r\n public static get(context:IEvalContext,name:string){\r\n let canvas = context.canvas;\r\n if (context.scope){\r\n let value = context.scope[name];\r\n if (value !== undefined) return value;\r\n }\r\n return canvas.data[name.substring(1)];\r\n }\r\n\r\n public static current(context:IEvalContext,name:string){\r\n if (context.scope){\r\n let value = context.scope[name];\r\n if (value !== undefined) return value;\r\n }\r\n return Collection.getCurrentRow(context.canvas,name);\r\n }\r\n\r\n public static FMT(value:any,type:FieldType,format:string){\r\n return FieldFormatter.format(value,type,format);\r\n }\r\n \r\n public static totals(context:IEvalContext,name:string){\r\n if (context.scope){\r\n let value = context.scope[name];\r\n if (value !== undefined) return value;\r\n }\r\n let rows:CollectionArray = context.canvas.data[name.substring(1)];\r\n if (rows && rows.$$meta){\r\n return rows.$$meta.totals;\r\n }\r\n }\r\n\r\n public static row(context:IEvalContext,name:string,index:number){\r\n return Collection.getRow(context.canvas,name,index);\r\n }\r\n\r\n \r\n\r\n public static loc(context:IEvalContext,name:string){\r\n let canvas = context.canvas;\r\n if (context.scope){\r\n let value = context.scope[name];\r\n if (value !== undefined) return value;\r\n }\r\n return canvas.data[name.substring(1)];\r\n }\r\n \r\n \r\n public static prop(target,name:string){\r\n if (!target) return null;\r\n\r\n // if target is collection then use target.current as target\r\n if (target.$$get){\r\n return target.$$get(name);\r\n }\r\n if (name[0] == '@'){\r\n return target[name.substring(1)];\r\n }\r\n else {\r\n return target[name];\r\n }\r\n }\r\n\r\n public static field(context:IEvalContext,name:string):FieldRef{\r\n return context.canvas.getFieldRef(name,context.scope);\r\n }\r\n\r\n public static collection(context:IEvalContext,name:string):CollectionRef{\r\n return context.canvas.getCollectionRef(name,context.scope);\r\n }\r\n\r\n public static action(context:IEvalContext,name:string):ActionRef{\r\n let actionRef = new ActionRef(context.canvas,name,context.scope);\r\n // actionRef.def = context.canvas.actions[name];\r\n return actionRef;\r\n }\r\n \r\n \r\n public static ind(target,value){\r\n if (!target) return null;\r\n \r\n if (target.$$isTable){\r\n return target[value];\r\n }\r\n if (target.$$get){\r\n return target.$$get(value);\r\n }\r\n else {\r\n return target[value];\r\n }\r\n }\r\n\r\n public static sdf(name:string,args:any[]){\r\n let f = ExpressionOps[name];\r\n if (!f) throw \"Invalid function: \" + name;\r\n return f.apply(this,args);\r\n }\r\n\r\n public static th(context:IEvalContext){\r\n return context.canvas.data;\r\n }\r\n\r\n public static EVENT_VALUE(context:IEvalContext){\r\n return context.eventValue;\r\n }\r\n\r\n public static RETURN_VALUE(context:IEvalContext){\r\n return context.returnValue;\r\n }\r\n \r\n public static SCOPE_SELECTED(context:IEvalContext,name:string){\r\n var collection:any[] = context.canvas.data[name.substring(1)];\r\n if (!collection) return null;\r\n let selected = [];\r\n for(let i = 0; i < collection.length;i++){\r\n let row = collection[i];\r\n if (Collection.isRowSelected(row)){\r\n selected.push(row);\r\n }\r\n }\r\n return selected;\r\n }\r\n\r\n public static SCOPE_EVERY(context:IEvalContext,name:string){\r\n var collection = context.canvas.data[name.substring(1)];\r\n return collection;\r\n }\r\n\r\n public static ALL_ROWS(context:IEvalContext,name:string,projection:string){\r\n let collection:CollectionArray = context.canvas.data[name.substring(1)];\r\n if (!collection) return null;\r\n\r\n let projectionFields = projection.split(',');\r\n return ExpressionOps.SerializeRows(collection,projectionFields,row => true);\r\n }\r\n\r\n public static SELECTED_ROWS(context:IEvalContext,name:string,projection:string){\r\n let collection:CollectionArray = context.canvas.data[name.substring(1)];\r\n if (!collection) return null;\r\n\r\n let projectionFields = projection.split(',');\r\n return ExpressionOps.SerializeRows(collection,projectionFields,row => Collection.isRowSelected(row));\r\n }\r\n\r\n private static SerializeRows(collection:CollectionArray,projection:string[],include:(row:any) => boolean){\r\n var output = [];\r\n for(let i = 0; i < collection.length;i++){\r\n let row = collection[i];\r\n if (include(row)){\r\n let outRec = {};\r\n for(let j = 0;j < projection.length;j++){\r\n let key = projection[j];\r\n outRec[key] = row[key];\r\n }\r\n output.push(outRec);\r\n }\r\n }\r\n return output;\r\n }\r\n\r\n public static SCOPE_CURRENT(context:IEvalContext,name:string){\r\n let current = this.current(context,name);\r\n if (current){\r\n return current;\r\n }\r\n }\r\n\r\n public static RECORD_JSON(context:IEvalContext,name:string){\r\n let record = this.get(context,name);\r\n if (record){\r\n return record;\r\n }\r\n }\r\n\r\n public static MAKE_IMAGE_URL(name:string,prefix:string){\r\n if (!name || !name.startsWith) return null;\r\n\r\n if (name[0] == \"/\" || name.startsWith(\"http:\") || name.startsWith(\"https:\")){\r\n return name;\r\n }\r\n return prefix + name;\r\n }\r\n\r\n public static CONCAT():string{\r\n var s = \"\";\r\n for(let i = 0 ; i < arguments.length;i++){\r\n let arg = arguments[i];\r\n if (arg){\r\n s += arg;\r\n }\r\n }\r\n return s;\r\n }\r\n\r\n\r\n public static CONCAT_WS():string{\r\n var s = \"\";\r\n var sep = arguments[0];\r\n for(let i = 1 ; i < arguments.length;i++){\r\n let arg = arguments[i];\r\n if (arg){\r\n if (s) {\r\n s += sep;\r\n }\r\n s += arg;\r\n }\r\n }\r\n return s;\r\n }\r\n \r\n public static STYLE_LIST():string {\r\n var s = \"\";\r\n var sep = ';';\r\n for(let i = 0 ; i < arguments.length;i++){\r\n let arg = arguments[i];\r\n if (arg){\r\n if (s) {\r\n s += sep;\r\n }\r\n s += arg;\r\n }\r\n }\r\n return s;\r\n }\r\n\r\n public static INITIALS(first:string,last:string){\r\n let initials:string = \"\";\r\n if (first && first.substring){\r\n initials = first.substring(0,1);\r\n }\r\n if (last && last.substring){\r\n initials += last.substring(0,1);\r\n }\r\n return initials;\r\n }\r\n \r\n public static IIF(test:boolean,trueValue:any,falseValue:any){\r\n return test ? trueValue : falseValue;\r\n }\r\n\r\n public static IF(test:boolean,trueValue:any,falseValue:any){\r\n return test ? trueValue : falseValue;\r\n }\r\n \r\n public static SUM(context:IEvalContext,name:string):string{\r\n let i = name.indexOf('.');\r\n let record = name.substring(0,i);\r\n let totalName = \"sum:\" + name.substring(i+1);\r\n let totals = this.get(context,record + \"$totals\");\r\n if (totals){\r\n let total = totals[totalName];\r\n if (total){\r\n return total.value;\r\n }\r\n return null;\r\n }\r\n let rows:CollectionArray = context.canvas.getRecord(record,null);\r\n if (rows && rows.$$meta && rows.$$meta.totals){\r\n return rows.$$meta.totals[totalName];\r\n }\r\n return null;\r\n }\r\n\r\n public static getTotal(context:IEvalContext,record:string,name:string):string{\r\n let totals = this.get(context,record + \"$totals\");\r\n if (totals){\r\n let total = totals[name];\r\n if (total){\r\n return total.value;\r\n }\r\n return null;\r\n }\r\n let rows:CollectionArray = context.canvas.getRecord(record,null);\r\n if (rows && rows.$$meta && rows.$$meta.totals){\r\n return rows.$$meta.totals[name];\r\n }\r\n return null;\r\n }\r\n\r\n public static COMPUTE_SUM(context:IEvalContext,name:string):any {\r\n let parsed = ExpressionOps.parseVariable(name);\r\n if (!parsed || !parsed.target) return undefined;\r\n\r\n let collection = context.canvas.getRecord(parsed.target,{}) as CollectionArray;\r\n if (!Array.isArray(collection)) return undefined;\r\n let total:number =0;\r\n let propName = parsed.name;\r\n let onlySelected = (parsed.modifier == \"selected\");\r\n for(let i = 0; i < collection.length;i++){\r\n let row = collection[i];\r\n if (!onlySelected || Collection.isRowSelected(row)){\r\n let value = row[propName];\r\n if (Number.isFinite(value)){\r\n total += value;\r\n }\r\n }\r\n }\r\n return total;\r\n }\r\n\r\n public static COMPUTE_COUNT(context:IEvalContext,name:string):any {\r\n \r\n let parsed = ExpressionOps.parseVariable(name);\r\n let collection = context.canvas.getRecord(parsed.name,{}) as CollectionArray;\r\n if (!Array.isArray(collection)) return undefined;\r\n let count:number = 0;\r\n let onlySelected = parsed.modifier == \"selected\";\r\n for(let i = 0; i < collection.length;i++){\r\n let row = collection[i];\r\n if (!onlySelected || Collection.isRowSelected(row)){\r\n count++;\r\n }\r\n }\r\n return count;\r\n\r\n }\r\n\r\n public static STRING_AGG(context:IEvalContext,name:string,separator:string):any {\r\n let parsed = ExpressionOps.parseVariable(name);\r\n if (!parsed || !parsed.target) return undefined;\r\n \r\n if (parsed.modifier == \"every\" || parsed.modifier == \"selected\"){\r\n let selected = parsed.modifier == \"selected\";\r\n let collection = context.canvas.getRecord(parsed.target,{}) as CollectionArray;\r\n if (!Array.isArray(collection)) return undefined;\r\n let values:string[] = [];\r\n let propName = parsed.name;\r\n for(let i = 0; i < collection.length;i++){\r\n let row = collection[i];\r\n if (!selected || Collection.isRowSelected(row)){\r\n let value = row[propName];\r\n if (value){\r\n values.push(value.toString())\r\n }\r\n }\r\n }\r\n return values.join(separator);\r\n }\r\n let record = ExpressionOps.get(context,parsed.target);\r\n if (record){\r\n return ExpressionOps.prop(record,parsed.name);\r\n }\r\n return undefined;\r\n }\r\n\r\n \r\n public static COUNT(context:IEvalContext,name:string):string{\r\n let i = name.indexOf('.');\r\n let record:string;\r\n let totalName:string;\r\n if (i == -1){\r\n record = name;\r\n totalName = \"rowCount\";\r\n }\r\n else {\r\n record = name.substring(0,i);\r\n totalName = \"count:\" + name.substring(i + 1);\r\n }\r\n \r\n let totals = this.get(context,record + \"$totals\");\r\n if (totals){\r\n let total = totals[totalName];\r\n if (total){\r\n return total.value;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n public static IS_ACTIVE_RECORD(context:IEvalContext,name:string):boolean {\r\n let collection = context.canvas.getCollectionRef(name,null);\r\n let record = context.canvas.getRecord(name,context.scope);\r\n return (collection && collection.currentRow && collection.currentRow == record);\r\n }\r\n\r\n public static ROW_COUNT(context:IEvalContext,name:string):number {\r\n let collection = context.canvas.getCollectionRef(name,null);\r\n if (collection.rows) return collection.rows.length;\r\n return 0;\r\n }\r\n\r\n public static HAS_SELECTED_ROWS(context:IEvalContext,name:string):boolean {\r\n let collection = context.canvas.getCollectionRef(name,null);\r\n if (collection && collection.rows){\r\n let rows = collection.rows;\r\n for(let i =0 ; i < rows.length;i++){\r\n let row = rows[i];\r\n if (Collection.isRowSelected(row)) return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n private static parseVariable(value:string):{name:string,target?:string,modifier?:string}{\r\n if (!value) return null;\r\n let i = value.indexOf('.');\r\n let target:string;\r\n let name:string;\r\n let modifier:string;\r\n if (i != -1){\r\n target = value.substring(0,i);\r\n name = value.substring(i + 1);\r\n }\r\n else {\r\n name = value;\r\n }\r\n i = name.indexOf(\":\");\r\n if (i != -1){\r\n modifier = name.substring(i + 1).toLowerCase();\r\n name = name.substring(0,i);\r\n }\r\n return {name,target,modifier};\r\n }\r\n\r\n}","import { IExpressionToken, KeywordSet, SystemFunctionSet } from \"./types\";\r\n\r\nexport class Lexer {\r\n tokens: IExpressionToken[];\r\n source: string;\r\n length: number;\r\n index: number;\r\n lastToken: IExpressionToken;\r\n keywords:KeywordSet;\r\n systemFunctions:SystemFunctionSet;\r\n error:string;\r\n\r\n public static getExpression(source: string,keywords:KeywordSet,systemFunctions:SystemFunctionSet) {\r\n var lexer = new Lexer();\r\n lexer.keywords = keywords;\r\n lexer.systemFunctions = systemFunctions;\r\n var tokens = lexer.lexExpression(source);\r\n if (lexer.error){\r\n throw lexer.error;\r\n }\r\n return tokens;\r\n }\r\n\r\n private isKeyword(id): boolean {\r\n let keyword = this.keywords[id];\r\n if (keyword) return true;\r\n return false;\r\n }\r\n\r\n private isDataType(id):boolean {\r\n let keyword = this.keywords[id];\r\n if (keyword && keyword.type == \"datatype\") return true;\r\n return false;\r\n }\r\n\r\n private isSystemFunction(id):boolean {\r\n let f = this.systemFunctions[id];\r\n if (f) return true;\r\n return false;\r\n }\r\n\r\n private isSystemVariable(id):boolean {\r\n let f = this.systemFunctions[id];\r\n if (f && f.asVariable) return true;\r\n return false;\r\n }\r\n\r\n lexExpression(expression: string): IExpressionToken[] {\r\n if (!expression) return null;\r\n this.tokens = [];\r\n this.source = expression;\r\n this.index = 0;\r\n this.length = expression.length;\r\n this.scanCode();\r\n return this.tokens;\r\n }\r\n\r\n private scanCode() {\r\n var source = this.source;\r\n var depth = 0;\r\n var text = null;\r\n var format: string;\r\n\r\n while (this.index < this.length) {\r\n var ch = source.charAt(this.index++);\r\n if (this.isWhiteSpace(ch)) {\r\n // ignore\r\n } else if (ch == \"|\") {\r\n let peek = source.charAt(this.index);\r\n format = this.scanFormat();\r\n } else if (this.isPunctuation(ch)) {\r\n if (ch == \".\") {\r\n let peek = source.charAt(this.index);\r\n if (this.isNumber(peek)) {\r\n this.scanNumber(ch);\r\n continue;\r\n }\r\n }\r\n this.push({ text: ch, type: \"punctuation\" });\r\n } else if (ch == \"'\" || ch == '\"') {\r\n this.scanLiteral(ch);\r\n } else if (Lexer.isIdentifierStart(ch)) {\r\n this.scanIdentifier(ch);\r\n } else if (this.isNumber(ch)) {\r\n this.scanNumber(ch);\r\n } else {\r\n let op = this.getOperator(ch);\r\n if (!op) {\r\n if (!this.error){\r\n this.error = \"Unexpected char:\" + ch;\r\n }\r\n this.push({ type: \"op\", text: ch });\r\n } else {\r\n this.push({ type: \"op\", text: op });\r\n }\r\n }\r\n }\r\n }\r\n\r\n private push(token: IExpressionToken) {\r\n this.tokens.push(token);\r\n this.lastToken = token;\r\n }\r\n\r\n private scanFormat(): string {\r\n var format = \"\";\r\n var source = this.source;\r\n while (this.index < this.length) {\r\n let ch = source.charAt(this.index);\r\n if (ch == \"}\") {\r\n return format.trim();\r\n }\r\n format += ch;\r\n this.index++;\r\n }\r\n this.error = \"Missing closing }\";\r\n }\r\n\r\n private scanLiteral(ch: string) {\r\n var s = \"\";\r\n var match = ch;\r\n let pendingEscape:boolean;\r\n var source = this.source;\r\n while (this.index < this.length) {\r\n ch = source.charAt(this.index++);\r\n if (pendingEscape) {\r\n s += ch;\r\n pendingEscape = false;\r\n } else if (ch == \"\\\\\") {\r\n pendingEscape = true;\r\n } else if (ch == match) {\r\n this.push({ type: \"string\", text: s });\r\n return;\r\n } else {\r\n s += ch;\r\n }\r\n }\r\n this.push({type:\"text\",text:match + s});\r\n this.error = \"Missing closing \" + match;\r\n }\r\n\r\n private scanNumber(ch: string) {\r\n var s = ch;\r\n var source = this.source;\r\n while (this.index < this.length) {\r\n ch = source.charAt(this.index);\r\n if ((ch >= \"0\" && ch <= \"9\") || ch == \".\") {\r\n s += ch;\r\n this.index++;\r\n } else {\r\n break;\r\n }\r\n }\r\n this.push({ type: \"number\", text: s });\r\n }\r\n\r\n private isWhiteSpace(ch: string): boolean {\r\n return ch == \" \" || ch == \"\\t\";\r\n }\r\n public static isIdentifierStart(ch: string): boolean {\r\n if (ch >= \"A\" && ch <= \"Z\") return true;\r\n if (ch >= \"a\" && ch <= \"z\") return true;\r\n if (ch == \"_\" || ch == \"$\" || ch == \"@\" || ch == '#') return true;\r\n return false;\r\n }\r\n \r\n private isNumber(ch: string): boolean {\r\n return ch >= \"0\" && ch <= \"9\";\r\n }\r\n\r\n\r\n public static isIdentifierChar(ch: string): boolean {\r\n return (\r\n (ch >= \"A\" && ch <= \"Z\") ||\r\n (ch >= \"a\" && ch <= \"z\") ||\r\n (ch >= \"0\" && ch <= \"9\") ||\r\n ch == \"_\" || ch == \"$\" || ch == '#'\r\n );\r\n }\r\n\r\n private isPunctuation(ch: string): boolean {\r\n return (\r\n ch == \".\" ||\r\n ch == \",\" ||\r\n ch == \"(\" ||\r\n ch == \")\" ||\r\n ch == \"[\" ||\r\n ch == \"]\" ||\r\n ch == \"|\"\r\n );\r\n }\r\n\r\n private getOperator(ch: string): string {\r\n if (\r\n ch == \"+\" ||\r\n ch == \"-\" ||\r\n ch == \"*\" ||\r\n ch == \"/\" ||\r\n ch == \"\\\\\" ||\r\n ch == \"^\" ||\r\n ch == \"=\" ||\r\n ch == \"%\" ||\r\n ch == \"&\"\r\n )\r\n return ch;\r\n\r\n if (ch == \">\") {\r\n let peek = this.source.charAt(this.index);\r\n if (peek == \"=\") {\r\n this.index++;\r\n return \">=\";\r\n }\r\n return ch;\r\n }\r\n if (ch == \"<\") {\r\n let peek = this.source.charAt(this.index);\r\n if (peek == \">\" || peek == \"=\") {\r\n this.index++;\r\n return ch + peek;\r\n }\r\n return ch;\r\n }\r\n return null;\r\n }\r\n\r\n private getKeywordOperator(keyword: string): string {\r\n var k = keyword.toUpperCase();\r\n switch (k) {\r\n case \"EQ\":\r\n case \"NE\":\r\n case \"LT\":\r\n case \"LE\":\r\n case \"GT\":\r\n case \"GE\":\r\n case \"MOD\":\r\n case \"NOT\":\r\n case \"AND\":\r\n case \"OR\":\r\n case \"XOR\":\r\n case \"BEGINS\":\r\n case \"CONTAINS\":\r\n case \"ENDS\":\r\n case \"BETWEEN\":\r\n case \"IS\":\r\n return k;\r\n }\r\n return null;\r\n }\r\n\r\n private scanIdentifier(ch: string) {\r\n var s = ch;\r\n var source = this.source;\r\n \r\n if (ch == \"@\" && this.index < this.length){\r\n let peek = source.charAt(this.index);\r\n if (peek == \"@\"){\r\n s += \"@\";\r\n this.index++;\r\n peek = source.charAt(this.index);\r\n }\r\n if (peek == \"#\"){\r\n this.index++;\r\n let isGlobalScript = (s == \"@@\");\r\n this.scanScript(isGlobalScript);\r\n return;\r\n }\r\n }\r\n \r\n while (this.index < this.length) {\r\n ch = source.charAt(this.index);\r\n if (Lexer.isIdentifierChar(ch)) {\r\n this.index++;\r\n s += ch;\r\n } else if (\r\n ch == \"-\" &&\r\n Lexer.isIdentifierChar(source.charAt(this.index + 1))\r\n ) {\r\n this.index++;\r\n s += ch;\r\n }\r\n else if (ch == \":\"){\r\n this.index++;\r\n s += ch;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n let u = s.toUpperCase();\r\n\r\n let isFunction = (this.index < this.length && ch == \"(\");\r\n if (isFunction && this.isSystemFunction(u)){\r\n this.push({ type: \"sysfunc\", text: s });\r\n return;\r\n }\r\n let op = this.getKeywordOperator(s);\r\n if (op) {\r\n this.push({ type: \"op\", text: op });\r\n return;\r\n }\r\n \r\n if (u == \"TRUE\" || u == \"FALSE\") {\r\n this.push({ type: \"boolean\", text: u });\r\n } else if ( u == \"NULL\"){\r\n this.push({type:\"null\",text:u});\r\n } else if (this.isDataType(u)) {\r\n this.push({ type: \"datatype\", text: s });\r\n } else if (this.isKeyword(u)) {\r\n this.push({ type: \"keyword\", text: s });\r\n } else if (this.isSystemVariable(u)){\r\n this.push({ type: \"sysfunc\", text: s });\r\n }\r\n else {\r\n this.push({ type: \"identifier\", text: s });\r\n }\r\n }\r\n\r\n\r\n private scanScript(isGlobal:boolean) {\r\n let s = (isGlobal) ? \"@@#\" : \"@#\";\r\n let source = this.source;\r\n let ch;\r\n\r\n while (this.index < this.length) {\r\n ch = source.charAt(this.index);\r\n if (Lexer.isIdentifierChar(ch) || ch == '.') {\r\n this.index++;\r\n s += ch;\r\n } else if (\r\n ch == \"-\" &&\r\n Lexer.isIdentifierChar(source.charAt(this.index + 1))\r\n ) {\r\n this.index++;\r\n s += ch;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (isGlobal){\r\n this.push({type:\"global-script\",text:s});\r\n }\r\n else {\r\n this.push({ type: \"script\", text: s });\r\n }\r\n } \r\n}","import { FieldRef } from \"..\";\r\nimport { IFieldDefinition, IRecordSchema, Schema } from \"../Schema\";\r\nimport { Lexer } from \"./Lexer\";\r\nimport { TypeChecking } from \"./TypeChecking\";\r\nimport { IExpressionNode, IExpressionToken, KeywordSet, Operator, OperatorSet, SystemFunctionSet } from \"./types\";\r\n\r\nexport class Parser {\r\n private index: number;\r\n private length: number;\r\n private tokens: IExpressionToken[];\r\n private last: IExpressionToken;\r\n private current: IExpressionToken;\r\n public typeChecking:TypeChecking;\r\n public operators:OperatorSet;\r\n public systemFunctions:SystemFunctionSet;\r\n public keywords:KeywordSet;\r\n\r\n constructor(\r\n tokens: IExpressionToken[],\r\n typeChecking: TypeChecking\r\n ) {\r\n this.tokens = tokens;\r\n this.index = 0;\r\n this.length = tokens.length;\r\n this.typeChecking = typeChecking;\r\n }\r\n\r\n public static ScriptOperators: OperatorSet = {\r\n \"^\": { precedence: 120, nodeType: \"exp\" },\r\n NEG: { precedence: 110, nodeType: \"neg\" },\r\n \r\n \"*\": { precedence: 100, nodeType: \"mult\" },\r\n \"/\": { precedence: 100, nodeType: \"div\" },\r\n \"\\\\\": { precedence: 90, nodeType: \"idiv\" },\r\n MOD: { precedence: 80, nodeType: \"mod\" },\r\n \"+\": { precedence: 70, nodeType: \"add\" },\r\n \"-\": { precedence: 70, nodeType: \"sub\" },\r\n \"&\": { precedence: 60, nodeType: \"con\" },\r\n EQ: { precedence: 50, nodeType: \"eq\" },\r\n \"=\": { precedence: 50, nodeType: \"eq\" },\r\n NE: { precedence: 50, nodeType: \"neq\" },\r\n \"<>\": { precedence: 50, nodeType: \"neq\" },\r\n LE: { precedence: 50, nodeType: \"lte\" },\r\n \"<=\": { precedence: 50, nodeType: \"lte\" },\r\n LT: { precedence: 50, nodeType: \"lt\" },\r\n \"<\": { precedence: 50, nodeType: \"lt\" },\r\n GT: { precedence: 50, nodeType: \"gt\" },\r\n \">\": { precedence: 50, nodeType: \"gt\" },\r\n GTE: { precedence: 50, nodeType: \"gte\" },\r\n \">=\": { precedence: 50, nodeType: \"gte\" },\r\n BEGINS:{precedence:50,nodeType:\"begins\"},\r\n CONTAINS:{precedence:50,nodeType:\"contains\"},\r\n ENDS:{precedence:50,nodeType:\"ends\"},\r\n BETWEEN:{precedence:50,nodeType:\"between\"},\r\n \"IS EMPTY\":{precedence:50,nodeType:\"isempty\"},\r\n NOT: { precedence: 40, nodeType: \"not\" },\r\n \r\n AND: { precedence: 30, nodeType: \"and\" },\r\n OR: { precedence: 20, nodeType: \"or\" },\r\n XOR: { precedence: 15, nodeType: \"xor\" },\r\n \r\n \r\n };\r\n\r\n public static ScriptFunctions: SystemFunctionSet = {\r\n TRIM: { args: [\"string\"] },\r\n ABS: { args: [\"number\"] },\r\n MID: { args: [\"string\", \"number\", \"number\"] },\r\n WHEN: {args:[\"any\"]},\r\n AVAILABLE: {args:[\"any\"]},\r\n \"IS-FIRST\":{args:[\"table\"]},\r\n \"IS-LAST\":{args:[\"table\"]},\r\n \"DISPLAY-NAME\": { args: [\"pointer\"] },\r\n \"@EVENT-VALUE\":{asVariable:true},\r\n \"@RETURN-VALUE\":{asVariable:true},\r\n \"DIALOG-YES\": {asVariable:true},\r\n \"DIALOG-NO\": {asVariable:true},\r\n \"DIALOG-CANCEL\": {asVariable:true},\r\n \"DIALOG-VALUE\": {asVariable:true},\r\n \"THIS-FIELD\": {asVariable:true},\r\n \"THIS-FIELD-NAME\": {asVariable:true},\r\n \"THIS-FIELD-PTR\": {asVariable:true},\r\n \"PREVIOUS-VALUE\": {asVariable:true},\r\n \"NAME-OF\": { args: [\"any\"] },\r\n \"THIS-FORM\":{asVariable:true},\r\n \"THIS-FORM-NAME\":{asVariable:true},\r\n \"DATE-TODAY\":{asVariable:true},\r\n \"TIME-OF-DAY-GREETING\":{asVariable:true},\r\n \"NEW-ROW\":{asVariable:true},\r\n \"ALL-ROWS\":{args:[\"any\"]},\r\n \"TABLE-REF\":{args:[\"any\"]},\r\n \"MOD-SELECTED-ROWS\": {args:[\"any\"]},\r\n \"MOD-SELECTED-KEYS\": {args:[\"any\"]},\r\n \"MOD-ALL-ROWS\":{args:[\"any\"]}\r\n };\r\n\r\n public static ScriptKeywords:KeywordSet = {};\r\n\r\n\r\n public static parse(\r\n expression: string,\r\n typeChecking: TypeChecking\r\n ): IExpressionNode {\r\n let keywords = this.ScriptKeywords;\r\n let tokens = Lexer.getExpression(expression,keywords,this.ScriptFunctions);\r\n if (!tokens) return null;\r\n var s = new Parser(tokens, null);\r\n s.typeChecking = typeChecking;\r\n s.keywords = keywords;\r\n s.systemFunctions = this.ScriptFunctions;\r\n s.operators = this.ScriptOperators;\r\n return s.getNode(null, null);\r\n }\r\n\r\n \r\n\r\n public advance(): IExpressionToken {\r\n this.last = this.current;\r\n this.current = this.tokens[this.index++];\r\n return this.current;\r\n }\r\n\r\n public isMoreTokens(): boolean {\r\n return this.index < this.length;\r\n }\r\n\r\n private peek(): IExpressionToken {\r\n return this.tokens[this.index] || {};\r\n }\r\n\r\n public getNode(\r\n pendingNode: IExpressionNode,\r\n pendingOp: Operator\r\n ): IExpressionNode {\r\n var valueNode = this.getValue();\r\n\r\n var endOfBlock: boolean;\r\n if (!this.isMoreTokens()) {\r\n endOfBlock = true;\r\n } else {\r\n let peek = this.peek();\r\n if (\r\n peek.type == \"punctuation\" &&\r\n (peek.text == \")\" || peek.text == \",\")\r\n ) {\r\n endOfBlock = true;\r\n }\r\n }\r\n let token:IExpressionToken;\r\n if (!endOfBlock){\r\n token = this.advance();\r\n if (token.type == \"op\" && token.text == \"IS\"){\r\n if (!this.isMoreTokens()){\r\n throw \"expected value after IS\";\r\n }\r\n token = this.advance();\r\n let opText = \"IS \" + token.text.toUpperCase();\r\n var op = this.operators[opText];\r\n if (!op) {\r\n throw \"Invalid operator: \" + opText;\r\n }\r\n valueNode = {type:op.nodeType,value:valueNode};\r\n if (!this.isMoreTokens()){\r\n endOfBlock = true;\r\n }\r\n token = this.advance();\r\n }\r\n }\r\n\r\n if (endOfBlock) {\r\n if (pendingOp == \"BETWEEN\" && !pendingNode.right1){\r\n throw \"Expected AND after BETWEEN\";\r\n }\r\n if (pendingNode) {\r\n pendingNode.right = valueNode;\r\n return pendingNode;\r\n }\r\n return valueNode;\r\n }\r\n\r\n \r\n\r\n if (token && token.type == \"op\") {\r\n var op = this.operators[token.text];\r\n if (!op) {\r\n throw \"Invalid operator: \" + token.text;\r\n }\r\n \r\n let opNode: IExpressionNode = { type: op.nodeType };\r\n \r\n if (!pendingNode) {\r\n opNode.left = valueNode;\r\n return this.getNode(opNode, token.text as Operator);\r\n } \r\n else if (pendingOp == \"BETWEEN\" && !pendingNode.right1){\r\n if (token.text != \"AND\"){\r\n throw \"Expected AND after BETWEEN\";\r\n }\r\n pendingNode.right1 = valueNode;\r\n return this.getNode(pendingNode,\"BETWEEN\");\r\n } \r\n else if (\r\n this.getPrecedence(token.text as Operator) <=\r\n this.getPrecedence(pendingOp)\r\n ) {\r\n pendingNode.right = valueNode;\r\n opNode.left = pendingNode;\r\n return this.getNode(opNode, token.text as Operator);\r\n } else {\r\n opNode.left = valueNode;\r\n pendingNode.right = this.getNode(\r\n opNode,\r\n token.text as Operator\r\n );\r\n return pendingNode;\r\n }\r\n } else {\r\n throw \"expected operator\";\r\n }\r\n }\r\n\r\n getValue(): IExpressionNode {\r\n var token = this.advance();\r\n if (!token) {\r\n throw \"Expected value\";\r\n }\r\n var tokenType = token.type;\r\n if (tokenType == \"op\") {\r\n if (token.text == \"-\") {\r\n let peek = this.peek();\r\n if (peek.type == \"string\" || peek.type == \"boolean\" || peek.type == \"null\") {\r\n throw \"Expected number, literal or expression after '-'\";\r\n }\r\n let valueNode = this.getValue();\r\n return { type: \"neg\", value: valueNode };\r\n }\r\n if (token.text == \"NOT\") {\r\n let valueNode = this.getValue();\r\n return { type: \"not\", value: valueNode };\r\n }\r\n }\r\n if (tokenType == \"punctuation\") {\r\n if (token.text == \"(\") {\r\n let valueNode = this.getNode(null, null);\r\n token = this.advance();\r\n\r\n if (\r\n token &&\r\n token.type == \"punctuation\" &&\r\n token.text == \")\"\r\n )\r\n return valueNode;\r\n throw \"Expected: )\";\r\n }\r\n throw \"Unexpected char: \" + token.text;\r\n }\r\n if (tokenType == \"string\") {\r\n return { type: \"str\", value: token.text };\r\n }\r\n if (tokenType == \"number\") {\r\n return { type: \"num\", value: token.text };\r\n }\r\n if (tokenType == \"boolean\") {\r\n return { type: \"bool\", value: token.text };\r\n }\r\n if (tokenType == \"sysfunc\"){\r\n return this.getSystemFunc(token);\r\n }\r\n if (tokenType == \"identifier\") {\r\n return this.getIdentifier(token);\r\n }\r\n if (tokenType == \"keyword\" || tokenType == \"datatype\"){\r\n return {type:\"null\"}\r\n }\r\n if (tokenType == \"null\"){\r\n return {type:\"null\"};\r\n }\r\n throw \"Unexpected char: \" + token.text;\r\n }\r\n\r\n getNameof(node: IExpressionNode): IExpressionNode {\r\n let arg: IExpressionNode = node.args[0];\r\n if (!arg) {\r\n throw \"Missing argument for name-of\";\r\n }\r\n if (arg.type == \"sdf\") {\r\n if (arg.name == \"THIS-FIELD\") {\r\n return { type: \"sdf\", name: \"THIS-FIELD-NAME\", args: [] };\r\n }\r\n if (arg.name == \"THIS-FORM\"){\r\n return {type:\"sdf\",name:\"THIS-FORM-NAME\",args:[]}\r\n }\r\n throw \"Invalid argument for name-of\";\r\n }\r\n if (arg.type == \"loc\" || arg.type == \"get\" || arg.type == \"prop\") {\r\n return { type: \"str\", value: arg.name };\r\n }\r\n throw \"Invalid argument for name-of\";\r\n }\r\n\r\n createPropNode(target:IExpressionNode,field:IFieldDefinition):IExpressionNode {\r\n if (field.computed){\r\n return {\r\n type:\"computed\",\r\n expr:field.computedExpr,\r\n target:target,\r\n name:field.name\r\n }\r\n }\r\n return {\r\n type:\"prop\",\r\n target:target,\r\n name:field.name\r\n };\r\n }\r\n\r\n createTargetNode(field:IFieldDefinition,indexer:number):IExpressionNode {\r\n if (field.type == \"collection\"){\r\n if (indexer !== undefined){\r\n return {type:\"row\",name:field.name,value:indexer};\r\n }\r\n return {type:\"current\",name:field.name};\r\n }\r\n return {type:\"get\",name:field.name};\r\n }\r\n\r\n getIdentifier(token: IExpressionToken): IExpressionNode {\r\n\r\n \r\n var iNode: IExpressionNode;\r\n\r\n var peek = this.peek();\r\n if (peek.type == \"punctuation\" && peek.text == \"(\") {\r\n return this.getFunction(token,peek);\r\n } \r\n let indexer:number;\r\n if (peek.type == \"punctuation\" && peek.text == \"[\"){\r\n indexer = this.getIndexer();\r\n peek = this.peek();\r\n }\r\n var varName = token.text;\r\n if (varName[0] != '@' && this.typeChecking.defaultRecord){\r\n let rec = this.typeChecking.getVariableType(this.typeChecking.defaultRecord);\r\n if (rec){\r\n let f = Schema.getFieldDef(rec.recordSchema,varName);\r\n if (f){\r\n return this.createPropNode(this.createTargetNode(rec,indexer),f);\r\n }\r\n }\r\n }\r\n\r\n let isTarget = (peek.type == \"punctuation\" && peek.text == \".\");\r\n \r\n let field = this.typeChecking.getLocalType(varName);\r\n if (field) {\r\n iNode = { type: \"loc\", name: field.name };\r\n } else {\r\n let i = varName.indexOf(\":\");\r\n let modifier:string;\r\n if (i != -1){\r\n modifier = varName.substr(i + 1).toUpperCase();\r\n varName = varName.substr(0,i);\r\n } \r\n field = this.typeChecking.getVariableType(varName);\r\n if (field) {\r\n if (field.computed) {\r\n iNode = { type: \"gcp\", name: field.name };\r\n } \r\n else if (modifier){\r\n let sysFuncName = \"MOD-\" + modifier;\r\n let sysFunc = this.systemFunctions[sysFuncName];\r\n if (!sysFunc){\r\n throw \"invalid modifier on \" + token.text;\r\n }\r\n iNode = {type: \"sdf\",name:\"MOD-\" + modifier,args:[{value:field.name,type:\"str\"}]};\r\n }\r\n else if (isTarget){\r\n iNode = this.createTargetNode(field,indexer);\r\n }\r\n else {\r\n iNode = {type:'get',name:field.name};\r\n }\r\n }\r\n if (!iNode) {\r\n let extendedName = this.getExtendedName(varName);\r\n let withStackItem = this.typeChecking.findWith(extendedName);\r\n if (withStackItem) { \r\n field = Schema.getFieldDef(withStackItem.schema,extendedName); \r\n if (field) {\r\n iNode = this.createPropNode({type:\"get\",name:withStackItem.name},field);\r\n return iNode;\r\n }\r\n }\r\n }\r\n }\r\n \r\n if (!iNode) {\r\n throw varName + \" is not defined\";\r\n }\r\n if (peek.type == \"punctuation\" && peek.text == \".\") {\r\n token = this.advance();\r\n return this.getProp(iNode, field);\r\n }\r\n return iNode;\r\n }\r\n\r\n getIndexed(target:IExpressionNode):IExpressionNode{\r\n this.advance(); // consume [\r\n let token = this.advance();\r\n if (token.type == \"number\"){\r\n let value:IExpressionNode = {type:\"num\",value:token.text};\r\n let indexed:IExpressionNode = {type:\"ind\",value,target};\r\n token = this.advance();\r\n if (token.type !== \"punctuation\" || token.text != \"]\"){\r\n throw \"missing closing ] on array index\";\r\n }\r\n return indexed;\r\n }\r\n else {\r\n throw \"Expected numeric value for array index\";\r\n }\r\n\r\n }\r\n\r\n getIndexer():number{\r\n this.advance(); // consume [\r\n let token = this.advance();\r\n if (token.type == \"number\"){\r\n let indexer = parseInt(token.text,10);\r\n token = this.advance();\r\n if (token.type !== \"punctuation\" || token.text != \"]\"){\r\n throw \"missing closing ] on array index\";\r\n }\r\n return indexer;\r\n }\r\n else {\r\n throw \"Expected numeric value for array index\";\r\n }\r\n\r\n }\r\n getSystemFunc(token:IExpressionToken):IExpressionNode{\r\n let varName = token.text;\r\n let peek = this.peek();\r\n let up = varName.toUpperCase();\r\n let sysFunc = this.systemFunctions[up];\r\n if (!sysFunc){\r\n let keyword = this.keywords[up];\r\n if (!keyword){\r\n throw \"Unknown keyword: \" + varName;\r\n }\r\n return {type:\"sdf\",name:up,args:[]};\r\n }\r\n if (up ==\"THIS-FORM\" && peek.type == \"punctuation\" && peek.text == \".\"){\r\n this.advance(); // consume .\r\n token = this.advance();\r\n if (token.type != \"identifier\"){\r\n throw \"Expected identifier after this-form.\";\r\n }\r\n varName = token.text;\r\n peek = this.peek();\r\n let field = this.typeChecking.getVariableType(varName);\r\n let iNode:IExpressionNode;\r\n if (!field){\r\n throw varName + \" is not defined\";\r\n }\r\n iNode = {type:\"get\",name:field.name};\r\n if (peek.type == \"punctuation\" && peek.text == \".\") {\r\n token = this.advance();\r\n return this.getProp(iNode, field);\r\n }\r\n return iNode;\r\n }\r\n \r\n let iNode:IExpressionNode = { type: \"sdf\", name: up, args: [] };\r\n if (peek.type == \"punctuation\" && peek.text == \"(\") {\r\n token = this.advance();\r\n iNode.args = this.getFuncArgs();\r\n }\r\n return iNode; \r\n }\r\n\r\n getFunction(token:IExpressionToken,peek:IExpressionToken):IExpressionNode{ \r\n let funcName = token.text;\r\n let up = funcName.toUpperCase();\r\n token = this.advance(); // consume (\r\n \r\n let systemFunction = this.systemFunctions[up];\r\n let iNode:IExpressionNode;\r\n if (systemFunction) {\r\n iNode = { type: \"sdf\", name: up };\r\n } else {\r\n throw \"Unknown function: \" + funcName;\r\n }\r\n let args = this.getFuncArgs();\r\n iNode.args = args;\r\n if (up == \"NAME-OF\") {\r\n iNode = this.getNameof(iNode);\r\n }\r\n return iNode;\r\n }\r\n\r\n\r\n getProp(\r\n target: IExpressionNode,\r\n targetField: IFieldDefinition\r\n ): IExpressionNode {\r\n var token = this.advance();\r\n if (!token || token.type != \"identifier\") {\r\n throw \"Identifier expected\";\r\n }\r\n let propName = token.text;\r\n var pNode: IExpressionNode;\r\n var peek = this.peek();\r\n let field: IFieldDefinition;\r\n if (peek.type == \"punctuation\" && peek.text == \"(\") {\r\n this.advance();\r\n var args = this.getFuncArgs();\r\n pNode = { type: \"odf\", target, name: propName, args };\r\n } else {\r\n propName = this.getExtendedName(propName);\r\n field = this.typeChecking.getPropertyType(\r\n targetField.recordSchema,\r\n propName\r\n );\r\n if (!field) {\r\n throw targetField.name + \".\" + propName + \" is not defined\";\r\n }\r\n pNode = this.createPropNode(target,field);\r\n }\r\n /*\r\n var peek = this.peek();\r\n if (peek.type == \"punctuation\" && peek.text == '.') {\r\n this.advance();\r\n return this.getProp(pNode, field);\r\n }\r\n */\r\n return pNode;\r\n }\r\n\r\n getExtendedName(root: string): string {\r\n var name = root;\r\n var peek = this.peek();\r\n while (peek.type == \"punctuation\" && peek.text == \".\") {\r\n this.advance();\r\n peek = this.peek();\r\n if (peek.type == \"identifier\") {\r\n this.advance();\r\n name += \".\" + peek.text;\r\n } else {\r\n throw \"Identifier expected after: \" + name + \".\";\r\n }\r\n peek = this.peek();\r\n }\r\n return name;\r\n }\r\n\r\n getIsLocalVar(varName: string): boolean {\r\n return false;\r\n }\r\n\r\n getFuncArgs(): IExpressionNode[] {\r\n let peek = this.peek();\r\n if (peek.type == \"punctuation\" && peek.text == \")\") {\r\n this.advance();\r\n return null;\r\n }\r\n var args: IExpressionNode[] = [];\r\n while (this.isMoreTokens()) {\r\n let node = this.getNode(null, null);\r\n args.push(node);\r\n peek = this.peek();\r\n if (peek.type == \"punctuation\" && peek.text == \",\") {\r\n this.advance();\r\n } else if (peek.type == \"punctuation\" && peek.text == \")\") {\r\n this.advance();\r\n return args;\r\n }\r\n }\r\n throw \"Expected )\";\r\n }\r\n\r\n private getPrecedence(op: Operator): number {\r\n var o = this.operators[op];\r\n if (o) {\r\n return o.precedence;\r\n }\r\n return 5;\r\n }\r\n}","import { ExpressionOps } from \"./ExpressionOps\";\r\nimport { Parser } from \"./Parser\";\r\nimport { IEvalContext, IExpressionNode } from \"./types\";\r\n\r\nexport class Serializer {\r\n \r\n\r\n public static serialize(node: IExpressionNode): string {\r\n switch (node.type) {\r\n case \"str\":\r\n return this.quotedString(node.value);\r\n case \"bool\":\r\n return this.serializeBool(node.value);\r\n case \"num\":\r\n return node.value.toString();\r\n case \"get\":\r\n return \"_.get(ctx,\" + this.quotedString(node.name) + \")\";\r\n case \"current\":\r\n return \"_.current(ctx,\" + this.quotedString(node.name) + \")\";\r\n case \"row\":\r\n return \"_.row(ctx,\" + this.quotedString(node.name) + \",\" + node.value + \")\";\r\n case \"gcp\":\r\n return \"_.gcp(\" + this.quotedString(node.name) + \")\";\r\n case \"loc\":\r\n return \"_.loc(ctx,\" + this.quotedString(node.name) + \")\";\r\n case \"prop\":\r\n return (\r\n \"_.prop(\" +\r\n this.serialize(node.target) +\r\n \",\" +\r\n this.quotedString(node.name) +\r\n \")\"\r\n );\r\n case \"computed\":\r\n return node.expr;\r\n case \"ind\":\r\n return (\r\n \"_.ind(\" +\r\n this.serialize(node.target) +\r\n \",\" +\r\n this.serialize(node.value) +\r\n \")\"\r\n );\r\n case \"udf\":\r\n return (\r\n \"_.udf(\" +\r\n this.quoteFunction(node.name) +\r\n \",\" +\r\n this.serializeArgs(node.args) +\r\n \")\"\r\n );\r\n case \"sdf\":\r\n return (\r\n \"_.sdf(\" +\r\n this.quoteFunction(node.name) +\r\n \",\" +\r\n this.serializeArgs(\r\n node.args,\r\n Parser.ScriptFunctions[node.name].args\r\n ) +\r\n \")\"\r\n );\r\n case \"odf\":\r\n return (\r\n \"_.odf(\" +\r\n this.serialize(node.target) +\r\n \",\" +\r\n this.quoteFunction(node.name) +\r\n \",\" +\r\n this.serializeArgs(node.args) +\r\n \")\"\r\n );\r\n case \"add\":\r\n case \"sub\":\r\n case \"mult\":\r\n case \"div\":\r\n case \"idiv\":\r\n case \"exp\":\r\n case \"mod\":\r\n case \"con\":\r\n case \"eq\":\r\n case \"neq\":\r\n case \"gt\":\r\n case \"gte\":\r\n case \"lt\":\r\n case \"lte\":\r\n case \"and\":\r\n case \"or\":\r\n case \"xor\":\r\n case \"begins\":\r\n case \"contains\":\r\n case \"ends\":\r\n return (\r\n \"_.\" +\r\n node.type +\r\n \"(\" +\r\n this.serialize(node.left) +\r\n \",\" +\r\n this.serialize(node.right) +\r\n \")\"\r\n );\r\n case \"neg\":\r\n case \"not\":\r\n case \"isempty\":\r\n return (\r\n \"_.\" +\r\n node.type +\r\n \"(\" +\r\n this.serialize(node.value) +\r\n \")\"\r\n );\r\n case \"between\":\r\n return (\r\n \"_.\" +\r\n node.type +\r\n \"(\" +\r\n this.serialize(node.left) +\r\n \",\" +\r\n this.serialize(node.right1) +\r\n \",\" +\r\n this.serialize(node.right) +\r\n \")\"\r\n );\r\n case \"null\":\r\n return \"undefined\";\r\n }\r\n return \"\";\r\n }\r\n\r\n private static serializeBool(value: any): string {\r\n if ((value && value[0] == \"T\") || value[0] == \"t\") return \"true\";\r\n return \"false\";\r\n }\r\n\r\n public static serializeArgs(\r\n args: IExpressionNode[],\r\n argTypes?: string[]\r\n ): string {\r\n \r\n var s = ['ctx'];\r\n if (args){\r\n for (var i = 0; i < args.length; i++) {\r\n let argType: string;\r\n if (argTypes) {\r\n argType = argTypes[i];\r\n } else {\r\n argType = null;\r\n }\r\n s.push(this.serialize(args[i]));\r\n }\r\n }\r\n return \"[\" + s.join(\",\") + \"]\";\r\n }\r\n\r\n public static quotedString(value: string): string {\r\n if (value === null || value === undefined) {\r\n return \"''\";\r\n }\r\n return \"'\" + value.replace(/\\'/g, \"\\\\'\") + \"'\";\r\n }\r\n\r\n public static toLiteral(value: any): string {\r\n if (value === null || value === undefined) {\r\n return \"?\"; // unknown\r\n }\r\n if (typeof value == \"string\") {\r\n return \"'\" + value.replace(/\\'/g, \"\\\\'\") + \"'\";\r\n } else {\r\n return value;\r\n }\r\n }\r\n\r\n public static quoteFunction(value: string): string {\r\n if (value === null || value === undefined) {\r\n return \"''\";\r\n }\r\n if (value[0] == \"@\" && value[1] == \"@\"){\r\n value = value.substr(2);\r\n }\r\n else if (value[0] == \"@\"){\r\n value = value.substr(1);\r\n }\r\n return \"'\" + value.replace(/\\'/g, \"\\\\'\").replace(/\\-/g, \"_\") + \"'\";\r\n }\r\n\r\n public static tableParam(tableName: string, options: any) {\r\n return (\r\n \"_.tblParam(_.get(\" +\r\n Serializer.quotedString(tableName) +\r\n \"),\" +\r\n JSON.stringify(options) +\r\n \")\"\r\n );\r\n }\r\n\r\n public static tableRef(tableName: string) {\r\n return (\r\n \"_.tableRef(_.get(\" +\r\n Serializer.quotedString(tableName) +\r\n \"))\"\r\n );\r\n }\r\n\r\n public static createExpressionFunction(expr:string):(ops:ExpressionOps,ctx:IEvalContext) => any {\r\n return new Function('_',\"ctx\",\"return \" + expr) as any;\r\n }\r\n}","import { type } from \"os\";\r\nimport { ExpressionOps } from \"./ExpressionOps\";\r\nimport { Parser } from \"./Parser\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { TypeChecking } from \"./TypeChecking\";\r\nimport { IEvalContext } from \"./types\";\r\n\r\nexport class Evaluator {\r\n public static evaluate(context:IEvalContext,expr:string):any {\r\n if (!expr) return;\r\n \r\n let f = context.canvas.expressionCache[expr];\r\n if (f){\r\n return f(ExpressionOps,context);\r\n }\r\n \r\n let exprFunc = Serializer.createExpressionFunction(expr);\r\n context.canvas.expressionCache[expr] = exprFunc;\r\n return exprFunc(ExpressionOps,context);\r\n\r\n /*\r\n else {\r\n let typeChecking = new TypeChecking();\r\n typeChecking.rootSchema = context.canvas.schema;\r\n typeChecking.defaultRecord = context.canvas.defaultRecord;\r\n let node = Parser.parse(expr,typeChecking);\r\n if (!node) return null;\r\n js = Serializer.serialize(node);\r\n }\r\n if (js){\r\n let exprFunc = Serializer.createExpressionFunction(js);\r\n context.canvas.expressionCache[expr] = exprFunc;\r\n return exprFunc(ExpressionOps,context);\r\n }\r\n */\r\n }\r\n}","import { Evaluator } from \"./expressions/Evaluator\";\r\nimport { RenderEvent } from \"./RenderEvent\";\r\nimport React from 'react';\r\nimport { DynamicRender } from \"./DynamicRender\";\r\n\r\nexport class HtmlRender {\r\n static renderTag(event:RenderEvent,elem:any,index:number,id:string){\r\n let tag = elem.$tag;\r\n if (tag == \"text\"){\r\n if (elem.text){\r\n let propValue = HtmlRender.getPropValue(event,elem.text);\r\n if (propValue === true) return \"Yes\";\r\n if (propValue === false) return \"No\";\r\n return HtmlRender.renderItem(event,propValue,index);\r\n }\r\n return null;\r\n }\r\n if (tag == \"fragment\"){\r\n return HtmlRender.renderArray(event,elem.children);\r\n }\r\n \r\n let props:any = {};\r\n for(let key in elem){\r\n if (key[0] == '$') continue;\r\n if (key == \"children\"){\r\n \r\n if (tag == \"table\"){\r\n props[\"children\"] = elem.children;\r\n }\r\n else {\r\n props[\"children\"] = HtmlRender.renderArray(event,elem.children);\r\n }\r\n }\r\n else {\r\n var propName = HtmlRender.reactPropMap[key] || key;\r\n props[propName] = HtmlRender.getPropValue(event,elem[key]);\r\n }\r\n }\r\n props.key = index;\r\n props.$tag = tag;\r\n let component = HtmlRender.componentMap[tag];\r\n if (component){\r\n return component(event,props);\r\n }\r\n if (props.onclick){\r\n return React.createElement(Wrapper,props);\r\n }\r\n return React.createElement(tag,props);\r\n }\r\n\r\n static renderArray(event:RenderEvent,children:any[]): any[]{\r\n if (!children) return null;\r\n let output:any[] = [];\r\n for(let i = 0; i < children.length;i++){\r\n let child = children[i];\r\n let elem = HtmlRender.renderItem(event,child,i);\r\n if (elem){\r\n output.push(elem);\r\n }\r\n }\r\n return output;\r\n }\r\n\r\n static renderItem(event:RenderEvent,item:any,index:number):any {\r\n if (!item) return null;\r\n if (item.$tag){\r\n return HtmlRender.renderTag(event,item,index,null);\r\n }\r\n if (item._){\r\n return HtmlRender.getPropValue(event,item);\r\n }\r\n return item;\r\n }\r\n\r\n static componentMap:{[name:string]:(event:RenderEvent,props:any) => any}\r\n\r\n\r\n static getPropValue(event:RenderEvent,value:any){\r\n if (value && value._){\r\n value = Evaluator.evaluate(event,value._);\r\n }\r\n if (value && value.$tag){\r\n return HtmlRender.renderTag(event,value,0,null);\r\n }\r\n return value;\r\n }\r\n\r\n static reactPropMap:any = {\r\n \"class\":\"className\"\r\n }\r\n}\r\n\r\nconst Wrapper = (props:any) => {\r\n function onClick(e:React.MouseEvent){\r\n e.stopPropagation();\r\n props.onclick.trigger();\r\n }\r\n\r\n let href= (props.$tag == \"a\") ? \"#\" : undefined;\r\n let newProps:any = {...props,href};\r\n if (props.onclick){\r\n newProps.onClick = onClick;\r\n }\r\n return React.createElement(props.$tag,newProps);\r\n}","import { Application } from \"./Application\";\r\nimport { RenderEvent } from \"./RenderEvent\";\r\nimport React from 'react';\r\nimport { IComponentDefinition, IComponentPropType } from \"./ComponentDefinition\";\r\nimport { KIND } from \"./types\";\r\nimport {ClickThrottle} from 'components/helpers/ClickThrottle';\r\nimport { StyledText } from \"components/helpers/StyledText\";\r\nimport { ActionRef } from \"./ActionRef\";\r\nimport { HtmlRender } from \"./HtmlRender\";\r\n\r\ninterface IContainerProps {\r\n event?:RenderEvent;\r\n children?:any[];\r\n key?:any;\r\n $dynamic?:boolean;\r\n $id?:string;\r\n $def?:IComponentDefinition;\r\n $kind?:string;\r\n $elem?:any;\r\n containerize?:boolean;\r\n $src_kind?:string;\r\n}\r\n\r\nexport class DynamicRender {\r\n static nextKey:number = 30000;\r\n\r\n static render(event:RenderEvent, elems:any[]):any {\r\n let containerProps = {children:[]};\r\n DynamicRender.renderArray(event,elems,containerProps);\r\n let children = containerProps.children;\r\n if (children.length == 1){\r\n return children[0];\r\n }\r\n return children;\r\n }\r\n\r\n static containerClass(className:string):string{\r\n return className;\r\n }\r\n\r\n static renderArray(event:RenderEvent,elems:any[],containerProps:IContainerProps){\r\n if (!elems) return;\r\n \r\n for(let i = 0; i < elems.length;i++){\r\n let elem = elems[i];\r\n let id = elem.$id;\r\n if (elem.$sec){\r\n id = elem.$sec + \":\" + id;\r\n }\r\n let tag = elem.$tag;\r\n\r\n if (tag){\r\n containerProps.children.push(HtmlRender.renderTag(event,elem,i,id));\r\n }\r\n let kind = elem.$kind;\r\n if (!kind) continue;\r\n \r\n \r\n if (kind[0] >= 'a' && kind[0] <= 'z'){\r\n containerProps.children.push(DynamicRender.renderHTMLElement(event,elem,i,id));\r\n continue;\r\n }\r\n \r\n \r\n let forEachElem:any;\r\n \r\n if (kind == \"When\"){\r\n if (DynamicRender.evalWhen(event,elem)){\r\n DynamicRender.renderArray(event,elem.children,containerProps);\r\n }\r\n continue;\r\n }\r\n else if (kind == \"UI.ForEach\"){\r\n renderForEach(event,elem,containerProps);\r\n continue;\r\n }\r\n else if (kind == \"IfBlock\"){\r\n DynamicRender.runIfBlock(event,elem,containerProps);\r\n continue;\r\n }\r\n else if (kind == \"UI.Content\"){\r\n let contentValue = this.computeProp(event,\"expr\",elem.content);\r\n if (typeof(contentValue) === \"string\"){\r\n let content = JSON.parse(contentValue);\r\n if (Array.isArray(content)){\r\n DynamicRender.renderArray(event,content,containerProps);\r\n }\r\n }\r\n continue;\r\n }\r\n else if (kind == \"PageSettings\"){\r\n DynamicRender.loadPageSettings(event,elem);\r\n continue;\r\n }\r\n \r\n let Comp = Application.getKind(kind);\r\n if (Comp){\r\n let def:IComponentDefinition = Comp.$def;\r\n let key;\r\n if (elem.$id){\r\n if (event.keyPrefix){\r\n key = event.keyPrefix + \":\" + elem.$id;\r\n }\r\n else { \r\n key = elem.$id;\r\n }\r\n }\r\n else {\r\n key = i;\r\n }\r\n let props:IContainerProps = {key,event,$dynamic:true,$id:id,$def:def,$kind:kind,$elem:elem,$src_kind:elem.$src_kind};\r\n \r\n \r\n if (def && def.props){\r\n let ifProp = def.props[\"if\"];\r\n if (ifProp && elem[\"if\"]){\r\n let test = event.getValue(elem[\"if\"]);\r\n if (!test) continue;\r\n }\r\n for(let key in def.props){\r\n let prop = def.props[key];\r\n if (key == \"children\"){\r\n if (prop.type == \"content\"){\r\n if (elem.children){\r\n props.children = [];\r\n if (prop.asRenderFunc){\r\n props[\"render_children\"] = (event:RenderEvent) => DynamicRender.render(event,elem.children);\r\n }\r\n else if (prop.asDesignMode){\r\n let childEvent = event.create(event.scope);\r\n childEvent.context = {...event.context,designMode:true};\r\n DynamicRender.renderArray(childEvent,elem.children,props);\r\n }\r\n else {\r\n DynamicRender.renderArray(event,elem.children,props);\r\n }\r\n }\r\n }\r\n }\r\n else if (prop.type == \"content\") {\r\n if (prop.asRenderFunc){\r\n props[\"render_\" + key] = (event:RenderEvent) => DynamicRender.render(event,elem[key]);\r\n }\r\n else {\r\n let contentValue = elem[key];\r\n if (contentValue){\r\n props[key] = DynamicRender.render(event,contentValue);\r\n }\r\n }\r\n }\r\n else {\r\n \r\n let value = elem[key];\r\n if (prop.type == \"object\"){\r\n props[key] = value;\r\n }\r\n else if (value || value === 0){\r\n props[key] = DynamicRender.computeProp(event,prop.type,value);\r\n }\r\n }\r\n }\r\n if (forEachElem){\r\n renderForEach(event,forEachElem,props);\r\n }\r\n let reactElem = React.createElement(Comp,props);\r\n if (def.propName){\r\n containerProps[def.propName] = reactElem;\r\n }\r\n else {\r\n containerProps.children.push(reactElem);\r\n }\r\n }\r\n }\r\n } \r\n }\r\n\r\n static loadPageSettings(event:RenderEvent,elem){\r\n let children = elem.children;\r\n if (!children) return;\r\n for(let i = 0; i < children.length;i++){\r\n let child = children[i];\r\n if (child.$kind == \"Title\"){\r\n let title = this.computeProp(event,\"text-expr\",child.value);\r\n let subtitle = this.computeProp(event,\"text-expr\",child.subtitle);\r\n event.canvas.title = title;\r\n event.canvas.subtitle = subtitle;\r\n event.canvas.icon = this.computeProp(event,\"expr\",child.icon);\r\n }\r\n else if (child.$kind == \"Layout\"){\r\n event.canvas.width = child.width;\r\n event.canvas.height = child.height;\r\n event.canvas.styles = this.computeProp(event,\"expr\",child.styles);\r\n event.canvas.scrollable = child.scrollable;\r\n event.canvas.stackPosition = child.stackPosition;\r\n event.canvas.showClose = child.showClose;\r\n }\r\n }\r\n \r\n \r\n }\r\n\r\n static computeProp(event:RenderEvent,type:IComponentPropType,value:any):any {\r\n switch(type){\r\n case \"field\":return event.field(value);\r\n case \"text\":return value;\r\n case \"enum\":return value;\r\n case \"text-expr\":return StyledText.format(event.getValue(value));\r\n case \"boolean\":return !!value;\r\n case \"expr\": return event.getValue(value);\r\n case \"action\":return event.action(value);\r\n case \"collection\":return event.collection(value);\r\n case \"block\":return value;\r\n case \"fragment\":return DynamicRender.render(event,value);\r\n case \"number\":return value;\r\n case \"record\":return event.getValue(value);\r\n case \"record-ref\":return event.getValue(value);\r\n case \"handler\":return DynamicRender.getParams(event,value);\r\n case \"page\":return event.getValue(value); // value; \r\n case \"symbol\":return value; \r\n case \"constant-expr\":return value; \r\n case \"event\":return DynamicRender.getActionRef(event,value);\r\n case \"file\":return event.field(value);\r\n case \"object\":return value;\r\n }\r\n }\r\n\r\n static getActionRef(event:RenderEvent,statements:any){\r\n let actionRef = new ActionRef(event.canvas,\"prop\",event.scope);\r\n actionRef.statements = statements;\r\n return actionRef;\r\n }\r\n\r\n static getParams(event:RenderEvent,elems:any[]):any {\r\n let params = event.canvas.createLaunchParameters(null,{scope:event.scope,value:event.eventValue})\r\n if (!elems) return params;\r\n for(let i = 0; i < elems.length;i++){\r\n let elem = elems[i];\r\n if (elem.$kind == KIND.PASS){\r\n let propName = elem.name;\r\n if (propName){\r\n params[propName] = event.getValue(elem.value);\r\n }\r\n }\r\n else if (elem.$kind == KIND.PARAM_CONTENT){\r\n let propName = elem.name;\r\n if (propName){\r\n params[propName] = elem.children;\r\n }\r\n }\r\n }\r\n return params;\r\n }\r\n\r\n static evalWhen(event:RenderEvent,elem:any) : boolean {\r\n let conditions = elem.conditions;\r\n if (!conditions || !conditions.length) return false;\r\n for(let i = 0; i < conditions.length;i++){\r\n let cond = conditions[i];\r\n let test = event.getValue(cond.expr);\r\n if (!test) return false;\r\n }\r\n return true;\r\n }\r\n\r\n static runIfBlock(event:RenderEvent, elem:any,containerProps:IContainerProps):Promise {\r\n let statements = elem.statements;\r\n if (!statements) return;\r\n for(let i = 0; i < statements.length;i++){\r\n let statement = statements[i];\r\n if (statement.$kind == \"Else\"){\r\n DynamicRender.renderArray(event,statement.children,containerProps);\r\n return;\r\n }\r\n if (statement.$kind == \"If\" || statement.$kind == \"ElseIf\"){\r\n let test = event.getValue(statement.condition);\r\n if (test){\r\n DynamicRender.renderArray(event,statement.children,containerProps);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n static renderHTMLElement(event:RenderEvent,elem:any,index:number,id:string){\r\n let kind = elem.$kind;\r\n if (kind == \"text\"){\r\n if (elem.text){\r\n return event.getValue(elem.text);\r\n }\r\n return null;\r\n }\r\n if (kind == \"test\") return React.createElement(renderTest);\r\n\r\n let props:any = {};\r\n let requiresHandlers:boolean;\r\n for(let key in elem){\r\n if (key[0] == \"$\") continue;\r\n if (key == \"children\"){\r\n props[\"children\"] = [];\r\n DynamicRender.renderArray(event,elem.children,props);\r\n }\r\n else if (key == \"onClick\"){\r\n props[key] = DynamicRender.getActionRef(event,elem[key]);\r\n if (props[key]){\r\n requiresHandlers = true;\r\n }\r\n }\r\n else {\r\n props[key] = event.getValue(elem[key]);\r\n }\r\n }\r\n props.key = index;\r\n if (requiresHandlers || id){\r\n props[\"event\"] = event;\r\n props[\"$kind\"] = elem.$kind;\r\n props[\"$src_kind\"] = elem.$src_kind;\r\n props[\"$id\"] = id;\r\n return \r\n }\r\n if (props[\"childClass\"]){\r\n props[\"children\"] = \r\n }\r\n return React.createElement(elem.$kind,props);\r\n }\r\n}\r\n\r\nclass WrappedChildren extends React.Component<{className:string}>{\r\n render(){\r\n let className = this.props.className;\r\n return React.Children.map(this.props.children,(child:any,index) =>{\r\n if (!child) return child;\r\n return
{child}
\r\n }) || null;\r\n }\r\n}\r\nfunction renderTest(props:any){\r\n var statement:React.CSSProperties = {color:\"rgb(205, 29, 208)\"}\r\n let argValue:React.CSSProperties = {color:\"rgb(1 132 191)\"}\r\n let stringValue:React.CSSProperties = {color:\"rgb(232 96 0)\"}\r\n let args:React.CSSProperties = {marginLeft:25};\r\n let argName:React.CSSProperties = {};\r\n let spacer = \r\n return
\r\n
\r\n MESSAGE\r\n {spacer}\r\n @message\r\n
\r\n AS DIALOG BOX\r\n
\r\n STYLE\r\n {spacer}\r\n 'SUCCESS'\r\n
\r\n ON RECORD CHANGED\r\n {spacer}\r\n BEGIN\r\n
\r\n REFRESH PAGE\r\n
\r\n \r\n
\r\n END\r\n
\r\n
\r\n MESSAGE\r\n {spacer}\r\n CONCAT(\r\n
\r\n
\r\n 'Hello'\r\n ,\r\n
\r\n 'World!'\r\n
\r\n )\r\n
\r\n
\r\n AS DIALOG BOX\r\n
\r\n STYLE\r\n {spacer}\r\n IIF\r\n (\r\n
\r\n @message = @check\r\n ,\r\n
\r\n CONCAT(\r\n \r\n
\r\n 'Hello'\r\n ,\r\n
\r\n 'World!'\r\n
\r\n )\r\n
\r\n ,\r\n 'Error'\r\n
\r\n )\r\n
\r\n
\r\n}\r\n\r\nfunction renderForEach(event:RenderEvent,forEachElem:any,containerProps:any){\r\n let collectionRef = event.canvas.getCollectionRef(forEachElem.collection,event.scope);\r\n if (!collectionRef) return null;\r\n let rows:any[] = collectionRef.rows;\r\n if (rows && rows.length){\r\n for(let index = 0; index < rows.length;index++){\r\n let row = rows[index];\r\n let rowEvent = event.create({...event.scope,[forEachElem.collection]:row});\r\n rowEvent.keyPrefix = index.toString();\r\n DynamicRender.renderArray(rowEvent,forEachElem.row,containerProps);\r\n }\r\n }\r\n else if (forEachElem.children){\r\n let whenEmptyProps = {children:[],whenEmpty:[]};\r\n DynamicRender.renderArray(event,forEachElem.children,whenEmptyProps as any);\r\n if (whenEmptyProps.whenEmpty){\r\n containerProps.children.push(whenEmptyProps.whenEmpty);\r\n }\r\n }\r\n}\r\n\r\nclass HtmlTag extends React.Component<{event:RenderEvent,$kind,$id:string,onClick:ActionRef}>{\r\n\r\n clickThrottle:ClickThrottle;\r\n\r\n render(): React.ReactNode {\r\n let onClick;\r\n if (this.props.onClick){\r\n onClick = this.handleClick;\r\n }\r\n return React.createElement(this.props.$kind,{...this.props,onClick,event:null,\"data-elem-id\":this.props.$id});\r\n }\r\n \r\n handleClick = (e:React.MouseEvent) => {\r\n this.clickThrottle = this.clickThrottle || new ClickThrottle();\r\n this.clickThrottle.handle(e,null,() => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n let onClick = this.props.onClick;\r\n if (onClick){\r\n onClick.trigger();\r\n }\r\n });\r\n }\r\n\r\n \r\n}","export enum AnchorPoint {\r\n TopLeftCorner = \"topleftCorner\",\r\n TopAlignCenter = \"topAlignCenter\",\r\n TopRightCorner = \"topRightCorner\",\r\n RightVerticalCenter = \"rightVerticalCenter\",\r\n BottomRightCorner = \"bottomRightCorner\",\r\n BottomAlignCenter = \"bottomAlignCenter\",\r\n BottomLeftCorner = \"bottomLeftCorner\",\r\n LeftVerticalCenter = \"leftVerticalCenter\",\r\n TopAlignLeft = \"topAlignLeft\",\r\n BottomAlignLeft = \"bottomAlignLeft\",\r\n TopAlignRight = \"topAlignRight\",\r\n BottomAlignRight = \"bottomAlignRight\"\r\n}\r\n\r\nconst OppositeAnchorPoints = {\r\n [AnchorPoint.TopLeftCorner]: AnchorPoint.BottomRightCorner,\r\n [AnchorPoint.TopAlignCenter]: AnchorPoint.BottomAlignCenter,\r\n [AnchorPoint.TopRightCorner]: AnchorPoint.BottomLeftCorner,\r\n [AnchorPoint.RightVerticalCenter]: AnchorPoint.LeftVerticalCenter,\r\n [AnchorPoint.BottomRightCorner]: AnchorPoint.TopLeftCorner,\r\n [AnchorPoint.BottomAlignCenter]: AnchorPoint.TopAlignCenter,\r\n [AnchorPoint.BottomLeftCorner]: AnchorPoint.TopRightCorner,\r\n [AnchorPoint.LeftVerticalCenter]: AnchorPoint.RightVerticalCenter,\r\n [AnchorPoint.TopAlignLeft]: AnchorPoint.BottomAlignLeft,\r\n [AnchorPoint.BottomAlignLeft]: AnchorPoint.TopAlignLeft,\r\n [AnchorPoint.TopAlignRight]: AnchorPoint.BottomAlignRight,\r\n [AnchorPoint.BottomAlignRight]: AnchorPoint.TopAlignRight,\r\n}\r\n\r\nexport interface IRectangle { top: number; bottom: number; left: number; right: number }\r\nexport interface IRectangleOutsideResult { isOutside: boolean; top: number, left: number; right: number; bottom: number }\r\n\r\nexport let ZeroRect: IRectangle = { top: 0, bottom: 0, left: 0, right: 0 }\r\n\r\nexport const getOppositeAnchorPoint = (anchorPoint: AnchorPoint) => {\r\n return OppositeAnchorPoints[anchorPoint]\r\n}\r\n\r\nexport const getRectForAnchor = (contentRect: IRectangle, anchorRect: IRectangle, anchorPoint): IRectangle => {\r\n let style: any = {}\r\n\r\n let anchorWidth = anchorRect.right - anchorRect.left;\r\n let contentWidth = contentRect.right - contentRect.left;\r\n let anchorHeight = anchorRect.bottom - anchorRect.top;\r\n let contentHeight = contentRect.bottom - contentRect.top;\r\n\r\n\r\n if (anchorPoint == AnchorPoint.BottomAlignCenter) {\r\n style.top = anchorRect.bottom;\r\n style.left = anchorRect.left + (anchorWidth / 2) - (contentWidth / 2)\r\n\r\n } else if (anchorPoint == AnchorPoint.TopAlignCenter) {\r\n style.top = anchorRect.top - contentHeight;\r\n style.left = anchorRect.left + (anchorWidth / 2) - (contentWidth / 2)\r\n\r\n } else if (anchorPoint == AnchorPoint.LeftVerticalCenter) {\r\n style.top = anchorRect.top + (anchorHeight / 2) - (contentHeight / 2)\r\n style.left = anchorRect.left - contentWidth\r\n\r\n } else if (anchorPoint == AnchorPoint.RightVerticalCenter) {\r\n style.top = anchorRect.top + (anchorHeight / 2) - (contentHeight / 2)\r\n style.left = anchorRect.right\r\n\r\n } else if (anchorPoint == AnchorPoint.TopAlignLeft) {\r\n style.top = anchorRect.top - contentHeight\r\n style.left = anchorRect.left\r\n\r\n } else if (anchorPoint == AnchorPoint.TopAlignRight) {\r\n style.top = anchorRect.top - contentHeight\r\n style.left = anchorRect.right - contentWidth\r\n\r\n } else if (anchorPoint == AnchorPoint.BottomAlignRight) {\r\n style.top = anchorRect.bottom\r\n style.left = anchorRect.right - contentWidth\r\n\r\n } else if (anchorPoint == AnchorPoint.BottomAlignLeft) {\r\n style.top = anchorRect.bottom\r\n style.left = anchorRect.left\r\n\r\n } else if (anchorPoint == AnchorPoint.TopLeftCorner) {\r\n style.top = anchorRect.top - contentHeight\r\n style.left = anchorRect.left - contentWidth\r\n\r\n } else if (anchorPoint == AnchorPoint.TopRightCorner) {\r\n style.top = anchorRect.top - contentHeight\r\n style.left = anchorRect.right\r\n\r\n } else if (anchorPoint == AnchorPoint.BottomRightCorner) {\r\n style.top = anchorRect.bottom\r\n style.left = anchorRect.right\r\n\r\n } else if (anchorPoint == AnchorPoint.BottomLeftCorner) {\r\n style.top = anchorRect.bottom\r\n style.left = anchorRect.left - contentWidth\r\n }\r\n\r\n return {\r\n ...style,\r\n bottom: style.top + contentHeight,\r\n right: style.left + contentWidth\r\n }\r\n}\r\n\r\nexport const isRectangleOutside = (collider: IRectangle, bounds: IRectangle): IRectangleOutsideResult => {\r\n let result: IRectangleOutsideResult = {\r\n isOutside: false,\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n }\r\n if (collider.left < bounds.left) {\r\n result.isOutside = true;\r\n result.left = collider.left - bounds.left\r\n }\r\n if (collider.bottom > bounds.bottom) {\r\n result.isOutside = true;\r\n result.bottom = collider.bottom - bounds.bottom\r\n }\r\n if (collider.top < bounds.top) {\r\n result.isOutside = true;\r\n result.top = collider.top - bounds.top\r\n }\r\n if (collider.right > bounds.right) {\r\n result.isOutside = true;\r\n result.right = collider.right - bounds.right\r\n }\r\n return result;\r\n}\r\n\r\nexport const getTestAnchorsForPreferredAnchor = (anchorPoint) => {\r\n if (anchorPoint == AnchorPoint.TopLeftCorner) {\r\n return [\r\n AnchorPoint.TopLeftCorner,\r\n AnchorPoint.BottomLeftCorner,\r\n AnchorPoint.LeftVerticalCenter,\r\n AnchorPoint.TopAlignCenter,\r\n AnchorPoint.BottomAlignCenter,\r\n AnchorPoint.TopRightCorner,\r\n AnchorPoint.BottomRightCorner,\r\n AnchorPoint.RightVerticalCenter]\r\n\r\n } else if (anchorPoint == AnchorPoint.BottomLeftCorner) {\r\n return [\r\n AnchorPoint.BottomLeftCorner,\r\n AnchorPoint.TopLeftCorner,\r\n AnchorPoint.LeftVerticalCenter,\r\n AnchorPoint.TopAlignCenter,\r\n AnchorPoint.BottomAlignCenter,\r\n AnchorPoint.TopRightCorner,\r\n AnchorPoint.BottomRightCorner,\r\n AnchorPoint.RightVerticalCenter]\r\n\r\n } else if (anchorPoint == AnchorPoint.LeftVerticalCenter) {\r\n return [\r\n AnchorPoint.LeftVerticalCenter,\r\n AnchorPoint.RightVerticalCenter]\r\n\r\n } else if (anchorPoint == AnchorPoint.TopAlignCenter) {\r\n return [\r\n AnchorPoint.TopAlignCenter,\r\n AnchorPoint.TopAlignLeft,\r\n AnchorPoint.TopAlignRight,\r\n AnchorPoint.BottomAlignCenter,\r\n AnchorPoint.BottomAlignLeft,\r\n AnchorPoint.BottomAlignRight,\r\n ]\r\n\r\n } else if (anchorPoint == AnchorPoint.TopRightCorner) {\r\n return [\r\n AnchorPoint.TopRightCorner,\r\n AnchorPoint.BottomRightCorner,\r\n AnchorPoint.RightVerticalCenter,\r\n AnchorPoint.TopAlignCenter,\r\n AnchorPoint.BottomAlignCenter,\r\n AnchorPoint.TopLeftCorner,\r\n AnchorPoint.BottomLeftCorner,\r\n AnchorPoint.LeftVerticalCenter]\r\n\r\n } else if (anchorPoint == AnchorPoint.BottomRightCorner) {\r\n return [\r\n AnchorPoint.BottomRightCorner,\r\n AnchorPoint.TopRightCorner,\r\n AnchorPoint.RightVerticalCenter,\r\n AnchorPoint.BottomAlignCenter,\r\n AnchorPoint.TopAlignCenter,\r\n AnchorPoint.BottomLeftCorner,\r\n AnchorPoint.TopLeftCorner,\r\n AnchorPoint.LeftVerticalCenter]\r\n\r\n } else if (anchorPoint == AnchorPoint.RightVerticalCenter) {\r\n return [\r\n AnchorPoint.RightVerticalCenter,\r\n AnchorPoint.TopRightCorner,\r\n AnchorPoint.BottomRightCorner,\r\n AnchorPoint.BottomAlignCenter,\r\n AnchorPoint.TopAlignCenter,\r\n AnchorPoint.BottomLeftCorner,\r\n AnchorPoint.TopLeftCorner,\r\n AnchorPoint.LeftVerticalCenter]\r\n\r\n } else if (anchorPoint == AnchorPoint.BottomAlignCenter) {\r\n return [\r\n AnchorPoint.BottomAlignCenter,\r\n AnchorPoint.TopAlignCenter]\r\n\r\n } else if (anchorPoint == AnchorPoint.TopAlignLeft) {\r\n return [\r\n AnchorPoint.TopAlignLeft,\r\n AnchorPoint.TopAlignRight,\r\n AnchorPoint.BottomAlignLeft,\r\n AnchorPoint.BottomAlignRight]\r\n\r\n } else if (anchorPoint == AnchorPoint.TopAlignRight) {\r\n return [\r\n AnchorPoint.TopAlignRight,\r\n AnchorPoint.TopAlignLeft,\r\n AnchorPoint.BottomAlignRight,\r\n AnchorPoint.BottomAlignLeft]\r\n\r\n } else if (anchorPoint == AnchorPoint.BottomAlignLeft) {\r\n return [\r\n AnchorPoint.BottomAlignLeft,\r\n AnchorPoint.BottomAlignRight,\r\n AnchorPoint.TopAlignLeft,\r\n AnchorPoint.TopAlignRight]\r\n\r\n } else if (anchorPoint == AnchorPoint.BottomAlignRight) {\r\n return [\r\n AnchorPoint.BottomAlignRight,\r\n AnchorPoint.BottomAlignLeft,\r\n AnchorPoint.TopAlignRight,\r\n AnchorPoint.TopAlignLeft]\r\n }\r\n return null;\r\n}\r\n\r\nexport const getWindowRect = () => {\r\n return { top: 0, left: 0, right: window.innerWidth, bottom: window.innerHeight }\r\n}\r\n\r\nexport const getAnchoredPositionResult = (contentRect: IRectangle, anchorRect: IRectangle, preferedAnchorPoint): Partial<{\r\n anchorPoint: AnchorPoint;\r\n bounds: IRectangle;\r\n}> => {\r\n let windowRect = getWindowRect()\r\n let bestChoice: IRectangle | undefined\r\n let bestAnchorPoint: AnchorPoint | undefined\r\n let testAnchors = getTestAnchorsForPreferredAnchor(preferedAnchorPoint);\r\n if(testAnchors) {\r\n for (let i = 0; i < testAnchors.length; i++) {\r\n let testAnchor = testAnchors[i];\r\n let positionedRect = getRectForAnchor(contentRect, anchorRect, testAnchor)\r\n if (i == 0) {\r\n bestChoice = positionedRect;\r\n bestAnchorPoint = testAnchor;\r\n }\r\n var result = isRectangleOutside(positionedRect, windowRect);\r\n if (!result.isOutside) {\r\n bestChoice = positionedRect;\r\n bestAnchorPoint = testAnchor;\r\n break;\r\n }\r\n }\r\n }\r\n \r\n return {\r\n bounds: bestChoice,\r\n anchorPoint: bestAnchorPoint\r\n }\r\n}\r\n\r\nexport const getAnchoredPositionForPortal = (contentRect: IRectangle, anchorRect: IRectangle, preferedAnchorPoint): IRectangle | undefined => {\r\n let result = getAnchoredPositionResult(contentRect, anchorRect, preferedAnchorPoint)\r\n return result.bounds\r\n}","import { StyledText } from 'components/helpers/StyledText';\r\nimport React from 'react';\r\nimport { ScreenRef } from './ActionEvent';\r\nimport { ActionRef } from './ActionRef';\r\nimport { Canvas } from './Canvas';\r\nimport { CollectionRef } from './CollectionRef';\r\nimport { DynamicRender } from './DynamicRender';\r\nimport { FieldRef } from './FieldRef';\r\nimport { ActionHandler, ComponentStyles, getActionName, IEventScope, IVisibilityContainer } from './types';\r\n\r\nlet maxDepth = 8;\r\n\r\nexport type RenderFunc = (event:RenderEvent) => any;\r\n\r\nexport type RenderContext = {\r\n designMode?:boolean;\r\n activeEditId?:string;\r\n}\r\nexport class RenderEvent {\r\n\r\n canvas:Canvas;\r\n scope:IEventScope;\r\n depth:number;\r\n eventValue:any;\r\n visibilityContainer:IVisibilityContainer;\r\n keyPrefix:string;\r\n context:RenderContext;\r\n\r\n constructor(canvas:Canvas,context?:RenderContext){\r\n this.canvas = canvas;\r\n this.depth = 1;\r\n this.context = context || {};\r\n }\r\n \r\n create(scope:IEventScope):RenderEvent{\r\n let child = new RenderEvent(this.canvas);\r\n child.scope = scope;\r\n child.eventValue = this.eventValue;\r\n child.visibilityContainer = this.visibilityContainer;\r\n child.depth = this.depth + 1;\r\n child.context = this.context;\r\n if (child.depth > maxDepth){\r\n throw \"Maximum nested draw depth reached (\" + maxDepth + \")\";\r\n }\r\n return child;\r\n }\r\n\r\n createScope(name:string,value:any):RenderEvent{\r\n return this.create({...this.scope,[name]:value});\r\n }\r\n\r\n forCollectionRow(collection:CollectionRef,row:any,key:any):RenderEvent{\r\n let childEvent = this.create({...this.scope,[collection.name]:row});\r\n childEvent.keyPrefix = key;\r\n return childEvent;\r\n }\r\n\r\n field = (field:string):FieldRef => {\r\n return this.canvas.getFieldRef(field,this.scope);\r\n }\r\n\r\n collection = (collection:string):CollectionRef => {\r\n return this.canvas.getCollectionRef(collection,this.scope)\r\n }\r\n \r\n get designMode():boolean {\r\n return this.context && this.context.designMode;\r\n }\r\n\r\n action = (action:ActionHandler | string):ActionRef => {\r\n let canvas = this.canvas;\r\n let actionName = getActionName(action);\r\n if (!actionName) return null;\r\n \r\n let actionRef = new ActionRef(canvas,actionName,this.scope);\r\n let def = this.canvas.actions[actionName];\r\n actionRef.def = def;\r\n return actionRef;\r\n }\r\n\r\n \r\n getValue = (expr:string):any => {\r\n return this.canvas.getValue(expr,{scope:this.scope,value:this.eventValue});\r\n }\r\n\r\n getBlockState():any {\r\n return this.canvas.blockState[\"$blockState\"];\r\n }\r\n\r\n setBlockState(values:any){\r\n let newState = {...this.getBlockState(),...values};\r\n this.canvas.blockState[\"$blockState\"] = newState;\r\n }\r\n screen:ScreenRef;\r\n\r\n \r\n getImageUrl(filename:string): string {\r\n return this.canvas.app.getImageUrl(filename);\r\n }\r\n\r\n render(content:any[] | any):any{\r\n if (Array.isArray(content)){\r\n return DynamicRender.render(this,content);\r\n }\r\n return DynamicRender.render(this,[content]);\r\n }\r\n \r\n \r\n computeStyles(defined:string,override?:string):ComponentStyles{\r\n return StyledText.computeStyles(defined,override);\r\n }\r\n}","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { AnchorPoint, getAnchoredPositionResult, getWindowRect, IRectangle, ZeroRect } from '../helpers/AnchorPoint';\r\n\r\ninterface IPopupProps {\r\n attachedRef: HTMLElement|React.ReactInstance|{x:number,y:number}| {top:number,bottom:number,left:number,right:number}\r\n showOnSide?: boolean \r\n anchorPoint?: AnchorPoint\r\n debugTag?:any\r\n render: (props:{onResize:()=>void}) => React.ReactElement\r\n onForceClose:(target:HTMLElement,isTop:boolean)=>void\r\n onWheel?:(e:React.MouseEvent) => boolean\r\n onAnchored?:({anchorPoint:AnchorPoint}) => void\r\n zIndex?:number;\r\n withCover?:boolean;\r\n}\r\n\r\ninterface IPopupState {\r\n node: HTMLElement | null\r\n contentsRef: React.RefObject | null\r\n}\r\n\r\nlet popupId = 0;\r\n\r\nlet getAnchorPoint = (anchorRect: IRectangle, showOnSide?: boolean): AnchorPoint => {\r\n let windowRect = getWindowRect();\r\n let windowWidth = windowRect.right - windowRect.left;\r\n let isOnRight = false;\r\n if (anchorRect.left > windowRect.right - windowWidth / 2) {\r\n isOnRight = true;\r\n }\r\n if (showOnSide) {\r\n if (isOnRight) {\r\n return AnchorPoint.LeftVerticalCenter\r\n }\r\n return AnchorPoint.RightVerticalCenter\r\n }\r\n if (isOnRight) {\r\n return AnchorPoint.BottomAlignRight\r\n }\r\n return AnchorPoint.BottomAlignLeft\r\n}\r\n\r\nlet getUpdateMenuPosition = (anchorRect:IRectangle,menuRect:IRectangle, \r\n options:{showOnSide?:boolean, anchorPoint?:AnchorPoint}):{rect:IRectangle,anchoredTo:AnchorPoint} => {\r\n \r\n if (anchorRect == null) anchorRect = ZeroRect\r\n if (menuRect == null) menuRect = ZeroRect\r\n\r\n let positionResult;\r\n if(options.anchorPoint) {\r\n positionResult = getAnchoredPositionResult(menuRect, anchorRect, options.anchorPoint)\r\n }\r\n else {\r\n positionResult = getAnchoredPositionResult(menuRect, anchorRect, getAnchorPoint(anchorRect, options.showOnSide))\r\n }\r\n\r\n let newContentRect = positionResult.bounds;\r\n if(newContentRect == null) {\r\n newContentRect = menuRect\r\n }\r\n return {\r\n rect: newContentRect,\r\n anchoredTo: positionResult.anchorPoint\r\n }\r\n} \r\n\r\nexport class Popup extends React.Component {\r\n\r\n static popupStack:Popup[] = [];\r\n\r\n state = {\r\n node: null,\r\n contentsRef: null,\r\n isPositionedOnce: false\r\n }\r\n\r\n handleWheel = e => {\r\n let contentEle = this.getContentEle()\r\n\r\n if(contentEle != null) {\r\n if(document.body.contains(contentEle)) {\r\n if(this.props.onWheel) {\r\n this.props.onWheel(e)\r\n } \r\n }\r\n }\r\n }\r\n\r\n handleScroll = e => {\r\n let contentEle = this.getContentEle()\r\n\r\n if(contentEle != null) {\r\n if(!document.body.contains(contentEle)) {\r\n return \r\n }\r\n\r\n if(contentEle === e.target || contentEle.contains(e.target)) {\r\n return\r\n }\r\n }\r\n\r\n let node = this.state.node\r\n if(node != null && (node as HTMLElement).contains(e.target)) {\r\n console.log('force closing of popup by mistake')\r\n }\r\n return;\r\n // this.props.onForceClose(e,true)\r\n } \r\n\r\n getIsTop():boolean {\r\n if (Popup.popupStack.length){\r\n return (this == Popup.popupStack[Popup.popupStack.length -1]);\r\n }\r\n return true;\r\n }\r\n\r\n getStackPosition():number {\r\n for(let i = 0; i < Popup.popupStack.length;i++){\r\n if (this == Popup.popupStack[i]) return i;\r\n }\r\n return -1;\r\n }\r\n\r\n handlePossibleOutsideClick = e => {\r\n let isTop = this.getIsTop();\r\n \r\n let contentEle = this.getContentEle()\r\n if(contentEle != null) {\r\n if(contentEle === e.target || contentEle.contains(e.target)) {\r\n return\r\n }\r\n let popupContainer = e.target.closest('[data-popup-stack]');\r\n if (popupContainer){\r\n let popupStackPosition = parseInt(popupContainer.getAttribute('data-popup-stack',10));\r\n if (popupStackPosition > this.getStackPosition()){\r\n return;\r\n }\r\n }\r\n }\r\n let attachedEle = this.getAttachedEle()\r\n if(attachedEle != null) {\r\n if(attachedEle === e.target || attachedEle.contains(e.target)) {\r\n return\r\n }\r\n } \r\n this.props.onForceClose(e.target,isTop)\r\n }\r\n\r\n componentDidMount() {\r\n console.log('popup mounting')\r\n window.addEventListener('scroll', this.handleScroll, true)\r\n window.addEventListener('wheel', this.handleWheel, true)\r\n window.addEventListener('mouseup', this.handlePossibleOutsideClick)\r\n window.addEventListener('touchstart', this.handlePossibleOutsideClick) \r\n let node = document.createElement('div')\r\n document.body.appendChild(node);\r\n Popup.popupStack.push(this);\r\n this.setState(state => {\r\n return {\r\n node\r\n }\r\n })\r\n }\r\n\r\n isAttachedToPosition() {\r\n let {attachedRef} = this.props\r\n if(attachedRef != null) {\r\n let {x,y} = attachedRef as any\r\n return typeof x === \"number\" && typeof y === \"number\"\r\n }\r\n return false\r\n }\r\n\r\n isAttachedToRect() {\r\n let {attachedRef} = this.props\r\n if(attachedRef != null) {\r\n let {top,bottom,left,right,width,height} = attachedRef as any\r\n return typeof top === \"number\" && typeof bottom === \"number\" \r\n && typeof left === \"number\" && typeof right === \"number\" \r\n }\r\n return false\r\n }\r\n\r\n getAttachedEle():HTMLElement | null {\r\n if(this.isAttachedToPosition() || this.isAttachedToRect()) return null\r\n let { attachedRef } = this.props\r\n if(attachedRef != null) {\r\n return ReactDOM.findDOMNode(attachedRef as any) as HTMLElement\r\n } \r\n return null\r\n }\r\n\r\n getContentEle():HTMLElement | null {\r\n let { contentsRef } = this.state\r\n if(contentsRef != null) {\r\n return ReactDOM.findDOMNode(contentsRef) as HTMLElement\r\n } \r\n return null\r\n }\r\n\r\n updatePosition = () => {\r\n let { attachedRef,showOnSide,anchorPoint} = this.props \r\n let contentEle = this.getContentEle()\r\n let attachedEle = this.getAttachedEle()\r\n let attachedRect:IRectangle | null = null\r\n if(this.isAttachedToPosition()) { \r\n let {x,y} = attachedRef as {x:number, y:number}\r\n attachedRect = {left: x, right: x, top: y, bottom: y,}\r\n }\r\n else if(this.isAttachedToRect()) {\r\n attachedRect = attachedRef as {top:number,bottom:number,left:number,right:number}\r\n }\r\n else if(attachedEle != null) {\r\n attachedRect = attachedEle.getBoundingClientRect()\r\n }\r\n if (contentEle != null && attachedRect != null) { \r\n console.log(\"Updating popup position\"); \r\n let contentRect = contentEle.getBoundingClientRect()\r\n let result = getUpdateMenuPosition(attachedRect,contentRect,{showOnSide,anchorPoint})\r\n let positionUpdated = false\r\n for(let key in result.rect) {\r\n if(key == 'top' || key == 'left') {\r\n let before = contentEle.style[key]\r\n let after = result.rect[key] + 'px'\r\n if(before != after) {\r\n contentEle.style[key] = result.rect[key] + 'px'\r\n positionUpdated = true\r\n }\r\n } \r\n }\r\n if(positionUpdated) {\r\n //console.log('position updated')\r\n //this.setState({})\r\n }\r\n if(this.props.onAnchored) {\r\n this.props.onAnchored({anchorPoint:result.anchoredTo})\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n console.log('popup unmounting')\r\n window.removeEventListener('wheel', this.handleWheel) \r\n window.removeEventListener('mouseup', this.handlePossibleOutsideClick)\r\n window.removeEventListener('touchstart', this.handlePossibleOutsideClick);\r\n this.updateStack();\r\n let { node } = this.state\r\n if (node != null) {\r\n document.body.removeChild(node)\r\n }\r\n }\r\n\r\n updateStack(){\r\n let stack = Popup.popupStack;\r\n let index = stack.indexOf(this);\r\n if (index != -1){\r\n Popup.popupStack = Popup.popupStack.slice(0,index);\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n this.updatePosition()\r\n }\r\n\r\n handleContentsRef = (contentsRef) => {\r\n this.setState(state => {\r\n return { \r\n contentsRef,\r\n }\r\n })\r\n }\r\n\r\n renderContents() {\r\n let containerStyle: React.CSSProperties = {\r\n position: 'fixed',\r\n zIndex:this.props.zIndex\r\n } \r\n let cover; \r\n if (this.props.withCover){\r\n cover =
\r\n } \r\n let popupStackPosition = this.getStackPosition();\r\n return (<>\r\n
\r\n {this.props.render({onResize: this.updatePosition})}\r\n
\r\n {cover}\r\n )\r\n }\r\n\r\n render() {\r\n let { node } = this.state\r\n if (node != null) {\r\n let contents = this.renderContents()\r\n return ReactDOM.createPortal(contents, node)\r\n }\r\n return null\r\n }\r\n}","import React from 'react';\r\n\r\n\r\nexport class LoadingDots extends React.Component<{}>{\r\n render(): React.ReactNode {\r\n return (
\r\n
\r\n
\r\n
\r\n
)\r\n }\r\n}","import { RenderEvent } from 'core';\r\nimport React from 'react';\r\n \r\nexport interface IIcon {\r\n type:'svg';\r\n viewBox:string\r\n content:string\r\n name?:string;\r\n label?:string;\r\n}\r\n\r\nexport var icons:{[name:string]:IIcon} = {};\r\n\r\nexport function svgIcon(name:string,options:{viewBox:string},content:string){\r\n icons[name] = {type:'svg',viewBox:options.viewBox,content};\r\n}\r\n \r\nsvgIcon(\"bill\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"users\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"print\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"money\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"building\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"list\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"folder\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"analysis\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"sitemap\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"capture\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"help\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"edit\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"link\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"plus\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"search\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"table\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"settings\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"home\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"code\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"layout\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"back\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"circleCheck\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"check\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"cart\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"book\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"exchange\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"trash\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"robot\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"refresh\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"envelope\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"unlock\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"lock\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"shop\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"truck\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"minus\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"screw\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"location\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"clock\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"navMenu\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"columns\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"close\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"calendar\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"exclamation\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"favorite\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"textField\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"database\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"menuDots\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"angle-right\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"filter\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"brush\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"video\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"arrows-v\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"draggable-dots\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"check-square\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"image\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"vertical-dots\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"square\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"arrow-left\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"arrow-right\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"user\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"phone\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"stop-circle\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"play-circle\",{viewBox:\"0 0 24 24\"},``);\r\nsvgIcon(\"weight\",{viewBox:\"0 0 24 24\"},``);\r\n//svgIcon(\"minus\",{viewBox:\"0 0 24 24\"},``);\r\nexport class Icon extends React.Component<{icon:string,fill?:string,size?:any,className?:string}>{\r\n render(){\r\n let icon = this.props.icon;\r\n if (!icon) return null;\r\n let iconDef = icons[icon];\r\n if (iconDef){\r\n let html = {__html:iconDef.content};\r\n let style:React.CSSProperties = {display:\"block\",fill:this.props.fill};\r\n let size = this.props.size;\r\n if (size){\r\n style.width = size;\r\n style.height = size;\r\n }\r\n return \r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class IconComponent extends React.Component<{event?:RenderEvent,icon:string,styles?:string}>{\r\n render(){\r\n let styles = this.props.event.computeStyles(this.props.styles);\r\n let icon = this.props.icon;\r\n if (!icon) return null;\r\n \r\n let classNames = ['RT-Icon',styles.className];\r\n if (styles.icon){\r\n classNames.push(styles.icon.className);\r\n }\r\n let canvasIcon = this.props.event.canvas.icons[icon];\r\n if (canvasIcon){\r\n let style:React.CSSProperties = {display:\"block\",fill:\"currentColor\"};\r\n return
\r\n \r\n \r\n \r\n
\r\n }\r\n let iconDef = icons[icon];\r\n if (iconDef){\r\n let html = {__html:iconDef.content};\r\n let style:React.CSSProperties = {display:\"block\",fill:\"currentColor\"};\r\n return
\r\n \r\n
\r\n }\r\n return null;\r\n }\r\n}","import { Icon } from 'components/Icon';\r\nimport { RenderEvent } from 'core';\r\nimport React from 'react';\r\n\r\n\r\nexport class StudioToolboxLaunch extends React.Component<{event:RenderEvent}>{\r\n\r\n componentDidMount(): void {\r\n let canvas = this.props.event.canvas;\r\n canvas.app.studioBroadcast.connect(this);\r\n canvas.app.designerToolboxBroadcast.connect(this);\r\n }\r\n\r\n componentWillUnmount(): void {\r\n let canvas = this.props.event.canvas;\r\n canvas.app.studioBroadcast.disconnect(this);\r\n canvas.app.designerToolboxBroadcast.disconnect(this);\r\n }\r\n\r\n render(): React.ReactNode {\r\n let event = this.props.event;\r\n let canvas = event.canvas;\r\n let toolboxElem;\r\n let toolbox = canvas.designerToolbox;\r\n if (toolbox.isOpen){\r\n toolboxElem =
\r\n {event.render(toolbox.content)}\r\n
\r\n }\r\n\r\n let style:React.CSSProperties;\r\n \r\n if (canvas.dragState && canvas.dragState.dragging){\r\n style = {display:\"none\"};\r\n }\r\n else {\r\n style = {display:\"block\"};\r\n }\r\n \r\n let buttonStyle:React.CSSProperties = {padding:\"6px 16px\",borderRadius:999,color:\"#fff\",fontSize:\"14px\",\r\n fontWeight:500,\r\n cursor:\"pointer\",display:\"inline-flex\",alignItems:\"center\",gap:4,border:\"none\",transition:\"background-color 0.15s\"};\r\n let icon;\r\n if (!toolbox.isOpen){\r\n buttonStyle.backgroundColor = \"var(--rt-primary-bg-color)\";\r\n icon =
\r\n \r\n
\r\n }\r\n else {\r\n buttonStyle.backgroundColor = \"#2e3749\";\r\n icon =
\r\n \r\n
\r\n }\r\n return (
\r\n {toolboxElem}\r\n
\r\n {icon}\r\n
Add element
\r\n
\r\n
)\r\n\r\n }\r\n\r\n handleClick = (e:React.MouseEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n let canvas = this.props.event.canvas;\r\n canvas.designerToolbox.isOpen = !canvas.designerToolbox.isOpen;\r\n canvas.designerToolbox.refresh();\r\n }\r\n}","import React from 'react';\r\nimport { Broadcast } from './Broadcast';\r\n\r\nexport type DragTool = {name:string,value?:string};\r\n\r\nexport type DropPosition = 'after' | 'before' | 'append' | 'replace';\r\nexport class DragState {\r\n _dragging:boolean;\r\n \r\n dragElementId:string;\r\n dragElementContainerId:string;\r\n\r\n highlightIndex:number = -1;\r\n highlightMode:number = 0;\r\n targetHeight:number;\r\n containerHeight:number;\r\n containerRef = React.createRef();\r\n transitionSpeed:string = \"0.25s\";\r\n studioBroadcast:Broadcast;\r\n dropbarBroadcast:Broadcast = new Broadcast();\r\n imageBroadcast:Broadcast = new Broadcast();\r\n\r\n onDragEnd:() => void;\r\n onDragStart:() => void;\r\n onDrop:(e:HTMLElement) => void;\r\n\r\n dragTool:DragTool;\r\n dropTargetId:string;\r\n dropTargetKind:string;\r\n dropTargetContainerRect:DOMRect;\r\n \r\n\r\n dropPosition:DropPosition;\r\n mouseDownPos:{x:number,y:number};\r\n\r\n renderDragImage:() => any;\r\n dragImageTop:number;\r\n dragImageLeft:number;\r\n\r\n scrollPulse:NodeJS.Timeout;\r\n scrollPulseDirection:'up' | 'down';\r\n\r\n expanded:{[name:string]:boolean} = {};\r\n\r\n dropBar: {\r\n left:number;\r\n top:number;\r\n width:number;\r\n }\r\n\r\n constructor(studioBroadcast:Broadcast){\r\n this.studioBroadcast = studioBroadcast;\r\n }\r\n \r\n\r\n refresh(){\r\n this.dropbarBroadcast.refresh();\r\n this.imageBroadcast.refresh();\r\n //this.canvas.update();\r\n }\r\n\r\n setDropbar(top:number,left:number,width:number){\r\n let current= this.dropBar;\r\n if (current && current.top == top && current.left == left && current.width == width) return;\r\n this.dropBar = {\r\n top,\r\n left,\r\n width\r\n };\r\n this.refresh();\r\n }\r\n startDrag(elementId:string,container:string,clientX:number,clientY:number){\r\n \r\n this.dragElementId = elementId;\r\n this.dragElementContainerId = container;\r\n this.dragTool = null;\r\n this.initDrag(clientX,clientY);\r\n }\r\n\r\n endDrag(){\r\n document.removeEventListener(\"mousemove\",this.handleMouseMove,true);\r\n document.removeEventListener(\"mouseup\",this.handleMouseUp,true);\r\n this._dragging = false;\r\n this.dragElementId = null;\r\n this.pendingDropRect = null;\r\n this.dropTargetContainerRect = null;\r\n this.dropTargetKind = null;\r\n this.dragTool = null;\r\n this.dropBar = null;\r\n this.onDragStart = null;\r\n this.renderDragImage = null;\r\n if (this.scrollPulse){\r\n clearTimeout(this.scrollPulse);\r\n }\r\n if (this.onDragEnd){\r\n this.onDragEnd();\r\n this.onDragEnd = null;\r\n }\r\n this.refresh();\r\n this.studioBroadcast.refresh();\r\n }\r\n\r\n startToolDrag(tool:DragTool,clientX:number,clientY:number){\r\n \r\n this.dragElementId = null;\r\n this.dragTool = tool;\r\n this.targetHeight = 45;\r\n this.initDrag(clientX,clientY);\r\n }\r\n\r\n initDrag(clientX:number,clientY:number){\r\n this._dragging = false;\r\n this.containerHeight = this.containerRef.current.offsetHeight;\r\n this.mouseDownPos = {x:clientX,y:clientY};\r\n document.addEventListener(\"mousemove\",this.handleMouseMove,true);\r\n document.addEventListener(\"mouseup\",this.handleMouseUp,true);\r\n this.refresh();\r\n }\r\n\r\n endToolDrag(){\r\n this.endDrag();\r\n }\r\n\r\n get dragging():boolean {\r\n return this._dragging;\r\n }\r\n\r\n setHighlight(index:number){\r\n this.highlightIndex = index;\r\n this.highlightMode = 0;\r\n setTimeout(()=> {this.highlightMode = 1;if (this.refresh) this.refresh()},200);\r\n setTimeout(()=> {this.highlightIndex = -1;if (this.refresh) this.refresh()},1700);\r\n }\r\n\r\n handleMouseUp = (e:MouseEvent) => {\r\n if(this.onDrop && this.dropBar){\r\n this.onDrop(e.target as HTMLElement);\r\n }\r\n this.endDrag();\r\n }\r\n handleMouseMove = (e:MouseEvent) => {\r\n if (window.getSelection) {\r\n let sel = window.getSelection();\r\n if (sel && sel.removeAllRanges) sel.removeAllRanges();\r\n }\r\n if (!this._dragging){\r\n if (Math.abs(this.mouseDownPos.x - e.clientX) > 5 || Math.abs(this.mouseDownPos.y - e.clientY) > 5){\r\n this._dragging = true;\r\n this.studioBroadcast.refresh();\r\n if (this.onDragStart){\r\n this.onDragStart();\r\n }\r\n }\r\n return;\r\n }\r\n\r\n this.dragImageLeft = e.clientX + 2;\r\n this.dragImageTop = e.clientY + 3;\r\n\r\n this.imageBroadcast.refresh();\r\n\r\n let elem = document.elementFromPoint(e.clientX,e.clientY);\r\n let dropBar:HTMLElement;\r\n if (elem){\r\n dropBar = elem.closest('[data-drop-bar]');\r\n if (dropBar) {\r\n if (this.scrollPulse){\r\n clearTimeout(this.scrollPulse);\r\n }\r\n return;\r\n }\r\n }\r\n let dropZone:HTMLElement;\r\n if (elem){\r\n dropZone = elem.closest('[data-drop-zone]');\r\n }\r\n if (!dropZone){\r\n \r\n if (this.dropBar){\r\n this.dropBar = null;\r\n this.dropTargetKind = null;\r\n this.setDropZoneHighlight(null);\r\n this.dropbarBroadcast.refresh();\r\n }\r\n if (this.containerRef.current){\r\n var rect = this.containerRef.current.getBoundingClientRect();\r\n if (e.clientY < rect.top){\r\n if (!this.scrollPulse || this.scrollPulseDirection != \"up\"){\r\n this.scrollPulse = setInterval(this.handleScrollPulse,25);\r\n this.scrollPulseDirection = \"up\";\r\n }\r\n return;\r\n }\r\n else if (e.clientY > rect.bottom){\r\n if (!this.scrollPulse || this.scrollPulseDirection != \"down\"){\r\n this.scrollPulse = setInterval(this.handleScrollPulse,25);\r\n this.scrollPulseDirection = \"down\";\r\n }\r\n return;\r\n }\r\n }\r\n if (this.scrollPulse){\r\n clearTimeout(this.scrollPulse);\r\n }\r\n return;\r\n }\r\n if (this.scrollPulse){\r\n clearTimeout(this.scrollPulse);\r\n }\r\n \r\n \r\n let dropTarget = elem.closest('[data-drop-target]');\r\n if (dropTarget){\r\n let noDrop = elem.closest('[data-no-drop]');\r\n if (noDrop && dropTarget.contains(noDrop)) return;\r\n\r\n if (!dropZone.contains(dropTarget)) return;\r\n let isChildofDragElement = dropTarget.closest('[data-elem-id=\"' + this.dragElementId + '\"]');\r\n if (isChildofDragElement) return;\r\n\r\n let dropTargetRec = dropTarget.getBoundingClientRect();\r\n this.dropTargetId = dropTarget.getAttribute(\"data-drop-target\");\r\n let targetContainer = dropTarget.parentElement.closest(\"[data-drop-target]\");\r\n if (targetContainer){\r\n this.setDropZoneHighlight(targetContainer.getBoundingClientRect());\r\n var containerId = targetContainer.getAttribute(\"data-drop-target\");\r\n if (containerId != this.dragElementContainerId){\r\n this.dropTargetKind = targetContainer.getAttribute(\"data-target-kind\"); \r\n }\r\n else {\r\n this.dropTargetKind = null;\r\n }\r\n }\r\n else {\r\n this.dropTargetKind = null;\r\n this.setDropZoneHighlight(null);\r\n }\r\n \r\n let position = dropTarget.getAttribute(\"data-drop-position\");\r\n if (position == \"append\"){\r\n this.dropPosition = \"append\";\r\n this.setDropbar(dropTargetRec.top + (dropTargetRec.height/2),dropTargetRec.left + 20,dropTargetRec.width - 50);\r\n }\r\n else if (position == \"replace\"){\r\n this.dropPosition = \"replace\";\r\n this.setDropbar(dropTargetRec.top + (dropTargetRec.height/2),dropTargetRec.left + 20,dropTargetRec.width - 50);\r\n }\r\n else if (e.clientY > dropTargetRec.top + (dropTargetRec.height/2)){\r\n this.dropPosition = \"after\";\r\n this.setDropbar(dropTargetRec.top + dropTargetRec.height + 10,dropTargetRec.left + 20,dropTargetRec.width - 50);\r\n }\r\n else {\r\n this.dropPosition = \"before\";\r\n this.setDropbar(dropTargetRec.top,dropTargetRec.left + 20,dropTargetRec.width - 50);\r\n }\r\n return;\r\n }\r\n \r\n }\r\n\r\n setDropZoneTimer;\r\n pendingDropRect:DOMRect;\r\n setDropZoneHighlight(rect:DOMRect){\r\n if (!rect){\r\n if (!this.pendingDropRect){\r\n return;\r\n }\r\n }\r\n else if (this.pendingDropRect){\r\n let pending = this.pendingDropRect;\r\n if (pending.top == rect.top && pending.left == rect.left \r\n && pending.width == rect.width && pending.height){\r\n return;\r\n }\r\n }\r\n if (this.setDropZoneTimer){\r\n clearTimeout(this.setDropZoneTimer);\r\n }\r\n this.pendingDropRect = rect;\r\n this.setDropZoneTimer = setTimeout(()=> {\r\n this.dropTargetContainerRect = this.pendingDropRect\r\n this.dropbarBroadcast.refresh();\r\n },200);\r\n }\r\n\r\n handleScrollPulse = () => {\r\n let container = this.containerRef.current;\r\n if (!container){\r\n clearTimeout(this.scrollPulse);\r\n }\r\n if (this.scrollPulseDirection == \"up\"){\r\n container.scrollTop -= 20;\r\n }\r\n else {\r\n container.scrollTop += 20;\r\n }\r\n }\r\n}\r\n\r\nexport class DropBar extends React.Component<{dragState:DragState}>{\r\n\r\n componentDidMount(): void {\r\n this.props.dragState.dropbarBroadcast.connect(this);\r\n }\r\n componentWillUnmount(): void {\r\n this.props.dragState.dropbarBroadcast.disconnect(this);\r\n }\r\n\r\n render(): React.ReactNode {\r\n let dragState = this.props.dragState;\r\n\r\n if (!dragState.dragging) return null;\r\n let dropBar = dragState.dropBar;\r\n let dropBarElem = null;\r\n if (dropBar){\r\n let containerRect = dragState.containerRef.current.getBoundingClientRect();\r\n if (dropBar.top < containerRect.top || dropBar.top > containerRect.bottom){\r\n return null;\r\n }\r\n let targetContainerOutline;\r\n if (dragState.dropTargetContainerRect){\r\n let rect = dragState.dropTargetContainerRect;\r\n targetContainerOutline = (
);\r\n }\r\n dropBarElem = (<>\r\n
\r\n
\r\n
\r\n
\r\n {targetContainerOutline}\r\n )\r\n }\r\n return dropBarElem;\r\n }\r\n\r\n dragOver = (e:React.DragEvent) => {\r\n var target = e.target as HTMLElement;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.dataTransfer.dropEffect = \"move\";\r\n return true;\r\n\r\n }\r\n\r\n dragEnter = (e:React.DragEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n onDrop = (e:React.DragEvent) => {\r\n let dragState = this.props.dragState;\r\n if (dragState.onDrop){\r\n dragState.onDrop(e.target as HTMLElement);\r\n }\r\n }\r\n}\r\n\r\nexport class DragImage extends React.Component<{dragState:DragState}>{\r\n\r\n componentDidMount(): void {\r\n this.props.dragState.imageBroadcast.connect(this);\r\n }\r\n componentWillUnmount(): void {\r\n this.props.dragState.imageBroadcast.disconnect(this);\r\n }\r\n\r\n render(): React.ReactNode {\r\n let dragState = this.props.dragState;\r\n\r\n if (!dragState || !dragState.dragging) return null;\r\n if (!dragState.renderDragImage) return null;\r\n let target;\r\n /*\r\n if (dragState.dropTargetKind){\r\n target =
Move to {dragState.dropTargetKind}
\r\n }\r\n */\r\n return
\r\n {dragState.renderDragImage()}\r\n {target}\r\n
\r\n\r\n }\r\n\r\n}\r\n\r\n","import { Canvas, PageContainer } from 'core';\r\nimport React from 'react';\r\n\r\nexport class PageContextMenu extends React.Component<{page:string,onClose:() => void,pageParams:any,onLoaded:() => void}>{\r\n render(): React.ReactNode {\r\n let pageProps = {\r\n \"@page_name\":this.props.page,\r\n \"@page_params\":this.props.pageParams\r\n }\r\n return
\r\n \r\n
\r\n }\r\n\r\n handleLoaded = (canvas:Canvas) => {\r\n if (this.props.onLoaded){\r\n this.props.onLoaded();\r\n }\r\n }\r\n\r\n\r\n}","import { ICanvasError, IEventOptions, IPageLaunchParams, IRecordChangedEvent} from \"./types\";\r\nimport React from 'react';\r\nimport { RenderEvent } from \"./RenderEvent\";\r\nimport { Canvas } from \"./Canvas\";\r\nimport { ActionRef } from \"./ActionRef\";\r\nimport { DynamicRender } from \"./DynamicRender\";\r\nimport { IBotInfo } from \"./BotState\";\r\nimport { Application, ContextMenuHandler, ContextMenuHandlerArgs } from \"core\";\r\nimport { Popup } from \"components/popups/Popup\";\r\nimport { LoadingDots } from \"components/helpers/LoadingDots\";\r\nimport { StudioToolboxLaunch } from \"components/studio/StudioToolboxLaunch\";\r\nimport { DragImage, DropBar } from \"./DragState\";\r\nimport { AnchorPoint } from \"components/helpers/AnchorPoint\";\r\nimport { PageContextMenu } from \"components/PageContextMenu\";\r\n\r\ninterface IPageContainerProps {\r\n page:IPageLaunchParams;\r\n parent?:Canvas,\r\n layer?:any,\r\n layerZIndex?:number,\r\n botInfo?:IBotInfo,\r\n autoRefresh?:number;\r\n canvas?:Canvas;\r\n onClose?:any,\r\n handleRecordChanged?:(recordEvent:IRecordChangedEvent) => Promise,\r\n eventValue?:any,\r\n event?:RenderEvent,\r\n onLoaded?:(canvas:Canvas) => void,\r\n noPadding?:boolean;\r\n asWidget?:boolean;\r\n unableToLoadContent?:() => any\r\n}\r\n\r\nexport class PageContainer extends React.Component{\r\n\r\n canvas:Canvas;\r\n pageLoadError:any;\r\n\r\n constructor(props){\r\n super(props);\r\n if (this.props.canvas){\r\n this.canvas = this.props.canvas;\r\n return;\r\n }\r\n\r\n let parent = this.props.parent;\r\n let renderEvent = this.props.event;\r\n if (!parent){\r\n if (renderEvent){\r\n parent = renderEvent.canvas;\r\n }\r\n }\r\n this.canvas = new Canvas(parent);\r\n if (renderEvent){\r\n this.canvas.visibiltyContainer = renderEvent.visibilityContainer;\r\n }\r\n if (this.props.autoRefresh){\r\n this.canvas.setAutoRefresh(this.props.autoRefresh);\r\n }\r\n this.canvas.botInfo = this.props.botInfo;\r\n this.canvas.launchParams = this.props.page;\r\n let settings = Application.instance.canvasSettingsCache.getSettings(this.props.page.name);\r\n this.canvas.loadSettings(settings);\r\n if (this.canvas.launchParams.name == \"pages/Dev/Components.TestRecordFunction:default\"){\r\n if (window.parent){\r\n this.canvas.studioSource = (window.parent as any)[\"playgroundSource\"];\r\n }\r\n }\r\n }\r\n\r\n async componentDidMount(){\r\n let canvas = this.canvas;\r\n if (!this.props.canvas){\r\n canvas.app.registerScreen(this);\r\n canvas.layer = this.props.layer;\r\n if (!canvas.layer){\r\n if (canvas.parent){\r\n if (canvas.parent.layer == \"workspace\"){\r\n canvas.layer = \"workspace-tab\";\r\n }\r\n else {\r\n canvas.layer = \"embedded\";\r\n }\r\n }\r\n else {\r\n canvas.layer = \"layout\";\r\n }\r\n }\r\n canvas.layerZIndex = this.props.layerZIndex;\r\n canvas.closeDialogBox = this.props.onClose;\r\n canvas.handleRecordChanged = this.props.handleRecordChanged;\r\n canvas.noPadding = this.props.noPadding;\r\n canvas.asWidget = this.props.asWidget;\r\n await this.start(canvas,false);\r\n }\r\n\r\n \r\n // todo: if waiting for data hydrate\r\n // botState.waitingForDataHydrate(canvas); // if data already received populate\r\n /*\r\n if (canvas.botInfo && canvas.botInfo.onLoaded){\r\n canvas.botInfo.onLoaded();\r\n }\r\n */\r\n }\r\n\r\n \r\n componentWillUnmount(){\r\n this.canvas.updateComponent = null;\r\n if (!this.props.canvas){\r\n this.canvas.app.unregisterScreen(this);\r\n }\r\n }\r\n\r\n render(){\r\n let canvas = this.canvas;\r\n if (canvas.renderDisabled) return null;\r\n if (canvas.loadError && this.props.unableToLoadContent){\r\n return this.props.unableToLoadContent();\r\n }\r\n if (canvas.loadError && (canvas.layer == \"dialog\" || canvas.layer == \"lookup\")){\r\n /*\r\n return
\r\n
\r\n
Screen could not be loaded
\r\n
\r\n \r\n
\r\n
\r\n
\r\n */\r\n let msg:any = <>Could not open screen: {this.props.page.name};\r\n let error:ICanvasError = {$$error:true,messages:[msg]};\r\n let dialog = canvas.app.renderError(canvas,error);\r\n dialog = React.cloneElement(dialog,{layer:\"dialog\",onClose:() => canvas.closeDialogBox({continue:false})});\r\n return dialog;\r\n }\r\n return \r\n }\r\n\r\n async start(canvas:Canvas,isCachedVersionRefresh:boolean){\r\n \r\n canvas.app.spinner.show();\r\n let action = new ActionRef(canvas,\"begin\",null);\r\n try {\r\n let options:IEventOptions = {value:this.props.eventValue,title:\"Attempting to load screen: \" + this.props.page.name};\r\n options.isCachedVersionRefresh = isCachedVersionRefresh;\r\n canvas.initialized = false;\r\n let result = await canvas.triggerAction(action,options);\r\n if (!result.continue){\r\n // start failed; \r\n \r\n canvas.loadError = \"Unable to load screen: \" + this.props.page.name;\r\n this.forceUpdate();\r\n return;\r\n }\r\n }\r\n catch(e){\r\n canvas.app.spinner.hide();\r\n canvas.initialized = false;\r\n if (e == \"stopped\"){\r\n if (canvas.closeDialogBox){\r\n canvas.closeDialogBox({continue:false});\r\n }\r\n else {\r\n canvas.renderDisabled = true;\r\n }\r\n }\r\n else {\r\n canvas.loadError = e.toString();\r\n }\r\n this.forceUpdate();\r\n canvas.update();\r\n return;\r\n }\r\n canvas.app.spinner.hide();\r\n \r\n // todo: if waiting for data hydration then not loaded\r\n if (canvas.botInfo && canvas.botInfo.dataRequestId){\r\n canvas.botInfo.botState.waitingForData(canvas);\r\n }\r\n else {\r\n if (!canvas.displayContent){\r\n if (canvas.closeDialogBox){\r\n canvas.closeDialogBox({continue:true});\r\n }\r\n return;\r\n }\r\n canvas.loaded();\r\n if (canvas.layer == \"workspace\"){\r\n let suffix = canvas.app.portalTitle || \"Portal\";\r\n if (canvas.title){\r\n document.title = canvas.title + \" - \" + suffix\r\n }\r\n else {\r\n document.title = suffix;\r\n }\r\n }\r\n if (canvas.parent){\r\n canvas.parent.onChildLoaded(canvas);\r\n }\r\n \r\n // canvas.pendingFocusField = undefined;\r\n if (canvas.botInfo && canvas.botInfo.onLoaded){\r\n canvas.botInfo.onLoaded();\r\n }\r\n else if (canvas.layer == \"popup\"){\r\n canvas.update();\r\n canvas.parent.update();\r\n }\r\n else {\r\n canvas.update();\r\n } \r\n if (this.props.onLoaded){\r\n this.props.onLoaded(canvas);\r\n }\r\n }\r\n if (!isCachedVersionRefresh && canvas.loadedFromCache){\r\n if (!this.insideLoadedFromCache(canvas)){\r\n setTimeout(()=> this.start(canvas,true),10);\r\n }\r\n }\r\n }\r\n \r\n insideLoadedFromCache(canvas:Canvas):boolean {\r\n while(canvas.parent){\r\n if (canvas.parent.loadedFromCache) return true;\r\n canvas = canvas.parent;\r\n }\r\n return false;\r\n }\r\n async reload(){\r\n this.canvas.resetData();\r\n await this.start(this.canvas,false);\r\n }\r\n}\r\n\r\nclass CanvasContainer extends React.Component<{canvas:Canvas,page:IPageLaunchParams}>{\r\n\r\n contextMenuHandler:ContextMenuHandler;\r\n \r\n constructor(props){\r\n super(props);\r\n let canvas = this.props.canvas;\r\n this.contextMenuHandler = canvas.app.contextMenuManager.createHandler(canvas,this.handleContextMenuClick);\r\n canvas.contextMenuId = this.contextMenuHandler.id;\r\n }\r\n\r\n componentDidMount(){\r\n let canvas = this.props.canvas;\r\n canvas.app.contextMenuManager.connect(this.contextMenuHandler);\r\n canvas.app.studioBroadcast.connect(this);\r\n canvas.updateComponent = () => {\r\n this.forceUpdate();\r\n }\r\n }\r\n\r\n componentWillUnmount(){ \r\n let canvas = this.props.canvas;\r\n canvas.disconnect();\r\n if (this.contextMenuHandler){\r\n canvas.app.contextMenuManager.disconnect(this.contextMenuHandler);\r\n }\r\n canvas.app.studioBroadcast.disconnect(this);\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<{ canvas: Canvas;page:IPageLaunchParams}>, prevState: Readonly<{}>, snapshot?: any): void {\r\n let canvas = this.props.canvas;\r\n if (canvas.pendingRestart && !canvas.getIsStackCovered() ){\r\n canvas.pendingRestart = false;\r\n canvas.restart();\r\n }\r\n }\r\n\r\n render(){\r\n let canvas = this.props.canvas;\r\n if (!canvas.initialized) return \r\n\r\n let displayContent = canvas.displayContent;\r\n if (displayContent){\r\n let renderEvent = new RenderEvent(canvas);\r\n let contextMenu;\r\n if (this.contextMenuHandler && this.contextMenuHandler.isOpen){\r\n contextMenu = this.renderContextMenu();\r\n }\r\n let popup;\r\n if (canvas.activePopup){\r\n popup = this.renderActivePopup();\r\n }\r\n let designerElem;\r\n if (canvas.designerOpen ){ //&& canvas.dragState\r\n designerElem = <>\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n }\r\n return \r\n {DynamicRender.render(renderEvent,displayContent)}\r\n {contextMenu}\r\n {popup}\r\n {designerElem}\r\n \r\n \r\n }\r\n return null;\r\n\r\n }\r\n\r\n handleContextMenuClick = (args:ContextMenuHandlerArgs) => {\r\n\r\n \r\n this.contextMenuHandler.rect = args.rect;\r\n let elem = args.target.closest('[data-elem-id]');\r\n if (elem){\r\n this.contextMenuHandler.elemId = elem.getAttribute(\"data-elem-id\");\r\n }\r\n else {\r\n this.contextMenuHandler.elemId = null;\r\n }\r\n this.contextMenuHandler.open();\r\n \r\n }\r\n\r\n renderContextMenu(){\r\n \r\n let handler = this.contextMenuHandler;\r\n return ();\r\n\r\n \r\n\r\n }\r\n\r\n renderActivePopup(){\r\n let popup = this.props.canvas.activePopup;\r\n return ();\r\n }\r\n\r\n renderActivePopupContent = (options:{onResize:()=> void}) => {\r\n return
\r\n {this.props.canvas.activePopup.render(options)}\r\n
\r\n }\r\n renderMenu = (options:{onResize:() => void})=> {\r\n let canvas = this.props.canvas;\r\n return \r\n \r\n }\r\n\r\n handlePopupForceClose = (target:HTMLElement,isTop:boolean) => {\r\n this.contextMenuHandler.isOpen = false;\r\n this.props.canvas.activePopup = null;\r\n this.forceUpdate();\r\n }\r\n\r\n \r\n \r\n}\r\n\r\n\r\n\r\nconst RefreshableContentWrapper = ({children}) => children || null;\r\n\r\n","\r\nimport {Canvas} from './Canvas';\r\nimport React from 'react';\r\nimport { IRecordChangedEvent, RecordChangedHandler, IPageLaunchParams} from './types';\r\nimport { FieldRef } from './FieldRef';\r\nimport { RecordBrowse } from './RecordBrowse';\r\nimport { Application } from './Application';\r\nimport { ActionRef } from './ActionRef';\r\nimport {Broadcast} from './Broadcast';\r\nimport { PageContainer } from './PageContainer';\r\nimport { RenderEvent } from './RenderEvent';\r\nimport { IRectangle } from 'components/helpers/AnchorPoint';\r\n\r\nexport type DialogResult = {continue:boolean,value?:any,label?:any};\r\n\r\ntype DialogStack = any[];\r\n\r\nfunction getDialogStack(isStudio:boolean):DialogStack {\r\n return isStudio ? Dialog.studioStack : Dialog.appStack;\r\n}\r\n\r\nfunction setDialogStack(isStudio:boolean,stack:DialogStack){\r\n if (isStudio){\r\n Dialog.studioStack = stack;\r\n }\r\n else {\r\n Dialog.appStack = stack;\r\n }\r\n}\r\n\r\nexport class DialogContainer extends React.Component<{app:Application;width:any,isStudio:boolean}>{\r\n componentDidMount(){\r\n Dialog.broadcast.connect(this);\r\n this.props.app.studioBroadcast.connect(this);\r\n }\r\n componentWillUnmount(){\r\n Dialog.broadcast.disconnect(this);\r\n this.props.app.studioBroadcast.disconnect(this);\r\n }\r\n\r\n render(){\r\n let dialogStack = getDialogStack(this.props.isStudio);\r\n if (this.props.isStudio) return this.renderStudioStack(dialogStack);\r\n let elems = [];\r\n \r\n \r\n for(let i = 0;i < dialogStack.length;i++){\r\n let style:React.CSSProperties = {position:\"absolute\",top:0,left:0,bottom:0,zIndex:9000 + (i * 10),width:this.props.width};\r\n let elem =
{dialogStack[i]()}
\r\n elems.push(elem);\r\n }\r\n return <>\r\n {elems}\r\n \r\n }\r\n\r\n renderStudioStack(stack:DialogStack):any[]{\r\n let elems = [];\r\n \r\n \r\n for(let i = 0;i < stack.length;i++){\r\n let style:React.CSSProperties = {position:\"absolute\",bottom:\"15vh\",right:15,\r\n width:550,height:\"65vh\",\r\n borderRadius:10,\r\n overflow:\"hidden\",\r\n zIndex:9000 + (i * 10)};\r\n let elem =
{stack[i]()}
\r\n elems.push(elem);\r\n }\r\n return elems;\r\n }\r\n}\r\n\r\nexport class ErrorDialogContainer extends React.Component<{app:Application}>{\r\n\r\n componentDidMount(){\r\n ErrorDialog.errorBroadcast.connect(this);\r\n }\r\n componentWillUnmount(){\r\n ErrorDialog.errorBroadcast.disconnect(this);\r\n }\r\n\r\n render(){\r\n let elems = [];\r\n let dialogStack = ErrorDialog.errorStack;\r\n \r\n for(let i = 0;i < dialogStack.length;i++){\r\n let elem =
{dialogStack[i]()}
\r\n elems.push(elem);\r\n }\r\n return <>\r\n {elems}\r\n \r\n }\r\n}\r\n\r\n\r\n\r\n\r\nexport class Dialog {\r\n\r\n static nextKey = 1;\r\n \r\n static appStack:DialogStack = [];\r\n static studioStack:DialogStack = [];\r\n \r\n\r\n static broadcast:Broadcast = new Broadcast();\r\n\r\n static open(canvas:Canvas,dialog:any,onRecordChanged:ActionRef,layer:'dialog' | 'lookup'):Promise {\r\n let isStudioPage = canvas.launchParams.name.toLowerCase().startsWith(\"studio/\");\r\n\r\n \r\n let zIndex = isStudioPage ? 20000 : 9000;\r\n\r\n if (canvas.layer == \"dialog\" || canvas.layer == \"lookup\"){\r\n zIndex = canvas.layerZIndex + 10;\r\n }\r\n \r\n \r\n canvas.app.spinner.pause();\r\n \r\n let promise = new Promise((resolve,reject) => {\r\n\r\n let stackIndex:number;\r\n\r\n let onClose = (result:DialogResult)=> {\r\n setDialogStack(isStudioPage,getDialogStack(isStudioPage).slice(0,stackIndex));\r\n this.broadcast.refresh();\r\n \r\n if (result.continue){\r\n resolve(result);\r\n canvas.app.spinner.resume();\r\n }\r\n else {\r\n canvas.app.spinner.kill();\r\n resolve(result);\r\n }\r\n }\r\n\r\n let handleRecordChanged:RecordChangedHandler;\r\n if (onRecordChanged){\r\n handleRecordChanged = async (recordEvent:IRecordChangedEvent) => {\r\n await canvas.triggerAction(onRecordChanged,{value:recordEvent.rowKey,isRecordChanged:true});\r\n }\r\n }\r\n let targetCanvas = Stack.getTargetCanvas(canvas) || canvas;\r\n if (targetCanvas.stackChild){\r\n targetCanvas.stackChild = null;\r\n targetCanvas.update();\r\n }\r\n\r\n let stack = getDialogStack(isStudioPage);\r\n stackIndex = stack.length;\r\n \r\n dialog = React.cloneElement(dialog,{key:Dialog.nextKey++,layer:layer,onClose:onClose,layerZIndex:zIndex, handleRecordChanged,parent:canvas});\r\n let render = () => dialog;\r\n \r\n stack.push(render);\r\n Dialog.broadcast.refresh();\r\n })\r\n return promise;\r\n }\r\n\r\n static async openLookup(field:FieldRef, eventValue:any, previous:any ,options:{isAutoLaunch?:boolean}):Promise{\r\n let lookup = field.lookup;\r\n let lookupScreen:any;\r\n \r\n let screen = lookup.name;\r\n\r\n let params = field.canvas.createLaunchParameters(lookup.params,{value:eventValue,scope:field.scope}) || {};\r\n params[\"@event-value\"] = eventValue;\r\n if (lookup.name){\r\n let asLookupFor = {\r\n page:field.canvas.launchParams.name,\r\n field:field.qualifiedName\r\n }\r\n let page:IPageLaunchParams = {\r\n name:screen,\r\n asLookupFor,\r\n props:params\r\n }\r\n lookupScreen = \r\n }\r\n let result = Dialog.open(field.canvas,lookupScreen,null,\"lookup\");\r\n return result;\r\n }\r\n}\r\n\r\nexport class ErrorDialog {\r\n static errorStack:any[] = [];\r\n static errorBroadcast:Broadcast = new Broadcast();\r\n \r\n static get isVisible():boolean{\r\n return (ErrorDialog.errorStack.length > 0);\r\n }\r\n \r\n static show(app:Application,dialog:any):Promise {\r\n let zIndex = 9000;\r\n \r\n app.spinner.kill();\r\n\r\n let promise = new Promise((resolve,reject) => {\r\n\r\n let stackIndex:number;\r\n\r\n let onClose = (result:DialogResult)=> {\r\n \r\n ErrorDialog.errorStack = ErrorDialog.errorStack.slice(0,stackIndex);\r\n ErrorDialog.errorBroadcast.refresh();\r\n }\r\n\r\n \r\n dialog = React.cloneElement(dialog,{key:Dialog.nextKey++,layer:\"dialog\",onClose:onClose});\r\n let render = () => dialog;\r\n stackIndex = ErrorDialog.errorStack.length;\r\n ErrorDialog.errorStack.push(render);\r\n ErrorDialog.errorBroadcast.refresh();\r\n })\r\n return promise;\r\n }\r\n}\r\n\r\nexport class Stack {\r\n\r\n static nextKey = 1;\r\n static open(canvas:Canvas,stacked:any,onRecordChanged:ActionRef,options:{browse?:RecordBrowse,showStackContent?:(content:any) => void,\r\n asSidebar?:boolean,isBrowseMove?:boolean,targetPos?:{x:number,y:number},asPopup?:boolean,position?:string,asReplace?:boolean} = {}):Promise {\r\n \r\n if (options.asReplace){\r\n canvas = canvas.parent;\r\n }\r\n \r\n let handleRecordChanged:RecordChangedHandler;\r\n if (onRecordChanged){\r\n handleRecordChanged = async (recordEvent:IRecordChangedEvent) => {\r\n await canvas.triggerAction(onRecordChanged,{value:recordEvent.rowKey,isRecordChanged:true});\r\n }\r\n }\r\n \r\n if (options.asPopup){\r\n canvas.app.spinner.pause();\r\n }\r\n\r\n let promise = new Promise((resolve,reject) => {\r\n let targetCanvas:Canvas;\r\n let onClose:any = (result:DialogResult)=> {\r\n if (targetCanvas){\r\n targetCanvas.closeStack();\r\n }\r\n if (result.continue){\r\n resolve(result);\r\n if (options.asPopup){\r\n canvas.app.spinner.resume();\r\n }\r\n }\r\n else {\r\n if (options.asPopup){\r\n canvas.app.spinner.kill();\r\n }\r\n resolve(result);\r\n }\r\n }\r\n \r\n if (options.asSidebar){\r\n stacked = React.cloneElement(stacked,{key:Stack.nextKey++,layer:\"sidebar\",handleRecordChanged,parent:canvas,onClose:onClose});\r\n canvas.sidebarContent = () => stacked;\r\n return;\r\n }\r\n \r\n \r\n \r\n let layer = (canvas.layer == \"dialog\" || canvas.layer == \"dialog-stack\" || canvas.layer == \"popup\") ? \"dialog-stack\" : \"stack\"; \r\n if (options.asPopup){\r\n layer = \"popup\";\r\n }\r\n stacked = React.cloneElement(stacked,{key:Stack.nextKey++,layer,handleRecordChanged,parent:canvas,onClose:onClose});\r\n \r\n \r\n if (options.showStackContent){\r\n options.showStackContent(stacked);\r\n return;\r\n }\r\n \r\n if (options.asPopup){\r\n targetCanvas = canvas;\r\n if (canvas.closed){\r\n targetCanvas = canvas.parent;\r\n }\r\n let rect:IRectangle = {top:0,bottom:0,left:0,right:0};\r\n if (options.targetPos){\r\n rect.left = options.targetPos.x;\r\n rect.right = options.targetPos.x;\r\n rect.top = options.targetPos.y;\r\n rect.bottom = options.targetPos.y;\r\n }\r\n canvas.openPopup({\r\n rect,\r\n render: ()=> stacked\r\n })\r\n targetCanvas.stackPositionOverride = \"top\";\r\n targetCanvas.update();\r\n return;\r\n }\r\n \r\n targetCanvas = Stack.getTargetCanvas(canvas);\r\n\r\n if (!targetCanvas) return;\r\n\r\n targetCanvas.stackChild = ()=> stacked;\r\n targetCanvas.stackStyle = null;\r\n targetCanvas.recordBrowse = options.browse;\r\n \r\n if (canvas.layer == \"dialog\" || canvas.layer == \"dialog-stack\" || canvas.layer == \"popup\"){\r\n targetCanvas.stackPositionOverride = \"top\";\r\n }\r\n else if (!options.isBrowseMove){\r\n targetCanvas.stackPositionOverride = options.position as any;\r\n }\r\n \r\n if (canvas.layer != \"stack\" && canvas.layer != \"dialog\" && canvas.layer != \"dialog-stack\" && canvas.layer != \"popup\"){\r\n targetCanvas.coveredTitle = canvas.title;\r\n }\r\n \r\n if (targetCanvas != canvas || options.asReplace){\r\n targetCanvas.update();\r\n }\r\n \r\n \r\n });\r\n return promise;\r\n }\r\n\r\n public static getTargetCanvas(canvas:Canvas):Canvas {\r\n while (canvas){\r\n if (Stack.isStackTarget(canvas)) return canvas;\r\n canvas = canvas.parent;\r\n }\r\n return null;\r\n }\r\n\r\n public static isStackTarget(canvas:Canvas):boolean {\r\n return (canvas.layer != \"embedded\" && canvas.layer != \"sidebar\");\r\n }\r\n\r\n\r\n static browse(canvas:Canvas,recordScreen:any,options:IBrowseOptions){\r\n\r\n let recordBrowse = new RecordBrowse();\r\n recordBrowse.triggerAction = options.triggerAction;\r\n recordBrowse.rows = options.rows;\r\n recordBrowse.currentIndex = options.rows.indexOf(options.current);\r\n recordBrowse.label = options.label;\r\n recordBrowse.onRecordChanged = options.onRecordChanged;\r\n Stack.open(canvas,recordScreen,options.onRecordChanged,{browse:recordBrowse,isBrowseMove:options.isBrowseMove});\r\n }\r\n}\r\n\r\nexport interface IBrowseOptions {onRecordChanged?:ActionRef,label?:any,renderRecord?:(row:any)=> any,rows?:any[],current?:any,triggerAction?:ActionRef,\r\nisBrowseMove?:boolean};","import {ActionHandler,IEventOptions, IActionResult, FilterOp, getActionName, getTargetName, IRecordChangedEvent} from './types';\r\nimport {Canvas} from './Canvas';\r\nimport {Dialog, DialogResult, IBrowseOptions, Stack} from './Dialog';\r\nimport {Focus} from './Focus';\r\nimport { IFieldOptions, RecordMeta } from './RecordMeta';\r\nimport { RecordErrorSet } from './RecordErrorSet';\r\nimport { Application } from './Application';\r\nimport { IFieldLookup, Schema } from './Schema';\r\nimport { FieldRef } from './FieldRef';\r\nimport { Collection } from './Collection';\r\nimport {Request} from './Request';\r\n\r\nimport { ActionRef, RenderEvent } from '.';\r\n\r\nexport class ActionEvent {\r\n canvas:Canvas;\r\n options:IEventOptions;\r\n\r\n screen:ScreenRef;\r\n constructor(canvas:Canvas,options:IEventOptions = {}){\r\n this.canvas = canvas;\r\n this.options = options;\r\n this.screen = new ScreenRef(canvas,options);\r\n }\r\n\r\n get eventValue():any {\r\n return this.options.value;\r\n }\r\n\r\n get returnValue():any {\r\n return this.options.returnValue;\r\n }\r\n \r\n}\r\n\r\nexport type UITarget = string | ActionHandler;\r\n\r\nexport class ScreenRef {\r\n canvas:Canvas;\r\n eventOptions:IEventOptions\r\n constructor(canvas:Canvas,options:IEventOptions){\r\n this.canvas = canvas;\r\n this.eventOptions = options;\r\n }\r\n set defaultRecord(value:string){\r\n this.canvas.defaultRecord = value;\r\n }\r\n get defaultRecord():string {\r\n return this.canvas.defaultRecord;\r\n }\r\n\r\n set title(value:string){\r\n this.canvas.title = value;\r\n }\r\n get title():string {\r\n return this.canvas.title;\r\n }\r\n\r\n get returnValue():any {\r\n return this.eventOptions.returnValue;\r\n }\r\n \r\n set returnValue(value:any){\r\n this.eventOptions.returnValue = value;\r\n }\r\n \r\n field(fieldName:string):FieldRef {\r\n return this.canvas.getFieldRef(fieldName,this.eventOptions.scope);\r\n }\r\n\r\n\r\n setData(data:any){\r\n this.canvas.setData(data);\r\n }\r\n\r\n setRecord(recordTypeName:string,data:any,forEdit:boolean):any{\r\n let schema = Schema.getRecordSchema(this.canvas,recordTypeName);\r\n let record = RecordMeta.initalizeRecord(schema,data);\r\n this.canvas.setRecord(recordTypeName,record);\r\n if (forEdit){\r\n this.unlockRecord(recordTypeName);\r\n }\r\n else {\r\n this.lockRecord(recordTypeName);\r\n }\r\n return data;\r\n }\r\n\r\n setCollection(name:string,rows:any[],forEdit:boolean,meta:any){\r\n let schema = Schema.getRecordSchema(this.canvas,name);\r\n var currentValue = this.canvas.getRecord(name,null);\r\n \r\n this.canvas.setRecord(name,Collection.replace(currentValue,rows,schema));\r\n let readonly = !forEdit;\r\n Collection.bindSchema(schema,rows,readonly);\r\n Collection.setMetaProps(rows,meta);\r\n /*\r\n if (rows.length){\r\n Collection.setCurrentRow(this.canvas,schema.name,rows[0]);\r\n }\r\n else {\r\n Collection.setCurrentRow(this.canvas,schema.name,null);\r\n }\r\n */\r\n Collection.setCurrentRow(this.canvas,schema.name,null);\r\n this.canvas.dataBroadcast.dispatch(schema.name,rows);\r\n }\r\n\r\n locate(collection:string,rowid:any){\r\n let collectionRef = this.canvas.getCollectionRef(collection,this.eventOptions.scope);\r\n if (!collectionRef) return null;\r\n return collectionRef.locate(rowid);\r\n }\r\n\r\n action(actionName:string,statements?:any[]):ActionRef {\r\n if (actionName){\r\n let actionRef = new ActionRef(this.canvas,actionName,this.eventOptions.scope);\r\n actionRef.statements = statements;\r\n return actionRef;\r\n }\r\n return null;\r\n }\r\n \r\n async triggerAction(action:string,statements?:[],options?:IEventOptions):Promise{\r\n let actionRef = this.action(action,statements);\r\n if (actionRef) {\r\n let result = await this.canvas.triggerAction(actionRef,options);\r\n if (!result.continue){\r\n throw \"stopped\";\r\n }\r\n return result;\r\n }\r\n return {continue:true};\r\n }\r\n \r\n openDialog(dialog:any,options:{onRecordChanged?:ActionRef} = {}):Promise {\r\n return Dialog.open(this.canvas,dialog,options.onRecordChanged,\"dialog\");\r\n }\r\n\r\n openOnStack(stacked:any,options:{onRecordChanged?:ActionRef,asPopup?:boolean,position?:string,asReplace?:boolean} = {}):Promise {\r\n \r\n return Stack.open(this.canvas,stacked,options.onRecordChanged,{showStackContent:this.eventOptions.showStackContent,\r\n targetPos:this.eventOptions.targetPos,asPopup:options.asPopup,position:options.position,asReplace:options.asReplace});\r\n }\r\n\r\n openSidebar(stacked:any,options:{onRecordChanged?:ActionRef} = {}) {\r\n return Stack.open(this.canvas,stacked,options.onRecordChanged,{showStackContent:this.eventOptions.showStackContent,asSidebar:true});\r\n }\r\n\r\n browse(recordScreen:any, options:{onRecordChanged?:ActionRef,label?:any} = {}){\r\n \r\n let browseOptions:IBrowseOptions = {\r\n label:options.label,\r\n rows:this.eventOptions.table,\r\n current:this.eventOptions.current,\r\n onRecordChanged:options.onRecordChanged,\r\n triggerAction:this.action(this.eventOptions.actionName),\r\n isBrowseMove:this.eventOptions.isBrowseMove\r\n }\r\n Stack.browse(this.canvas,recordScreen,browseOptions);\r\n }\r\n\r\n close(result:DialogResult){\r\n this.canvas.closed = true;\r\n if (this.canvas.closeDialogBox){\r\n this.canvas.closeDialogBox(result);\r\n }\r\n }\r\n \r\n set onEnterKey(action:string | ActionHandler){\r\n let actionName = getActionName(action);\r\n if (actionName){\r\n this.canvas.enterKeyAction = actionName;\r\n }\r\n else {\r\n this.canvas.enterKeyAction = null;\r\n }\r\n }\r\n\r\n async message(message:string,options:{style?:'success' | 'danger' |'info' | 'warning',asDialog?:boolean,block?:string} = {}){\r\n if (options.asDialog){\r\n let MessageBox = Application.instance.getMessageBox();\r\n await Dialog.open(this.canvas,,null,\"dialog\"); \r\n }\r\n else {\r\n Application.instance.notifications.dispatch(\"show\",{text:message,style:options.style});\r\n }\r\n }\r\n\r\n getValue(field:string):any{\r\n return this.canvas.getValue(field,this.eventOptions);\r\n }\r\n\r\n private getMeta(record:any):RecordMeta{\r\n if (record) return record.$$meta;\r\n return null;\r\n }\r\n\r\n manditory(fieldName:string){\r\n let fieldRef = this.field(fieldName);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setRequired(fieldRef.meta,fieldRef.name,true);\r\n }\r\n }\r\n\r\n optional(fieldName:string){\r\n let fieldRef = this.field(fieldName);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setRequired(fieldRef.meta,fieldRef.name,false);\r\n }\r\n }\r\n\r\n format(fieldName:string,formatString:string){\r\n let fieldRef = this.field(fieldName);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setFormat(fieldRef.meta,fieldRef.name,formatString);\r\n }\r\n }\r\n\r\n setHelp(fieldName:string,options:{text?:string}){\r\n let fieldRef = this.field(fieldName);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setHelp(fieldRef.meta,fieldRef.name,options.text);\r\n }\r\n }\r\n\r\n setLabel(target:UITarget,options:{text?:string}){\r\n\r\n let t = parseTarget(target);\r\n if (!t) return;\r\n if (t.type == 'field'){\r\n let fieldRef = this.field(t.name);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setLabel(fieldRef.meta,fieldRef.name,options.text);\r\n }\r\n }\r\n else {\r\n RecordMeta.setLabel(this.canvas.$$meta,t.name,options.text);\r\n }\r\n }\r\n\r\n setPlaceholder(fieldName:string,options:{text?:string}){\r\n let fieldRef = this.field(fieldName);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setPlaceholder(fieldRef.meta,fieldRef.name,options.text);\r\n }\r\n }\r\n\r\n setLookup(fieldName:string,options:{name?:string,autoLaunch?:boolean,block?:string,labelField?:string,params?:any[]}){\r\n let fieldDef = Schema.getQualifiedFieldDef(this.canvas,fieldName);\r\n if (fieldDef){\r\n let lookup:IFieldLookup = {autoLaunch:options.autoLaunch,params:options.params};\r\n if (options.name){\r\n lookup.name = options.name;\r\n }\r\n if (options.labelField !== undefined){\r\n fieldDef.lookupLabel = options.labelField;\r\n }\r\n fieldDef.lookup = lookup;\r\n }\r\n }\r\n\r\n setOnValueChanged(fieldName:string,action:string | ActionHandler){\r\n let fieldDef = Schema.getQualifiedFieldDef(this.canvas,fieldName);\r\n if (fieldDef){\r\n fieldDef.onValueChanged = getActionName(action);\r\n }\r\n }\r\n\r\n \r\n disable(target:UITarget,help?:string){\r\n let t = parseTarget(target);\r\n if (!t) return;\r\n if (t.type == 'field'){\r\n let fieldRef = this.field(t.name);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setDisabled(fieldRef.meta,fieldRef.name,true);\r\n RecordMeta.setDisabledHelp(fieldRef.meta,fieldRef.name,help);\r\n }\r\n }\r\n else {\r\n RecordMeta.setDisabled(this.canvas.$$meta,t.name,true);\r\n RecordMeta.setDisabledHelp(this.canvas.$$meta,t.name,help);\r\n }\r\n }\r\n\r\n enable(target:UITarget){\r\n let t = parseTarget(target);\r\n if (!t) return;\r\n if (t.type == 'field'){\r\n let fieldRef = this.field(t.name);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setDisabled(fieldRef.meta,fieldRef.name,false);\r\n }\r\n }\r\n else {\r\n RecordMeta.setDisabled(this.canvas.$$meta,t.name,false);\r\n }\r\n }\r\n\r\n hide(target:UITarget){\r\n let t = parseTarget(target);\r\n if (!t) return;\r\n if (t.type == 'field'){\r\n let fieldRef = this.field(t.name);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setHidden(fieldRef.meta,fieldRef.name,true);\r\n }\r\n }\r\n else {\r\n RecordMeta.setHidden(this.canvas.$$meta,t.name,true);\r\n }\r\n }\r\n\r\n unhide(target:UITarget){\r\n let t = parseTarget(target);\r\n if (!t) return;\r\n if (t.type == 'field'){\r\n let fieldRef = this.field(t.name);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setHidden(fieldRef.meta,fieldRef.name,false);\r\n }\r\n }\r\n else {\r\n RecordMeta.setHidden(this.canvas.$$meta,t.name,false);\r\n }\r\n }\r\n\r\n lock(fieldName:string){\r\n let fieldRef = this.field(fieldName);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setReadonly(fieldRef.meta,fieldRef.name,true);\r\n }\r\n }\r\n\r\n unlock(fieldName:string){\r\n let fieldRef = this.field(fieldName);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setReadonly(fieldRef.meta,fieldRef.name,false);\r\n }\r\n }\r\n\r\n setOptions(fieldName:string,options:IFieldOptions){\r\n let fieldRef = this.field(fieldName);\r\n if (fieldRef && fieldRef.meta){\r\n options = options || [];\r\n RecordMeta.setOptions(fieldRef.meta,fieldRef.name,options);\r\n }\r\n }\r\n\r\n focus(fieldName:string){\r\n let field = this.field(fieldName);\r\n Focus.focus(this.canvas,field);\r\n }\r\n\r\n lockRecord(recordName:string){\r\n let record =this.canvas.getRecord(recordName,this.eventOptions.scope);\r\n let meta = this.getMeta(record);\r\n if (!meta) return;\r\n RecordMeta.setRecordReadonly(meta,true);\r\n }\r\n\r\n unlockRecord(recordName:string){\r\n let record =this.canvas.getRecord(recordName,this.eventOptions.scope);\r\n let meta = this.getMeta(record);\r\n if (!meta) return;\r\n RecordMeta.setRecordReadonly(meta,false);\r\n }\r\n\r\n setRecordErrors(recordName:string,errorSet:RecordErrorSet){ \r\n let record =this.canvas.getRecord(recordName,this.eventOptions.scope);\r\n let meta = this.getMeta(record);\r\n if (!meta) return;\r\n meta.error = errorSet;\r\n }\r\n\r\n error(fieldName:string,message:string){\r\n let fieldRef = this.field(fieldName);\r\n if (!fieldRef) return;\r\n \r\n let meta = fieldRef.meta;\r\n if (!meta) return;\r\n let error = meta.error;\r\n if (!error){\r\n error = new RecordErrorSet(null);\r\n meta.error = error;\r\n }\r\n error.field(fieldRef.name,message,\"ERROR\");\r\n }\r\n\r\n async recordChanged(recordEvent:IRecordChangedEvent){\r\n await this.canvas.recordChanged(recordEvent);\r\n }\r\n\r\n activateTab(template:string){\r\n // todo: implement\r\n throw \"not implemented\";\r\n }\r\n\r\n addRow(collection:any[] | string,options:{position?:null | 'first' | 'current'} = {}){\r\n let collectionName = getCollectionName(collection);\r\n let collectionRef = this.canvas.getCollectionRef(collectionName,this.eventOptions.scope);\r\n collectionRef.addRow(options);\r\n }\r\n\r\n removeRow(collection:any[] | string,options:{rowid?:any,mode?:null | 'all'} = {}){\r\n let collectionName = getCollectionName(collection);\r\n let collectionRef = this.canvas.getCollectionRef(collectionName,this.eventOptions.scope);\r\n collectionRef.removeRow(options);\r\n }\r\n\r\n clearErrors(recordName:string,options:{} = {}){\r\n let recordDef = Schema.getFieldDef(this.canvas.schema,recordName);\r\n if (!recordDef) return;\r\n if (recordDef.type == 'collection'){\r\n let collectionRef = this.canvas.getCollectionRef(recordName,this.eventOptions.scope);\r\n collectionRef.clearErrors();\r\n }\r\n else {\r\n let record = this.canvas.getRecord(recordName,this.eventOptions.scope);\r\n if (record){\r\n RecordMeta.clearErrors(record);\r\n }\r\n }\r\n }\r\n\r\n async restart():Promise{\r\n await this.canvas.restart();\r\n }\r\n\r\n async setValue(fieldName:string,value:any):Promise {\r\n let field = this.field(fieldName);\r\n if (field){\r\n await this.canvas.setValue(field,value);\r\n }\r\n }\r\n\r\n setLookupLabel(fieldName:string,value:any){\r\n let fieldRef = this.field(fieldName);\r\n if (fieldRef && fieldRef.meta){\r\n RecordMeta.setLookupLabel(fieldRef.meta,fieldRef.name,value);\r\n }\r\n }\r\n\r\n setFilter(fieldName:string,options:{value?:any,op?:FilterOp,toValue?:any}){\r\n let opField = this.field(fieldName + \"$op\");\r\n this.canvas.setRecordValueNoUpdate(opField,options.op);\r\n let toField = this.field(fieldName + \"$to\");\r\n this.canvas.setRecordValueNoUpdate(toField,options.toValue);\r\n let field = this.field(fieldName);\r\n this.canvas.setRecordValueNoUpdate(field,options.value);\r\n }\r\n\r\n getFilter(fieldName):{value:any,op:FilterOp,toValue:any}{\r\n let result = {\r\n value:this.canvas.getValue(fieldName,this.eventOptions),\r\n op:this.canvas.getValue(fieldName + \"$op\",this.eventOptions),\r\n toValue:this.canvas.getValue(fieldName + \"$to\",this.eventOptions),\r\n $type:\"filter\"\r\n }\r\n return result;\r\n }\r\n\r\n async showWarning(options:{message?:string,style?:string,block?:string}){\r\n let Confirm = this.canvas.app.getConfirmDialog();\r\n let result = await Dialog.open(this.canvas,,null,\"dialog\");\r\n if (!result.continue){\r\n throw \"stopped\";\r\n }\r\n }\r\n}\r\n\r\n\r\ninterface ITarget {\r\n type:'field' | 'component';\r\n name:string;\r\n}\r\n\r\n\r\nfunction parseTarget(target:string | ActionHandler):ITarget {\r\n if (typeof target == \"string\"){\r\n if (target[0] == \"@\"){\r\n return {type:'field',name:target};\r\n }\r\n /*\r\n let [record,name] = target.split('.');\r\n if (!name){\r\n return {type:'field',name:record};\r\n }\r\n */\r\n return {type:'component',name:target};\r\n }\r\n let name = getTargetName(target);\r\n if (name){\r\n return {type:\"component\",name};\r\n }\r\n\r\n}\r\n\r\nfunction getCollectionName(target:string | any[]):string{\r\n if (typeof target == \"string\"){\r\n return target;\r\n }\r\n else if (target){\r\n let schema = Collection.getSchema(target);\r\n if (schema){\r\n return schema.name;\r\n }\r\n }\r\n}","import { ScreenRef } from \"./ActionEvent\";\r\nimport { executeCommands } from \"./StatementRunner\";\r\n\r\n\r\nexport class IfBlockRunner {\r\n\r\n static async runIfBlock(screen:ScreenRef, elem:any):Promise {\r\n let statements = elem.statements;\r\n if (!statements) return;\r\n for(let i = 0; i < statements.length;i++){\r\n let statement = statements[i];\r\n if (statement.$kind == \"Else\"){\r\n await executeCommands(screen,statement.children);\r\n return;\r\n }\r\n if (statement.$kind == \"If\" || statement.$kind == \"ElseIf\"){\r\n let test = screen.getValue(statement.condition);\r\n if (test){\r\n await executeCommands(screen,statement.children);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n \r\n}","import {ScreenRef} from './ActionEvent';\r\nimport { Schema } from './Schema';\r\n\r\ntype commandHandler = (screen:ScreenRef,elem:any) => void | Promise;\r\nvar map:{[name:string]:commandHandler} = {\r\n \"LoadDropValues\":loadDropValues,\r\n \"Label\":setLabel\r\n}\r\n\r\ntype CommandElem = {$kind:string} & any;\r\n\r\nexport async function executeConfig(screen:ScreenRef,commands:CommandElem[]){\r\n if (!commands) return;\r\n let command:CommandElem;\r\n try {\r\n for(let i =0 ; i < commands.length;i++){\r\n command = commands[i];\r\n let func = map[command.$kind];\r\n if (func){\r\n let result = func(screen,command);\r\n if (result && result.then){\r\n await result;\r\n }\r\n }\r\n else {\r\n throw \"invalid command\";\r\n }\r\n }\r\n }\r\n catch(e){\r\n throw \"Error on command: \" + command.$kind + \" , \" + e.toString();\r\n }\r\n}\r\n\r\n\r\nfunction loadDropValues(screen:ScreenRef,elem:any){\r\n let name = elem.name;\r\n let options = elem.data || [];\r\n options.unshift({value:\"\",label:\"-- Select -- \"});\r\n let fieldDef = Schema.getQualifiedFieldDef(screen.canvas,name);\r\n if (fieldDef){\r\n fieldDef.options = options;\r\n }\r\n}\r\n\r\nfunction setLabel(screen:ScreenRef,elem:any){\r\n let name = elem.name;\r\n let fieldDef = Schema.getQualifiedFieldDef(screen.canvas,name);\r\n if (fieldDef){\r\n fieldDef.label = elem.value;\r\n }\r\n}\r\n\r\n\r\n\r\n","import { ICanvasError, ICodeError, IValidationError } from \"core/types\";\r\nimport { SuperProperty } from \"typescript\";\r\n\r\nexport class PageForbiddenError extends Error implements ICanvasError{\r\n showDialog?:boolean;\r\n messages:string[];\r\n sourceCode?:any;\r\n codeErrors?:ICodeError[];\r\n validationErrors?:IValidationError[];\r\n $$error:true;\r\n name:string;\r\n render:any;\r\n\r\n constructor(messages:string[],render:any){\r\n super(messages[0]);\r\n this.messages = messages;\r\n this.name = \"FORBIDDEN\";\r\n this.$$error = true;\r\n this.render = render;\r\n }\r\n}","\r\nimport { ScreenRef } from \"./ActionEvent\";\r\nimport {executeCommands,processErrors} from './StatementRunner';\r\nimport { executeConfig } from \"./ConfigurationRunner\";\r\nimport { IRequestCallType } from \"./Request\";\r\nimport { IRecordSchema } from \"./Schema\";\r\nimport { IActionDefinition, IActionResult, ICanvasError, ICodeError } from \"./types\";\r\nimport { PageForbiddenError } from \"./errors/PageForbiddenError\";\r\n\r\nexport interface IServiceResponse {\r\n actions:{[name:string]:IActionDefinition};\r\n schema:IRecordSchema;\r\n run:any[];\r\n configure:any[];\r\n errorTable:any[];\r\n success:boolean;\r\n retryAfterWarnings:boolean;\r\n debug:any;\r\n error:any;\r\n code:any;\r\n codeErrors:ICodeError[];\r\n codeHTML:string;\r\n codeSource:any[];\r\n returnValue:any;\r\n pageErrorCode?:string;\r\n errorRender?:any;\r\n pageId?:string;\r\n pageInfo:{\r\n page:string;\r\n version:string;\r\n draft_id:string;\r\n }\r\n source?:any;\r\n bot?:{\r\n command:string;\r\n timestamp:string;\r\n data_request_id:string;\r\n }\r\n}\r\n\r\nexport class Response {\r\n static async process(screen:ScreenRef,callType:IRequestCallType, res:IServiceResponse):Promise{\r\n\r\n let currentRowKeys;\r\n\r\n \r\n if (callType == \"start\" || callType == \"restart\"){\r\n currentRowKeys = screen.canvas.getCurrentRowKeys();\r\n await Response.loadStartValues(screen,res);\r\n }\r\n else {\r\n if (res.pageInfo) {\r\n screen.canvas.pageInfo = res.pageInfo;\r\n }\r\n }\r\n if (res.error){\r\n throw res.error.message || \"Request failed\";\r\n }\r\n if (res.errorTable && res.errorTable.length){\r\n let messages:string [] = [];\r\n for (let i =0 ; i < res.errorTable.length;i++){\r\n let item = res.errorTable[i];\r\n messages.push(item.message);\r\n }\r\n if (!messages.length){\r\n messages.push(\"Unknown API Error\");\r\n } \r\n \r\n if (res.pageErrorCode == \"PAGE_FORBIDDEN\"){\r\n throw new PageForbiddenError(messages,res.errorRender);\r\n } \r\n let error:ICanvasError = {\r\n messages,\r\n $$error:true,\r\n sourceCode:res.codeSource,\r\n codeErrors:res.codeErrors,\r\n render:res.errorRender\r\n } \r\n throw error;\r\n }\r\n let run = res.run;\r\n if (run){\r\n \r\n await executeCommands(screen,run);\r\n let error = processErrors(screen,run,res.errorRender);\r\n if (error){\r\n if (error.showDialog){\r\n throw error;\r\n }\r\n throw \"stopped\";\r\n }\r\n \r\n }\r\n // screen.returnValue = res.returnValue;\r\n if (callType == \"start\"){\r\n screen.canvas.restoreCurrentRowKeys(currentRowKeys);\r\n }\r\n return {continue:true};\r\n }\r\n\r\n static async loadStartValues(screen:ScreenRef,res:IServiceResponse){\r\n let canvas = screen.canvas;\r\n \r\n \r\n \r\n if (res.configure){\r\n await executeConfig(screen,res.configure);\r\n }\r\n if (res.actions){\r\n canvas.actions = res.actions;\r\n }\r\n if (res.pageId){\r\n canvas.loadStartValues();\r\n canvas.pageId = res.pageId;\r\n }\r\n if (res.schema){ \r\n canvas.setSchema(res.schema);\r\n }\r\n if (res.pageInfo){\r\n canvas.pageInfo = res.pageInfo;\r\n }\r\n \r\n if (canvas.botInfo && res.bot){\r\n canvas.botInfo.command = res.bot.command;\r\n canvas.botInfo.message.timestamp = res.bot.timestamp;\r\n canvas.botInfo.dataRequestId = res.bot.data_request_id;\r\n }\r\n\r\n \r\n }\r\n}\r\n","import { ScreenRef } from \"./ActionEvent\";\r\nimport { Application } from \"./Application\";\r\nimport { Canvas } from \"./Canvas\";\r\nimport { IServiceResponse, Response} from './Response';\r\nimport { IAsLookupFor } from \"./types\";\r\n\r\nexport type IRequestCallType = 'start' | 'batch' | 'refresh-row' | 'method' | 'restart';\r\nexport interface IServiceRequest {\r\n domain:string;\r\n branch:string;\r\n client?:string;\r\n page?:{\r\n name:string;\r\n layout?:string;\r\n view?:string;\r\n draft_id?:string;\r\n designer_sections?:string;\r\n }\r\n parameters?:any;\r\n stopOnWarning?:boolean;\r\n callType:IRequestCallType;\r\n service?:string;\r\n method?:string;\r\n studioOpen?:boolean;\r\n studioSource?:string;\r\n asLookupFor?:IAsLookupFor;\r\n}\r\n\r\ninterface ICachedRequest {\r\n response:any;\r\n}\r\n\r\nconst MAX_CACHE_SIZE = 100;\r\nconst RECENT_KEY_COUNT = 25;\r\n\r\n\r\nclass PageResponseCache {\r\n private _items:{[key:string]:ICachedRequest} = {};\r\n private _recentKeys:string[] = [];\r\n private _cacheItemCount:number = 0;\r\n\r\n updateCache(cacheKey:string,canvas:Canvas,res:any){\r\n if (canvas.cacheStrategy == \"optimistic\"){\r\n if (!this._items[cacheKey]){\r\n this._cacheItemCount++;\r\n }\r\n this._items[cacheKey] = {response:res};\r\n this.addKey(cacheKey);\r\n if (this._cacheItemCount > MAX_CACHE_SIZE){\r\n this.evict();\r\n }\r\n }\r\n else if (this._items[cacheKey]){\r\n this.removeFromCache(cacheKey);\r\n }\r\n }\r\n\r\n removeFromCache(cacheKey:string){\r\n delete this._items[cacheKey];\r\n this.removeKey(cacheKey);\r\n this._cacheItemCount--;\r\n }\r\n\r\n getCachedResponse(cacheKey:string):ICachedRequest{\r\n let item = this._items[cacheKey];\r\n if (item){\r\n this.addKey(cacheKey);\r\n return item;\r\n }\r\n }\r\n\r\n private addKey(key:string){\r\n let i = this._recentKeys.indexOf(key);\r\n if (i == 0) return; // already at front\r\n if (i != -1){\r\n this._recentKeys.splice(i,1);\r\n }\r\n if (this._recentKeys.length >= RECENT_KEY_COUNT){\r\n this._recentKeys.splice(RECENT_KEY_COUNT - 1);\r\n }\r\n this._recentKeys.unshift(key);\r\n }\r\n\r\n private removeKey(key:string){\r\n let i = this._recentKeys.indexOf(key);\r\n if (i != -1){\r\n this._recentKeys.splice(i,1);\r\n }\r\n }\r\n\r\n private evict(){\r\n let newCache:{[key:string]:ICachedRequest} = {};\r\n // keep all items in the recent key list\r\n let count = 0;\r\n for(let i =0 ; i < this._recentKeys.length;i++){\r\n let key = this._recentKeys[i];\r\n let item = this._items[key];\r\n if (item){\r\n newCache[key] = item;\r\n count++;\r\n }\r\n }\r\n this._items = newCache;\r\n this._cacheItemCount = count;\r\n }\r\n}\r\n\r\nexport class Request {\r\n\r\n private static cache:PageResponseCache = new PageResponseCache();\r\n // could just recycle the cache once you hit a certain count \r\n \r\n private static async executeRequest(screen:ScreenRef,callType:IRequestCallType,method:string,body:IServiceRequest):Promise {\r\n let path = Request.getScreenPath() + \"/\" + method;\r\n let app = screen.canvas.app;\r\n body.studioOpen = app.studioOpen;\r\n\r\n \r\n\r\n let json = await app.doPostRequest(path,body);\r\n\r\n if (json.error && json.error.code == \"NOT_SIGNED_IN\"){\r\n app.spinner.pause();\r\n let result = await Application.instance.session.signin(Application.instance,screen.canvas,{insideRequest:true},{\"@no_redirect\":true});\r\n if (!result.continue) return;\r\n app.spinner.resume();\r\n /*\r\n if (sessionResult.version != app.version){\r\n // version changed\r\n // todo: display notification about version change\r\n window.location.reload();\r\n return;\r\n }\r\n */\r\n\r\n json = await app.doPostRequest(path,body); \r\n }\r\n\r\n await Response.process(screen,callType,json); \r\n\r\n return json; \r\n }\r\n\r\n static async callBatch(screen:ScreenRef,callType:IRequestCallType,method:string,params:any){\r\n \r\n let canvas = screen.canvas;\r\n \r\n let layout:string;\r\n let view:string;\r\n let screenId:string;\r\n let draft_id = canvas.launchParams.draft_id;\r\n\r\n if (canvas.pageId){\r\n screenId = canvas.pageId;\r\n if (canvas.pageInfo){\r\n // layout = canvas.pageInfo.layout;\r\n // view = canvas.pageInfo.view;\r\n }\r\n }\r\n else {\r\n screenId = canvas.launchParams.name;\r\n layout = canvas.launchParams.layout;\r\n view = canvas.launchParams.view;\r\n }\r\n \r\n if (!draft_id){\r\n draft_id = canvas.app.currentDraftView[screenId.toLowerCase()];\r\n }\r\n \r\n let body:IServiceRequest = {\r\n domain:canvas.app.domain,\r\n branch:canvas.app.branch,\r\n client:\"lisa-ui\",\r\n page:{\r\n name:screenId,\r\n layout:layout,\r\n view:view,\r\n draft_id,\r\n designer_sections:canvas.launchParams.designer_sections\r\n },\r\n asLookupFor:canvas.launchParams.asLookupFor,\r\n method,\r\n callType,\r\n parameters: params,\r\n stopOnWarning:true,\r\n studioSource:canvas.studioSource\r\n };\r\n\r\n let cacheKey:string;\r\n \r\n if (callType == \"start\" && !screen.eventOptions.isCachedVersionRefresh && !draft_id){\r\n cacheKey = Request.buildCacheKey(body.page.name,body.parameters);\r\n let cacheItem = Request.cache.getCachedResponse(cacheKey);\r\n if (cacheItem){\r\n \r\n await Response.process(screen,callType,cacheItem.response);\r\n canvas.loadedFromCache = true;\r\n return cacheItem.response;\r\n }\r\n }\r\n \r\n canvas.loadedFromCache = false;\r\n try {\r\n let res:IServiceResponse = await Request.executeRequest(screen,callType,method,body);\r\n \r\n if (res.retryAfterWarnings){\r\n body.stopOnWarning = false;\r\n res = await Request.executeRequest(screen,callType,method,body);\r\n } \r\n \r\n if (callType == \"start\" || callType == \"restart\"){\r\n if (!screen.eventOptions.isCachedVersionRefresh && canvas.layer != \"layout\"){\r\n canvas.hardRefreshKey++;\r\n }\r\n \r\n cacheKey = Request.buildCacheKey(body.page.name,body.parameters);\r\n Request.cache.updateCache(cacheKey,canvas,res);\r\n }\r\n }\r\n catch(e){\r\n if (callType == \"start\" || callType == \"restart\"){\r\n cacheKey = Request.buildCacheKey(body.page.name,body.parameters);\r\n Request.cache.removeFromCache(cacheKey);\r\n }\r\n throw e;\r\n }\r\n }\r\n\r\n \r\n\r\n static buildCacheKey(page:string,parameters:any):string {\r\n let items:any[] = [];\r\n items.push({page:page.toLowerCase()});\r\n var keys = Object.keys(parameters);\r\n keys.sort();\r\n for(let i =0; i < keys.length;i++){\r\n let key = keys[i];\r\n if (key != \"screen\" && key != \"@app.cart_item_count\"){\r\n let value = parameters[key];\r\n if (value !== null && value !== undefined){\r\n items.push({[key]:value});\r\n }\r\n }\r\n }\r\n return JSON.stringify(items);\r\n }\r\n\r\n static getScreenPath():string {\r\n return \"/screen\";\r\n }\r\n\r\n \r\n\r\n}\r\n","export class FileDownloadManager {\r\n static downloadFile(filename:string,content:any,autoOpen:boolean){\r\n let contentType:string;\r\n let i = filename.lastIndexOf('.');\r\n let extension:string;\r\n if (i != -1){\r\n extension = filename.substr(i + 1);\r\n }\r\n if (extension == \"pdf\"){\r\n contentType = \"application/pdf\";\r\n content = FileDownloadManager.decodeBase64(content);\r\n }\r\n else if (extension == \"csv\"){\r\n contentType = \"text/csv\";\r\n }\r\n else if (extension == \"json\"){\r\n contentType = \"text/json\";\r\n }\r\n else {\r\n contentType = \"text/plain\";\r\n }\r\n \r\n let blob = new Blob([content],{type:contentType});\r\n FileDownloadManager.downloadBlob(blob,filename,autoOpen);\r\n }\r\n\r\n private static downloadBlob(blob, filename,autoOpen:boolean) {\r\n\r\n const url = URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n \r\n a.href = url;\r\n if (autoOpen){\r\n a.target = \"_blank\";\r\n }\r\n else {\r\n a.download = filename || 'download';\r\n }\r\n const clickHandler = () => {\r\n setTimeout(() => {\r\n URL.revokeObjectURL(url);\r\n a.removeEventListener('click', clickHandler);\r\n }, 150);\r\n };\r\n \r\n a.addEventListener('click', clickHandler, false);\r\n a.click();\r\n \r\n return a;\r\n }\r\n\r\n private static decodeBase64(base64):any {\r\n const binaryString = window.atob(base64);\r\n const len = binaryString.length;\r\n const bytes = new Uint8Array(len);\r\n for (let i = 0; i < len; ++i) {\r\n bytes[i] = binaryString.charCodeAt(i);\r\n }\r\n return bytes;\r\n };\r\n\r\n}","import { Broadcast } from \"core/Broadcast\";\r\nimport { Canvas } from \"core/Canvas\";\r\n\r\nexport class DesignerToolbox {\r\n public canvas:Canvas;\r\n public content:any;\r\n public isOpen:boolean;\r\n public activeFolder:string;\r\n public activeFolderContent:any[];\r\n private _folderContent:{[name:string]:any} = {}\r\n \r\n\r\n public refresh(){\r\n this.canvas.app.designerToolboxBroadcast.refresh();\r\n }\r\n\r\n public activateFolder(name:string) {\r\n\r\n let content = this._folderContent[name];\r\n if (!content){\r\n this.fetchFolderContent(name);\r\n }\r\n this.activeFolder = name;\r\n this.activeFolderContent = content;\r\n this.refresh();\r\n }\r\n\r\n\r\n public async fetchFolderContent(name:string):Promise{\r\n this.canvas.studioCommandBuffer.loadToolbox(\"folder\",name);\r\n await this.canvas.studioCommandBuffer.send();\r\n }\r\n\r\n public setFolderContent(name:string,value:any){\r\n this._folderContent[name] = value;\r\n if (name == this.activeFolder){\r\n this.activeFolderContent = value;\r\n }\r\n this.refresh();\r\n }\r\n\r\n public getFolderContent(name:string){\r\n return this._folderContent[name];\r\n }\r\n\r\n public run(elem:any){\r\n let action = elem.action;\r\n if (action == \"close\"){\r\n this.canvas.designerOpen = false;\r\n this.canvas.app.studioBroadcast.refresh();\r\n }\r\n else if (action == \"focus\"){\r\n if (elem.name){\r\n this.canvas.designFocus = elem.name;\r\n }\r\n }\r\n else if (action == \"setToolboxFolder\"){\r\n this.setFolderContent(elem.name,elem.value);\r\n }\r\n else if (action == \"activateFolder\"){\r\n this.activateFolder(elem.name);\r\n }\r\n }\r\n}","import { ActionRef } from \"core/ActionRef\";\r\nimport { Canvas } from \"core/Canvas\";\r\nimport { DragTool, DropPosition } from \"core/DragState\";\r\n\r\nexport class StudioCommandBuffer {\r\n commands:any[] = [];\r\n canvas:Canvas;\r\n\r\n constructor(canvas:Canvas){\r\n this.canvas = canvas;\r\n }\r\n move(target,destination,position:DropPosition){\r\n let command = {command:\"Move\",target,destination,position};\r\n this.commands.push(command);\r\n }\r\n\r\n toolDrop(tool:DragTool,destination,position:DropPosition){\r\n let command = {command:\"Tool\",tool:tool.name,value:tool.value,destination,position};\r\n this.commands.push(command);\r\n }\r\n\r\n setProp(target:string,name:string,value:string){\r\n let command = { command: \"SetProp\", target, name, value };\r\n this.commands.push(command);\r\n }\r\n appendLine(target:string){\r\n this.commands.push({command:\"AppendLine\",target});\r\n }\r\n\r\n setAsset(target:string,content:any,filename:string){\r\n let command = {command:\"SetAsset\",target,name:\"name\",content,filename};\r\n this.commands.push(command);\r\n }\r\n\r\n menuClick(target:string,name:string,value:string){\r\n let command = {command:\"MenuClick\",target,name,value};\r\n this.commands.push(command);\r\n }\r\n\r\n loadToolbox(name:string,value:string){\r\n let command = {command:\"LoadToolbox\",name,value};\r\n this.commands.push(command);\r\n }\r\n\r\n swapPosition(target:string){\r\n this.commands.push({command:\"SwapPosition\",target});\r\n }\r\n\r\n moveLeft(target:string){\r\n this.commands.push({command:\"MoveLeft\",target});\r\n }\r\n moveRight(target:string){\r\n this.commands.push({command:\"MoveRight\",target});\r\n }\r\n \r\n \r\n async send(){\r\n if (!this.commands.length) {\r\n console.log(\"empty command buffer, nothing to save\");\r\n return;\r\n }\r\n console.log(\"command buffer size: \" + this.commands.length);\r\n let commandsToSend = this.commands;\r\n this.commands = [];\r\n var action = new ActionRef(this.canvas,\"studio-content-updated\",{});\r\n await action.trigger({value:commandsToSend});\r\n }\r\n}\r\n\r\n","import { IValidationError,ICanvasError, KIND, IRecordChangedEvent, IPageLaunchParams } from './types';\r\nimport {ScreenRef} from './ActionEvent';\r\nimport { Collection } from './Collection';\r\nimport { IScreenParameter, Schema } from './Schema';\r\nimport { PageContainer } from './PageContainer';\r\nimport { IfBlockRunner } from './IfBlockRunner';\r\nimport {Request} from './Request';\r\nimport {FileDownloadManager} from './FileDownloadManager';\r\nimport { StyledText } from 'components/helpers/StyledText';\r\nimport { ActionRef } from './ActionRef';\r\nimport { DesignerToolbox } from './studio/DesignerToolbox';\r\nimport { StudioCommandBuffer } from './studio/StudioCommandBuffer';\r\nimport { Application } from './Application';\r\nimport { servicesVersion } from 'typescript';\r\n\r\ntype commandHandler = (screen:ScreenRef,elem:any) => void | Promise;\r\nvar map:{[name:string]:commandHandler} = {\r\n \"Set\":setValue,\r\n \"Assign\":setValue,\r\n \"SetCompare\":setCompare,\r\n \"Trigger\":trigger,\r\n \"Activate\":activateTab,\r\n \"AddRow\":addRow,\r\n \"CacheStrategy\":cacheStrategy,\r\n \"ClearErrors\":clearErrors,\r\n \"Close\":close,\r\n \"Disable\":disable,\r\n \"Download\":download,\r\n \"OutputPage\":outputPage,\r\n \"Draw\":draw,\r\n \"Droplist\":setOptions,\r\n \"Enable\":enable,\r\n \"EnterKey\":setEnterKey,\r\n \"Error\":setError,\r\n \"Focus\":focus,\r\n \"Format\":setFormat,\r\n \"HasUnsavedChanges\":hasUnsavedChanges,\r\n \"Help\":setHelp,\r\n \"Hide\":hide,\r\n \"IfBlock\":ifBlock,\r\n \"ResetRecord\":resetRecord,\r\n \"ResetCollection\":resetCollection,\r\n \"InitFilter\":initFilter,\r\n \"Label\":setLabel,\r\n \"Layout\":layout,\r\n \"Lookup\":setLookup,\r\n \"NavigateUrl\":navigateUrl,\r\n \"LoadDropValues\":loadDropValues,\r\n \"Locate\":locate,\r\n \"Message\":message,\r\n \"NotRequire\":optional,\r\n \"OpenPage\":openPage,\r\n \"PageSettings\":pageSettings,\r\n \"PatchCollection\":patchCollection,\r\n \"SetCollection\":setCollection,\r\n \"SetRecord\":setRecord,\r\n \"SetReturnValue\":setReturnValue,\r\n \"Placeholder\":setPlaceholder,\r\n \"RecordChanged\":recordChanged,\r\n \"RedrawContent\":redrawContent,\r\n \"Remove\":removeRow,\r\n \"Required\":required,\r\n \"Restart\":restart,\r\n \"Stop\":stop,\r\n \"UnHide\":unhide,\r\n \"ValueLabel\":setLookupLabel,\r\n \"Warning\":showWarning,\r\n \"CallBatch\":callBatch,\r\n \"BotDialog\":botDialog,\r\n \"BotPrompt\":botPrompt,\r\n \"ShowSidebar\":showSidebar,\r\n \"HideSidebar\":hideSidebar,\r\n \"TrackUnsavedChanges\":trackUnsavedChanges,\r\n \"RestartOpenPages\":restartOpenPages,\r\n \"AddIcon\":addIcon,\r\n \"ClearSelection\":clearSelection,\r\n \"OpenWorkspace\":openWorkspace,\r\n \"SetSession\":setSession,\r\n \"DesignMode\":designMode,\r\n \"DesignFocus\":designFocus,\r\n \"ViewDraft\":viewDraft,\r\n \"SlotContent\":slotContent,\r\n \"Title\":title,\r\n \"RunOnPage\":runOnPage,\r\n \"StartDesigner\":startDesigner\r\n}\r\n\r\n\r\n\r\nexport type CommandElem = {$kind:string} & any;\r\n\r\nexport async function executeCommands(screen:ScreenRef,commands:CommandElem[]){\r\n if (!commands) return;\r\n let command:CommandElem;\r\n\r\n try {\r\n for(let i =0 ; i < commands.length;i++){\r\n command = commands[i];\r\n let kind = command.$kind;\r\n if (kind == KIND.RETURN) {\r\n if (command.value || command.value === 0){\r\n screen.eventOptions.returnValue = screen.getValue(command.value);\r\n }\r\n throw \"stopped\";\r\n }\r\n let func = map[kind];\r\n if (func){\r\n let result = func(screen,command);\r\n if (result && result.then){\r\n await result;\r\n }\r\n }\r\n else {\r\n throw \"invalid command\";\r\n }\r\n }\r\n\r\n \r\n }\r\n catch(e:any){\r\n if (e != \"stopped\" && !e.$$error){\r\n throw \"Error on command: \" + command.$kind + \" , \" + e.toString();\r\n }\r\n throw e;\r\n }\r\n}\r\n\r\nfunction setValue(screen:ScreenRef,elem:any){\r\n let value = exprVal(screen,elem,\"value\");\r\n let fieldName = elem.name;\r\n if (fieldName == \"@return-value\"){\r\n screen.eventOptions.returnValue = value;\r\n return;\r\n }\r\n\r\n let field = screen.canvas.getFieldRef(elem.name,screen.eventOptions.scope);\r\n if (value && value.$type == \"filter\"){\r\n field.setCompare(value.compare,false);\r\n field.setToValue(value.toValue);\r\n field.setValueNoUpdate(value.value);\r\n }\r\n else {\r\n field.setValueNoUpdate(value);\r\n }\r\n}\r\n\r\n\r\nfunction setCompare(screen:ScreenRef,elem:any){\r\n let value = exprVal(screen,elem,\"value\");\r\n let field = screen.canvas.getFieldRef(elem.name,screen.eventOptions.scope);\r\n field.setCompare(value,false);\r\n}\r\n\r\nfunction initFilter(screen:ScreenRef,elem:any){\r\n let fieldName = elem.name;\r\n let compare = elem.compare;\r\n let value = exprVal(screen,elem,\"value\");\r\n let toValue = exprVal(screen,elem,\"toValue\");\r\n screen.setFilter(fieldName,{value,op:compare,toValue});\r\n}\r\n\r\nasync function trigger(screen:ScreenRef,elem:any){\r\n let name = actionName(screen,elem,\"name\");\r\n let statements = elem.statements;\r\n let value;\r\n let currentOptions = screen.eventOptions;\r\n if (elem.value){\r\n value = exprVal(screen,elem,\"value\");\r\n }\r\n else {\r\n value = currentOptions.value;\r\n }\r\n return screen.triggerAction(name,statements,{noUpdate:true,value,scope:currentOptions.scope,targetPos:currentOptions.targetPos});\r\n}\r\n\r\nfunction activateTab(screen:ScreenRef,elem:any){\r\n screen.activateTab(safeName(elem.name));\r\n}\r\n\r\nfunction addRow(screen:ScreenRef,elem:any){\r\n screen.addRow(elem.name,{position:elem.mode});\r\n}\r\n\r\nfunction close(screen:ScreenRef,elem:any){\r\n let stop = elem.stop;\r\n let shouldContinue = !stop;\r\n let value = exprVal(screen,elem,\"returnValue\");\r\n let label = exprVal(screen,elem,\"returnLabel\");\r\n screen.close({continue:shouldContinue,value,label});\r\n}\r\n\r\nasync function callBatch(screen:ScreenRef,elem:any){\r\n let callMethod = elem.name;\r\n let parameters = elem.params;\r\n let paramValues = screen.canvas.createScriptCallParameters(parameters,screen.eventOptions);\r\n paramValues[\"@event-value\"] = screen.eventOptions.value;\r\n paramValues[\"@return-value\"] = screen.eventOptions.returnValue;\r\n let projections = {};\r\n let results = Schema.getRecordSchema(screen.canvas,\"@results\");\r\n if (results){\r\n paramValues[\"@results:projection\"] = results.projection;\r\n }\r\n await Request.callBatch(screen,\"batch\",callMethod,paramValues);\r\n}\r\n\r\n\r\nfunction disable(screen:ScreenRef,elem:any){\r\n screen.disable(safeName(elem.name),exprVal(screen,elem,\"help\"));\r\n}\r\n\r\nfunction enable(screen:ScreenRef,elem:any){\r\n screen.enable(safeName(elem.name));\r\n} \r\n\r\nfunction setOptions(screen:ScreenRef,elem:any){\r\n screen.setOptions(elem.name,elem.options);\r\n}\r\n\r\nfunction setError(screen:ScreenRef,elem:any){\r\n let message = exprVal(screen,elem,\"message\");\r\n screen.error(elem.field,message);\r\n}\r\n\r\nfunction focus(screen:ScreenRef,elem:any){\r\n screen.focus(elem.name);\r\n}\r\n\r\nfunction setFormat(screen:ScreenRef,elem:any){\r\n let value = exprVal(screen,elem,\"value\");\r\n screen.format(elem.name,value);\r\n}\r\n\r\nfunction setHelp(screen:ScreenRef,elem:any){\r\n let value = exprVal(screen,elem,\"value\");\r\n screen.setHelp(elem.name,{text:value});\r\n}\r\n\r\nfunction hide(screen:ScreenRef,elem:any){\r\n screen.hide(safeName(elem.name));\r\n} \r\n\r\nfunction setLabel(screen:ScreenRef,elem:any){\r\n let value = exprVal(screen,elem,\"value\");\r\n screen.setLabel(elem.name,{text:value});\r\n}\r\n\r\nfunction setLookup(screen:ScreenRef,elem:any){\r\n screen.setLookup(elem.field,{name:elem.name,params:elem.params});\r\n}\r\nasync function message(screen:ScreenRef,elem:any):Promise{\r\n let text = exprVal(screen,elem,\"text\");\r\n let asDialog = elem.asDialog;\r\n let style = elem.style || \"success\";\r\n text = StyledText.format(text);\r\n await screen.message(text,{style,asDialog});\r\n}\r\n\r\nfunction optional(screen:ScreenRef,elem:any){\r\n screen.optional(elem.name);\r\n}\r\n\r\nfunction required(screen:ScreenRef,elem:any){\r\n screen.manditory(elem.name);\r\n}\r\n\r\n\r\nfunction hasUnsavedChanges(screen:ScreenRef,elem:any){\r\n screen.canvas.hasUnsavedChanges = elem.value;\r\n}\r\n\r\nasync function runOnPage(screen:ScreenRef,elem:any){\r\n let page = elem.page;\r\n let statements = elem.statements;\r\n let targetScreen = screen.canvas.app.findScreen(page);\r\n let targetScreenRef = new ScreenRef(targetScreen.canvas,{});\r\n await executeCommands(targetScreenRef,statements);\r\n targetScreen.canvas.update();\r\n}\r\n\r\nfunction startDesigner(screen:ScreenRef,elem:any){\r\n let page = elem.page;\r\n screen.canvas.app.codeDesignerEnabled = true;\r\n screen.canvas.app.designerTargetPage = page;\r\n screen.canvas.app.codeDesignBroadcast.refresh();\r\n}\r\nasync function openPage(screen:ScreenRef,elem:any){\r\n \r\n let params:any = {};\r\n \r\n if (elem.params){\r\n if (elem.$computed){\r\n params = {};\r\n for(let i = 0; i < elem.params.length;i++){\r\n let p = elem.params[i];\r\n params[p.name] = p.value;\r\n }\r\n }\r\n else { \r\n let parameters:IScreenParameter[] = [];\r\n for(let i = 0; i < elem.params.length;i++){\r\n let child = elem.params[i];\r\n if (child.$kind == KIND.PASS){\r\n parameters.push({name:child.name,value:child.value});\r\n }\r\n }\r\n params = screen.canvas.createLaunchParameters(parameters,screen.eventOptions);\r\n }\r\n }\r\n\r\n let pageName:string = exprVal(screen,elem,\"name\"); // elem.name;\r\n let layout = elem.layout;\r\n let view = elem.view;\r\n\r\n let page:IPageLaunchParams = {\r\n name:pageName,\r\n layout,\r\n view,\r\n props:params\r\n }\r\n let content = \r\n\r\n let onRecordChanged:ActionRef;\r\n if (elem.onRecordChanged){\r\n onRecordChanged = screen.action(\"ON_RECORD_CHANGED\",elem.onRecordChanged);\r\n }\r\n\r\n if (elem.mode == \"dialog\"){\r\n let result = await screen.openDialog(content,{onRecordChanged});\r\n if (result.continue){\r\n screen.eventOptions.returnValue = result.value;\r\n }\r\n else {\r\n throw \"stopped\";\r\n }\r\n return;\r\n }\r\n if (screen.canvas.layer == \"bot-message\"){\r\n let question = \"show \" + pageName;\r\n for(let key in params){\r\n question += \" \" + key + \":\" + params[key];\r\n }\r\n screen.canvas.botInfo.botState.addQuestion(question,null);\r\n return;\r\n }\r\n if (elem.mode == \"sidebar\"){\r\n screen.openSidebar(content,{onRecordChanged});\r\n return;\r\n }\r\n let withBrowse = elem.withBrowse;\r\n let browseLabel = exprVal(screen,elem,\"browseLabel\");\r\n if (withBrowse && !browseLabel){\r\n browseLabel = screen.canvas.title;\r\n }\r\n if (browseLabel){\r\n screen.browse(content,{onRecordChanged,label:browseLabel});\r\n }\r\n else {\r\n let asPopup = (elem.mode == \"popup\");\r\n if (asPopup){\r\n let result = await screen.openOnStack(content,{onRecordChanged,asPopup});\r\n if (result.continue){\r\n screen.eventOptions.returnValue = result.value;\r\n }\r\n else {\r\n throw \"stopped\";\r\n }\r\n return;\r\n }\r\n let asReplace = (elem.mode == \"replace\");\r\n \r\n screen.openOnStack(content,{asReplace,onRecordChanged,asPopup,position:elem.position});\r\n\r\n \r\n }\r\n // todo: navigate\r\n}\r\n\r\n\r\nfunction setPlaceholder(screen:ScreenRef,elem:any){\r\n let value = exprVal(screen,elem,\"value\");\r\n screen.setPlaceholder(elem.name,{text:value});\r\n}\r\n\r\n\r\nfunction setReturnValue(screen:ScreenRef,elem:any){\r\n screen.returnValue = elem.value;\r\n}\r\n\r\nfunction recordChanged(screen:ScreenRef,elem:any){\r\n let recordChangedEvent:IRecordChangedEvent = {\r\n action:elem.mode,\r\n rowKey:exprVal(screen,elem,\"rowKey\"),\r\n table:elem.table\r\n }\r\n screen.recordChanged(recordChangedEvent);\r\n}\r\n\r\n\r\nfunction removeRow(screen:ScreenRef,elem:any){\r\n let rowid = exprVal(screen,elem,\"rowid\");\r\n screen.removeRow(elem.name,{rowid,mode:elem.mode});\r\n}\r\n\r\nfunction stop(screen:ScreenRef,elem:any){\r\n throw \"stopped\";\r\n}\r\n\r\nfunction outputPage(screen:ScreenRef,elem:any){\r\n let canvas = screen.canvas;\r\n if (elem.cache){\r\n canvas.cacheStrategy = elem.cache;\r\n }\r\n else if (canvas.layer != \"dialog\"){\r\n canvas.cacheStrategy = \"optimistic\";\r\n }\r\n canvas.displayContent = elem.content || elem.children;\r\n screen.onEnterKey = elem.onEnterKey;\r\n \r\n canvas.setRecord(\"@$today\",elem[\"@$today\"]);\r\n}\r\n\r\nfunction draw(screen:ScreenRef,elem:any){\r\n let canvas = screen.canvas;\r\n if(!canvas.displayContent){\r\n canvas.displayContent = elem.children;\r\n }\r\n else {\r\n canvas.displayContent = canvas.displayContent.concat(elem.children);\r\n }\r\n}\r\n\r\nfunction cacheStrategy(screen:ScreenRef,elem:any){\r\n let canvas = screen.canvas;\r\n if (elem.value){\r\n canvas.cacheStrategy = elem.value;\r\n }\r\n}\r\n\r\nfunction trackUnsavedChanges(screen:ScreenRef,elem:any){\r\n let canvas = screen.canvas;\r\n canvas.trackUnsavedChanges = elem.value;\r\n}\r\n\r\nfunction layout(screen:ScreenRef,elem:any){\r\n let canvas = screen.canvas;\r\n if (!canvas.title){\r\n canvas.title = exprVal(screen,elem,\"title\");\r\n canvas.subtitle = exprVal(screen,elem,\"subtitle\");\r\n canvas.icon = exprVal(screen,elem,\"icon\")\r\n }\r\n canvas.width = elem.width;\r\n canvas.height = elem.height;\r\n canvas.pageType = elem.pageType;\r\n canvas.scrollable = elem.scrollable;\r\n canvas.showClose = elem.showClose;\r\n if (elem.onEnterKey !== undefined){\r\n screen.onEnterKey = elem.onEnterKey;\r\n }\r\n canvas.styles = exprVal(screen,elem,elem.styles);\r\n if (elem.cache){\r\n canvas.cacheStrategy = elem.cache;\r\n }\r\n else if (canvas.layer != \"dialog\"){\r\n canvas.cacheStrategy = \"optimistic\";\r\n }\r\n canvas.displayContent = [{$kind:\"UI.Page\",children:elem.children,$id:elem.$id,$sec:elem.$sec}];\r\n canvas.setRecord(\"@$today\",elem[\"@$today\"]);\r\n}\r\n\r\n\r\nfunction setEnterKey(screen:ScreenRef,elem:any){\r\n let action = elem.action;\r\n screen.onEnterKey = action;\r\n}\r\n\r\nfunction unhide(screen:ScreenRef,elem:any){\r\n screen.unhide(elem.name);\r\n}\r\n\r\nfunction setLookupLabel(screen:ScreenRef,elem:any){\r\n let value = exprVal(screen,elem,\"value\");\r\n screen.setLookupLabel(elem.name,value);\r\n}\r\n\r\nasync function showWarning(screen:ScreenRef,elem:any):Promise{\r\n let message = StyledText.format(exprVal(screen,elem,\"message\"));\r\n let style = elem.style;\r\n let component = elem.component;\r\n await screen.showWarning({message,style,block:component});\r\n}\r\n\r\nfunction locate(screen:ScreenRef,elem:any){\r\n let rowid = exprVal(screen,elem,\"rowid\");\r\n if (!rowid){\r\n let collectionRef = screen.canvas.getCollectionRef(elem.name,screen.eventOptions.scope);\r\n if (collectionRef){\r\n let record = screen.canvas.getRecord(elem.name,screen.eventOptions.scope);\r\n if (record && !Array.isArray(record)){\r\n collectionRef.currentRow = record;\r\n }\r\n }\r\n return;\r\n }\r\n screen.locate(elem.name,rowid);\r\n}\r\n\r\nfunction navigateUrl(screen:ScreenRef,elem:any){\r\n var url = exprVal(screen,elem,\"url\");\r\n var newWindow = elem.newWindow;\r\n if (newWindow){\r\n window.open(url);\r\n }\r\n else {\r\n window.location.assign(url);\r\n }\r\n}\r\n\r\n\r\nasync function restart(screen:ScreenRef,elem:any){\r\n let canvas = screen.canvas;\r\n if (!elem.noDelay && screen.eventOptions.isRecordChanged){ \r\n canvas.pendingRestart = true;\r\n return;\r\n }\r\n await screen.restart();\r\n}\r\n\r\nfunction pageSettings(screen:ScreenRef,elem:any){\r\n let title = exprVal(screen,elem,\"value\");\r\n screen.canvas.title = title;\r\n screen.canvas.stackPosition = elem.stackPosition;\r\n}\r\n\r\nfunction redrawContent(screen:ScreenRef){\r\n screen.canvas.hardRefreshKey++;\r\n}\r\n\r\nfunction resetRecord(screen:ScreenRef,elem:any){\r\n screen.setRecord(elem.name,{},elem.forEdit);\r\n}\r\n\r\nfunction resetCollection(screen:ScreenRef,elem:any){\r\n screen.setCollection(elem.name,[],elem.forEdit,elem.meta);\r\n}\r\n\r\nfunction clearErrors(screen:ScreenRef,elem:any){\r\n screen.clearErrors(elem.name);\r\n}\r\n\r\nfunction setRecord(screen:ScreenRef,elem:any){\r\n screen.setRecord(elem.name,elem.data,elem.forEdit);\r\n}\r\n\r\nfunction setCollection(screen:ScreenRef,elem:any){\r\n screen.setCollection(elem.name,elem.data,elem.forEdit,elem.meta);\r\n}\r\n\r\nfunction patchCollection(screen:ScreenRef,elem:any){\r\n\r\n let collectionName:string = elem.name;\r\n let dataName = safeName(collectionName.substring(1));\r\n\r\n let data = screen.canvas.data;\r\n let schema = Schema.getRecordSchema(screen.canvas,collectionName);\r\n \r\n let currentRows:any[] = data[dataName];\r\n let readonly = !elem.forEdit;\r\n if (!currentRows){\r\n currentRows= [];\r\n data[dataName] = currentRows;\r\n \r\n Collection.bindSchema(schema,currentRows,readonly);\r\n }\r\n let newRows = elem.data;\r\n let keyField = elem.keyField || \"Id\";\r\n if (!newRows || !newRows.length){\r\n if (elem.replaceRowkey){\r\n let rowIndex = findRowIndex(currentRows,elem.replaceRowkey,keyField);\r\n if (rowIndex != -1){\r\n currentRows.splice(rowIndex,1);\r\n }\r\n }\r\n }\r\n else {\r\n for(let i = 0; i < newRows.length;i++){\r\n let row = newRows[i];\r\n if (row){\r\n let rowIndex = findRowIndex(currentRows,row[keyField],keyField);\r\n if (rowIndex == -1){\r\n if (elem.action == \"update-append\"){\r\n currentRows.push(row);\r\n }\r\n else {\r\n currentRows.unshift(row);\r\n }\r\n }\r\n else {\r\n currentRows.splice(rowIndex,1,row);\r\n }\r\n }\r\n }\r\n }\r\n Collection.bindSchema(schema,currentRows,readonly);\r\n Collection.incrementVersion(currentRows);\r\n \r\n}\r\n\r\n\r\n\r\n\r\nfunction loadDropValues(screen:ScreenRef,elem:any){\r\n let name = elem.name;\r\n let options = elem.data || [];\r\n \r\n let isConfigure = false;\r\n if (isConfigure){\r\n let fieldDef = Schema.getQualifiedFieldDef(screen.canvas,name);\r\n if (fieldDef){\r\n fieldDef.options = options;\r\n }\r\n return;\r\n }\r\n screen.setOptions(name,options);\r\n}\r\n\r\nfunction openWorkspace(screen:ScreenRef,elem:any){\r\n let name = elem.name;\r\n let app = screen.canvas.app;\r\n if (elem.page){\r\n let page:IPageLaunchParams = {name:elem.page,props:elem.parameters}; \r\n app.openWorkspace(name,{page});\r\n }\r\n else {\r\n app.openWorkspace(name);\r\n }\r\n \r\n}\r\n\r\nfunction setSession(screen:ScreenRef,elem:any){\r\n let app = screen.canvas.app;\r\n app.session.firstName = elem.firstName;\r\n app.session.lastName = elem.lastName;\r\n}\r\n\r\nfunction download(screen:ScreenRef,elem:any){\r\n let autoOpen = elem.autoOpen;\r\n let content = elem.content;\r\n let filename =elem.filename;\r\n FileDownloadManager.downloadFile(filename,content,autoOpen);\r\n}\r\n\r\nfunction addIcon(screen:ScreenRef,elem:any){\r\n screen.canvas.icons[elem.name] = elem;\r\n}\r\n\r\nfunction designMode(screen:ScreenRef,elem:any){\r\n \r\n let app = screen.canvas.app;\r\n\r\n let action = elem.action;\r\n if (action == \"open\"){\r\n let toolbox = new DesignerToolbox();\r\n screen.canvas.designerOpen = true;\r\n screen.canvas.useDragState();\r\n toolbox.canvas = screen.canvas;\r\n toolbox.content = elem.toolbox;\r\n screen.canvas.designerToolbox = toolbox;\r\n screen.canvas.studioCommandBuffer = new StudioCommandBuffer(screen.canvas);\r\n app.studioBroadcast.refresh();\r\n }\r\n else {\r\n let toolbox = screen.canvas.designerToolbox;\r\n if (toolbox){\r\n toolbox.run(elem);\r\n }\r\n }\r\n}\r\n\r\nfunction viewDraft(screen:ScreenRef,elem:any){\r\n let draft_id = elem.draft_id;\r\n let page = elem.page.toLowerCase();\r\n let canvas = screen.canvas;\r\n canvas.app.currentDraftView[page] = draft_id;\r\n restartPages(canvas.app,page);\r\n}\r\n\r\nfunction slotContent(screen:ScreenRef,elem:any){\r\n screen.canvas.slotContent[elem.name] = elem.value;\r\n}\r\n\r\nfunction designFocus(screen:ScreenRef,elem:any){\r\n if (elem.name){\r\n screen.canvas.designFocus = elem.name;\r\n }\r\n}\r\n\r\nfunction title(screen:ScreenRef,elem:any){\r\n let canvas = screen.canvas;\r\n canvas.title = exprVal(screen,elem,\"value\");\r\n canvas.subtitle = exprVal(screen,elem,\"subtitle\");\r\n canvas.icon = exprVal(screen,elem,\"icon\")\r\n}\r\n\r\nfunction clearSelection(screen:ScreenRef,elem:any){\r\n var collection:any[] = screen.canvas.getRecord(elem.name,null);\r\n if (!collection) return null;\r\n for(let i = 0; i < collection.length;i++){\r\n let row = collection[i];\r\n if (Collection.isRowSelected(row)){\r\n Collection.setRowSelected(row,false);\r\n }\r\n }\r\n}\r\n\r\nfunction botDialog(screen:ScreenRef,elem:any){\r\n screen.canvas.displayContent = {content:[\r\n {$kind:\"UI.Bot.Dialog\",message:elem.message,options:elem.options}\r\n ]}\r\n}\r\n\r\nfunction botPrompt(screen:ScreenRef,elem:any){\r\n screen.canvas.displayContent= {content:[\r\n {$kind:\"UI.Bot.Dialog\",message:elem.message}\r\n ]}\r\n screen.canvas.botInfo.botState.setPromptValue(screen.canvas.botInfo.command + \" \");\r\n}\r\n\r\nfunction showSidebar(screen:ScreenRef,elem:any){\r\n screen.canvas.sidebarState.isOpen = true;\r\n}\r\n\r\nfunction hideSidebar(screen:ScreenRef,elem:any){\r\n screen.canvas.sidebarState.isOpen = false;\r\n}\r\n\r\nfunction safeName(value:string):string {\r\n return value; // value.replace(/\\-/g,\"_\");\r\n}\r\n\r\nfunction exprVal(screen:ScreenRef,elem:any,propName:string):any {\r\n let value = elem[propName];\r\n if (elem.$computed) return value;\r\n if (value){\r\n if (value[0] == '\"'){\r\n return JSON.parse(value);\r\n }\r\n }\r\n return screen.getValue(value);\r\n}\r\n\r\nfunction numVal(screen:ScreenRef,elem:any,propName:string):number {\r\n let value = elem[propName];\r\n return value;\r\n}\r\n\r\nfunction boolVal(screen:ScreenRef,elem:any,propName:string):boolean {\r\n let value = elem[propName];\r\n return (value) ? true : false;\r\n}\r\n\r\n\r\nfunction actionName(screen:ScreenRef,elem,propName:string):string {\r\n let value:string = elem[propName];\r\n return safeName(value);\r\n}\r\n\r\n\r\n\r\nfunction findRowIndex(rows:any[],id:any,keyField:string):number {\r\n if (!rows) return -1;\r\n for(let i =0 ; i < rows.length;i++){\r\n let row = rows[i];\r\n if (row[keyField]== id) return i;\r\n }\r\n return -1;\r\n}\r\n\r\nasync function ifBlock(screen:ScreenRef,elem:any):Promise{\r\n await IfBlockRunner.runIfBlock(screen,elem);\r\n}\r\n\r\nfunction restartOpenPages(screen:ScreenRef,elem){\r\n let pageName = elem.name.toLowerCase();\r\n let app = screen.canvas.app;\r\n setTimeout(()=> {\r\n restartPages(app,pageName);\r\n },50);\r\n}\r\n\r\nfunction restartPages(app:Application,pageName:string){\r\n for(let i = 0; i < app.activeScreens.length;i++){\r\n let activeScreen = app.activeScreens[i];\r\n let canvas = activeScreen.canvas;\r\n if (canvas.pageId && canvas.pageId.toLowerCase() == pageName){\r\n canvas.restart({triggerSearch:true});\r\n }\r\n }\r\n}\r\n\r\nexport function processErrors(screen:ScreenRef,commands:any[],errorRender:any):ICanvasError{\r\n let showDialog:boolean;\r\n if (!commands) return null;\r\n let validationErrors:IValidationError[] = [];\r\n let canvas = screen.canvas;\r\n for(let i = 0; i < commands.length;i++){\r\n let command = commands[i];\r\n if (command.$kind == \"Error\"){\r\n let fieldName = command.field;\r\n if (!fieldName || !command.noDialog){\r\n showDialog = true;\r\n }\r\n if (fieldName){\r\n let fieldDef = Schema.getQualifiedFieldDef(canvas,fieldName);\r\n let label:string;\r\n if (fieldDef){\r\n label = fieldDef.label || fieldName;\r\n }\r\n else {\r\n label = fieldName;\r\n }\r\n validationErrors.push({field:fieldName,label,message:command.message,type:command.type});\r\n }\r\n else {\r\n validationErrors.push({message:command.message,type:command.type});\r\n }\r\n }\r\n }\r\n if (!validationErrors.length && !errorRender) return null;\r\n\r\n return {\r\n showDialog,\r\n messages:['Error'],\r\n validationErrors,\r\n $$error:true,\r\n render:errorRender\r\n }\r\n}","import { Canvas } from \"./Canvas\";\r\n\r\nexport class AutoRefreshSettings {\r\n public canvas:Canvas;\r\n private frequencyMilliSeconds:number;\r\n private _lastRefresh:number;\r\n\r\n constructor(canvas:Canvas,frequencySeconds:number){\r\n this.canvas = canvas;\r\n this.frequencyMilliSeconds = frequencySeconds * 1000;\r\n this._lastRefresh = Date.now();\r\n }\r\n\r\n public refreshIfStale(){\r\n if (this.shouldRefresh){\r\n this._lastRefresh = Date.now();\r\n this.canvas.restart();\r\n console.log(\"auto refreshing: \" + this.canvas.pageId);\r\n }\r\n }\r\n\r\n public get shouldRefresh():boolean {\r\n let now = Date.now();\r\n if ((now - this._lastRefresh) >= this.frequencyMilliSeconds){\r\n if (this.canvas.getIsVisible()){\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n \r\n}","import { Dialog, DialogResult, ErrorDialog, Stack } from './Dialog';\r\nimport { ActionEvent } from './ActionEvent';\r\nimport {ActionHandler,IEventOptions,SidebarState,IEventScope, IActionResult, IActionDefinition, \r\n IPageLaunchParams, IVisibilityContainer, IRecordChangedEvent, RecordChangedHandler, NavbarState} from './types';\r\nimport { FieldRef } from './FieldRef';\r\nimport { AppDataRecord, Application } from './Application';\r\nimport { RecordBrowse } from './RecordBrowse';\r\nimport { RecordMeta } from './RecordMeta';\r\nimport { ActionRef } from './ActionRef';\r\nimport { IRecordSchema, IScreenParameter, Schema } from './Schema';\r\nimport { Broadcast, CollectionRef, ICanvasError, PageContainer, RenderEvent } from '.';\r\nimport { Collection } from './Collection';\r\nimport {executeCommands} from './StatementRunner';\r\nimport { Evaluator } from './expressions/Evaluator';\r\nimport React from 'react';\r\nimport {IRequestCallType, Request} from './Request';\r\nimport { AutoRefreshSettings } from './AutoRefreshSettings';\r\nimport { IBotInfo } from './BotState';\r\nimport { CanvasSettings } from './CanvasSettingsCache';\r\nimport { PageForbiddenError } from './errors/PageForbiddenError';\r\nimport { DragState } from './DragState';\r\nimport { StudioCommandBuffer } from './studio/StudioCommandBuffer';\r\nimport { DesignerToolbox } from './studio/DesignerToolbox';\r\nimport { IRectangle } from 'components/helpers/AnchorPoint';\r\n\r\n\r\nexport class CanvasDesigner {\r\n canvas:Canvas;\r\n dropTargetElem:any;\r\n dropTargetIsContainer:boolean;\r\n dragElem:any;\r\n dragElemContainer:any;\r\n count:number = 0;\r\n nextId:number = 10000;\r\n \r\n refresh(){\r\n console.log(\"designer refresh\",this.count++)\r\n this.canvas.update();\r\n }\r\n\r\n setDropTarget(elem:any,isContainer:boolean){\r\n if (this.dropTargetElem != elem || isContainer != this.dropTargetIsContainer){\r\n this.dropTargetElem = elem;\r\n this.dropTargetIsContainer = isContainer;\r\n this.refresh();\r\n }\r\n }\r\n \r\n findElem(id:string,children:any[]):number{\r\n if (!children) return -1;\r\n for(let i =0 ; i < children.length; i++){\r\n let child = children[i];\r\n if (child.$id == id) return i;\r\n }\r\n return -1;\r\n }\r\n\r\n \r\n}\r\n\r\n\r\nexport type CanvasStackPosition = 'overlay' | 'top';\r\n\r\n\r\nexport class Canvas {\r\n private _data:any;\r\n closeDialogBox:(result:DialogResult) => void;\r\n updateComponent:() => void;\r\n initialized:boolean;\r\n loadError:string;\r\n pendingFocusField:FieldRef;\r\n pendingFocusRow:any;\r\n layer:'layout' | 'workspace' | 'workspace-tab' | 'stack' | 'dialog' | 'lookup' | 'embedded' | 'sidebar' | 'bot-message' | 'dialog-stack' | 'popup';\r\n cacheStrategy: null | 'nocache' |'optimistic';\r\n\r\n layerZIndex:number;\r\n title:string;\r\n subtitle:string;\r\n icon:string;\r\n width:string;\r\n height:string;\r\n scrollable:boolean;\r\n styles:string;\r\n pageType : 'help' | null;\r\n coveredTitle:string;\r\n noPadding:boolean;\r\n asWidget:boolean;\r\n \r\n parent:Canvas;\r\n handleRecordChanged:RecordChangedHandler;\r\n app:Application;\r\n\r\n sidebarState:SidebarState;\r\n navbarState:NavbarState;\r\n stackChild: () => any;\r\n stackPosition:CanvasStackPosition;\r\n stackPositionOverride:CanvasStackPosition;\r\n stackStyle:string;\r\n showClose:boolean;\r\n stackOverlayOffsetX:number;\r\n\r\n getContainerWidth:() => number;\r\n\r\n sidebarContent:() => any;\r\n\r\n activePopup: {\r\n render:(options:{onResize:()=> void}) => any,\r\n rect:IRectangle\r\n };\r\n\r\n activeContentId:any;\r\n tabContent:() => any;\r\n recordBrowse:RecordBrowse;\r\n defaultRecord:string;\r\n enterKeyAction:string;\r\n schema:IRecordSchema;\r\n $$meta:RecordMeta;\r\n launchParams:IPageLaunchParams;\r\n pageId:string;\r\n pageInfo: {\r\n page:string;\r\n version:string;\r\n draft_id:string;\r\n };\r\n actions:{[name:string]:IActionDefinition};\r\n displayContent:any;\r\n blockState:{[name:string]:any};\r\n designer:CanvasDesigner;\r\n\r\n autoRefreshSettings:AutoRefreshSettings;\r\n visibiltyContainer:IVisibilityContainer;\r\n animationComplete:boolean;\r\n\r\n dataBroadcast:Broadcast;\r\n hardRefreshKey = 0;\r\n botInfo:IBotInfo;\r\n icons:{[name:string]:{viewBox:string,path:string}} = {};\r\n contextMenuId:string;\r\n closed:boolean;\r\n loadedFromCache:boolean;\r\n renderDisabled:boolean;\r\n dragState:DragState;\r\n designerToolbox:DesignerToolbox;\r\n designFocus:string;\r\n activeDesignElement:string;\r\n designerOpen:boolean;\r\n studioCommandBuffer:StudioCommandBuffer;\r\n studioSource:string;\r\n \r\n trackUnsavedChanges:boolean;\r\n hasUnsavedChanges:boolean;\r\n slotContent:{[name:string]:any} = {};\r\n autofillFields:{input:HTMLInputElement,field:FieldRef}[];\r\n\r\n renderDesignSlot:(event:RenderEvent,section:string) => any;\r\n \r\n constructor(parent:Canvas){\r\n this.parent = parent;\r\n if (parent){\r\n this.app = parent.app\r\n }\r\n else {\r\n this.app = Application.instance;\r\n }\r\n let appRecord = new AppDataRecord(this.app.appData);\r\n this._data = {$$meta:new RecordMeta(),app:appRecord};\r\n this.$$meta = new RecordMeta();\r\n this.sidebarState = new SidebarState();\r\n this.navbarState = new NavbarState();\r\n this.blockState = {};\r\n this.designer = new CanvasDesigner();\r\n this.designer.canvas = this;\r\n this.dataBroadcast = new Broadcast();\r\n }\r\n\r\n loadSettings(settings:CanvasSettings){\r\n this.stackOverlayOffsetX = settings.overlayWidth || 280;\r\n }\r\n\r\n setSchema(schema:IRecordSchema){\r\n this.schema = schema;\r\n let meta = RecordMeta.forRecord(this._data);\r\n meta.schema = schema;\r\n for(let key in this._data){\r\n let value = this._data[key];\r\n if (value && value.$$meta){\r\n value.$$meta.schema = Schema.getRecordSchema(this,\"@\" + key);\r\n }\r\n }\r\n }\r\n\r\n get containerStyle():string {\r\n return this.layer;\r\n }\r\n\r\n disconnect(){\r\n this.updateComponent = null;\r\n this.app.cart.disconnect(this as any);\r\n }\r\n\r\n registerAutoFillField(field:FieldRef,input:HTMLInputElement){\r\n this.autofillFields = this.autofillFields || [];\r\n this.autofillFields.push({field,input});\r\n }\r\n\r\n unregisterAutoFillField(input:HTMLInputElement){\r\n let current = this.autofillFields;\r\n if (!current) return;\r\n this.autofillFields = [];\r\n for(let i = 0; i < current.length;i++){\r\n let item = current[i];\r\n if (item.input != input){\r\n this.autofillFields.push(item);\r\n }\r\n }\r\n }\r\n getIsVisible():boolean {\r\n if (this.stackChild) return false;\r\n let target:Canvas = this;\r\n while(target){\r\n if (target.visibiltyContainer && target.visibiltyContainer.hidden){\r\n return false;\r\n }\r\n target = target.parent;\r\n }\r\n return true;\r\n }\r\n\r\n useDragState(){\r\n if (!this.dragState){\r\n this.dragState = new DragState(this.app.studioBroadcast);\r\n }\r\n }\r\n\r\n onChildLoaded = (childCanvas:Canvas) => {\r\n if (childCanvas.layer == \"stack\"){\r\n if (childCanvas.pageType == \"help\"){\r\n this.stackStyle = \"help\";\r\n this.update();\r\n }\r\n else if (this.stackStyle){\r\n this.stackStyle = null;\r\n this.update();\r\n }\r\n }\r\n }\r\n\r\n getSettings():CanvasSettings {\r\n return this.app.canvasSettingsCache.getSettings(this.launchParams.name);\r\n }\r\n \r\n setAutoRefresh(frequencySeconds:number){\r\n this.autoRefreshSettings = new AutoRefreshSettings(this,frequencySeconds);\r\n }\r\n\r\n loaded(){\r\n this.initialized = true;\r\n let onCartChange = this.actions[\"on-cart-changed\"];\r\n \r\n if (onCartChange){\r\n let action = new ActionRef(this,\"on-cart-changed\",null);\r\n this.app.cart.connect(this as any,()=> {\r\n this.triggerAction(action);\r\n })\r\n }\r\n }\r\n\r\n openPopup(options:{target?:HTMLElement,rect?:IRectangle,render:(options:{onResize:()=> void}) => any}){\r\n let rect:IRectangle;\r\n if (options.rect){\r\n rect = options.rect;\r\n }\r\n else if(options.target){\r\n let bounding = options.target.getBoundingClientRect();\r\n rect = {\r\n top:bounding.top,\r\n bottom:bounding.bottom,\r\n left:bounding.left,\r\n right:bounding.right\r\n }\r\n }\r\n this.activePopup = {\r\n rect,\r\n render:options.render\r\n };\r\n this.update();\r\n }\r\n\r\n closePopup(){\r\n this.activePopup = null;\r\n this.update();\r\n }\r\n\r\n getHelpTopic(name:string){\r\n let helpTopics = (this.schema as any).helpTopics;\r\n if (helpTopics){\r\n return helpTopics[name];\r\n }\r\n\r\n }\r\n\r\n closeMenu(clickTarget:HTMLElement){\r\n let menuElement = clickTarget.closest('[data-menu-id]');\r\n if (menuElement){\r\n let menuId = menuElement.getAttribute(\"data-menu-id\");\r\n this.app.menuManager.close(menuId);\r\n }\r\n }\r\n\r\n resetData(options?:{preserveInputParams:boolean}){\r\n let input;\r\n if (options && options.preserveInputParams){\r\n input = {};\r\n for(let key in this.schema.fields){\r\n let f = this.schema.fields[key];\r\n if (f.input){\r\n input[f.name.substring(1)] = this._data[f.name.substring(1)];\r\n }\r\n }\r\n }\r\n let appRecord = new AppDataRecord(this.app.appData);\r\n appRecord.$$meta.schema = Schema.getRecordSchema(this,\"@app\");\r\n this._data = {$$meta:new RecordMeta(),app:appRecord,...input};\r\n this.$$meta = new RecordMeta();\r\n \r\n this.initialized = false;\r\n }\r\n\r\n async restart(options?:IEventOptions){\r\n // this.resetData({preserveInputParams:true});\r\n let begin = new ActionRef(this,\"begin\",{});\r\n await this.triggerAction(begin,options);\r\n }\r\n\r\n getIsStackCovered():boolean {\r\n let canvas:Canvas= this;\r\n while(canvas){\r\n if (canvas.stackChild) return true;\r\n if (Stack.isStackTarget(canvas)) return false;\r\n canvas = canvas.parent;\r\n }\r\n return false;\r\n }\r\n\r\n loadStartValues(){\r\n let appRecord = new AppDataRecord(this.app.appData);\r\n // todo: preserve current lineitems\r\n this._data = {$$meta:new RecordMeta(),app:appRecord};\r\n // find / set current line items\r\n this.$$meta = new RecordMeta();\r\n }\r\n\r\n getCurrentRowKeys(){\r\n let schema = this.schema;\r\n let currentRowKeys = {};\r\n if (schema){\r\n for(let key in schema.fields){\r\n let f = schema.fields[key];\r\n if (f.type == \"collection\"){\r\n let currentRow = Collection.getCurrentRow(this,key);\r\n if (currentRow){\r\n let rowKey = Collection.getRowKey(currentRow,f.recordSchema);\r\n if (rowKey){\r\n currentRowKeys[key] = rowKey;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return currentRowKeys;\r\n }\r\n\r\n restoreCurrentRowKeys(rowKeys:any){\r\n let schema = this.schema;\r\n for(let key in schema.fields){\r\n let f = schema.fields[key];\r\n if (f.type == \"collection\"){\r\n let rowKey = rowKeys[key];\r\n if (rowKey){\r\n let row = Collection.findRowByKey(this,key,rowKey);\r\n if (row){\r\n Collection.setCurrentRow(this,key,row);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setData(data:any){\r\n if (data){\r\n for(let key in data){\r\n this._data[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n update(){\r\n if (this.updateComponent){\r\n this.updateComponent();\r\n }\r\n }\r\n\r\n setRecordValueNoUpdate(field:FieldRef,value){\r\n if (field.record){\r\n let name = field.name;\r\n if (name[0] == '@'){\r\n this.setRecordProp(field.record,name.substr(1),value);\r\n }\r\n else {\r\n this.setRecordProp(field.record,name,value);\r\n if (field.recordName == \"@app\"){\r\n this.appValueUpdated(name,value);\r\n }\r\n }\r\n \r\n }\r\n }\r\n\r\n private appValueUpdated(name:string,value:any){\r\n for(let i = 0; i < this.app.activeScreens.length;i++){\r\n let c = this.app.activeScreens[i].canvas;\r\n \r\n if (c.initialized){\r\n let field = c.getFieldRef(\"@app.\" + name,null); \r\n if (field != null){\r\n if (field.def.onValueChanged){\r\n let actionRef = new ActionRef(c,field.def.onValueChanged,field.scope);\r\n field.clearError();\r\n actionRef.trigger({value});\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setRecordProp(record:any,name:string,value:any){\r\n if (record.$$set){\r\n record.$$set(name,value);\r\n }\r\n else {\r\n record[name] = value;\r\n }\r\n }\r\n \r\n async setValue(field:FieldRef,value:any,onValueChanged?:ActionRef){\r\n if (field.value != value){\r\n this.hasUnsavedChanges = true;\r\n }\r\n if (field.record){\r\n let name = field.name;\r\n if (name[0] == '@'){\r\n this.setRecordProp(field.record,name.substring(1),value);\r\n }\r\n else {\r\n this.setRecordProp(field.record,name,value);\r\n }\r\n }\r\n if (onValueChanged){\r\n field.clearError();\r\n await onValueChanged.trigger({value});\r\n }\r\n else {\r\n let onValueChangedAction = field.onValueChanged;\r\n if (onValueChangedAction){\r\n let actionRef = new ActionRef(this,onValueChangedAction,field.scope);\r\n field.clearError();\r\n await actionRef.trigger({value});\r\n }\r\n }\r\n this.update();\r\n }\r\n\r\n pendingRestart:boolean;\r\n closeStack(){\r\n this.stackChild = null;\r\n this.activePopup = null;\r\n this.update();\r\n }\r\n\r\n \r\n async recordChanged(recordEvent:IRecordChangedEvent){\r\n \r\n let canvas:Canvas = this;\r\n let stack:Canvas[] = [];\r\n while(canvas){\r\n if (canvas.handleRecordChanged){\r\n stack.push(canvas);\r\n canvas = canvas.parent;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n\r\n while (stack.length){\r\n canvas = stack.pop();\r\n await canvas.handleRecordChanged(recordEvent); \r\n }\r\n }\r\n\r\n \r\n async triggerAction(actionRef:ActionRef,options:IEventOptions = {}):Promise{\r\n if (!actionRef) return;\r\n\r\n if (this.autofillFields){\r\n for(let i = 0; i < this.autofillFields.length;i++){\r\n let item = this.autofillFields[i];\r\n let value = item.input.value;\r\n if (value != item.field.value){\r\n item.field.setValueNoUpdate(value);\r\n }\r\n }\r\n }\r\n \r\n var event = new ActionEvent(this,options);\r\n event.options.actionName = actionRef.name;\r\n let action = this.getActionHandler(actionRef);\r\n return this.executeActionHandler(actionRef.name,action,options);\r\n }\r\n\r\n async executeActionHandler(actionName:string,action:ActionHandler,options:IEventOptions = {}):Promise{\r\n if (!action) return {continue:true};\r\n var event = new ActionEvent(this,options);\r\n event.options.actionName = actionName;\r\n \r\n this.app.spinner.show();\r\n if (this.studioCommandBuffer && actionName != \"studio-content-updated\"){\r\n console.log(\"flushing command buffer\");\r\n await this.studioCommandBuffer.send();\r\n }\r\n \r\n try {\r\n await action(event);\r\n this.app.spinner.hide();\r\n }\r\n catch(err: any){\r\n if (actionName == \"begin\" && err instanceof PageForbiddenError && this.layer == \"embedded\"){\r\n // suppress error display\r\n this.renderDisabled = true;\r\n if (!options.noUpdate){\r\n this.update();\r\n }\r\n this.app.spinner.hide();\r\n throw err;\r\n }\r\n this.app.spinner.kill();\r\n this.update();\r\n if (err != \"stopped\"){\r\n let error:ICanvasError;\r\n if (err.$$error){\r\n error = err;\r\n }\r\n else {\r\n error = {\r\n messages:[err.toString()],\r\n $$error:true\r\n }\r\n }\r\n if (options.title){\r\n error.validationErrors = error.validationErrors || [];\r\n error.validationErrors.push({message:options.title});\r\n }\r\n let errorDialog = this.app.renderError(this,error);\r\n ErrorDialog.show(this.app,errorDialog);\r\n //Dialog.open(this,errorDialog,null,\"dialog\"); \r\n }\r\n throw \"stopped\";\r\n //return {continue:false};\r\n }\r\n if (!options.noUpdate){\r\n this.update();\r\n }\r\n return {continue:true};\r\n }\r\n\r\n handleEnterKey(scope:IEventScope){\r\n if (ErrorDialog.isVisible) return;\r\n \r\n let actionName = (scope && scope.enterKeyAction) ? scope.enterKeyAction : this.enterKeyAction;\r\n if (!actionName) return;\r\n let actionRef = new ActionRef(this,actionName,null);\r\n this.triggerAction(actionRef);\r\n }\r\n \r\n getRecord(name:string,scope:any):any {\r\n if (!name) return null;\r\n if (scope){\r\n let record = scope[name];\r\n if (record) return record;\r\n }\r\n return this._data[name.substring(1)];\r\n }\r\n\r\n setRecord(name:string,value:any){\r\n if (!name) return null;\r\n this._data[name.substring(1)] = value;\r\n }\r\n getFieldValue(field:string,scope?:any):any {\r\n let fieldRef = this.getFieldRef(field,scope);\r\n if (!fieldRef) return null;\r\n return fieldRef.value;\r\n }\r\n\r\n getFieldRef(field:string,scope:any):FieldRef {\r\n let record:any;\r\n let recordName:string;\r\n if (field){\r\n if (field[0] == '@'){\r\n\r\n let i = field.indexOf('.');\r\n if (i != -1){\r\n let target = field.substr(0,i);\r\n let f = field.substr(i + 1);\r\n recordName = target;\r\n field = f;\r\n }\r\n else {\r\n field = field;\r\n }\r\n if (recordName){\r\n let i = recordName.indexOf('[');\r\n if (i != -1){\r\n let indexer = parseInt(recordName.substring(i + 1,recordName.length - 1),10);\r\n recordName = recordName.substr(0,i);\r\n let collection = this._data[recordName.substr(1)];\r\n if (collection){\r\n return new FieldRef(this,scope,collection[indexer],field,recordName);\r\n }\r\n // invalid collection\r\n return new FieldRef(this,scope,null,field,recordName);\r\n }\r\n }\r\n }\r\n else if (this.defaultRecord){\r\n recordName = this.defaultRecord;\r\n }\r\n \r\n if (recordName){\r\n if (scope){\r\n record = scope[recordName];\r\n if (!record){\r\n record = this._data[recordName.substr(1)];\r\n }\r\n }\r\n else {\r\n record = this._data[recordName.substr(1)];\r\n }\r\n if (Array.isArray(record)){\r\n record = Collection.getCurrentRow(this,recordName);\r\n }\r\n }\r\n else {\r\n record = this._data;\r\n }\r\n }\r\n let fieldRef = new FieldRef(this,scope,record,field,recordName);\r\n return fieldRef;\r\n }\r\n\r\n getCollectionRef(value:string | {rows:any[],schema:IRecordSchema,name:string},scope:any):CollectionRef {\r\n if (!value) return null;\r\n if (typeof(value) === \"string\"){\r\n \r\n let rows:any[];\r\n if (value[0] == \"@\"){\r\n rows = this._data[value.substring(1)];\r\n }\r\n let schema = Schema.getRecordSchema(this,value);\r\n return new CollectionRef(this,scope,rows,value,schema);\r\n }\r\n return new CollectionRef(this,scope,value.rows,value.name,value.schema);\r\n }\r\n\r\n expressionCache = {};\r\n\r\n getValue(expr:string,options:IEventOptions):any{\r\n return Evaluator.evaluate({canvas:this,scope:options.scope,eventValue:options.value,returnValue:options.returnValue},expr);\r\n }\r\n\r\n getActionHandler(actionRef:ActionRef):ActionHandler { \r\n\r\n if (actionRef.name == \"begin\"){\r\n return this.startAction;\r\n }\r\n\r\n let statements:any[];\r\n if (actionRef.statements){\r\n statements = actionRef.statements;\r\n }\r\n else {\r\n let action = this.actions[actionRef.name];\r\n if (action){\r\n statements = action.statements;\r\n }\r\n }\r\n\r\n if (statements){\r\n return async(event:ActionEvent) => {\r\n await executeCommands(event.screen,statements);\r\n }\r\n }\r\n }\r\n\r\n startAction = async({screen}:ActionEvent) =>{\r\n let params = {};\r\n let canvas = screen.canvas;\r\n let callType: IRequestCallType;\r\n if (canvas.initialized){ // is restart\r\n callType = \"restart\";\r\n for(let key in canvas.schema.fields){\r\n let f = canvas.schema.fields[key];\r\n if (f.input){\r\n if (f.isRange || f.type == \"record\" || f.type == \"collection\"){\r\n params[f.name] = canvas.getRecord(f.name,null);\r\n }\r\n else {\r\n params[f.name] = canvas.getFieldValue(key,{});\r\n }\r\n }\r\n \r\n }\r\n if (screen.eventOptions.triggerSearch){\r\n params[\"@trigger_search\"] = true;\r\n }\r\n }\r\n else {\r\n callType = \"start\";\r\n let pageProps = this.launchParams.props;\r\n for(let key in pageProps){\r\n params[key] = pageProps[key];\r\n }\r\n }\r\n let appValues = canvas.app.appData;\r\n if (appValues){\r\n for(let key in appValues){\r\n params[\"@app.\" + key] = appValues[key];\r\n }\r\n }\r\n let res = await Request.callBatch(screen,callType,\"begin\",params);\r\n \r\n }\r\n\r\n\r\n createScriptCallParameters(parameters:{name:string,value:string}[],eventOptions:IEventOptions):any {\r\n let params = {};\r\n let fields = this.schema.fields;\r\n if (parameters){\r\n for(let i = 0; i < parameters.length;i++){\r\n let p = parameters[i];\r\n let field = fields[p.name.toLowerCase()];\r\n \r\n if (field && field.isRange){\r\n params[field.name] = this.data[field.name.substring(1)];\r\n }\r\n else {\r\n params[p.name] = this.getValue(p.value,eventOptions);\r\n }\r\n \r\n params[p.name] = this.getValue(p.value,eventOptions);\r\n }\r\n }\r\n return params;\r\n }\r\n\r\n getSearch(collection:string){\r\n var collectionRef = this.getCollectionRef(collection,null);\r\n if (collectionRef){\r\n\r\n }\r\n }\r\n\r\n createLaunchParameters(parameters:IScreenParameter[],eventOptions:IEventOptions):any{\r\n\r\n let params = {};\r\n if (parameters){\r\n for(let i = 0; i < parameters.length;i++){\r\n let p = parameters[i];\r\n let propName = p.name;\r\n if (propName){\r\n params[propName] = this.getValue(p.value,eventOptions);\r\n }\r\n \r\n }\r\n }\r\n return params;\r\n }\r\n\r\n get data():any {\r\n return this._data;\r\n }\r\n\r\n connectDataListener(listener:React.Component<{},{}>,varName:string,callback:(action?:string,data?:any)=> void){\r\n this.dataBroadcast.connect(listener,varName,(action,data) => callback(action,data));\r\n }\r\n\r\n disconnectDataListener(listener:React.Component<{},{}>){\r\n this.dataBroadcast.disconnect(listener);\r\n }\r\n\r\n viewSource(){\r\n let page:IPageLaunchParams = {\r\n name:\"dev/ViewSource\",\r\n props:{\r\n \"@page_id\":this.launchParams.name\r\n }\r\n }\r\n let content = \r\n Dialog.open(this,content,null,\"dialog\");\r\n }\r\n}\r\n\r\n\r\n\r\n","import { Broadcast } from \"core\";\r\nimport { Canvas } from \"./Canvas\";\r\nimport { Collection,CollectionArray, ICollectionMeta } from \"./Collection\";\r\nimport { RecordMeta } from \"./RecordMeta\";\r\nimport { IRecordSchema } from \"./Schema\";\r\nimport { IEventScope } from \"./types\";\r\n\r\nexport class CollectionRef {\r\n canvas:Canvas;\r\n name:string;\r\n scope:IEventScope;\r\n rows:CollectionArray;\r\n schema:IRecordSchema;\r\n\r\n constructor(canvas:Canvas,scope:IEventScope,rows:any[],name:string,schema:IRecordSchema){\r\n this.canvas = canvas;\r\n this.scope = scope;\r\n this.rows = rows;\r\n this.name = name;\r\n this.schema = schema;\r\n }\r\n\r\n get currentRow():any {\r\n return Collection.getCurrentRow(this.canvas,this.name);\r\n }\r\n\r\n set currentRow(value:any){\r\n Collection.setCurrentRow(this.canvas,this.name,value);\r\n }\r\n\r\n locate(rowid:any):any {\r\n let index = this.findRow(rowid);\r\n if (index != -1){\r\n this.currentRow = this.rows[index];\r\n }\r\n else {\r\n this.currentRow = null;\r\n }\r\n return this.currentRow;\r\n }\r\n\r\n addRow(options:{position?:null | 'first' | 'current'} = {}){\r\n let rows = this.rows;\r\n if (!rows){\r\n rows = [];\r\n this.canvas.setRecord(this.name,rows);\r\n }\r\n let newRow = RecordMeta.initalizeRecord(this.schema,{});\r\n rows.push(newRow);\r\n this.currentRow = newRow;\r\n }\r\n\r\n removeRow(options:{rowid?:any,mode?:null | 'all'}){\r\n let rows = this.rows;\r\n if (!rows) return;\r\n if (options.mode == \"all\"){\r\n rows.splice(0,rows.length);\r\n Collection.incrementVersion(rows);\r\n return;\r\n }\r\n if (options.rowid){\r\n let index = this.findRow(options.rowid);\r\n if (index){\r\n rows.splice(index,1);\r\n Collection.incrementVersion(rows);\r\n }\r\n return;\r\n }\r\n let row = this.scope[this.name];\r\n if (row){\r\n let index = rows.indexOf(row);\r\n if (index != -1){\r\n rows.splice(index,1);\r\n Collection.incrementVersion(rows);\r\n }\r\n }\r\n \r\n }\r\n\r\n findRow(rowid:any):number {\r\n let rows = this.rows;\r\n for(let i =0 ; i < rows.length;i++){\r\n let row = rows[i];\r\n let rowKey = Collection.getRowKey(row,this.schema);\r\n if (rowKey == rowid) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n clearErrors(){\r\n let rows = this.rows;\r\n if (!rows) return;\r\n for(let i = 0; i < rows.length;i++){\r\n let row = rows[i];\r\n if (row){\r\n RecordMeta.clearErrors(row);\r\n }\r\n }\r\n }\r\n\r\n getMeta():ICollectionMeta {\r\n if (this.rows) return this.rows.$$meta;\r\n return null;\r\n }\r\n\r\n setMetaProps(values:any):ICollectionMeta{\r\n if (this.rows){\r\n Collection.setMetaProps(this.rows,values);\r\n return this.getMeta();\r\n }\r\n }\r\n\r\n refresh(){\r\n let meta = this.getMeta();\r\n if (meta && meta.broadcast){\r\n meta.broadcast.refresh();\r\n }\r\n }\r\n\r\n connect(component:any,handler:(action:string) => void){\r\n let meta = this.getMeta();\r\n if (!meta || !meta.broadcast){\r\n meta = this.setMetaProps({broadcast:new Broadcast()})\r\n }\r\n meta.broadcast.connect(component,\"*\",handler);\r\n }\r\n\r\n disconnect(component:any){\r\n let meta = this.getMeta();\r\n if (meta && meta.broadcast){\r\n meta.broadcast.disconnect(component);\r\n }\r\n }\r\n \r\n\r\n}","import React from 'react';\r\nimport {FieldRef} from './FieldRef';\r\nimport {ActionRef} from './ActionRef';\r\nimport { FieldType } from './types';\r\nimport { Dialog } from './Dialog';\r\nimport { FieldFormatter } from './FieldFormatter';\r\n\r\nexport interface IDisplayProps {\r\n size?:null | 'small' | 'medium' | 'large';\r\n vertAlign?:null | 'center';\r\n noTabStop?:boolean;\r\n hideLabel?:boolean;\r\n textStyle?: null | 'normal' | 'bold' | 'italic';\r\n color?:string;\r\n span?:string;\r\n marginTop?:string;\r\n marginBottom?:string;\r\n marginLeft?:string;\r\n marginRight?:string;\r\n}\r\n\r\n\r\n\r\nexport interface IInputControlKeyListener {\r\n obj:any,\r\n onKeyDown:(e:React.KeyboardEvent) => any;\r\n}\r\n\r\n\r\nexport interface InputControl {\r\n editValue:any;\r\n dirty:boolean;\r\n field:FieldRef;\r\n type:FieldType;\r\n focusElemRef:React.RefObject;\r\n handleLaunchFinder:() => void;\r\n findButtonRef:React.RefObject;\r\n finderOpen:boolean;\r\n allowInputWithFinderOpen:boolean;\r\n onBlur(e:React.FocusEvent);\r\n onChange(e:React.ChangeEvent);\r\n onKeyDown(e:React.KeyboardEvent);\r\n onKeyPress(e:React.KeyboardEvent);\r\n isLookup: boolean;\r\n launchFinder(isAutoLaunch:boolean):Promise;\r\n setValue(value:any);\r\n refresh();\r\n connectKeyListener(obj:any,onKeyDown:(e:React.KeyboardEvent) => void);\r\n disconnectKeyListener(obj:any);\r\n}\r\n\r\n\r\nexport function makeInput(Component:React.ComponentClass):React.ComponentClass{ \r\n return (\r\nclass extends React.Component<{field:FieldRef,type?:FieldType,onValueChanged?:ActionRef,isToValue?:boolean}> implements InputControl {\r\n editValue:any;\r\n dirty:boolean;\r\n field:FieldRef;\r\n type:FieldType;\r\n onValueChanged:ActionRef;\r\n\r\n focusElemRef:React.RefObject = React.createRef();\r\n \r\n finderOpen:boolean;\r\n allowInputWithFinderOpen:boolean;\r\n\r\n findButtonRef:React.RefObject = React.createRef();\r\n dropValues:any;\r\n keyListeners:IInputControlKeyListener[];\r\n handleLaunchFinder:() => void;\r\n\r\n constructor(props){\r\n super(props);\r\n this.field = this.props.field;\r\n\r\n }\r\n\r\n render(){\r\n this.field = this.props.field;\r\n this.type = this.props.type || this.field.type;\r\n this.onValueChanged = this.props.onValueChanged;\r\n if (!this.dirty && this.field){\r\n if (this.props.isToValue){\r\n this.editValue = this.field.formattedToValue;\r\n }\r\n else if (this.field.type == \"logical\"){\r\n this.editValue = this.field.value;\r\n }\r\n else {\r\n this.editValue = this.field.formattedValue;\r\n }\r\n }\r\n let props = {...this.props,input:this} as any;\r\n return React.createElement(Component,props);\r\n }\r\n\r\n get isLookup():boolean {\r\n return this.field && (this.field.lookup != null || this.type == \"date\");\r\n }\r\n\r\n onBlur = (e:React.FocusEvent) =>{\r\n if ((this.finderOpen && !this.allowInputWithFinderOpen) || (e.relatedTarget && this.findButtonRef && e.relatedTarget == this.findButtonRef.current)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return;\r\n }\r\n if (this.dirty && this.field && this.isLookup && this.editValue){\r\n let lookup = this.field.lookup;\r\n if (lookup && lookup.autoLaunch){\r\n this.launchFinder(true);\r\n return;\r\n }\r\n \r\n }\r\n if (this.finderOpen){\r\n let clickInsidePopup:boolean;\r\n if (e.relatedTarget){\r\n let targetNode = e.relatedTarget as HTMLElement;\r\n if (targetNode.closest('.RT-DatePicker')){\r\n clickInsidePopup = true;\r\n }\r\n }\r\n if (!clickInsidePopup){\r\n this.finderOpen = false;\r\n this.refresh();\r\n }\r\n }\r\n this.updateValue();\r\n }\r\n\r\n onChange = (e:React.ChangeEvent) =>{\r\n let newValue = e.target.value;\r\n if (this.field.def.uppercase && newValue){\r\n newValue = newValue.toUpperCase();\r\n }\r\n this.editValue = newValue;\r\n this.dirty = true;\r\n this.refresh();\r\n }\r\n\r\n setValue(value:any){\r\n if (value != this.editValue){\r\n this.editValue = value;\r\n this.dirty = true;\r\n this.updateValue();\r\n }\r\n }\r\n\r\n onKeyPress = (e:React.KeyboardEvent) => {\r\n if (e.key == \"Enter\") {\r\n if (this.field && this.type == \"longchar\") return;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.updateValue();\r\n this.field.handleEnterKey();\r\n }\r\n }\r\n\r\n onKeyDown = (e:React.KeyboardEvent) => {\r\n if (this.finderOpen){\r\n if (this.keyListeners){\r\n for(let i = 0; i < this.keyListeners.length;i++){\r\n let listener = this.keyListeners[i];\r\n listener.onKeyDown(e);\r\n }\r\n }\r\n }\r\n else if (e.key == \"ArrowDown\") {\r\n if (this.isLookup){\r\n e.preventDefault();\r\n if (this.finderOpen) return;\r\n this.launchFinder(false);\r\n }\r\n }\r\n }\r\n\r\n refresh(){\r\n this.forceUpdate();\r\n }\r\n\r\n async updateValue() {\r\n if (this.dirty) {\r\n let field = this.field;\r\n\r\n let value = FieldFormatter.parseInput(this.editValue,this.type);\r\n if (field.def && field.def.uppercase){\r\n if (value && value.toUpperCase){\r\n value = value.toUpperCase();\r\n }\r\n }\r\n if (value){\r\n let error = field.error;\r\n if (error && error.message == \"required\"){\r\n field.clearError();\r\n }\r\n }\r\n field.lookupLabel = null;\r\n if (this.props.isToValue){\r\n field.setToValue(value);\r\n }\r\n else {\r\n field.setValue(value);\r\n }\r\n \r\n this.dirty = false;\r\n if (field.type == \"logical\"){\r\n this.editValue = field.value;\r\n }\r\n else {\r\n this.editValue = field.formattedValue;\r\n }\r\n \r\n this.forceUpdate();\r\n \r\n }\r\n }\r\n\r\n async launchFinder(isAutoLaunch:boolean) {\r\n if (this.handleLaunchFinder){\r\n this.handleLaunchFinder();\r\n return;\r\n }\r\n let eventValue;\r\n if (this.dirty){\r\n eventValue = this.editValue;\r\n }\r\n\r\n this.dirty = false;\r\n let field = this.field;\r\n let previous = field.value;\r\n if (this.props.isToValue){\r\n this.editValue = field.toValue;\r\n }\r\n else {\r\n this.editValue = field.value;\r\n }\r\n this.finderOpen = true;\r\n let result = await Dialog.openLookup(field, eventValue, previous,{isAutoLaunch});\r\n if (result.continue){\r\n field.lookupLabel = result.label;\r\n if (this.props.isToValue){\r\n await field.setToValue(result.value);\r\n }\r\n else {\r\n await field.setValue(result.value);\r\n }\r\n }\r\n this.finderOpen = false;\r\n this.refresh();\r\n }\r\n\r\n handleDropSelection(value:any,displayValue:string){\r\n this.finderOpen = false;\r\n this.dropValues = null;\r\n let field = this.field;\r\n field.lookupLabel = displayValue;\r\n if (this.props.isToValue){\r\n field.setToValue(value);\r\n }\r\n else {\r\n field.setValue(value);\r\n }\r\n this.dirty = false;\r\n if (this.props.isToValue){\r\n this.editValue = field.formattedToValue;\r\n }\r\n else {\r\n this.editValue = field.formattedValue;\r\n }\r\n this.forceUpdate();\r\n }\r\n\r\n connectKeyListener(obj:any,onKeyDown:(e:React.KeyboardEvent) => any){\r\n let i = this.findListener(obj);\r\n if ( i == -1){\r\n this.keyListeners = this.keyListeners || [];\r\n this.keyListeners.push({obj,onKeyDown});\r\n }\r\n }\r\n\r\n findListener(obj:any):number{\r\n if (!this.keyListeners) return -1;\r\n for(let i = 0; i < this.keyListeners.length;i++){\r\n let listener = this.keyListeners[i];\r\n if (listener.obj == obj){\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n disconnectKeyListener(obj:any){\r\n let i = this.findListener(obj);\r\n if (i != -1){\r\n this.keyListeners.splice(i,1);\r\n }\r\n }\r\n}) as any;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { RenderEvent } from 'core';\r\nimport { DynamicRender } from 'core/DynamicRender';\r\nimport React from 'react';\r\n\r\nexport class HelpButton extends React.Component<{ event: RenderEvent; topic: any; }> {\r\n render(): React.ReactNode {\r\n return
\r\n
?
\r\n
;\r\n\r\n }\r\n handleClick = (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n let event = this.props.event;\r\n let canvas = event.canvas;\r\n let content = this.props.topic.content;\r\n let target = e.target as HTMLElement;\r\n /*\r\n let video = (\r\n
\r\n
\r\n\r\n )\r\n */\r\n\r\n canvas.openPopup({\r\n target,\r\n render:() => {\r\n return
\r\n {DynamicRender.render(event, content)}\r\n
;\r\n }\r\n\r\n });\r\n \r\n };\r\n}\r\n","import React from 'react';\r\nimport {makeComponent,ActionRef, RenderEvent} from 'core';\r\nimport {ClickThrottle} from './helpers/ClickThrottle';\r\nimport { Icon } from './Icon';\r\nimport { HelpButton } from './HelpButton';\r\nimport { IStyleIcon } from 'core/types';\r\n\r\nexport type ButtonStyle = 'primary' | 'link' | 'secondary' | 'add' | 'cancel' | 'destructive' | 'warning' | 'outline';\r\n\r\nexport const Button = makeComponent(class extends React.Component<{event:RenderEvent,$id:string,label:string,size?:string;\r\n style?:ButtonStyle;action?:ActionRef,icon?:string,styles?:string,onClick?:ActionRef}>{\r\n\r\n render(){\r\n let action = this.props.action || this.props.onClick;\r\n if (!action || action.hidden) return null;\r\n\r\n let styles = this.props.event.computeStyles(action.styles,this.props.styles);\r\n \r\n let icon:IStyleIcon;\r\n if (styles.icon){\r\n icon = styles.icon;\r\n }\r\n else {\r\n let iconName = this.props.icon || action.icon;\r\n if (iconName) {\r\n icon = {name:iconName};\r\n }\r\n }\r\n \r\n let className:string[] = ['RT-Button'];\r\n\r\n \r\n if (!icon && styles.className && styles.className.indexOf(\"btn-add\") != -1){\r\n icon = {name:\"plus\"};\r\n }\r\n \r\n let label = this.props.label || action.label;\r\n \r\n if (styles){\r\n className.push(styles.className)\r\n }\r\n \r\n let tabIndex; // = getTabIndex(this.props);\r\n let button = ;\r\n let helpTopic = this.props.event.canvas.getHelpTopic(action.name);\r\n if (helpTopic){\r\n return
\r\n {button}\r\n \r\n
\r\n }\r\n return button;\r\n }\r\n\r\n});\r\n\r\n\r\n\r\nclass ButtonPresenter extends React.Component<{className:string[],size:string,\r\n tabIndex:number,icon?:IStyleIcon,label:string,action:ActionRef,$id}>{\r\n\r\n clickThrottle:ClickThrottle;\r\n\r\n buttonRef = React.createRef();\r\n componentDidMount(){\r\n let action = this.props.action;\r\n if (action && action.shouldFocus){\r\n if (this.buttonRef.current){\r\n this.buttonRef.current.focus();\r\n }\r\n }\r\n }\r\n\r\n componentDidUpdate(){\r\n let action = this.props.action;\r\n if (action && action.shouldFocus){\r\n if (this.buttonRef.current){\r\n this.buttonRef.current.focus();\r\n }\r\n }\r\n }\r\n render(){\r\n\r\n let action = this.props.action;\r\n let label = this.props.label;\r\n let disabled:boolean;\r\n let help:string;\r\n if (action){\r\n disabled = action.disabled;\r\n if (disabled){\r\n help = action.disabledHelp;\r\n }\r\n else {\r\n help = action.help;\r\n }\r\n }\r\n \r\n \r\n let size = this.props.size;\r\n let className = this.props.className;\r\n\r\n switch (size) {\r\n case \"small\":\r\n className.push(\"RT-Button--small\");\r\n break;\r\n case \"large\":\r\n className.push(\"RT-Button--large\");\r\n break;\r\n }\r\n\r\n let content;\r\n let icon = this.props.icon;\r\n if (icon){\r\n content =
{}{label}
\r\n }\r\n else {\r\n content = label;\r\n }\r\n\r\n \r\n return (\r\n <>\r\n \r\n {\"\\n\"}\r\n \r\n );\r\n }\r\n\r\n\r\n handleClick = (e:React.MouseEvent) => {\r\n this.clickThrottle = this.clickThrottle || new ClickThrottle();\r\n this.clickThrottle.handle(e,null,() => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n let target = e.target as HTMLElement;\r\n let targetPos;\r\n if (target){\r\n targetPos = {x:e.clientX,y:e.clientY};\r\n }\r\n this.props.action.trigger({targetPos});\r\n });\r\n }\r\n\r\n\r\n}\r\n","export class Expressions {\r\n public static toDisplayValue(expr:any):string {\r\n if (!expr) return \"\";\r\n if (expr[0] == \"@\"){\r\n return \"{\" + expr + \"}\";\r\n }\r\n if (expr[0] == \"'\"){\r\n expr = expr.substring(1);\r\n }\r\n if (expr.length && expr[expr.length - 1] == \"'\"){\r\n expr = expr.substring(0,expr.length - 1);\r\n }\r\n return expr;\r\n }\r\n\r\n public static fromDisplayValue(value:string):any {\r\n if (!value) return null;\r\n if (value[0] == \"{\"){\r\n value = value.substring(1);\r\n if (value.endsWith(\"}\")){\r\n value = value.substring(0,value.length - 1);\r\n }\r\n return value;\r\n }\r\n return \"'\" + value.replaceAll(\"'\",\"''\") + \"'\";\r\n }\r\n}","import { ActionRef, RenderEvent } from 'core';\r\nimport { Expressions } from 'core/studio/Expressions';\r\nimport React from 'react';\r\n\r\n\r\n\r\nexport class InlineTextPropEditor extends React.Component<{ event: RenderEvent; $id: string; $elem: any; propName: string; \r\n className?: string; style?: React.CSSProperties; allowEnterForNewLine?: boolean;placeHolder:string }> {\r\n\r\n dirty: boolean;\r\n editValue: string;\r\n ref = React.createRef();\r\n\r\n componentDidMount() {\r\n let canvas = this.props.event.canvas;\r\n if (this.props.$id == canvas.designFocus) {\r\n canvas.designFocus = null;\r\n this.ref.current.focus();\r\n }\r\n }\r\n\r\n render() {\r\n\r\n let divStyle: React.CSSProperties = { ...this.props.style, opacity: 0 ,paddingRight:20};\r\n let textAreaStyle: React.CSSProperties = {\r\n ...this.props.style, position: \"absolute\", top: 0, left: 0, right: 0, bottom: 0, backgroundColor: \"transparent\",\r\n outline: \"none\", resize: \"none\"\r\n };\r\n let sourceElem = this.props.$elem;\r\n let value = this.dirty ? this.editValue : Expressions.toDisplayValue(sourceElem[\"$src_\" + this.props.propName]);\r\n let displayValue;\r\n if (value){\r\n displayValue = value;\r\n divStyle.opacity = 0;\r\n }\r\n else {\r\n displayValue = this.props.placeHolder;\r\n divStyle.opacity = 0.6;\r\n }\r\n return
\r\n
{displayValue || '\\u00A0'}
\r\n