mirror of
https://github.com/fluxscape/fluxscape.git
synced 2026-01-12 07:12:54 +01:00
Compare commits
1 Commits
v1.0.0
...
feature/sl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1190dbdf89 |
@@ -2,8 +2,8 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"name": "@noodl/repo",
|
"name": "@noodl/repo",
|
||||||
"description": "Low-code for when experience matter",
|
"description": "Low-code for when experience matter",
|
||||||
"author": "Fluxscape <contact@fluxcsape.io>",
|
"author": "Noodl <info@noodl.net>",
|
||||||
"homepage": "https://fluxscape.io",
|
"homepage": "https://noodl.net",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"packages/*"
|
"packages/*"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import css from './Tooltip.module.scss';
|
|||||||
|
|
||||||
export interface TooltipProps extends UnsafeStyleProps {
|
export interface TooltipProps extends UnsafeStyleProps {
|
||||||
content: SingleSlot;
|
content: SingleSlot;
|
||||||
fineType?: string | string[];
|
fineType?: string;
|
||||||
children: Slot;
|
children: Slot;
|
||||||
showAfterMs?: number;
|
showAfterMs?: number;
|
||||||
|
|
||||||
@@ -79,17 +79,9 @@ export function Tooltip({
|
|||||||
|
|
||||||
{fineType && (
|
{fineType && (
|
||||||
<div className={css['FineType']}>
|
<div className={css['FineType']}>
|
||||||
{Array.isArray(fineType) ? (
|
|
||||||
fineType.map((x) => (
|
|
||||||
<Label size={LabelSize.Small} variant={TextType.Secondary}>
|
|
||||||
{x}
|
|
||||||
</Label>
|
|
||||||
))
|
|
||||||
) : (
|
|
||||||
<Label size={LabelSize.Small} variant={TextType.Secondary}>
|
<Label size={LabelSize.Small} variant={TextType.Secondary}>
|
||||||
{fineType}
|
{fineType}
|
||||||
</Label>
|
</Label>
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</BaseDialog>
|
</BaseDialog>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<title>Fluxscape</title>
|
<title>Noodl</title>
|
||||||
<link href="../assets/lib/fontawesome/css/font-awesome.min.css" rel="stylesheet" />
|
<link href="../assets/lib/fontawesome/css/font-awesome.min.css" rel="stylesheet" />
|
||||||
<link href="../assets/css/style.css" rel="stylesheet" />
|
<link href="../assets/css/style.css" rel="stylesheet" />
|
||||||
|
|
||||||
|
|||||||
@@ -2,11 +2,6 @@ import { Keybinding } from '@noodl-utils/keyboard/Keybinding';
|
|||||||
import { KeyCode, KeyMod } from '@noodl-utils/keyboard/KeyCode';
|
import { KeyCode, KeyMod } from '@noodl-utils/keyboard/KeyCode';
|
||||||
|
|
||||||
export namespace Keybindings {
|
export namespace Keybindings {
|
||||||
export const SEARCH = new Keybinding(KeyMod.CtrlCmd, KeyCode.KEY_F);
|
|
||||||
|
|
||||||
export const CLOUD_SERVICE_OPEN_DASHBOARD = new Keybinding(KeyMod.CtrlCmd, KeyMod.Shift, KeyCode.KEY_P);
|
|
||||||
export const CLOUD_SERVICE_OPEN_DASHBOARD_BROWSER = new Keybinding(KeyMod.CtrlCmd, KeyCode.KEY_P);
|
|
||||||
|
|
||||||
export const REFRESH_PREVIEW = new Keybinding(KeyMod.CtrlCmd, KeyCode.KEY_R);
|
export const REFRESH_PREVIEW = new Keybinding(KeyMod.CtrlCmd, KeyCode.KEY_R);
|
||||||
export const OPEN_DEVTOOLS = new Keybinding(KeyMod.CtrlCmd, KeyCode.KEY_D);
|
export const OPEN_DEVTOOLS = new Keybinding(KeyMod.CtrlCmd, KeyCode.KEY_D);
|
||||||
export const OPEN_CLOUD_DEVTOOLS = new Keybinding(KeyMod.CtrlCmd, KeyMod.Shift, KeyCode.KEY_R);
|
export const OPEN_CLOUD_DEVTOOLS = new Keybinding(KeyMod.CtrlCmd, KeyMod.Shift, KeyCode.KEY_R);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { AppRegistry } from '@noodl-models/app_registry';
|
import { AppRegistry } from '@noodl-models/app_registry';
|
||||||
import { SidebarModel } from '@noodl-models/sidebar';
|
import { SidebarModel } from '@noodl-models/sidebar';
|
||||||
import { Keybindings } from '@noodl-constants/Keybindings';
|
import { Keybinding } from '@noodl-utils/keyboard/Keybinding';
|
||||||
|
import { KeyCode, KeyMod } from '@noodl-utils/keyboard/KeyCode';
|
||||||
|
|
||||||
import { IconName } from '@noodl-core-ui/components/common/Icon';
|
import { IconName } from '@noodl-core-ui/components/common/Icon';
|
||||||
|
|
||||||
@@ -68,7 +69,7 @@ export function installSidePanel({ isLesson }: SetupEditorOptions) {
|
|||||||
SidebarModel.instance.register({
|
SidebarModel.instance.register({
|
||||||
id: 'search',
|
id: 'search',
|
||||||
name: 'Search',
|
name: 'Search',
|
||||||
fineType: Keybindings.SEARCH.label,
|
fineType: new Keybinding(KeyMod.CtrlCmd, KeyCode.KEY_F).label,
|
||||||
order: 2,
|
order: 2,
|
||||||
icon: IconName.Search,
|
icon: IconName.Search,
|
||||||
panel: SearchPanel
|
panel: SearchPanel
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ export class HtmlProcessor {
|
|||||||
baseUrl = baseUrl + '/';
|
baseUrl = baseUrl + '/';
|
||||||
}
|
}
|
||||||
|
|
||||||
const title = parameters.title || settings.htmlTitle || 'Fluxscape Viewer';
|
const title = parameters.title || settings.htmlTitle || 'Noodl Viewer';
|
||||||
let headCode = settings.headCode || '';
|
let headCode = settings.headCode || '';
|
||||||
|
|
||||||
if (parameters.headCode) {
|
if (parameters.headCode) {
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import React, { useEffect, useRef, useState } from 'react';
|
import React, { useEffect, useRef, useState } from 'react';
|
||||||
|
|
||||||
import { Keybindings } from '@noodl-constants/Keybindings';
|
|
||||||
import { Environment } from '@noodl-models/CloudServices';
|
import { Environment } from '@noodl-models/CloudServices';
|
||||||
import ParseDashboardServer from '@noodl-utils/parsedashboardserver';
|
import ParseDashboardServer from '@noodl-utils/parsedashboardserver';
|
||||||
|
|
||||||
import { Icon, IconName, IconSize } from '@noodl-core-ui/components/common/Icon';
|
import { Icon, IconName, IconSize } from '@noodl-core-ui/components/common/Icon';
|
||||||
import { IconButton, IconButtonState, IconButtonVariant } from '@noodl-core-ui/components/inputs/IconButton';
|
import { IconButton, IconButtonState, IconButtonVariant } from '@noodl-core-ui/components/inputs/IconButton';
|
||||||
import { PrimaryButton, PrimaryButtonSize, PrimaryButtonVariant } from '@noodl-core-ui/components/inputs/PrimaryButton';
|
import { PrimaryButton, PrimaryButtonSize, PrimaryButtonVariant } from '@noodl-core-ui/components/inputs/PrimaryButton';
|
||||||
import { DialogRenderDirection } from '@noodl-core-ui/components/layout/BaseDialog';
|
|
||||||
import { Collapsible } from '@noodl-core-ui/components/layout/Collapsible';
|
import { Collapsible } from '@noodl-core-ui/components/layout/Collapsible';
|
||||||
import { Tooltip } from '@noodl-core-ui/components/popups/Tooltip';
|
|
||||||
import { Label, LabelSpacingSize } from '@noodl-core-ui/components/typography/Label';
|
import { Label, LabelSpacingSize } from '@noodl-core-ui/components/typography/Label';
|
||||||
import { Text, TextType } from '@noodl-core-ui/components/typography/Text';
|
import { Text, TextType } from '@noodl-core-ui/components/typography/Text';
|
||||||
|
|
||||||
@@ -121,21 +118,12 @@ export function CloudServiceCard({
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{isEditorEnvironment && (
|
{isEditorEnvironment && (
|
||||||
<Tooltip
|
|
||||||
content="Open the Parse Dashboard"
|
|
||||||
fineType={[
|
|
||||||
`In Window: ${Keybindings.CLOUD_SERVICE_OPEN_DASHBOARD.label}`,
|
|
||||||
`In Browser: ${Keybindings.CLOUD_SERVICE_OPEN_DASHBOARD_BROWSER.label}`
|
|
||||||
]}
|
|
||||||
renderDirection={DialogRenderDirection.Below}
|
|
||||||
>
|
|
||||||
<PrimaryButton
|
<PrimaryButton
|
||||||
label="Open dashboard"
|
label="Open dashboard"
|
||||||
size={PrimaryButtonSize.Small}
|
size={PrimaryButtonSize.Small}
|
||||||
onClick={onDashboardClicked}
|
onClick={onDashboardClicked}
|
||||||
isGrowing
|
isGrowing
|
||||||
/>
|
/>
|
||||||
</Tooltip>
|
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Fluxscape Viewer</title>
|
<title>Noodl Viewer</title>
|
||||||
<link href="../../assets/lib/fontawesome/css/font-awesome.min.css" rel="stylesheet">
|
<link href="../../assets/lib/fontawesome/css/font-awesome.min.css" rel="stylesheet">
|
||||||
<link href="assets/style.css" rel="stylesheet">
|
<link href="assets/style.css" rel="stylesheet">
|
||||||
<script type="text/javascript" src="../../assets/lib/jquery-min.js"></script>
|
<script type="text/javascript" src="../../assets/lib/jquery-min.js"></script>
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ function startServer(app, projectGetSettings, projectGetInfo, projectGetComponen
|
|||||||
ProjectModules.instance.injectIntoHtml(info.projectDirectory, data, '/', function (injected) {
|
ProjectModules.instance.injectIntoHtml(info.projectDirectory, data, '/', function (injected) {
|
||||||
projectGetSettings((settings) => {
|
projectGetSettings((settings) => {
|
||||||
settings = settings || {};
|
settings = settings || {};
|
||||||
injected = injected.replace('{{#title#}}', settings.htmlTitle || 'Fluxscape Viewer');
|
injected = injected.replace('{{#title#}}', settings.htmlTitle || 'Noodl Viewer');
|
||||||
injected = injected.replace('{{#customHeadCode#}}', settings.headCode || '');
|
injected = injected.replace('{{#customHeadCode#}}', settings.headCode || '');
|
||||||
|
|
||||||
response.writeHead(200, {
|
response.writeHead(200, {
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
"version": "2.7.0",
|
"version": "2.7.0",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "Fluxscape <contact@fluxscape.io>",
|
"author": "Noodl <info@noodl.net>",
|
||||||
"homepage": "https://fluxscape.io",
|
"homepage": "https://noodl.net",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"desktop-trampoline": "https://github.com/desktop/desktop-trampoline/archive/refs/tags/v0.9.8.tar.gz",
|
"desktop-trampoline": "https://github.com/desktop/desktop-trampoline/archive/refs/tags/v0.9.8.tar.gz",
|
||||||
"dugite": "^1.106.0",
|
"dugite": "^1.106.0",
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
"version": "2.7.0",
|
"version": "2.7.0",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
"description": "Cross platform implementation of platform specific features.",
|
"description": "Cross platform implementation of platform specific features.",
|
||||||
"author": "Fluxscape <contact@fluxscape.io>",
|
"author": "Noodl <info@noodl.net>",
|
||||||
"homepage": "https://fluxscape.io",
|
"homepage": "https://noodl.net",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@noodl/platform": "file:../noodl-platform",
|
"@noodl/platform": "file:../noodl-platform",
|
||||||
"@noodl/platform-node": "file:../noodl-platform-node"
|
"@noodl/platform-node": "file:../noodl-platform-node"
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
"version": "2.7.0",
|
"version": "2.7.0",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
"description": "Cross platform implementation of platform specific features.",
|
"description": "Cross platform implementation of platform specific features.",
|
||||||
"author": "Fluxscape <contact@fluxscape.io>",
|
"author": "Noodl <info@noodl.net>",
|
||||||
"homepage": "https://fluxscape.io",
|
"homepage": "https://noodl.net",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
"test:coverage": "jest --coverage"
|
"test:coverage": "jest --coverage"
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
"version": "2.7.0",
|
"version": "2.7.0",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
"description": "Cross platform implementation of platform specific features.",
|
"description": "Cross platform implementation of platform specific features.",
|
||||||
"author": "Fluxscape <contact@fluxscape.io>",
|
"author": "Noodl <info@noodl.net>",
|
||||||
"homepage": "https://fluxscape.io"
|
"homepage": "https://noodl.net"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,10 +75,10 @@ var SetDbModelPropertiedNodeDefinition = {
|
|||||||
_this.setError('Missing Record Id');
|
_this.setError('Missing Record Id');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
var model = internal.model;
|
||||||
|
|
||||||
const model = internal.model;
|
for (var i in internal.inputValues) {
|
||||||
for (const key in internal.inputValues) {
|
model.set(i, internal.inputValues[i], { resolve: true });
|
||||||
model.set(key, internal.inputValues[key], { resolve: true });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CloudStore.forScope(_this.nodeScope.modelScope).save({
|
CloudStore.forScope(_this.nodeScope.modelScope).save({
|
||||||
|
|||||||
@@ -59,7 +59,6 @@ const DateToStringNode = {
|
|||||||
const month = ('0' + (t.getMonth() + 1)).slice(-2);
|
const month = ('0' + (t.getMonth() + 1)).slice(-2);
|
||||||
const monthShort = new Intl.DateTimeFormat('en-US', { month: 'short' }).format(t);
|
const monthShort = new Intl.DateTimeFormat('en-US', { month: 'short' }).format(t);
|
||||||
const year = t.getFullYear();
|
const year = t.getFullYear();
|
||||||
const yearShort = year.toString().substring(2);
|
|
||||||
const hours = ('0' + t.getHours()).slice(-2);
|
const hours = ('0' + t.getHours()).slice(-2);
|
||||||
const minutes = ('0' + t.getMinutes()).slice(-2);
|
const minutes = ('0' + t.getMinutes()).slice(-2);
|
||||||
const seconds = ('0' + t.getSeconds()).slice(-2);
|
const seconds = ('0' + t.getSeconds()).slice(-2);
|
||||||
@@ -69,7 +68,6 @@ const DateToStringNode = {
|
|||||||
.replace(/\{month\}/g, month)
|
.replace(/\{month\}/g, month)
|
||||||
.replace(/\{monthShort\}/g, monthShort)
|
.replace(/\{monthShort\}/g, monthShort)
|
||||||
.replace(/\{year\}/g, year)
|
.replace(/\{year\}/g, year)
|
||||||
.replace(/\{yearShort\}/g, yearShort)
|
|
||||||
.replace(/\{hours\}/g, hours)
|
.replace(/\{hours\}/g, hours)
|
||||||
.replace(/\{minutes\}/g, minutes)
|
.replace(/\{minutes\}/g, minutes)
|
||||||
.replace(/\{seconds\}/g, seconds);
|
.replace(/\{seconds\}/g, seconds);
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
"version": "2.7.0",
|
"version": "2.7.0",
|
||||||
"main": "src/index.d.ts",
|
"main": "src/index.d.ts",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "Fluxscape <contact@fluxscape.io>",
|
"author": "Noodl <info@noodl.net>",
|
||||||
"homepage": "https://fluxscape.io"
|
"homepage": "https://noodl.net"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@noodl/cloud-runtime",
|
"name": "@noodl/cloud-runtime",
|
||||||
"author": "Fluxscape <contact@fluxscape.io>",
|
"author": "Noodl <info@noodl.net>",
|
||||||
"homepage": "https://fluxscape.io",
|
"homepage": "https://noodl.net",
|
||||||
"version": "0.6.3",
|
"version": "0.6.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "dist/main.js",
|
"main": "dist/main.js",
|
||||||
|
|||||||
@@ -74,59 +74,6 @@ declare namespace Noodl {
|
|||||||
*/
|
*/
|
||||||
const Object: any;
|
const Object: any;
|
||||||
|
|
||||||
type RecordQuery<T> =
|
|
||||||
{
|
|
||||||
lessThan: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
lessThanOrEqualTo: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
greaterThan: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
greaterThanOrEqualTo: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
equalTo: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
notEqualTo: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
containedIn: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
notContainedIn : T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
exists: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
matchesRegex: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
text: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
idEqualTo: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
idContainedIn: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
pointsTo: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
relatedTo: T
|
|
||||||
};
|
|
||||||
|
|
||||||
type RecordQueryField<T> = T extends RecordQuery<any> ?
|
|
||||||
{ [K in keyof T]: { [P in K]: T[P] } & Partial<Record<Exclude<keyof T, K>, never>> }[keyof T]
|
|
||||||
: never;
|
|
||||||
|
|
||||||
type RecordSortKey<T extends string> = (`${T}` | `-${T}`)[];
|
|
||||||
|
|
||||||
interface RecordsApi {
|
interface RecordsApi {
|
||||||
/**
|
/**
|
||||||
* This is an async function that will query the database using the query
|
* This is an async function that will query the database using the query
|
||||||
@@ -168,17 +115,15 @@ declare namespace Noodl {
|
|||||||
* })
|
* })
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
query<TClassName extends RecordClassName>(
|
query(
|
||||||
className: TClassName,
|
className: RecordClassName,
|
||||||
query?:
|
query?: any,
|
||||||
RecordQueryField<{ [K in keyof DatabaseSchema[TClassName]]: RecordQuery<any> }> |
|
|
||||||
{ and: RecordQueryField<{ [K in keyof DatabaseSchema[TClassName]]: RecordQuery<any> }>[] },
|
|
||||||
options?: {
|
options?: {
|
||||||
limit?: number;
|
limit?: number;
|
||||||
skip?: number;
|
skip?: number;
|
||||||
sort?: string | RecordSortKey<keyof DatabaseSchema[TClassName]>;
|
sort?: string[];
|
||||||
include?: string | (keyof DatabaseSchema[TClassName])[];
|
include?: any;
|
||||||
select?: string | (keyof DatabaseSchema[TClassName])[];
|
select?: any;
|
||||||
}
|
}
|
||||||
): Promise<any>;
|
): Promise<any>;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import React, { useEffect, useState } from 'react';
|
|||||||
|
|
||||||
import Layout from '../../../layout';
|
import Layout from '../../../layout';
|
||||||
import Utils from '../../../nodes/controls/utils';
|
import Utils from '../../../nodes/controls/utils';
|
||||||
import { Noodl } from '../../../types';
|
import { Noodl, Slot } from '../../../types';
|
||||||
|
|
||||||
export interface SliderProps extends Noodl.ReactProps {
|
export interface SliderProps extends Noodl.ReactProps {
|
||||||
_nodeId: string;
|
_nodeId: string;
|
||||||
@@ -24,6 +24,8 @@ export interface SliderProps extends Noodl.ReactProps {
|
|||||||
|
|
||||||
onClick: () => void;
|
onClick: () => void;
|
||||||
updateOutputValue: (value: number) => void;
|
updateOutputValue: (value: number) => void;
|
||||||
|
|
||||||
|
children: Slot;
|
||||||
}
|
}
|
||||||
|
|
||||||
function _styleTemplate(_class: string, props: SliderProps) {
|
function _styleTemplate(_class: string, props: SliderProps) {
|
||||||
@@ -168,7 +170,9 @@ export function Slider(props: SliderProps) {
|
|||||||
return (
|
return (
|
||||||
<div style={divStyle}>
|
<div style={divStyle}>
|
||||||
<div style={trackStyle} />
|
<div style={trackStyle} />
|
||||||
<div style={thumbStyle} />
|
<div style={thumbStyle}>
|
||||||
|
{props.children}
|
||||||
|
</div>
|
||||||
<input
|
<input
|
||||||
className={className}
|
className={className}
|
||||||
{...Utils.controlEvents(props)}
|
{...Utils.controlEvents(props)}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ const RangeNode = {
|
|||||||
name: 'net.noodl.controls.range',
|
name: 'net.noodl.controls.range',
|
||||||
displayNodeName: 'Slider',
|
displayNodeName: 'Slider',
|
||||||
docs: 'https://docs.noodl.net/nodes/ui-controls/slider',
|
docs: 'https://docs.noodl.net/nodes/ui-controls/slider',
|
||||||
allowChildren: false,
|
|
||||||
noodlNodeAsProp: true,
|
noodlNodeAsProp: true,
|
||||||
connectionPanel: {
|
connectionPanel: {
|
||||||
groupPriority: [
|
groupPriority: [
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export default {
|
|||||||
group: 'General',
|
group: 'General',
|
||||||
plug: 'input',
|
plug: 'input',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
default: 'Fluxscape Viewer',
|
default: 'Noodl Viewer',
|
||||||
tooltip: 'The title that web browsers show',
|
tooltip: 'The title that web browsers show',
|
||||||
ignoreInExport: true
|
ignoreInExport: true
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -131,59 +131,6 @@ declare namespace Noodl {
|
|||||||
*/
|
*/
|
||||||
const Events: EventsApi;
|
const Events: EventsApi;
|
||||||
|
|
||||||
type RecordQuery<T> =
|
|
||||||
{
|
|
||||||
lessThan: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
lessThanOrEqualTo: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
greaterThan: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
greaterThanOrEqualTo: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
equalTo: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
notEqualTo: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
containedIn: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
notContainedIn : T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
exists: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
matchesRegex: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
text: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
idEqualTo: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
idContainedIn: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
pointsTo: T
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
relatedTo: T
|
|
||||||
};
|
|
||||||
|
|
||||||
type RecordQueryField<T> = T extends RecordQuery<any> ?
|
|
||||||
{ [K in keyof T]: { [P in K]: T[P] } & Partial<Record<Exclude<keyof T, K>, never>> }[keyof T]
|
|
||||||
: never;
|
|
||||||
|
|
||||||
type RecordSortKey<T extends string> = (`${T}` | `-${T}`)[];
|
|
||||||
|
|
||||||
interface RecordsApi {
|
interface RecordsApi {
|
||||||
/**
|
/**
|
||||||
* This is an async function that will query the database using the query
|
* This is an async function that will query the database using the query
|
||||||
@@ -225,17 +172,15 @@ declare namespace Noodl {
|
|||||||
* })
|
* })
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
query<TClassName extends RecordClassName>(
|
query(
|
||||||
className: TClassName,
|
className: RecordClassName,
|
||||||
query?:
|
query?: any,
|
||||||
RecordQueryField<{ [K in keyof DatabaseSchema[TClassName]]: RecordQuery<any> }> |
|
|
||||||
{ and: RecordQueryField<{ [K in keyof DatabaseSchema[TClassName]]: RecordQuery<any> }>[] },
|
|
||||||
options?: {
|
options?: {
|
||||||
limit?: number;
|
limit?: number;
|
||||||
skip?: number;
|
skip?: number;
|
||||||
sort?: string | RecordSortKey<keyof DatabaseSchema[TClassName]>;
|
sort?: string[];
|
||||||
include?: string | (keyof DatabaseSchema[TClassName])[];
|
include?: any;
|
||||||
select?: string | (keyof DatabaseSchema[TClassName])[];
|
select?: any;
|
||||||
}
|
}
|
||||||
): Promise<any>;
|
): Promise<any>;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user