{"version":3,"sources":["../../sdk/lib/use-composed-class-names.js","../../sdk/lib/ui/app-layout.js","../../sdk/lib/ui/icon.js","../../sdk/lib/ui/button.js","../../sdk/lib/ui/card.js","../../sdk/lib/ui/heading.js","../../sdk/lib/ui/icon-button.js","../../sdk/lib/ui/icon-types.js","../../sdk/lib/ui/list-item.js","../../sdk/lib/ui/site-footer.js","../../sdk/lib/ui/site-main.js","../../sdk/lib/ui/spinner.js","../../sdk/lib/ui/text-field.js","../../sdk/lib/use-immer.js","../../sdk/lib/rapid-application/application-context.js","../../sdk/lib/use-local-storage-state.js","../../sdk/lib/safe-json-parse.js","../../sdk/lib/use-current-connection.js","../../sdk/lib/use-environments.js","../../sdk/lib/utils/group-by.js","../../sdk/lib/ui/environment-picker.js","../../sdk/lib/use-input-state.js","../../sdk/lib/rapid-application/login/new-connection.js","../../sdk/lib/rapid-application/login/add-connection-card.js","../../sdk/lib/query-string.js","../../sdk/lib/proxy-rest-client.js","../../sdk/lib/use-current-site-endpoint.js","../../sdk/lib/authentication.js","../../sdk/lib/use-current-site.js","../../sdk/lib/use-list.js","../../sdk/lib/utils/kebab-case.js","../../sdk/lib/use-site-css-variables.js","../../sdk/lib/rapid-application/site-context.js","../../sdk/lib/rapid-application/rapid-application.js","../../sdk/lib/rapid-application/symbols.js","../../sdk/lib/utils/upload-session.js","../../sdk/lib/rapid-application/attachments-context.js","../../sdk/lib/rapid-application/managed-rapid-application.js","../../sdk/lib/use-data-source.js","../../sdk/lib/rapid-application/managed-view-context.js","../../sdk/lib/rapid-application/embedded-file-context.js","../../sdk/lib/rapid-application/managed-file-context.js","../../sdk/lib/rapid-application/managed-powerbi-context.js","../../sdk/lib/utils/unique-id.js","../../sdk/lib/rapid-application/managed-list-item-context.js","../../sdk/lib/utils/throttle.js","../../sdk/lib/utils/sanitize-html.js","components/sidebar/sidebar.tsx","components/commandbar/commandBar.tsx","utils/Navigation.tsx","utils/breadcrumbText.tsx","sdk/breadcrumbs/breadcrumbs.tsx","utils/feedbackWrapper.tsx","../../data-model/lib-esm/column-type.js","../../data-model/lib-esm/mode-flags.js","../../data-model/lib-esm/notification-type.js","../../data-model/lib-esm/webhook-type.js","../../data-model/lib-esm/subquery-type.js","../../data-model/lib-esm/number-format.js","../../data-model/lib-esm/field-type.js","../../data-model/lib-esm/default-fields.js","../../data-model/lib-esm/powerbi-models.js","../../data-model/lib-esm/xmla-models.js","../../data-model/lib-esm/index.js","utils/allFields.tsx","utils/ListFields.tsx","components/dataTable/AdaptiveViewTable.tsx","../../adaptive-forms/lib/adaptive-form-context.js","../../adaptive-forms/lib/adaptive-renderer.js","../../adaptive-forms/lib/adaptive-form.js","../../adaptive-forms/lib/form-element.js","../../adaptive-forms/lib/symbols.js","../../adaptive-forms/lib/fields/text-field.js","../../adaptive-forms/lib/fields/email-field.js","../../sdk/lib/use-throttle-fn.js","../../adaptive-forms/lib/fields/multi-lookup-field/lookup-select.js","../../sdk/lib/use-list-items.js","../../adaptive-forms/lib/fields/multi-lookup-field/filtered-select-dropdown.js","../../adaptive-forms/lib/fields/multi-lookup-field/multi-lookup-field.js","../../adaptive-forms/lib/fields/date-time-field/date-time-field.js","../../adaptive-forms/lib/fields/choice-field/choice-field.js","../../adaptive-forms/lib/fields/lookup-field/lookup-field.js","../../adaptive-forms/lib/utils/use-cascading-lookups.js","../../adaptive-forms/lib/fields/boolean-field.js","../../adaptive-forms/lib/fields/number-field.js","../../adaptive-forms/lib/fields/computed-field.js","../../adaptive-forms/lib/fields/radio.js","../../adaptive-forms/lib/fields/star-rating/star-rating.js","../../adaptive-forms/lib/fields/likert-scale/likert-scale.js","../../adaptive-forms/lib/fields/percentage-field.js","../../adaptive-forms/lib/fields/currency-field.js","../../adaptive-forms/lib/fields/user-field.js","../../adaptive-forms/lib/layout/heading-layout.js","../../adaptive-forms/lib/layout/layout-section.js","../../adaptive-forms/lib/layout/layout-divider.js","../../adaptive-forms/lib/layout/layout-spacer.js","components/QueryBuilder/layouts/base-layout.tsx","components/QueryBuilder/actions/add-group.tsx","components/QueryBuilder/actions/add-rule.tsx","components/QueryBuilder/utils/helpers.tsx","components/QueryBuilder/actions/remove-item.tsx","components/QueryBuilder/fields/operand-field.tsx","components/QueryBuilder/fields/field-select.tsx","components/QueryBuilder/fields/table-select.tsx","components/QueryBuilder/fields/and-or-toggle.tsx","components/QueryBuilder/layouts/sql-join-layout.tsx","components/QueryBuilder/actions/add-join.tsx","components/QueryBuilder/fields/field-type-input.tsx","components/QueryBuilder/fields/generic-field.tsx","components/QueryBuilder/layouts/sql-layout.tsx","components/QueryBuilder/utils/sql-query-parser.tsx","components/QueryBuilder/utils/parser-functions.tsx","components/QueryBuilder/fields/orderby-select.tsx","components/QueryBuilder/QueryBuilder.tsx","components/QueryBuilder/fields/table-alias-input.tsx","components/QueryBuilder/utils/sql-query-converter.tsx","features/adaptiveView/editAdaptiveViewForm.tsx","features/adaptiveView/adaptiveView.tsx","components/dataTable/SkeletonTable.tsx","components/dataTable/ManagedViewContextTable.tsx","utils/TitleField.tsx","features/AdaptiveViewsList/forms/addAdaptiveViewForm.tsx","features/AdaptiveViewsList/adaptiveViewsList.tsx","features/dashboardsList/dashboardsLists.AddDashboardForm.tsx","features/dashboardsList/dashboardsList.tsx","utils/adaptiveViewColumns.tsx","features/dataset/datasetContext.tsx","features/dataset/cards/relationshipCard.Column.tsx","features/dataset/forms/addRelationshipForm.tsx","features/dataset/cards/relationshipCard.tsx","features/dataset/cards/skeletonCard.tsx","features/dataset/cards/tableCard.Column.tsx","features/dataset/forms/addColumnForm.tsx","features/dataset/cards/tableCards.tsx","features/dataset/forms/addTableForm.tsx","features/dataset/dataset.tsx","utils/siteViews.tsx","features/datasetsList/forms/addDatasetForm.tsx","utils/exponentialCallback.tsx","features/datasetsList/datasetsList.tsx","components/powerBIReport/embedCreatePBIReport.tsx","features/report/newReport.tsx","sdk/editPreview/editPreview.tsx","components/powerBIReport/embedPBIReport.tsx","features/report/report.tsx","features/dashboard/forms/addDashboardCardForm.tsx","features/reportsList/reportsList.tsx","features/dashboard/cards/dashboardBarCard.tsx","components/dataTable/ManagedAdaptiveViewTable.tsx","features/dashboard/dashboard.tsx","Pages.tsx","index.tsx"],"names":["useComposedClassName","classNameGenerator","deps","generator","Array","isArray","Symbol","iterator","useMemo","classNames","item","push","join","AppLayout","templateName","className","children","React","createElement","Icon","style","iconName","iconStyle","iconSize","iconRotation","iconFlip","iconAnimation","fixedWidth","generatedClassName","Button","onClick","buttonSize","buttonStyle","fullWidth","isDisabled","margin","cssClass","map","event","disabled","Card","type","hover","size","CardBody","CardHeader","CardFooter","Heading","alignment","IconButton","iconAlignment","isLogo","i","length","ListItem","props","Object","assign","ListItemLeftContent","ListItemCenterContent","ListItemRightContent","SiteFooterCopy","SiteFooter","SiteMain","Spinner","hidden","Component","useImmer","initialValue","useState","val","updateValue","useCallback","updater","nextState","produce","appContext","createContext","AppProvider","Provider","ApplicationContext","key","value","displayName","clientId","namespace","tenant","site","environment","copyright","connections","json","defaultValue","_a","JSON","parse","safeJsonParse","localStorage","getItem","env","environments","appData","setAppData","useEffect","setItem","stringify","fetch","then","res","draft","Fragment","keys","useRapidApplication","useContext","useCurrentConnections","app","_b","filter","_c","localeCompare","useEnvironments","envGroups","ary","entries","groupFn","reduce","prev","curr","groupingKey","hasOwnProperty","EnvironmentPicker","onChange","id","placeholder","ev","target","envs","label","name","useInputState","state","setState","NewConnection","onNewConnection","params","useParams","onTenantChange","onSiteChange","setEnv","ref","useRef","current","focus","onSubmit","preventDefault","required","AddConnectionCard","_d","_e","updateApp","conns","ua","useMsal","history","useHistory","match","useRouteMatch","displayAddNewSite","setDisplayAddNewSite","conn","openSite","toggleDisplayAddNewSite","details","stopPropagation","d","loginPopup","authority","scopes","account","newSite","toLowerCase","lastVisit","Date","toISOString","upn","username","catch","err","encodeQueryString","o","k","v","RequestError","response","message","status","statusCode","statusText","isJson","test","headers","get","a","this","text","Error","isBlob","input","Blob","prototype","toString","call","isFile","File","proxyRestClient","resourceUrl","window","Proxy","prop","query","body","contentType","queryStr","url","URL","search","method","toUpperCase","resp","ok","blob","replace","useCurrentSiteEndpoint","local","location","api_url","origin","category","wf_url","useCurrentEnvironment","useAuthenticatedFetch","useRapidAuthenticatedFetch","useCurrentSite","currentSite","useList","list","Lists","find","l","ListName","innerList","rsAstralRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsApos","rsBreak","rsCombo","rsComboMarksRange","rsDingbat","rsLower","rsMisc","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsSeq","rsEmoji","reUnicodeWords","RegExp","hasUnicodeWord","bind","reAsciiWord","words","string","pattern","undefined","unicodeWords","asciiWords","kebabCase","str","result","word","index","allChoiceFields","Fields","field","FieldType","Settings","Choices","choice","f","cssVariableName","ColumnName","Text","MultiSiteContext","SiteContext","signInRequired","setSignInRequired","siteEp","useLayoutEffect","styleTag","document","setAttribute","styles","from","AccentColour","appendChild","createTextNode","head","removeChild","useSiteCSSVariables","setActiveAccount","getAccountByUsername","principalId","principalUpn","principalDisplayName","currentPrincipalId","currentPrincipalDisplayName","currentPrincipalUpn","MultiSiteApplication","OverriddenLoginExperience","loginExperience","ApplicationAuthenticationContext","Switch","Route","path","Redirect","to","for","CHUNK_SIZE","EventEmitter","ManagedMultiSiteApplication","title","StrictMode","BrowserRouter","useDataSource","dataSource","updateCurrentSite","DataSources","Table","ds","useDataSources","dataSources","updateDataSources","Title","itemContextIterator","Context","values","ManagedViewContext","columns","searchTerm","linkedTo","count","disableAutoFetch","innerDs","ep","fetchItems","updateContext","loading","Items","getJson","term","$filter","$select","data","items","$count","context","ids","delete","fetchItem","deleteItems","useViewContext","reportContextIterator","datasetContextIterator","ManagedPowerBIContext","workspaceId","PowerBIWorkspaceID","fetchReports","Reports","reports","fetchDatasets","Datasets","datasets","reportId","Xmla","dataset","deleteReport","deleteDataset","usePowerBIContext","usePowerBIReports","powerbi","updatePowerBI","usePowerBIReport","powerBIReports","updatePowerBIReports","usePowerBIDatasets","idCounter","uniqueId","prefix","ManagedListItemContext","validate","useListItemContext","parentContext","updateParentContext","__metadata","validateItem","recursive","errors","validation","transformAll","validateSync","abortEarly","validationErrors","e","innerErrors","error","subContexts","subContext","concat","saveItem","putJson","postJson","newItem","updateItem","fetchTimeline","excludeDiffNotes","timelineLoading","Timeline","timeline","$id","AuthenticationContext","msal","PublicClientApplication","auth","redirectUri","cache","storeAuthStateInCookie","cacheLocation","init","acquireTokenSilent","InteractionRequiredAuthError","acquireTokenPopup","token","authorization","accessToken","throttle","func","waitFor","timeout","now","getTime","resetStartTime","startTime","args","Promise","resolve","timeLeft","clearTimeout","setTimeout","sanitizeRules","allowedTags","sanitizeHtmlReal","defaults","allowedAttributes","tr","td","table","span","img","allowedSchemesByTag","sanitizeHtml","SanitizedDiv","html","dangerouslySetInnerHTML","__html","Sidebar","SidebarHeader","SidebarMain","SidebarHeaderItem","baseUrl","SidebarMenuItem","route","icon","CommandBar","CommandBarLeft","CommandBarCenter","CommandBarRight","useNavigation","Navigate","pathname","substring","BaseNavigate","useBreadcrumbText","pbiContext","view","split","Breadcrumbs","breadcrumbText","paths","breadcrumbs","splice","goBack","breadcrumb","Item","feedbackWrapper","success","uuidv4","content","duration","destroy","notification","description","feedbackWrapperErrorModal","getData","errorMessage","Modal","width","maxHeight","overflow","ColumnType","ModeFlags","NotificationType","WebhookType","SubqueryFormat","NumberFormat","Email","Note","DateTime","Lookup","Boolean","Number","Percentage","Currency","Computed","User","Raw","Integer","GUID","XML","None","EncryptionStatus","XmlaPartitionModeType","XmlaRelationshipCardinality","XmlaRelationshipType","XmlaRelatoinshipDateTimeRelationshipBehavior","XmlaRelationshipCrossFilteringBehavior","XmlaPartitionSourceType","XmlaColumnType","RefreshGranularityType","DataSourceType","ImpersonationMode","DatasourceIsolation","ExpressionKind","ItemAction","NotesType","DependencyType","TimelineEventType","DefaultFields","ExcludeDefaultFields","SystemManaged","Updateable","Searchable","AlwaysSelect","LookupList","Extends","Hidden","Visible","Nullable","DefaultValue","DisplayAs","Query","allFields","useListFields","getListFields","listOrTable","extendedList","AdaptiveViewTable","renderColumn","toLocaleDateString","color","copyable","slice","CurrencyType","column","fields","tableName","columnName","dataIndex","render","pagination","bordered","scroll","x","sticky","rowKey","adaptiveFormContext","FormProvider","AdaptiveFormContext","formSchema","components","componentLibrary","Controls","AdaptiveForm","useAdaptiveFormContext","removeField","fieldRef","formElement","$children","ind","findIndex","child","returnField","attributes","useAdaptiveData","AdaptiveRenderer","form","FormElement","elementRef","dataType","direction","isValueObject","onChangeInner","el","newVal","c","$type","formContext","onBlur","useAdaptiveField","element","helpers","selectedValue","schema","conditions","allValidation","isValid","isValidSync","fieldClass","includes","fieldAttributesSchemaTag","rapidAttributesSchemaTag","descriptionTag","iconTag","titleTag","configComponentTag","TextField","textFieldClass","Input","EmailField","setIsValid","throttledValidateInput","fn","dependencies","throttled","useThrottledFn","handleSendEmailClicked","send","open","emailFieldClass","allowClear","suffix","Popconfirm","overlayClassName","okText","cancelText","onConfirm","onCancel","Tooltip","visible","LookupSelect","setSearchTerm","labelKey","valueKey","dropdownRender","mode","viewContext","useViewContextListItemArray","innerSearchTerm","setInnerSearchTerm","options","itemLabel","trim","ListNameSingular","column_name","onSelect","option","Select","showArrow","notFoundContent","defaultActiveFirstOption","getPopupContainer","getElementById","onDeselect","optionLabelProp","searchValue","onInputKeyDown","onSearch","filterOption","showSearch","onDropdownVisibleChange","FilteredSelectDropdown","menu","setFilter","filters","filtersTitle","onFilterClick","Divider","MultiLookupField","lookupList","lookupField","setDataSource","multiLookupFieldClass","inflection","singularize","dasherize","toLocaleLowerCase","newValue","DateTimeField","showTime","dateTimeClass","madMoment","moment","DatePicker","t","format","dateString","toDate","suffixIcon","Space","ChoiceField","choices","display","alignItems","marginRight","backgroundColor","height","borderRadius","choiceClass","parentElement","LookupField","_f","_g","_h","_j","_k","_l","lookupBinding","lookupBindings","LookupValueSource","targetElement","listName","groups","useCascadingLookups","unshift","BooleanField","checkboxRef","isFocused","setIsFocused","labelClass","booleanClass","checked","onKeyDown","onFocus","NumberField","currencyType","step","ComputedField","multiline","RadioField","justifyLeft","uuid","pallet","Math","floor","random","directionClassName","Value","renderChoices","StarRating","selected","unselected","maxNumber","ratingClassName","stars","reverse","rating","LikertScale","answers","mobileStyling","rowShading","likertClassName","setProperty","PercentageField","CurrencyField","UserField","HeadingLayout","underline","headingClass","Section","divider","heading","headingType","showDescription","formClass","LayoutDivider","orientation","dashed","plain","LayoutSpacer","spacerClass","includeSystemLists","targetElementRef","shape","symbol","symbol_native","code","updateElement","removeElement","QueryGroup","parentId","QueryGroupRemovable","itemId","QueryRule","fieldRefId","AddGroup","useQueryBuilderContext","addGroupClass","parent","AddRule","addRuleClass","idToNumber","sort","b","getFormElementId","isColumn","getColumn","tableOrAliasRef","tableOrAlias","returnData","alias","removeData","dataRef","RemoveItem","removeItemClass","selectId","elementId","s","removeSelectedFields","OperandField","Option","operandFieldClass","QBOperator","voidTag","operator","FieldSelect","multiple","fieldSelectClass","Options","IQueryBuilderType","Basic","fieldChoices","tableAlias","TableSelect","tableSelectClass","tableChoices","AndOrToggle","andOrToggleClass","Group","optionType","JoinGroup","AddJoin","addJoinClass","JoinRule","FieldTypeInput","defaultChecked","date","isNaN","valueOf","GenericField","radioOptions","radioValue","setRadioValue","genericFieldClass","onRadioChange","lists","strSplit","tableRef","BasicQuery","SQLQuery","SQLQueryParser","rootId","joinUuid","whereUuid","addJoins","addWhere","addOrderBy","joinGroup","joins","parseJoinRuleGroup","where","whereForm","parseRuleGroup","depth","JoinGroupWithoutQuery","parseRule","rule","ruleId","groupId","combinator","rules","r","ruleForm","ruleData","OrderBySelect","OrderBySelectClass","selectedFields","some","order","TableAliasInput","TableAliasClass","onTableChangeInner","queryBuilderContext","QueryBuilder","_data","SQL","getFormData","QBOdataVisitor","visit","queryParse","basicChoices","flatMap","formIds","fromId","joinsId","sqlChoices","queryTables","joinsGroup","queryTable","SQLQueryConverter","select","orderBy","convertSelect","convertOrderBy","convertToSQLJoinsQuery","ruleGroupToAST","convertToRuleGroup","lValue","rValue","not","convertToRule","ruleGroup","ASTParser","convertToAst","EditAdaptiveViewForm","initialData","setData","onOk","sql","getQuery","AdaptiveViewContext","viewId","AdaptiveView","setItems","viewExists","setViewExists","editAdaptiveViewVisible","setEditCustomViewVisible","j","updateAdaptiveViewItems","viewName","Views","view_name","deleteAdaptiveView","okButtonProps","danger","placement","subTitle","extra","createAdaptiveView","updateAdaptiveView","SkeletonTable","active","rowCount","_","paragraph","ManagedViewContextTable","customTitleRender","getTitleField","TitleField","useTitleField","setColumns","record","link","getItemLink","href","isLookup","textColumn","Columns","MaxWidth","fixed","AdaptiveViewForm","slug","AdaptiveViewsList","addCustomViewVisible","setAddCustomViewVisible","postAdaptiveView","AddDashboardForm","Form","useForm","TextArea","validateFields","dashboard","resetFields","layout","max","rows","DashboardsList","addDashboardVisible","setAddDashboardVisible","cover","hoverable","deleteDashboard","Meta","postDashboard","findTable","pbiDatasetContext","PBIDatasetContext","datasetId","pbiDataset","fetchDataset","usePBIDatasetContext","PBIRelationship","useHover","relationship","fromTable","fromColumn","toTable","toColumn","Hover","bool","onMouseOver","onMouseLeave","onDeleteClicked","AddRelationshipForm","tables","setFromTable","setToTable","setFromColumn","setToColumn","fromTableOptions","setFromTableOptions","fromColumnOptions","setFromColumnOptions","toTableOptions","setToTableOptions","toColumnOptions","setToColumnOptions","SingleColumn","fromCardinality","One","Many","toCardinality","joinOnDateBehavior","DateAndTime","crossFilteringBehavior","info","optionFilterProp","indexOf","DatePartOnly","OneDirection","BothDirections","Automatic","PBIDatasetRelationships","updatePBIDatasetContext","relationshipVisible","setRelationshipVisible","relationships","relationshipIndex","addRelationship","SkeletonCard","TableCardColumn","getColumnIcon","AddColumnForm","views","currentTab","setCurrnetTab","TabPane","Tabs","currentView","tableOrViews","partitions","p","source","expression","Name","sourceFields","dataOptions","columnHeader","defaultActiveKey","tab","sf","DataColumn","PBIDatasetTables","addColumnVisible","setAddColumnVisible","addColumnTable","setAddColumnTable","tableIndex","addColumn","relationshipsIndex","columnIndex","AddTableForm","setCurrentView","viewOptions","dbSchema","partitionSource","M","partition","modeType","DirectQuery","measures","PBIDataset","reportsMenu","setReportsMenu","getAdaptiveFields","getSiteViews","sources","listFields","List","View","getAdaptiveViews","customViews","useSiteViews","updateDatasourceCredentials","setUpdateDatasourceCredentials","addTableVisible","setAddDataVisible","setViews","console","log","put","updateCredentails","Workspace","credentials","Tenant","Site","report","getAdaptiveViewList","overlay","arrow","undoChanges","saveChanges","AddDatasetForm","ExponentialCallback","wait","ms","callWithRetry","maxDepth","PBIDatasetsList","powerBIContext","addDatasetInputVisible","setAddDatasetInputVisible","pendingDatasets","setPendingDatasets","reportsCount","expressions","pd","actions","indicator","LoadingOutlined","fontSize","spin","addDataset","EmbedNewPBIReport","embedConfig","updateEmbedConfig","embedCreateConfig","updateCreateEmbedConfig","powerBIDatasets","updatePowerBIDatasets","usePowerBIDataset","embeddedComponent","setEmbeddedComponent","Embed","viewMode","allowSaveAs","embedToken","fetchEmbedToken","tokenType","models","TokenType","permissions","Permissions","All","ViewMode","Edit","fetchCreateEmbedToken","createConfig","embedUrl","createReportEmbedURL","service","createReport","getEmbeddedComponent","cssClassName","NewPBIReport","EditPreview","editSelected","setEditSelected","startInEdit","onEditClicked","onPreviewClicked","EmbedPBIReport","embedded","setEmbedded","reportType","embedConfiguration","config","configChanged","reload","PBIReport","setViewMode","tabKeys","PBIReportsList","fileList","setFileList","getReportType","file","filenameMatch","reportName","postBlob","_file","uid","dataSourceType","Dataset","accept","customRequest","uploadReport","itemRender","webUrl","AddDashboardCardForm","adaptiveViews","activeTabKey","setActiveTabKey","setList","card","Report","adaptiveViewId","adaptiveView","activeKey","datasource","DashboardBarCard","onDelete","onSelected","setInfo","getItemCount","getAdaptiveViewCount","ManagedAdaptiveViewTable","viewColumns","adaptiveViewColumns","col","Dashboard","updateView","dashboardId","itemDeleted","setItemDeleted","itemAdded","setItemAdded","currentItem","setCurrentItem","addDashboardCardVisible","setAddDashboardCardVisible","setAdaptiveViews","onSave","deleteItem","Pages","exact","component","ReactDOM"],"mappings":"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","file":"static/js/main.84210545.chunk.js","sourcesContent":["import { useMemo } from 'react';\n/**\n * Compose and memoize a list of non-falsy space-separated CSS class names from\n * an array or yields of a generator function.\n *\n *\n * @param {React.DependencyList} deps\n * (optional) A list of dependencies that when changed, re-compute class names.\n *\n * @example Usage with a generator function\n * ```ts\n * // returns \"btn btn-primary\" for non-active states and \"btn btn-primary btn-active\"\n * // for active states\n * const [active, setActive] = useState(false);\n * const className = useComposedClassNames(function*() {\n * yield 'btn';\n * yield 'btn-primary';\n *\n * if (active) {\n * yield 'btn-active';\n * }\n * }, [active]);\n * ```\n *\n * @example Usage with an array\n * ```ts\n * // returns \"btn btn-primary\" for non-active states and \"btn btn-primary btn-active\"\n * // for active states\n * const [active, setActive] = useState(false);\n * const className = useComposedClassName([\n * 'btn',\n * 'btn-primary',\n * active && 'btn-active',\n * ], [active]);\n * ```\n *\n * @returns {string} CSS generated class names\n * @category General Hooks\n */\nexport function useComposedClassName(classNameGenerator, deps) {\n const generator = Array.isArray(classNameGenerator)\n ? classNameGenerator[Symbol.iterator]\n : classNameGenerator;\n const value = useMemo(() => {\n const classNames = [];\n for (const item of generator()) {\n if (item) {\n classNames.push(item);\n }\n }\n return classNames.join(' ');\n }, deps);\n return value;\n}\n","import React from \"react\";\n/**\n * Component: DocumentationLayout\n *\n * The RAPID Platform Documentation System Layout [Template].\n */\nexport function AppLayout({ templateName, className, children, }) {\n return (React.createElement(\"div\", { className: `rp-layout-${!!templateName ? templateName : \"default\"} ${className !== null && className !== void 0 ? className : \"\"}` }, children));\n}\n","import React from 'react';\nimport { useComposedClassName } from '../use-composed-class-names';\n/**\n * An icon component containing all RAPID & Fontawesome icons.\n *\n * List of available props:\n * - **iconName** | All Fontawesome & RAPID icons [***defaults to RAPID logo***]\n * - **iconStyle** | All Fontawesome styles (_does not effect RAPID icons_) [***defaults to regular***]\n * - **iconSize** | A range of sizes from 1x to 10x\n * - **iconRotation** | Static rotation from 90 - 270deg\n * - **iconFlip** | Static flip Horizontal or Vertaical or Both\n * - **iconAnimation** | Simple animation styles. Great for making quick spinners\n * - **fixedWidth** | Set's all icons to fixed width. Great for vertically aligning icons in menus.\n *\n * [Fontawesome Documentation](https://fontawesome.com/how-to-use/on-the-web/referencing-icons/basic-use \"The complete fontawesome documentation. For those of you who are interested in how all of this works.....\")\n */\nexport function Icon({ className, iconName, iconStyle, iconSize, iconRotation, iconFlip, iconAnimation, fixedWidth, }) {\n /**\n * Setting the icon style\n */\n let style;\n switch (iconStyle) {\n case 'duotone':\n style = 'fad';\n break;\n case 'solid':\n style = 'fas';\n break;\n case 'light':\n style = 'fal';\n break;\n case 'brands':\n style = 'fab';\n break;\n default:\n style = 'far';\n break;\n }\n const generatedClassName = useComposedClassName(function* () {\n yield className;\n yield style;\n yield !!iconName ? iconName : 'ri-rapid';\n if (fixedWidth) {\n yield 'fa-fw';\n }\n if (iconRotation) {\n yield `fa-rotate-${iconRotation}`;\n }\n if (iconFlip) {\n yield `fa-flip-${iconFlip}`;\n }\n if (iconSize) {\n yield `fa-${iconSize}`;\n }\n if (iconAnimation) {\n yield `fa-${iconAnimation}`;\n }\n }, [className, iconName, style, iconRotation, iconFlip, iconAnimation]);\n // const iconClassName = `${style} ${!!iconName ? iconName : \"ri-rapid\"} ${\n // !!iconSize ? `fa-${iconSize}` : \"\"\n // } ${fixedWidth ? \"fa-fw\" : \"\"} ${\n // !!iconRotation ? `fa-rotate-${iconRotation}` : \"\"\n // } ${!!iconFlip ? `fa-flip-${iconFlip}` : \"\"} ${\n // !!iconAnimation ? `fa-${iconAnimation}` : \"\"\n // }`;\n return React.createElement(\"i\", { className: generatedClassName });\n}\n","import React from 'react';\nimport { useComposedClassName } from '../use-composed-class-names';\n/**\n * Button!\n *\n * This is a simple button that takes requires a label and onClick\n *\n * Props List:\n *\n * - **onClick()** | a function that is passed directly to the buttons onClick event\n * - **children** | The string the button is wrapped around that becomes it's label i.e. \n * - **buttonStyle** | Changes the style of the button i.e. _Primary, Danger, Text_\n * - **buttonSize** | Changes the padding size of the button i.e. _Small, Large_\n * - **fullwidth** | Sets the button to take up the full width of it's parent container\n * - **isDisabled** | When true will render and show the item as disabled\n */\nexport function Button({ onClick, children, buttonSize, buttonStyle, fullWidth, isDisabled, className, margin, }) {\n const cssClass = useComposedClassName(function* () {\n yield 'rp-button';\n yield className;\n if (buttonStyle)\n yield `rp-button-${buttonStyle}`;\n if (buttonSize)\n yield `rp-button-${buttonSize}`;\n if (fullWidth)\n yield 'rp-width-1-1';\n if (Array.isArray(margin)) {\n yield* margin.map(item => `rp-margin-${item}`);\n }\n else if (margin) {\n yield `rp-margin-${margin}`;\n }\n }, [className, buttonSize, buttonStyle, margin, fullWidth]);\n return (React.createElement(\"button\", { className: cssClass, onClick: event => onClick === null || onClick === void 0 ? void 0 : onClick(event), disabled: !!isDisabled }, children));\n}\n","import React from 'react';\nimport { useComposedClassName } from '../use-composed-class-names';\nexport function Card({ className, type = 'default', hover, size = 'small', children, }) {\n const cssClass = useComposedClassName(function* () {\n yield 'rp-card';\n yield className;\n yield `rp-card-${type}`;\n yield hover && 'rp-card-hover';\n yield `rp-card-${size}`;\n yield 'rp-branding-boxshadow';\n }, [className, type, hover, size]);\n return React.createElement(\"div\", { className: cssClass }, children);\n}\nexport function CardBody({ children }) {\n return React.createElement(\"div\", { className: \"rp-card-body\" }, children);\n}\nexport function CardHeader({ children }) {\n return React.createElement(\"div\", { className: \"rp-card-header\" }, children);\n}\nexport function CardFooter({ children }) {\n return React.createElement(\"div\", { className: \"rp-card-footer\" }, children);\n}\n","import React from \"react\";\n/**\n * Define different styles for headings.\n *\n * @param className `string` | Used to set your own custom className.\n * @param children `React.Node` | Used to render the content inside of the Alert\n * component.\n * @param headingText `React.ReactNode` | Value that gets shown on screen\n * @param headingType `THeadingType` | Determine the type of heading to show e.g h1\n * @param headingAlignment `THeadingAlignment` | If true aligns the text inside the heading to the specify alignment\n * @param headerStyle `THeadingStyle` | Determines if the component will render with a Bullet, Divider or line on both sides\n */\nexport function Heading({ type = \"h1\", children, className, style, alignment, }) {\n className =\n (!!className ? className : \"\") +\n (!!style ? ` rp-heading-${style}` : \"\") +\n (!!alignment ? ` rp-text-${alignment}` : \"\");\n /**\n * This is a required step [See here](https://getuikit.com/docs/heading)\n * In order for the headingLine to render\n */\n if (style === \"line\")\n children = React.createElement(\"span\", null, children);\n return React.createElement(type, { className: className }, children);\n}\n","import React from \"react\";\nimport { Button } from \"./button\";\nimport { Icon } from \"./icon\";\n/**\n * Icon Button\n *\n * Takes the Icon component and wraps it in a button component.\n *\n * Useable props\n *\n * - **onClick** | _required_ Passes a function straight through tot he onClick action of the button\n * - **iconName** | the name of the Fontawesome or RAPID icon to display. [_defaults to RAPID Logo_] for more information see [iconName documentation](https://design.rapidplatform.com.au/?path=/story/elements-icon--icon-name \"RAPID Icon Name Documentation\")\n * - **iconStyle** | The style for [Fontawesome](https://fontawesome.com/icons?d=gallery \"Fontawesome Icon Search\") Icons - for more information see [iconStyle documentation](https://design.rapidplatform.com.au/?path=/story/elements-icon--icon-style \"RAPID Icon Style Dcumentation\")\n * - **iconRotation** | The icon rotation (_This works for both Fontawesome & RAPID icons_) for more information see [iconRotation documentation](https://design.rapidplatform.com.au/?path=/story/elements-icon--icon-rotation \"RAPID Icon Rotation Documentation\")\n * - **iconFlip** | The icon flip (_This works for both Fontawesome & RAPID icons_) for more information see [iconFlip documentaion](https://design.rapidplatform.com.au/?path=/story/elements-icon--icon-flip \"RAPID Icon Flip Documentation\")\n * - **iconAlignment** | The alignment of the icon within the button for more information see [iconAlignment documentation](https://design.rapidplatform.com.au/?path=/story/components-iconbutton--default \"RAPID Icon Alignment documentation\") TODO Link this to the specific story. Currenlty doesnt exist\n * - **fixedWidth** | Fontawesome fixed width class (_also works with RAPID icons_) for more information see [fixedWidth documentation](https://design.rapidplatform.com.au/?path=/story/elements-icon--icon-fixed-width \"RAPID Fixed Width icon Documentation\")\n * - **buttonSize** | Adjusts the button sizing i.e. large, small. for more information see [buttonSize documentation](TODO Link this up when we have stories)\n * - **buttonStyle** | Adjusts the style of the button. i.e. primary, danger, text. for more information see [buttonStyle documentation](TODO link up the stories here)\n * - **isLogo** | Set's the icon as the header logo\n * - **fullWidth** | Sets the button to take up the full width of it's parent. for more information see [fullWidth documentation](TODO link up the storties)\n * - **isDisabled** | When true will render and show the item as disabled\n */\nexport function IconButton({ onClick, children, iconName, iconStyle, iconRotation, iconFlip, iconAlignment, fixedWidth, buttonSize, buttonStyle, fullWidth, isDisabled, isLogo, margin, className, }) {\n className += ` rp-icon-button${!!children ? \" rp-icon-button-label\" : \"\"}${!!iconAlignment ? ` rp-icon-${iconAlignment}` : \"\"}${isLogo ? ` rp-logo-button` : \"\"}`;\n if (Array.isArray(margin)) {\n for (let i = 0; i < margin.length; i++) {\n className += ` rp-margin-${margin[i]}`;\n }\n }\n else if (margin) {\n className += ` rp-margin-${margin}`;\n }\n return (React.createElement(\"div\", { className: className },\n React.createElement(Button, { isDisabled: isDisabled, onClick: (event) => onClick === null || onClick === void 0 ? void 0 : onClick(event), buttonSize: buttonSize, buttonStyle: buttonStyle, fullWidth: fullWidth },\n React.createElement(Icon, { iconName: iconName, iconStyle: iconStyle, iconRotation: iconRotation, iconFlip: iconFlip, fixedWidth: fixedWidth }),\n !!children && React.createElement(\"span\", { className: \"rp-icon-button-text\" }, children))));\n}\n","export const iconNamesObj = {\n 500: \"fa-500px\",\n abacus: \"fa-abacus\",\n accessibleIcon: \"fa-accessible-icon\",\n accusoft: \"fa-accusoft\",\n acorn: \"fa-acorn\",\n acquisitionsIncorporated: \"fa-acquisitions-incorporated\",\n ad: \"fa-ad\",\n addressBook: \"fa-address-book\",\n addressCard: \"fa-address-card\",\n adjust: \"fa-adjust\",\n adn: \"fa-adn\",\n adobe: \"fa-adobe\",\n adversal: \"fa-adversal\",\n affiliatetheme: \"fa-affiliatetheme\",\n airConditioner: \"fa-air-conditioner\",\n airFreshener: \"fa-air-freshener\",\n airbnb: \"fa-airbnb\",\n alarmClock: \"fa-alarm-clock\",\n alarmExclamation: \"fa-alarm-exclamation\",\n alarmPlus: \"fa-alarm-plus\",\n alarmSnooze: \"fa-alarm-snooze\",\n album: \"fa-album\",\n albumCollection: \"fa-album-collection\",\n algolia: \"fa-algolia\",\n alicorn: \"fa-alicorn\",\n alien: \"fa-alien\",\n alienMonster: \"fa-alien-monster\",\n alignCenter: \"fa-align-center\",\n alignJustify: \"fa-align-justify\",\n alignLeft: \"fa-align-left\",\n alignRight: \"fa-align-right\",\n alignSlash: \"fa-align-slash\",\n alipay: \"fa-alipay\",\n allergies: \"fa-allergies\",\n amazon: \"fa-amazon\",\n amazonPay: \"fa-amazon-pay\",\n ambulance: \"fa-ambulance\",\n americanSignLanguageInterpreting: \"fa-american-sign-language-interpreting\",\n amilia: \"fa-amilia\",\n ampGuitar: \"fa-amp-guitar\",\n analytics: \"fa-analytics\",\n anchor: \"fa-anchor\",\n android: \"fa-android\",\n angel: \"fa-angel\",\n angellist: \"fa-angellist\",\n angleDoubleDown: \"fa-angle-double-down\",\n angleDoubleLeft: \"fa-angle-double-left\",\n angleDoubleRight: \"fa-angle-double-right\",\n angleDoubleUp: \"fa-angle-double-up\",\n angleDown: \"fa-angle-down\",\n angleLeft: \"fa-angle-left\",\n angleRight: \"fa-angle-right\",\n angleUp: \"fa-angle-up\",\n angry: \"fa-angry\",\n angrycreative: \"fa-angrycreative\",\n angular: \"fa-angular\",\n ankh: \"fa-ankh\",\n appStore: \"fa-app-store\",\n appStoreIos: \"fa-app-store-ios\",\n apper: \"fa-apper\",\n apple: \"fa-apple\",\n appleAlt: \"fa-apple-alt\",\n appleCrate: \"fa-apple-crate\",\n applePay: \"fa-apple-pay\",\n archive: \"fa-archive\",\n archway: \"fa-archway\",\n arrowAltCircleDown: \"fa-arrow-alt-circle-down\",\n arrowAltCircleLeft: \"fa-arrow-alt-circle-left\",\n arrowAltCircleRight: \"fa-arrow-alt-circle-right\",\n arrowAltCircleUp: \"fa-arrow-alt-circle-up\",\n arrowAltDown: \"fa-arrow-alt-down\",\n arrowAltFromBottom: \"fa-arrow-alt-from-bottom\",\n arrowAltFromLeft: \"fa-arrow-alt-from-left\",\n arrowAltFromRight: \"fa-arrow-alt-from-right\",\n arrowAltFromTop: \"fa-arrow-alt-from-top\",\n arrowAltLeft: \"fa-arrow-alt-left\",\n arrowAltRight: \"fa-arrow-alt-right\",\n arrowAltSquareDown: \"fa-arrow-alt-square-down\",\n arrowAltSquareLeft: \"fa-arrow-alt-square-left\",\n arrowAltSquareRight: \"fa-arrow-alt-square-right\",\n arrowAltSquareUp: \"fa-arrow-alt-square-up\",\n arrowAltToBottom: \"fa-arrow-alt-to-bottom\",\n arrowAltToLeft: \"fa-arrow-alt-to-left\",\n arrowAltToRight: \"fa-arrow-alt-to-right\",\n arrowAltToTop: \"fa-arrow-alt-to-top\",\n arrowAltUp: \"fa-arrow-alt-up\",\n arrowCircleDown: \"fa-arrow-circle-down\",\n arrowCircleLeft: \"fa-arrow-circle-left\",\n arrowCircleRight: \"fa-arrow-circle-right\",\n arrowCircleUp: \"fa-arrow-circle-up\",\n arrowDown: \"fa-arrow-down\",\n arrowFromBottom: \"fa-arrow-from-bottom\",\n arrowFromLeft: \"fa-arrow-from-left\",\n arrowFromRight: \"fa-arrow-from-right\",\n arrowFromTop: \"fa-arrow-from-top\",\n arrowLeft: \"fa-arrow-left\",\n arrowRight: \"fa-arrow-right\",\n arrowSquareDown: \"fa-arrow-square-down\",\n arrowSquareLeft: \"fa-arrow-square-left\",\n arrowSquareRight: \"fa-arrow-square-right\",\n arrowSquareUp: \"fa-arrow-square-up\",\n arrowToBottom: \"fa-arrow-to-bottom\",\n arrowToLeft: \"fa-arrow-to-left\",\n arrowToRight: \"fa-arrow-to-right\",\n arrowToTop: \"fa-arrow-to-top\",\n arrowUp: \"fa-arrow-up\",\n arrows: \"fa-arrows\",\n arrowsAlt: \"fa-arrows-alt\",\n arrowsAltH: \"fa-arrows-alt-h\",\n arrowsAltV: \"fa-arrows-alt-v\",\n arrowsH: \"fa-arrows-h\",\n arrowsV: \"fa-arrows-v\",\n artstation: \"fa-artstation\",\n assistiveListeningSystems: \"fa-assistive-listening-systems\",\n asterisk: \"fa-asterisk\",\n asymmetrik: \"fa-asymmetrik\",\n at: \"fa-at\",\n atlas: \"fa-atlas\",\n atlassian: \"fa-atlassian\",\n atom: \"fa-atom\",\n atomAlt: \"fa-atom-alt\",\n audible: \"fa-audible\",\n audioDescription: \"fa-audio-description\",\n autoprefixer: \"fa-autoprefixer\",\n avianex: \"fa-avianex\",\n aviato: \"fa-aviato\",\n award: \"fa-award\",\n aws: \"fa-aws\",\n axe: \"fa-axe\",\n axeBattle: \"fa-axe-battle\",\n baby: \"fa-baby\",\n babyCarriage: \"fa-baby-carriage\",\n backpack: \"fa-backpack\",\n backspace: \"fa-backspace\",\n backward: \"fa-backward\",\n bacon: \"fa-bacon\",\n bacteria: \"fa-bacteria\",\n bacterium: \"fa-bacterium\",\n badge: \"fa-badge\",\n badgeCheck: \"fa-badge-check\",\n badgeDollar: \"fa-badge-dollar\",\n badgePercent: \"fa-badge-percent\",\n badgeSheriff: \"fa-badge-sheriff\",\n badgerHoney: \"fa-badger-honey\",\n bagsShopping: \"fa-bags-shopping\",\n bahai: \"fa-bahai\",\n balanceScale: \"fa-balance-scale\",\n balanceScaleLeft: \"fa-balance-scale-left\",\n balanceScaleRight: \"fa-balance-scale-right\",\n ballPile: \"fa-ball-pile\",\n ballot: \"fa-ballot\",\n ballotCheck: \"fa-ballot-check\",\n ban: \"fa-ban\",\n bandAid: \"fa-band-aid\",\n bandcamp: \"fa-bandcamp\",\n banjo: \"fa-banjo\",\n barcode: \"fa-barcode\",\n barcodeAlt: \"fa-barcode-alt\",\n barcodeRead: \"fa-barcode-read\",\n barcodeScan: \"fa-barcode-scan\",\n bars: \"fa-bars\",\n baseball: \"fa-baseball\",\n baseballBall: \"fa-baseball-ball\",\n basketballBall: \"fa-basketball-ball\",\n basketballHoop: \"fa-basketball-hoop\",\n bat: \"fa-bat\",\n bath: \"fa-bath\",\n batteryBolt: \"fa-battery-bolt\",\n batteryEmpty: \"fa-battery-empty\",\n batteryFull: \"fa-battery-full\",\n batteryHalf: \"fa-battery-half\",\n batteryQuarter: \"fa-battery-quarter\",\n batterySlash: \"fa-battery-slash\",\n batteryThreeQuarters: \"fa-battery-three-quarters\",\n battleNet: \"fa-battle-net\",\n bed: \"fa-bed\",\n bedAlt: \"fa-bed-alt\",\n bedBunk: \"fa-bed-bunk\",\n bedEmpty: \"fa-bed-empty\",\n beer: \"fa-beer\",\n behance: \"fa-behance\",\n behanceSquare: \"fa-behance-square\",\n bell: \"fa-bell\",\n bellExclamation: \"fa-bell-exclamation\",\n bellOn: \"fa-bell-on\",\n bellPlus: \"fa-bell-plus\",\n bellSchool: \"fa-bell-school\",\n bellSchoolSlash: \"fa-bell-school-slash\",\n bellSlash: \"fa-bell-slash\",\n bells: \"fa-bells\",\n betamax: \"fa-betamax\",\n bezierCurve: \"fa-bezier-curve\",\n bible: \"fa-bible\",\n bicycle: \"fa-bicycle\",\n biking: \"fa-biking\",\n bikingMountain: \"fa-biking-mountain\",\n bimobject: \"fa-bimobject\",\n binoculars: \"fa-binoculars\",\n biohazard: \"fa-biohazard\",\n birthdayCake: \"fa-birthday-cake\",\n bitbucket: \"fa-bitbucket\",\n bitcoin: \"fa-bitcoin\",\n bity: \"fa-bity\",\n blackTie: \"fa-black-tie\",\n blackberry: \"fa-blackberry\",\n blanket: \"fa-blanket\",\n blender: \"fa-blender\",\n blenderPhone: \"fa-blender-phone\",\n blind: \"fa-blind\",\n blinds: \"fa-blinds\",\n blindsOpen: \"fa-blinds-open\",\n blindsRaised: \"fa-blinds-raised\",\n blog: \"fa-blog\",\n blogger: \"fa-blogger\",\n bloggerB: \"fa-blogger-b\",\n bluetooth: \"fa-bluetooth\",\n bluetoothB: \"fa-bluetooth-b\",\n bold: \"fa-bold\",\n bolt: \"fa-bolt\",\n bomb: \"fa-bomb\",\n bone: \"fa-bone\",\n boneBreak: \"fa-bone-break\",\n bong: \"fa-bong\",\n book: \"fa-book\",\n bookAlt: \"fa-book-alt\",\n bookDead: \"fa-book-dead\",\n bookHeart: \"fa-book-heart\",\n bookMedical: \"fa-book-medical\",\n bookOpen: \"fa-book-open\",\n bookReader: \"fa-book-reader\",\n bookSpells: \"fa-book-spells\",\n bookUser: \"fa-book-user\",\n bookmark: \"fa-bookmark\",\n books: \"fa-books\",\n booksMedical: \"fa-books-medical\",\n boombox: \"fa-boombox\",\n boot: \"fa-boot\",\n boothCurtain: \"fa-booth-curtain\",\n bootstrap: \"fa-bootstrap\",\n borderAll: \"fa-border-all\",\n borderBottom: \"fa-border-bottom\",\n borderCenterH: \"fa-border-center-h\",\n borderCenterV: \"fa-border-center-v\",\n borderInner: \"fa-border-inner\",\n borderLeft: \"fa-border-left\",\n borderNone: \"fa-border-none\",\n borderOuter: \"fa-border-outer\",\n borderRight: \"fa-border-right\",\n borderStyle: \"fa-border-style\",\n borderStyleAlt: \"fa-border-style-alt\",\n borderTop: \"fa-border-top\",\n bowArrow: \"fa-bow-arrow\",\n bowlingBall: \"fa-bowling-ball\",\n bowlingPins: \"fa-bowling-pins\",\n box: \"fa-box\",\n boxAlt: \"fa-box-alt\",\n boxBallot: \"fa-box-ballot\",\n boxCheck: \"fa-box-check\",\n boxFragile: \"fa-box-fragile\",\n boxFull: \"fa-box-full\",\n boxHeart: \"fa-box-heart\",\n boxOpen: \"fa-box-open\",\n boxTissue: \"fa-box-tissue\",\n boxUp: \"fa-box-up\",\n boxUsd: \"fa-box-usd\",\n boxes: \"fa-boxes\",\n boxesAlt: \"fa-boxes-alt\",\n boxingGlove: \"fa-boxing-glove\",\n brackets: \"fa-brackets\",\n bracketsCurly: \"fa-brackets-curly\",\n braille: \"fa-braille\",\n brain: \"fa-brain\",\n breadLoaf: \"fa-bread-loaf\",\n breadSlice: \"fa-bread-slice\",\n briefcase: \"fa-briefcase\",\n briefcaseMedical: \"fa-briefcase-medical\",\n bringForward: \"fa-bring-forward\",\n bringFront: \"fa-bring-front\",\n broadcastTower: \"fa-broadcast-tower\",\n broom: \"fa-broom\",\n browser: \"fa-browser\",\n brush: \"fa-brush\",\n btc: \"fa-btc\",\n buffer: \"fa-buffer\",\n bug: \"fa-bug\",\n building: \"fa-building\",\n bullhorn: \"fa-bullhorn\",\n bullseye: \"fa-bullseye\",\n bullseyeArrow: \"fa-bullseye-arrow\",\n bullseyePointer: \"fa-bullseye-pointer\",\n burgerSoda: \"fa-burger-soda\",\n burn: \"fa-burn\",\n buromobelexperte: \"fa-buromobelexperte\",\n burrito: \"fa-burrito\",\n bus: \"fa-bus\",\n busAlt: \"fa-bus-alt\",\n busSchool: \"fa-bus-school\",\n businessTime: \"fa-business-time\",\n buyNLarge: \"fa-buy-n-large\",\n buysellads: \"fa-buysellads\",\n cabinetFiling: \"fa-cabinet-filing\",\n cactus: \"fa-cactus\",\n calculator: \"fa-calculator\",\n calculatorAlt: \"fa-calculator-alt\",\n calendar: \"fa-calendar\",\n calendarAlt: \"fa-calendar-alt\",\n calendarCheck: \"fa-calendar-check\",\n calendarDay: \"fa-calendar-day\",\n calendarEdit: \"fa-calendar-edit\",\n calendarExclamation: \"fa-calendar-exclamation\",\n calendarMinus: \"fa-calendar-minus\",\n calendarPlus: \"fa-calendar-plus\",\n calendarStar: \"fa-calendar-star\",\n calendarTimes: \"fa-calendar-times\",\n calendarWeek: \"fa-calendar-week\",\n camcorder: \"fa-camcorder\",\n camera: \"fa-camera\",\n cameraAlt: \"fa-camera-alt\",\n cameraHome: \"fa-camera-home\",\n cameraMovie: \"fa-camera-movie\",\n cameraPolaroid: \"fa-camera-polaroid\",\n cameraRetro: \"fa-camera-retro\",\n campfire: \"fa-campfire\",\n campground: \"fa-campground\",\n canadianMapleLeaf: \"fa-canadian-maple-leaf\",\n candleHolder: \"fa-candle-holder\",\n candyCane: \"fa-candy-cane\",\n candyCorn: \"fa-candy-corn\",\n cannabis: \"fa-cannabis\",\n capsules: \"fa-capsules\",\n car: \"fa-car\",\n carAlt: \"fa-car-alt\",\n carBattery: \"fa-car-battery\",\n carBuilding: \"fa-car-building\",\n carBump: \"fa-car-bump\",\n carBus: \"fa-car-bus\",\n carCrash: \"fa-car-crash\",\n carGarage: \"fa-car-garage\",\n carMechanic: \"fa-car-mechanic\",\n carSide: \"fa-car-side\",\n carTilt: \"fa-car-tilt\",\n carWash: \"fa-car-wash\",\n caravan: \"fa-caravan\",\n caravanAlt: \"fa-caravan-alt\",\n caretCircleDown: \"fa-caret-circle-down\",\n caretCircleLeft: \"fa-caret-circle-left\",\n caretCircleRight: \"fa-caret-circle-right\",\n caretCircleUp: \"fa-caret-circle-up\",\n caretDown: \"fa-caret-down\",\n caretLeft: \"fa-caret-left\",\n caretRight: \"fa-caret-right\",\n caretSquareDown: \"fa-caret-square-down\",\n caretSquareLeft: \"fa-caret-square-left\",\n caretSquareRight: \"fa-caret-square-right\",\n caretSquareUp: \"fa-caret-square-up\",\n caretUp: \"fa-caret-up\",\n carrot: \"fa-carrot\",\n cars: \"fa-cars\",\n cartArrowDown: \"fa-cart-arrow-down\",\n cartPlus: \"fa-cart-plus\",\n cashRegister: \"fa-cash-register\",\n cassetteTape: \"fa-cassette-tape\",\n cat: \"fa-cat\",\n catSpace: \"fa-cat-space\",\n cauldron: \"fa-cauldron\",\n ccAmazonPay: \"fa-cc-amazon-pay\",\n ccAmex: \"fa-cc-amex\",\n ccApplePay: \"fa-cc-apple-pay\",\n ccDinersClub: \"fa-cc-diners-club\",\n ccDiscover: \"fa-cc-discover\",\n ccJcb: \"fa-cc-jcb\",\n ccMastercard: \"fa-cc-mastercard\",\n ccPaypal: \"fa-cc-paypal\",\n ccStripe: \"fa-cc-stripe\",\n ccVisa: \"fa-cc-visa\",\n cctv: \"fa-cctv\",\n centercode: \"fa-centercode\",\n centos: \"fa-centos\",\n certificate: \"fa-certificate\",\n chair: \"fa-chair\",\n chairOffice: \"fa-chair-office\",\n chalkboard: \"fa-chalkboard\",\n chalkboardTeacher: \"fa-chalkboard-teacher\",\n chargingStation: \"fa-charging-station\",\n chartArea: \"fa-chart-area\",\n chartBar: \"fa-chart-bar\",\n chartLine: \"fa-chart-line\",\n chartLineDown: \"fa-chart-line-down\",\n chartNetwork: \"fa-chart-network\",\n chartPie: \"fa-chart-pie\",\n chartPieAlt: \"fa-chart-pie-alt\",\n chartScatter: \"fa-chart-scatter\",\n check: \"fa-check\",\n checkCircle: \"fa-check-circle\",\n checkDouble: \"fa-check-double\",\n checkSquare: \"fa-check-square\",\n cheese: \"fa-cheese\",\n cheeseSwiss: \"fa-cheese-swiss\",\n cheeseburger: \"fa-cheeseburger\",\n chess: \"fa-chess\",\n chessBishop: \"fa-chess-bishop\",\n chessBishopAlt: \"fa-chess-bishop-alt\",\n chessBoard: \"fa-chess-board\",\n chessClock: \"fa-chess-clock\",\n chessClockAlt: \"fa-chess-clock-alt\",\n chessKing: \"fa-chess-king\",\n chessKingAlt: \"fa-chess-king-alt\",\n chessKnight: \"fa-chess-knight\",\n chessKnightAlt: \"fa-chess-knight-alt\",\n chessPawn: \"fa-chess-pawn\",\n chessPawnAlt: \"fa-chess-pawn-alt\",\n chessQueen: \"fa-chess-queen\",\n chessQueenAlt: \"fa-chess-queen-alt\",\n chessRook: \"fa-chess-rook\",\n chessRookAlt: \"fa-chess-rook-alt\",\n chevronCircleDown: \"fa-chevron-circle-down\",\n chevronCircleLeft: \"fa-chevron-circle-left\",\n chevronCircleRight: \"fa-chevron-circle-right\",\n chevronCircleUp: \"fa-chevron-circle-up\",\n chevronDoubleDown: \"fa-chevron-double-down\",\n chevronDoubleLeft: \"fa-chevron-double-left\",\n chevronDoubleRight: \"fa-chevron-double-right\",\n chevronDoubleUp: \"fa-chevron-double-up\",\n chevronDown: \"fa-chevron-down\",\n chevronLeft: \"fa-chevron-left\",\n chevronRight: \"fa-chevron-right\",\n chevronSquareDown: \"fa-chevron-square-down\",\n chevronSquareLeft: \"fa-chevron-square-left\",\n chevronSquareRight: \"fa-chevron-square-right\",\n chevronSquareUp: \"fa-chevron-square-up\",\n chevronUp: \"fa-chevron-up\",\n child: \"fa-child\",\n chimney: \"fa-chimney\",\n chrome: \"fa-chrome\",\n chromecast: \"fa-chromecast\",\n church: \"fa-church\",\n circle: \"fa-circle\",\n circleNotch: \"fa-circle-notch\",\n city: \"fa-city\",\n clarinet: \"fa-clarinet\",\n clawMarks: \"fa-claw-marks\",\n clinicMedical: \"fa-clinic-medical\",\n clipboard: \"fa-clipboard\",\n clipboardCheck: \"fa-clipboard-check\",\n clipboardList: \"fa-clipboard-list\",\n clipboardListCheck: \"fa-clipboard-list-check\",\n clipboardPrescription: \"fa-clipboard-prescription\",\n clipboardUser: \"fa-clipboard-user\",\n clock: \"fa-clock\",\n clone: \"fa-clone\",\n closedCaptioning: \"fa-closed-captioning\",\n cloud: \"fa-cloud\",\n cloudDownload: \"fa-cloud-download\",\n cloudDownloadAlt: \"fa-cloud-download-alt\",\n cloudDrizzle: \"fa-cloud-drizzle\",\n cloudHail: \"fa-cloud-hail\",\n cloudHailMixed: \"fa-cloud-hail-mixed\",\n cloudMeatball: \"fa-cloud-meatball\",\n cloudMoon: \"fa-cloud-moon\",\n cloudMoonRain: \"fa-cloud-moon-rain\",\n cloudMusic: \"fa-cloud-music\",\n cloudRain: \"fa-cloud-rain\",\n cloudRainbow: \"fa-cloud-rainbow\",\n cloudShowers: \"fa-cloud-showers\",\n cloudShowersHeavy: \"fa-cloud-showers-heavy\",\n cloudSleet: \"fa-cloud-sleet\",\n cloudSnow: \"fa-cloud-snow\",\n cloudSun: \"fa-cloud-sun\",\n cloudSunRain: \"fa-cloud-sun-rain\",\n cloudUpload: \"fa-cloud-upload\",\n cloudUploadAlt: \"fa-cloud-upload-alt\",\n clouds: \"fa-clouds\",\n cloudsMoon: \"fa-clouds-moon\",\n cloudsSun: \"fa-clouds-sun\",\n cloudscale: \"fa-cloudscale\",\n cloudsmith: \"fa-cloudsmith\",\n cloudversify: \"fa-cloudversify\",\n club: \"fa-club\",\n cocktail: \"fa-cocktail\",\n code: \"fa-code\",\n codeBranch: \"fa-code-branch\",\n codeCommit: \"fa-code-commit\",\n codeMerge: \"fa-code-merge\",\n codepen: \"fa-codepen\",\n codiepie: \"fa-codiepie\",\n coffee: \"fa-coffee\",\n coffeePot: \"fa-coffee-pot\",\n coffeeTogo: \"fa-coffee-togo\",\n coffin: \"fa-coffin\",\n coffinCross: \"fa-coffin-cross\",\n cog: \"fa-cog\",\n cogs: \"fa-cogs\",\n coin: \"fa-coin\",\n coins: \"fa-coins\",\n columns: \"fa-columns\",\n comet: \"fa-comet\",\n comment: \"fa-comment\",\n commentAlt: \"fa-comment-alt\",\n commentAltCheck: \"fa-comment-alt-check\",\n commentAltDollar: \"fa-comment-alt-dollar\",\n commentAltDots: \"fa-comment-alt-dots\",\n commentAltEdit: \"fa-comment-alt-edit\",\n commentAltExclamation: \"fa-comment-alt-exclamation\",\n commentAltLines: \"fa-comment-alt-lines\",\n commentAltMedical: \"fa-comment-alt-medical\",\n commentAltMinus: \"fa-comment-alt-minus\",\n commentAltMusic: \"fa-comment-alt-music\",\n commentAltPlus: \"fa-comment-alt-plus\",\n commentAltSlash: \"fa-comment-alt-slash\",\n commentAltSmile: \"fa-comment-alt-smile\",\n commentAltTimes: \"fa-comment-alt-times\",\n commentCheck: \"fa-comment-check\",\n commentDollar: \"fa-comment-dollar\",\n commentDots: \"fa-comment-dots\",\n commentEdit: \"fa-comment-edit\",\n commentExclamation: \"fa-comment-exclamation\",\n commentLines: \"fa-comment-lines\",\n commentMedical: \"fa-comment-medical\",\n commentMinus: \"fa-comment-minus\",\n commentMusic: \"fa-comment-music\",\n commentPlus: \"fa-comment-plus\",\n commentSlash: \"fa-comment-slash\",\n commentSmile: \"fa-comment-smile\",\n commentTimes: \"fa-comment-times\",\n comments: \"fa-comments\",\n commentsAlt: \"fa-comments-alt\",\n commentsAltDollar: \"fa-comments-alt-dollar\",\n commentsDollar: \"fa-comments-dollar\",\n compactDisc: \"fa-compact-disc\",\n compass: \"fa-compass\",\n compassSlash: \"fa-compass-slash\",\n compress: \"fa-compress\",\n compressAlt: \"fa-compress-alt\",\n compressArrowsAlt: \"fa-compress-arrows-alt\",\n compressWide: \"fa-compress-wide\",\n computerClassic: \"fa-computer-classic\",\n computerSpeaker: \"fa-computer-speaker\",\n conciergeBell: \"fa-concierge-bell\",\n confluence: \"fa-confluence\",\n connectdevelop: \"fa-connectdevelop\",\n construction: \"fa-construction\",\n containerStorage: \"fa-container-storage\",\n contao: \"fa-contao\",\n conveyorBelt: \"fa-conveyor-belt\",\n conveyorBeltAlt: \"fa-conveyor-belt-alt\",\n cookie: \"fa-cookie\",\n cookieBite: \"fa-cookie-bite\",\n copy: \"fa-copy\",\n copyright: \"fa-copyright\",\n corn: \"fa-corn\",\n cottonBureau: \"fa-cotton-bureau\",\n couch: \"fa-couch\",\n cow: \"fa-cow\",\n cowbell: \"fa-cowbell\",\n cowbellMore: \"fa-cowbell-more\",\n cpanel: \"fa-cpanel\",\n creativeCommons: \"fa-creative-commons\",\n creativeCommonsBy: \"fa-creative-commons-by\",\n creativeCommonsNc: \"fa-creative-commons-nc\",\n creativeCommonsNcEu: \"fa-creative-commons-nc-eu\",\n creativeCommonsNcJp: \"fa-creative-commons-nc-jp\",\n creativeCommonsNd: \"fa-creative-commons-nd\",\n creativeCommonsPd: \"fa-creative-commons-pd\",\n creativeCommonsPdAlt: \"fa-creative-commons-pd-alt\",\n creativeCommonsRemix: \"fa-creative-commons-remix\",\n creativeCommonsSa: \"fa-creative-commons-sa\",\n creativeCommonsSampling: \"fa-creative-commons-sampling\",\n creativeCommonsSamplingPlus: \"fa-creative-commons-sampling-plus\",\n creativeCommonsShare: \"fa-creative-commons-share\",\n creativeCommonsZero: \"fa-creative-commons-zero\",\n creditCard: \"fa-credit-card\",\n creditCardBlank: \"fa-credit-card-blank\",\n creditCardFront: \"fa-credit-card-front\",\n cricket: \"fa-cricket\",\n criticalRole: \"fa-critical-role\",\n croissant: \"fa-croissant\",\n crop: \"fa-crop\",\n cropAlt: \"fa-crop-alt\",\n cross: \"fa-cross\",\n crosshairs: \"fa-crosshairs\",\n crow: \"fa-crow\",\n crown: \"fa-crown\",\n crutch: \"fa-crutch\",\n crutches: \"fa-crutches\",\n css3: \"fa-css3\",\n css3Alt: \"fa-css3-alt\",\n cube: \"fa-cube\",\n cubes: \"fa-cubes\",\n curling: \"fa-curling\",\n cut: \"fa-cut\",\n cuttlefish: \"fa-cuttlefish\",\n dAndD: \"fa-d-and-d\",\n dAndDBeyond: \"fa-d-and-d-beyond\",\n dagger: \"fa-dagger\",\n dailymotion: \"fa-dailymotion\",\n dashcube: \"fa-dashcube\",\n database: \"fa-database\",\n deaf: \"fa-deaf\",\n debug: \"fa-debug\",\n deer: \"fa-deer\",\n deerRudolph: \"fa-deer-rudolph\",\n delicious: \"fa-delicious\",\n democrat: \"fa-democrat\",\n deploydog: \"fa-deploydog\",\n deskpro: \"fa-deskpro\",\n desktop: \"fa-desktop\",\n desktopAlt: \"fa-desktop-alt\",\n dev: \"fa-dev\",\n deviantart: \"fa-deviantart\",\n dewpoint: \"fa-dewpoint\",\n dharmachakra: \"fa-dharmachakra\",\n dhl: \"fa-dhl\",\n diagnoses: \"fa-diagnoses\",\n diamond: \"fa-diamond\",\n diaspora: \"fa-diaspora\",\n dice: \"fa-dice\",\n diceD10: \"fa-dice-d10\",\n diceD12: \"fa-dice-d12\",\n diceD20: \"fa-dice-d20\",\n diceD4: \"fa-dice-d4\",\n diceD6: \"fa-dice-d6\",\n diceD8: \"fa-dice-d8\",\n diceFive: \"fa-dice-five\",\n diceFour: \"fa-dice-four\",\n diceOne: \"fa-dice-one\",\n diceSix: \"fa-dice-six\",\n diceThree: \"fa-dice-three\",\n diceTwo: \"fa-dice-two\",\n digg: \"fa-digg\",\n digging: \"fa-digging\",\n digitalOcean: \"fa-digital-ocean\",\n digitalTachograph: \"fa-digital-tachograph\",\n diploma: \"fa-diploma\",\n directions: \"fa-directions\",\n discDrive: \"fa-disc-drive\",\n discord: \"fa-discord\",\n discourse: \"fa-discourse\",\n disease: \"fa-disease\",\n divide: \"fa-divide\",\n dizzy: \"fa-dizzy\",\n dna: \"fa-dna\",\n doNotEnter: \"fa-do-not-enter\",\n dochub: \"fa-dochub\",\n docker: \"fa-docker\",\n dog: \"fa-dog\",\n dogLeashed: \"fa-dog-leashed\",\n dollarSign: \"fa-dollar-sign\",\n dolly: \"fa-dolly\",\n dollyEmpty: \"fa-dolly-empty\",\n dollyFlatbed: \"fa-dolly-flatbed\",\n dollyFlatbedAlt: \"fa-dolly-flatbed-alt\",\n dollyFlatbedEmpty: \"fa-dolly-flatbed-empty\",\n donate: \"fa-donate\",\n doorClosed: \"fa-door-closed\",\n doorOpen: \"fa-door-open\",\n dotCircle: \"fa-dot-circle\",\n dove: \"fa-dove\",\n download: \"fa-download\",\n draft2digital: \"fa-draft2digital\",\n draftingCompass: \"fa-drafting-compass\",\n dragon: \"fa-dragon\",\n drawCircle: \"fa-draw-circle\",\n drawPolygon: \"fa-draw-polygon\",\n drawSquare: \"fa-draw-square\",\n dreidel: \"fa-dreidel\",\n dribbble: \"fa-dribbble\",\n dribbbleSquare: \"fa-dribbble-square\",\n drone: \"fa-drone\",\n droneAlt: \"fa-drone-alt\",\n dropbox: \"fa-dropbox\",\n drum: \"fa-drum\",\n drumSteelpan: \"fa-drum-steelpan\",\n drumstick: \"fa-drumstick\",\n drumstickBite: \"fa-drumstick-bite\",\n drupal: \"fa-drupal\",\n dryer: \"fa-dryer\",\n dryerAlt: \"fa-dryer-alt\",\n duck: \"fa-duck\",\n dumbbell: \"fa-dumbbell\",\n dumpster: \"fa-dumpster\",\n dumpsterFire: \"fa-dumpster-fire\",\n dungeon: \"fa-dungeon\",\n dyalog: \"fa-dyalog\",\n ear: \"fa-ear\",\n earMuffs: \"fa-ear-muffs\",\n earlybirds: \"fa-earlybirds\",\n ebay: \"fa-ebay\",\n eclipse: \"fa-eclipse\",\n eclipseAlt: \"fa-eclipse-alt\",\n edge: \"fa-edge\",\n edit: \"fa-edit\",\n egg: \"fa-egg\",\n eggFried: \"fa-egg-fried\",\n eject: \"fa-eject\",\n elementor: \"fa-elementor\",\n elephant: \"fa-elephant\",\n ellipsisH: \"fa-ellipsis-h\",\n ellipsisHAlt: \"fa-ellipsis-h-alt\",\n ellipsisV: \"fa-ellipsis-v\",\n ellipsisVAlt: \"fa-ellipsis-v-alt\",\n ello: \"fa-ello\",\n ember: \"fa-ember\",\n empire: \"fa-empire\",\n emptySet: \"fa-empty-set\",\n engineWarning: \"fa-engine-warning\",\n envelope: \"fa-envelope\",\n envelopeOpen: \"fa-envelope-open\",\n envelopeOpenDollar: \"fa-envelope-open-dollar\",\n envelopeOpenText: \"fa-envelope-open-text\",\n envelopeSquare: \"fa-envelope-square\",\n envira: \"fa-envira\",\n equals: \"fa-equals\",\n eraser: \"fa-eraser\",\n erlang: \"fa-erlang\",\n ethereum: \"fa-ethereum\",\n ethernet: \"fa-ethernet\",\n etsy: \"fa-etsy\",\n euroSign: \"fa-euro-sign\",\n evernote: \"fa-evernote\",\n exchange: \"fa-exchange\",\n exchangeAlt: \"fa-exchange-alt\",\n exclamation: \"fa-exclamation\",\n exclamationCircle: \"fa-exclamation-circle\",\n exclamationSquare: \"fa-exclamation-square\",\n exclamationTriangle: \"fa-exclamation-triangle\",\n expand: \"fa-expand\",\n expandAlt: \"fa-expand-alt\",\n expandArrows: \"fa-expand-arrows\",\n expandArrowsAlt: \"fa-expand-arrows-alt\",\n expandWide: \"fa-expand-wide\",\n expeditedssl: \"fa-expeditedssl\",\n externalLink: \"fa-external-link\",\n externalLinkAlt: \"fa-external-link-alt\",\n externalLinkSquare: \"fa-external-link-square\",\n externalLinkSquareAlt: \"fa-external-link-square-alt\",\n eye: \"fa-eye\",\n eyeDropper: \"fa-eye-dropper\",\n eyeEvil: \"fa-eye-evil\",\n eyeSlash: \"fa-eye-slash\",\n facebook: \"fa-facebook\",\n facebookF: \"fa-facebook-f\",\n facebookMessenger: \"fa-facebook-messenger\",\n facebookSquare: \"fa-facebook-square\",\n fan: \"fa-fan\",\n fanTable: \"fa-fan-table\",\n fantasyFlightGames: \"fa-fantasy-flight-games\",\n farm: \"fa-farm\",\n fastBackward: \"fa-fast-backward\",\n fastForward: \"fa-fast-forward\",\n faucet: \"fa-faucet\",\n faucetDrip: \"fa-faucet-drip\",\n fax: \"fa-fax\",\n feather: \"fa-feather\",\n featherAlt: \"fa-feather-alt\",\n fedex: \"fa-fedex\",\n fedora: \"fa-fedora\",\n female: \"fa-female\",\n fieldHockey: \"fa-field-hockey\",\n fighterJet: \"fa-fighter-jet\",\n figma: \"fa-figma\",\n file: \"fa-file\",\n fileAlt: \"fa-file-alt\",\n fileArchive: \"fa-file-archive\",\n fileAudio: \"fa-file-audio\",\n fileCertificate: \"fa-file-certificate\",\n fileChartLine: \"fa-file-chart-line\",\n fileChartPie: \"fa-file-chart-pie\",\n fileCheck: \"fa-file-check\",\n fileCode: \"fa-file-code\",\n fileContract: \"fa-file-contract\",\n fileCsv: \"fa-file-csv\",\n fileDownload: \"fa-file-download\",\n fileEdit: \"fa-file-edit\",\n fileExcel: \"fa-file-excel\",\n fileExclamation: \"fa-file-exclamation\",\n fileExport: \"fa-file-export\",\n fileImage: \"fa-file-image\",\n fileImport: \"fa-file-import\",\n fileInvoice: \"fa-file-invoice\",\n fileInvoiceDollar: \"fa-file-invoice-dollar\",\n fileMedical: \"fa-file-medical\",\n fileMedicalAlt: \"fa-file-medical-alt\",\n fileMinus: \"fa-file-minus\",\n fileMusic: \"fa-file-music\",\n filePdf: \"fa-file-pdf\",\n filePlus: \"fa-file-plus\",\n filePowerpoint: \"fa-file-powerpoint\",\n filePrescription: \"fa-file-prescription\",\n fileSearch: \"fa-file-search\",\n fileSignature: \"fa-file-signature\",\n fileSpreadsheet: \"fa-file-spreadsheet\",\n fileTimes: \"fa-file-times\",\n fileUpload: \"fa-file-upload\",\n fileUser: \"fa-file-user\",\n fileVideo: \"fa-file-video\",\n fileWord: \"fa-file-word\",\n filesMedical: \"fa-files-medical\",\n fill: \"fa-fill\",\n fillDrip: \"fa-fill-drip\",\n film: \"fa-film\",\n filmAlt: \"fa-film-alt\",\n filmCanister: \"fa-film-canister\",\n filter: \"fa-filter\",\n fingerprint: \"fa-fingerprint\",\n fire: \"fa-fire\",\n fireAlt: \"fa-fire-alt\",\n fireExtinguisher: \"fa-fire-extinguisher\",\n fireSmoke: \"fa-fire-smoke\",\n firefox: \"fa-firefox\",\n firefoxBrowser: \"fa-firefox-browser\",\n fireplace: \"fa-fireplace\",\n firstAid: \"fa-first-aid\",\n firstOrder: \"fa-first-order\",\n firstOrderAlt: \"fa-first-order-alt\",\n firstdraft: \"fa-firstdraft\",\n fish: \"fa-fish\",\n fishCooked: \"fa-fish-cooked\",\n fistRaised: \"fa-fist-raised\",\n flag: \"fa-flag\",\n flagAlt: \"fa-flag-alt\",\n flagCheckered: \"fa-flag-checkered\",\n flagUsa: \"fa-flag-usa\",\n flame: \"fa-flame\",\n flashlight: \"fa-flashlight\",\n flask: \"fa-flask\",\n flaskPoison: \"fa-flask-poison\",\n flaskPotion: \"fa-flask-potion\",\n flickr: \"fa-flickr\",\n flipboard: \"fa-flipboard\",\n flower: \"fa-flower\",\n flowerDaffodil: \"fa-flower-daffodil\",\n flowerTulip: \"fa-flower-tulip\",\n flushed: \"fa-flushed\",\n flute: \"fa-flute\",\n fluxCapacitor: \"fa-flux-capacitor\",\n fly: \"fa-fly\",\n fog: \"fa-fog\",\n folder: \"fa-folder\",\n folderDownload: \"fa-folder-download\",\n folderMinus: \"fa-folder-minus\",\n folderOpen: \"fa-folder-open\",\n folderPlus: \"fa-folder-plus\",\n folderTimes: \"fa-folder-times\",\n folderTree: \"fa-folder-tree\",\n folderUpload: \"fa-folder-upload\",\n folders: \"fa-folders\",\n font: \"fa-font\",\n fontAwesome: \"fa-font-awesome\",\n fontAwesomeAlt: \"fa-font-awesome-alt\",\n fontAwesomeFlag: \"fa-font-awesome-flag\",\n fontAwesomeLogoFull: \"fa-font-awesome-logo-full\",\n fontCase: \"fa-font-case\",\n fonticons: \"fa-fonticons\",\n fonticonsFi: \"fa-fonticons-fi\",\n footballBall: \"fa-football-ball\",\n footballHelmet: \"fa-football-helmet\",\n forklift: \"fa-forklift\",\n fortAwesome: \"fa-fort-awesome\",\n fortAwesomeAlt: \"fa-fort-awesome-alt\",\n forumbee: \"fa-forumbee\",\n forward: \"fa-forward\",\n foursquare: \"fa-foursquare\",\n fragile: \"fa-fragile\",\n freeCodeCamp: \"fa-free-code-camp\",\n freebsd: \"fa-freebsd\",\n frenchFries: \"fa-french-fries\",\n frog: \"fa-frog\",\n frostyHead: \"fa-frosty-head\",\n frown: \"fa-frown\",\n frownOpen: \"fa-frown-open\",\n fulcrum: \"fa-fulcrum\",\n function: \"fa-function\",\n funnelDollar: \"fa-funnel-dollar\",\n futbol: \"fa-futbol\",\n galacticRepublic: \"fa-galactic-republic\",\n galacticSenate: \"fa-galactic-senate\",\n galaxy: \"fa-galaxy\",\n gameBoard: \"fa-game-board\",\n gameBoardAlt: \"fa-game-board-alt\",\n gameConsoleHandheld: \"fa-game-console-handheld\",\n gamepad: \"fa-gamepad\",\n gamepadAlt: \"fa-gamepad-alt\",\n garage: \"fa-garage\",\n garageCar: \"fa-garage-car\",\n garageOpen: \"fa-garage-open\",\n gasPump: \"fa-gas-pump\",\n gasPumpSlash: \"fa-gas-pump-slash\",\n gavel: \"fa-gavel\",\n gem: \"fa-gem\",\n genderless: \"fa-genderless\",\n getPocket: \"fa-get-pocket\",\n gg: \"fa-gg\",\n ggCircle: \"fa-gg-circle\",\n ghost: \"fa-ghost\",\n gift: \"fa-gift\",\n giftCard: \"fa-gift-card\",\n gifts: \"fa-gifts\",\n gingerbreadMan: \"fa-gingerbread-man\",\n git: \"fa-git\",\n gitAlt: \"fa-git-alt\",\n gitSquare: \"fa-git-square\",\n github: \"fa-github\",\n githubAlt: \"fa-github-alt\",\n githubSquare: \"fa-github-square\",\n gitkraken: \"fa-gitkraken\",\n gitlab: \"fa-gitlab\",\n gitter: \"fa-gitter\",\n glass: \"fa-glass\",\n glassChampagne: \"fa-glass-champagne\",\n glassCheers: \"fa-glass-cheers\",\n glassCitrus: \"fa-glass-citrus\",\n glassMartini: \"fa-glass-martini\",\n glassMartiniAlt: \"fa-glass-martini-alt\",\n glassWhiskey: \"fa-glass-whiskey\",\n glassWhiskeyRocks: \"fa-glass-whiskey-rocks\",\n glasses: \"fa-glasses\",\n glassesAlt: \"fa-glasses-alt\",\n glide: \"fa-glide\",\n glideG: \"fa-glide-g\",\n globe: \"fa-globe\",\n globeAfrica: \"fa-globe-africa\",\n globeAmericas: \"fa-globe-americas\",\n globeAsia: \"fa-globe-asia\",\n globeEurope: \"fa-globe-europe\",\n globeSnow: \"fa-globe-snow\",\n globeStand: \"fa-globe-stand\",\n gofore: \"fa-gofore\",\n golfBall: \"fa-golf-ball\",\n golfClub: \"fa-golf-club\",\n goodreads: \"fa-goodreads\",\n goodreadsG: \"fa-goodreads-g\",\n google: \"fa-google\",\n googleDrive: \"fa-google-drive\",\n googlePlay: \"fa-google-play\",\n googlePlus: \"fa-google-plus\",\n googlePlusG: \"fa-google-plus-g\",\n googlePlusSquare: \"fa-google-plus-square\",\n googleWallet: \"fa-google-wallet\",\n gopuram: \"fa-gopuram\",\n graduationCap: \"fa-graduation-cap\",\n gramophone: \"fa-gramophone\",\n gratipay: \"fa-gratipay\",\n grav: \"fa-grav\",\n greaterThan: \"fa-greater-than\",\n greaterThanEqual: \"fa-greater-than-equal\",\n grimace: \"fa-grimace\",\n grin: \"fa-grin\",\n grinAlt: \"fa-grin-alt\",\n grinBeam: \"fa-grin-beam\",\n grinBeamSweat: \"fa-grin-beam-sweat\",\n grinHearts: \"fa-grin-hearts\",\n grinSquint: \"fa-grin-squint\",\n grinSquintTears: \"fa-grin-squint-tears\",\n grinStars: \"fa-grin-stars\",\n grinTears: \"fa-grin-tears\",\n grinTongue: \"fa-grin-tongue\",\n grinTongueSquint: \"fa-grin-tongue-squint\",\n grinTongueWink: \"fa-grin-tongue-wink\",\n grinWink: \"fa-grin-wink\",\n gripHorizontal: \"fa-grip-horizontal\",\n gripLines: \"fa-grip-lines\",\n gripLinesVertical: \"fa-grip-lines-vertical\",\n gripVertical: \"fa-grip-vertical\",\n gripfire: \"fa-gripfire\",\n grunt: \"fa-grunt\",\n guitar: \"fa-guitar\",\n guitarElectric: \"fa-guitar-electric\",\n guitars: \"fa-guitars\",\n gulp: \"fa-gulp\",\n hSquare: \"fa-h-square\",\n h1: \"fa-h1\",\n h2: \"fa-h2\",\n h3: \"fa-h3\",\n h4: \"fa-h4\",\n hackerNews: \"fa-hacker-news\",\n hackerNewsSquare: \"fa-hacker-news-square\",\n hackerrank: \"fa-hackerrank\",\n hamburger: \"fa-hamburger\",\n hammer: \"fa-hammer\",\n hammerWar: \"fa-hammer-war\",\n hamsa: \"fa-hamsa\",\n handHeart: \"fa-hand-heart\",\n handHolding: \"fa-hand-holding\",\n handHoldingBox: \"fa-hand-holding-box\",\n handHoldingHeart: \"fa-hand-holding-heart\",\n handHoldingMagic: \"fa-hand-holding-magic\",\n handHoldingMedical: \"fa-hand-holding-medical\",\n handHoldingSeedling: \"fa-hand-holding-seedling\",\n handHoldingUsd: \"fa-hand-holding-usd\",\n handHoldingWater: \"fa-hand-holding-water\",\n handLizard: \"fa-hand-lizard\",\n handMiddleFinger: \"fa-hand-middle-finger\",\n handPaper: \"fa-hand-paper\",\n handPeace: \"fa-hand-peace\",\n handPointDown: \"fa-hand-point-down\",\n handPointLeft: \"fa-hand-point-left\",\n handPointRight: \"fa-hand-point-right\",\n handPointUp: \"fa-hand-point-up\",\n handPointer: \"fa-hand-pointer\",\n handReceiving: \"fa-hand-receiving\",\n handRock: \"fa-hand-rock\",\n handScissors: \"fa-hand-scissors\",\n handSparkles: \"fa-hand-sparkles\",\n handSpock: \"fa-hand-spock\",\n hands: \"fa-hands\",\n handsHeart: \"fa-hands-heart\",\n handsHelping: \"fa-hands-helping\",\n handsUsd: \"fa-hands-usd\",\n handsWash: \"fa-hands-wash\",\n handshake: \"fa-handshake\",\n handshakeAlt: \"fa-handshake-alt\",\n handshakeAltSlash: \"fa-handshake-alt-slash\",\n handshakeSlash: \"fa-handshake-slash\",\n hanukiah: \"fa-hanukiah\",\n hardHat: \"fa-hard-hat\",\n hashtag: \"fa-hashtag\",\n hatChef: \"fa-hat-chef\",\n hatCowboy: \"fa-hat-cowboy\",\n hatCowboySide: \"fa-hat-cowboy-side\",\n hatSanta: \"fa-hat-santa\",\n hatWinter: \"fa-hat-winter\",\n hatWitch: \"fa-hat-witch\",\n hatWizard: \"fa-hat-wizard\",\n hdd: \"fa-hdd\",\n headSide: \"fa-head-side\",\n headSideBrain: \"fa-head-side-brain\",\n headSideCough: \"fa-head-side-cough\",\n headSideCoughSlash: \"fa-head-side-cough-slash\",\n headSideHeadphones: \"fa-head-side-headphones\",\n headSideMask: \"fa-head-side-mask\",\n headSideMedical: \"fa-head-side-medical\",\n headSideVirus: \"fa-head-side-virus\",\n headVr: \"fa-head-vr\",\n heading: \"fa-heading\",\n headphones: \"fa-headphones\",\n headphonesAlt: \"fa-headphones-alt\",\n headset: \"fa-headset\",\n heart: \"fa-heart\",\n heartBroken: \"fa-heart-broken\",\n heartCircle: \"fa-heart-circle\",\n heartRate: \"fa-heart-rate\",\n heartSquare: \"fa-heart-square\",\n heartbeat: \"fa-heartbeat\",\n heat: \"fa-heat\",\n helicopter: \"fa-helicopter\",\n helmetBattle: \"fa-helmet-battle\",\n hexagon: \"fa-hexagon\",\n highlighter: \"fa-highlighter\",\n hiking: \"fa-hiking\",\n hippo: \"fa-hippo\",\n hips: \"fa-hips\",\n hireAHelper: \"fa-hire-a-helper\",\n history: \"fa-history\",\n hockeyMask: \"fa-hockey-mask\",\n hockeyPuck: \"fa-hockey-puck\",\n hockeySticks: \"fa-hockey-sticks\",\n hollyBerry: \"fa-holly-berry\",\n home: \"fa-home\",\n homeAlt: \"fa-home-alt\",\n homeHeart: \"fa-home-heart\",\n homeLg: \"fa-home-lg\",\n homeLgAlt: \"fa-home-lg-alt\",\n hoodCloak: \"fa-hood-cloak\",\n hooli: \"fa-hooli\",\n horizontalRule: \"fa-horizontal-rule\",\n hornbill: \"fa-hornbill\",\n horse: \"fa-horse\",\n horseHead: \"fa-horse-head\",\n horseSaddle: \"fa-horse-saddle\",\n hospital: \"fa-hospital\",\n hospitalAlt: \"fa-hospital-alt\",\n hospitalSymbol: \"fa-hospital-symbol\",\n hospitalUser: \"fa-hospital-user\",\n hospitals: \"fa-hospitals\",\n hotTub: \"fa-hot-tub\",\n hotdog: \"fa-hotdog\",\n hotel: \"fa-hotel\",\n hotjar: \"fa-hotjar\",\n hourglass: \"fa-hourglass\",\n hourglassEnd: \"fa-hourglass-end\",\n hourglassHalf: \"fa-hourglass-half\",\n hourglassStart: \"fa-hourglass-start\",\n house: \"fa-house\",\n houseDamage: \"fa-house-damage\",\n houseDay: \"fa-house-day\",\n houseFlood: \"fa-house-flood\",\n houseLeave: \"fa-house-leave\",\n houseNight: \"fa-house-night\",\n houseReturn: \"fa-house-return\",\n houseSignal: \"fa-house-signal\",\n houseUser: \"fa-house-user\",\n houzz: \"fa-houzz\",\n hryvnia: \"fa-hryvnia\",\n html5: \"fa-html5\",\n hubspot: \"fa-hubspot\",\n humidity: \"fa-humidity\",\n hurricane: \"fa-hurricane\",\n iCursor: \"fa-i-cursor\",\n iceCream: \"fa-ice-cream\",\n iceSkate: \"fa-ice-skate\",\n icicles: \"fa-icicles\",\n icons: \"fa-icons\",\n iconsAlt: \"fa-icons-alt\",\n idBadge: \"fa-id-badge\",\n idCard: \"fa-id-card\",\n idCardAlt: \"fa-id-card-alt\",\n ideal: \"fa-ideal\",\n igloo: \"fa-igloo\",\n image: \"fa-image\",\n imagePolaroid: \"fa-image-polaroid\",\n images: \"fa-images\",\n imdb: \"fa-imdb\",\n inbox: \"fa-inbox\",\n inboxIn: \"fa-inbox-in\",\n inboxOut: \"fa-inbox-out\",\n indent: \"fa-indent\",\n industry: \"fa-industry\",\n industryAlt: \"fa-industry-alt\",\n infinity: \"fa-infinity\",\n info: \"fa-info\",\n infoCircle: \"fa-info-circle\",\n infoSquare: \"fa-info-square\",\n inhaler: \"fa-inhaler\",\n instagram: \"fa-instagram\",\n instagramSquare: \"fa-instagram-square\",\n integral: \"fa-integral\",\n intercom: \"fa-intercom\",\n internetExplorer: \"fa-internet-explorer\",\n intersection: \"fa-intersection\",\n inventory: \"fa-inventory\",\n invision: \"fa-invision\",\n ioxhost: \"fa-ioxhost\",\n islandTropical: \"fa-island-tropical\",\n italic: \"fa-italic\",\n itchIo: \"fa-itch-io\",\n itunes: \"fa-itunes\",\n itunesNote: \"fa-itunes-note\",\n jackOLantern: \"fa-jack-o-lantern\",\n java: \"fa-java\",\n jedi: \"fa-jedi\",\n jediOrder: \"fa-jedi-order\",\n jenkins: \"fa-jenkins\",\n jira: \"fa-jira\",\n joget: \"fa-joget\",\n joint: \"fa-joint\",\n joomla: \"fa-joomla\",\n journalWhills: \"fa-journal-whills\",\n joystick: \"fa-joystick\",\n js: \"fa-js\",\n jsSquare: \"fa-js-square\",\n jsfiddle: \"fa-jsfiddle\",\n jug: \"fa-jug\",\n kaaba: \"fa-kaaba\",\n kaggle: \"fa-kaggle\",\n kazoo: \"fa-kazoo\",\n kerning: \"fa-kerning\",\n key: \"fa-key\",\n keySkeleton: \"fa-key-skeleton\",\n keybase: \"fa-keybase\",\n keyboard: \"fa-keyboard\",\n keycdn: \"fa-keycdn\",\n keynote: \"fa-keynote\",\n khanda: \"fa-khanda\",\n kickstarter: \"fa-kickstarter\",\n kickstarterK: \"fa-kickstarter-k\",\n kidneys: \"fa-kidneys\",\n kiss: \"fa-kiss\",\n kissBeam: \"fa-kiss-beam\",\n kissWinkHeart: \"fa-kiss-wink-heart\",\n kite: \"fa-kite\",\n kiwiBird: \"fa-kiwi-bird\",\n knifeKitchen: \"fa-knife-kitchen\",\n korvue: \"fa-korvue\",\n lambda: \"fa-lambda\",\n lamp: \"fa-lamp\",\n lampDesk: \"fa-lamp-desk\",\n lampFloor: \"fa-lamp-floor\",\n landmark: \"fa-landmark\",\n landmarkAlt: \"fa-landmark-alt\",\n language: \"fa-language\",\n laptop: \"fa-laptop\",\n laptopCode: \"fa-laptop-code\",\n laptopHouse: \"fa-laptop-house\",\n laptopMedical: \"fa-laptop-medical\",\n laravel: \"fa-laravel\",\n lasso: \"fa-lasso\",\n lastfm: \"fa-lastfm\",\n lastfmSquare: \"fa-lastfm-square\",\n laugh: \"fa-laugh\",\n laughBeam: \"fa-laugh-beam\",\n laughSquint: \"fa-laugh-squint\",\n laughWink: \"fa-laugh-wink\",\n layerGroup: \"fa-layer-group\",\n layerMinus: \"fa-layer-minus\",\n layerPlus: \"fa-layer-plus\",\n leaf: \"fa-leaf\",\n leafHeart: \"fa-leaf-heart\",\n leafMaple: \"fa-leaf-maple\",\n leafOak: \"fa-leaf-oak\",\n leanpub: \"fa-leanpub\",\n lemon: \"fa-lemon\",\n less: \"fa-less\",\n lessThan: \"fa-less-than\",\n lessThanEqual: \"fa-less-than-equal\",\n levelDown: \"fa-level-down\",\n levelDownAlt: \"fa-level-down-alt\",\n levelUp: \"fa-level-up\",\n levelUpAlt: \"fa-level-up-alt\",\n lifeRing: \"fa-life-ring\",\n lightCeiling: \"fa-light-ceiling\",\n lightSwitch: \"fa-light-switch\",\n lightSwitchOff: \"fa-light-switch-off\",\n lightSwitchOn: \"fa-light-switch-on\",\n lightbulb: \"fa-lightbulb\",\n lightbulbDollar: \"fa-lightbulb-dollar\",\n lightbulbExclamation: \"fa-lightbulb-exclamation\",\n lightbulbOn: \"fa-lightbulb-on\",\n lightbulbSlash: \"fa-lightbulb-slash\",\n lightsHoliday: \"fa-lights-holiday\",\n line: \"fa-line\",\n lineColumns: \"fa-line-columns\",\n lineHeight: \"fa-line-height\",\n link: \"fa-link\",\n linkedin: \"fa-linkedin\",\n linkedinIn: \"fa-linkedin-in\",\n linode: \"fa-linode\",\n linux: \"fa-linux\",\n lips: \"fa-lips\",\n liraSign: \"fa-lira-sign\",\n list: \"fa-list\",\n listAlt: \"fa-list-alt\",\n listMusic: \"fa-list-music\",\n listOl: \"fa-list-ol\",\n listUl: \"fa-list-ul\",\n location: \"fa-location\",\n locationArrow: \"fa-location-arrow\",\n locationCircle: \"fa-location-circle\",\n locationSlash: \"fa-location-slash\",\n lock: \"fa-lock\",\n lockAlt: \"fa-lock-alt\",\n lockOpen: \"fa-lock-open\",\n lockOpenAlt: \"fa-lock-open-alt\",\n longArrowAltDown: \"fa-long-arrow-alt-down\",\n longArrowAltLeft: \"fa-long-arrow-alt-left\",\n longArrowAltRight: \"fa-long-arrow-alt-right\",\n longArrowAltUp: \"fa-long-arrow-alt-up\",\n longArrowDown: \"fa-long-arrow-down\",\n longArrowLeft: \"fa-long-arrow-left\",\n longArrowRight: \"fa-long-arrow-right\",\n longArrowUp: \"fa-long-arrow-up\",\n loveseat: \"fa-loveseat\",\n lowVision: \"fa-low-vision\",\n luchador: \"fa-luchador\",\n luggageCart: \"fa-luggage-cart\",\n lungs: \"fa-lungs\",\n lungsVirus: \"fa-lungs-virus\",\n lyft: \"fa-lyft\",\n mace: \"fa-mace\",\n magento: \"fa-magento\",\n magic: \"fa-magic\",\n magnet: \"fa-magnet\",\n mailBulk: \"fa-mail-bulk\",\n mailbox: \"fa-mailbox\",\n mailchimp: \"fa-mailchimp\",\n male: \"fa-male\",\n mandalorian: \"fa-mandalorian\",\n mandolin: \"fa-mandolin\",\n map: \"fa-map\",\n mapMarked: \"fa-map-marked\",\n mapMarkedAlt: \"fa-map-marked-alt\",\n mapMarker: \"fa-map-marker\",\n mapMarkerAlt: \"fa-map-marker-alt\",\n mapMarkerAltSlash: \"fa-map-marker-alt-slash\",\n mapMarkerCheck: \"fa-map-marker-check\",\n mapMarkerEdit: \"fa-map-marker-edit\",\n mapMarkerExclamation: \"fa-map-marker-exclamation\",\n mapMarkerMinus: \"fa-map-marker-minus\",\n mapMarkerPlus: \"fa-map-marker-plus\",\n mapMarkerQuestion: \"fa-map-marker-question\",\n mapMarkerSlash: \"fa-map-marker-slash\",\n mapMarkerSmile: \"fa-map-marker-smile\",\n mapMarkerTimes: \"fa-map-marker-times\",\n mapPin: \"fa-map-pin\",\n mapSigns: \"fa-map-signs\",\n markdown: \"fa-markdown\",\n marker: \"fa-marker\",\n mars: \"fa-mars\",\n marsDouble: \"fa-mars-double\",\n marsStroke: \"fa-mars-stroke\",\n marsStrokeH: \"fa-mars-stroke-h\",\n marsStrokeV: \"fa-mars-stroke-v\",\n mask: \"fa-mask\",\n mastodon: \"fa-mastodon\",\n maxcdn: \"fa-maxcdn\",\n mdb: \"fa-mdb\",\n meat: \"fa-meat\",\n medal: \"fa-medal\",\n medapps: \"fa-medapps\",\n medium: \"fa-medium\",\n mediumM: \"fa-medium-m\",\n medkit: \"fa-medkit\",\n medrt: \"fa-medrt\",\n meetup: \"fa-meetup\",\n megaphone: \"fa-megaphone\",\n megaport: \"fa-megaport\",\n meh: \"fa-meh\",\n mehBlank: \"fa-meh-blank\",\n mehRollingEyes: \"fa-meh-rolling-eyes\",\n memory: \"fa-memory\",\n mendeley: \"fa-mendeley\",\n menorah: \"fa-menorah\",\n mercury: \"fa-mercury\",\n meteor: \"fa-meteor\",\n microblog: \"fa-microblog\",\n microchip: \"fa-microchip\",\n microphone: \"fa-microphone\",\n microphoneAlt: \"fa-microphone-alt\",\n microphoneAltSlash: \"fa-microphone-alt-slash\",\n microphoneSlash: \"fa-microphone-slash\",\n microphoneStand: \"fa-microphone-stand\",\n microscope: \"fa-microscope\",\n microsoft: \"fa-microsoft\",\n microwave: \"fa-microwave\",\n mindShare: \"fa-mind-share\",\n minus: \"fa-minus\",\n minusCircle: \"fa-minus-circle\",\n minusHexagon: \"fa-minus-hexagon\",\n minusOctagon: \"fa-minus-octagon\",\n minusSquare: \"fa-minus-square\",\n mistletoe: \"fa-mistletoe\",\n mitten: \"fa-mitten\",\n mix: \"fa-mix\",\n mixcloud: \"fa-mixcloud\",\n mixer: \"fa-mixer\",\n mizuni: \"fa-mizuni\",\n mobile: \"fa-mobile\",\n mobileAlt: \"fa-mobile-alt\",\n mobileAndroid: \"fa-mobile-android\",\n mobileAndroidAlt: \"fa-mobile-android-alt\",\n modx: \"fa-modx\",\n monero: \"fa-monero\",\n moneyBill: \"fa-money-bill\",\n moneyBillAlt: \"fa-money-bill-alt\",\n moneyBillWave: \"fa-money-bill-wave\",\n moneyBillWaveAlt: \"fa-money-bill-wave-alt\",\n moneyCheck: \"fa-money-check\",\n moneyCheckAlt: \"fa-money-check-alt\",\n moneyCheckEdit: \"fa-money-check-edit\",\n moneyCheckEditAlt: \"fa-money-check-edit-alt\",\n monitorHeartRate: \"fa-monitor-heart-rate\",\n monkey: \"fa-monkey\",\n monument: \"fa-monument\",\n moon: \"fa-moon\",\n moonCloud: \"fa-moon-cloud\",\n moonStars: \"fa-moon-stars\",\n mortarPestle: \"fa-mortar-pestle\",\n mosque: \"fa-mosque\",\n motorcycle: \"fa-motorcycle\",\n mountain: \"fa-mountain\",\n mountains: \"fa-mountains\",\n mouse: \"fa-mouse\",\n mouseAlt: \"fa-mouse-alt\",\n mousePointer: \"fa-mouse-pointer\",\n mp3Player: \"fa-mp3-player\",\n mug: \"fa-mug\",\n mugHot: \"fa-mug-hot\",\n mugMarshmallows: \"fa-mug-marshmallows\",\n mugTea: \"fa-mug-tea\",\n music: \"fa-music\",\n musicAlt: \"fa-music-alt\",\n musicAltSlash: \"fa-music-alt-slash\",\n musicSlash: \"fa-music-slash\",\n napster: \"fa-napster\",\n narwhal: \"fa-narwhal\",\n neos: \"fa-neos\",\n networkWired: \"fa-network-wired\",\n neuter: \"fa-neuter\",\n newspaper: \"fa-newspaper\",\n nimblr: \"fa-nimblr\",\n node: \"fa-node\",\n nodeJs: \"fa-node-js\",\n notEqual: \"fa-not-equal\",\n notesMedical: \"fa-notes-medical\",\n npm: \"fa-npm\",\n ns8: \"fa-ns8\",\n nutritionix: \"fa-nutritionix\",\n objectGroup: \"fa-object-group\",\n objectUngroup: \"fa-object-ungroup\",\n octagon: \"fa-octagon\",\n odnoklassniki: \"fa-odnoklassniki\",\n odnoklassnikiSquare: \"fa-odnoklassniki-square\",\n oilCan: \"fa-oil-can\",\n oilTemp: \"fa-oil-temp\",\n oldRepublic: \"fa-old-republic\",\n om: \"fa-om\",\n omega: \"fa-omega\",\n opencart: \"fa-opencart\",\n openid: \"fa-openid\",\n opera: \"fa-opera\",\n optinMonster: \"fa-optin-monster\",\n orcid: \"fa-orcid\",\n ornament: \"fa-ornament\",\n osi: \"fa-osi\",\n otter: \"fa-otter\",\n outdent: \"fa-outdent\",\n outlet: \"fa-outlet\",\n oven: \"fa-oven\",\n overline: \"fa-overline\",\n pageBreak: \"fa-page-break\",\n page4: \"fa-page4\",\n pagelines: \"fa-pagelines\",\n pager: \"fa-pager\",\n paintBrush: \"fa-paint-brush\",\n paintBrushAlt: \"fa-paint-brush-alt\",\n paintRoller: \"fa-paint-roller\",\n palette: \"fa-palette\",\n palfed: \"fa-palfed\",\n pallet: \"fa-pallet\",\n palletAlt: \"fa-pallet-alt\",\n paperPlane: \"fa-paper-plane\",\n paperclip: \"fa-paperclip\",\n parachuteBox: \"fa-parachute-box\",\n paragraph: \"fa-paragraph\",\n paragraphRtl: \"fa-paragraph-rtl\",\n parking: \"fa-parking\",\n parkingCircle: \"fa-parking-circle\",\n parkingCircleSlash: \"fa-parking-circle-slash\",\n parkingSlash: \"fa-parking-slash\",\n passport: \"fa-passport\",\n pastafarianism: \"fa-pastafarianism\",\n paste: \"fa-paste\",\n patreon: \"fa-patreon\",\n pause: \"fa-pause\",\n pauseCircle: \"fa-pause-circle\",\n paw: \"fa-paw\",\n pawAlt: \"fa-paw-alt\",\n pawClaws: \"fa-paw-claws\",\n paypal: \"fa-paypal\",\n peace: \"fa-peace\",\n pegasus: \"fa-pegasus\",\n pen: \"fa-pen\",\n penAlt: \"fa-pen-alt\",\n penFancy: \"fa-pen-fancy\",\n penNib: \"fa-pen-nib\",\n penSquare: \"fa-pen-square\",\n pencil: \"fa-pencil\",\n pencilAlt: \"fa-pencil-alt\",\n pencilPaintbrush: \"fa-pencil-paintbrush\",\n pencilRuler: \"fa-pencil-ruler\",\n pennant: \"fa-pennant\",\n pennyArcade: \"fa-penny-arcade\",\n peopleArrows: \"fa-people-arrows\",\n peopleCarry: \"fa-people-carry\",\n pepperHot: \"fa-pepper-hot\",\n percent: \"fa-percent\",\n percentage: \"fa-percentage\",\n periscope: \"fa-periscope\",\n personBooth: \"fa-person-booth\",\n personCarry: \"fa-person-carry\",\n personDolly: \"fa-person-dolly\",\n personDollyEmpty: \"fa-person-dolly-empty\",\n personSign: \"fa-person-sign\",\n phabricator: \"fa-phabricator\",\n phoenixFramework: \"fa-phoenix-framework\",\n phoenixSquadron: \"fa-phoenix-squadron\",\n phone: \"fa-phone\",\n phoneAlt: \"fa-phone-alt\",\n phoneLaptop: \"fa-phone-laptop\",\n phoneOffice: \"fa-phone-office\",\n phonePlus: \"fa-phone-plus\",\n phoneRotary: \"fa-phone-rotary\",\n phoneSlash: \"fa-phone-slash\",\n phoneSquare: \"fa-phone-square\",\n phoneSquareAlt: \"fa-phone-square-alt\",\n phoneVolume: \"fa-phone-volume\",\n photoVideo: \"fa-photo-video\",\n php: \"fa-php\",\n pi: \"fa-pi\",\n piano: \"fa-piano\",\n pianoKeyboard: \"fa-piano-keyboard\",\n pie: \"fa-pie\",\n piedPiper: \"fa-pied-piper\",\n piedPiperAlt: \"fa-pied-piper-alt\",\n piedPiperHat: \"fa-pied-piper-hat\",\n piedPiperPp: \"fa-pied-piper-pp\",\n piedPiperSquare: \"fa-pied-piper-square\",\n pig: \"fa-pig\",\n piggyBank: \"fa-piggy-bank\",\n pills: \"fa-pills\",\n pinterest: \"fa-pinterest\",\n pinterestP: \"fa-pinterest-p\",\n pinterestSquare: \"fa-pinterest-square\",\n pizza: \"fa-pizza\",\n pizzaSlice: \"fa-pizza-slice\",\n placeOfWorship: \"fa-place-of-worship\",\n plane: \"fa-plane\",\n planeAlt: \"fa-plane-alt\",\n planeArrival: \"fa-plane-arrival\",\n planeDeparture: \"fa-plane-departure\",\n planeSlash: \"fa-plane-slash\",\n planetMoon: \"fa-planet-moon\",\n planetRinged: \"fa-planet-ringed\",\n play: \"fa-play\",\n playCircle: \"fa-play-circle\",\n playstation: \"fa-playstation\",\n plug: \"fa-plug\",\n plus: \"fa-plus\",\n plusCircle: \"fa-plus-circle\",\n plusHexagon: \"fa-plus-hexagon\",\n plusOctagon: \"fa-plus-octagon\",\n plusSquare: \"fa-plus-square\",\n podcast: \"fa-podcast\",\n podium: \"fa-podium\",\n podiumStar: \"fa-podium-star\",\n policeBox: \"fa-police-box\",\n poll: \"fa-poll\",\n pollH: \"fa-poll-h\",\n pollPeople: \"fa-poll-people\",\n poo: \"fa-poo\",\n pooStorm: \"fa-poo-storm\",\n poop: \"fa-poop\",\n popcorn: \"fa-popcorn\",\n portalEnter: \"fa-portal-enter\",\n portalExit: \"fa-portal-exit\",\n portrait: \"fa-portrait\",\n poundSign: \"fa-pound-sign\",\n powerOff: \"fa-power-off\",\n pray: \"fa-pray\",\n prayingHands: \"fa-praying-hands\",\n prescription: \"fa-prescription\",\n prescriptionBottle: \"fa-prescription-bottle\",\n prescriptionBottleAlt: \"fa-prescription-bottle-alt\",\n presentation: \"fa-presentation\",\n print: \"fa-print\",\n printSearch: \"fa-print-search\",\n printSlash: \"fa-print-slash\",\n procedures: \"fa-procedures\",\n productHunt: \"fa-product-hunt\",\n projectDiagram: \"fa-project-diagram\",\n projector: \"fa-projector\",\n pumpMedical: \"fa-pump-medical\",\n pumpSoap: \"fa-pump-soap\",\n pumpkin: \"fa-pumpkin\",\n pushed: \"fa-pushed\",\n puzzlePiece: \"fa-puzzle-piece\",\n python: \"fa-python\",\n qq: \"fa-qq\",\n qrcode: \"fa-qrcode\",\n question: \"fa-question\",\n questionCircle: \"fa-question-circle\",\n questionSquare: \"fa-question-square\",\n quidditch: \"fa-quidditch\",\n quinscape: \"fa-quinscape\",\n quora: \"fa-quora\",\n quoteLeft: \"fa-quote-left\",\n quoteRight: \"fa-quote-right\",\n quran: \"fa-quran\",\n rProject: \"fa-r-project\",\n rabbit: \"fa-rabbit\",\n rabbitFast: \"fa-rabbit-fast\",\n racquet: \"fa-racquet\",\n radar: \"fa-radar\",\n radiation: \"fa-radiation\",\n radiationAlt: \"fa-radiation-alt\",\n radio: \"fa-radio\",\n radioAlt: \"fa-radio-alt\",\n rainbow: \"fa-rainbow\",\n raindrops: \"fa-raindrops\",\n ram: \"fa-ram\",\n rampLoading: \"fa-ramp-loading\",\n random: \"fa-random\",\n raspberryPi: \"fa-raspberry-pi\",\n ravelry: \"fa-ravelry\",\n raygun: \"fa-raygun\",\n react: \"fa-react\",\n reacteurope: \"fa-reacteurope\",\n readme: \"fa-readme\",\n rebel: \"fa-rebel\",\n receipt: \"fa-receipt\",\n recordVinyl: \"fa-record-vinyl\",\n rectangleLandscape: \"fa-rectangle-landscape\",\n rectanglePortrait: \"fa-rectangle-portrait\",\n rectangleWide: \"fa-rectangle-wide\",\n recycle: \"fa-recycle\",\n redRiver: \"fa-red-river\",\n reddit: \"fa-reddit\",\n redditAlien: \"fa-reddit-alien\",\n redditSquare: \"fa-reddit-square\",\n redhat: \"fa-redhat\",\n redo: \"fa-redo\",\n redoAlt: \"fa-redo-alt\",\n refrigerator: \"fa-refrigerator\",\n registered: \"fa-registered\",\n removeFormat: \"fa-remove-format\",\n renren: \"fa-renren\",\n repeat: \"fa-repeat\",\n repeat1: \"fa-repeat-1\",\n repeat1Alt: \"fa-repeat-1-alt\",\n repeatAlt: \"fa-repeat-alt\",\n reply: \"fa-reply\",\n replyAll: \"fa-reply-all\",\n replyd: \"fa-replyd\",\n republican: \"fa-republican\",\n researchgate: \"fa-researchgate\",\n resolving: \"fa-resolving\",\n restroom: \"fa-restroom\",\n retweet: \"fa-retweet\",\n retweetAlt: \"fa-retweet-alt\",\n rev: \"fa-rev\",\n ribbon: \"fa-ribbon\",\n ring: \"fa-ring\",\n ringsWedding: \"fa-rings-wedding\",\n road: \"fa-road\",\n robot: \"fa-robot\",\n rocket: \"fa-rocket\",\n rocketLaunch: \"fa-rocket-launch\",\n rocketchat: \"fa-rocketchat\",\n rockrms: \"fa-rockrms\",\n route: \"fa-route\",\n routeHighway: \"fa-route-highway\",\n routeInterstate: \"fa-route-interstate\",\n router: \"fa-router\",\n rss: \"fa-rss\",\n rssSquare: \"fa-rss-square\",\n rubleSign: \"fa-ruble-sign\",\n ruler: \"fa-ruler\",\n rulerCombined: \"fa-ruler-combined\",\n rulerHorizontal: \"fa-ruler-horizontal\",\n rulerTriangle: \"fa-ruler-triangle\",\n rulerVertical: \"fa-ruler-vertical\",\n running: \"fa-running\",\n rupeeSign: \"fa-rupee-sign\",\n rv: \"fa-rv\",\n sack: \"fa-sack\",\n sackDollar: \"fa-sack-dollar\",\n sadCry: \"fa-sad-cry\",\n sadTear: \"fa-sad-tear\",\n safari: \"fa-safari\",\n salad: \"fa-salad\",\n salesforce: \"fa-salesforce\",\n sandwich: \"fa-sandwich\",\n sass: \"fa-sass\",\n satellite: \"fa-satellite\",\n satelliteDish: \"fa-satellite-dish\",\n sausage: \"fa-sausage\",\n save: \"fa-save\",\n saxHot: \"fa-sax-hot\",\n saxophone: \"fa-saxophone\",\n scalpel: \"fa-scalpel\",\n scalpelPath: \"fa-scalpel-path\",\n scanner: \"fa-scanner\",\n scannerImage: \"fa-scanner-image\",\n scannerKeyboard: \"fa-scanner-keyboard\",\n scannerTouchscreen: \"fa-scanner-touchscreen\",\n scarecrow: \"fa-scarecrow\",\n scarf: \"fa-scarf\",\n schlix: \"fa-schlix\",\n school: \"fa-school\",\n screwdriver: \"fa-screwdriver\",\n scribd: \"fa-scribd\",\n scroll: \"fa-scroll\",\n scrollOld: \"fa-scroll-old\",\n scrubber: \"fa-scrubber\",\n scythe: \"fa-scythe\",\n sdCard: \"fa-sd-card\",\n search: \"fa-search\",\n searchDollar: \"fa-search-dollar\",\n searchLocation: \"fa-search-location\",\n searchMinus: \"fa-search-minus\",\n searchPlus: \"fa-search-plus\",\n searchengin: \"fa-searchengin\",\n seedling: \"fa-seedling\",\n sellcast: \"fa-sellcast\",\n sellsy: \"fa-sellsy\",\n sendBack: \"fa-send-back\",\n sendBackward: \"fa-send-backward\",\n sensor: \"fa-sensor\",\n sensorAlert: \"fa-sensor-alert\",\n sensorFire: \"fa-sensor-fire\",\n sensorOn: \"fa-sensor-on\",\n sensorSmoke: \"fa-sensor-smoke\",\n server: \"fa-server\",\n servicestack: \"fa-servicestack\",\n shapes: \"fa-shapes\",\n share: \"fa-share\",\n shareAll: \"fa-share-all\",\n shareAlt: \"fa-share-alt\",\n shareAltSquare: \"fa-share-alt-square\",\n shareSquare: \"fa-share-square\",\n sheep: \"fa-sheep\",\n shekelSign: \"fa-shekel-sign\",\n shield: \"fa-shield\",\n shieldAlt: \"fa-shield-alt\",\n shieldCheck: \"fa-shield-check\",\n shieldCross: \"fa-shield-cross\",\n shieldVirus: \"fa-shield-virus\",\n ship: \"fa-ship\",\n shippingFast: \"fa-shipping-fast\",\n shippingTimed: \"fa-shipping-timed\",\n shirtsinbulk: \"fa-shirtsinbulk\",\n shishKebab: \"fa-shish-kebab\",\n shoePrints: \"fa-shoe-prints\",\n shopify: \"fa-shopify\",\n shoppingBag: \"fa-shopping-bag\",\n shoppingBasket: \"fa-shopping-basket\",\n shoppingCart: \"fa-shopping-cart\",\n shopware: \"fa-shopware\",\n shovel: \"fa-shovel\",\n shovelSnow: \"fa-shovel-snow\",\n shower: \"fa-shower\",\n shredder: \"fa-shredder\",\n shuttleVan: \"fa-shuttle-van\",\n shuttlecock: \"fa-shuttlecock\",\n sickle: \"fa-sickle\",\n sigma: \"fa-sigma\",\n sign: \"fa-sign\",\n signIn: \"fa-sign-in\",\n signInAlt: \"fa-sign-in-alt\",\n signLanguage: \"fa-sign-language\",\n signOut: \"fa-sign-out\",\n signOutAlt: \"fa-sign-out-alt\",\n signal: \"fa-signal\",\n signal1: \"fa-signal-1\",\n signal2: \"fa-signal-2\",\n signal3: \"fa-signal-3\",\n signal4: \"fa-signal-4\",\n signalAlt: \"fa-signal-alt\",\n signalAlt1: \"fa-signal-alt-1\",\n signalAlt2: \"fa-signal-alt-2\",\n signalAlt3: \"fa-signal-alt-3\",\n signalAltSlash: \"fa-signal-alt-slash\",\n signalSlash: \"fa-signal-slash\",\n signalStream: \"fa-signal-stream\",\n signature: \"fa-signature\",\n simCard: \"fa-sim-card\",\n simplybuilt: \"fa-simplybuilt\",\n sink: \"fa-sink\",\n siren: \"fa-siren\",\n sirenOn: \"fa-siren-on\",\n sistrix: \"fa-sistrix\",\n sitemap: \"fa-sitemap\",\n sith: \"fa-sith\",\n skating: \"fa-skating\",\n skeleton: \"fa-skeleton\",\n sketch: \"fa-sketch\",\n skiJump: \"fa-ski-jump\",\n skiLift: \"fa-ski-lift\",\n skiing: \"fa-skiing\",\n skiingNordic: \"fa-skiing-nordic\",\n skull: \"fa-skull\",\n skullCow: \"fa-skull-cow\",\n skullCrossbones: \"fa-skull-crossbones\",\n skyatlas: \"fa-skyatlas\",\n skype: \"fa-skype\",\n slack: \"fa-slack\",\n slackHash: \"fa-slack-hash\",\n slash: \"fa-slash\",\n sledding: \"fa-sledding\",\n sleigh: \"fa-sleigh\",\n slidersH: \"fa-sliders-h\",\n slidersHSquare: \"fa-sliders-h-square\",\n slidersV: \"fa-sliders-v\",\n slidersVSquare: \"fa-sliders-v-square\",\n slideshare: \"fa-slideshare\",\n smile: \"fa-smile\",\n smileBeam: \"fa-smile-beam\",\n smilePlus: \"fa-smile-plus\",\n smileWink: \"fa-smile-wink\",\n smog: \"fa-smog\",\n smoke: \"fa-smoke\",\n smoking: \"fa-smoking\",\n smokingBan: \"fa-smoking-ban\",\n sms: \"fa-sms\",\n snake: \"fa-snake\",\n snapchat: \"fa-snapchat\",\n snapchatGhost: \"fa-snapchat-ghost\",\n snapchatSquare: \"fa-snapchat-square\",\n snooze: \"fa-snooze\",\n snowBlowing: \"fa-snow-blowing\",\n snowboarding: \"fa-snowboarding\",\n snowflake: \"fa-snowflake\",\n snowflakes: \"fa-snowflakes\",\n snowman: \"fa-snowman\",\n snowmobile: \"fa-snowmobile\",\n snowplow: \"fa-snowplow\",\n soap: \"fa-soap\",\n socks: \"fa-socks\",\n solarPanel: \"fa-solar-panel\",\n solarSystem: \"fa-solar-system\",\n sort: \"fa-sort\",\n sortAlphaDown: \"fa-sort-alpha-down\",\n sortAlphaDownAlt: \"fa-sort-alpha-down-alt\",\n sortAlphaUp: \"fa-sort-alpha-up\",\n sortAlphaUpAlt: \"fa-sort-alpha-up-alt\",\n sortAlt: \"fa-sort-alt\",\n sortAmountDown: \"fa-sort-amount-down\",\n sortAmountDownAlt: \"fa-sort-amount-down-alt\",\n sortAmountUp: \"fa-sort-amount-up\",\n sortAmountUpAlt: \"fa-sort-amount-up-alt\",\n sortCircle: \"fa-sort-circle\",\n sortCircleDown: \"fa-sort-circle-down\",\n sortCircleUp: \"fa-sort-circle-up\",\n sortDown: \"fa-sort-down\",\n sortNumericDown: \"fa-sort-numeric-down\",\n sortNumericDownAlt: \"fa-sort-numeric-down-alt\",\n sortNumericUp: \"fa-sort-numeric-up\",\n sortNumericUpAlt: \"fa-sort-numeric-up-alt\",\n sortShapesDown: \"fa-sort-shapes-down\",\n sortShapesDownAlt: \"fa-sort-shapes-down-alt\",\n sortShapesUp: \"fa-sort-shapes-up\",\n sortShapesUpAlt: \"fa-sort-shapes-up-alt\",\n sortSizeDown: \"fa-sort-size-down\",\n sortSizeDownAlt: \"fa-sort-size-down-alt\",\n sortSizeUp: \"fa-sort-size-up\",\n sortSizeUpAlt: \"fa-sort-size-up-alt\",\n sortUp: \"fa-sort-up\",\n soundcloud: \"fa-soundcloud\",\n soup: \"fa-soup\",\n sourcetree: \"fa-sourcetree\",\n spa: \"fa-spa\",\n spaceShuttle: \"fa-space-shuttle\",\n spaceStationMoon: \"fa-space-station-moon\",\n spaceStationMoonAlt: \"fa-space-station-moon-alt\",\n spade: \"fa-spade\",\n sparkles: \"fa-sparkles\",\n speakap: \"fa-speakap\",\n speaker: \"fa-speaker\",\n speakerDeck: \"fa-speaker-deck\",\n speakers: \"fa-speakers\",\n spellCheck: \"fa-spell-check\",\n spider: \"fa-spider\",\n spiderBlackWidow: \"fa-spider-black-widow\",\n spiderWeb: \"fa-spider-web\",\n spinner: \"fa-spinner\",\n spinnerThird: \"fa-spinner-third\",\n splotch: \"fa-splotch\",\n spotify: \"fa-spotify\",\n sprayCan: \"fa-spray-can\",\n sprinkler: \"fa-sprinkler\",\n square: \"fa-square\",\n squareFull: \"fa-square-full\",\n squareRoot: \"fa-square-root\",\n squareRootAlt: \"fa-square-root-alt\",\n squarespace: \"fa-squarespace\",\n squirrel: \"fa-squirrel\",\n stackExchange: \"fa-stack-exchange\",\n stackOverflow: \"fa-stack-overflow\",\n stackpath: \"fa-stackpath\",\n staff: \"fa-staff\",\n stamp: \"fa-stamp\",\n star: \"fa-star\",\n starAndCrescent: \"fa-star-and-crescent\",\n starChristmas: \"fa-star-christmas\",\n starExclamation: \"fa-star-exclamation\",\n starHalf: \"fa-star-half\",\n starHalfAlt: \"fa-star-half-alt\",\n starOfDavid: \"fa-star-of-david\",\n starOfLife: \"fa-star-of-life\",\n starShooting: \"fa-star-shooting\",\n starfighter: \"fa-starfighter\",\n starfighterAlt: \"fa-starfighter-alt\",\n stars: \"fa-stars\",\n starship: \"fa-starship\",\n starshipFreighter: \"fa-starship-freighter\",\n staylinked: \"fa-staylinked\",\n steak: \"fa-steak\",\n steam: \"fa-steam\",\n steamSquare: \"fa-steam-square\",\n steamSymbol: \"fa-steam-symbol\",\n steeringWheel: \"fa-steering-wheel\",\n stepBackward: \"fa-step-backward\",\n stepForward: \"fa-step-forward\",\n stethoscope: \"fa-stethoscope\",\n stickerMule: \"fa-sticker-mule\",\n stickyNote: \"fa-sticky-note\",\n stocking: \"fa-stocking\",\n stomach: \"fa-stomach\",\n stop: \"fa-stop\",\n stopCircle: \"fa-stop-circle\",\n stopwatch: \"fa-stopwatch\",\n stopwatch20: \"fa-stopwatch-20\",\n store: \"fa-store\",\n storeAlt: \"fa-store-alt\",\n storeAltSlash: \"fa-store-alt-slash\",\n storeSlash: \"fa-store-slash\",\n strava: \"fa-strava\",\n stream: \"fa-stream\",\n streetView: \"fa-street-view\",\n stretcher: \"fa-stretcher\",\n strikethrough: \"fa-strikethrough\",\n stripe: \"fa-stripe\",\n stripeS: \"fa-stripe-s\",\n stroopwafel: \"fa-stroopwafel\",\n studiovinari: \"fa-studiovinari\",\n stumbleupon: \"fa-stumbleupon\",\n stumbleuponCircle: \"fa-stumbleupon-circle\",\n subscript: \"fa-subscript\",\n subway: \"fa-subway\",\n suitcase: \"fa-suitcase\",\n suitcaseRolling: \"fa-suitcase-rolling\",\n sun: \"fa-sun\",\n sunCloud: \"fa-sun-cloud\",\n sunDust: \"fa-sun-dust\",\n sunHaze: \"fa-sun-haze\",\n sunglasses: \"fa-sunglasses\",\n sunrise: \"fa-sunrise\",\n sunset: \"fa-sunset\",\n superpowers: \"fa-superpowers\",\n superscript: \"fa-superscript\",\n supple: \"fa-supple\",\n surprise: \"fa-surprise\",\n suse: \"fa-suse\",\n swatchbook: \"fa-swatchbook\",\n swift: \"fa-swift\",\n swimmer: \"fa-swimmer\",\n swimmingPool: \"fa-swimming-pool\",\n sword: \"fa-sword\",\n swordLaser: \"fa-sword-laser\",\n swordLaserAlt: \"fa-sword-laser-alt\",\n swords: \"fa-swords\",\n swordsLaser: \"fa-swords-laser\",\n symfony: \"fa-symfony\",\n synagogue: \"fa-synagogue\",\n sync: \"fa-sync\",\n syncAlt: \"fa-sync-alt\",\n syringe: \"fa-syringe\",\n table: \"fa-table\",\n tableTennis: \"fa-table-tennis\",\n tablet: \"fa-tablet\",\n tabletAlt: \"fa-tablet-alt\",\n tabletAndroid: \"fa-tablet-android\",\n tabletAndroidAlt: \"fa-tablet-android-alt\",\n tabletRugged: \"fa-tablet-rugged\",\n tablets: \"fa-tablets\",\n tachometer: \"fa-tachometer\",\n tachometerAlt: \"fa-tachometer-alt\",\n tachometerAltAverage: \"fa-tachometer-alt-average\",\n tachometerAltFast: \"fa-tachometer-alt-fast\",\n tachometerAltFastest: \"fa-tachometer-alt-fastest\",\n tachometerAltSlow: \"fa-tachometer-alt-slow\",\n tachometerAltSlowest: \"fa-tachometer-alt-slowest\",\n tachometerAverage: \"fa-tachometer-average\",\n tachometerFast: \"fa-tachometer-fast\",\n tachometerFastest: \"fa-tachometer-fastest\",\n tachometerSlow: \"fa-tachometer-slow\",\n tachometerSlowest: \"fa-tachometer-slowest\",\n taco: \"fa-taco\",\n tag: \"fa-tag\",\n tags: \"fa-tags\",\n tally: \"fa-tally\",\n tanakh: \"fa-tanakh\",\n tape: \"fa-tape\",\n tasks: \"fa-tasks\",\n tasksAlt: \"fa-tasks-alt\",\n taxi: \"fa-taxi\",\n teamspeak: \"fa-teamspeak\",\n teeth: \"fa-teeth\",\n teethOpen: \"fa-teeth-open\",\n telegram: \"fa-telegram\",\n telegramPlane: \"fa-telegram-plane\",\n telescope: \"fa-telescope\",\n temperatureDown: \"fa-temperature-down\",\n temperatureFrigid: \"fa-temperature-frigid\",\n temperatureHigh: \"fa-temperature-high\",\n temperatureHot: \"fa-temperature-hot\",\n temperatureLow: \"fa-temperature-low\",\n temperatureUp: \"fa-temperature-up\",\n tencentWeibo: \"fa-tencent-weibo\",\n tenge: \"fa-tenge\",\n tennisBall: \"fa-tennis-ball\",\n terminal: \"fa-terminal\",\n text: \"fa-text\",\n textHeight: \"fa-text-height\",\n textSize: \"fa-text-size\",\n textWidth: \"fa-text-width\",\n th: \"fa-th\",\n thLarge: \"fa-th-large\",\n thList: \"fa-th-list\",\n theRedYeti: \"fa-the-red-yeti\",\n theaterMasks: \"fa-theater-masks\",\n themeco: \"fa-themeco\",\n themeisle: \"fa-themeisle\",\n thermometer: \"fa-thermometer\",\n thermometerEmpty: \"fa-thermometer-empty\",\n thermometerFull: \"fa-thermometer-full\",\n thermometerHalf: \"fa-thermometer-half\",\n thermometerQuarter: \"fa-thermometer-quarter\",\n thermometerThreeQuarters: \"fa-thermometer-three-quarters\",\n theta: \"fa-theta\",\n thinkPeaks: \"fa-think-peaks\",\n thumbsDown: \"fa-thumbs-down\",\n thumbsUp: \"fa-thumbs-up\",\n thumbtack: \"fa-thumbtack\",\n thunderstorm: \"fa-thunderstorm\",\n thunderstormMoon: \"fa-thunderstorm-moon\",\n thunderstormSun: \"fa-thunderstorm-sun\",\n ticket: \"fa-ticket\",\n ticketAlt: \"fa-ticket-alt\",\n tilde: \"fa-tilde\",\n times: \"fa-times\",\n timesCircle: \"fa-times-circle\",\n timesHexagon: \"fa-times-hexagon\",\n timesOctagon: \"fa-times-octagon\",\n timesSquare: \"fa-times-square\",\n tint: \"fa-tint\",\n tintSlash: \"fa-tint-slash\",\n tire: \"fa-tire\",\n tireFlat: \"fa-tire-flat\",\n tirePressureWarning: \"fa-tire-pressure-warning\",\n tireRugged: \"fa-tire-rugged\",\n tired: \"fa-tired\",\n toggleOff: \"fa-toggle-off\",\n toggleOn: \"fa-toggle-on\",\n toilet: \"fa-toilet\",\n toiletPaper: \"fa-toilet-paper\",\n toiletPaperAlt: \"fa-toilet-paper-alt\",\n toiletPaperSlash: \"fa-toilet-paper-slash\",\n tombstone: \"fa-tombstone\",\n tombstoneAlt: \"fa-tombstone-alt\",\n toolbox: \"fa-toolbox\",\n tools: \"fa-tools\",\n tooth: \"fa-tooth\",\n toothbrush: \"fa-toothbrush\",\n torah: \"fa-torah\",\n toriiGate: \"fa-torii-gate\",\n tornado: \"fa-tornado\",\n tractor: \"fa-tractor\",\n tradeFederation: \"fa-trade-federation\",\n trademark: \"fa-trademark\",\n trafficCone: \"fa-traffic-cone\",\n trafficLight: \"fa-traffic-light\",\n trafficLightGo: \"fa-traffic-light-go\",\n trafficLightSlow: \"fa-traffic-light-slow\",\n trafficLightStop: \"fa-traffic-light-stop\",\n trailer: \"fa-trailer\",\n train: \"fa-train\",\n tram: \"fa-tram\",\n transgender: \"fa-transgender\",\n transgenderAlt: \"fa-transgender-alt\",\n transporter: \"fa-transporter\",\n transporter1: \"fa-transporter-1\",\n transporter2: \"fa-transporter-2\",\n transporter3: \"fa-transporter-3\",\n transporterEmpty: \"fa-transporter-empty\",\n trash: \"fa-trash\",\n trashAlt: \"fa-trash-alt\",\n trashRestore: \"fa-trash-restore\",\n trashRestoreAlt: \"fa-trash-restore-alt\",\n trashUndo: \"fa-trash-undo\",\n trashUndoAlt: \"fa-trash-undo-alt\",\n treasureChest: \"fa-treasure-chest\",\n tree: \"fa-tree\",\n treeAlt: \"fa-tree-alt\",\n treeChristmas: \"fa-tree-christmas\",\n treeDecorated: \"fa-tree-decorated\",\n treeLarge: \"fa-tree-large\",\n treePalm: \"fa-tree-palm\",\n trees: \"fa-trees\",\n trello: \"fa-trello\",\n triangle: \"fa-triangle\",\n triangleMusic: \"fa-triangle-music\",\n tripadvisor: \"fa-tripadvisor\",\n trophy: \"fa-trophy\",\n trophyAlt: \"fa-trophy-alt\",\n truck: \"fa-truck\",\n truckContainer: \"fa-truck-container\",\n truckCouch: \"fa-truck-couch\",\n truckLoading: \"fa-truck-loading\",\n truckMonster: \"fa-truck-monster\",\n truckMoving: \"fa-truck-moving\",\n truckPickup: \"fa-truck-pickup\",\n truckPlow: \"fa-truck-plow\",\n truckRamp: \"fa-truck-ramp\",\n trumpet: \"fa-trumpet\",\n tshirt: \"fa-tshirt\",\n tty: \"fa-tty\",\n tumblr: \"fa-tumblr\",\n tumblrSquare: \"fa-tumblr-square\",\n turkey: \"fa-turkey\",\n turntable: \"fa-turntable\",\n turtle: \"fa-turtle\",\n tv: \"fa-tv\",\n tvAlt: \"fa-tv-alt\",\n tvMusic: \"fa-tv-music\",\n tvRetro: \"fa-tv-retro\",\n twitch: \"fa-twitch\",\n twitter: \"fa-twitter\",\n twitterSquare: \"fa-twitter-square\",\n typewriter: \"fa-typewriter\",\n typo3: \"fa-typo3\",\n uber: \"fa-uber\",\n ubuntu: \"fa-ubuntu\",\n ufo: \"fa-ufo\",\n ufoBeam: \"fa-ufo-beam\",\n uikit: \"fa-uikit\",\n umbraco: \"fa-umbraco\",\n umbrella: \"fa-umbrella\",\n umbrellaBeach: \"fa-umbrella-beach\",\n underline: \"fa-underline\",\n undo: \"fa-undo\",\n undoAlt: \"fa-undo-alt\",\n unicorn: \"fa-unicorn\",\n union: \"fa-union\",\n uniregistry: \"fa-uniregistry\",\n unity: \"fa-unity\",\n universalAccess: \"fa-universal-access\",\n university: \"fa-university\",\n unlink: \"fa-unlink\",\n unlock: \"fa-unlock\",\n unlockAlt: \"fa-unlock-alt\",\n untappd: \"fa-untappd\",\n upload: \"fa-upload\",\n ups: \"fa-ups\",\n usb: \"fa-usb\",\n usbDrive: \"fa-usb-drive\",\n usdCircle: \"fa-usd-circle\",\n usdSquare: \"fa-usd-square\",\n user: \"fa-user\",\n userAlien: \"fa-user-alien\",\n userAlt: \"fa-user-alt\",\n userAltSlash: \"fa-user-alt-slash\",\n userAstronaut: \"fa-user-astronaut\",\n userChart: \"fa-user-chart\",\n userCheck: \"fa-user-check\",\n userCircle: \"fa-user-circle\",\n userClock: \"fa-user-clock\",\n userCog: \"fa-user-cog\",\n userCowboy: \"fa-user-cowboy\",\n userCrown: \"fa-user-crown\",\n userEdit: \"fa-user-edit\",\n userFriends: \"fa-user-friends\",\n userGraduate: \"fa-user-graduate\",\n userHardHat: \"fa-user-hard-hat\",\n userHeadset: \"fa-user-headset\",\n userInjured: \"fa-user-injured\",\n userLock: \"fa-user-lock\",\n userMd: \"fa-user-md\",\n userMdChat: \"fa-user-md-chat\",\n userMinus: \"fa-user-minus\",\n userMusic: \"fa-user-music\",\n userNinja: \"fa-user-ninja\",\n userNurse: \"fa-user-nurse\",\n userPlus: \"fa-user-plus\",\n userRobot: \"fa-user-robot\",\n userSecret: \"fa-user-secret\",\n userShield: \"fa-user-shield\",\n userSlash: \"fa-user-slash\",\n userTag: \"fa-user-tag\",\n userTie: \"fa-user-tie\",\n userTimes: \"fa-user-times\",\n userUnlock: \"fa-user-unlock\",\n userVisor: \"fa-user-visor\",\n users: \"fa-users\",\n usersClass: \"fa-users-class\",\n usersCog: \"fa-users-cog\",\n usersCrown: \"fa-users-crown\",\n usersMedical: \"fa-users-medical\",\n usersSlash: \"fa-users-slash\",\n usps: \"fa-usps\",\n ussunnah: \"fa-ussunnah\",\n utensilFork: \"fa-utensil-fork\",\n utensilKnife: \"fa-utensil-knife\",\n utensilSpoon: \"fa-utensil-spoon\",\n utensils: \"fa-utensils\",\n utensilsAlt: \"fa-utensils-alt\",\n vaadin: \"fa-vaadin\",\n vacuum: \"fa-vacuum\",\n vacuumRobot: \"fa-vacuum-robot\",\n valueAbsolute: \"fa-value-absolute\",\n vectorSquare: \"fa-vector-square\",\n venus: \"fa-venus\",\n venusDouble: \"fa-venus-double\",\n venusMars: \"fa-venus-mars\",\n vhs: \"fa-vhs\",\n viacoin: \"fa-viacoin\",\n viadeo: \"fa-viadeo\",\n viadeoSquare: \"fa-viadeo-square\",\n vial: \"fa-vial\",\n vials: \"fa-vials\",\n viber: \"fa-viber\",\n video: \"fa-video\",\n videoPlus: \"fa-video-plus\",\n videoSlash: \"fa-video-slash\",\n vihara: \"fa-vihara\",\n vimeo: \"fa-vimeo\",\n vimeoSquare: \"fa-vimeo-square\",\n vimeoV: \"fa-vimeo-v\",\n vine: \"fa-vine\",\n violin: \"fa-violin\",\n virus: \"fa-virus\",\n virusSlash: \"fa-virus-slash\",\n viruses: \"fa-viruses\",\n vk: \"fa-vk\",\n vnv: \"fa-vnv\",\n voicemail: \"fa-voicemail\",\n volcano: \"fa-volcano\",\n volleyballBall: \"fa-volleyball-ball\",\n volume: \"fa-volume\",\n volumeDown: \"fa-volume-down\",\n volumeMute: \"fa-volume-mute\",\n volumeOff: \"fa-volume-off\",\n volumeSlash: \"fa-volume-slash\",\n volumeUp: \"fa-volume-up\",\n voteNay: \"fa-vote-nay\",\n voteYea: \"fa-vote-yea\",\n vrCardboard: \"fa-vr-cardboard\",\n vuejs: \"fa-vuejs\",\n wagonCovered: \"fa-wagon-covered\",\n walker: \"fa-walker\",\n walkieTalkie: \"fa-walkie-talkie\",\n walking: \"fa-walking\",\n wallet: \"fa-wallet\",\n wand: \"fa-wand\",\n wandMagic: \"fa-wand-magic\",\n warehouse: \"fa-warehouse\",\n warehouseAlt: \"fa-warehouse-alt\",\n washer: \"fa-washer\",\n watch: \"fa-watch\",\n watchCalculator: \"fa-watch-calculator\",\n watchFitness: \"fa-watch-fitness\",\n water: \"fa-water\",\n waterLower: \"fa-water-lower\",\n waterRise: \"fa-water-rise\",\n waveSine: \"fa-wave-sine\",\n waveSquare: \"fa-wave-square\",\n waveTriangle: \"fa-wave-triangle\",\n waveform: \"fa-waveform\",\n waveformPath: \"fa-waveform-path\",\n waze: \"fa-waze\",\n webcam: \"fa-webcam\",\n webcamSlash: \"fa-webcam-slash\",\n weebly: \"fa-weebly\",\n weibo: \"fa-weibo\",\n weight: \"fa-weight\",\n weightHanging: \"fa-weight-hanging\",\n weixin: \"fa-weixin\",\n whale: \"fa-whale\",\n whatsapp: \"fa-whatsapp\",\n whatsappSquare: \"fa-whatsapp-square\",\n wheat: \"fa-wheat\",\n wheelchair: \"fa-wheelchair\",\n whistle: \"fa-whistle\",\n whmcs: \"fa-whmcs\",\n wifi: \"fa-wifi\",\n wifi1: \"fa-wifi-1\",\n wifi2: \"fa-wifi-2\",\n wifiSlash: \"fa-wifi-slash\",\n wikipediaW: \"fa-wikipedia-w\",\n wind: \"fa-wind\",\n windTurbine: \"fa-wind-turbine\",\n windWarning: \"fa-wind-warning\",\n window: \"fa-window\",\n windowAlt: \"fa-window-alt\",\n windowClose: \"fa-window-close\",\n windowFrame: \"fa-window-frame\",\n windowFrameOpen: \"fa-window-frame-open\",\n windowMaximize: \"fa-window-maximize\",\n windowMinimize: \"fa-window-minimize\",\n windowRestore: \"fa-window-restore\",\n windows: \"fa-windows\",\n windsock: \"fa-windsock\",\n wineBottle: \"fa-wine-bottle\",\n wineGlass: \"fa-wine-glass\",\n wineGlassAlt: \"fa-wine-glass-alt\",\n wix: \"fa-wix\",\n wizardsOfTheCoast: \"fa-wizards-of-the-coast\",\n wolfPackBattalion: \"fa-wolf-pack-battalion\",\n wonSign: \"fa-won-sign\",\n wordpress: \"fa-wordpress\",\n wordpressSimple: \"fa-wordpress-simple\",\n wpbeginner: \"fa-wpbeginner\",\n wpexplorer: \"fa-wpexplorer\",\n wpforms: \"fa-wpforms\",\n wpressr: \"fa-wpressr\",\n wreath: \"fa-wreath\",\n wrench: \"fa-wrench\",\n xRay: \"fa-x-ray\",\n xbox: \"fa-xbox\",\n xing: \"fa-xing\",\n xingSquare: \"fa-xing-square\",\n yCombinator: \"fa-y-combinator\",\n yahoo: \"fa-yahoo\",\n yammer: \"fa-yammer\",\n yandex: \"fa-yandex\",\n yandexInternational: \"fa-yandex-international\",\n yarn: \"fa-yarn\",\n yelp: \"fa-yelp\",\n yenSign: \"fa-yen-sign\",\n yinYang: \"fa-yin-yang\",\n yoast: \"fa-yoast\",\n youtube: \"fa-youtube\",\n youtubeSquare: \"fa-youtube-square\",\n zhihu: \"fa-zhihu\",\n};\n","import React from 'react';\nexport function ListItem({ children, ...props }) {\n return (React.createElement(\"a\", Object.assign({ className: \"rp-flex rp-list-item\" }, props), children));\n}\nexport function ListItemLeftContent({ children }) {\n return React.createElement(\"div\", { className: \"rp-list-left\" }, children);\n}\nexport function ListItemCenterContent({ children, }) {\n return React.createElement(\"div\", { className: \"rp-list-center\" }, children);\n}\nexport function ListItemRightContent({ children, }) {\n return React.createElement(\"div\", { className: \"rp-list-right\" }, children);\n}\n","import React from \"react\";\n/**\n * Component: SiteFooterLogo\n *\n * Contains the logo content in the SiteFooter\n */\nexport function SiteFooterLogo({ children }) {\n return React.createElement(\"div\", { className: \"rp-site-footer-logo\" }, children);\n}\n/**\n * Component: SiteFooterCopy\n *\n * Contains the copyright content in the SiteFooter\n */\nexport function SiteFooterCopy({ children }) {\n return React.createElement(\"div\", { className: \"rp-site-footer-copy\" }, children);\n}\n/**\n * Component: SiteFooter\n *\n * The RAPID Platform site-wide footer. Contains two sub-components:\n *\n * - SiteFooterLogo,\n * - SiteFooterCopy\n */\nexport function SiteFooter({ children }) {\n return React.createElement(\"div\", { className: \"rp-site-footer\" }, children);\n}\n","import React from \"react\";\n/**\n * Component: MainBreadcrumbs\n *\n * Contains the breadcrumb content of the layout\n */\nexport function MainBreadcrumbs({ children }) {\n return React.createElement(\"div\", { className: \"rp-main-breadcrumbs\" }, children);\n}\n/**\n * Component: MainBody\n *\n * Contains the body content of the layout\n */\nexport function MainBody({ children }) {\n return React.createElement(\"div\", { className: \"rp-main-body\" }, children);\n}\n/**\n * Component: MainMenu\n *\n * Contains the main menu content of the layout\n */\nexport function MainMenu({ children }) {\n return React.createElement(\"div\", { className: \"rp-main-menu\" }, children);\n}\n/**\n * Component: MainSidebar\n *\n * Contains the main sidebar content of the layout\n */\nexport function MainSidebar({ children }) {\n return React.createElement(\"div\", { className: \"rp-main-sidebar\" }, children);\n}\n/**\n * Component: SiteMain\n *\n * The RAPID Platform site-wide main body area. Contains four sub-components:\n *\n * - MainBreadcrumbs,\n * - MainBody,\n * - MainMenu,\n * - MainSidebar\n */\nexport function SiteMain({ children }) {\n return React.createElement(\"div\", { className: \"rp-site-main\" }, children);\n}\n","import React from 'react';\n/**\n * An animated spinner that is useful for showing user feedback when they are\n * required to wait for something to complete.\n */\nexport function Spinner({ hidden, size }) {\n if (hidden) {\n return null;\n }\n let iconSize = 'fa-2x';\n switch (size) {\n case 1:\n iconSize = '';\n break;\n case 3:\n iconSize = 'fa-3x';\n case 5:\n iconSize = 'fa-5x';\n break;\n case 7:\n iconSize = 'fa-7x';\n break;\n case 10:\n iconSize = 'fa-10x';\n break;\n case 'XS':\n iconSize = 'fa-xs';\n break;\n case 'SM':\n iconSize = 'fa-sm';\n break;\n case 'LG':\n iconSize = 'fa-lg';\n case 2:\n default:\n iconSize = 'fa-2x';\n break;\n }\n return React.createElement(\"i\", { className: `fal ${iconSize} fa-spin fa-fan` });\n}\n","import React from \"react\";\nexport default class TextField extends React.Component {\n constructor(props) {\n super(props);\n this.onValueChange = (event) => {\n const value = event.currentTarget.value.slice(0, this.props.maxLength);\n const newLength = value.length;\n this.setState((oldState) => {\n let newState = { ...oldState };\n newState.currentLength = newLength;\n if (!this.props.defaultValue) {\n this.props.onChange && this.props.onChange(value, event);\n }\n else {\n newState.defaultValue = value;\n }\n return newState;\n });\n };\n const value = props.defaultValue || props.value || \"\";\n this.state = {\n currentLength: value.length,\n defaultValue: value,\n };\n }\n render() {\n const { className, description, label, required, maxLength, value, } = this.props;\n const { currentLength, defaultValue } = this.state;\n return (React.createElement(\"label\", { className: (!!className ? className : \"\") + \" rp-TextField\" },\n React.createElement(\"div\", { className: `rp-TextField__label rp-text-secondary ${required ? \"required\" : \"\"}` }, label),\n React.createElement(\"input\", { ref: this.props.ref, value: value || defaultValue, required: required, className: \"rp-input\", type: \"text\", onChange: this.onValueChange }),\n React.createElement(\"div\", { className: \"rp-TextField__description rp-text-meta\" },\n React.createElement(\"div\", null, description),\n maxLength && (React.createElement(\"div\", { className: \"rp-TextField__text-counter\" },\n React.createElement(\"span\", null, currentLength),\n React.createElement(\"span\", null, \"/\"),\n React.createElement(\"span\", null, maxLength))))));\n }\n}\n","import produce from 'immer';\nimport { useCallback, useState } from 'react';\n/**\n * `useState` that supports immer producers.\n */\nexport function useImmer(initialValue) {\n const [val, updateValue] = useState(initialValue);\n return [\n val,\n useCallback(updater => {\n let nextState;\n if (typeof updater === 'function')\n nextState = produce(updater);\n else\n nextState = updater;\n updateValue(nextState);\n return nextState;\n }, []),\n ];\n}\n","import React, { useContext, useEffect, useMemo } from 'react';\nimport { safeJsonParse } from '../safe-json-parse';\nimport { useImmer } from '../use-immer';\nimport { useLocalStorage } from '../use-local-storage-state';\nconst appContext = React.createContext(null);\nconst AppProvider = appContext.Provider;\nappContext.displayName = 'RAPID Application Context';\nexport function ApplicationContext({ displayName, clientId, children, namespace, tenant, site, environment, copyright, }) {\n const connections = useMemo(() => safeJsonParse(localStorage.getItem(`${namespace}::connections`), []), [namespace]);\n const [appData, setAppData] = useImmer({\n clientId,\n displayName,\n namespace,\n copyright,\n connections,\n tenant,\n site,\n env: environment,\n environments: {},\n });\n useLocalStorage(`${namespace}::connections`, appData.connections, [\n appData.connections,\n ]);\n useEffect(function componentDidMountEffect() {\n fetch('https://cdn.rapidplatform.com/.well-known/environments.json')\n .then(res => res.json())\n .then(environments => {\n setAppData(draft => {\n draft.environments = environments;\n });\n });\n }, []);\n return (React.createElement(React.Fragment, null, !!Object.keys(appData.environments).length && (React.createElement(AppProvider, { value: [appData, setAppData] }, children))));\n}\n/**\n * Returns the currently running RAPID Application's context.\n *\n * @hook\n * @category RAPID Application\n */\nexport function useRapidApplication() {\n const [app, updateApp] = useContext(appContext);\n return [app, updateApp];\n}\n","import { useEffect, useState } from \"react\";\n/**\n *\n * React's useState, but persisted in local storage by the specified key.\n *\n * @typeparam T T is any JSON-serializable type\n *\n * @IMPORTANT state must be JSON serializable.\n *\n * @example\n * ```typescript\n * const [accountId, setAccountId] = useLocalStorageState(\"my::namespace::account_key\");\n *\n * useEffect(function componentDidMountEffect() {\n * signIn().then(accountId => {\n * // accountId gets persisted in local storage under the \"my::namespace::account_key\"\n * // key name.\n * setAccountId(accountId);\n * });\n * }, []);\n * ```\n *\n * @returns A tuple of the state, and an action for modifying the state.\n * @category General Hooks\n */\nexport function useLocalStorageState(key) {\n const [state, setState] = useState(JSON.parse(localStorage.getItem(key)));\n return [state, function localStorageWrapper(value) {\n localStorage.setItem(key, JSON.stringify(value));\n setState(value);\n }];\n}\nexport function useLocalStorage(key, value, deps) {\n useEffect(function localStorageChangedEffect() {\n localStorage.setItem(key, JSON.stringify(value));\n }, deps);\n}\n","export function safeJsonParse(json, defaultValue) {\n var _a;\n try {\n return (_a = JSON.parse(json)) !== null && _a !== void 0 ? _a : defaultValue;\n }\n catch {\n return defaultValue;\n }\n}\n","import { useMemo } from 'react';\nimport { useRapidApplication } from './rapid-application/index';\nexport default function useCurrentConnections() {\n const [app] = useRapidApplication();\n const { tenant, site, env } = app;\n const connections = useMemo(() => {\n var _a, _b;\n return (_b = (_a = app.connections) === null || _a === void 0 ? void 0 : _a.filter(i => {\n var _a, _b, _c;\n return ((_a = i.tenant) === null || _a === void 0 ? void 0 : _a.localeCompare(tenant)) === 0 &&\n ((_b = i.site) === null || _b === void 0 ? void 0 : _b.localeCompare(site)) === 0 &&\n ((_c = i.env) === null || _c === void 0 ? void 0 : _c.localeCompare(env)) === 0;\n })) !== null && _b !== void 0 ? _b : [];\n }, [tenant, site, env]);\n return connections;\n}\n","import { useMemo } from 'react';\nimport { useRapidApplication } from './rapid-application/index';\nimport { groupBy } from './utils/group-by';\n/**\n * Uses a list of RAPID platform environments.\n * @hook\n * @category General Hooks\n */\nexport function useEnvironments() {\n const [{ environments }] = useRapidApplication();\n const envGroups = useMemo(() => groupBy(Object.entries(environments).map(([key, env]) => ({ key, ...env })), 'category'), [environments]);\n return [environments, envGroups];\n}\nexport function useCurrentEnvironment() {\n const [environments] = useEnvironments();\n const [app] = useRapidApplication();\n const env = {\n ...environments,\n local: {\n name: 'Minilith Local Development',\n location: 'Australia',\n api_url: `${window.location.origin}/api`,\n category: 'Dev',\n wf_url: 'http://api-test.rapidplatform.com/workflow',\n },\n };\n return env === null || env === void 0 ? void 0 : env[app.env];\n}\n","/**\n * Groups an array of items by an iteratee\n *\n * @example\n * ```ts\n *\n * ```\n */\nexport function groupBy(ary, groupFn) {\n return ary.reduce((prev, curr) => {\n const groupingKey = typeof groupFn === 'function'\n ? groupFn(curr)\n : curr[groupFn];\n if (!prev.hasOwnProperty(groupingKey)) {\n prev[groupingKey] = [];\n }\n prev[groupingKey].push(curr);\n return prev;\n }, {});\n}\n","import React from 'react';\nimport { useEnvironments } from '../use-environments';\n/**\n * Select element that contains a list of RAPID Platform environments.\n *\n * @category UI\n * @component\n */\nexport function EnvironmentPicker({ value, onChange, }) {\n const [, envGroups] = useEnvironments();\n function onChangeInternal(ev) {\n onChange === null || onChange === void 0 ? void 0 : onChange(ev.target.value);\n }\n return (React.createElement(\"select\", { className: \"rp-input rp-select\", id: \"environment\", placeholder: \"Select an environment\", onChange: onChangeInternal, value: value }, Object.entries(envGroups).map(([key, envs]) => (React.createElement(\"optgroup\", { key: key, label: key }, envs.map(env => (React.createElement(\"option\", { key: env.key, value: env.key }, env.name))))))));\n}\n","import { useCallback, useState } from 'react';\n/**\n *\n * @hook\n * @category General Hooks\n */\nexport function useInputState(initialValue) {\n const [state, setState] = useState(initialValue);\n return [\n state,\n useCallback((ev) => {\n // @ts-expect-error\n setState(ev.target.value);\n }, []),\n setState\n ];\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useParams } from 'react-router';\nimport { Button } from '../../ui/button';\nimport { EnvironmentPicker } from '../../ui/environment-picker';\nimport { useInputState } from '../../use-input-state';\nexport default function NewConnection({ onNewConnection, }) {\n const params = useParams();\n const [tenant, onTenantChange] = useInputState(params.tenant);\n const [site, onSiteChange] = useInputState(params.site);\n const [env, setEnv] = useState(\"prod\");\n const ref = useRef();\n function onSubmit(ev) {\n ev.preventDefault();\n onNewConnection === null || onNewConnection === void 0 ? void 0 : onNewConnection(env, tenant, site);\n }\n function onAddClicked(ev) {\n ev.preventDefault();\n onNewConnection === null || onNewConnection === void 0 ? void 0 : onNewConnection(env, tenant, site);\n }\n useEffect(function componentDidMount() {\n var _a;\n (_a = ref.current) === null || _a === void 0 ? void 0 : _a.focus();\n }, []);\n return (React.createElement(\"form\", { className: \"rp-login-panel-add-new rp-flex rp-flex-column rp-flex-middle\", onSubmit: onSubmit },\n !params.tenant && (React.createElement(\"input\", { ref: ref, value: tenant !== null && tenant !== void 0 ? tenant : '', onChange: onTenantChange, type: \"text\", className: \"rp-input rp-login-input\", placeholder: \"Tenant\", required: true })),\n !params.site && (React.createElement(\"input\", { value: site !== null && site !== void 0 ? site : '', onChange: onSiteChange, type: \"text\", className: \"rp-input rp-login-input rp-margin-small-top\", placeholder: \"Site\", required: true })),\n React.createElement(EnvironmentPicker, { value: env, onChange: setEnv }),\n React.createElement(Button, { buttonSize: \"small\", buttonStyle: \"primary\", fullWidth: true, onClick: onAddClicked, className: \"rp-login-button\", isDisabled: !tenant || !site }, \"Add\")));\n}\n","import React, { useEffect, useState } from 'react';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\nimport { useMsal } from '../../authentication';\nimport { AppLayout, Button, Card, CardBody, CardFooter, CardHeader, Heading, Icon, IconButton, ListItem, ListItemCenterContent, ListItemLeftContent, ListItemRightContent } from '../../ui/index';\nimport { SiteFooter, SiteFooterCopy } from '../../ui/site-footer';\nimport { SiteMain } from '../../ui/site-main';\nimport useCurrentConnections from '../../use-current-connection';\nimport { useRapidApplication } from '../application-context';\nimport NewConnection from './new-connection';\nexport function AddConnectionCard() {\n var _a, _b, _c, _d, _e;\n const [app, updateApp] = useRapidApplication();\n const conns = useCurrentConnections();\n const ua = useMsal();\n const history = useHistory();\n const match = useRouteMatch();\n const [displayAddNewSite, setDisplayAddNewSite] = useState(false);\n useEffect(function componentDidMountEffect() {\n if (conns.length === 1 && conns[0].env) {\n const conn = conns[0];\n if (conn.env) {\n openSite(conn);\n }\n else {\n setDisplayAddNewSite(true);\n }\n }\n else if (!conns.length) {\n setDisplayAddNewSite(true);\n }\n }, []);\n const toggleDisplayAddNewSite = () => {\n setDisplayAddNewSite(!displayAddNewSite);\n };\n function openSite(site) {\n history.push(`/_${site.env}/${site.tenant}/${site.site}`);\n }\n const onSiteClicked = (site) => (ev) => {\n ev.preventDefault();\n openSite(site);\n };\n function onNewConnection(env, tenant, site) {\n ua.loginPopup({\n authority: `https://login.microsoftonline.com/${tenant}.onmicrosoft.com`,\n scopes: [],\n })\n .then(account => {\n const newSite = {\n key: `${tenant}-${site}`,\n tenant: tenant === null || tenant === void 0 ? void 0 : tenant.toLowerCase(),\n site: site === null || site === void 0 ? void 0 : site.toLowerCase(),\n lastVisit: new Date().toISOString(),\n env,\n upn: account.account.username,\n };\n updateApp(d => {\n d.connections.push(newSite);\n });\n openSite(newSite);\n })\n .catch(err => { });\n }\n function onClearAllSitesClicked() {\n updateApp(d => {\n d.connections = [];\n });\n }\n const onClearSiteClicked = (id) => (ev) => {\n ev.stopPropagation();\n updateApp(d => {\n d.connections = d.connections.filter(i => i.key !== id);\n });\n };\n return (React.createElement(AppLayout, { templateName: \"solidbackground\" },\n React.createElement(SiteMain, null,\n React.createElement(Card, { className: \"rp-login-panel rp-width-1-1 rp-branding-boxshadow\" },\n React.createElement(CardHeader, null,\n React.createElement(\"div\", { className: \"rp-flex rp-flex-middle rp-flex-column\" },\n React.createElement(Heading, null, app.displayName),\n !displayAddNewSite && !!((_a = app.connections) === null || _a === void 0 ? void 0 : _a.length) && (React.createElement(\"div\", null, \"Pick from the list below\")),\n !!match.params.tenant &&\n !!match.params.site &&\n displayAddNewSite && (React.createElement(\"div\", null, \"Add a tenant and site name to log in\")))),\n React.createElement(CardBody, null,\n !displayAddNewSite && (React.createElement(\"div\", { className: \"rp-login-panel-recent-sites rp-flex rp-flex-column\" },\n React.createElement(\"div\", { className: \"rp-login-panel-recent-sites-scroll\" }, (_b = app.connections) === null || _b === void 0 ? void 0 : _b.map(details => (React.createElement(ListItem, { key: `${details.tenant}-${details.site}`, onClick: onSiteClicked(details) },\n React.createElement(ListItemLeftContent, null,\n React.createElement(\"div\", { className: \"rp-icon-border rp-flex rp-flex-middle rp-flex-center\" },\n React.createElement(Icon, { iconSize: \"2x\" }))),\n React.createElement(ListItemCenterContent, null,\n React.createElement(\"div\", { className: \"rp-flex rp-flex-column rp-list-center\" },\n React.createElement(\"div\", { className: \"rp-list-item-title\" }, details.site),\n React.createElement(\"div\", { className: \"rp-list-item-subtitle\" }, details.tenant))),\n React.createElement(ListItemRightContent, null,\n React.createElement(\"div\", { className: \"rp-flex rp-flex-middle rp-flex-center rp-right-list-inner\" },\n React.createElement(IconButton, { className: \"rp-remove-site-icon rp-flex rp-flex-middle rp-flex-center\", onClick: onClearSiteClicked(details.key), iconName: \"fa-trash-alt\", iconStyle: \"light\", buttonStyle: \"text\" }))))))),\n React.createElement(Button, { buttonStyle: \"primary\", buttonSize: \"small\", className: \"rp-add-site-button\", fullWidth: true, onClick: toggleDisplayAddNewSite }, \"Add\"),\n !!((_c = app.connections) === null || _c === void 0 ? void 0 : _c.length) && (React.createElement(IconButton, { margin: \"small-top\", buttonSize: \"small\", buttonStyle: \"text\", iconName: \"fa-trash-alt\", iconStyle: \"light\", onClick: onClearAllSitesClicked, fullWidth: true }, \"Clear all\")))),\n displayAddNewSite && (React.createElement(React.Fragment, null,\n React.createElement(NewConnection, { onNewConnection: onNewConnection }),\n !!((_d = app.connections) === null || _d === void 0 ? void 0 : _d.length) && (React.createElement(IconButton, { buttonSize: \"small\", margin: \"small-top\", buttonStyle: \"text\", fullWidth: true, onClick: toggleDisplayAddNewSite, iconName: \"fa-chevron-circle-left\" }, \"View saved sites\"))))),\n React.createElement(CardFooter, null,\n React.createElement(\"div\", { className: \"rp-login-panel-footer rp-card-footer rp-flex rp-flex-center\" },\n React.createElement(SiteFooter, null,\n React.createElement(SiteFooterCopy, null, (_e = app.copyright) !== null && _e !== void 0 ? _e : (React.createElement(React.Fragment, null, \"Copyright \\u00A9 2020 RAPID PLATFORM PROJECTS PTY LTD\"))))))))));\n}\n","/**\n * Encodes an object's keys as a URL query string.\n *\n * @example\n * ```ts\n * const o = {\n * test: 'yes',\n * value: 3\n * };\n *\n * encodeQueryString(o); // returns \"test=yes&value=3\"\n * ```\n *\n * @returns an encoded query-string\n * @category Utilities\n */\nexport function encodeQueryString(o) {\n return Object.entries(o)\n .map(([k, v]) => !!v && `${k}=${v}`)\n .filter(i => !!i)\n .join('&');\n}\nexport function decodeQueryString(o) {\n return o.replace(/^\\?*/, '').split('&').reduce((prev, curr) => {\n const [key, val] = curr.split(\"=\").map(decodeURIComponent);\n prev[key] = val;\n return prev;\n }, {});\n}\n","import { encodeQueryString } from './query-string';\nexport class RequestError extends Error {\n constructor(response, message = `Request failed with status code ${response.status}`) {\n super(message);\n this.statusCode = response.status;\n this.statusText = response.statusText;\n this.isJson = /json/.test(response.headers.get('content-type'));\n this.response = response;\n }\n async getData() {\n if (this.isJson) {\n return await this.response.json();\n }\n else {\n return await this.response.text();\n }\n }\n}\nexport function isRequestError(error) {\n return error instanceof RequestError;\n}\nexport function isBlob(input) {\n if (!input) {\n return false;\n }\n return input instanceof Blob || Object.prototype.toString.call(input) === '[object blob]';\n}\nexport function isFile(input) {\n if (!input) {\n return false;\n }\n return input instanceof File || Object.prototype.toString.call(input) === '[object File]';\n}\n/**\n * Creates a recursive `window.fetch` REST client that treats each property access as a\n * sub-resource that also has a REST client with the appropriate URL path appended.\n *\n * @typeparam T T is any TypeScript interface that describes a RESTful {@link APIEndpoint}\n *\n * @example\n * ```ts\n * interface TwitterEndpoint extends APIEndpoint {\n * // note: TweetsEndpoint and StatusesEndpoint are omitted for brevity\n * tweets: APIEndpoint;\n * statuses: APIEndpoint;\n *\n * // untyped API endpoints are also supported\n * retweet: APIEndpoint;\n * }\n *\n * const client = proxyRestClient();\n *\n * // get tweets\n * await client.tweets.get();\n *\n * // lookup status updates\n * await client.statuses.lookup.get();\n *\n * // retweet by ID\n * const tweetId = (...);\n * await client.retweet[tweetId].post();\n * ```\n *\n * @category API\n */\nexport function proxyRestClient(resourceUrl, fetch = window.fetch) {\n return new Proxy({\n resourceUrl,\n }, {\n get(target, prop) {\n var _a;\n const match = prop.match(/^(get|head|post|put|delete|connect|options|trace|patch)(String|Json|Blob)?/i);\n if (match === null || match === void 0 ? void 0 : match.length) {\n return async function apiRequest(query, body, contentType = \"application/json\") {\n const queryStr = query && encodeQueryString(query);\n const url = new URL(resourceUrl);\n if (queryStr) {\n url.search = '?' + queryStr;\n }\n if (isFile(body) || isBlob(body)) {\n contentType = body.type || 'application/octet-stream';\n }\n else {\n body = typeof body === 'string' ? body : JSON.stringify(body);\n }\n const resp = await fetch(url.toString(), {\n method: match[1].toUpperCase(),\n body,\n headers: {\n \"content-type\": contentType,\n }\n });\n if (!resp.ok) {\n throw new RequestError(resp);\n }\n switch (match[2]) {\n case 'Blob':\n return await resp.blob();\n case 'Json':\n return await resp.json();\n case 'String':\n return await resp.text();\n default:\n return resp;\n }\n };\n }\n if (typeof target[prop] === 'function') {\n return target[prop];\n }\n return proxyRestClient(`${((_a = target.resourceUrl) !== null && _a !== void 0 ? _a : '').replace(/\\/+$/g, '')}/${prop.replace(/\\/+$/g, '')}`, fetch);\n },\n });\n}\n","import { useRapidAuthenticatedFetch } from './authentication';\nimport { proxyRestClient } from './proxy-rest-client';\nimport { useRapidApplication } from './rapid-application/application-context';\nimport { useCurrentEnvironment } from './use-environments';\nexport function useCurrentSiteEndpoint() {\n const [app] = useRapidApplication();\n const environment = useCurrentEnvironment();\n const fetch = useRapidAuthenticatedFetch();\n const client = proxyRestClient(environment.api_url, fetch)[app.tenant][app.site];\n return client;\n}\n","import { PublicClientApplication, InteractionRequiredAuthError, } from '@azure/msal-browser/dist/index';\nimport React, { useContext, useMemo } from 'react';\nimport { useRapidApplication, } from './rapid-application/index';\nimport { useLocalStorageState } from './use-local-storage-state';\nconst context = React.createContext(null);\n/**\n * Provides an authentication context that allows authentication and account hooks to be\n * used anywhere underneath the context.\n *\n * > **Note:**\n * > `authority` is either `https://login.microsoftonline.com/.onmicrosoft.com`\n * > for multi-tenant scenarios or `https://login.microsoftonline.com/common` for\n * > single-tenant scenarios.\n *\n * @example\n * ```ts\n * function App() {\n * const [tenant] = useState(\"example-tenant\");\n * return (\n * \n * {...}\n * \n * );\n * }\n * ```\n *\n * @category Authentication\n */\nexport function AuthenticationContext({ clientId, authority, children, }) {\n const msal = useMemo(() => new PublicClientApplication({\n auth: {\n clientId,\n authority,\n redirectUri: window.location.origin,\n },\n cache: {\n storeAuthStateInCookie: true,\n cacheLocation: 'localStorage',\n },\n }), [clientId, authority]);\n return React.createElement(context.Provider, { value: msal }, children);\n}\n/**\n * {@link AuthenticationContext} but takes its authority from the tenant information\n * supplied on the URL path.\n *\n * @category Authentication\n * @component\n * @internal\n */\nexport function ApplicationAuthenticationContext({ children, }) {\n const [app] = useRapidApplication();\n const authority = `https://login.microsoftonline.com/${app.tenant}.onmicrosoft.com`;\n return (React.createElement(AuthenticationContext, { clientId: app.clientId, authority: authority }, children));\n}\n/**\n * @category Authentication\n */\nexport function useMsal() {\n return useContext(context);\n}\n/**\n * @category Authentication\n */\nexport function useAccount(tenant, site) {\n const context = useMsal();\n const [accountId, setAccountId] = useLocalStorageState(`account::${tenant}::${site}`);\n const realAccount = useMemo(() => context.getAccountByHomeId(accountId), [tenant, site, context, accountId]);\n return [realAccount, setAccountId];\n}\n/**\n * Returns a window.fetch client primed with an authentication token\n * for the specified scopes.\n * @category Authentication\n */\nexport function useAuthenticatedFetch(authority, ...scopes) {\n const context = useMsal();\n return async function fetch(input, init = {}) {\n var _a;\n const token = await context.acquireTokenSilent({\n authority,\n scopes,\n })\n .catch(e => {\n if (e instanceof InteractionRequiredAuthError) {\n return context.acquireTokenPopup({\n authority,\n scopes,\n });\n }\n });\n return await window.fetch(input, {\n ...init,\n headers: {\n ...((_a = init.headers) !== null && _a !== void 0 ? _a : {}),\n authorization: `Bearer ${token.accessToken}`,\n },\n });\n };\n}\n/**\n * @category Authentication\n */\nexport function useRapidAuthenticatedFetch() {\n const [app] = useRapidApplication();\n const fetch = useAuthenticatedFetch(`https://login.microsoftonline.com/${app.tenant}.onmicrosoft.com`, `cd5db0ec-1419-4ae6-9434-21cfb83fc42d/.default`);\n return fetch;\n}\n/**\n * @category Authentication\n */\nexport function useGraphAuthenticatedFetch(...scopes) {\n const [app] = useRapidApplication();\n const fetch = useAuthenticatedFetch(`https://login.microsoftonline.com/${app.tenant}.onmicrosoft.com`, ...scopes);\n return fetch;\n}\n","import { useRapidApplication } from './rapid-application';\n/**\n * Uses the current site object out of the RAPID application context.\n *\n * @requires ManagedApplicationContext\n * @hook\n */\nexport function useCurrentSite() {\n const [app, updateApp] = useRapidApplication();\n return [\n app.currentSite,\n function updateCurrentSite(d) {\n updateApp(draft => {\n draft.currentSite = d(draft.currentSite);\n });\n },\n ];\n}\n","import { useRapidApplication } from './rapid-application';\nexport function useList(list) {\n var _a;\n const [app, updateApp] = useRapidApplication();\n if (!list) {\n throw new Error(`useList: Expected string or IList for list parameter, but got ${typeof list}`);\n }\n const innerList = typeof list !== 'string'\n ? list\n : (_a = app.currentSite) === null || _a === void 0 ? void 0 : _a.Lists.find(l => l.ListName.localeCompare(list) === 0);\n return [\n innerList,\n function updateList(d) {\n updateApp(draft => {\n var _a;\n const innerList = (_a = draft.currentSite) === null || _a === void 0 ? void 0 : _a.Lists.find(l => l.ListName.localeCompare(typeof list === 'string' ? list : list.ListName) === 0);\n d(innerList);\n });\n },\n ];\n}\nexport function useField(list, field) {\n const [innerList, updateList] = useList(list);\n if (!field) {\n throw new Error(`useField: Expected string or IField for field parameter, but got ${typeof list}`);\n }\n const innerField = typeof field !== 'string'\n ? field\n : innerList.Fields.find(i => i.ColumnName.localeCompare(field) === 0);\n return [\n innerField,\n function updateField(d) {\n updateList(draft => {\n const innerField = draft.Fields.find(f => f.ColumnName.localeCompare(innerField.ColumnName) === 0);\n d(innerField);\n });\n },\n ];\n}\nexport function useChoices(list, field) {\n var _a;\n const [innerField] = useField(list, field);\n if (innerField.FieldType !== 'Choice') {\n throw new Error(`useField: field ${innerField.ColumnName} on ${typeof list === 'string' ? list : list.ListName} is not a choice.`);\n }\n const choices = (_a = innerField.Settings) === null || _a === void 0 ? void 0 : _a.Choices.map(c => typeof c === 'string' ? { Text: c, Value: c } : c);\n return [choices];\n}\n","/** Used to compose unicode character classes. */\nconst rsAstralRange = '\\\\ud800-\\\\udfff';\nconst rsComboMarksRange = '\\\\u0300-\\\\u036f';\nconst reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f';\nconst rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff';\nconst rsComboMarksExtendedRange = '\\\\u1ab0-\\\\u1aff';\nconst rsComboMarksSupplementRange = '\\\\u1dc0-\\\\u1dff';\nconst rsComboRange = rsComboMarksRange +\n reComboHalfMarksRange +\n rsComboSymbolsRange +\n rsComboMarksExtendedRange +\n rsComboMarksSupplementRange;\nconst rsDingbatRange = '\\\\u2700-\\\\u27bf';\nconst rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff';\nconst rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7';\nconst rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf';\nconst rsPunctuationRange = '\\\\u2000-\\\\u206f';\nconst rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000';\nconst rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde';\nconst rsVarRange = '\\\\ufe0e\\\\ufe0f';\nconst rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n/** Used to compose unicode capture groups. */\nconst rsApos = \"['\\u2019]\";\nconst rsBreak = `[${rsBreakRange}]`;\nconst rsCombo = `[${rsComboRange}]`;\nconst rsDigit = '\\\\d';\nconst rsDingbat = `[${rsDingbatRange}]`;\nconst rsLower = `[${rsLowerRange}]`;\nconst rsMisc = `[^${rsAstralRange}${rsBreakRange + rsDigit + rsDingbatRange + rsLowerRange + rsUpperRange}]`;\nconst rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]';\nconst rsModifier = `(?:${rsCombo}|${rsFitz})`;\nconst rsNonAstral = `[^${rsAstralRange}]`;\nconst rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}';\nconst rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]';\nconst rsUpper = `[${rsUpperRange}]`;\nconst rsZWJ = '\\\\u200d';\n/** Used to compose unicode regexes. */\nconst rsMiscLower = `(?:${rsLower}|${rsMisc})`;\nconst rsMiscUpper = `(?:${rsUpper}|${rsMisc})`;\nconst rsOptContrLower = `(?:${rsApos}(?:d|ll|m|re|s|t|ve))?`;\nconst rsOptContrUpper = `(?:${rsApos}(?:D|LL|M|RE|S|T|VE))?`;\nconst reOptMod = `${rsModifier}?`;\nconst rsOptVar = `[${rsVarRange}]?`;\nconst rsOptJoin = `(?:${rsZWJ}(?:${[rsNonAstral, rsRegional, rsSurrPair].join('|')})${rsOptVar + reOptMod})*`;\nconst rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])';\nconst rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])';\nconst rsSeq = rsOptVar + reOptMod + rsOptJoin;\nconst rsEmoji = `(?:${[rsDingbat, rsRegional, rsSurrPair].join('|')})${rsSeq}`;\nconst reUnicodeWords = RegExp([\n `${rsUpper}?${rsLower}+${rsOptContrLower}(?=${[rsBreak, rsUpper, '$'].join('|')})`,\n `${rsMiscUpper}+${rsOptContrUpper}(?=${[\n rsBreak,\n rsUpper + rsMiscLower,\n '$',\n ].join('|')})`,\n `${rsUpper}?${rsMiscLower}+${rsOptContrLower}`,\n `${rsUpper}+${rsOptContrUpper}`,\n rsOrdUpper,\n rsOrdLower,\n `${rsDigit}+`,\n rsEmoji,\n].join('|'), 'g');\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWords);\n}\nconst hasUnicodeWord = RegExp.prototype.test.bind(/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/);\n/** Used to match words composed of alphanumeric characters. */\nconst reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\nfunction asciiWords(string) {\n return string.match(reAsciiWord);\n}\n/**\n * Splits `string` into an array of its words.\n *\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * words('fred, barney, & pebbles')\n * // => ['fred', 'barney', 'pebbles']\n *\n * words('fred, barney, & pebbles', /[^, ]+/g)\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern) {\n if (pattern === undefined) {\n const result = hasUnicodeWord(string)\n ? unicodeWords(string)\n : asciiWords(string);\n return result || [];\n }\n return string.match(pattern) || [];\n}\nexport function kebabCase(str) {\n var _a;\n return words(((_a = str === null || str === void 0 ? void 0 : str.toString()) !== null && _a !== void 0 ? _a : '')\n .replace(/['\\u2019]/g, ''))\n .reduce((result, word, index) => result + (index ? '-' : '') + word.toLowerCase(), '');\n}\n","import { useLayoutEffect, useMemo } from 'react';\nimport { useCurrentSite } from './use-current-site';\nimport { useField, useList } from './use-list';\nimport { kebabCase } from './utils/kebab-case';\nfunction* allChoiceFields(site) {\n var _a, _b;\n for (const list of site.Lists) {\n for (const field of list.Fields) {\n if (field.FieldType === 'Choice') {\n for (const choice of (_b = (_a = field.Settings) === null || _a === void 0 ? void 0 : _a.Choices) !== null && _b !== void 0 ? _b : []) {\n yield { list, field, choice };\n }\n }\n }\n }\n}\nfunction cssVariableName(list, field, choice) {\n return `${kebabCase(list.ListName)}--${kebabCase(field.ColumnName)}--${kebabCase(typeof choice === 'string' ? choice : choice.Text)}`;\n}\n/**\n * Used once on page load, Adds CSS class names for all choice fields\n * in the current site to a style tag in the header of the document.\n *\n * Enables access to the {@link useChoiceClassName} hook.\n *\n * @hook\n * @category RAPID Application\n */\nexport function useSiteCSSVariables() {\n const [site] = useCurrentSite();\n useLayoutEffect(function siteDidChangeEffect() {\n if (!site) {\n return;\n }\n const styleTag = document.createElement('style');\n styleTag.setAttribute('data-rapid-generated-style', 'true');\n const styles = Array.from(allChoiceFields(site))\n .map(({ field, list, choice }) => {\n var _a;\n return `\n.${cssVariableName(list, field, choice)} {\n --choice-colour: ${typeof choice !== 'string' ? (_a = choice.AccentColour) !== null && _a !== void 0 ? _a : 'inherit' : 'inherit'};\n }`;\n })\n .join('');\n styleTag.appendChild(document.createTextNode(styles));\n document.head.appendChild(styleTag);\n return function siteDidUnmountEffect() {\n document.head.removeChild(styleTag);\n };\n }, [site]);\n}\n/**\n * Returns the CSS class name that contains colour information generated\n * from the site file for the provided choice field.\n *\n * Descendent elements can use `--choice-colour` css variable value for\n * correct colouring of a choice.\n *\n * @param list The list the choice field is in\n * @param field The field reference of the choice field\n * @param choice The choice field\n *\n * @hook\n *\n * @category RAPID Application\n *\n * @returns A css class name to be put on parent elements to be coloured.\n */\nexport function useChoiceClassName(list, field, choice) {\n const [innerList] = useList(list);\n const [innerField] = useField(list, field);\n return useMemo(() => choice ? `${cssVariableName(innerList, innerField, choice)}` : '', [list, field, choice]);\n}\n","import React, { useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { useMsal } from '../authentication';\nimport { AppLayout, Button, Card, CardBody, Heading, SiteMain, Spinner, } from '../ui/index';\nimport useCurrentConnections from '../use-current-connection';\nimport { useCurrentSiteEndpoint } from '../use-current-site-endpoint';\nimport { useSiteCSSVariables } from '../use-site-css-variables';\nimport { useRapidApplication } from './application-context';\nexport function MultiSiteContext({ children }) {\n const [app, updateApp] = useRapidApplication();\n const params = useParams();\n useEffect(function paramsDidChangeEffect() {\n updateApp(d => {\n d.tenant = params.tenant;\n d.site = params.site;\n d.env = params.env;\n });\n }, [params.env, params.tenant, params.site]);\n return !!app.env && !!app.tenant && !!app.site ? (React.createElement(SiteContext, null, children)) : null;\n}\nexport function SiteContext({ children }) {\n const ua = useMsal();\n const [app, updateApp] = useRapidApplication();\n const conns = useCurrentConnections();\n const [signInRequired, setSignInRequired] = useState(!(conns === null || conns === void 0 ? void 0 : conns.length));\n const siteEp = useCurrentSiteEndpoint();\n useSiteCSSVariables();\n function onSignInClicked() {\n ua.loginPopup({\n authority: `https://login.microsoftonline.com/${app.tenant}.onmicrosoft.com`,\n scopes: [],\n })\n .then(account => {\n updateApp(d => {\n var _a, _b;\n d.connections.push({\n key: `${app.tenant}-${app.site}-${app.env}`,\n tenant: (_a = app.tenant) === null || _a === void 0 ? void 0 : _a.toLowerCase(),\n site: (_b = app.site) === null || _b === void 0 ? void 0 : _b.toLowerCase(),\n lastVisit: new Date().toISOString(),\n env: app.env,\n upn: account.account.username,\n });\n });\n ua.setActiveAccount(account.account);\n setSignInRequired(false);\n })\n .catch(err => { });\n }\n useEffect(function componentDidMountEffect() {\n if (conns.length) {\n ua.setActiveAccount(ua.getAccountByUsername(conns[0].upn));\n }\n if (!signInRequired) {\n let principalId = null;\n let principalUpn = null;\n let principalDisplayName = null;\n siteEp\n .get()\n .then(resp => {\n principalId = resp.headers.get('x-principal-id');\n principalUpn = resp.headers.get('x-principal-upn');\n principalDisplayName = resp.headers.get('x-principal-display-name');\n return resp.json();\n })\n .then(site => {\n updateApp(d => {\n d.currentPrincipalId = +principalId;\n d.currentPrincipalDisplayName = principalDisplayName;\n d.currentPrincipalUpn = principalUpn;\n d.currentSite = site;\n });\n })\n .catch(err => {\n setSignInRequired(true);\n });\n }\n }, [signInRequired]);\n return (React.createElement(React.Fragment, null, !app.currentSite ? (React.createElement(AppLayout, { templateName: \"solidbackground\" },\n React.createElement(SiteMain, null,\n React.createElement(Card, null,\n React.createElement(CardBody, null,\n React.createElement(\"div\", { className: \"rp-flex rp-flex-middle rp-flex-column\" },\n React.createElement(Heading, null, app.displayName),\n signInRequired ? (React.createElement(React.Fragment, null,\n React.createElement(Button, { buttonStyle: \"link\", onClick: onSignInClicked }, \"Sign in\"))) : (React.createElement(React.Fragment, null,\n React.createElement(Spinner, { size: 2 }),\n React.createElement(\"small\", null, \"Signing you in...\"))))))))) : (children)));\n}\n","import React from 'react';\nimport { Redirect, Route, Switch } from 'react-router-dom';\nimport { ApplicationAuthenticationContext } from '../authentication';\nimport { ApplicationContext } from './application-context';\nimport { AddConnectionCard } from './login/add-connection-card';\nimport { MultiSiteContext, SiteContext } from './site-context';\n/**\n * Creates a multi-site RAPID Platform application.\n *\n * Multi-site RAPID Applications have routes, and enough of a user interface\n * to facilitate a user sign-in and management of connections to site databases.\n *\n * Child components under a RAPID application have access to the {@link useRapidApplication}\n * hook, the site file and all relevant authentication and application state.\n *\n * @Component\n * @category RAPID Application\n */\nexport function MultiSiteApplication({ clientId, displayName, children, className, namespace, loginExperience: OverriddenLoginExperience, }) {\n return (React.createElement(\"div\", { className: className },\n React.createElement(ApplicationContext, { displayName: displayName, clientId: clientId, namespace: namespace },\n React.createElement(ApplicationAuthenticationContext, null,\n React.createElement(Switch, null,\n React.createElement(Route, { path: \"/_:env/:tenant/:site\" },\n React.createElement(MultiSiteContext, null, children)),\n React.createElement(Redirect, { from: \"/:tenant/:site\", to: \"/_prod/:tenant/:site\" }),\n React.createElement(Route, { path: \"/\" }, OverriddenLoginExperience ? (React.createElement(OverriddenLoginExperience, null)) : (React.createElement(AddConnectionCard, null))))))));\n}\nexport function SingleSiteApplication({ children, className, displayName, clientId, namespace, tenant, site, env }) {\n return (React.createElement(\"div\", { className: className },\n React.createElement(ApplicationContext, { displayName: displayName, clientId: clientId, namespace: namespace, tenant: tenant, site: site, environment: env },\n React.createElement(ApplicationAuthenticationContext, null,\n React.createElement(SiteContext, null, children)))));\n}\n","export const percentTag = Symbol.for('percent');\nexport const blobUrlTag = Symbol.for('blob-url');\nexport const isUploadingTag = Symbol.for('is-uploading');\nexport const nameTag = Symbol.for('name');\nexport const blobTag = Symbol.for('blob');\nexport const iconTag = Symbol.for('icon');\nexport const driveItemTag = Symbol.for('graph-drive-item');\nexport const webUrlTag = Symbol.for('graph-web-url');\nexport const downloadUrlTag = Symbol.for('graph-download-url');\nexport const loadingTag = Symbol.for('loading');\n","import { EventEmitter } from 'events';\nconst CHUNK_SIZE = 163840 * 2 * 10;\nexport class UploadSession extends EventEmitter {\n constructor(client, driveId, driveItemId, filePath, data) {\n super();\n this._fetch = client;\n this.driveId = driveId;\n this.driveItemId = driveItemId;\n this.filePath = filePath;\n this.data = data;\n this.currentChunk = 0;\n }\n get size() {\n return this.data.size;\n }\n get chunks() {\n return Math.ceil(this.data.size / CHUNK_SIZE);\n }\n get chunkData() {\n return this.data.slice(this.currentChunk * CHUNK_SIZE, this.currentChunk * CHUNK_SIZE + CHUNK_SIZE);\n }\n get percent() {\n return Math.floor(((this.currentChunk + 1) / this.chunks) * 100);\n }\n get contentRange() {\n const start = this.currentChunk * CHUNK_SIZE;\n const end = start + this.chunkData.size;\n return `bytes ${start}-${end - 1}/${this.size}`;\n }\n async sendChunk() {\n if (!this.session) {\n this.session = await this._createUploadSession();\n this.emit('start', this.session);\n }\n try {\n await this._uploadChunk();\n }\n catch (e) {\n this.emit('error', e);\n }\n }\n async sendAllChunks() {\n while (this.currentChunk < this.chunks) {\n await this.sendChunk();\n }\n this.emit('end', this.driveItem);\n return this.driveItem;\n }\n async _uploadChunk() {\n var _a;\n if (!((_a = this.session) === null || _a === void 0 ? void 0 : _a.uploadUrl)) {\n throw new Error('UploadChunk called with no session or upload URL');\n }\n if (this.currentChunk >= this.chunks) {\n return;\n }\n const resp = await this._fetch(this.session.uploadUrl, {\n method: 'PUT',\n body: this.chunkData,\n headers: {\n 'Content-Range': this.contentRange,\n },\n });\n if (!resp.ok) {\n throw new Error(`Uploading chunk ${this.currentChunk} failed: ${resp.status}`);\n }\n if (resp.status === 200 || resp.status === 201) {\n const driveItem = await resp.json();\n this.percent === 100;\n this.emit('progress', this.percent);\n this.driveItem = driveItem;\n }\n this.currentChunk++;\n this.emit('progress', this.percent);\n }\n async cancel() {\n var _a;\n if (!((_a = this.session) === null || _a === void 0 ? void 0 : _a.uploadUrl)) {\n throw new Error('cancel called with no session or upload url');\n }\n const resp = await this._fetch(this.session.uploadUrl, {\n method: 'DELETE',\n });\n if (!resp.ok) {\n const errorText = await resp.text();\n throw new Error(`Deleting upload session failed: ${resp.status}: ${errorText}`);\n }\n this.session = void 0;\n }\n async _createUploadSession() {\n var _a, _b, _c;\n const filePath = this.filePath.replace(/^\\/+/g, '');\n const fileExt = (_c = (_b = ((_a = this.data.name) !== null && _a !== void 0 ? _a : 'unknown.jpeg').match(/(?.*)\\.(?.*)/)) === null || _b === void 0 ? void 0 : _b.groups) === null || _c === void 0 ? void 0 : _c.ext;\n let fullPath = filePath;\n if (!!fileExt) {\n fullPath = filePath + '.' + fileExt;\n }\n const response = await this._fetch(`https://graph.microsoft.com/v1.0/drives/${this.driveId}/items/${this.driveItemId}:/${fullPath}:/createUploadSession`, {\n method: 'POST',\n body: JSON.stringify({\n item: {\n '@microsoft.graph.conflictBehavior': 'replace',\n },\n }),\n });\n if (!response.ok) {\n const errorText = await response.text();\n const error = new Error(`Cannot upload ${this.filePath}: createUploadSession response did not indicate success: ${response.status}: ${errorText}`);\n this.emit('error', error);\n throw error;\n }\n const session = await response.json();\n return session;\n }\n}\n","import React, { createContext, useContext, useEffect, useMemo } from 'react';\nimport { useGraphAuthenticatedFetch } from '../authentication';\nimport { useCurrentSite } from '../use-current-site';\nimport { useGraphEndpoint } from '../use-graph-endpoint';\nimport { useImmer } from '../use-immer';\nimport { getFileIcon } from '../utils/get-file-icon';\nimport { UploadSession } from '../utils/upload-session';\nimport { blobUrlTag, blobTag, isUploadingTag, nameTag, percentTag, driveItemTag, webUrlTag, loadingTag, downloadUrlTag, iconTag, } from './symbols';\nconst attachmentsContext = createContext({});\n/**\n * Creates a React context that handles the items attachments.\n * Provides access to the {@link Attachments} hooks\n *\n * @component\n * @category RAPID Application\n */\nexport function AttachmentsContext({ children, item, onAttachmentsChanged, }) {\n const graphEndpoint = useGraphEndpoint('Files.ReadWrite.All');\n const [attachments, updateAttachments] = useImmer(item.Attachments);\n useEffect(function attachmentsChangedEffect() {\n if (item.Attachments) {\n updateAttachments(() => item.Attachments);\n }\n }, \n // [item.Attachments],\n []);\n useEffect(function fetchAttachmentsOnMount() {\n (async function asyncFetchAttachmentsOnMount() {\n for (const attachment of attachments !== null && attachments !== void 0 ? attachments : []) {\n updateAttachments(d => {\n const localAtt = d.find(a => a.drive_id === attachment.drive_id &&\n a.drive_item_id === attachment.drive_item_id);\n localAtt[loadingTag] = true;\n });\n try {\n const graphAtt = await graphEndpoint.drives[attachment.drive_id].items[attachment.drive_item_id].getJson();\n updateAttachments(d => {\n const localAtt = d.find(a => a.drive_id === attachment.drive_id &&\n a.drive_item_id === attachment.drive_item_id);\n localAtt[driveItemTag] = graphAtt;\n localAtt[webUrlTag] = graphAtt.webUrl;\n localAtt[nameTag] = graphAtt.name;\n localAtt[downloadUrlTag] =\n graphAtt['@microsoft.graph.downloadUrl'];\n localAtt[iconTag] = getFileIcon(graphAtt.file.mimeType);\n });\n }\n finally {\n updateAttachments(d => {\n const localAtt = d.find(a => a.drive_id === attachment.drive_id &&\n a.drive_item_id === attachment.drive_item_id);\n localAtt[loadingTag] = false;\n });\n }\n }\n })();\n }, [item.Attachments]);\n useEffect(function localAttachmentsChangedEffect() {\n onAttachmentsChanged === null || onAttachmentsChanged === void 0 ? void 0 : onAttachmentsChanged(item, attachments);\n }, [attachments]);\n const [site] = useCurrentSite();\n const disabled = useMemo(function checkEntityStorageOnMount() {\n var _a, _b;\n if (!((_a = site.Drives[item.__metadata.type]) === null || _a === void 0 ? void 0 : _a.DriveId) ||\n !((_b = site.Drives[item.__metadata.type]) === null || _b === void 0 ? void 0 : _b.DriveItemId)) {\n return true;\n }\n }, [item.id]);\n return (React.createElement(attachmentsContext.Provider, { value: {\n attachments,\n updateAttachments,\n item,\n disabled,\n } }, children));\n}\n/**\n * Hook that uses the attachments array from the nearest {@link AttachmentsContext}.\n *\n * @hook\n * @category RAPID Application\n */\nexport function useAttachmentContext() {\n const { attachments, updateAttachments, item, disabled } = useContext(attachmentsContext);\n return { attachments, updateAttachments, item, disabled };\n}\nexport function useAttachments() {\n const graphClient = useGraphAuthenticatedFetch('Files.ReadWrite');\n const graphEndpoint = useGraphEndpoint('Files.ReadWrite');\n const { attachments, updateAttachments, item } = useContext(attachmentsContext);\n const [site] = useCurrentSite();\n let fileFolder = 'Attachments';\n let driveId = item.drive_id;\n let folderId = item.folder_id;\n if (!driveId || !folderId) {\n const driveDetails = site.Drives[item.__metadata.type];\n // TODO The temp_attachments should be in the\n // root of the document storage. Not in the entity folder.\n // You need to find the root document storage folder and drive id;\n driveId = driveDetails === null || driveDetails === void 0 ? void 0 : driveDetails.DriveId;\n folderId = driveDetails === null || driveDetails === void 0 ? void 0 : driveDetails.DriveItemId;\n fileFolder = 'temp_attachments';\n }\n async function uploadAttachments(files) {\n var _a, _b;\n for (const file of Array.from(files)) {\n const blobUrl = file.type.includes('image') && URL.createObjectURL(file);\n updateAttachments(d => {\n d.push({\n [blobTag]: file,\n [blobUrlTag]: blobUrl,\n [isUploadingTag]: true,\n [percentTag]: null,\n [nameTag]: file.name,\n [iconTag]: getFileIcon(file.type),\n });\n });\n }\n for (const file of Array.from(files)) {\n let fileName = (_b = (_a = file.name.match(/(?.*)\\..*/)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.name;\n await new UploadSession(graphClient, driveId, folderId, `${fileFolder}/${fileName !== null && fileName !== void 0 ? fileName : file.name}`, file)\n .on('start', () => {\n updateAttachments(d => {\n const attachment = d.find(i => i[blobTag] === file);\n attachment[percentTag] = 0;\n });\n })\n .on('progress', percent => {\n updateAttachments(d => {\n const attachment = d.find(i => i[blobTag] === file);\n attachment[percentTag] = percent;\n });\n })\n .on('end', (driveItem) => {\n updateAttachments(d => {\n const attachment = d.find(i => i[blobTag] === file);\n attachment.drive_id = driveItem.parentReference.driveId;\n attachment.drive_item_id = driveItem.id;\n delete attachment[percentTag];\n URL.revokeObjectURL(attachment[blobUrlTag]);\n });\n try {\n (async function () {\n var _a;\n const thumbnails = await graphEndpoint.drives[driveItem.parentReference.driveId].items[driveItem.id].thumbnails.getJson();\n if (!!((_a = thumbnails.value) === null || _a === void 0 ? void 0 : _a.length)) {\n updateAttachments(d => {\n const attachment = d.find(i => i[blobTag] === file);\n attachment[blobUrlTag] = thumbnails.value[0].small.url;\n });\n }\n })();\n }\n catch (e) {\n console.log(e);\n }\n })\n .sendAllChunks();\n }\n }\n async function removeAttachment(attachment) {\n const delAtt = await graphEndpoint.drives[attachment.drive_id].items[attachment.drive_item_id].delete();\n updateAttachments(d => {\n const ind = d.findIndex(i => i[blobTag] === attachment[blobTag]);\n if (ind !== -1) {\n d.splice(ind, 1);\n }\n });\n }\n return [attachments, uploadAttachments, removeAttachment];\n}\n","import React from 'react';\nimport { useLayoutEffect } from 'react';\nimport { BrowserRouter } from 'react-router-dom';\nimport { MultiSiteApplication, SingleSiteApplication, } from './rapid-application';\n/**\n * A {@link MultiSiteApplication} with a bundled browser router and react strictmode\n * wrappers.\n *\n * @Component\n * @category RAPID Application\n */\nexport function ManagedMultiSiteApplication(props) {\n useLayoutEffect(function displayNameChangedEffect() {\n if (typeof props.displayName === 'string') {\n document.title = props.displayName;\n }\n }, [props.displayName]);\n return (React.createElement(React.StrictMode, null,\n React.createElement(BrowserRouter, null,\n React.createElement(MultiSiteApplication, Object.assign({}, props)))));\n}\nexport function ManagedSingleSiteApplication(props) {\n useLayoutEffect(function displayNameChangedEffect() {\n if (typeof props.displayName === 'string') {\n document.title = props.displayName;\n }\n }, [props.displayName]);\n return (React.createElement(React.StrictMode, null,\n React.createElement(BrowserRouter, null,\n React.createElement(SingleSiteApplication, Object.assign({}, props)))));\n}\n","import { useCurrentSite } from './use-current-site';\nimport { useList } from './use-list';\n/**\n * Uses a list of data sources properly sourced from the site file.\n *\n * @hook\n */\nexport function useDataSources(list) {\n var _a, _b, _c;\n const [site, updateCurrentSite] = useCurrentSite();\n const [innerList] = useList(list);\n return [\n [\n ...((_a = innerList === null || innerList === void 0 ? void 0 : innerList.DataSources) !== null && _a !== void 0 ? _a : []),\n ...((_c = (_b = site === null || site === void 0 ? void 0 : site.DataSources) === null || _b === void 0 ? void 0 : _b[innerList.Table]) !== null && _c !== void 0 ? _c : []),\n ],\n function updateDataSources(d) {\n updateCurrentSite(draft => {\n var _a;\n const ds = (_a = draft.DataSources) === null || _a === void 0 ? void 0 : _a[innerList.Table];\n if (!ds) {\n draft.DataSources[innerList.Table] = [];\n }\n d(ds);\n });\n },\n ];\n}\nexport function useDataSource(list, dataSource) {\n const [dataSources, updateDataSources] = useDataSources(list);\n if (!dataSource) {\n throw new Error(`useDataSource: Expected string or IDatasource for dataSource parameter, got ${typeof dataSource}`);\n }\n return [\n dataSources.find(i => i.Title.localeCompare(typeof dataSource === 'string' ? dataSource : dataSource.Title) === 0),\n function updateDataSource(d) {\n updateDataSources(draft => {\n const ds = draft.find(i => i.Title.localeCompare(typeof dataSource === 'string' ? dataSource : dataSource.Title) === 0);\n d(ds);\n });\n },\n ];\n}\n","import React, { useContext, useEffect } from 'react';\nimport { useCurrentSiteEndpoint } from '../use-current-site-endpoint';\nimport { useDataSource } from '../use-data-source';\nimport { useImmer } from '../use-immer';\nimport { useList } from '../use-list';\nconst Context = React.createContext(undefined);\nfunction* itemContextIterator() {\n for (const item of Object.values(this)) {\n yield item;\n }\n}\n/**\n * Declares a view context which fetches and manages access to list items inside\n * that view.\n *\n * All components inside this context have access to the hooks.\n *\n * @component\n * @category RAPID Application\n */\nexport function ManagedViewContext({ list, dataSource, columns, filter, searchTerm, linkedTo, count, disableAutoFetch, children, }) {\n const [innerList] = useList(list);\n const [innerDs] = useDataSource(list, dataSource !== null && dataSource !== void 0 ? dataSource : 'All');\n const ep = useCurrentSiteEndpoint();\n const fetchItems = async () => {\n var _a, _b, _c;\n updateContext(draft => {\n draft.loading = true;\n });\n try {\n if (!count) {\n const data = await ep.Lists[innerList.ListName][(_a = innerDs === null || innerDs === void 0 ? void 0 : innerDs.Title) !== null && _a !== void 0 ? _a : dataSource].Items.getJson({\n term: searchTerm,\n $filter: filter,\n $select: columns === null || columns === void 0 ? void 0 : columns.join(','),\n linkedTo,\n });\n updateContext(draft => {\n draft.items = data.value.reduce((prev, curr) => ({ ...prev, [curr.id]: curr }), {\n [Symbol.iterator]: itemContextIterator,\n });\n });\n }\n else {\n const res = await ep.Lists[innerList.ListName][(_b = innerDs === null || innerDs === void 0 ? void 0 : innerDs.Title) !== null && _b !== void 0 ? _b : dataSource].Items.$count.get({\n term: searchTerm,\n $filter: (_c = context.filter) !== null && _c !== void 0 ? _c : filter,\n linkedTo,\n });\n if (res.ok) {\n const value = await res.text();\n updateContext(draft => {\n draft.count = +value;\n });\n }\n }\n }\n finally {\n updateContext(draft => {\n draft.loading = false;\n });\n }\n };\n async function fetchItem(id) {\n var _a;\n const data = await ep.Lists[innerList.ListName][(_a = innerDs === null || innerDs === void 0 ? void 0 : innerDs.Title) !== null && _a !== void 0 ? _a : dataSource].Items[id].getJson();\n updateContext(draft => {\n draft.items[data.id] = data;\n });\n }\n async function deleteItems(ids) {\n var _a;\n updateContext(draft => {\n draft.loading = true;\n });\n try {\n const res = await ep.Lists[innerList.ListName][(_a = innerDs === null || innerDs === void 0 ? void 0 : innerDs.Title) !== null && _a !== void 0 ? _a : dataSource].Items.delete({}, [...ids]);\n if (res.ok) {\n updateContext(draft => {\n for (const id of ids) {\n delete draft.items[id];\n }\n });\n }\n }\n finally {\n updateContext(draft => {\n draft.loading = false;\n });\n }\n }\n const [context, updateContext] = useImmer({\n columns,\n list: innerList,\n dataSource: innerDs,\n filter,\n loading: false,\n count: undefined,\n items: {\n [Symbol.iterator]: itemContextIterator,\n },\n });\n useEffect(function updateListEffect() {\n updateContext(d => {\n d.list = innerList;\n });\n }, [innerList]);\n useEffect(function updateDataSourceEffect() {\n updateContext(d => {\n d.dataSource = innerDs;\n });\n }, [innerDs]);\n useEffect(function fetchItemsEffect() {\n if (!disableAutoFetch) {\n fetchItems();\n }\n }, [disableAutoFetch, list, dataSource, columns, filter, searchTerm, linkedTo]);\n return (React.createElement(Context.Provider, { value: [\n { ...context, fetchItems, fetchItem, deleteItems },\n updateContext,\n ] }, children));\n}\n/**\n * Provides access to the view anywhere underneath a {@link ManagedViewContext}.\n *\n * @hook\n * @category RAPID Application\n */\nexport function useViewContext() {\n const context = useContext(Context);\n return context;\n}\nexport function useViewContextCount() {\n const [context] = useViewContext();\n return [context.count, context.loading];\n}\n","import React, { createContext, useContext, useEffect } from 'react';\nimport { useImmer } from '../use-immer';\nconst embeddedFilesContext = createContext({});\nfunction parseEmbeddedFiles(input) {\n var _a;\n if (!input) {\n return [];\n }\n if (Array.isArray(input)) {\n return input;\n }\n try {\n return (_a = JSON.parse(input)) !== null && _a !== void 0 ? _a : [];\n }\n catch {\n return [];\n }\n}\n/**\n * Creates a React context that automatically parses and handles access to\n * a task's embedded files. Provides access to the {@link useEmbeddedFiles} hooks\n *\n * @component\n * @category RAPID Application\n */\nexport function EmbeddedFilesContext({ children, item, onEmbeddedFilesChanged, }) {\n const [embeddedFiles, updateEmbeddedFiles] = useImmer(parseEmbeddedFiles(item.embedded_files));\n useEffect(function embeddedFilesChangedEffect() {\n if (item.embedded_files) {\n updateEmbeddedFiles(() => parseEmbeddedFiles(item.embedded_files));\n }\n }, [item.embedded_files]);\n useEffect(function localEmbeddedFilesChangedEffect() {\n onEmbeddedFilesChanged === null || onEmbeddedFilesChanged === void 0 ? void 0 : onEmbeddedFilesChanged(item, JSON.stringify(embeddedFiles));\n }, [embeddedFiles]);\n return (React.createElement(embeddedFilesContext.Provider, { value: {\n embeddedFiles,\n updateEmbeddedFiles,\n item,\n } }, children));\n}\n/**\n * Hook that uses the embedded files array from the nearest {@link EmbeddedFilesContext}.\n *\n * @hook\n * @category RAPID Application\n */\nexport function useEmbeddedFiles() {\n const { embeddedFiles, updateEmbeddedFiles } = useContext(embeddedFilesContext);\n return [embeddedFiles, updateEmbeddedFiles];\n}\n","/// \nimport React, { useContext, useEffect } from 'react';\nimport { useImmer } from '../use-immer';\nimport { useGraphEndpoint } from '../use-graph-endpoint';\nimport { isRequestError } from '../proxy-rest-client';\nconst Context = React.createContext([]);\n/**\n * Creates a file context that provides access to Microsoft 365 files for\n * the specified folder and path.\n * @category RAPID Applications\n */\nexport function ManagedFileContext({ driveId, folderId, path, children, }) {\n const graphEndpoint = useGraphEndpoint('Files.ReadWrite');\n const [contextValue, updateContext] = useImmer({\n driveItem: undefined,\n });\n async function fetchFolder() {\n let ep = graphEndpoint.drives[driveId];\n if (folderId) {\n ep = ep.items[folderId + ':'];\n }\n else {\n ep = ep.root + ':';\n }\n ep = ep[path !== null && path !== void 0 ? path : '/'];\n let data;\n let notFound = false;\n try {\n data = await ep.getJson({\n $expand: 'children',\n });\n }\n catch (e) {\n if (isRequestError(e)) {\n notFound = (e === null || e === void 0 ? void 0 : e.statusCode) === 404;\n }\n }\n updateContext(draft => {\n draft.driveItem = data;\n draft.notFound = notFound;\n });\n }\n useEffect(function fetchItemsEffect() {\n fetchFolder();\n }, [folderId, driveId, path]);\n return (React.createElement(Context.Provider, { value: [contextValue, updateContext] }, children));\n}\n/**\n * Uses the Microsoft 365 file context from the nearest {@link ManagedFileContext}\n *\n * @hook\n * @category RAPID Application\n */\nexport function useFileContext() {\n const [fileContext, updateFileContext] = useContext(Context);\n return [fileContext, updateFileContext];\n}\n","import React, { useContext, useEffect } from 'react';\nimport { useCurrentSite } from '../use-current-site';\nimport { useCurrentSiteEndpoint } from '../use-current-site-endpoint';\nimport { useImmer } from '../use-immer';\nconst Context = React.createContext(undefined);\nfunction* reportContextIterator() {\n for (const item of Object.values(this)) {\n yield item;\n }\n}\nfunction* datasetContextIterator() {\n for (const item of Object.values(this)) {\n yield item;\n }\n}\n/**\n * Declares a PowerBI context which fetches and manages access to reports and datasets inside\n * the PowerBI workspace for the current site.\n *\n * All components inside this context have access to the hooks.\n *\n * @component\n * @category RAPID Application\n */\nexport function ManagedPowerBIContext({ children, }) {\n const [site] = useCurrentSite();\n const ep = useCurrentSiteEndpoint();\n const workspaceId = site.PowerBIWorkspaceID;\n async function fetchReports() {\n let res;\n updateContext(draft => {\n draft.loading = true;\n });\n try {\n res = await ep.Reports.get({ workspaceId });\n if (res.ok) {\n const data = await res.json();\n updateContext(draft => {\n draft.reports = data.reduce((prev, curr) => ({ ...prev, [curr.id]: curr }), {\n [Symbol.iterator]: reportContextIterator,\n });\n });\n }\n }\n finally {\n updateContext(draft => {\n draft.loading = false;\n });\n }\n }\n async function fetchDatasets() {\n let res;\n updateContext(draft => {\n draft.loading = true;\n });\n try {\n res = await ep.Reports.Datasets.get();\n if (res.ok) {\n const data = await res.json();\n updateContext(draft => {\n draft.datasets = data.reduce((prev, curr) => ({ ...prev, [curr.id]: curr }), {\n [Symbol.iterator]: datasetContextIterator,\n });\n });\n }\n }\n finally {\n updateContext(draft => {\n draft.loading = false;\n });\n }\n }\n async function deleteReport(reportId) {\n updateContext(draft => {\n draft.loading = true;\n });\n try {\n const resp = await ep.Reports.delete({ reportId });\n if (resp.ok) {\n updateContext(draft => {\n delete draft.reports[reportId];\n });\n }\n }\n finally {\n updateContext(draft => {\n draft.loading = false;\n });\n }\n }\n async function deleteDataset(datasets) {\n let res;\n updateContext(draft => {\n draft.loading = true;\n });\n try {\n res = await ep.Xmla.Datasets.delete({}, { Datasets: datasets.map(dataset => dataset.name) });\n if (res.ok) {\n for (let dataset of datasets) {\n updateContext(draft => {\n delete draft.datasets[dataset.id];\n });\n }\n }\n }\n finally {\n updateContext(draft => {\n draft.loading = false;\n });\n }\n }\n const [context, updateContext] = useImmer({\n reports: {\n [Symbol.iterator]: reportContextIterator,\n },\n datasets: {\n [Symbol.iterator]: datasetContextIterator,\n },\n loading: false,\n fetchReports,\n fetchDatasets,\n deleteReport,\n deleteDataset,\n });\n useEffect(function fetchReportsEffect() {\n fetchReports();\n }, []);\n useEffect(function fetchDatasetsEffect() {\n fetchDatasets();\n }, []);\n return (React.createElement(Context.Provider, { value: [context, updateContext] }, children));\n}\n/**\n * Provides access to the Power BI workspace anywhere underneath a {@link ManagedPowerBIContext}.\n *\n * @hook\n * @category RAPID Application\n */\nexport function usePowerBIContext() {\n const context = useContext(Context);\n return context;\n}\n/**\n * Provides access to the Power BI reports for a workspace anywhere underneath a {@link ManagedPowerBIContext}.\n *\n * @hook\n * @category RAPID Application\n */\nexport function usePowerBIReports() {\n const [powerbi, updatePowerBI] = usePowerBIContext();\n return [\n powerbi.reports,\n function updateReports(d) {\n updatePowerBI(draft => {\n draft.reports = d(draft.reports);\n });\n },\n ];\n}\n/**\n * Provides access to a Power BI report for a workspace anywhere underneath a {@link ManagedPowerBIContext}.\n *\n * @hook\n * @category RAPID Application\n */\nexport function usePowerBIReport(id) {\n const [powerBIReports, updatePowerBIReports] = usePowerBIReports();\n return [\n powerBIReports[id],\n function updatePowerBIReport(d) {\n updatePowerBIReports(draft => {\n draft[id] = d(draft[id]);\n });\n },\n ];\n}\n/**\n * Provides access to the Power BI datasets for a workspace anywhere underneath a {@link ManagedPowerBIContext}.\n *\n * @hook\n * @category RAPID Application\n */\nexport function usePowerBIDatasets() {\n const [powerbi, updatePowerBI] = usePowerBIContext();\n return [\n powerbi.datasets,\n function updateDatasets(d) {\n updatePowerBI(draft => {\n draft.datasets = d(draft.datasets);\n });\n },\n ];\n}\n/**\n * Provides access to a Power BI dataset for a workspace anywhere underneath a {@link ManagedPowerBIContext}.\n *\n * @hook\n * @category RAPID Application\n */\nexport function usePowerBIDataset(id) {\n const [powerBIDatasets, updatePowerBIDatasets] = usePowerBIDatasets();\n return [\n powerBIDatasets[id],\n function updatePowerBIDataset(d) {\n updatePowerBIDatasets(draft => {\n draft[id] = d(draft[id]);\n });\n },\n ];\n}\n","/** Used to generate unique IDs. */\nconst idCounter = {};\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @since 0.1.0\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @see random\n * @example\n *\n * uniqueId('contact_')\n * // => 'contact_104'\n *\n * uniqueId()\n * // => '105'\n */\nexport function uniqueId(prefix = '$lodash$') {\n if (!idCounter[prefix]) {\n idCounter[prefix] = 0;\n }\n const id = ++idCounter[prefix];\n if (prefix === '$lodash$') {\n return `${id}`;\n }\n return `${prefix}${id}`;\n}\n","import React, { useContext, useEffect } from 'react';\nimport { generateEmailSlug, useRapidApplication, } from '../index';\nimport { useCurrentSiteEndpoint } from '../use-current-site-endpoint';\nimport { useImmer } from '../use-immer';\nimport { useList } from '../use-list';\nimport { uniqueId } from '../utils/unique-id';\nimport { transformAll } from '@demvsystems/yup-ast';\nconst Context = React.createContext([]);\n/**\n *\n */\nexport function ManagedListItemContext({ children, id, validate, list, }) {\n /*\n *\n */\n const [parentContext, updateParentContext] = useListItemContext();\n const ep = useCurrentSiteEndpoint();\n const [innerList] = useList(list);\n async function fetchItem() {\n updateContext(draft => {\n draft.loading = true;\n });\n let item;\n try {\n if (!id) {\n updateContext(draft => {\n draft.item = {\n __metadata: {\n type: innerList.ListName,\n },\n };\n });\n return;\n }\n item = await ep.Lists[innerList.ListName].Items[id].getJson();\n updateContext(draft => {\n draft.item = item;\n });\n }\n finally {\n updateContext(draft => {\n draft.loading = false;\n });\n }\n }\n const validateItem = (recursive) => {\n if (validate) {\n let errors = [];\n try {\n if (context.validation.length) {\n const validateFn = transformAll(context.validation[0]);\n errors = validateFn.validateSync(context.item, { abortEarly: false });\n }\n updateContext(d => {\n d.validationErrors = [];\n });\n errors = [];\n }\n catch (e) {\n const innerErrors = e.errors.map(error => ({\n list: context.list.ListName,\n error,\n }));\n updateContext(d => {\n d.validationErrors = innerErrors;\n });\n errors = innerErrors;\n }\n finally {\n for (const subContext of Object.values(context.subContexts)) {\n if (typeof recursive === 'function' ? recursive(subContext) : recursive) {\n errors = errors.concat(subContext.validateItem(recursive));\n }\n }\n }\n return errors;\n }\n };\n const saveItem = async (recursive) => {\n try {\n for (const subContext of Object.values(context.subContexts)) {\n if (typeof recursive === 'function' ? recursive(subContext) : recursive) {\n await subContext.saveItem(recursive);\n }\n }\n if (id) {\n await ep.Lists[innerList.ListName].Items[id].putJson(undefined, context.item);\n }\n else {\n const newItem = await ep.Lists[innerList.ListName].Items.postJson(undefined, context.item);\n updateContext(draft => {\n Object.assign(draft.item, newItem);\n });\n }\n }\n finally {\n updateContext(draft => {\n draft.loading = false;\n });\n }\n };\n const updateItem = d => {\n updateContext(draft => {\n d(draft.item);\n });\n };\n const fetchTimeline = async (excludeDiffNotes = false) => {\n updateContext(draft => {\n draft.timelineLoading = true;\n });\n try {\n const timeline = await ep.Lists[context.list.ListName].Items[context.id].Timeline.getJson({\n excludeDiffNotes: excludeDiffNotes.toString(),\n });\n updateContext(draft => {\n draft.timeline = timeline;\n });\n }\n finally {\n updateContext(draft => {\n draft.timelineLoading = false;\n });\n }\n };\n const [context, updateContext] = useImmer({\n $id: uniqueId('listItemContext'),\n list: innerList,\n id,\n loading: false,\n item: undefined,\n validation: [],\n validationErrors: [],\n subContexts: {},\n });\n useEffect(function fetchItemEffect() {\n fetchItem();\n }, [list, id]);\n useEffect(function contextDidChangeEffect() {\n if (parentContext) {\n updateParentContext(draft => {\n draft.subContexts[context.$id] = {\n ...context,\n fetchTimeline,\n saveItem,\n updateItem,\n validateItem,\n fetchItem,\n };\n });\n }\n return function contextDidCleanupEffect() {\n if (parentContext) {\n updateParentContext(draft => {\n delete draft.subContexts[context.$id];\n });\n }\n };\n }, [context]);\n return (React.createElement(Context.Provider, { value: [\n {\n ...context,\n fetchTimeline,\n saveItem,\n updateItem,\n validateItem,\n fetchItem,\n },\n updateContext,\n ] }, children));\n}\nexport function useListItemContext() {\n const [context, updateContext] = useContext(Context);\n return [context, updateContext];\n}\nexport function useSingleListItemTimeline() {\n const [context] = useListItemContext();\n return [context.timeline, context.fetchTimeline, context.timelineLoading];\n}\nexport function useSingleListItemEmails(searchAddress) {\n const [context, updateContext] = useListItemContext();\n const [app] = useRapidApplication();\n const ep = useCurrentSiteEndpoint();\n async function fetchEmails() {\n updateContext(draft => {\n draft.timelineLoading = true;\n });\n try {\n let emailEndpoint = ep.organization.emails[generateEmailSlug(app.tenant, app.site, context.list.ListName, context.item.id)];\n if (searchAddress) {\n emailEndpoint = emailEndpoint[searchAddress];\n }\n const emails = await emailEndpoint.getJson();\n updateContext(draft => {\n draft.emails = emails.value;\n });\n }\n finally {\n updateContext(draft => {\n draft.timelineLoading = false;\n });\n }\n }\n return [context.emails, fetchEmails, context.timelineLoading];\n}\n","/**\n* Throttles a function\n*\n* @example\n* ```ts\n* const throtFunc = throttle(func, 1000);\n*\n* throtFunc(arg);\n* ```\n**/\nexport const throttle = (func, waitFor) => {\n const now = () => new Date().getTime();\n const resetStartTime = () => startTime = now();\n let timeout;\n let startTime = now() - waitFor;\n return (...args) => new Promise((resolve) => {\n const timeLeft = (startTime + waitFor) - now();\n if (timeout) {\n clearTimeout(timeout);\n }\n if (startTime + waitFor <= now()) {\n resetStartTime();\n resolve(func(...args));\n }\n else {\n timeout = setTimeout(() => {\n resetStartTime();\n resolve(func(...args));\n }, timeLeft);\n }\n });\n};\n","import React from 'react';\nimport sanitizeHtmlReal from 'sanitize-html';\nexport const sanitizeRules = {\n allowedTags: sanitizeHtmlReal.defaults.allowedTags.concat([\n 'h1',\n 'h2',\n 'span',\n 'img',\n 'table',\n 'a',\n ]),\n allowedAttributes: {\n tr: ['class'],\n td: ['class', 'colspan'],\n table: ['class'],\n a: ['class', 'href', 'target', 'data-item-ref'],\n span: [\n 'class',\n 'data-index',\n 'data-id',\n 'data-value',\n 'data-denotation-char',\n ],\n img: ['src', 'width', 'height'],\n },\n allowedSchemesByTag: {\n img: ['http', 'https'],\n a: ['https', 'mailto'],\n },\n};\nexport function sanitizeHtml(input) {\n return sanitizeHtmlReal(input, sanitizeRules);\n}\nexport function SanitizedDiv({ html, className }) {\n return (React.createElement(\"div\", { className: className, dangerouslySetInnerHTML: { __html: sanitizeHtml(html) } }));\n}\n","import React from 'react';\nimport { Link, useParams } from 'react-router-dom';\nimport { IEnvTenantSiteParams } from '@rapid/sdk';\n\nimport './sidebar.scss';\n\nexport function Sidebar(props: React.PropsWithChildren<{}>) {\n return
{props.children}
;\n}\n\nexport function SidebarHeader(props: React.PropsWithChildren<{}>) {\n return
{props.children}
;\n}\n\nexport function SidebarMain(props: React.PropsWithChildren<{}>) {\n return
{props.children}
;\n}\n\nexport function SidebarFooter(props: React.PropsWithChildren<{}>) {\n return
{props.children}
;\n}\n\nexport function SidebarHeaderItem(props: React.PropsWithChildren<{}>) {\n const params = useParams();\n const baseUrl = `/_${params.env}/${params.tenant}/${params.site}`;\n\n return {props.children};\n}\nexport interface SidebarMenuItemProps {\n name: string;\n icon?: JSX.Element;\n route: string;\n}\n\nexport function SidebarMenuItem(\n props: React.PropsWithChildren,\n) {\n const params = useParams();\n const baseUrl = `/_${params.env}/${params.tenant}/${params.site}`;\n\n return (\n \n
\n
\n
\n {!!props.icon ? props.icon : }\n
\n {props.name}\n
\n
\n \n );\n}\n","import './commandBar.scss';\nimport React from 'react';\n\nexport function CommandBar(props: React.PropsWithChildren<{}>) {\n return (\n
\n {props.children}\n
\n );\n}\n\nexport function CommandBarLeft(props: React.PropsWithChildren<{}>) {\n return
{props.children}
;\n}\n\nexport function CommandBarCenter(props: React.PropsWithChildren<{}>) {\n return
{props.children}
;\n}\n\nexport function CommandBarRight(props: React.PropsWithChildren<{}>) {\n return
{props.children}
;\n}\n","import { IEnvTenantSiteParams } from '@rapid/sdk';\nimport { useHistory, useParams } from 'react-router-dom';\n\nexport function useNavigation() {\n const params: IEnvTenantSiteParams = useParams();\n const history = useHistory();\n\n function BaseNavigate(path: string) {\n const url: string = `/_${params.env}/${params.tenant}/${params.site}`;\n history.push(url + (path[0] === '/' ? path : '/' + path));\n }\n\n function Navigate(path: string) {\n let url = history.location.pathname;\n url = url[url.length - 1] === '/' ? url.substring(0, url.length - 2) : url;\n history.push(url + (path[0] === '/' ? path : '/' + path));\n }\n\n return { Navigate, BaseNavigate };\n}\n","import { usePowerBIContext, useViewContext } from '@rapid/sdk';\n\nexport function useBreadcrumbText() {\n const [pbiContext] = usePowerBIContext();\n const [view] = useViewContext();\n\n function getBreadcrumbText(path: string): string | undefined {\n const params = path.split(':');\n if (params.length === 1) {\n switch (path) {\n case 'pbireports':\n return 'PBI Reports';\n case 'pbidatasets':\n return 'PBI Datasets';\n case 'adaptiveviews':\n return 'Adaptive Views';\n case 'dashboards':\n return 'Dashboards';\n }\n }\n if (params.length === 2) {\n switch (params[0]) {\n case 'pbireport':\n return pbiContext.reports[params[1]]?.name ?? undefined;\n case 'newreport':\n return 'new report';\n case 'pbidataset':\n return pbiContext.datasets[params[1]]?.name ?? undefined;\n case 'dashboard':\n return view.items[params[1]]?.title ?? undefined;\n }\n }\n if (params.length === 3) {\n switch (params[0]) {\n case 'customview':\n return `${params[1]} (${params[2]})`;\n }\n }\n return undefined;\n }\n\n return getBreadcrumbText;\n}\n","import { IEnvTenantSiteParams } from '@rapid/sdk';\nimport { Breadcrumb } from 'antd';\nimport React from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport './breadcrumbs.scss';\n\ninterface IBreadCrumbItem {\n text?: string;\n url?: string;\n}\n\nexport interface IBreadcrumbsProps {\n breadcrumbText?(path: string): string|undefined;\n}\n\nexport function Breadcrumbs(props: React.PropsWithRef) {\n const history = useHistory();\n const breadcrumbText = props.breadcrumbText;\n const params = useParams();\n const baseUrl: string = `/_${params.env}/${params.tenant}/${params.site}`;\n const paths = history.location.pathname.split('/');\n\n const breadcrumbs: IBreadCrumbItem[] = [\n {\n text: 'Rapid Platform',\n url: '/',\n },\n ];\n\n paths.splice(0, 4); // removes \"\", \"_env\", \"tenant\", \"site\" from breadcrumbs\n for (let i = 0; i\n history.goBack()}\n >\n \n \n \n {breadcrumbs.filter(breadcrumb => !!breadcrumb.text).map((breadcrumb, i) =>\n !!breadcrumb.url ? (\n BaseNavigate(breadcrumb.url!)}>\n {breadcrumb.text}\n \n ) : (\n \n {breadcrumb.text}\n \n ),\n )}\n \n \n );\n}\n","import { v4 as uuidv4 } from 'uuid';\nimport { message, notification, Modal } from 'antd';\nimport { RequestError, sanitizeHtml } from '@rapid/sdk';\n\nexport async function feedbackWrapper(\n func: Function,\n loading: string,\n success: string,\n error: string,\n) {\n const key = uuidv4();\n message.loading({ content: loading, key, duration: 0 });\n try {\n await func();\n message.success({ content: success, key, duration: 2 });\n } catch (err) {\n message.destroy(key);\n notification.error({\n message: 'Error',\n description: error,\n duration: 5,\n });\n }\n}\n\nexport async function feedbackWrapperErrorModal(\n func: Function,\n loading: string,\n success: string,\n error: string,\n) {\n const key = uuidv4();\n message.loading({ content: loading, key, duration: 0 });\n try {\n await func();\n message.success({ content: success, key, duration: 2 });\n } catch (err) {\n message.destroy(key);\n const errorMessage = err instanceof RequestError ? await (err as RequestError).getData() : (err as Error).message;\n const text = sanitizeHtml(errorMessage);\n Modal.error({\n width: 500,\n title: error,\n content:
\n {text}\n
,\n });\n }\n}\n","export var ColumnType;\n(function (ColumnType) {\n ColumnType[ColumnType[\"None\"] = 0] = \"None\";\n ColumnType[ColumnType[\"Text\"] = 2] = \"Text\";\n ColumnType[ColumnType[\"Note\"] = 3] = \"Note\";\n ColumnType[ColumnType[\"DateTime\"] = 4] = \"DateTime\";\n ColumnType[ColumnType[\"Lookup\"] = 7] = \"Lookup\";\n ColumnType[ColumnType[\"Boolean\"] = 8] = \"Boolean\";\n ColumnType[ColumnType[\"Number\"] = 9] = \"Number\";\n ColumnType[ColumnType[\"Currency\"] = 10] = \"Currency\";\n ColumnType[ColumnType[\"Computed\"] = 12] = \"Computed\";\n ColumnType[ColumnType[\"File\"] = 18] = \"File\";\n ColumnType[ColumnType[\"User\"] = 20] = \"User\";\n ColumnType[ColumnType[\"PrivateUsers\"] = 100] = \"PrivateUsers\";\n ColumnType[ColumnType[\"Users\"] = 102] = \"Users\";\n ColumnType[ColumnType[\"Outcome\"] = 103] = \"Outcome\";\n ColumnType[ColumnType[\"GUID\"] = 104] = \"GUID\";\n ColumnType[ColumnType[\"JSON\"] = 105] = \"JSON\";\n ColumnType[ColumnType[\"Raw\"] = 106] = \"Raw\";\n ColumnType[ColumnType[\"Integer\"] = 107] = \"Integer\";\n ColumnType[ColumnType[\"Email\"] = 108] = \"Email\";\n ColumnType[ColumnType[\"XML\"] = 109] = \"XML\";\n})(ColumnType || (ColumnType = {}));\n","/** The permission mode flags for an object. */\nexport var ModeFlags;\n(function (ModeFlags) {\n /** Principal may read the object */\n ModeFlags[ModeFlags[\"Read\"] = 1] = \"Read\";\n /** Principal may write the object */\n ModeFlags[ModeFlags[\"Write\"] = 2] = \"Write\";\n /** Principal may delete the object */\n ModeFlags[ModeFlags[\"Delete\"] = 4] = \"Delete\";\n})(ModeFlags || (ModeFlags = {}));\n","export var NotificationType;\n(function (NotificationType) {\n NotificationType[NotificationType[\"Notification\"] = 0] = \"Notification\";\n NotificationType[NotificationType[\"Reminder\"] = 1] = \"Reminder\";\n NotificationType[NotificationType[\"Announcement\"] = 2] = \"Announcement\";\n NotificationType[NotificationType[\"Mention\"] = 3] = \"Mention\";\n})(NotificationType || (NotificationType = {}));\n","/**\n * Types for legacy webhooks.\n *\n * @deprecated This enum is for master database hooks and is no\n * longer in use as of v1.15, see the Webhook system list\n * instead\n */\nexport var WebhookType;\n(function (WebhookType) {\n WebhookType[WebhookType[\"ItemUpdated\"] = 0] = \"ItemUpdated\";\n WebhookType[WebhookType[\"ItemCreated\"] = 1] = \"ItemCreated\";\n WebhookType[WebhookType[\"EntityCreated\"] = 2] = \"EntityCreated\";\n WebhookType[WebhookType[\"ItemDeleted\"] = 3] = \"ItemDeleted\";\n})(WebhookType || (WebhookType = {}));\n","export var SubqueryFormat;\n(function (SubqueryFormat) {\n SubqueryFormat[SubqueryFormat[\"SQL\"] = 0] = \"SQL\";\n})(SubqueryFormat || (SubqueryFormat = {}));\n","export var NumberFormat;\n(function (NumberFormat) {\n NumberFormat[NumberFormat[\"Unformatted\"] = 0] = \"Unformatted\";\n NumberFormat[NumberFormat[\"Percentage\"] = 1] = \"Percentage\";\n NumberFormat[NumberFormat[\"Currency\"] = 2] = \"Currency\";\n})(NumberFormat || (NumberFormat = {}));\n","import { ColumnType } from './column-type';\nimport { NumberFormat } from './number-format';\n/**\n * Describes the data type of a dynamic field.\n */\nconst fieldTypes = {\n Text: {\n Id: 'Text',\n Title: 'Single line of Text',\n ColumnType: ColumnType.Text,\n VisibleOnOptions: true,\n ToolboxComponentType: 'TextField',\n OpenAPIType: {\n type: 'string',\n },\n Searchable: true,\n },\n Email: {\n Id: 'Email',\n Title: 'Email',\n ColumnType: ColumnType.Email,\n VisibleOnOptions: true,\n ToolboxComponentType: 'EmailField',\n OpenAPIType: {\n type: 'string',\n },\n Searchable: true,\n },\n Note: {\n Id: 'Note',\n Title: 'Multiple lines of Text',\n ColumnType: ColumnType.Note,\n VisibleOnOptions: true,\n ToolboxComponentType: 'NoteField',\n DefaultHeight: 3,\n OpenAPIType: {\n type: 'string',\n },\n allowAsTitleField: false,\n Searchable: false,\n },\n DateTime: {\n Id: 'DateTime',\n Title: 'Date and Time',\n ColumnType: ColumnType.DateTime,\n VisibleOnOptions: true,\n ToolboxComponentType: 'DateField',\n OpenAPIType: {\n type: 'string',\n format: 'date-time',\n },\n Searchable: true,\n },\n Choice: {\n Id: 'Choice',\n Title: 'Choice',\n ColumnType: ColumnType.Text,\n VisibleOnOptions: true,\n ToolboxComponentType: 'ChoiceField',\n OpenAPIType: {\n type: 'string',\n },\n Searchable: true,\n },\n Lookup: {\n Id: 'Lookup',\n Title: 'Lookup',\n ColumnType: ColumnType.Lookup,\n VisibleOnOptions: true,\n allowAsTitleField: false,\n ToolboxComponentType: 'LookupField',\n OpenAPIType: {\n type: 'integer',\n },\n Searchable: true,\n },\n Boolean: {\n Id: 'Boolean',\n Title: 'Boolean',\n ColumnType: ColumnType.Boolean,\n VisibleOnOptions: true,\n ToolboxComponentType: 'BooleanField',\n OpenAPIType: {\n type: 'boolean',\n },\n Searchable: true,\n },\n Number: {\n Id: 'Number',\n Title: 'Number',\n ColumnType: ColumnType.Number,\n VisibleOnOptions: true,\n ToolboxComponentType: 'NumberField',\n OpenAPIType: {\n type: 'number',\n },\n Searchable: true,\n },\n Percentage: {\n Id: 'Percentage',\n Title: 'Percentage',\n ColumnType: ColumnType.Number,\n VisibleOnOptions: true,\n ToolboxComponentType: 'PercentageField',\n DefaultSettings: {\n NumberFormat: NumberFormat.Percentage,\n },\n OpenAPIType: {\n type: 'number',\n },\n Searchable: true,\n },\n Currency: {\n Id: 'Currency',\n Title: 'Currency',\n ColumnType: ColumnType.Number,\n VisibleOnOptions: true,\n ToolboxComponentType: 'CurrencyField',\n DefaultSettings: {\n NumberFormat: NumberFormat.Currency,\n },\n OpenAPIType: {\n type: 'number',\n },\n Searchable: true,\n },\n Computed: {\n Id: 'Computed',\n Title: 'Computed',\n ColumnType: ColumnType.Computed,\n VisibleOnOptions: true,\n ToolboxComponentType: 'ReadOnlyField',\n OpenAPIType: {\n type: 'object',\n },\n Searchable: true,\n },\n User: {\n Id: 'User',\n Title: 'User',\n ColumnType: ColumnType.User,\n VisibleOnOptions: true,\n allowAsTitleField: false,\n ToolboxComponentType: 'UserField',\n OpenAPIType: {\n type: 'integer',\n },\n Searchable: true,\n },\n JSON: {\n Id: 'JSON',\n Title: 'JSON',\n ColumnType: ColumnType.JSON,\n VisibleOnOptions: false,\n OpenAPIType: {\n type: 'object',\n },\n ToolboxComponentType: 'DataField',\n allowAsTitleField: false,\n Searchable: true,\n },\n Subquery: {\n Id: 'Subquery',\n Title: 'Subquery',\n ColumnType: ColumnType.Raw,\n VisibleOnOptions: true,\n ToolboxComponentType: 'ReadOnlyField',\n DefaultSettings: {},\n OpenAPIType: {\n type: 'object',\n },\n Searchable: true,\n },\n Integer: {\n Id: 'Integer',\n Title: 'Whole number',\n ColumnType: ColumnType.Integer,\n VisibleOnOptions: true,\n ToolboxComponentType: 'NumberField',\n OpenAPIType: {\n type: 'integer',\n },\n Searchable: true,\n },\n GUID: {\n Id: 'GUID',\n Title: 'Globally Unique Identifier',\n ColumnType: ColumnType.GUID,\n VisibleOnOptions: false,\n ToolboxComponentType: 'TextField',\n OpenAPIType: {\n type: 'string',\n format: 'uuid',\n },\n Searchable: true,\n },\n XML: {\n Id: 'XML',\n Title: 'XML Data',\n ColumnType: ColumnType.XML,\n VisibleOnOptions: false,\n ToolboxComponentType: 'FileField',\n OpenAPIType: {\n type: 'string',\n format: 'uuid',\n },\n Searchable: true,\n },\n MultiLookup: {\n Id: 'MultiLookup',\n Title: 'Multiple Lookups',\n ColumnType: ColumnType.None,\n VisibleOnOptions: true,\n ToolboxComponentType: 'MultiLookupField',\n Convertible: false,\n OpenAPIType: {\n type: 'object',\n },\n allowAsTitleField: false,\n Searchable: false,\n },\n MultiChoice: {\n Id: 'MultiChoice',\n Title: 'Multiple Choices',\n ColumnType: ColumnType.None,\n VisibleOnOptions: false,\n Convertible: false,\n ToolboxComponentType: 'ChoiceField',\n OpenAPIType: {\n type: 'object',\n },\n allowAsTitleField: false,\n Searchable: true,\n },\n Report: {\n Id: 'Report',\n Title: 'PowerBI Report',\n ColumnType: ColumnType.Text,\n VisibleOnOptions: true,\n ToolboxComponentType: 'TextField',\n OpenAPIType: {\n type: 'string',\n },\n allowAsTitleField: false,\n Searchable: true,\n },\n};\nexport const FieldTypes = fieldTypes;\n","function compact(array) {\n return array.filter(i => !!i);\n}\n/**\n * Static list of hard-coded fields for every list.\n */\nexport const DefaultFields = (list) => !list.ExcludeDefaultFields\n ? compact([\n {\n Title: 'Created By',\n ColumnName: 'author_id',\n FieldType: 'User',\n SystemManaged: true,\n Updateable: false,\n Searchable: true,\n },\n {\n Title: 'Created',\n ColumnName: 'created',\n FieldType: 'DateTime',\n SystemManaged: true,\n Updateable: false,\n },\n {\n Title: 'Modified By',\n ColumnName: 'editor_id',\n FieldType: 'User',\n SystemManaged: true,\n Updateable: false,\n Searchable: true,\n },\n {\n Title: 'Modified',\n ColumnName: 'modified',\n FieldType: 'DateTime',\n SystemManaged: true,\n Updateable: false,\n Searchable: true,\n },\n {\n Title: 'Parent',\n ColumnName: 'parent_id',\n FieldType: 'Lookup',\n SystemManaged: true,\n Updateable: true,\n AlwaysSelect: true,\n Settings: {\n LookupList: list.Extends || list.ListName,\n },\n },\n {\n Title: 'Drive ID',\n ColumnName: 'drive_id',\n FieldType: 'Text',\n SystemManaged: true,\n Hidden: true,\n Updateable: true,\n AlwaysSelect: true,\n Settings: {\n Visible: false,\n },\n },\n {\n Title: 'Folder ID',\n ColumnName: 'folder_id',\n FieldType: 'Text',\n SystemManaged: true,\n Hidden: true,\n AlwaysSelect: true,\n Updateable: true,\n Settings: {\n Visible: false,\n },\n },\n {\n Title: 'Sorting Rank',\n ColumnName: 'rank',\n FieldType: 'Text',\n SystemManaged: true,\n Hidden: true,\n Updateable: true,\n Settings: {\n Visible: false,\n },\n },\n {\n Title: 'Embedded Files',\n ColumnName: 'embedded_files',\n FieldType: 'JSON',\n SystemManaged: true,\n Nullable: true,\n Hidden: true,\n DefaultValue: '[]',\n },\n {\n Title: 'External ID',\n ColumnName: 'sys_external_id',\n FieldType: 'Text',\n SystemManaged: true,\n Nullable: true,\n Hidden: true,\n },\n list.ListName !== 'Tasks' &&\n list.Extends !== 'Tasks' && {\n Title: 'Linked Tasks',\n ColumnName: 'sys_linked_tasks',\n FieldType: 'Subquery',\n SystemManaged: true,\n Nullable: true,\n // Hidden: true,\n Settings: {\n DisplayAs: 'JSON',\n Query: `\n (select\n TSK.id,\n TSK.title,\n TSK.start_date,\n TSK.due_date,\n TSK.sys_type_id,\n TSK.status,\n TSK.parent_id,\n parent.sys_type_id as [parent$type],\n (\n select ul2.*\n from universal_link ul2\n where ul2.task_id = TSK.id\n for json path\n ) as LinkedItems,\n (\n select dependency.*\n from [dependency]\n where [dependency].[source_id] = [TSK].[id]\n for json path\n ) as dependencies,\n entity_type.type as [__metadata.type]\n from [task] TSK\n join universal_link ul on ul.[${list.Table}_id] = T.id and ul.task_id = TSK.id\n join entity_type on TSK.sys_type_id = entity_type.id\n left join [task] [parent] on [parent].[id] = [TSK].[parent_id]\n where [TSK].[deleted] is null\n for json path)`,\n },\n },\n ])\n : [];\n","export var EncryptionStatus;\n(function (EncryptionStatus) {\n /** Encryption is supported and is in sync with the encryption settings */\n EncryptionStatus[\"InSyncWithWorkspace\"] = \"InSyncWithWorkspace\";\n /** Encryption is supported and not in sync with the encryption settings */\n EncryptionStatus[\"NotInSyncWithWorkspace\"] = \"NotInSyncWithWorkspace\";\n /** Encryption is not supported for this dataset */\n EncryptionStatus[\"NotSupported\"] = \"NotSupported\";\n /** Unable to determine state due to dataset corruption */\n EncryptionStatus[\"Unknown\"] = \"Unknown\";\n})(EncryptionStatus || (EncryptionStatus = {}));\n","/** Defines the method for making data available in the partition. */\nexport var XmlaPartitionModeType;\n(function (XmlaPartitionModeType) {\n /** Data will be imported from a data source. */\n XmlaPartitionModeType[XmlaPartitionModeType[\"Import\"] = 0] = \"Import\";\n /** Data will be queried dynamically from a data source. */\n XmlaPartitionModeType[XmlaPartitionModeType[\"DirectQuery\"] = 1] = \"DirectQuery\";\n})(XmlaPartitionModeType || (XmlaPartitionModeType = {}));\n/** An enumeration of possible values for defining cardinality on either side of a table relationship. */\nexport var XmlaRelationshipCardinality;\n(function (XmlaRelationshipCardinality) {\n /** The relationship is unspecified. */\n XmlaRelationshipCardinality[XmlaRelationshipCardinality[\"None\"] = 0] = \"None\";\n /** Specifies the 'one' side of a one-to-one or one-to-many relationship. */\n XmlaRelationshipCardinality[XmlaRelationshipCardinality[\"One\"] = 1] = \"One\";\n /** Specifies the 'many' side of a one-to-many relationship. */\n XmlaRelationshipCardinality[XmlaRelationshipCardinality[\"Many\"] = 2] = \"Many\";\n})(XmlaRelationshipCardinality || (XmlaRelationshipCardinality = {}));\n/** The type of relationship. Currently, the only possible value is SingleColumn. */\nexport var XmlaRelationshipType;\n(function (XmlaRelationshipType) {\n /** Relationships are constructed using a column-to-column mapping. */\n XmlaRelationshipType[XmlaRelationshipType[\"SingleColumn\"] = 1] = \"SingleColumn\";\n})(XmlaRelationshipType || (XmlaRelationshipType = {}));\n/** When joining two date time columns, indicates whether to join on date and time parts or on date part only. */\nexport var XmlaRelatoinshipDateTimeRelationshipBehavior;\n(function (XmlaRelatoinshipDateTimeRelationshipBehavior) {\n /** When joining two date time columns, join on both the date and time parts. */\n XmlaRelatoinshipDateTimeRelationshipBehavior[XmlaRelatoinshipDateTimeRelationshipBehavior[\"DateAndTime\"] = 1] = \"DateAndTime\";\n /** When joining two date time columns, join on date part only. */\n XmlaRelatoinshipDateTimeRelationshipBehavior[XmlaRelatoinshipDateTimeRelationshipBehavior[\"DatePartOnly\"] = 2] = \"DatePartOnly\";\n})(XmlaRelatoinshipDateTimeRelationshipBehavior || (XmlaRelatoinshipDateTimeRelationshipBehavior = {}));\n/** Indicates how relationships influence filtering of data. The enumeration defines the possible behaviors. */\nexport var XmlaRelationshipCrossFilteringBehavior;\n(function (XmlaRelationshipCrossFilteringBehavior) {\n /** The rows selected in the 'To' end of the relationship will automatically filter scans of the table in the 'From' end of the relationship. */\n XmlaRelationshipCrossFilteringBehavior[XmlaRelationshipCrossFilteringBehavior[\"OneDirection\"] = 1] = \"OneDirection\";\n /** Filters on either end of the relationship will automatically filter the other table. */\n XmlaRelationshipCrossFilteringBehavior[XmlaRelationshipCrossFilteringBehavior[\"BothDirections\"] = 2] = \"BothDirections\";\n /** The engine will analyze the relationships and choose one of the behaviors by using heuristics. */\n XmlaRelationshipCrossFilteringBehavior[XmlaRelationshipCrossFilteringBehavior[\"Automatic\"] = 3] = \"Automatic\";\n})(XmlaRelationshipCrossFilteringBehavior || (XmlaRelationshipCrossFilteringBehavior = {}));\nexport var XmlaPartitionSourceType;\n(function (XmlaPartitionSourceType) {\n XmlaPartitionSourceType[XmlaPartitionSourceType[\"Unsupported\"] = -1] = \"Unsupported\";\n XmlaPartitionSourceType[XmlaPartitionSourceType[\"Query\"] = 0] = \"Query\";\n XmlaPartitionSourceType[XmlaPartitionSourceType[\"M\"] = 1] = \"M\";\n XmlaPartitionSourceType[XmlaPartitionSourceType[\"Calculated\"] = 2] = \"Calculated\";\n XmlaPartitionSourceType[XmlaPartitionSourceType[\"PolicyRange\"] = 3] = \"PolicyRange\";\n})(XmlaPartitionSourceType || (XmlaPartitionSourceType = {}));\nexport var XmlaColumnType;\n(function (XmlaColumnType) {\n XmlaColumnType[XmlaColumnType[\"Unsupported\"] = -1] = \"Unsupported\";\n XmlaColumnType[XmlaColumnType[\"DataColumn\"] = 0] = \"DataColumn\";\n XmlaColumnType[XmlaColumnType[\"CalculatedColumn\"] = 1] = \"CalculatedColumn\";\n XmlaColumnType[XmlaColumnType[\"CalculatedTableColumn\"] = 2] = \"CalculatedTableColumn\";\n})(XmlaColumnType || (XmlaColumnType = {}));\n/** Specifies the granularity of the refresh policy for auto partitioning. */\nexport var RefreshGranularityType;\n(function (RefreshGranularityType) {\n /** Invalid Granularity. */\n RefreshGranularityType[RefreshGranularityType[\"Invalid\"] = -1] = \"Invalid\";\n /** Granularity of a day. */\n RefreshGranularityType[RefreshGranularityType[\"Day\"] = 0] = \"Day\";\n /** Granularity of a month. */\n RefreshGranularityType[RefreshGranularityType[\"Month\"] = 1] = \"Month\";\n /** Granularity of a quarter. */\n RefreshGranularityType[RefreshGranularityType[\"Quarter\"] = 2] = \"Quarter\";\n /** Granularity of a year. */\n RefreshGranularityType[RefreshGranularityType[\"Year\"] = 3] = \"Year\";\n})(RefreshGranularityType || (RefreshGranularityType = {}));\n/** The type of DataSource. */\nexport var DataSourceType;\n(function (DataSourceType) {\n /** A data source having a data provider and connection string. */\n DataSourceType[DataSourceType[\"Provider\"] = 1] = \"Provider\";\n})(DataSourceType || (DataSourceType = {}));\n/** Determines how credentials are obtained for an impersonated connection to a data\n * source during data import or refresh. */\nexport var ImpersonationMode;\n(function (ImpersonationMode) {\n /** Uses the inherited value from the ImpersonationMode on the DataSourceImpersonationInfo\n * object in the database. */\n ImpersonationMode[ImpersonationMode[\"Default\"] = 1] = \"Default\";\n /** A Windows user account having read permissions on the external data source. */\n ImpersonationMode[ImpersonationMode[\"ImpersonateAccount\"] = 2] = \"ImpersonateAccount\";\n /** Not supported. */\n ImpersonationMode[ImpersonationMode[\"ImpersonateAnonymous\"] = 3] = \"ImpersonateAnonymous\";\n /** Not supported for tabular model databases attached to an Analysis Services instance. */\n ImpersonationMode[ImpersonationMode[\"ImpersonateCurrentUser\"] = 4] = \"ImpersonateCurrentUser\";\n /** Startup account of the Analysis Services instance. This account must have read\n * permissions on a data source to enable data refresh. */\n ImpersonationMode[ImpersonationMode[\"ImpersonateServiceAccount\"] = 5] = \"ImpersonateServiceAccount\";\n /** Do not reference this member directly in your code. It supports the Analysis\n * Services infrastructure. */\n ImpersonationMode[ImpersonationMode[\"ImpersonateUnattendedAccount\"] = 6] = \"ImpersonateUnattendedAccount\";\n})(ImpersonationMode || (ImpersonationMode = {}));\n/** Controls the locking behavior of the SQL statements when executing commands against\n * the data source. */\nexport var DatasourceIsolation;\n(function (DatasourceIsolation) {\n /** Specifies that statements cannot read data that has been modified, but not committed,\n * by other transactions. This prevents dirty reads. */\n DatasourceIsolation[DatasourceIsolation[\"ReadCommitted\"] = 1] = \"ReadCommitted\";\n /** Specifies that the data read by any statement in a transaction is transactionally\n * consistent, as if the statements in a transaction receive a snapshot of the committed\n * data as it existed at the start of the transaction. */\n DatasourceIsolation[DatasourceIsolation[\"Snapshot\"] = 2] = \"Snapshot\";\n})(DatasourceIsolation || (DatasourceIsolation = {}));\n/** Indicates the dialect of the query expression. */\nexport var ExpressionKind;\n(function (ExpressionKind) {\n /** The expression is based on the M dialect. */\n ExpressionKind[ExpressionKind[\"M\"] = 0] = \"M\";\n})(ExpressionKind || (ExpressionKind = {}));\n","import { ColumnType } from './column-type';\nimport { ModeFlags } from './mode-flags';\nimport { NotificationType } from './notification-type';\nimport { WebhookType } from './webhook-type';\nimport { SubqueryFormat } from './subquery-type';\nexport var ItemAction;\n(function (ItemAction) {\n ItemAction[ItemAction[\"None\"] = 0] = \"None\";\n ItemAction[ItemAction[\"Remove\"] = 1] = \"Remove\";\n ItemAction[ItemAction[\"Add\"] = 2] = \"Add\";\n ItemAction[ItemAction[\"Update\"] = 3] = \"Update\";\n})(ItemAction || (ItemAction = {}));\nexport var NotesType;\n(function (NotesType) {\n NotesType[\"Comment\"] = \"Comment\";\n NotesType[\"Mention\"] = \"Mention\";\n})(NotesType || (NotesType = {}));\nexport var DependencyType;\n(function (DependencyType) {\n DependencyType[DependencyType[\"FinishToStart\"] = 0] = \"FinishToStart\";\n DependencyType[DependencyType[\"StartToStart\"] = 1] = \"StartToStart\";\n DependencyType[DependencyType[\"FinishToFinish\"] = 2] = \"FinishToFinish\";\n DependencyType[DependencyType[\"StartToFinish\"] = 3] = \"StartToFinish\";\n})(DependencyType || (DependencyType = {}));\n/** Describes the different types of timeline events for an item */\nexport var TimelineEventType;\n(function (TimelineEventType) {\n TimelineEventType[TimelineEventType[\"Email\"] = 0] = \"Email\";\n TimelineEventType[TimelineEventType[\"Note\"] = 1] = \"Note\";\n TimelineEventType[TimelineEventType[\"System\"] = 2] = \"System\";\n TimelineEventType[TimelineEventType[\"ItemUpdate\"] = 3] = \"ItemUpdate\";\n TimelineEventType[TimelineEventType[\"ItemCreate\"] = 4] = \"ItemCreate\";\n TimelineEventType[\"DiffOperation\"] = \"DiffOperation\";\n})(TimelineEventType || (TimelineEventType = {}));\nexport * from './field-type';\nexport * from './default-fields';\nexport * from './adaptive-form';\nexport * from './test-plan';\nimport * as PowerBI_1 from './powerbi-models';\nexport { PowerBI_1 as PowerBI };\nimport * as Xmla_1 from './xmla-models';\nexport { Xmla_1 as Xmla };\nimport * as QueryBuilder_1 from './query-builder';\nexport { QueryBuilder_1 as QueryBuilder };\nexport { ColumnType, WebhookType, SubqueryFormat, ModeFlags, NotificationType };\n","import { DefaultFields, IField, IList } from \"@rapid/data-model\";\n\nexport const allFields = (list: IList): IField[] => [\n {\n ColumnName: 'id',\n FieldType: 'Number',\n Title: 'Id',\n },\n ...DefaultFields(list),\n ...list.Fields,\n];","import { IField, IList } from \"@rapid/data-model\";\nimport { useCurrentSite } from \"@rapid/sdk\";\nimport { allFields } from \"./allFields\";\n\nexport function useListFields() {\n const [currentSite] = useCurrentSite();\n\n function getListFields(listOrTable: string | IList): IField[]|undefined {\n \n const innerList =\n typeof listOrTable !== 'string'\n ? listOrTable\n : currentSite?.Lists.find(l => l.ListName.localeCompare(listOrTable) === 0 || l.Table.localeCompare(listOrTable) === 0);\n\n if (!innerList) return undefined;\n \n if (innerList.Extends === undefined)\n return allFields(innerList);\n \n const extendedList = currentSite?.Lists.find(\n l =>\n l.ListName.localeCompare(\n innerList.Extends!) === 0,\n )!;\n\n if (!extendedList?.Fields)\n return allFields(innerList);\n\n return [\n ...extendedList.Fields,\n ...allFields(innerList)\n ] as IField[]; \n }\n\n\n return { getListFields };\n}","import { AnyListItem, IChoice, IField } from '@rapid/data-model';\nimport { Table, Tag } from 'antd';\nimport Paragraph from 'antd/lib/typography/Paragraph';\nimport { ReactNode, useMemo } from 'react';\nimport { useListFields } from '../../utils/ListFields';\n\nexport interface IAdaptiveViewTableColumn {\n columnName: string;\n tableName: string;\n dataIndex: string;\n}\n\nexport interface IAdaptiveViewTableProps {\n columns?: IAdaptiveViewTableColumn[];\n data?: AnyListItem[];\n}\n\nexport function AdaptiveViewTable(\n props: React.PropsWithoutRef,\n) {\n const { getListFields } = useListFields();\n\n function renderColumn(field: IField): ReactNode {\n\n switch (field.Settings?.DisplayAs || field.FieldType) {\n case 'DateTime':\n return (value: string) => {\n if (!value) return null;\n return new Date(value).toLocaleDateString();\n };\n case 'Choice':\n return (value: string,) => {\n if (!value) return null;\n const choice = field.Settings?.Choices?.find(\n choice => (choice as IChoice).Text === value,\n ) as IChoice;\n return !!choice?.AccentColour ? (\n {choice.Text}\n ) : (\n value\n );\n };\n case 'Boolean':\n return (value: boolean) => {\n if (value === true) {\n return (\n } color=\"success\">\n  Yes\n \n );\n }\n\n if (value === false) {\n return (\n } color=\"error\">\n  No\n \n );\n }\n\n return null;\n };\n case 'JSON':\n return (value: JSON) => {\n if (!value) return null;\n const json = JSON.stringify(value);\n return , ]\n }}>\n {json.length > 150 ? `${json.slice(0,140)}...` : json}\n ;\n }\n case 'Percentage':\n return (value: string) => {\n return !!value ? `${value}%` : null;\n } \n case 'Currency':\n return (value: string) => {\n return !!value ? `${field.Settings?.CurrencyType} ${value}` : null;\n }\n default:\n return (value: string) => {\n return !!value ? `${value}` : null;\n }\n }\n }\n\n const columns = useMemo(() => {\n if (!!props.columns) {\n const columns: any[] = [];\n for (const column of props.columns) {\n const fields = getListFields(column.tableName);\n const field = fields?.find(f => f.ColumnName === column.columnName);\n columns.push({\n key: column.dataIndex,\n title: field ? field.Title : column.columnName,\n dataIndex: column.dataIndex,\n render: field\n ? renderColumn(field)\n : (value: string) => (!!value ? `${value}` : null),\n width: 150,\n });\n }\n return columns;\n }\n }, [props.columns]);\n\n return !!props.data && !!columns ? (\n \n ) : (\n <>\n );\n}\n","import React, { useCallback, useMemo } from 'react';\nimport * as Controls from './index';\nconst adaptiveFormContext = React.createContext(null);\nconst FormProvider = adaptiveFormContext.Provider;\nadaptiveFormContext.displayName = 'Adaptive Form Context';\nexport function AdaptiveFormContext({ formSchema, data, onChange, components, children, }) {\n const componentLibrary = useMemo(() => ({\n 'Input.Text': Controls.TextField,\n 'Input.Number': Controls.NumberField,\n 'Input.WholeNumber': Controls.NumberField,\n 'Input.Percentage': Controls.PercentageField,\n 'Input.Currency': Controls.CurrencyField,\n 'Input.Choice': Controls.ChoiceField,\n 'Input.MultiLookup': Controls.MultiLookupField,\n 'Input.Lookup': Controls.LookupField,\n 'Input.User': Controls.UserField,\n 'Input.DateTime': Controls.DateTimeField,\n 'Input.Boolean': Controls.BooleanField,\n 'Input.Email': Controls.EmailField,\n 'Input.Computed': Controls.ComputedField,\n 'Input.Subquery': Controls.ComputedField,\n 'Input.Radio': Controls.RadioField,\n 'Input.Rating': Controls.StarRating,\n 'Layout.Heading': Controls.HeadingLayout,\n 'Layout.Section': Controls.Section,\n 'Layout.Divider': Controls.LayoutDivider,\n 'Layout.Spacer': Controls.LayoutSpacer,\n 'Layout.Likert': Controls.LikertScale,\n AdaptiveForm: Controls.AdaptiveForm,\n ...components,\n }), [components]);\n return (React.createElement(FormProvider, { value: [{ formSchema, onChange, components: componentLibrary }, data] }, children));\n}\n/**\n * Returns the current Adaptive form context\n *\n * @hook\n * @category RAPID Adaptive Forms\n */\nexport function useAdaptiveFormContext() {\n const [form, data] = React.useContext(adaptiveFormContext);\n return [form, data];\n}\n/**\n * Returns the current Adaptive formSchema and it's updater\n *\n * @hook\n * @category RAPID Adaptive Forms\n */\nexport function useAdaptiveFormElement() {\n const [formContext] = useAdaptiveFormContext();\n return [formContext.formSchema];\n}\nexport function removeField(fieldRef, formElement) {\n if (formElement.id === fieldRef) {\n return;\n }\n if (!!formElement.$children) {\n const ind = formElement.$children.findIndex(i => i.id === fieldRef);\n if (ind !== -1) {\n formElement.$children.splice(ind, 1);\n }\n else {\n for (let child of formElement.$children) {\n removeField(fieldRef, child);\n }\n }\n }\n}\nexport function returnField(fieldRef, formElement) {\n var _a;\n if ((formElement === null || formElement === void 0 ? void 0 : formElement.id) === fieldRef) {\n return formElement;\n }\n if (((_a = formElement.attributes) === null || _a === void 0 ? void 0 : _a.columnName) === fieldRef) {\n return formElement;\n }\n if (!!formElement.$children) {\n for (let child of formElement.$children) {\n const field = returnField(fieldRef, child);\n if (!!field) {\n return field;\n }\n }\n }\n}\nexport function useAdaptiveData() {\n const [context, data] = useAdaptiveFormContext();\n return data;\n}\n/**\n * Returns the specified feildSchema, onChange handler, and Component\n *\n * @hookn\n * @category RAPID Adaptive Forms\n */\nexport function useAdaptiveField(elementRef) {\n const [formContext, data] = useAdaptiveFormContext();\n const formElement = useMemo(function findFeildTypeOnMount() {\n const field = returnField(elementRef, formContext.formSchema);\n return field;\n }, [elementRef, formContext.formSchema]);\n const onChange = useCallback(function onChange(value) {\n formContext.onChange(formElement, value);\n }, [formContext.onChange, formElement]);\n const onBlur = () => { };\n // const key = formElement.attributes?.columnName ?? formElement.id;\n const key = formElement.id;\n return [\n formElement,\n data === null || data === void 0 ? void 0 : data[key],\n { onChange, onBlur },\n formContext.components[formElement === null || formElement === void 0 ? void 0 : formElement['$type']],\n data === null || data === void 0 ? void 0 : data[key.replace(/_id$/, '')],\n ];\n}\n","import React from 'react';\nimport { AdaptiveFormContext, FormElement, } from './index';\nexport function AdaptiveRenderer({ components, form, data, onChange, disabled, }) {\n return (React.createElement(AdaptiveFormContext, { formSchema: form, components: components, data: data, onChange: onChange },\n React.createElement(FormElement, { disabled: disabled, elementRef: form.id })));\n}\n","import React from 'react';\nimport { AdaptiveRenderer } from './adaptive-renderer';\nimport { useAdaptiveFormContext } from '.';\n/*\n TODO\n\n This guy is close.\n\n We need it to:\n - Be called AdaptiveForm\n - Handle Arrays and Objest as value types\n - Check if conditions work...\n*/\nexport function AdaptiveForm({ onChange, value, $children, dataType, id, direction, }) {\n const [context] = useAdaptiveFormContext();\n const isArray = Array.isArray(value);\n const isValueObject = typeof (value === null || value === void 0 ? void 0 : value[0]) === 'object' &&\n !Array.isArray(value === null || value === void 0 ? void 0 : value[0]) &&\n (value === null || value === void 0 ? void 0 : value[0]) !== null;\n const onChangeInner = (index) => (el, val) => {\n if (isArray && index !== undefined) {\n const newVal = [...value];\n newVal[index] = val;\n onChange(newVal);\n return;\n }\n const newVal = { ...value, [el.id]: val };\n onChange(newVal);\n };\n const onChangeLayout = (index) => (val) => {\n if (isArray) {\n const newVal = [...value];\n newVal.splice(index, 1, val);\n onChange(newVal);\n return;\n }\n };\n if (isArray && !isValueObject) {\n return (React.createElement(\"form\", { className: \"AdaptiveForm\" }, $children.map((c, ind) => {\n return (React.createElement(AdaptiveRenderer, { key: c.id, form: {\n $type: 'Layout.Section',\n id: id,\n attributes: {\n direction: direction\n },\n $children: [c],\n }, data: { [c.id]: value[ind] }, onChange: onChangeInner(ind), components: context.components }));\n })));\n }\n if (isArray && isValueObject) {\n return (React.createElement(React.Fragment, null, $children.map((c, ind) => (React.createElement(AdaptiveForm, { ...c, key: c.id, onChange: onChangeLayout(ind), value: value[ind], attributes: {\n dataType: dataType,\n direction: direction,\n } })))));\n }\n return (React.createElement(AdaptiveRenderer, { form: {\n $type: 'Layout.Section',\n id: id,\n attributes: {\n direction: direction\n },\n $children,\n }, data: value, onChange: onChangeInner(), components: context.components }));\n}\n","import React, { useMemo } from 'react';\nimport { useAdaptiveData, useAdaptiveField } from './index';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { transformAll } from '@demvsystems/yup-ast';\nexport function FormElement({ elementRef, disabled }) {\n const [element, value, helpers, Component, selectedValue] = useAdaptiveField(elementRef);\n const data = useAdaptiveData();\n const schema = useMemo(function transformElementConditionSchema() {\n if (Array.isArray(element.conditions)) {\n const allValidation = element.conditions.reduce((prev, curr) => {\n const next = {\n [curr.elementRef]: curr.validation,\n ...prev,\n };\n return next;\n }, {});\n const schema = transformAll([\n ['yup.object'],\n ['yup.shape', allValidation],\n ]);\n return schema;\n }\n }, [element.conditions]);\n const isValid = useMemo(function runValidationSchema() {\n var _a;\n if (!!schema) {\n const isValid = (_a = schema === null || schema === void 0 ? void 0 : schema.isValidSync(data)) !== null && _a !== void 0 ? _a : true;\n return isValid;\n }\n return true;\n }, [data, schema]);\n const fieldClass = useComposedClassName(function* () {\n yield 'Field';\n yield isValid ? '' : 'hidden';\n }, [isValid, element === null || element === void 0 ? void 0 : element.conditions]);\n if (!!Component) {\n return (React.createElement(\"div\", { className: fieldClass, id: element.id },\n React.createElement(Component, { \"$type\": element.$type, id: element.id, value: value !== null && value !== void 0 ? value : element.defaultValue, onChange: helpers.onChange, onBlur: helpers.onBlur, label: element.label, placeholder: element.placeholder, selectedValue: selectedValue, disabled: disabled, ...element.attributes, \"$children\": element.$type.includes('AdaptiveForm')\n ? element.$children\n : undefined }, Array.isArray(element.$children) &&\n !element.$type.includes('AdaptiveForm') &&\n element.$children.map(child => (React.createElement(FormElement, { disabled: disabled, key: child.id, elementRef: child.id }))))));\n }\n else {\n return React.createElement(\"div\", null,\n elementRef,\n \" does not exist\");\n }\n}\n","export const fieldAttributesSchemaTag = Symbol.for('Field Attributes Form Schema');\nexport const rapidAttributesSchemaTag = Symbol.for('Rapid Attributes Form Schema');\nexport const descriptionTag = Symbol.for('Component Description');\nexport const iconTag = Symbol.for('Component Icon');\nexport const titleTag = Symbol.for('Component Title');\nexport const configComponentTag = Symbol.for('Config Component');\n","import React from 'react';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../symbols';\nimport { Input } from 'antd';\nexport function TextField({ disabled, id, value, columnName, placeholder, label, onChange, size, }) {\n const onChangeInner = (e) => {\n onChange(e.target.value);\n };\n const textFieldClass = useComposedClassName(function* () {\n yield 'Label TextInput';\n if (!!columnName)\n yield columnName;\n if (disabled)\n yield 'disabled';\n }, [columnName, disabled]);\n return (React.createElement(\"label\", { className: textFieldClass, id: id, title: label },\n !!label && React.createElement(\"span\", { className: \"Name\" }, label),\n React.createElement(Input, { disabled: disabled, onChange: onChangeInner, value: value !== null && value !== void 0 ? value : '', placeholder: placeholder, size: size })));\n}\nTextField[titleTag] = 'Single line of text';\nTextField[descriptionTag] =\n 'A single line of text input with the ability to be filled via QR code scan';\nTextField[iconTag] = 'fa-text';\nTextField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Text',\n id: 'defaultValue',\n label: 'Default Value',\n },\n {\n $type: 'Input.Text',\n id: 'placeholder',\n label: 'Placeholder',\n },\n {\n $type: 'Input.Boolean',\n id: 'required',\n label: 'Required',\n },\n];\n","import React, { useState } from 'react';\nimport { useComposedClassName, useThrottledFn } from '@rapid/sdk';\nimport { Input, Popconfirm, Tooltip } from 'antd';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../symbols';\nexport function EmailField({ id, columnName, value, label, onChange, disabled, }) {\n const [isValid, setIsValid] = useState(true);\n const validateInput = (value) => {\n if (!value) {\n setIsValid(true);\n return;\n }\n setIsValid(/^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/g.test(value));\n };\n const throttledValidateInput = useThrottledFn(validateInput, 250, []);\n const onEmailChange = (e) => {\n onChange === null || onChange === void 0 ? void 0 : onChange(e.target.value);\n };\n const onBlur = (e) => {\n throttledValidateInput(e.target.value);\n };\n const handleSendEmailClicked = (send) => () => {\n if (!send) {\n return;\n }\n window.open(`mailto:${value}`, '_blank');\n };\n const emailFieldClass = useComposedClassName(function* () {\n yield 'Email Label flex column';\n if (!!columnName)\n yield columnName;\n if (disabled)\n yield 'disabled';\n if (isValid) {\n !(value === null || value === void 0 ? void 0 : value.length) ? yield 'empty' : yield 'valid';\n }\n else {\n yield 'invalid';\n }\n }, [columnName, disabled, isValid, value]);\n return (React.createElement(\"label\", { className: emailFieldClass, id: id },\n !!label && React.createElement(\"span\", { className: \"Name\" }, label),\n React.createElement(Input, { size: \"small\", disabled: disabled, onChange: onEmailChange, onBlur: onBlur, value: value !== null && value !== void 0 ? value : '', allowClear: true, suffix: React.createElement(Popconfirm, { overlayClassName: \"EmailConfirmPopover\", disabled: !isValid || !(value === null || value === void 0 ? void 0 : value.length), title: `Send an email to ${value}`, okText: \"Yes\", cancelText: \"No\", onConfirm: handleSendEmailClicked(true), onCancel: handleSendEmailClicked(false), icon: React.createElement(\"i\", { className: \"fal fa-question-circle\" }) },\n React.createElement(Tooltip, { visible: !isValid, title: \"Doesn't match email pattern i.e. name@address.com\" },\n React.createElement(\"i\", { className: \"EmailIcon fas fa-envelope\" }))) })));\n}\nEmailField[titleTag] = 'Email';\nEmailField[descriptionTag] = 'Field with built in email validation';\nEmailField[iconTag] = 'fa-envelope';\nEmailField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Email',\n id: 'defaultValue',\n label: 'Default Value',\n },\n {\n $type: 'Input.Text',\n id: 'placeholder',\n label: 'Placeholder',\n },\n {\n $type: 'Input.Boolean',\n id: 'required',\n label: 'Required',\n },\n];\n","import { useCallback } from 'react';\nimport { throttle } from './utils/throttle';\n/**\n * Accepts a function and returns a new throttled yet memoized version of that same function that waits the defined time\n * before allowing the next execution.\n * If time is not defined, its default value will be 100ms.\n */\nexport const useThrottledFn = (fn, wait = 100, dependencies) => {\n const throttled = throttle(fn, wait);\n return useCallback(throttled, dependencies);\n};\n","import { useViewContextListItemArray } from '@rapid/sdk';\nimport { Spinner } from '@rapid/sdk/lib/ui';\nimport { Select } from 'antd';\nimport React, { useMemo, useState } from 'react';\nexport function LookupSelect({ setSearchTerm, labelKey, selectedValue, valueKey, onChange, dropdownRender, mode, columnName, id, }) {\n const [items, context] = useViewContextListItemArray();\n const [innerSearchTerm, setInnerSearchTerm] = useState('');\n const options = useMemo(() => items.map(item => {\n var _a;\n let itemLabel = (_a = item[labelKey.replace(/_id$/, '')]) === null || _a === void 0 ? void 0 : _a.toString().trim();\n const label = itemLabel === 'undefined' || itemLabel === 'null' ? (React.createElement(\"span\", { className: \"gce-text-meta text-muted\" },\n \"<\",\n context.list.ListNameSingular,\n \" \",\n item.id,\n \">\")) : (itemLabel);\n return {\n label,\n value: item[valueKey],\n item,\n column_name: columnName,\n };\n }), [items]);\n const onSearchChange = (value) => {\n setInnerSearchTerm(value);\n };\n const onSelect = (value, option) => {\n if (!!Array.isArray(option)) {\n return;\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(option);\n };\n const onDeselect = (value) => {\n onChange === null || onChange === void 0 ? void 0 : onChange();\n };\n const onKeyDown = (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n setSearchTerm(innerSearchTerm);\n }\n };\n const fetchItemsOnOpen = (open) => {\n if (open) {\n context.fetchItems();\n }\n };\n return (React.createElement(Select, { showArrow: true, notFoundContent: context.loading && React.createElement(Spinner, null), loading: context.loading, defaultActiveFirstOption: false, getPopupContainer: () => document.getElementById(id), value: selectedValue, dropdownRender: dropdownRender, onSelect: onSelect, onDeselect: onDeselect, onChange: onSelect, optionLabelProp: 'label', searchValue: innerSearchTerm, onInputKeyDown: onKeyDown, onSearch: onSearchChange, filterOption: false, showSearch: true, options: context.loading ? null : options, mode: mode, onDropdownVisibleChange: fetchItemsOnOpen }));\n}\n","import { useMemo } from \"react\";\nimport { useViewContext } from \"./rapid-application\";\nexport function useViewContextListItemArray() {\n const [viewContext] = useViewContext();\n const listItems = useMemo(() => Array.from(viewContext.items), [viewContext.items]);\n return [listItems, viewContext];\n}\n","import { Button, Divider } from 'antd';\nimport React from 'react';\nexport function FilteredSelectDropdown({ menu, setFilter, filter, filters, filtersTitle, }) {\n const onFilterClick = (filter) => () => {\n setFilter(filter);\n };\n return (React.createElement(\"div\", { className: \"FilteredSelectDropdown\" },\n React.createElement(\"div\", { className: \"Menu\" }, menu),\n React.createElement(\"div\", { className: \"Filters\" },\n React.createElement(\"h5\", { className: \"Title\" }, filtersTitle !== null && filtersTitle !== void 0 ? filtersTitle : 'Filters'),\n React.createElement(Divider, { className: \"Divider\" }),\n React.createElement(\"div\", { className: \"FiltersScroll\" }, filters.map(f => (React.createElement(Button, { type: f === filter ? 'primary' : 'default', className: \"Filter\", key: f, onClick: onFilterClick(f), size: \"small\" }, f)))))));\n}\n","import { ManagedViewContext, useComposedClassName, useCurrentSite, } from '@rapid/sdk';\nimport inflection from 'inflection';\nimport { useState } from 'react';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, rapidAttributesSchemaTag, titleTag, } from '../../symbols';\nimport React from 'react';\nimport { LookupSelect } from './lookup-select';\nimport { FilteredSelectDropdown } from './filtered-select-dropdown';\nexport function MultiLookupField({ columnName, lookupList, lookupField, label, id, disabled, onChange, $type, value, }) {\n var _a, _b, _c, _d;\n const [site] = useCurrentSite();\n const [dataSource, setDataSource] = useState('All');\n const [searchTerm, setSearchTerm] = useState('');\n const multiLookupFieldClass = useComposedClassName(function* () {\n yield 'Email Label flex column';\n if (disabled)\n yield 'disabled';\n }, [disabled]);\n const valueKey = useComposedClassName(function* () {\n if ($type === 'Input.User') {\n yield 'principal_id';\n return;\n }\n yield 'id';\n }, [lookupField]);\n const filters = (_d = (_c = (_a = site === null || site === void 0 ? void 0 : site.DataSources) === null || _a === void 0 ? void 0 : _a[inflection.singularize(inflection.dasherize((_b = lookupList === null || lookupList === void 0 ? void 0 : lookupList.toLocaleLowerCase()) !== null && _b !== void 0 ? _b : ''))]) === null || _c === void 0 ? void 0 : _c.map(d => d.Title)) !== null && _d !== void 0 ? _d : [];\n const onChangeInner = (option) => {\n let newValue = [...(value !== null && value !== void 0 ? value : [])];\n const ind = newValue.findIndex(i => i.value === option.value);\n if (ind === -1) {\n newValue.push(option);\n }\n else {\n newValue.splice(ind, 1);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(newValue);\n };\n return (React.createElement(\"label\", { className: multiLookupFieldClass, id: id },\n !!label && React.createElement(\"span\", { className: \"Name\" }, label),\n React.createElement(ManagedViewContext, { list: lookupList !== null && lookupList !== void 0 ? lookupList : '', dataSource: dataSource, searchTerm: searchTerm },\n React.createElement(LookupSelect, { id: id, value: value, dropdownRender: menu => (React.createElement(FilteredSelectDropdown, { menu: menu, setFilter: setDataSource, filter: dataSource, filters: filters, filtersTitle: \"Views\" })), onChange: onChangeInner, labelKey: lookupField !== null && lookupField !== void 0 ? lookupField : 'title', valueKey: valueKey, setSearchTerm: setSearchTerm, searchTerm: searchTerm, setFilter: setDataSource, mode: \"multiple\", columnName: columnName }))));\n}\nMultiLookupField[titleTag] = 'Multilookup';\nMultiLookupField[descriptionTag] = 'RAPID Platform multilookup field';\nMultiLookupField[iconTag] = 'fa-search-plus';\nMultiLookupField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Text',\n id: 'placeholder',\n label: 'Placeholder',\n },\n {\n $type: 'Input.Boolean',\n id: 'required',\n label: 'Required',\n },\n];\nMultiLookupField[rapidAttributesSchemaTag] = [\n {\n $type: 'Input.List',\n id: '$.attributes.lookupList',\n label: 'Lookup List',\n },\n {\n $type: 'Input.Text',\n id: '$.attributes.lookupField',\n label: 'Lookup Field',\n },\n {\n $type: 'Input.Text',\n id: '$.attributes.columnName',\n label: 'RAPID Column Name',\n },\n];\n","import { DatePicker, Space } from 'antd';\nimport React, { useMemo } from 'react';\nimport moment from 'moment';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../../symbols';\nexport function DateTimeField({ label, value, onChange, disabled, id, showTime, size, }) {\n const onChangeInner = (value, dateString) => {\n if (value === null || value === void 0 ? void 0 : value.isValid) {\n onChange === null || onChange === void 0 ? void 0 : onChange(value.toDate());\n }\n else {\n onChange === null || onChange === void 0 ? void 0 : onChange(null);\n }\n };\n const dateTimeClass = useComposedClassName(function* () {\n yield 'Label DateTimeField flex column';\n if (disabled)\n yield 'disabled';\n });\n const madMoment = useMemo(() => value && moment(value), [value]);\n return (React.createElement(\"label\", { className: dateTimeClass, id: id },\n !!label && React.createElement(\"span\", { className: \"Name\" }, label),\n React.createElement(DatePicker, { size: size, getPopupContainer: t => t, showTime: showTime && { format: 'HH:mm' }, format: showTime ? 'MMMM Do YYYY - HH:mm' : 'MMMM Do YYYY', disabled: disabled, onChange: onChangeInner, value: madMoment, suffixIcon: React.createElement(Space, null,\n React.createElement(\"i\", { className: \"fal fa-calendar\" }),\n showTime && React.createElement(\"i\", { className: \"fal fa-clock\" })) })));\n}\nDateTimeField[titleTag] = 'Date and time';\nDateTimeField[descriptionTag] =\n 'Select a date and time from a calendar dropdown';\nDateTimeField[iconTag] = 'fa-calendar-day';\nDateTimeField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.DateTime',\n id: 'defaultValue',\n label: 'Default Value',\n },\n {\n $type: 'Input.DateTime',\n id: 'placeholder',\n label: 'Placeholder',\n },\n {\n $type: 'Input.Boolean',\n id: '$.attributes.showTime',\n label: 'Show Time Picker',\n },\n {\n $type: 'Input.Boolean',\n id: 'required',\n label: 'Required',\n },\n];\n","import { useComposedClassName } from '@rapid/sdk';\nimport { Select } from 'antd';\nimport React, { useMemo } from 'react';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../../symbols';\nexport function ChoiceField({ label, id, value, disabled, choices, onChange, valueKey, labelKey, size, }) {\n const options = useMemo(function buildOptionsFromChoices() {\n const options = [];\n for (const choice of choices !== null && choices !== void 0 ? choices : []) {\n // TODO This needs to use the\n // Classnames and css variables\n // hook that tyler made\n options.push({\n label: (React.createElement(\"div\", { style: {\n display: 'flex',\n alignItems: 'center',\n } },\n React.createElement(\"span\", { style: {\n marginRight: '5px',\n backgroundColor: choice === null || choice === void 0 ? void 0 : choice.AccentColour,\n height: '10px',\n width: '10px',\n borderRadius: '3px',\n } }),\n choice[labelKey !== null && labelKey !== void 0 ? labelKey : 'Text'])),\n value: choice[valueKey !== null && valueKey !== void 0 ? valueKey : 'Text'],\n title: choice[labelKey !== null && labelKey !== void 0 ? labelKey : 'Text'],\n });\n }\n return options;\n }, [choices]);\n const choiceClass = useComposedClassName(function* () {\n yield 'Choice Label flex column';\n if (disabled)\n yield 'disabled';\n }, [choices, disabled]);\n const onChangeInner = (value, option) => {\n onChange === null || onChange === void 0 ? void 0 : onChange(value);\n };\n return (React.createElement(\"label\", { className: choiceClass, id: id },\n !!label && React.createElement(\"span\", { className: \"Name\" }, label),\n React.createElement(Select, { getPopupContainer: t => t.parentElement, disabled: disabled, showSearch: true, value: value, onChange: onChangeInner, options: options, size: size })));\n}\nChoiceField[titleTag] = 'Choice';\nChoiceField[descriptionTag] = 'Select from a dropdown of choices';\nChoiceField[iconTag] = 'fa-clipboard-list-check';\nChoiceField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Text',\n id: 'defaultValue',\n label: 'Default Value',\n },\n {\n $type: 'Input.Text',\n id: 'placeholder',\n label: 'Placeholder',\n },\n {\n $type: 'Input.Boolean',\n id: 'required',\n label: 'Required',\n },\n];\n","import { ManagedViewContext, useComposedClassName, useCurrentSite, } from '@rapid/sdk';\nimport inflection from 'inflection';\nimport React, { useEffect } from 'react';\nimport { useState } from 'react';\nimport { descriptionTag, fieldAttributesSchemaTag, FilteredSelectDropdown, iconTag, LookupSelect, titleTag, useCascadingLookups, } from '../../index';\nexport function LookupField({ lookupList, lookupField, label, id, disabled, selectedValue, onChange, value, columnName, }) {\n var _a, _b, _c, _d;\n const [site] = useCurrentSite();\n const [dataSource, setDataSource] = useState('All');\n const [searchTerm, setSearchTerm] = useState('');\n const [linkedTo, view] = useCascadingLookups(id);\n const multiLookupFieldClass = useComposedClassName(function* () {\n yield 'Email Label flex column';\n if (disabled)\n yield 'disabled';\n }, [disabled]);\n const valueKey = useComposedClassName(function* () {\n yield 'id';\n }, [lookupField]);\n const filters = (_d = (_c = (_a = site === null || site === void 0 ? void 0 : site.DataSources) === null || _a === void 0 ? void 0 : _a[inflection.singularize(inflection.dasherize((_b = lookupList === null || lookupList === void 0 ? void 0 : lookupList.toLocaleLowerCase()) !== null && _b !== void 0 ? _b : ''))]) === null || _c === void 0 ? void 0 : _c.map(d => d.Title)) !== null && _d !== void 0 ? _d : [];\n if (!!view) {\n filters.unshift(view);\n }\n useEffect(function () {\n if (!!view) {\n setDataSource(view);\n }\n else {\n setDataSource('All');\n }\n }, [view]);\n const onChangeInner = (option) => {\n if (!option) {\n onChange === null || onChange === void 0 ? void 0 : onChange({ value: null, label: '' });\n return;\n }\n onChange === null || onChange === void 0 ? void 0 : onChange({\n value: +option.value,\n columnName: columnName,\n label: option.label,\n });\n };\n return (React.createElement(\"label\", { className: multiLookupFieldClass, id: id },\n !!label && React.createElement(\"span\", { className: \"Name\" }, label),\n React.createElement(ManagedViewContext, { disableAutoFetch: true, list: lookupList !== null && lookupList !== void 0 ? lookupList : '', dataSource: dataSource === view ? 'All' : dataSource, searchTerm: searchTerm, linkedTo: linkedTo },\n React.createElement(LookupSelect, { id: id, dropdownRender: menu => (React.createElement(FilteredSelectDropdown, { menu: menu, setFilter: setDataSource, filter: dataSource, filters: filters, filtersTitle: \"Views\" })), onChange: onChangeInner, labelKey: lookupField !== null && lookupField !== void 0 ? lookupField : 'title', valueKey: valueKey, selectedValue: selectedValue, setSearchTerm: setSearchTerm, searchTerm: searchTerm, setFilter: setDataSource, value: value }))));\n}\nLookupField[titleTag] = 'Lookup';\nLookupField[descriptionTag] = 'RAPID Platform lookup field';\nLookupField[iconTag] = 'fa-search';\nLookupField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Text',\n id: 'placeholder',\n label: 'Placeholder',\n },\n {\n $type: 'Input.List',\n id: '$.attributes.lookupList',\n label: 'Lookup List',\n attributes: {\n includeSystemLists: false,\n },\n },\n {\n $type: 'Input.Column',\n id: '$.attributes.lookupField',\n label: 'Lookup Field',\n attributes: {\n targetElementRef: '$.attributes.lookupList',\n },\n },\n {\n $type: 'Input.Boolean',\n id: 'required',\n label: 'Required',\n },\n];\n","import { returnField, useAdaptiveData, useAdaptiveFormContext, } from '../adaptive-form-context';\nexport function useCascadingLookups(elementRef) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n const [context] = useAdaptiveFormContext();\n const formElement = returnField(elementRef, context.formSchema);\n const data = useAdaptiveData();\n /* FIXME this is currently just using the first binding */\n const lookupBinding = (_b = (_a = formElement.attributes) === null || _a === void 0 ? void 0 : _a.lookupBindings) === null || _b === void 0 ? void 0 : _b[0];\n let linkedTo;\n let view;\n if (!!lookupBinding && !!(data === null || data === void 0 ? void 0 : data[lookupBinding === null || lookupBinding === void 0 ? void 0 : lookupBinding.LookupValueSource])) {\n const targetElement = returnField(lookupBinding.LookupValueSource, context.formSchema);\n linkedTo = `${(_c = targetElement.attributes) === null || _c === void 0 ? void 0 : _c.lookupList}/${(_e = (_d = data[lookupBinding.LookupValueSource]) === null || _d === void 0 ? void 0 : _d.value) !== null && _e !== void 0 ? _e : data[lookupBinding.LookupValueSource]}`;\n const listName = (_h = (_g = (_f = targetElement.attributes) === null || _f === void 0 ? void 0 : _f.columnName.match(/(?.*)_id/)) === null || _g === void 0 ? void 0 : _g.groups) === null || _h === void 0 ? void 0 : _h.list;\n view = !!listName\n ? (_k = (_j = data[lookupBinding.LookupValueSource]) === null || _j === void 0 ? void 0 : _j.label) !== null && _k !== void 0 ? _k : data[`${lookupBinding.LookupValueSource}_label`] + ' - ' + listName\n : data[lookupBinding.LookupValueSource];\n }\n if (!!((_l = lookupBinding === null || lookupBinding === void 0 ? void 0 : lookupBinding.Fields) === null || _l === void 0 ? void 0 : _l.length)) {\n lookupBinding.Fields.length === 2\n ? linkedTo + `${lookupBinding.Fields[0]}=${lookupBinding.Fields[1]}`\n : linkedTo + lookupBinding.Fields[0];\n }\n if (!!linkedTo) {\n return [linkedTo, view];\n }\n return [];\n}\n","import React, { useRef, useState } from 'react';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../symbols';\nexport function BooleanField({ id, value, label, disabled, onChange, }) {\n const checkboxRef = useRef(null);\n const onChangeInner = (e) => {\n e.preventDefault();\n e.stopPropagation();\n onChange(!value);\n };\n const onKeyDown = (e) => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onChange(!value);\n }\n if (e.key === 'Space') {\n e.stopPropagation();\n e.preventDefault();\n onChange(!value);\n }\n };\n const [isFocused, setIsFocused] = useState(false);\n const onFocus = () => {\n setIsFocused(true);\n };\n const onBlur = () => {\n setIsFocused(false);\n };\n const onCheckboxChange = (e) => {\n e.preventDefault();\n e.stopPropagation();\n onChange(!value);\n };\n const labelClass = useComposedClassName(function* () {\n yield 'Label flex column';\n if (isFocused)\n yield 'focus';\n if (disabled)\n yield 'disabled';\n }, [isFocused, disabled]);\n const booleanClass = useComposedClassName(function* () {\n yield 'BooleanField';\n if (!!value)\n yield 'on';\n if (!value)\n yield 'off';\n }, [value]);\n return (React.createElement(\"label\", { className: labelClass, id: id },\n !!label && React.createElement(\"span\", { className: \"Name\" }, label),\n React.createElement(\"div\", { className: booleanClass, onClick: onChangeInner },\n React.createElement(\"div\", { className: \"Toggle\" },\n React.createElement(\"div\", { className: \"Switch\" },\n !value && React.createElement(\"i\", { className: \"far fa-times fa-fw Off\" }),\n value && React.createElement(\"i\", { className: \"far fa-check fa-fw On\" }))),\n React.createElement(\"div\", { className: \"Label\" },\n !value && React.createElement(\"span\", { className: \"Off\" }, \"No\"),\n value && React.createElement(\"span\", { className: \"On\" }, \"Yes\")),\n React.createElement(\"input\", { disabled: disabled, ref: checkboxRef, type: \"checkbox\", checked: !!value, onKeyDown: onKeyDown, onBlur: onBlur, onFocus: onFocus, onChange: onCheckboxChange }))));\n}\nBooleanField[titleTag] = 'Boolean';\nBooleanField[descriptionTag] = 'Boolean toggle';\nBooleanField[iconTag] = 'fa-toggle-on';\nBooleanField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Boolean',\n id: 'defaultValue',\n label: 'Default Value',\n },\n {\n $type: 'Input.Boolean',\n id: 'required',\n label: 'Required',\n },\n];\n","import React from 'react';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { Input } from 'antd';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../symbols';\nexport function NumberField({ $type, id, value, label, onChange, disabled, placeholder, currencyType, size, }) {\n const onKeyDown = (e) => {\n var _a;\n if (e.key === 'Backspace' || e.key === 'Delete' || e.key === 'Enter')\n return null;\n if ((_a = e.key) === null || _a === void 0 ? void 0 : _a.match(/\\D/))\n return e.key;\n };\n const onBlur = (e) => {\n if (!!e.target.value.includes('.'))\n onChange === null || onChange === void 0 ? void 0 : onChange(+e.target.value.replace('.', ''));\n };\n const onChangeInner = (e) => {\n if ($type === 'Input.WholeNumber' && !!e.target.value.match(/\\D/))\n return;\n onChange === null || onChange === void 0 ? void 0 : onChange(+e.target.value);\n };\n const labelClass = useComposedClassName(function* () {\n yield 'Label flex column';\n if (disabled)\n yield 'disabled';\n switch ($type) {\n case 'Input.Percentage':\n yield 'PercentageField';\n break;\n case 'Input.Currency':\n yield 'CurrencyField';\n break;\n default:\n yield 'NumberField';\n break;\n }\n }, [$type, disabled]);\n return (React.createElement(\"label\", { className: labelClass, id: id },\n !!label && React.createElement(\"span\", { className: \"Name\" }, label),\n React.createElement(Input, { prefix: $type === 'Input.Currency' && currencyType, suffix: $type === 'Input.Percentage' && (React.createElement(\"i\", { className: \"Percentage far fa-percentage fa-fw\" })), onKeyDown: onKeyDown, placeholder: placeholder, onBlur: onBlur, step: 1, type: \"number\", disabled: disabled, value: value, onChange: onChangeInner, size: size })));\n}\nNumberField[titleTag] = 'Number field';\nNumberField[descriptionTag] = 'A number input';\nNumberField[iconTag] = 'fa-tally';\nNumberField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Number',\n id: 'defaultValue',\n label: 'Default Value',\n },\n {\n $type: 'Input.Text',\n id: 'placeholder',\n label: 'Placeholder',\n },\n {\n $type: 'Input.Boolean',\n id: 'required',\n label: 'Required',\n },\n];\n","import React from 'react';\nimport { ChoiceField, DateTimeField, EmailField, LookupField, } from './index';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../symbols';\nimport { BooleanField } from './boolean-field';\nimport { MultiLookupField } from './multi-lookup-field/multi-lookup-field';\nimport { NumberField } from './number-field';\nimport { TextField } from './text-field';\nexport function ComputedField(props) {\n switch (props.DisplayAs) {\n case 'Boolean':\n return React.createElement(BooleanField, { ...props, disabled: true });\n case 'Note':\n return (React.createElement(TextField, { multiline: true, ...props, disabled: true }));\n case 'Number':\n case 'Currency':\n case 'Percentage':\n case 'Integer':\n return React.createElement(NumberField, { ...props, disabled: true });\n case 'Email':\n return React.createElement(EmailField, { ...props, disabled: true });\n case 'DateTime':\n return React.createElement(DateTimeField, { ...props, disabled: true });\n case 'MultiLookup':\n return (React.createElement(MultiLookupField, { ...props, disabled: true }));\n case 'Lookup':\n case 'User':\n return React.createElement(LookupField, { ...props, disabled: true });\n case 'Choice':\n return React.createElement(ChoiceField, { ...props, disabled: true });\n default:\n return React.createElement(TextField, { ...props, disabled: true });\n }\n}\nComputedField[titleTag] = 'Computed';\nComputedField[descriptionTag] = 'RAPID Platform computed field';\nComputedField[iconTag] = 'fa-computer-classic';\nComputedField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n];\n","import React, { useMemo } from 'react';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../symbols';\nimport { useComposedClassName } from '@rapid/sdk';\nexport function RadioField({ choices, label, direction, onChange, disabled, justifyLeft, }) {\n const uuid = useMemo(function getRadioFieldId() {\n const pallet = '0123456789ABCDEFGHIJKLMOPQRSTUVWZYZ';\n let id = '';\n for (let i = 0; i < 10; i++) {\n id += pallet[Math.floor(Math.random() * pallet.length - 1)];\n }\n return id;\n }, []);\n const directionClassName = useComposedClassName(function* () {\n yield 'RadioField__inputs';\n if (direction)\n yield direction;\n if (disabled)\n yield 'disabled';\n if (justifyLeft)\n yield 'justify-left';\n }, [direction, disabled, justifyLeft]);\n const onChoiceClicked = (value) => () => {\n onChange === null || onChange === void 0 ? void 0 : onChange(value.Text);\n };\n function renderChoices(choices) {\n return choices === null || choices === void 0 ? void 0 : choices.map(choice => {\n return (React.createElement(\"label\", { key: choice.Text, className: \"RadioField__label\" },\n React.createElement(\"input\", { disabled: disabled, onClick: onChoiceClicked(choice), name: uuid, id: uuid, type: \"radio\", value: choice.Value }),\n React.createElement(\"span\", null, choice.Text)));\n });\n }\n return (React.createElement(\"div\", { className: \"RadioField Field\" },\n !!label && React.createElement(\"span\", { className: \"Name\" }, label),\n React.createElement(\"div\", { className: directionClassName }, renderChoices(choices))));\n}\nRadioField[titleTag] = 'Radio';\nRadioField[descriptionTag] = 'Select a single choice from a radio button list';\nRadioField[iconTag] = 'fa-ballot-check';\nRadioField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Boolean',\n label: 'Justify Left',\n id: '$.attributes.justifyLeft',\n },\n {\n $type: 'Input.Array',\n label: 'Choices',\n id: '$.attributes.choices',\n attributes: {\n shape: {\n Text: '',\n },\n path: '$.Text',\n },\n },\n];\n","import * as React from 'react';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../../symbols';\nimport { useMemo } from 'react';\nexport function StarRating({ label, value, onChange, selected, unselected, maxNumber, className, disabled, }) {\n const ratingClassName = useComposedClassName(function* () {\n yield 'StarRating Label flex column';\n if (className)\n yield className;\n if (disabled)\n yield 'disabled';\n }, [className]);\n const onRatingClickedInner = (rating) => () => {\n if (disabled) {\n return;\n }\n if (value === rating) {\n onChange === null || onChange === void 0 ? void 0 : onChange(rating + 1);\n return;\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(rating);\n };\n const stars = useMemo(function buildStarsOnMount() {\n return [...Array(maxNumber !== null && maxNumber !== void 0 ? maxNumber : 5).keys()].reverse();\n }, [maxNumber]);\n return (React.createElement(\"label\", { className: ratingClassName },\n !!label && React.createElement(\"span\", { className: \"Name\" }, label),\n React.createElement(\"div\", { className: \"rating\" }, stars.map(i => (React.createElement(\"i\", { key: i, className: `${value <= i\n ? selected !== null && selected !== void 0 ? selected : 'selected fas fa-star'\n : unselected !== null && unselected !== void 0 ? unselected : 'unselected far fa-star'}`, onClick: onRatingClickedInner(i) }))))));\n}\nStarRating[titleTag] = 'Star rating';\nStarRating[descriptionTag] = 'Simple star rating component';\nStarRating[iconTag] = 'fa-stars';\nStarRating[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Text',\n id: '$.attributes.selected',\n label: 'Icon name for selected',\n },\n {\n $type: 'Input.Text',\n id: '$.attributes.unselected',\n label: 'Icon name for unselected',\n },\n {\n $type: 'Input.Number',\n id: '$.attributes.maxNumber',\n label: 'Number of rating icons that should render',\n },\n];\n","import React, { useEffect, useRef } from 'react';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../../index';\nfunction LikertScale({ label, className, answers, children, id, mobileStyling, rowShading, }) {\n const likertClassName = useComposedClassName(function* () {\n yield 'Likert Label flex column';\n if (className)\n yield className;\n if (rowShading)\n yield 'row-shading';\n if (mobileStyling)\n yield 'mobile-styling';\n }, [className, rowShading, mobileStyling]);\n const ref = useRef(null);\n useEffect(function addGridColumnsOnMount() {\n var _a;\n (_a = ref.current) === null || _a === void 0 ? void 0 : _a.style.setProperty('--likert-grid-columns', answers === null || answers === void 0 ? void 0 : answers.length.toString());\n }, []);\n return (React.createElement(\"label\", { ref: ref, className: likertClassName, id: id, title: label },\n !!label && React.createElement(\"span\", { className: \"Name\" }, label),\n React.createElement(\"div\", { className: \"Answers\" }, answers === null || answers === void 0 ? void 0 : answers.map(a => (React.createElement(\"span\", { className: \"Answer\", key: a }, a)))),\n children));\n}\nLikertScale[titleTag] = 'Likert scale';\nLikertScale[descriptionTag] = 'Select a single choice for multiple questions';\nLikertScale[iconTag] = 'fa-smile-plus';\nLikertScale[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Text',\n id: '$.attributes.listName',\n label: 'ListName',\n },\n {\n $type: 'Input.Boolean',\n id: '$.attributes.mobileStyling',\n label: 'Always use mobile styling',\n },\n {\n $type: 'Input.Boolean',\n id: '$.attributes.rowShading',\n label: 'Show row shading',\n },\n {\n $type: 'Input.Array',\n id: '$.attributes.answers',\n label: 'Answers',\n },\n];\nexport { LikertScale };\n","import React from 'react';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../symbols';\nimport { NumberField } from './number-field';\nexport function PercentageField(props) {\n return React.createElement(NumberField, { ...props });\n}\nPercentageField[titleTag] = 'Percentage';\nPercentageField[descriptionTag] =\n 'Number input with percentage symbol burnt in';\nPercentageField[iconTag] = 'fa-percentage';\nPercentageField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Number',\n id: 'defaultValue',\n label: 'Default Value',\n },\n {\n $type: 'Input.Text',\n id: 'placeholder',\n label: 'Placeholder',\n },\n {\n $type: 'Input.Boolean',\n id: 'required',\n label: 'Required',\n },\n];\n","import React from 'react';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../symbols';\nimport { NumberField } from './number-field';\nexport function CurrencyField(props) {\n return React.createElement(NumberField, { ...props });\n}\nCurrencyField[titleTag] = 'Currency field';\nCurrencyField[descriptionTag] = 'Number input with currency symbol burnt in';\nCurrencyField[iconTag] = 'fa-money-bill-wave';\nCurrencyField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Number',\n id: 'defaultValue',\n label: 'Default Value',\n },\n {\n $type: 'Input.Text',\n id: 'placeholder',\n label: 'Placeholder',\n },\n {\n $type: 'Input.Choice',\n id: '$.attributes.currencyType',\n label: 'Currency',\n attributes: {\n choices: [\n {\n symbol: '$',\n Text: '$',\n name: 'US Dollar',\n symbol_native: '$',\n code: 'USD',\n },\n {\n symbol: 'CA$',\n Text: 'CA$',\n name: 'Canadian Dollar',\n symbol_native: '$',\n code: 'CAD',\n },\n {\n symbol: '€',\n Text: '€',\n name: 'Euro',\n symbol_native: '€',\n code: 'EUR',\n },\n {\n symbol: 'AED',\n Text: 'AED',\n name: 'United Arab Emirates Dirham',\n symbol_native: 'د.إ.‏',\n code: 'AED',\n },\n {\n symbol: 'Af',\n Text: 'Af',\n name: 'Afghan Afghani',\n symbol_native: '؋',\n code: 'AFN',\n },\n {\n symbol: 'ALL',\n Text: 'ALL',\n name: 'Albanian Lek',\n symbol_native: 'Lek',\n code: 'ALL',\n },\n {\n symbol: 'AMD',\n Text: 'AMD',\n name: 'Armenian Dram',\n symbol_native: 'դր.',\n code: 'AMD',\n },\n {\n symbol: 'AR$',\n Text: 'AR$',\n name: 'Argentine Peso',\n symbol_native: '$',\n code: 'ARS',\n },\n {\n symbol: 'AU$',\n Text: 'AU$',\n name: 'Australian Dollar',\n symbol_native: '$',\n code: 'AUD',\n },\n {\n symbol: 'man.',\n Text: 'man.',\n name: 'Azerbaijani Manat',\n symbol_native: 'ман.',\n code: 'AZN',\n },\n {\n symbol: 'KM',\n Text: 'KM',\n name: 'Bosnia-Herzegovina Convertible Mark',\n symbol_native: 'KM',\n code: 'BAM',\n },\n {\n symbol: 'Tk',\n Text: 'Tk',\n name: 'Bangladeshi Taka',\n symbol_native: '৳',\n code: 'BDT',\n },\n {\n symbol: 'BGN',\n Text: 'BGN',\n name: 'Bulgarian Lev',\n symbol_native: 'лв.',\n code: 'BGN',\n },\n {\n symbol: 'BD',\n Text: 'BD',\n name: 'Bahraini Dinar',\n symbol_native: 'د.ب.‏',\n code: 'BHD',\n },\n {\n symbol: 'FBu',\n Text: 'FBu',\n name: 'Burundian Franc',\n symbol_native: 'FBu',\n code: 'BIF',\n },\n {\n symbol: 'BN$',\n Text: 'BN$',\n name: 'Brunei Dollar',\n symbol_native: '$',\n code: 'BND',\n },\n {\n symbol: 'Bs',\n Text: 'Bs',\n name: 'Bolivian Boliviano',\n symbol_native: 'Bs',\n code: 'BOB',\n },\n {\n symbol: 'R$',\n Text: 'R$',\n name: 'Brazilian Real',\n symbol_native: 'R$',\n code: 'BRL',\n },\n {\n symbol: 'BWP',\n Text: 'BWP',\n name: 'Botswanan Pula',\n symbol_native: 'P',\n code: 'BWP',\n },\n {\n symbol: 'BYR',\n Text: 'BYR',\n name: 'Belarusian Ruble',\n symbol_native: 'BYR',\n code: 'BYR',\n },\n {\n symbol: 'BZ$',\n Text: 'BZ$',\n name: 'Belize Dollar',\n symbol_native: '$',\n code: 'BZD',\n },\n {\n symbol: 'CDF',\n Text: 'CDF',\n name: 'Congolese Franc',\n symbol_native: 'FrCD',\n code: 'CDF',\n },\n {\n symbol: 'CHF',\n Text: 'CHF',\n name: 'Swiss Franc',\n symbol_native: 'CHF',\n code: 'CHF',\n },\n {\n symbol: 'CL$',\n Text: 'CL$',\n name: 'Chilean Peso',\n symbol_native: '$',\n code: 'CLP',\n },\n {\n symbol: 'CN¥',\n Text: 'CN¥',\n name: 'Chinese Yuan',\n symbol_native: 'CN¥',\n code: 'CNY',\n },\n {\n symbol: 'CO$',\n Text: 'CO$',\n name: 'Colombian Peso',\n symbol_native: '$',\n code: 'COP',\n },\n {\n symbol: '₡',\n Text: '₡',\n name: 'Costa Rican Colón',\n symbol_native: '₡',\n code: 'CRC',\n },\n {\n symbol: 'CV$',\n Text: 'CV$',\n name: 'Cape Verdean Escudo',\n symbol_native: 'CV$',\n code: 'CVE',\n },\n {\n symbol: 'Kč',\n Text: 'Kč',\n name: 'Czech Republic Koruna',\n symbol_native: 'Kč',\n code: 'CZK',\n },\n {\n symbol: 'Fdj',\n Text: 'Fdj',\n name: 'Djiboutian Franc',\n symbol_native: 'Fdj',\n code: 'DJF',\n },\n {\n symbol: 'Dkr',\n Text: 'Dkr',\n name: 'Danish Krone',\n symbol_native: 'kr',\n code: 'DKK',\n },\n {\n symbol: 'RD$',\n Text: 'RD$',\n name: 'Dominican Peso',\n symbol_native: 'RD$',\n code: 'DOP',\n },\n {\n symbol: 'DA',\n Text: 'DA',\n name: 'Algerian Dinar',\n symbol_native: 'د.ج.‏',\n code: 'DZD',\n },\n {\n symbol: 'Ekr',\n Text: 'Ekr',\n name: 'Estonian Kroon',\n symbol_native: 'kr',\n code: 'EEK',\n },\n {\n symbol: 'EGP',\n Text: 'EGP',\n name: 'Egyptian Pound',\n symbol_native: 'ج.م.‏',\n code: 'EGP',\n },\n {\n symbol: 'Nfk',\n Text: 'Nfk',\n name: 'Eritrean Nakfa',\n symbol_native: 'Nfk',\n code: 'ERN',\n },\n {\n symbol: 'Br',\n Text: 'Br',\n name: 'Ethiopian Birr',\n symbol_native: 'Br',\n code: 'ETB',\n },\n {\n symbol: '£',\n Text: '£',\n name: 'British Pound Sterling',\n symbol_native: '£',\n code: 'GBP',\n },\n {\n symbol: 'GEL',\n Text: 'GEL',\n name: 'Georgian Lari',\n symbol_native: 'GEL',\n code: 'GEL',\n },\n {\n symbol: 'GH₵',\n Text: 'GH₵',\n name: 'Ghanaian Cedi',\n symbol_native: 'GH₵',\n code: 'GHS',\n },\n {\n symbol: 'FG',\n Text: 'FG',\n name: 'Guinean Franc',\n symbol_native: 'FG',\n code: 'GNF',\n },\n {\n symbol: 'GTQ',\n Text: 'GTQ',\n name: 'Guatemalan Quetzal',\n symbol_native: 'Q',\n code: 'GTQ',\n },\n {\n symbol: 'HK$',\n Text: 'HK$',\n name: 'Hong Kong Dollar',\n symbol_native: '$',\n code: 'HKD',\n },\n {\n symbol: 'HNL',\n Text: 'HNL',\n name: 'Honduran Lempira',\n symbol_native: 'L',\n code: 'HNL',\n },\n {\n symbol: 'kn',\n Text: 'kn',\n name: 'Croatian Kuna',\n symbol_native: 'kn',\n code: 'HRK',\n },\n {\n symbol: 'Ft',\n Text: 'Ft',\n name: 'Hungarian Forint',\n symbol_native: 'Ft',\n code: 'HUF',\n },\n {\n symbol: 'Rp',\n Text: 'Rp',\n name: 'Indonesian Rupiah',\n symbol_native: 'Rp',\n code: 'IDR',\n },\n {\n symbol: '₪',\n Text: '₪',\n name: 'Israeli New Sheqel',\n symbol_native: '₪',\n code: 'ILS',\n },\n {\n symbol: 'Rs',\n Text: 'Rs',\n name: 'Indian Rupee',\n symbol_native: 'টকা',\n code: 'INR',\n },\n {\n symbol: 'IQD',\n Text: 'IQD',\n name: 'Iraqi Dinar',\n symbol_native: 'د.ع.‏',\n code: 'IQD',\n },\n {\n symbol: 'IRR',\n Text: 'IRR',\n name: 'Iranian Rial',\n symbol_native: '﷼',\n code: 'IRR',\n },\n {\n symbol: 'Ikr',\n Text: 'Ikr',\n name: 'Icelandic Króna',\n symbol_native: 'kr',\n code: 'ISK',\n },\n {\n symbol: 'J$',\n Text: 'J$',\n name: 'Jamaican Dollar',\n symbol_native: '$',\n code: 'JMD',\n },\n {\n symbol: 'JD',\n Text: 'JD',\n name: 'Jordanian Dinar',\n symbol_native: 'د.أ.‏',\n code: 'JOD',\n },\n {\n symbol: '¥',\n Text: '¥',\n name: 'Japanese Yen',\n symbol_native: '¥',\n code: 'JPY',\n },\n {\n symbol: 'Ksh',\n Text: 'Ksh',\n name: 'Kenyan Shilling',\n symbol_native: 'Ksh',\n code: 'KES',\n },\n {\n symbol: 'KHR',\n Text: 'KHR',\n name: 'Cambodian Riel',\n symbol_native: '៛',\n code: 'KHR',\n },\n {\n symbol: 'CF',\n Text: 'CF',\n name: 'Comorian Franc',\n symbol_native: 'FC',\n code: 'KMF',\n },\n {\n symbol: '₩',\n Text: '₩',\n name: 'South Korean Won',\n symbol_native: '₩',\n code: 'KRW',\n },\n {\n symbol: 'KD',\n Text: 'KD',\n name: 'Kuwaiti Dinar',\n symbol_native: 'د.ك.‏',\n code: 'KWD',\n },\n {\n symbol: 'KZT',\n Text: 'KZT',\n name: 'Kazakhstani Tenge',\n symbol_native: 'тңг.',\n code: 'KZT',\n },\n {\n symbol: 'LB£',\n Text: 'LB£',\n name: 'Lebanese Pound',\n symbol_native: 'ل.ل.‏',\n code: 'LBP',\n },\n {\n symbol: 'SLRs',\n Text: 'SLRs',\n name: 'Sri Lankan Rupee',\n symbol_native: 'SL Re',\n code: 'LKR',\n },\n {\n symbol: 'Lt',\n Text: 'Lt',\n name: 'Lithuanian Litas',\n symbol_native: 'Lt',\n code: 'LTL',\n },\n {\n symbol: 'Ls',\n Text: 'Ls',\n name: 'Latvian Lats',\n symbol_native: 'Ls',\n code: 'LVL',\n },\n {\n symbol: 'LD',\n Text: 'LD',\n name: 'Libyan Dinar',\n symbol_native: 'د.ل.‏',\n code: 'LYD',\n },\n {\n symbol: 'MAD',\n Text: 'MAD',\n name: 'Moroccan Dirham',\n symbol_native: 'د.م.‏',\n code: 'MAD',\n },\n {\n symbol: 'MDL',\n Text: 'MDL',\n name: 'Moldovan Leu',\n symbol_native: 'MDL',\n code: 'MDL',\n },\n {\n symbol: 'MGA',\n Text: 'MGA',\n name: 'Malagasy Ariary',\n symbol_native: 'MGA',\n code: 'MGA',\n },\n {\n symbol: 'MKD',\n Text: 'MKD',\n name: 'Macedonian Denar',\n symbol_native: 'MKD',\n code: 'MKD',\n },\n {\n symbol: 'MMK',\n Text: 'MMK',\n name: 'Myanma Kyat',\n symbol_native: 'K',\n code: 'MMK',\n },\n {\n symbol: 'MOP$',\n Text: 'MOP$',\n name: 'Macanese Pataca',\n symbol_native: 'MOP$',\n code: 'MOP',\n },\n {\n symbol: 'MURs',\n Text: 'MURs',\n name: 'Mauritian Rupee',\n symbol_native: 'MURs',\n code: 'MUR',\n },\n {\n symbol: 'MX$',\n Text: 'MX$',\n name: 'Mexican Peso',\n symbol_native: '$',\n code: 'MXN',\n },\n {\n symbol: 'RM',\n Text: 'RM',\n name: 'Malaysian Ringgit',\n symbol_native: 'RM',\n code: 'MYR',\n },\n {\n symbol: 'MTn',\n Text: 'MTn',\n name: 'Mozambican Metical',\n symbol_native: 'MTn',\n code: 'MZN',\n },\n {\n symbol: 'N$',\n Text: 'N$',\n name: 'Namibian Dollar',\n symbol_native: 'N$',\n code: 'NAD',\n },\n {\n symbol: '₦',\n Text: '₦',\n name: 'Nigerian Naira',\n symbol_native: '₦',\n code: 'NGN',\n },\n {\n symbol: 'C$',\n Text: 'C$',\n name: 'Nicaraguan Córdoba',\n symbol_native: 'C$',\n code: 'NIO',\n },\n {\n symbol: 'Nkr',\n Text: 'Nkr',\n name: 'Norwegian Krone',\n symbol_native: 'kr',\n code: 'NOK',\n },\n {\n symbol: 'NPRs',\n Text: 'NPRs',\n name: 'Nepalese Rupee',\n symbol_native: 'नेरू',\n code: 'NPR',\n },\n {\n symbol: 'NZ$',\n Text: 'NZ$',\n name: 'New Zealand Dollar',\n symbol_native: '$',\n code: 'NZD',\n },\n {\n symbol: 'OMR',\n Text: 'OMR',\n name: 'Omani Rial',\n symbol_native: 'ر.ع.‏',\n code: 'OMR',\n },\n {\n symbol: 'B/.',\n Text: 'B/.',\n name: 'Panamanian Balboa',\n symbol_native: 'B/.',\n code: 'PAB',\n },\n {\n symbol: 'S/.',\n Text: 'S/.',\n name: 'Peruvian Nuevo Sol',\n symbol_native: 'S/.',\n code: 'PEN',\n },\n {\n symbol: '₱',\n Text: '₱',\n name: 'Philippine Peso',\n symbol_native: '₱',\n code: 'PHP',\n },\n {\n symbol: 'PKRs',\n Text: 'PKRs',\n name: 'Pakistani Rupee',\n symbol_native: '₨',\n code: 'PKR',\n },\n {\n symbol: 'zł',\n Text: 'zł',\n name: 'Polish Zloty',\n symbol_native: 'zł',\n code: 'PLN',\n },\n {\n symbol: '₲',\n Text: '₲',\n name: 'Paraguayan Guarani',\n symbol_native: '₲',\n code: 'PYG',\n },\n {\n symbol: 'QR',\n Text: 'QR',\n name: 'Qatari Rial',\n symbol_native: 'ر.ق.‏',\n code: 'QAR',\n },\n {\n symbol: 'RON',\n Text: 'RON',\n name: 'Romanian Leu',\n symbol_native: 'RON',\n code: 'RON',\n },\n {\n symbol: 'din.',\n Text: 'din.',\n name: 'Serbian Dinar',\n symbol_native: 'дин.',\n code: 'RSD',\n },\n {\n symbol: 'RUB',\n Text: 'RUB',\n name: 'Russian Ruble',\n symbol_native: 'руб.',\n code: 'RUB',\n },\n {\n symbol: 'RWF',\n Text: 'RWF',\n name: 'Rwandan Franc',\n symbol_native: 'FR',\n code: 'RWF',\n },\n {\n symbol: 'SR',\n Text: 'SR',\n name: 'Saudi Riyal',\n symbol_native: 'ر.س.‏',\n code: 'SAR',\n },\n {\n symbol: 'SDG',\n Text: 'SDG',\n name: 'Sudanese Pound',\n symbol_native: 'SDG',\n code: 'SDG',\n },\n {\n symbol: 'Skr',\n Text: 'Skr',\n name: 'Swedish Krona',\n symbol_native: 'kr',\n code: 'SEK',\n },\n {\n symbol: 'S$',\n Text: 'S$',\n name: 'Singapore Dollar',\n symbol_native: '$',\n code: 'SGD',\n },\n {\n symbol: 'Ssh',\n Text: 'Ssh',\n name: 'Somali Shilling',\n symbol_native: 'Ssh',\n code: 'SOS',\n },\n {\n symbol: 'SY£',\n Text: 'SY£',\n name: 'Syrian Pound',\n symbol_native: 'ل.س.‏',\n code: 'SYP',\n },\n {\n symbol: '฿',\n Text: '฿',\n name: 'Thai Baht',\n symbol_native: '฿',\n code: 'THB',\n },\n {\n symbol: 'DT',\n Text: 'DT',\n name: 'Tunisian Dinar',\n symbol_native: 'د.ت.‏',\n code: 'TND',\n },\n {\n symbol: 'T$',\n Text: 'T$',\n name: 'Tongan Paʻanga',\n symbol_native: 'T$',\n code: 'TOP',\n },\n {\n symbol: 'TL',\n Text: 'TL',\n name: 'Turkish Lira',\n symbol_native: 'TL',\n code: 'TRY',\n },\n {\n symbol: 'TT$',\n Text: 'TT$',\n name: 'Trinidad and Tobago Dollar',\n symbol_native: '$',\n code: 'TTD',\n },\n {\n symbol: 'NT$',\n Text: 'NT$',\n name: 'New Taiwan Dollar',\n symbol_native: 'NT$',\n code: 'TWD',\n },\n {\n symbol: 'TSh',\n Text: 'TSh',\n name: 'Tanzanian Shilling',\n symbol_native: 'TSh',\n code: 'TZS',\n },\n {\n symbol: '₴',\n Text: '₴',\n name: 'Ukrainian Hryvnia',\n symbol_native: '₴',\n code: 'UAH',\n },\n {\n symbol: 'USh',\n Text: 'USh',\n name: 'Ugandan Shilling',\n symbol_native: 'USh',\n code: 'UGX',\n },\n {\n symbol: '$U',\n Text: '$U',\n name: 'Uruguayan Peso',\n symbol_native: '$',\n code: 'UYU',\n },\n {\n symbol: 'UZS',\n Text: 'UZS',\n name: 'Uzbekistan Som',\n symbol_native: 'UZS',\n code: 'UZS',\n },\n {\n symbol: 'Bs.F.',\n Text: 'Bs.F.',\n name: 'Venezuelan Bolívar',\n symbol_native: 'Bs.F.',\n code: 'VEF',\n },\n {\n symbol: '₫',\n Text: '₫',\n name: 'Vietnamese Dong',\n symbol_native: '₫',\n code: 'VND',\n },\n {\n symbol: 'FCFA',\n Text: 'FCFA',\n name: 'CFA Franc BEAC',\n symbol_native: 'FCFA',\n code: 'XAF',\n },\n {\n symbol: 'CFA',\n Text: 'CFA',\n name: 'CFA Franc BCEAO',\n symbol_native: 'CFA',\n code: 'XOF',\n },\n {\n symbol: 'YR',\n Text: 'YR',\n name: 'Yemeni Rial',\n symbol_native: 'ر.ي.‏',\n code: 'YER',\n },\n {\n symbol: 'R',\n Text: 'R',\n name: 'South African Rand',\n symbol_native: 'R',\n code: 'ZAR',\n },\n {\n symbol: 'ZK',\n Text: 'ZK',\n name: 'Zambian Kwacha',\n symbol_native: 'ZK',\n code: 'ZMK',\n },\n ],\n },\n },\n {\n $type: 'Input.Boolean',\n id: 'required',\n label: 'Required',\n },\n];\n","import React from 'react';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, LookupField, titleTag, } from '../index';\nexport function UserField(props) {\n return React.createElement(LookupField, { ...props });\n}\nUserField[titleTag] = 'User';\nUserField[descriptionTag] = 'RAPID Platform user field';\nUserField[iconTag] = 'fa-users';\nUserField[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Text',\n id: 'placeholder',\n label: 'Placeholder',\n },\n {\n $type: 'Input.List',\n id: '$.attributes.lookupList',\n label: 'Lookup List',\n attributes: {\n includeSystemLists: false,\n },\n },\n {\n $type: 'Input.Column',\n id: '$.attributes.lookupField',\n label: 'Lookup Field',\n attributes: {\n targetElementRef: '$.attributes.lookupList',\n },\n },\n {\n $type: 'Input.Boolean',\n id: 'required',\n label: 'Required',\n },\n];\n","import { useComposedClassName } from '@rapid/sdk';\nimport React from 'react';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '..';\nexport function HeadingLayout({ label, type, underline, }) {\n const headingClass = useComposedClassName(function* () {\n yield 'Layout Heading';\n yield type;\n if (underline)\n yield 'underline';\n }, [type, underline]);\n return React.createElement(type !== null && type !== void 0 ? type : 'h1', { className: headingClass }, label);\n}\nHeadingLayout[titleTag] = 'Heading';\nHeadingLayout[descriptionTag] =\n 'A heading element for adding sectioning off forms';\nHeadingLayout[iconTag] = 'fa-heading';\nHeadingLayout[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Choice',\n id: '$.attributes.type',\n label: 'Heading type',\n defaultValue: 'h1',\n attributes: {\n choices: [\n { Text: 'h1' },\n { Text: 'h2' },\n { Text: 'h3' },\n { Text: 'h4' },\n { Text: 'h5' },\n { Text: 'h6' },\n ],\n },\n },\n {\n $type: 'Input.Boolean',\n id: '$.attributes.underline',\n label: 'Show underline',\n },\n];\n","import React from 'react';\nimport { descriptionTag, fieldAttributesSchemaTag, titleTag, iconTag, configComponentTag, } from '../index';\nimport { SanitizedDiv, useComposedClassName } from '@rapid/sdk';\nimport { Button, Divider } from 'antd';\nexport function Section({ children, divider, direction, label, heading, headingType, showDescription, description, }) {\n const formClass = useComposedClassName(function* () {\n yield 'FormElement';\n if (direction)\n yield direction;\n }, [direction]);\n return (React.createElement(\"div\", { className: formClass },\n React.createElement(\"div\", { className: \"Heading\" },\n heading && React.createElement(headingType !== null && headingType !== void 0 ? headingType : 'h3', {}, label),\n showDescription && !!description && React.createElement(SanitizedDiv, { html: description }),\n divider && React.createElement(Divider, null)),\n React.createElement(\"div\", { className: \"SectionChildren\" }, children)));\n}\nexport function DesignerConfig({ updateElement, removeElement, element, }) {\n const changeDirection = (e) => {\n e.preventDefault();\n e.stopPropagation();\n updateElement(d => {\n var _a;\n if (((_a = element.attributes) === null || _a === void 0 ? void 0 : _a.direction) === 'horizontal') {\n d.attributes.direction = 'vertical';\n }\n else {\n d.attributes.direction = 'horizontal';\n }\n });\n };\n return (React.createElement(\"div\", null,\n React.createElement(Button, { onClick: changeDirection }, \"Change layout direction\")));\n}\nSection[titleTag] = 'Section';\nSection[descriptionTag] =\n 'Form layout section allowing horizontal or vertical layouts and a section heading';\nSection[iconTag] = 'fa-border-outer';\nSection[configComponentTag] = DesignerConfig;\nSection[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Choice',\n id: '$.attributes.direction',\n label: 'Layout direction',\n defaultValue: 'vertical',\n attributes: {\n choices: [{ Text: 'horizontal' }, { Text: 'vertical' }],\n },\n },\n {\n $type: 'Input.Boolean',\n id: '$.attributes.heading',\n defaultValue: false,\n label: 'Show heading',\n },\n {\n $type: 'Input.Choice',\n id: '$.attributes.headingType',\n label: 'Heading size',\n defaultValue: 'h3',\n attributes: {\n choices: [\n { Text: 'h1' },\n { Text: 'h2' },\n { Text: 'h3' },\n { Text: 'h4' },\n { Text: 'h5' },\n { Text: 'h6' },\n ],\n },\n conditions: [\n {\n elementRef: '$.attributes.heading',\n validation: [['yup.boolean'], ['yup.oneOf', [true, undefined, null]]],\n },\n ],\n },\n {\n $type: 'Input.Boolean',\n id: '$.attributes.divider',\n label: 'Show divider',\n defaultValue: false,\n conditions: [\n {\n elementRef: '$.attributes.heading',\n validation: [['yup.boolean'], ['yup.oneOf', [true, undefined, null]]],\n },\n ],\n },\n {\n $type: 'Input.Boolean',\n id: '$.attributes.showDescription',\n label: 'Show description',\n defaultValue: false,\n },\n {\n $type: 'Input.MultiLineText',\n id: '$.attributes.description',\n label: 'Description',\n conditions: [\n {\n elementRef: '$.attributes.showDescription',\n validation: [['yup.boolean'], ['yup.oneOf', [true, undefined, null]]],\n },\n ],\n },\n];\n","import React from 'react';\nimport { Divider } from 'antd';\nimport { descriptionTag, fieldAttributesSchemaTag, iconTag, titleTag, } from '../symbols';\nexport function LayoutDivider({ label, type, orientation, dashed, plain, }) {\n return (React.createElement(Divider, { type: type, orientation: orientation, dashed: dashed, plain: plain }, label));\n}\nLayoutDivider[titleTag] = 'Divider';\nLayoutDivider[descriptionTag] = 'Simple divider to draw lines between things';\nLayoutDivider[iconTag] = 'fa-horizontal-rule';\n// LayoutDivider[configComponentTag] = DesignerConfig;\nLayoutDivider[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Text',\n id: 'label',\n label: 'Label',\n },\n {\n $type: 'Input.Choice',\n id: '$.attributes.orientation',\n label: 'Label orientation',\n defaultValue: 'center',\n attributes: {\n choices: [{ Text: 'left' }, { Text: 'right' }, { Text: 'center' }],\n },\n },\n {\n $type: 'Input.Choice',\n id: '$.attributes.type',\n label: 'Layout direction',\n defaultValue: 'vertical',\n attributes: {\n choices: [{ Text: 'horizontal' }, { Text: 'vertical' }],\n },\n },\n {\n $type: 'Input.Boolean',\n defaultValue: false,\n id: '$.attributes.dashed',\n label: 'Dashed',\n },\n {\n $type: 'Input.Boolean',\n defaultValue: false,\n id: '$.attributes.plain',\n label: 'Plain text',\n },\n];\n","import { useComposedClassName } from '@rapid/sdk';\nimport React from 'react';\nimport { iconTag, descriptionTag, fieldAttributesSchemaTag, titleTag, } from '../symbols';\nexport function LayoutSpacer({ direction, size, }) {\n const spacerClass = useComposedClassName(function* () {\n yield 'LayoutSpacer';\n yield !!direction ? direction : 'vertical';\n yield !!size ? size : 'medium';\n }, [direction, size]);\n return React.createElement(\"div\", { className: spacerClass });\n}\nLayoutSpacer[titleTag] = 'Divider';\nLayoutSpacer[descriptionTag] = 'Simple divider to draw lines between things';\nLayoutSpacer[iconTag] = 'fa-user-astronaut';\n// LayoutDivider[configComponentTag] = DesignerConfig;\nLayoutSpacer[fieldAttributesSchemaTag] = [\n {\n $type: 'Input.Choice',\n id: '$.attributes.direction',\n label: 'Layout direction',\n defaultValue: 'vertical',\n attributes: {\n choices: [{ Text: 'horizontal' }, { Text: 'vertical' }],\n },\n },\n {\n $type: 'Input.Choice',\n id: '$.attributes.size',\n label: 'Size',\n defaultValue: 'medium',\n attributes: {\n choices: [{ Text: 'small' }, { Text: 'medium' }, { Text: 'large' }],\n },\n },\n];\n","import { IFormElement } from '@rapid/adaptive-forms';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport function QueryGroup(uuid: string = uuidv4()): IFormElement {\n return {\n $type: 'AdaptiveForm',\n id: `QueryGroup:~:${uuid}`,\n $children: [\n {\n $type: 'Layout.Section',\n id: `QueryGroupCommandBar:~:${uuid}`,\n label: 'QueryGroupCommandBar',\n attributes: {\n direction: 'horizontal',\n },\n $children: [\n {\n $type: 'Input.AndOrToggle' as any,\n id: `RadioAndOr:~:${uuid}`,\n },\n {\n $type: 'Form.AddRule' as any,\n id: `AddRule:~:${uuid}`,\n attributes: {\n parentId: `QueryGroup:~:${uuid}`,\n },\n },\n {\n $type: 'Form.AddGroup' as any,\n id: `AddGroup:~:${uuid}`,\n attributes: {\n parentId: `QueryGroup:~:${uuid}`,\n },\n },\n ],\n },\n ],\n } as IFormElement;\n}\n\nexport function QueryGroupRemovable(uuid: string = uuidv4()): IFormElement {\n return {\n $type: 'AdaptiveForm',\n id: `QueryGroup:~:${uuid}`,\n $children: [\n {\n $type: 'Layout.Section',\n id: `QueryGroupCommandBar:~:${uuid}`,\n label: 'QueryGroupCommandBar',\n attributes: {\n direction: 'horizontal',\n },\n $children: [\n {\n $type: 'Input.AndOrToggle' as any,\n id: `RadioAndOr:~:${uuid}`,\n },\n {\n $type: 'Form.AddRule' as any,\n id: `AddRule:~:${uuid}`,\n attributes: {\n parentId: `QueryGroup:~:${uuid}`,\n },\n },\n {\n $type: 'Form.AddGroup' as any,\n id: `AddGroup:~:${uuid}`,\n attributes: {\n parentId: `QueryGroup:~:${uuid}`,\n },\n },\n {\n $type: 'Form.RemoveItem' as any,\n id: `RemoveItem:~:${uuid}`,\n attributes: {\n itemId: `QueryGroup:~:${uuid}`,\n },\n },\n ],\n },\n ],\n } as IFormElement;\n}\n\nexport function QueryRule(uuid: string = uuidv4()): IFormElement {\n return {\n $type: 'AdaptiveForm',\n id: `QueryRule:~:${uuid}`,\n attributes: {\n direction: 'horizontal',\n },\n $children: [\n {\n $type: 'Input.FieldSelect' as any,\n id: `lValue:~:${uuid}`,\n },\n {\n $type: 'Input.OperandField' as any,\n id: `Operator:~:${uuid}`,\n },\n {\n $type: 'Input.GenericField',\n id: `rValue:~:${uuid}`,\n attributes: {\n fieldRefId: `lValue:~:${uuid}`,\n },\n },\n {\n $type: 'Form.RemoveItem' as any,\n id: `RemoveItem:~:${uuid}`,\n attributes: {\n itemId: `QueryRule:~:${uuid}`,\n },\n },\n ],\n } as IFormElement;\n}\n","import { FormElementInputProps, returnField } from '@rapid/adaptive-forms';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { Button } from 'antd';\nimport { useQueryBuilderContext } from '../QueryBuilder';\nimport { QueryGroupRemovable } from '../layouts/base-layout';\n\ninterface IAddGroupProps {\n parentId: string;\n}\n\nexport function AddGroup({\n disabled,\n id,\n label,\n parentId,\n}: FormElementInputProps) {\n const [context, updateContext] = useQueryBuilderContext();\n\n const addGroupClass = useComposedClassName(\n function* () {\n yield 'Label AddGroup';\n\n if (disabled) yield 'disabled';\n },\n [disabled],\n );\n\n const onClick = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n updateContext(d => {\n const parent = returnField(parentId, d.form);\n\n if (!Array.isArray(parent.$children)) {\n parent.$children = [];\n }\n\n parent.$children.push(QueryGroupRemovable());\n })\n };\n\n return (\n \n );\n}\n","import {\n FormElementInputProps,\n returnField,\n} from '@rapid/adaptive-forms';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { Button } from 'antd';\nimport { useQueryBuilderContext } from '../QueryBuilder';\nimport { QueryRule } from '../layouts/base-layout';\n\ninterface IAddRuleProps {\n parentId: string;\n}\n\nexport function AddRule({\n disabled,\n id,\n label,\n parentId,\n}: FormElementInputProps) {\n const [context, updateContext] = useQueryBuilderContext();\n\n const addRuleClass = useComposedClassName(\n function* () {\n yield 'Label AddRule';\n\n if (disabled) yield 'disabled';\n },\n [disabled],\n );\n\n function idToNumber(id: string): number {\n if (id.includes('CommandBar')) return 1;\n\n if (id.includes('QueryGroup:~:')) return 3;\n\n return 2;\n }\n\n const onClick = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n updateContext(d => {\n const parent = returnField(parentId, d.form);\n\n if (!Array.isArray(parent.$children)) {\n parent.$children = [];\n }\n \n parent.$children.push(QueryRule());\n parent.$children.sort((a, b) => idToNumber(a.id) - idToNumber(b.id));\n });\n };\n\n return (\n \n );\n}\n","import { IQueryBuilderTable } from \"@rapid/data-model/lib/query-builder\";\n\nexport type FormElementType =\n | 'root'\n | 'Heading'\n | 'Select'\n | 'From'\n | 'Name'\n | 'OrderBy'\n | 'JoinsGroup'\n | 'AddJoin'\n | 'JoinRule'\n | 'Join'\n | 'RemoveItem'\n | 'QueryGroup'\n | 'RadioAndOr'\n | 'AddRule'\n | 'AddGroup'\n | 'QueryGroupCommandBar'\n | 'QueryRule'\n | 'lValue'\n | 'Operator'\n | 'rValue';\n\nexport type FormElementId = {\n type: FormElementType;\n uuid: string;\n};\n\nexport const getFormElementId = (str: string) =>\n str.match(\n /^(?[A-Z]*):~:(?[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})/i,\n )?.groups as FormElementId;\n\nexport const getType = (str: string) => str.match(/^([A-Z]*):~:/i)?.[1];\n\nexport const getUuid = (str: string) =>\n str.match(\n /([0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})/i,\n )?.[1];\n\nexport const isColumn = (str: string) =>\n str.match(\n /^[A-Z]*:~:[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}\\./i,\n ) !== null;\n\nexport const getColumn = (column: String, data: Record) => {\n const [tableOrAliasRef, columnName] = column.split('.');\n const tableOrAlias = returnData(tableOrAliasRef, data) as IQueryBuilderTable;\n return (tableOrAlias.alias || tableOrAlias.table) + '.' + columnName;\n};\n\nexport function removeData(\n dataRef: string, \n data: Record\n) {\n for (const key of Object.keys(data)) {\n if (key === dataRef) {\n delete data[key];\n return;\n }\n\n if (data[key] instanceof Object) removeData(dataRef, data[key]);\n }\n return;\n}\n\nexport const returnData = (\n dataRef: string,\n data: Record,\n): Record | undefined => {\n if (data.hasOwnProperty(dataRef)) return data[dataRef];\n\n for (let key of Object.keys(data)) {\n if (typeof data[key] === 'object') {\n const d = returnData(dataRef, data[key]);\n\n if (!!d) return d;\n }\n }\n\n return;\n};\n","import { FormElementInputProps, removeField } from '@rapid/adaptive-forms';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { useMemo } from 'react';\nimport { useQueryBuilderContext } from '../QueryBuilder';\nimport { FormElementId, getFormElementId, removeData } from '../utils/helpers';\n\ninterface IRemoveItemProps {\n itemId: string;\n}\n\nexport function RemoveItem({\n disabled,\n id,\n label,\n itemId,\n}: FormElementInputProps) {\n const [context, updateContext] = useQueryBuilderContext();\n\n const removeItemClass = useComposedClassName(\n function* () {\n yield 'Label RemoveItem';\n\n if (disabled) yield 'disabled';\n },\n [disabled],\n );\n\n const selectId = useMemo(() => {\n if (context.form && context.form.$children) {\n return context.form.$children.find(c => c.id.includes('Select'))?.id;\n }\n }, [context.form]);\n\n function removeSelectedFields(elementId: FormElementId, selectId: string): string[] {\n const select = context.data[context.form.id][selectId] as string[];\n return select.filter(s => !s.includes(`Join:~:${elementId.uuid}`));\n }\n\n const onClick = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n updateContext(d => {\n removeField(itemId, d.form);\n removeData(itemId, d.data);\n\n const elementId = getFormElementId(itemId);\n if (elementId.type === 'JoinRule' \n && !!selectId \n && context.data[context.form.id][selectId]\n ) {\n d.data[context.form.id][selectId] = removeSelectedFields(elementId, selectId);\n }\n });\n };\n\n return (\n \n );\n}\n","import { FormElementInputProps } from '@rapid/adaptive-forms';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { Select } from 'antd';\n\nexport function OperandField({\n disabled,\n id,\n value,\n label,\n onChange,\n}: FormElementInputProps) {\n const { Option } = Select;\n\n const operandFieldClass = useComposedClassName(\n function* () {\n yield 'Label OperandField';\n\n if (disabled) yield 'disabled';\n },\n [disabled],\n );\n\n const QBOperator = [\n { value: 'eq', label: '=' },\n { value: 'ne', label: '!=' },\n { value: 'lt', label: '<' },\n { value: 'le', label: '<=' },\n { value: 'gt', label: '>' },\n { value: 'ge', label: '>=' },\n { value: 'value exists', label: 'has value', voidTag: true },\n {\n value: 'value does not exist',\n label: 'no value',\n voidTag: true,\n },\n { value: 'substringof', label: 'contains' },\n ];\n\n return (\n \n );\n}\n","import { FormElementInputProps } from '@rapid/adaptive-forms';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { Select } from 'antd';\nimport { useMemo } from 'react';\nimport {\n useQueryBuilderContext,\n FieldAlias,\n IQueryBuilderType,\n} from '../QueryBuilder';\n\ninterface IFieldSelectAttribtes {\n multiple: boolean;\n}\n\nexport function FieldSelect({\n disabled,\n id,\n value,\n label,\n onChange,\n multiple,\n}: FormElementInputProps<\n string | string[],\n IFieldSelectAttribtes\n>) {\n const { Option } = Select;\n\n const [context] = useQueryBuilderContext();\n\n const fieldSelectClass = useComposedClassName(\n function* () {\n yield 'Label';\n\n multiple ? yield 'FieldSelectMultiple' : yield 'FieldSelect';\n\n if (disabled) yield 'disabled';\n },\n [disabled],\n );\n\n const Options = useMemo(() => {\n if (context.type === IQueryBuilderType.Basic) {\n return (context.fieldChoices as string[])\n ?.filter(choice => multiple ? !choice.includes('.id') : 1)\n ?.map(choice => (\n \n ));\n }\n\n return (context.fieldChoices as FieldAlias[])\n ?.filter(choice => multiple ? !choice.column.includes('.id') : 1)\n ?.map(choice => (\n \n {`${choice.tableAlias || choice.table}.${choice.column}`}\n \n ));\n }, [multiple, context.fieldChoices, context.type]);\n\n return (\n \n );\n}\n","import { FormElementInputProps } from '@rapid/adaptive-forms';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { Select } from 'antd';\nimport { useQueryBuilderContext } from '../QueryBuilder';\n\nexport function TableSelect({\n disabled,\n id,\n value,\n label,\n onChange,\n}: FormElementInputProps) {\n const { Option } = Select;\n\n const [context] = useQueryBuilderContext();\n\n const tableSelectClass = useComposedClassName(\n function* () {\n yield 'Label TableSelect';\n\n if (disabled) yield 'disabled';\n },\n [disabled],\n );\n\n return (\n \n );\n}\n","import { FormElementInputProps } from '@rapid/adaptive-forms';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { Radio, RadioChangeEvent } from 'antd';\nimport { useEffect } from 'react';\n\nexport function AndOrToggle({\n disabled,\n id,\n value,\n label,\n onChange,\n}: FormElementInputProps) {\n const options = [\n { label: 'And', value: 'and' },\n { label: 'Or', value: 'or' },\n ];\n\n const andOrToggleClass = useComposedClassName(\n function* () {\n yield 'Label AndOrToggle';\n\n if (disabled) yield 'disabled';\n },\n [disabled],\n );\n\n const onChangeInner = (e: RadioChangeEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n onChange?.(e.target.value);\n };\n\n useEffect(\n function setDefaultValueEffect() {\n if (value === undefined) onChange?.(options[0].value);\n },\n [value],\n );\n\n return (\n \n );\n}\n","import { IFormElement } from '@rapid/adaptive-forms';\nimport { v4 as uuidv4 } from 'uuid';\nimport { QueryGroup } from './base-layout';\n\nexport function JoinGroup(uuid: string = uuidv4()): IFormElement {\n return {\n $type: 'AdaptiveForm',\n id: `JoinsGroup:~:${uuid}`,\n $children: [\n {\n $type: 'Layout.Section',\n id: `JoinsGroupCommandBar:~:${uuid}`,\n label: 'JoinsGroupCommandBar',\n attributes: {\n direction: 'horizontal',\n },\n $children: [\n {\n $type: 'Form.AddJoin' as any,\n id: `AddJoin:~:${uuid}`,\n attributes: {\n parentId: `JoinsGroup:~:${uuid}`,\n },\n },\n ],\n },\n ],\n } as IFormElement;\n}\n\nexport function JoinRule(uuid: string = uuidv4()): IFormElement {\n return {\n $type: 'AdaptiveForm',\n id: `JoinRule:~:${uuid}`,\n $children: [\n {\n $type: 'Layout.Section',\n id: `JoinRuleCommandBar:~:${uuid}`,\n label: 'JoinRuleCommandBar',\n attributes: {\n direction: 'horizontal',\n },\n $children: [\n {\n $type: 'Input.TableAlias' as any,\n id: `Join:~:${uuid}`,\n label: 'Join',\n },\n {\n $type: 'Form.RemoveItem' as any,\n id: `RemoveItem:~:${uuid}`,\n attributes: {\n itemId: `JoinRule:~:${uuid}`,\n },\n },\n ],\n },\n {\n $type: 'Layout.Heading' as any,\n id: `Heading:~:${uuid}-1`,\n attributes: {\n label: 'On',\n type: 'h5',\n },\n },\n QueryGroup(uuid),\n ],\n };\n}\n\nexport function JoinGroupWithoutQuery(uuid: string = uuidv4()): IFormElement {\n return {\n $type: 'AdaptiveForm',\n id: `JoinRule:~:${uuid}`,\n $children: [\n {\n $type: 'Layout.Section',\n id: `JoinRuleCommandBar:~:${uuid}`,\n label: 'JoinRuleCommandBar',\n attributes: {\n direction: 'horizontal',\n },\n $children: [\n {\n $type: 'Input.TableAlias' as any,\n id: `Join:~:${uuid}`,\n label: 'Join',\n },\n {\n $type: 'Form.RemoveItem' as any,\n id: `RemoveItem:~:${uuid}`,\n attributes: {\n itemId: `JoinRule:~:${uuid}`,\n },\n },\n ],\n },\n {\n $type: 'Layout.Heading' as any,\n id: `Heading:~:${uuid}-1`,\n attributes: {\n label: 'On',\n type: 'h5',\n },\n },\n ],\n };\n}\n","import { FormElementInputProps, returnField } from '@rapid/adaptive-forms';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { Button } from 'antd';\nimport { JoinRule } from '../layouts/sql-join-layout';\nimport { useQueryBuilderContext } from '../QueryBuilder';\n\ninterface IAddJoinProps {\n parentId: string;\n}\n\nexport function AddJoin({\n disabled,\n id,\n label,\n parentId,\n}: FormElementInputProps) {\n const [context, updateContext] = useQueryBuilderContext();\n\n const addJoinClass = useComposedClassName(\n function* () {\n yield 'Label AddJoin';\n\n if (disabled) yield 'disabled';\n },\n [disabled],\n );\n\n const onClick = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n updateContext(d => {\n const parent = returnField(parentId, d.form);\n\n if (!Array.isArray(parent.$children)) {\n parent.$children = [];\n }\n\n parent.$children.push(JoinRule());\n })\n };\n\n return (\n \n );\n}\n","import { ChoiceField, DateTimeField, NumberField, TextField } from '@rapid/adaptive-forms';\nimport { IChoice, IField } from '@rapid/data-model';\nimport { Switch } from 'antd';\n\ninterface IFieldTypeInputProps {\n field: IField;\n value?: string | number | boolean | Date;\n label?: string;\n id: string;\n placeholder?: string;\n disabled?: boolean;\n onChange?(value: string | number | boolean | Date): void;\n}\n\nexport function FieldTypeInput({\n field,\n value,\n label,\n id,\n disabled,\n onChange,\n}: IFieldTypeInputProps) {\n switch (field.FieldType) {\n case 'Boolean':\n return (\n onChange?.(!value)}\n />\n );\n case 'DateTime':\n const date =\n value instanceof Date ? (value as Date) : new Date(value as string);\n return (\n \n onChange?.(\n e instanceof Date ? (e as Date).toString() : (e as string),\n )\n }\n disabled={disabled}\n id={id}\n size='small'\n />\n );\n case 'Choice':\n const choices = field.Settings?.Choices?.map(choice =>\n typeof choice === 'string'\n ? ({ Text: choice } as IChoice)\n : (choice as IChoice),\n );\n return (\n c.Text === (value as string)) &&\n typeof value === 'string'\n ? (value as string)\n : undefined\n }\n disabled={disabled}\n choices={choices ?? []}\n onChange={e => {\n onChange?.(e);\n }}\n size='small'\n />\n );\n case 'Currency':\n case 'Integer':\n case 'Number':\n case 'Percentage':\n return {\n onChange?.(e);\n }}\n />\n case 'Text':\n case 'Note':\n case 'Computed':\n case 'Report':\n case 'Subquery':\n case 'Email':\n case 'XML':\n case 'GUID':\n case 'JSON':\n case 'Raw':\n case 'File':\n case 'Outcome':\n case 'User':\n case 'Lookup':\n case 'MultiLookup':\n case 'MultiChoice':\n case 'PrivateUsers':\n case 'Users':\n default:\n return (\n {\n onChange?.(e);\n }}\n size='small'\n />\n );\n }\n}\n","import {\n FormElementInputProps,\n TextField,\n useAdaptiveFormContext,\n} from '@rapid/adaptive-forms';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { Radio, RadioChangeEvent } from 'antd';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useQueryBuilderContext } from '../QueryBuilder';\nimport { FieldTypeInput } from './field-type-input';\nimport { FieldSelect } from './field-select';\nimport { IField } from '@rapid/data-model';\nimport { returnData } from '../utils/helpers';\nimport { allFields } from '../../../utils/allFields';\nimport { IQueryBuilderTable } from '@rapid/data-model/lib/query-builder';\n\ninterface IGenericFieldAttributeProps {\n fieldRefId: string;\n}\n\nexport function GenericField({\n disabled,\n placeholder,\n id,\n value,\n label,\n onChange,\n fieldRefId,\n}: FormElementInputProps<\n string | number | boolean | Date,\n IGenericFieldAttributeProps\n>) {\n const [form, data] = useAdaptiveFormContext();\n const [context] = useQueryBuilderContext();\n\n const radioOptions = ['Value', 'Field'];\n const [radioValue, setRadioValue] = useState();\n\n useEffect(\n function onRadioValueUndefined() {\n if (\n radioValue === undefined &&\n !!value &&\n !!context.fieldChoices &&\n context.fieldChoices.length > 0\n ) {\n if (\n typeof value === 'string' &&\n isColumn(value)\n ) {\n setRadioValue(radioOptions[1]);\n } else {\n setRadioValue(radioOptions[0]);\n }\n }\n },\n [value, radioValue, context.fieldChoices],\n );\n\n const isColumn = (str: string) =>\n str.match(\n /^[A-Z]*:~:[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}./i,\n ) !== null;\n\n const genericFieldClass = useComposedClassName(\n function* () {\n yield 'Label GenericField';\n\n if (disabled) yield 'disabled';\n },\n [disabled],\n );\n\n const onRadioChange = (e: RadioChangeEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setRadioValue(e.target.value);\n };\n\n const onChangeInput = (e: React.ChangeEvent) => {\n e.preventDefault();\n e.stopPropagation();\n onChange?.(e.target.value);\n };\n\n const field = useMemo(() => {\n if (!!fieldRefId && !!data && context.lists) {\n const strSplit = (data[fieldRefId] as string)?.split(\n '.',\n );\n\n if (strSplit?.length !== 2) return;\n\n const [tableRef, columnName] = strSplit;\n\n if (columnName === 'id') {\n return {\n ColumnName: 'id',\n FieldType: 'Number',\n SystemManaged: true,\n Title: 'Id',\n } as IField;\n }\n \n const tableName = (returnData(tableRef, context.data) as IQueryBuilderTable).table;\n const list = context.lists.find(l => l.Table === tableName);\n\n if (!!list)\n return allFields(list).find(f => f.ColumnName === columnName);\n }\n }, [fieldRefId, data, context.lists]);\n\n return !!field ? (\n \n ) : (\n \n );\n}\n","import { IFormElement } from '@rapid/adaptive-forms';\nimport { v4 as uuidv4 } from 'uuid';\nimport { QueryGroup } from './base-layout';\nimport { JoinGroup } from './sql-join-layout';\n\nexport function BasicQuery(uuid: string = uuidv4()): IFormElement {\n return {\n $type: 'AdaptiveForm',\n id: 'root',\n $children: [\n {\n $type: 'Input.FieldSelect' as any,\n id: `Select:~:${uuid}`,\n label: 'Select',\n attributes: {\n multiple: true,\n },\n },\n {\n $type: 'Input.TableAlias' as any,\n id: `From:~:${uuid}`,\n label: 'From',\n },\n ],\n } as IFormElement;\n}\n\nexport function SQLQuery(uuid: string = uuidv4()): IFormElement {\n return {\n $type: 'AdaptiveForm',\n id: 'root',\n $children: [\n {\n $type: 'Input.Text' as any,\n id: `Name:~:${uuid}`,\n label: 'Name',\n size: 'small',\n },\n {\n $type: 'Input.FieldSelect' as any,\n id: `Select:~:${uuid}`,\n label: 'Select',\n attributes: {\n multiple: true,\n },\n },\n {\n $type: 'Input.TableAlias' as any,\n id: `From:~:${uuid}`,\n label: 'From',\n },\n JoinGroup(),\n {\n $type: 'Layout.Heading' as any,\n id: `Heading:~:${uuid}-Where`,\n attributes: {\n label: 'Where',\n type: 'h5',\n },\n },\n QueryGroup(),\n {\n $type: 'Input.OrderBy',\n id: `OrderBy:~:${uuid}`,\n label: 'Order By',\n },\n ],\n } as IFormElement;\n}\n","import { IFormElement } from '@rapid/adaptive-forms';\nimport { IQueryBuilderSQL } from '@rapid/data-model/lib/query-builder';\nimport { StringGradients } from 'antd/lib/progress/progress';\nimport { v4 as uuidv4 } from 'uuid';\nimport { QueryGroupRemovable, QueryGroup, QueryRule } from '../layouts/base-layout';\nimport {\n JoinGroup,\n JoinGroupWithoutQuery,\n} from '../layouts/sql-join-layout';\nimport { BasicQuery } from '../layouts/sql-layout';\nimport { getFormElementId } from './helpers';\n\nexport class SQLQueryParser {\n protected rootId: string;\n protected query: IQueryBuilderSQL;\n protected data: Record;\n protected form: IFormElement;\n protected uuid?: string;\n protected joinUuid?: string;\n protected whereUuid?: string;\n\n constructor(query: IQueryBuilderSQL, rootId: string = 'root') {\n this.query = query;\n this.rootId = rootId;\n this.data = query.data;\n\n for (let key of Object.keys(this.data[this.rootId])) {\n const elementId = getFormElementId(key);\n if (!elementId) break;\n switch (elementId.type) {\n case 'Select':\n this.uuid = elementId.uuid;\n break;\n case 'JoinsGroup':\n this.joinUuid = elementId.uuid;\n break;\n case 'QueryGroup':\n this.whereUuid = elementId.uuid;\n break;\n }\n }\n\n if (!this.uuid) this.uuid = uuidv4();\n if (!this.joinUuid) this.joinUuid = uuidv4();\n if (!this.whereUuid) this.whereUuid = uuidv4();\n\n this.form = BasicQuery(this.uuid);\n\n this.addJoins();\n this.addWhere();\n this.addOrderBy();\n }\n\n getFormData(): [form: IFormElement, data: Record] {\n return [this.form, this.data];\n }\n\n protected addJoins() {\n const joinGroup = JoinGroup(this.joinUuid);\n\n if (!!this.query.joins) {\n const data = this.data[this.rootId][`JoinsGroup:~:${this.joinUuid}`];\n if (!!data) {\n for (let key of Object.keys(data)) {\n const elementId = getFormElementId(key);\n if (!!elementId && elementId.type === 'JoinRule')\n joinGroup.$children?.push(this.parseJoinRuleGroup(elementId.uuid, data[key]));\n }\n }\n }\n\n this.form.$children?.push(joinGroup);\n }\n\n protected addWhere() {\n this.form.$children?.push({\n $type: 'Layout.Heading' as any,\n id: `Heading:~:${this.uuid}`,\n attributes: {\n label: 'Where',\n type: 'h5',\n },\n });\n\n if (!this.query.where) {\n this.form.$children?.push(QueryGroup(this.uuid));\n return;\n }\n\n const whereForm = this.parseRuleGroup(this.whereUuid!, this.data[this.rootId][`QueryGroup:~:${this.whereUuid}`]);\n this.form.$children?.push(whereForm);\n }\n\n protected addOrderBy() {\n this.form.$children?.push(\n {\n $type: 'Input.OrderBy',\n id: `OrderBy:~:${this.uuid}`,\n label: 'Order By',\n });\n }\n \n protected parseRuleGroup(\n uuid: string,\n data: Record,\n depth: number = 0,\n ): IFormElement {\n const form = depth === 0 ? QueryGroup(uuid) : QueryGroupRemovable(uuid);\n\n for (let key of Object.keys(data)) {\n if (typeof data[key] === 'object') {\n const elementId = getFormElementId(key);\n if (!elementId) break;\n switch(elementId.type) {\n case 'QueryGroup':\n form.$children?.push(this.parseRuleGroup(elementId.uuid, data[key], depth + 1));\n break;\n case 'QueryRule':\n form.$children?.push(QueryRule(elementId.uuid));\n }\n }\n }\n\n return form;\n }\n \n protected parseJoinRuleGroup(\n uuid: string,\n data: Record\n ): IFormElement {\n const form = JoinGroupWithoutQuery(uuid);\n\n for (let key of Object.keys(data)) {\n if (typeof data[key] === 'object') {\n const elementId = getFormElementId(key);\n if (elementId?.type === 'QueryGroup')\n form.$children?.push(this.parseRuleGroup(elementId.uuid, data[key]));\n }\n }\n \n return form;\n }\n}","import { IFormElement } from '@rapid/adaptive-forms';\nimport { IQueryBuilderSQL } from '@rapid/data-model/lib/query-builder';\nimport { QBOdataVisitor } from '@rapid/odata';\nimport { ODataNode } from '@rapid/odata-parser';\nimport { RuleGroupType, RuleType } from 'react-querybuilder';\nimport { v4 as uuidv4 } from 'uuid';\nimport { QueryGroupRemovable, QueryGroup, QueryRule } from '../layouts/base-layout';\nimport { SQLQuery } from '../layouts/sql-layout';\nimport {\n IQueryBuilderType,\n} from '../QueryBuilder';\nimport { SQLQueryParser } from './sql-query-parser';\n\nexport function queryParse(\n type: IQueryBuilderType,\n _data?: RuleGroupType | IQueryBuilderSQL | ODataNode,\n): [form: IFormElement, data: Record] {\n if (!_data)\n return [\n type === IQueryBuilderType.Basic ? QueryGroup() : SQLQuery(),\n {},\n ];\n\n if (\n type === IQueryBuilderType.SQL &&\n (_data as IQueryBuilderSQL).from !== undefined\n ) {\n return new SQLQueryParser(_data as IQueryBuilderSQL).getFormData();\n }\n\n if ((_data as ODataNode).type !== undefined) {\n const ruleGroup = new QBOdataVisitor().visit(_data as ODataNode);\n const [id, form, data] = parseRuleGroup(ruleGroup as RuleGroupType);\n return [form, data];\n }\n\n const [id, form, data] = parseRuleGroup(_data as RuleGroupType);\n return [form, data];\n}\n\nexport function parseRule(\n rule: RuleType,\n): [id: string, form: IFormElement, data: Record] {\n const uuid = uuidv4();\n const ruleId = `QueryRule:~:${uuid}`;\n\n const data: Record = {};\n data[`Operator:~:${uuid}`] = rule.operator;\n data[`lValue:~:${uuid}`] = rule.field;\n data[`rValue:~:${uuid}`] = rule.value;\n\n return [ruleId, QueryRule(uuid), data];\n}\n\nexport function parseRuleGroup(\n rule: RuleGroupType | RuleType,\n depth: number = 0,\n): [id: string, form: IFormElement, data: Record] {\n const uuid = uuidv4();\n const groupId = `QueryGroup:~:${uuid}`;\n const form = depth === 0 ? QueryGroup(uuid) : QueryGroupRemovable(uuid);\n\n const data: Record = {};\n data[groupId] = {};\n\n if ((rule as RuleGroupType).combinator !== undefined) {\n data[groupId][`RadioAndOr:~:${uuid}`] = (rule as RuleGroupType).combinator;\n\n for (const r of (rule as RuleGroupType).rules) {\n const [ruleId, ruleForm, ruleData] =\n (r as RuleType).value !== undefined\n ? parseRule(r as RuleType)\n : parseRuleGroup(r as RuleGroupType, depth + 1);\n form.$children?.push(ruleForm);\n data[groupId][ruleId] =\n (r as RuleType).value !== undefined ? ruleData : ruleData[ruleId];\n }\n } else {\n data[groupId][`RadioAndOr:~:${uuid}`] = 'and';\n const [ruleId, ruleForm, ruleData] = parseRule(rule as RuleType);\n form.$children?.push(ruleForm);\n data[groupId][ruleId] = ruleData;\n }\n\n return [groupId, form, data];\n}","import { FormElementInputProps } from '@rapid/adaptive-forms';\nimport { IQueryBuilderOrderBy } from '@rapid/data-model/lib/query-builder';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { Radio, RadioChangeEvent, Select } from 'antd';\nimport { useMemo } from 'react';\nimport {\n FieldAlias,\n IQueryBuilderType,\n useQueryBuilderContext,\n} from '../QueryBuilder';\nimport { removeData } from '../utils/helpers';\n\nexport function OrderBySelect({\n disabled,\n id,\n value,\n label,\n onChange,\n}: FormElementInputProps) {\n const { Option } = Select;\n const [context, updateContext] = useQueryBuilderContext();\n\n const orderOptions = [\n { label: 'Ascending', value: 'asc' },\n { label: 'Descending', value: 'desc' },\n ];\n\n const OrderBySelectClass = useComposedClassName(\n function* () {\n yield 'Label OrderBySelect';\n\n if (disabled) yield 'disabled';\n },\n [disabled],\n );\n\n const selectedFields = useMemo(() => {\n if (!!context.data) {\n const rootId = context.form.id;\n const data = context.data[rootId];\n\n if (!!data) {\n for (const key of Object.keys(data)) {\n if (key.match(/^Select/i)) {\n if (!!data[key]) return data[key] as string[];\n }\n }\n }\n }\n }, [context.data]);\n\n const onOrderChangeInner = (e: RadioChangeEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (value?.column) {\n const val: IQueryBuilderOrderBy = {\n ...value,\n order: e.target.value,\n };\n\n onChange?.(val);\n }\n };\n\n const onColumnChangeInner = (str: string) => {\n if (!str) {\n updateContext(d => {\n removeData(id, d.data);\n });\n return;\n }\n const val: IQueryBuilderOrderBy = {\n ...value,\n column: str,\n };\n\n onChange?.(val);\n };\n\n const Options = useMemo(() => {\n if (context.type === IQueryBuilderType.Basic) {\n return (context.fieldChoices as string[])\n ?.filter(choice => selectedFields?.some(s => s === choice))\n ?.map(choice => (\n \n ));\n }\n\n return (context.fieldChoices as FieldAlias[])\n ?.filter(choice =>\n selectedFields?.some(s => {\n const [id, column] = s.split('.');\n return choice.id === id && choice.column === column;\n }),\n )\n ?.map(choice => (\n \n {`${choice.tableAlias || choice.table}.${choice.column}`}\n \n ));\n }, [selectedFields, context.fieldChoices, context.type]);\n\n return (\n \n );\n}\n","import { AdaptiveRenderer, IFormElement } from '@rapid/adaptive-forms';\nimport { Updater, useImmer } from '@rapid/sdk';\nimport React, { useContext, useEffect, useMemo } from 'react';\nimport { AddGroup } from './actions/add-group';\nimport { AddRule } from './actions/add-rule';\nimport { RemoveItem } from './actions/remove-item';\nimport { OperandField } from './fields/operand-field';\nimport { FieldSelect } from './fields/field-select';\nimport { TableSelect } from './fields/table-select';\nimport { AndOrToggle } from './fields/and-or-toggle';\nimport { AddJoin } from './actions/add-join';\nimport type { RuleGroupType } from 'react-querybuilder';\nimport { DefaultFields, IList } from '@rapid/data-model';\nimport { GenericField } from './fields/generic-field';\nimport { ODataNode } from '@rapid/odata-parser';\nimport { queryParse } from './utils/parser-functions';\n\nimport './QueryBuilder.scss';\nimport { OrderBySelect } from './fields/orderby-select';\nimport { TableAliasInput } from './fields/table-alias-input';\nimport { IQueryBuilderJoin, IQueryBuilderSQL, IQueryBuilderTable } from '@rapid/data-model/lib/query-builder';\n\nexport enum IQueryBuilderType {\n 'Basic',\n 'SQL',\n}\n\nexport interface TableAlias {\n id: string;\n table: string;\n alias?: string;\n list?: IList;\n}\n\nexport interface FieldAlias {\n id: string;\n table: string;\n tableAlias?: string;\n column: string;\n}\nexport interface IQueryBuilderProps {\n lists: IList[];\n data?: IQueryBuilderSQL | RuleGroupType | ODataNode;\n type: IQueryBuilderType;\n onChange(data: Record): void;\n}\n\nexport interface IQueryBuilderContext {\n lists: IList[];\n fieldChoices: (string | FieldAlias)[];\n tableChoices: string[];\n form: IFormElement;\n data: Record;\n type: IQueryBuilderType;\n}\n\nconst queryBuilderContext = React.createContext<\n [IQueryBuilderContext, Updater]\n>({} as any);\n\nexport function QueryBuilder({\n onChange,\n lists,\n type,\n data,\n}: React.PropsWithRef) {\n const [initialForm, initialData] = queryParse(type, data);\n\n const [context, updateContext] = useImmer({\n form: initialForm,\n data: initialData,\n lists: lists,\n type: type,\n tableChoices: [],\n fieldChoices: [],\n });\n\n const tableChoices = useMemo(() => lists.map(l => l.Table), [lists]);\n\n const basicChoices = useMemo(\n () =>\n context.lists.flatMap(list => [\n `${list.Table}.id`,\n ...DefaultFields(list).flatMap(\n field => `${list.Table}.${field.ColumnName}`,\n ),\n ...list.Fields.flatMap(field => `${list.Table}.${field.ColumnName}`),\n ]),\n [lists],\n );\n\n const formIds = useMemo(() => {\n if (!!context.form) {\n const rootId = context.form.id;\n const fromId = context.form.$children?.find(c =>\n c.id.match(/^From/i),\n )?.id;\n const joinsId = context.form.$children?.find(c =>\n c.id.match(/^JoinsGroup/i),\n )?.id;\n\n if (fromId === undefined || joinsId === undefined) return;\n\n return [rootId, fromId, joinsId];\n }\n }, [context.form]);\n\n const sqlChoices = useMemo(() => {\n if (!!context.lists && !!context.data && !!formIds) {\n const [rootId, fromId, joinsId] = formIds;\n const fields: FieldAlias[] = [];\n const queryTables: TableAlias[] = [];\n\n if (!context.data[rootId]) return;\n\n if (!!context.data[rootId][fromId]) {\n const from = context.data[rootId][fromId] as IQueryBuilderTable;\n queryTables.push({\n id: fromId,\n table: from.table,\n alias: from.alias,\n list: context.lists.find(l => l.Table === from.table),\n });\n }\n\n if (!!context.data[rootId][joinsId]) {\n const joinsGroup = context.data[rootId][joinsId];\n for (const key of Object.keys(joinsGroup)) {\n const joinUuid = key.replace('JoinRule:~:', '');\n const join = joinsGroup[key][\n `Join:~:${joinUuid}`\n ] as IQueryBuilderJoin;\n if (!!join) {\n queryTables.push({\n id: `Join:~:${joinUuid}`,\n table: join.table,\n alias: join.alias,\n list: context.lists.find(l => l.Table === join.table),\n });\n }\n }\n }\n\n if (queryTables.length === 0) return;\n\n for (const queryTable of queryTables) {\n if (!!queryTable.list)\n fields.push(\n ...[\n {\n ...queryTable,\n tableAlias: queryTable.alias,\n column: 'id',\n },\n ...DefaultFields(queryTable.list).map(f => {\n return {\n ...queryTable,\n tableAlias: queryTable.alias,\n column: f.ColumnName,\n };\n }),\n ...queryTable.list.Fields.map(f => {\n return {\n ...queryTable,\n tableAlias: queryTable.alias,\n column: f.ColumnName,\n };\n }),\n ],\n );\n }\n\n return fields;\n }\n }, [lists, context.data, formIds]);\n\n useEffect(\n function onTableChoicesUpdated() {\n updateContext(d => {\n d.tableChoices = tableChoices ?? [];\n });\n },\n [tableChoices],\n );\n\n useEffect(\n function onFieldChoicesUpdated() {\n if (context.type !== undefined) {\n updateContext(d => {\n d.fieldChoices =\n context.type === IQueryBuilderType.Basic\n ? basicChoices\n : sqlChoices ?? [];\n });\n }\n },\n [type, lists, context.data],\n );\n\n const onInnerChange = (element: IFormElement, value: Record) =>\n updateContext(d => {\n d.data[element.id] = value;\n });\n\n useEffect(\n function onDataUpdated() {\n if (!!context.data) {\n onChange(context.data);\n }\n },\n [context.data],\n );\n\n return (\n <>\n \n
\n \n
\n
\n \n );\n}\n\nexport function useQueryBuilderContext(): [\n IQueryBuilderContext,\n Updater,\n] {\n return useContext(queryBuilderContext);\n}\n","import { FormElementInputProps } from '@rapid/adaptive-forms';\nimport { IQueryBuilderTable } from '@rapid/data-model/lib/query-builder';\nimport { useComposedClassName } from '@rapid/sdk';\nimport { Input, Select } from 'antd';\nimport { useQueryBuilderContext } from '../QueryBuilder';\n\nexport function TableAliasInput({\n disabled,\n id,\n value,\n label,\n onChange,\n}: FormElementInputProps) {\n const { Option } = Select;\n const [context] = useQueryBuilderContext();\n\n const TableAliasClass = useComposedClassName(\n function* () {\n yield 'Label TableAliasClass';\n\n if (disabled) yield 'disabled';\n },\n [disabled],\n );\n\n const onAliasChangeInner = (e: React.ChangeEvent) => {\n if (value?.table) {\n onChange?.({ ...value, alias: e.target.value });\n }\n };\n\n const onTableChangeInner = (table: string) => onChange?.({ ...value, table });\n\n return (\n \n );\n}\n","import { IQueryBuilderJoin, IQueryBuilderOrderBy, IQueryBuilderSQL, IQueryBuilderTable } from '@rapid/data-model/lib/query-builder';\nimport { ASTParser } from '@rapid/odata';\nimport { ODataNode } from '@rapid/odata-parser';\nimport { RuleGroupType, RuleType } from 'react-querybuilder';\nimport { getColumn, getFormElementId, isColumn } from './helpers';\n\nexport class SQLQueryConverter {\n protected data: Record;\n protected name?: string;\n protected select: string[];\n protected from: IQueryBuilderTable;\n protected joins?: IQueryBuilderJoin[];\n protected where?: ODataNode;\n protected orderBy?: IQueryBuilderOrderBy;\n\n constructor(data: Record, id: string = 'root') {\n this.data = data;\n this.select = [];\n this.from = {\n table: '',\n };\n\n for (const key of Object.keys(data[id])) {\n switch (getFormElementId(key)?.type) {\n case 'Select':\n this.convertSelect(data[id][key] as string[]);\n break;\n case 'Name':\n this.name = data[id][key] as string;\n break;\n case 'From':\n this.from = data[id][key] as IQueryBuilderTable;\n break;\n case 'OrderBy':\n this.convertOrderBy(data[id][key] as IQueryBuilderOrderBy);\n break;\n case 'JoinsGroup':\n this.convertToSQLJoinsQuery(data[id][key]);\n break;\n case 'QueryGroup':\n this.where = this.ruleGroupToAST(\n this.convertToRuleGroup(key, data[id][key]),\n );\n break;\n }\n }\n }\n\n getQuery(): IQueryBuilderSQL {\n return {\n data: this.data,\n name: this.name,\n select: this.select,\n from: this.from,\n joins: this.joins,\n where: this.where,\n orderBy: this.orderBy,\n };\n }\n\n protected convertSelect = (select: string[]) =>\n (this.select = select.map(s => getColumn(s, this.data)));\n\n protected convertOrderBy = (orderBy: IQueryBuilderOrderBy) =>\n (this.orderBy = {\n ...orderBy,\n column: getColumn(orderBy.column, this.data),\n });\n\n protected convertToRule(id: string, data: Record): RuleType {\n const rule: RuleType = {\n id: id,\n field: '',\n operator: '',\n value: '',\n };\n\n for (const key of Object.keys(data)) {\n switch (getFormElementId(key)?.type) {\n case 'Operator':\n rule.operator = data[key] as string;\n break;\n case 'lValue':\n const lValue = data[key] as string;\n rule.field = isColumn(lValue) ? getColumn(lValue, this.data) : lValue;\n break;\n case 'rValue':\n const rValue = data[key];\n rule.value =\n typeof rValue == 'string' && isColumn(rValue)\n ? getColumn(rValue, this.data)\n : rValue;\n break;\n }\n }\n\n return rule;\n }\n\n protected convertToRuleGroup(\n id: string,\n data: Record,\n ): RuleGroupType {\n const query: RuleGroupType = {\n id: id,\n combinator: 'and',\n rules: [],\n not: false,\n };\n\n for (const key of Object.keys(data)) {\n switch (getFormElementId(key)?.type) {\n case 'RadioAndOr':\n query.combinator = data[key] as string;\n break;\n case 'QueryRule':\n query.rules.push(this.convertToRule(key, data[key]));\n break;\n case 'QueryGroup':\n query.rules.push(this.convertToRuleGroup(key, data[key]));\n break;\n }\n }\n\n return query;\n }\n\n protected convertToSQLJoinsQuery(data: Record) {\n this.joins = [];\n\n for (const key of Object.keys(data)) {\n const elementId = getFormElementId(key);\n if (elementId?.type === 'JoinRule') {\n const join: IQueryBuilderJoin = {\n ...(data[key][`Join:~:${elementId.uuid}`] as IQueryBuilderTable),\n };\n if (data[key].hasOwnProperty(`QueryGroup:~:${elementId.uuid}`)) {\n join.rules = this.ruleGroupToAST(\n this.convertToRuleGroup(`QueryGroup:~:${elementId.uuid}`, data[key][`QueryGroup:~:${elementId.uuid}`]),\n );\n }\n this.joins.push(join);\n }\n }\n }\n\n protected ruleGroupToAST(ruleGroup: RuleGroupType): ODataNode|undefined {\n return new ASTParser().convertToAst(ruleGroup) ?? undefined;\n }\n}\n","import React, { useState } from 'react';\nimport { Modal } from 'antd';\nimport { useCurrentSite } from '@rapid/sdk';\nimport { IQueryBuilderType, QueryBuilder } from '../../components/QueryBuilder/QueryBuilder';\nimport { IAdaptiveView } from '../AdaptiveViewsList/adaptiveViewsList';\nimport { SQLQueryConverter } from '../../components/QueryBuilder/utils/sql-query-converter';\n\ninterface EditAdaptiveViewFormProps {\n initialData: IAdaptiveView;\n visible: boolean;\n onSubmit: (item: IAdaptiveView) => void;\n onCancel: () => void;\n}\n\nexport const EditAdaptiveViewForm: React.FC = ({\n initialData,\n visible,\n onSubmit,\n onCancel,\n}) => {\n const [currentSite] = useCurrentSite();\n const type = IQueryBuilderType.SQL;\n const [data, setData] = useState>();\n\n return (\n {\n onCancel();\n setData(undefined);\n }}\n onOk={() => {\n if (!!data) {\n const sql = new SQLQueryConverter(data).getQuery();\n const item: IAdaptiveView = {\n ...initialData,\n schema: sql,\n };\n onSubmit(item);\n setData(undefined);\n }\n }}\n >\n {!!currentSite?.Lists && (\n {\n setData(data);\n }}\n />\n )}\n \n );\n};\n","import {\n ManagedListItemContext,\n useCurrentSiteEndpoint,\n useListItemContext,\n} from '@rapid/sdk';\nimport { useParams } from 'react-router-dom';\nimport {\n CommandBar,\n CommandBarCenter,\n CommandBarLeft,\n CommandBarRight,\n} from '../../components/commandbar/commandBar';\nimport { IAdaptiveViewParams } from '../../components/dataTypes';\nimport { Result, Button, Popconfirm } from 'antd';\nimport { useNavigation } from '../../utils/Navigation';\nimport { useBreadcrumbText } from '../../utils/breadcrumbText';\nimport { Breadcrumbs } from '../../sdk/breadcrumbs/breadcrumbs';\nimport { IAdaptiveView } from '../AdaptiveViewsList/adaptiveViewsList';\nimport { feedbackWrapper } from '../../utils/feedbackWrapper';\nimport { useEffect, useMemo, useState } from 'react';\nimport { AnyListItem } from '@rapid/data-model';\nimport {\n AdaptiveViewTable,\n IAdaptiveViewTableColumn,\n} from '../../components/dataTable/AdaptiveViewTable';\nimport { EditAdaptiveViewForm } from './editAdaptiveViewForm';\nimport { IQueryBuilderSQL } from '@rapid/data-model/lib/query-builder';\n\nexport function AdaptiveViewContext({ children }: React.PropsWithChildren<{}>) {\n const { viewId } = useParams();\n\n return (\n \n {children}\n \n );\n}\n\nexport function AdaptiveView() {\n const ep = useCurrentSiteEndpoint();\n const { BaseNavigate } = useNavigation();\n const breadcrumbText = useBreadcrumbText();\n const [context, updateContext] = useListItemContext();\n const [items, setItems] = useState();\n const [viewExists, setViewExists] = useState(true);\n const [editAdaptiveViewVisible, setEditCustomViewVisible] =\n useState(false);\n\n const table = (tableOrAlias: string, query: IQueryBuilderSQL): string => {\n if (tableOrAlias === query.from.alias || tableOrAlias === query.from.table)\n return query.from.table;\n\n return (\n query.joins?.find(j => j.alias === tableOrAlias)?.table || tableOrAlias\n );\n };\n\n const columns: IAdaptiveViewTableColumn[] | undefined = useMemo(() => { \n if (!!context.item) {\n const schema = (context.item as IAdaptiveView).schema;\n return schema.select.map(select => {\n const [tableOrAlias, column] = select.split('.');\n return {\n columnName: column,\n tableName: table(tableOrAlias, schema),\n dataIndex: select.replace('.', '$'),\n };\n });\n }\n }, [context.item]);\n\n async function updateAdaptiveViewItems(viewName: string) {\n try {\n const data = await ep.Views[viewName].getJson();\n setItems(data.value as AnyListItem[]);\n } catch (err) {\n setViewExists(false);\n }\n }\n\n function updateAdaptiveView(item: IAdaptiveView) {\n if (!!item.id) {\n feedbackWrapper(\n async () => {\n await ep.Lists[context.list.ListName][''].Items[item.id!].putJson(\n undefined,\n item,\n );\n\n updateContext(d => {\n d.item = item;\n });\n\n await ep.Views[item.view_name].putJson({}, item.schema);\n await updateAdaptiveViewItems(item.view_name);\n },\n `Updating ${item.title}...`,\n `${item.title} view updated!`,\n `Unable to update ${item.title}.`,\n );\n }\n }\n\n async function createAdaptiveView(item: IAdaptiveView) {\n await feedbackWrapper(\n () =>\n ep.Views[item.view_name]\n .postJson({}, item.schema),\n `Creating ${item.title}...`,\n `${item.title} view created!`,\n `Unable to create ${item.title}.`,\n );\n }\n\n async function deleteAdaptiveView(item: IAdaptiveView) {\n await feedbackWrapper(\n () =>\n ep.Lists[context.list.ListName]['All'].Items.delete({}, [item.id!]).then(() => \n ep.Views[item.view_name].delete()\n ),\n `Deleting ${item.title}...`,\n `${item.title} view deleted!`,\n `Unable to delete ${item.title}.`,\n );\n BaseNavigate('/adaptiveviews');\n }\n\n\n useEffect(\n function onItemUpdated() {\n if (!!context.item) {\n const item = context.item as IAdaptiveView;\n updateAdaptiveViewItems(item.view_name);\n }\n },\n [context.item],\n );\n\n return !!context.item && !!columns ? (\n <>\n \n \n \n \n \n {(context.item as IAdaptiveView).title}\n \n \n setEditCustomViewVisible(true)}\n >\n \n \n  \n {\n e?.stopPropagation();\n deleteAdaptiveView(context.item as IAdaptiveView);\n }}\n onCancel={e => e?.stopPropagation()}\n okText=\"Delete\"\n okButtonProps={{ danger: true }}\n cancelText=\"No\"\n placement=\"bottomRight\"\n >\n ev.stopPropagation()}\n >\n \n \n \n \n \n
\n {!items && !viewExists ? (\n createAdaptiveView(context.item as IAdaptiveView)}>\n Create View\n ,\n ,\n ]}\n />\n ): ( \n \n )}\n
\n {\n setEditCustomViewVisible(false);\n updateAdaptiveView(item);\n }}\n onCancel={() => setEditCustomViewVisible(false)}\n />\n \n ) : !context.loading ? (\n <>\n \n \n \n \n \n
\n BaseNavigate('/adaptiveviews')}>\n Back to Adaptive Views\n ,\n ]}\n />\n
\n \n ) : (\n <>\n \n \n \n \n \n
\n
\n \n );\n}\n","import { Skeleton, SkeletonProps, Table } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\n\ntype SkeletonTableProps = SkeletonProps & {\n columns: ColumnsType;\n rowCount?: number;\n};\n\nexport default function SkeletonTable({\n active = true,\n rowCount = 5,\n columns,\n className,\n}: SkeletonTableProps): JSX.Element {\n return (\n ({\n key: `key${index}`,\n }))}\n columns={columns.map((column) => {\n return {\n ...column,\n render: function renderPlaceholder() {\n return (\n \n );\n },\n };\n })}\n />);\n}","import { IChoice, IField } from '@rapid/data-model';\nimport { IEnvTenantSiteParams, useViewContext } from '@rapid/sdk';\nimport { Table, Tag } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport Paragraph from 'antd/lib/typography/Paragraph';\nimport { ReactNode, useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { useListFields } from '../../utils/ListFields';\nimport { useTitleField } from '../../utils/TitleField';\nimport SkeletonTable from './SkeletonTable';\n\nexport interface IManagedViewContextTableProps {\n /** Custom Link to to use on tables title field. */\n customTitleRender?(): ReactNode;\n}\n\nexport function ManagedViewContextTable({\n customTitleRender,\n}: React.PropsWithoutRef) {\n const params = useParams();\n const [view] = useViewContext();\n const { getListFields } = useListFields();\n const { getTitleField } = useTitleField();\n const [columns, setColumns] = useState>([]);\n\n function getItemLink(record: any): string | undefined {\n let url: string;\n\n if (params.env === 'prod') {\n url = 'app.rapidplatform.com';\n } else {\n url = 'test.rapidplatform.com';\n }\n\n return `https://${url}/${params.tenant}/${params.site}/explorer/${view.list.ListName}/${view.list.ListNameSingular}:${view.list.ListName}:${record.id}`;\n }\n\n function renderColumn(field: IField): ReactNode {\n if (field.ColumnName === getTitleField(view.list)) {\n return customTitleRender\n ? customTitleRender()\n : (text: string, record: any) => {\n const link = getItemLink(record);\n return link ? (\n \n {text}\n \n ) : !!text ? (\n `${text}`\n ) : null;\n };\n }\n\n const isLookup = field.FieldType === 'Lookup';\n const textColumn = field.ColumnName.replace('_id', '');\n\n const fieldType =\n field.FieldType === 'Lookup'\n ? getListFields(field.Settings?.LookupList ?? '')?.find(\n f => f.ColumnName === field.Settings?.LookupField?.replace('_id', ''),\n )?.FieldType\n : field.Settings?.DisplayAs || field.FieldType;\n\n switch (fieldType) {\n case 'DateTime':\n return (value: string, record: any) => {\n const val = isLookup ? record[textColumn] as string : value;\n if (!val) return null;\n return new Date(val).toLocaleDateString();\n };\n case 'Choice':\n return (value: string, record: any) => {\n const val = isLookup ? record[textColumn] as string : value;\n const choice = field.Settings?.Choices?.find(\n choice => (choice as IChoice).Text === val,\n ) as IChoice;\n return !!choice?.AccentColour ? (\n {choice.Text}\n ) : (\n isLookup ? record[textColumn] : value\n );\n };\n case 'Boolean':\n return (value: boolean, record: any) => {\n const val = isLookup ? record[textColumn] as boolean : value;\n if (val === true) {\n return (\n } color=\"success\">\n  Yes\n \n );\n }\n\n if (val === false) {\n return (\n } color=\"error\">\n  No\n \n );\n }\n\n return null;\n };\n case 'JSON':\n return (value: JSON, record: any) => {\n const val = isLookup ? record[textColumn] as JSON : value;\n if (!val) return null;\n const json = JSON.stringify(val);\n\n return , ]\n }}>\n {json.length > 150 ? `${json.slice(0,140)}...` : json}\n ;\n }\n case 'Percentage':\n return (value: string, record: any) => {\n const val = isLookup ? record[textColumn] as string : value;\n return !!val ? `${val}%` : null;\n } \n case 'Currency':\n return (value: string, record: any) => {\n const val = isLookup ? record[textColumn] as string : value;\n return !!val ? `${field.Settings?.CurrencyType} ${val}` : null;\n }\n default:\n return (value: string, record: any) => {\n const val = isLookup ? record[textColumn] as string : value;\n return !!val ? `${val}` : null;\n }\n }\n }\n\n useEffect(\n function setColumnsFromView() {\n if (!!view) {\n const columns: any[] = [];\n const fields = getListFields(view.list)!;\n for (const field of fields) {\n const column = view.dataSource.Columns.find(c => c.ColumnName === field.ColumnName);\n if (!!column) {\n const render = renderColumn(field);\n columns.push({\n key: field.ColumnName,\n title: field.Title,\n dataIndex: field.ColumnName,\n render: render,\n width: column.MaxWidth ?? 150,\n fixed: field.ColumnName === getTitleField(view.list) ? 'left' : null,\n });\n }\n }\n setColumns(columns);\n }\n },\n [view],\n );\n\n return view.loading ? (\n \n ) : (\n \n );\n}\n","import { IList } from \"@rapid/data-model\";\nimport { useCurrentSite } from \"@rapid/sdk\";\n\nexport function useTitleField() {\n const [currentSite] = useCurrentSite();\n\n function getTitleField(list: string | IList): string|undefined {\n \n const innerList =\n typeof list !== 'string'\n ? list\n : currentSite?.Lists.find(l => l.ListName.localeCompare(list) === 0)!;\n \n if (innerList.Extends === undefined)\n return innerList.TitleField;\n \n const extendedList = currentSite?.Lists.find(\n l =>\n l.ListName.localeCompare(\n innerList.Extends!) === 0,\n )!;\n\n return extendedList.TitleField; \n }\n\n return { getTitleField };\n}","import React, { useState } from 'react';\nimport { Modal } from 'antd';\nimport {\n IQueryBuilderType,\n QueryBuilder,\n} from '../../../components/QueryBuilder/QueryBuilder';\nimport { kebabCase, useCurrentSite, useCurrentSiteEndpoint } from '@rapid/sdk';\nimport { IAdaptiveView } from '../adaptiveViewsList';\nimport { SQLQueryConverter } from '../../../components/QueryBuilder/utils/sql-query-converter';\nimport { IQueryBuilderSQL } from '@rapid/data-model/lib/query-builder';\n\ninterface AdaptiveViewFormProps {\n initialData?: IQueryBuilderSQL;\n visible: boolean;\n onSubmit: (item: IAdaptiveView) => void;\n onCancel: () => void;\n}\n\nexport const AdaptiveViewForm: React.FC = ({\n initialData, \n visible,\n onSubmit,\n onCancel,\n}) => {\n const ep = useCurrentSiteEndpoint();\n const [currentSite] = useCurrentSite();\n const type = IQueryBuilderType.SQL;\n const [data, setData] = useState>();\n\n return (\n {\n onCancel();\n setData(undefined);\n }}\n onOk={() => {\n if (!!data) {\n const sql = new SQLQueryConverter(data).getQuery();\n if (!!sql.name) {\n const item: IAdaptiveView = {\n title: sql.name,\n slug: kebabCase(sql.name),\n description: '',\n schema: sql,\n view_name: sql.name,\n __metadata: {\n type: 'Adaptive Views'\n }\n };\n onSubmit(item);\n setData(undefined);\n }\n }\n }}\n >\n {!!currentSite?.Lists && (\n {\n setData(data);\n }}\n />\n )}\n \n );\n};\n","import { AnyListItem } from '@rapid/data-model';\nimport { IQueryBuilderSQL } from '@rapid/data-model/lib/query-builder';\nimport { useCurrentSiteEndpoint, useViewContext } from '@rapid/sdk';\nimport { ReactNode, useState } from 'react';\nimport {\n CommandBar,\n CommandBarCenter,\n CommandBarLeft,\n CommandBarRight,\n} from '../../components/commandbar/commandBar';\nimport { ManagedViewContextTable } from '../../components/dataTable/ManagedViewContextTable';\nimport { Breadcrumbs } from '../../sdk/breadcrumbs/breadcrumbs';\nimport { useBreadcrumbText } from '../../utils/breadcrumbText';\nimport { feedbackWrapper } from '../../utils/feedbackWrapper';\nimport { useNavigation } from '../../utils/Navigation';\nimport { AdaptiveViewForm } from './forms/addAdaptiveViewForm';\n\nexport interface IAdaptiveView extends AnyListItem {\n title: string;\n slug: string;\n description: string;\n view_name: string;\n schema: IQueryBuilderSQL;\n}\n\nexport function AdaptiveViewsList() {\n const { Navigate } = useNavigation();\n const [context] = useViewContext();\n const ep = useCurrentSiteEndpoint();\n const [addCustomViewVisible, setAddCustomViewVisible] =\n useState(false);\n\n async function postAdaptiveView(item: IAdaptiveView) {\n await feedbackWrapper(\n () => ep.Lists['Adaptive Views'][''].Items.postJson({}, [item]).then(() => context.fetchItems()),\n `Adding ${item.title}...`,\n `${item.title} added!`,\n `Unable to add ${item.title}.`,\n );\n }\n\n async function createAdaptiveView(item: IAdaptiveView) {\n await feedbackWrapper(\n () =>\n ep.Views[item.view_name]\n .postJson({}, item.schema),\n `Creating ${item.title}...`,\n `${item.title} view created!`,\n `Unable to create ${item.title}.`,\n );\n }\n\n function customTitleRender(): ReactNode {\n return (text: string, record: any) => {\n return (\n Navigate(`/adaptiveview:${record.id}`)} target=\"_blank\">\n {text}\n \n );\n };\n }\n\n const onSubmit = async (item: IAdaptiveView) => {\n setAddCustomViewVisible(false);\n await postAdaptiveView(item);\n await createAdaptiveView(item);\n }\n\n return (\n <>\n \n \n \n \n \n \n setAddCustomViewVisible(true)}\n >\n \n \n \n \n
\n \n
\n setAddCustomViewVisible(false)}\n />\n \n );\n}\n","import React from 'react';\nimport { Modal, Form, Input, notification } from 'antd';\nimport { IDashboard } from './dashboardsList';\nimport { kebabCase } from '@rapid/sdk';\n\ninterface AddDashboardFormProps {\n visible: boolean;\n onSubmit: (values: any) => void;\n onCancel: () => void;\n}\n\nconst AddDashboardForm: React.FC = ({\n visible,\n onSubmit,\n onCancel,\n}) => {\n const [form] = Form.useForm();\n const { TextArea } = Input;\n\n return (\n {\n form\n .validateFields()\n .then(values => {\n const schema: any = {\n items: []\n };\n const dashboard: IDashboard = {\n title: values.title,\n slug: kebabCase(values.title),\n description: values.description,\n schema: schema,\n __metadata: {\n type: 'Adaptive Dashboards'\n }\n }\n form.resetFields();\n onSubmit(dashboard);\n })\n .catch();\n }}\n >\n \n \n \n \n \n