Merge master.
This commit is contained in:
commit
03a702e765
|
@ -1 +1 @@
|
||||||
Subproject commit 7f388799c023c37b9e13663819f3ee402ade4adf
|
Subproject commit 6465dc9c2a38e1380b32204cad4ae0c1f33e065a
|
|
@ -24,6 +24,13 @@
|
||||||
navigationStore,
|
navigationStore,
|
||||||
} from "stores/builder"
|
} from "stores/builder"
|
||||||
import { DefaultAppTheme } from "constants"
|
import { DefaultAppTheme } from "constants"
|
||||||
|
import BarButtonList from "/src/components/design/settings/controls/BarButtonList.svelte"
|
||||||
|
|
||||||
|
$: alignmentOptions = [
|
||||||
|
{ value: "Left", barIcon: "TextAlignLeft" },
|
||||||
|
{ value: "Center", barIcon: "TextAlignCenter" },
|
||||||
|
{ value: "Right", barIcon: "TextAlignRight" },
|
||||||
|
]
|
||||||
|
|
||||||
$: screenRouteOptions = $screenStore.screens
|
$: screenRouteOptions = $screenStore.screens
|
||||||
.map(screen => screen.routing?.route)
|
.map(screen => screen.routing?.route)
|
||||||
|
@ -46,6 +53,10 @@
|
||||||
notifications.error("Error updating navigation settings")
|
notifications.error("Error updating navigation settings")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const updateTextAlign = textAlignValue => {
|
||||||
|
navigationStore.syncAppNavigation({ textAlign: textAlignValue })
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Panel
|
<Panel
|
||||||
|
@ -133,6 +144,15 @@
|
||||||
on:change={e => update("title", e.detail)}
|
on:change={e => update("title", e.detail)}
|
||||||
updateOnChange={false}
|
updateOnChange={false}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<div class="label">
|
||||||
|
<Label size="M">Text align</Label>
|
||||||
|
</div>
|
||||||
|
<BarButtonList
|
||||||
|
options={alignmentOptions}
|
||||||
|
value={$navigationStore.textAlign}
|
||||||
|
onChange={updateTextAlign}
|
||||||
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
<div class="label">
|
<div class="label">
|
||||||
<Label>Background</Label>
|
<Label>Background</Label>
|
||||||
|
|
|
@ -11,6 +11,7 @@ export const INITIAL_NAVIGATION_STATE = {
|
||||||
hideLogo: null,
|
hideLogo: null,
|
||||||
logoUrl: null,
|
logoUrl: null,
|
||||||
hideTitle: null,
|
hideTitle: null,
|
||||||
|
textAlign: "Left",
|
||||||
navBackground: null,
|
navBackground: null,
|
||||||
navWidth: null,
|
navWidth: null,
|
||||||
navTextColor: null,
|
navTextColor: null,
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
export let pageWidth
|
export let pageWidth
|
||||||
export let logoLinkUrl
|
export let logoLinkUrl
|
||||||
export let openLogoLinkInNewTab
|
export let openLogoLinkInNewTab
|
||||||
|
export let textAlign
|
||||||
|
|
||||||
export let embedded = false
|
export let embedded = false
|
||||||
|
|
||||||
|
@ -226,7 +227,7 @@
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
{#if !hideTitle && title}
|
{#if !hideTitle && title}
|
||||||
<Heading size="S">{title}</Heading>
|
<Heading size="S" {textAlign}>{title}</Heading>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
{#if !embedded}
|
{#if !embedded}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 4f183993af024e5ddec1b90981fb9049a3c6c412
|
Subproject commit 993b9f010f619b7f8b50c89105c645e3d874929e
|
|
@ -1,8 +1,5 @@
|
||||||
module AirtableMock {
|
class Airtable {
|
||||||
const Airtable = () => {
|
base = jest.fn()
|
||||||
// @ts-ignore
|
|
||||||
this.base = jest.fn()
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = Airtable
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module.exports = Airtable
|
||||||
|
|
|
@ -1,102 +1,81 @@
|
||||||
import fs from "fs"
|
import fs from "fs"
|
||||||
import { join } from "path"
|
import { join } from "path"
|
||||||
|
|
||||||
module AwsMock {
|
const response = (body: any, extra?: any) => () => ({
|
||||||
const aws: any = {}
|
promise: () => body,
|
||||||
|
...extra,
|
||||||
|
})
|
||||||
|
|
||||||
const response = (body: any, extra?: any) => () => ({
|
class DocumentClient {
|
||||||
promise: () => body,
|
put = jest.fn(response({}))
|
||||||
...extra,
|
query = jest.fn(
|
||||||
})
|
response({
|
||||||
|
Items: [],
|
||||||
const DocumentClient = () => {
|
})
|
||||||
// @ts-ignore
|
)
|
||||||
this.put = jest.fn(response({}))
|
scan = jest.fn(
|
||||||
// @ts-ignore
|
response({
|
||||||
this.query = jest.fn(
|
Items: [
|
||||||
response({
|
|
||||||
Items: [],
|
|
||||||
})
|
|
||||||
)
|
|
||||||
// @ts-ignore
|
|
||||||
this.scan = jest.fn(
|
|
||||||
response({
|
|
||||||
Items: [
|
|
||||||
{
|
|
||||||
Name: "test",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
})
|
|
||||||
)
|
|
||||||
// @ts-ignore
|
|
||||||
this.get = jest.fn(response({}))
|
|
||||||
// @ts-ignore
|
|
||||||
this.update = jest.fn(response({}))
|
|
||||||
// @ts-ignore
|
|
||||||
this.delete = jest.fn(response({}))
|
|
||||||
}
|
|
||||||
|
|
||||||
const S3 = () => {
|
|
||||||
// @ts-ignore
|
|
||||||
this.listObjects = jest.fn(
|
|
||||||
response({
|
|
||||||
Contents: [],
|
|
||||||
})
|
|
||||||
)
|
|
||||||
|
|
||||||
// @ts-ignore
|
|
||||||
this.createBucket = jest.fn(
|
|
||||||
response({
|
|
||||||
Contents: {},
|
|
||||||
})
|
|
||||||
)
|
|
||||||
|
|
||||||
// @ts-ignore
|
|
||||||
this.deleteObjects = jest.fn(
|
|
||||||
response({
|
|
||||||
Contents: {},
|
|
||||||
})
|
|
||||||
)
|
|
||||||
|
|
||||||
// @ts-ignore
|
|
||||||
this.getSignedUrl = (operation, params) => {
|
|
||||||
return `http://example.com/${params.Bucket}/${params.Key}`
|
|
||||||
}
|
|
||||||
|
|
||||||
// @ts-ignore
|
|
||||||
this.headBucket = jest.fn(
|
|
||||||
response({
|
|
||||||
Contents: {},
|
|
||||||
})
|
|
||||||
)
|
|
||||||
|
|
||||||
// @ts-ignore
|
|
||||||
this.upload = jest.fn(
|
|
||||||
response({
|
|
||||||
Contents: {},
|
|
||||||
})
|
|
||||||
)
|
|
||||||
|
|
||||||
// @ts-ignore
|
|
||||||
this.getObject = jest.fn(
|
|
||||||
response(
|
|
||||||
{
|
{
|
||||||
Body: "",
|
Name: "test",
|
||||||
},
|
},
|
||||||
{
|
],
|
||||||
createReadStream: jest
|
})
|
||||||
.fn()
|
)
|
||||||
.mockReturnValue(
|
get = jest.fn(response({}))
|
||||||
fs.createReadStream(join(__dirname, "aws-sdk.ts"))
|
update = jest.fn(response({}))
|
||||||
),
|
delete = jest.fn(response({}))
|
||||||
}
|
}
|
||||||
)
|
|
||||||
)
|
class S3 {
|
||||||
}
|
listObjects = jest.fn(
|
||||||
|
response({
|
||||||
aws.DynamoDB = { DocumentClient }
|
Contents: [],
|
||||||
aws.S3 = S3
|
})
|
||||||
aws.config = { update: jest.fn() }
|
)
|
||||||
|
createBucket = jest.fn(
|
||||||
module.exports = aws
|
response({
|
||||||
|
Contents: {},
|
||||||
|
})
|
||||||
|
)
|
||||||
|
deleteObjects = jest.fn(
|
||||||
|
response({
|
||||||
|
Contents: {},
|
||||||
|
})
|
||||||
|
)
|
||||||
|
getSignedUrl = jest.fn((operation, params) => {
|
||||||
|
return `http://example.com/${params.Bucket}/${params.Key}`
|
||||||
|
})
|
||||||
|
headBucket = jest.fn(
|
||||||
|
response({
|
||||||
|
Contents: {},
|
||||||
|
})
|
||||||
|
)
|
||||||
|
upload = jest.fn(
|
||||||
|
response({
|
||||||
|
Contents: {},
|
||||||
|
})
|
||||||
|
)
|
||||||
|
getObject = jest.fn(
|
||||||
|
response(
|
||||||
|
{
|
||||||
|
Body: "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
createReadStream: jest
|
||||||
|
.fn()
|
||||||
|
.mockReturnValue(fs.createReadStream(join(__dirname, "aws-sdk.ts"))),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
DynamoDB: {
|
||||||
|
DocumentClient,
|
||||||
|
},
|
||||||
|
S3,
|
||||||
|
config: {
|
||||||
|
update: jest.fn(),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,24 +1,17 @@
|
||||||
module MsSqlMock {
|
module.exports = {
|
||||||
const mssql: any = {}
|
ConnectionPool: jest.fn(() => ({
|
||||||
|
connect: jest.fn(() => ({
|
||||||
mssql.query = jest.fn(() => ({
|
request: jest.fn(() => ({
|
||||||
|
query: jest.fn(sql => ({ recordset: [sql] })),
|
||||||
|
})),
|
||||||
|
})),
|
||||||
|
})),
|
||||||
|
query: jest.fn(() => ({
|
||||||
recordset: [
|
recordset: [
|
||||||
{
|
{
|
||||||
a: "string",
|
a: "string",
|
||||||
b: 1,
|
b: 1,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}))
|
})),
|
||||||
|
|
||||||
// mssql.connect = jest.fn(() => ({ recordset: [] }))
|
|
||||||
|
|
||||||
mssql.ConnectionPool = jest.fn(() => ({
|
|
||||||
connect: jest.fn(() => ({
|
|
||||||
request: jest.fn(() => ({
|
|
||||||
query: jest.fn(sql => ({ recordset: [sql] })),
|
|
||||||
})),
|
|
||||||
})),
|
|
||||||
}))
|
|
||||||
|
|
||||||
module.exports = mssql
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,11 @@
|
||||||
module MySQLMock {
|
const client = {
|
||||||
const mysql: any = {}
|
connect: jest.fn(),
|
||||||
|
query: jest.fn((query, bindings, fn) => {
|
||||||
const client = {
|
fn(null, [])
|
||||||
connect: jest.fn(),
|
}),
|
||||||
query: jest.fn((query, bindings, fn) => {
|
}
|
||||||
fn(null, [])
|
|
||||||
}),
|
module.exports = {
|
||||||
}
|
createConnection: jest.fn(() => client),
|
||||||
|
client,
|
||||||
mysql.createConnection = jest.fn(() => client)
|
|
||||||
|
|
||||||
module.exports = mysql
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,31 +1,21 @@
|
||||||
module OracleDbMock {
|
const executeMock = jest.fn(() => ({
|
||||||
// mock execute
|
rows: [
|
||||||
const execute = jest.fn(() => ({
|
{
|
||||||
rows: [
|
a: "string",
|
||||||
{
|
b: 1,
|
||||||
a: "string",
|
},
|
||||||
b: 1,
|
],
|
||||||
},
|
}))
|
||||||
],
|
|
||||||
}))
|
|
||||||
|
|
||||||
const close = jest.fn()
|
const closeMock = jest.fn()
|
||||||
|
|
||||||
// mock connection
|
class Connection {
|
||||||
const Connection = () => {}
|
execute = executeMock
|
||||||
Connection.prototype.execute = execute
|
close = closeMock
|
||||||
Connection.prototype.close = close
|
}
|
||||||
|
|
||||||
// mock oracledb
|
module.exports = {
|
||||||
const oracleDb: any = {}
|
getConnection: jest.fn(() => new Connection()),
|
||||||
oracleDb.getConnection = jest.fn(() => {
|
executeMock,
|
||||||
// @ts-ignore
|
closeMock,
|
||||||
return new Connection()
|
|
||||||
})
|
|
||||||
|
|
||||||
// expose mocks
|
|
||||||
oracleDb.executeMock = execute
|
|
||||||
oracleDb.closeMock = close
|
|
||||||
|
|
||||||
module.exports = oracleDb
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,29 +1,25 @@
|
||||||
module PgMock {
|
const query = jest.fn(() => ({
|
||||||
const pg: any = {}
|
rows: [
|
||||||
|
{
|
||||||
|
a: "string",
|
||||||
|
b: 1,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}))
|
||||||
|
|
||||||
const query = jest.fn(() => ({
|
class Client {
|
||||||
rows: [
|
query = query
|
||||||
{
|
end = jest.fn(cb => {
|
||||||
a: "string",
|
|
||||||
b: 1,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}))
|
|
||||||
|
|
||||||
// constructor
|
|
||||||
const Client = () => {}
|
|
||||||
Client.prototype.query = query
|
|
||||||
Client.prototype.end = jest.fn(cb => {
|
|
||||||
if (cb) cb()
|
if (cb) cb()
|
||||||
})
|
})
|
||||||
Client.prototype.connect = jest.fn()
|
connect = jest.fn()
|
||||||
Client.prototype.release = jest.fn()
|
release = jest.fn()
|
||||||
|
}
|
||||||
const on = jest.fn()
|
|
||||||
|
const on = jest.fn()
|
||||||
pg.Client = Client
|
|
||||||
pg.queryMock = query
|
module.exports = {
|
||||||
pg.on = on
|
Client,
|
||||||
|
queryMock: query,
|
||||||
module.exports = pg
|
on,
|
||||||
}
|
}
|
||||||
|
|
|
@ -330,6 +330,7 @@ describe("/queries", () => {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
pg.queryMock.mockImplementation(() => ({
|
pg.queryMock.mockImplementation(() => ({
|
||||||
rows,
|
rows,
|
||||||
}))
|
}))
|
||||||
|
|
|
@ -294,7 +294,7 @@ describe("Captures of real examples", () => {
|
||||||
type: "datasource",
|
type: "datasource",
|
||||||
isSQL: false,
|
isSQL: false,
|
||||||
})
|
})
|
||||||
).toEqual(true)
|
).toEqual(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should disable when no fields", () => {
|
it("should disable when no fields", () => {
|
||||||
|
|
Loading…
Reference in New Issue