mirror of
https://github.com/lowdefy/lowdefy.git
synced 2025-03-25 15:10:33 +08:00
Merge branch 'main' into merge-main
This commit is contained in:
commit
21b268b2fb
78
CHANGELOG.md
78
CHANGELOG.md
@ -3,6 +3,84 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
### Fixes
|
||||
- Release to fix Docker builds.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
## Changes
|
||||
|
||||
### Blocks
|
||||
|
||||
- Added onSearch event to `MultipleSelector` and `Selector`.
|
||||
|
||||
### Build
|
||||
|
||||
- Better error messages on build.
|
||||
|
||||
### Operators
|
||||
|
||||
- Added `_switch` operator.
|
||||
|
||||
### General
|
||||
|
||||
- Added experimental feature `config.experimental_initPageId`.
|
||||
- Added `auth.jwt.loginStateExpiresIn` parameter to configure OpenID connect state token expiry.
|
||||
|
||||
## Commits
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **blocksAntd:** Update test snapshots for Selector and MultipleSelector. ([67202c4](https://github.com/lowdefy/lowdefy/commit/67202c452e2187d6c342cd1e5487c8d28b050004))
|
||||
* **docs:** Included onSearch event example in MultipleSelector and Selector docs. ([0e53cb8](https://github.com/lowdefy/lowdefy/commit/0e53cb8f93ed49e0122ac038113d7378f67501f7))
|
||||
* Updated MultipleSelector block to include onSearch event. ([0339e63](https://github.com/lowdefy/lowdefy/commit/0339e63ab6ce3fb1c8c95d203e341cbec1eb4660))
|
||||
* **blocksAntd:** Updated Selector block to include onSearch event. ([5e9ec14](https://github.com/lowdefy/lowdefy/commit/5e9ec1470d9920b8340247ac1ff8d9a681798f1d))
|
||||
* **docs:** Fix _ref resolver function example. ([0903094](https://github.com/lowdefy/lowdefy/commit/0903094ce531f4d8ab7849deb91ab3d6b7e5fd82))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **build:** Better error messages on build. ([9934d07](https://github.com/lowdefy/lowdefy/commit/9934d07430aef93d4f992c048b3f7101b4934217))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Add _switch operator to docs. ([c5c6f0c](https://github.com/lowdefy/lowdefy/commit/c5c6f0c9a5b0dfc89e09835d3ab940195a077504))
|
||||
* Support .yml in lowdefy.yaml file. ([0f7cc2a](https://github.com/lowdefy/lowdefy/commit/0f7cc2a7612a5ad9a8164d5a5437dde5c6d7da49)), closes [#902](https://github.com/lowdefy/lowdefy/issues/902)
|
||||
* **docs:** Add avatar and links to blog template. ([d855599](https://github.com/lowdefy/lowdefy/commit/d855599398cae041933dd8b11aaf77648f87d4c2))
|
||||
* **docs:** Fix the iframe videos in the docs. ([c4a957a](https://github.com/lowdefy/lowdefy/commit/c4a957a12ea5adf018b373d8da8c5116e064205f))
|
||||
* improvements on blog template. ([30e2291](https://github.com/lowdefy/lowdefy/commit/30e22917fed9932e43cde942532654aa4a6aeac6))
|
||||
* **docs:** Add how to generate CSVs. ([2cc8e45](https://github.com/lowdefy/lowdefy/commit/2cc8e45b165aa755dceb9e40525f8a0511fb3485))
|
||||
* **docs:** Add how to generate pdfs. ([7b35550](https://github.com/lowdefy/lowdefy/commit/7b35550fa944995be8f8a9d0e809971cabcf12af))
|
||||
* **operators:** Added tests for switch operator to Node and Web Parsers. ([249ab6b](https://github.com/lowdefy/lowdefy/commit/249ab6bb475bb0d945e48d4f5b90d2308fd00e16))
|
||||
* **operators:** Added tests for switch operator. ([ce31fa3](https://github.com/lowdefy/lowdefy/commit/ce31fa30c05023f7a15c944abfc93a7ecb9f6b56))
|
||||
* **operators:** Updated switch operator to for... ...of syntax. ([cdbd0e0](https://github.com/lowdefy/lowdefy/commit/cdbd0e0d229933d6b0e497f90cf755ccd04b89c9))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **docs:** Add how to generate csv. ([3257f51](https://github.com/lowdefy/lowdefy/commit/3257f514b95f7cafb8ac30998194e7ae0a327862))
|
||||
* **docs:** Add videos to how tos. ([57c7779](https://github.com/lowdefy/lowdefy/commit/57c77798f0356c606cf90bfd36a4f63ab8d0ff36))
|
||||
* Add generate pdf how to. ([5bde460](https://github.com/lowdefy/lowdefy/commit/5bde460934e2dc94d677af5f287e3c85c0ff4c34))
|
||||
* **docs:** Added switch operator documentation. ([7c42c78](https://github.com/lowdefy/lowdefy/commit/7c42c7882422ea89332b32bcef985b5bc5059ec8))
|
||||
* **operators:** Added switch operator. ([436170c](https://github.com/lowdefy/lowdefy/commit/436170c2ec88e6a8ddbd5a34c791cd7eacc5f72b))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
## Changes
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "3.22.0",
|
||||
"version": "3.23.1",
|
||||
"packages": [
|
||||
"src/packages/*",
|
||||
"src/packages/blocks/*",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@lowdefy/lowdefy",
|
||||
"version": "3.22.0",
|
||||
"version": "3.23.1",
|
||||
"license": "Apache-2.0",
|
||||
"private": true,
|
||||
"description": "Lowdefy monorepo",
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/ajv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/ajv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/ajv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/ajv
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/block-tools
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/block-tools
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/block-tools
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/block-tools
|
||||
|
@ -3,6 +3,35 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-antd
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **blocksAntd:** Update test snapshots for Selector and MultipleSelector. ([67202c4](https://github.com/lowdefy/lowdefy/commit/67202c452e2187d6c342cd1e5487c8d28b050004))
|
||||
* Updated MultipleSelector block to include onSearch event. ([0339e63](https://github.com/lowdefy/lowdefy/commit/0339e63ab6ce3fb1c8c95d203e341cbec1eb4660))
|
||||
* **blocksAntd:** Updated Selector block to include onSearch event. ([5e9ec14](https://github.com/lowdefy/lowdefy/commit/5e9ec1470d9920b8340247ac1ff8d9a681798f1d))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-antd
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-basic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-basic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-basic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-basic
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-color-selectors
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-color-selectors
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-color-selectors
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-color-selectors
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-echarts
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-echarts
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-echarts
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-echarts
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-markdown
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-markdown
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-markdown
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/blocks-markdown
|
||||
|
@ -0,0 +1,149 @@
|
||||
/*
|
||||
Copyright 2020-2021 Lowdefy, Inc
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import React, { useState } from 'react';
|
||||
import { Select } from 'antd';
|
||||
import { blockDefaultProps, renderHtml } from '@lowdefy/block-tools';
|
||||
import { get, type } from '@lowdefy/helpers';
|
||||
import Label from '../Label/Label';
|
||||
import Icon from '../Icon/Icon';
|
||||
import getValueIndex from '../../getValueIndex';
|
||||
import getUniqueValues from '../../getUniqueValues';
|
||||
|
||||
const Option = Select.Option;
|
||||
|
||||
const MultipleSelector = ({
|
||||
blockId,
|
||||
events,
|
||||
loading,
|
||||
methods,
|
||||
properties,
|
||||
required,
|
||||
validation,
|
||||
value,
|
||||
}) => {
|
||||
const [fetchState, setFetch] = useState(false);
|
||||
const uniqueValueOptions = getUniqueValues(properties.options || []);
|
||||
return (
|
||||
<Label
|
||||
blockId={blockId}
|
||||
loading={loading}
|
||||
properties={{ title: properties.title, size: properties.size, ...properties.label }}
|
||||
required={required}
|
||||
validation={validation}
|
||||
content={{
|
||||
content: () => (
|
||||
<div className={methods.makeCssClass({ width: '100%' })}>
|
||||
<div id={`${blockId}_popup`} />
|
||||
<Select
|
||||
id={`${blockId}_input`}
|
||||
className={methods.makeCssClass([{ width: '100%' }, properties.inputStyle])}
|
||||
getPopupContainer={() => document.getElementById(`${blockId}_popup`)}
|
||||
mode="multiple"
|
||||
autoFocus={properties.autoFocus}
|
||||
disabled={properties.disabled}
|
||||
placeholder={get(properties, 'placeholder', { default: 'Select items' })}
|
||||
suffixIcon={
|
||||
properties.suffixIcon && (
|
||||
<Icon
|
||||
blockId={`${blockId}_suffixIcon`}
|
||||
events={events}
|
||||
properties={properties.suffixIcon}
|
||||
/>
|
||||
)
|
||||
}
|
||||
clearIcon={
|
||||
properties.clearIcon && (
|
||||
<Icon
|
||||
blockId={`${blockId}_clearIcon`}
|
||||
events={events}
|
||||
properties={properties.clearIcon}
|
||||
/>
|
||||
)
|
||||
}
|
||||
menuItemSelectedIcon={
|
||||
properties.selectedIcon && (
|
||||
<Icon
|
||||
blockId={`${blockId}_selectedIcon`}
|
||||
events={events}
|
||||
properties={properties.selectedIcon}
|
||||
/>
|
||||
)
|
||||
}
|
||||
showArrow={get(properties, 'showArrow', { default: true })}
|
||||
allowClear={properties.allowClear !== false}
|
||||
size={properties.size}
|
||||
filterOption={(input, option) =>
|
||||
(option.filterstring || option.children.props.html || '')
|
||||
.toLowerCase()
|
||||
.indexOf(input.toLowerCase()) >= 0
|
||||
}
|
||||
notFoundContent={fetchState ? 'Loading' : 'Not found'}
|
||||
onChange={(newVal) => {
|
||||
const val = [];
|
||||
newVal.forEach((nv) => {
|
||||
val.push(
|
||||
type.isPrimitive(uniqueValueOptions[nv])
|
||||
? uniqueValueOptions[nv]
|
||||
: uniqueValueOptions[nv].value
|
||||
);
|
||||
});
|
||||
methods.setValue(val);
|
||||
methods.triggerEvent({ name: 'onChange' });
|
||||
}}
|
||||
onSearch={async (value) => {
|
||||
setFetch(true);
|
||||
await methods.triggerEvent({ name: 'onSearch', event: { value } });
|
||||
setFetch(false);
|
||||
}}
|
||||
value={getValueIndex(value, uniqueValueOptions, true)}
|
||||
>
|
||||
{uniqueValueOptions.map((opt, i) =>
|
||||
type.isPrimitive(opt) ? (
|
||||
<Option
|
||||
className={methods.makeCssClass(properties.optionsStyle)}
|
||||
id={`${blockId}_${i}`}
|
||||
key={i}
|
||||
value={i}
|
||||
>
|
||||
{renderHtml({ html: `${opt}`, methods })}
|
||||
</Option>
|
||||
) : (
|
||||
<Option
|
||||
className={methods.makeCssClass([properties.optionsStyle, opt.style])}
|
||||
disabled={opt.disabled}
|
||||
filterstring={opt.filterString}
|
||||
id={`${blockId}_${i}`}
|
||||
key={i}
|
||||
value={i}
|
||||
>
|
||||
{type.isNone(opt.label)
|
||||
? renderHtml({ html: `${opt.value}`, methods })
|
||||
: renderHtml({ html: opt.label, methods })}
|
||||
</Option>
|
||||
)
|
||||
)}
|
||||
</Select>
|
||||
</div>
|
||||
),
|
||||
}}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
MultipleSelector.defaultProps = blockDefaultProps;
|
||||
|
||||
export default MultipleSelector;
|
@ -0,0 +1,244 @@
|
||||
{
|
||||
"valueType": "array",
|
||||
"category": "input",
|
||||
"loading": {
|
||||
"type": "SkeletonInput"
|
||||
},
|
||||
"test": {
|
||||
"validation": true,
|
||||
"required": true
|
||||
},
|
||||
"schema": {
|
||||
"properties": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"allowClear": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Allow the user to clear the selected value, sets the value to null."
|
||||
},
|
||||
"autoFocus": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Autofocus to the block on page load."
|
||||
},
|
||||
"clearIcon": {
|
||||
"type": ["string", "object"],
|
||||
"default": "CloseCircleOutlined",
|
||||
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon at far right position of the selector, shown when user is given option to clear input.",
|
||||
"docs": {
|
||||
"displayType": "icon"
|
||||
}
|
||||
},
|
||||
"disabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Disable the block if true."
|
||||
},
|
||||
"inputStyle": {
|
||||
"type": "object",
|
||||
"description": "Css style to applied to input.",
|
||||
"docs": {
|
||||
"displayType": "yaml"
|
||||
}
|
||||
},
|
||||
"optionsStyle": {
|
||||
"type": "object",
|
||||
"description": "Css style to applied to option elements.",
|
||||
"docs": {
|
||||
"displayType": "yaml"
|
||||
}
|
||||
},
|
||||
"label": {
|
||||
"type": "object",
|
||||
"description": "Label properties.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"align": {
|
||||
"type": "string",
|
||||
"enum": ["left", "right"],
|
||||
"default": "left",
|
||||
"description": "Align label left or right when inline."
|
||||
},
|
||||
"colon": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Append label with colon."
|
||||
},
|
||||
"extra": {
|
||||
"type": "string",
|
||||
"description": "Extra text to display beneath the content - supports html."
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "Label title - supports html."
|
||||
},
|
||||
"span": {
|
||||
"type": "number",
|
||||
"description": "Label inline span."
|
||||
},
|
||||
"disabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Hide input label."
|
||||
},
|
||||
"hasFeedback": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Display feedback extra from validation, this does not disable validation."
|
||||
},
|
||||
"inline": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Render input and label inline."
|
||||
},
|
||||
"extraStyle": {
|
||||
"type": "object",
|
||||
"description": "Css style to applied to label extra.",
|
||||
"docs": {
|
||||
"displayType": "yaml"
|
||||
}
|
||||
},
|
||||
"feedbackStyle": {
|
||||
"type": "object",
|
||||
"description": "Css style to applied to label feedback.",
|
||||
"docs": {
|
||||
"displayType": "yaml"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"default": [],
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "array",
|
||||
"description": "Options can either be an array of primitive values, on an array of label, value pairs - supports html.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"description": "Options can either be an array of primitive values, on an array of label, value pairs.",
|
||||
"items": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"description": "Options can either be an array of primitive values, on an array of label, value pairs.",
|
||||
"items": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"description": "Options can either be an array of primitive values, on an array of label, value pairs.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["value"],
|
||||
"properties": {
|
||||
"label": {
|
||||
"type": "string",
|
||||
"description": "Value label shown to user - supports html."
|
||||
},
|
||||
"value": {
|
||||
"description": "Value selected. Can be of any type.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
}
|
||||
],
|
||||
"docs": {
|
||||
"displayType": "yaml"
|
||||
}
|
||||
},
|
||||
"disabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Disable the option if true."
|
||||
},
|
||||
"filterString": {
|
||||
"type": "string",
|
||||
"description": "String to match against when filtering selector options during. If no filterString is provided the filter method matches against options.label."
|
||||
},
|
||||
"style": {
|
||||
"type": "object",
|
||||
"description": "Css style to applied to option.",
|
||||
"docs": {
|
||||
"displayType": "yaml"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"placeholder": {
|
||||
"type": "string",
|
||||
"default": "Select item",
|
||||
"description": "Placeholder text inside the block before user selects input."
|
||||
},
|
||||
"selectedIcon": {
|
||||
"type": ["string", "object"],
|
||||
"default": "CheckOutlined",
|
||||
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon showing when a selection is made in the drop-down list.",
|
||||
"docs": {
|
||||
"displayType": "icon"
|
||||
}
|
||||
},
|
||||
"showArrow": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Show the suffix icon at the drop-down position of the selector."
|
||||
},
|
||||
"size": {
|
||||
"type": "string",
|
||||
"enum": ["small", "default", "large"],
|
||||
"default": "default",
|
||||
"description": "Size of the block."
|
||||
},
|
||||
"suffixIcon": {
|
||||
"type": ["string", "object"],
|
||||
"default": "DownOutlined",
|
||||
"description": "Name of an Ant Design Icon or properties of an Icon block to customize at the drop-down position of the selector.",
|
||||
"docs": {
|
||||
"displayType": "icon"
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "Multiple selector label title - supports html."
|
||||
}
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"onChange": {
|
||||
"type": "array",
|
||||
"description": "Trigger actions when selection is changed."
|
||||
},
|
||||
"onSearch": {
|
||||
"type": "array",
|
||||
"description": "Trigger actions when input is changed. 'value' is passed to the _event operator to be used in actions such as search queries."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
138
packages/blocks/blocksAntd/src/blocks/Selector/Selector.js
Normal file
138
packages/blocks/blocksAntd/src/blocks/Selector/Selector.js
Normal file
@ -0,0 +1,138 @@
|
||||
/*
|
||||
Copyright 2020-2021 Lowdefy, Inc
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import React, { useState } from 'react';
|
||||
import { Select } from 'antd';
|
||||
import { blockDefaultProps, renderHtml } from '@lowdefy/block-tools';
|
||||
import { get, type } from '@lowdefy/helpers';
|
||||
import Label from '../Label/Label';
|
||||
import Icon from '../Icon/Icon';
|
||||
import getValueIndex from '../../getValueIndex';
|
||||
import getUniqueValues from '../../getUniqueValues';
|
||||
|
||||
const Option = Select.Option;
|
||||
|
||||
const Selector = ({
|
||||
blockId,
|
||||
events,
|
||||
loading,
|
||||
methods,
|
||||
properties,
|
||||
required,
|
||||
validation,
|
||||
value,
|
||||
}) => {
|
||||
const [fetchState, setFetch] = useState(false);
|
||||
const uniqueValueOptions = getUniqueValues(properties.options || []);
|
||||
return (
|
||||
<Label
|
||||
blockId={blockId}
|
||||
events={events}
|
||||
properties={{ title: properties.title, size: properties.size, ...properties.label }}
|
||||
validation={validation}
|
||||
required={required}
|
||||
loading={loading}
|
||||
content={{
|
||||
content: () => (
|
||||
<div className={methods.makeCssClass({ width: '100%' })}>
|
||||
<div id={`${blockId}_popup`} />
|
||||
<Select
|
||||
id={`${blockId}_input`}
|
||||
className={methods.makeCssClass([{ width: '100%' }, properties.inputStyle])}
|
||||
mode="single"
|
||||
autoFocus={properties.autoFocus}
|
||||
getPopupContainer={() => document.getElementById(`${blockId}_popup`)}
|
||||
disabled={properties.disabled}
|
||||
placeholder={get(properties, 'placeholder', { default: 'Select item' })}
|
||||
suffixIcon={
|
||||
properties.suffixIcon && (
|
||||
<Icon
|
||||
blockId={`${blockId}_suffixIcon`}
|
||||
events={events}
|
||||
properties={properties.suffixIcon}
|
||||
/>
|
||||
)
|
||||
}
|
||||
clearIcon={
|
||||
properties.clearIcon && (
|
||||
<Icon
|
||||
blockId={`${blockId}_clearIcon`}
|
||||
events={events}
|
||||
properties={properties.clearIcon}
|
||||
/>
|
||||
)
|
||||
}
|
||||
showArrow={properties.showArrow}
|
||||
allowClear={properties.allowClear !== false}
|
||||
showSearch={get(properties, 'showSearch', { default: true })}
|
||||
size={properties.size}
|
||||
filterOption={(input, option) =>
|
||||
(option.filterstring || option.children.props.html || '')
|
||||
.toLowerCase()
|
||||
.indexOf(input.toLowerCase()) >= 0
|
||||
}
|
||||
notFoundContent={fetchState ? 'Loading' : 'Not found'}
|
||||
onChange={(newVal) => {
|
||||
methods.setValue(
|
||||
type.isPrimitive(uniqueValueOptions[newVal])
|
||||
? uniqueValueOptions[newVal]
|
||||
: uniqueValueOptions[newVal].value
|
||||
);
|
||||
methods.triggerEvent({ name: 'onChange' });
|
||||
}}
|
||||
onSearch={async (value) => {
|
||||
setFetch(true);
|
||||
await methods.triggerEvent({ name: 'onSearch', event: { value } });
|
||||
setFetch(false);
|
||||
}}
|
||||
value={getValueIndex(value, uniqueValueOptions)}
|
||||
>
|
||||
{uniqueValueOptions.map((opt, i) =>
|
||||
type.isPrimitive(opt) ? (
|
||||
<Option
|
||||
className={methods.makeCssClass(properties.optionsStyle)}
|
||||
id={`${blockId}_${i}`}
|
||||
key={i}
|
||||
value={i}
|
||||
>
|
||||
{renderHtml({ html: `${opt}`, methods })}
|
||||
</Option>
|
||||
) : (
|
||||
<Option
|
||||
className={methods.makeCssClass([properties.optionsStyle, opt.style])}
|
||||
disabled={opt.disabled}
|
||||
filterstring={opt.filterString}
|
||||
id={`${blockId}_${i}`}
|
||||
key={i}
|
||||
value={i}
|
||||
>
|
||||
{type.isNone(opt.label)
|
||||
? renderHtml({ html: `${opt.value}`, methods })
|
||||
: renderHtml({ html: opt.label, methods })}
|
||||
</Option>
|
||||
)
|
||||
)}
|
||||
</Select>
|
||||
</div>
|
||||
),
|
||||
}}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
Selector.defaultProps = blockDefaultProps;
|
||||
|
||||
export default Selector;
|
241
packages/blocks/blocksAntd/src/blocks/Selector/Selector.json
Normal file
241
packages/blocks/blocksAntd/src/blocks/Selector/Selector.json
Normal file
@ -0,0 +1,241 @@
|
||||
{
|
||||
"valueType": "any",
|
||||
"category": "input",
|
||||
"loading": {
|
||||
"type": "SkeletonInput"
|
||||
},
|
||||
"test": {
|
||||
"validation": true,
|
||||
"required": true
|
||||
},
|
||||
"schema": {
|
||||
"properties": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"allowClear": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Allow the user to clear the selected value, sets the value to null."
|
||||
},
|
||||
"autoFocus": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Autofocus to the block on page load."
|
||||
},
|
||||
"clearIcon": {
|
||||
"type": ["string", "object"],
|
||||
"default": "CloseCircleOutlined",
|
||||
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon at far right position of the selector, shown when user is given option to clear input.",
|
||||
"docs": {
|
||||
"displayType": "icon"
|
||||
}
|
||||
},
|
||||
"inputStyle": {
|
||||
"type": "object",
|
||||
"description": "Css style to applied to input.",
|
||||
"docs": {
|
||||
"displayType": "yaml"
|
||||
}
|
||||
},
|
||||
"optionsStyle": {
|
||||
"type": "object",
|
||||
"description": "Css style to applied to option elements.",
|
||||
"docs": {
|
||||
"displayType": "yaml"
|
||||
}
|
||||
},
|
||||
"label": {
|
||||
"type": "object",
|
||||
"description": "Label properties.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"align": {
|
||||
"type": "string",
|
||||
"enum": ["left", "right"],
|
||||
"default": "left",
|
||||
"description": "Align label left or right when inline."
|
||||
},
|
||||
"colon": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Append label with colon."
|
||||
},
|
||||
"extra": {
|
||||
"type": "string",
|
||||
"description": "Extra text to display beneath the content - supports html."
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "Label title - supports html."
|
||||
},
|
||||
"span": {
|
||||
"type": "number",
|
||||
"description": "Label inline span."
|
||||
},
|
||||
"disabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Hide input label."
|
||||
},
|
||||
"hasFeedback": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Display feedback extra from validation, this does not disable validation."
|
||||
},
|
||||
"inline": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Render input and label inline."
|
||||
},
|
||||
"extraStyle": {
|
||||
"type": "object",
|
||||
"description": "Css style to applied to label extra.",
|
||||
"docs": {
|
||||
"displayType": "yaml"
|
||||
}
|
||||
},
|
||||
"feedbackStyle": {
|
||||
"type": "object",
|
||||
"description": "Css style to applied to label feedback.",
|
||||
"docs": {
|
||||
"displayType": "yaml"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"disabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Disable the block if true."
|
||||
},
|
||||
"options": {
|
||||
"default": [],
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "array",
|
||||
"description": "Options can either be an array of primitive values, on an array of label, value pairs - supports html.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"description": "Options can either be an array of primitive values, on an array of label, value pairs.",
|
||||
"items": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"description": "Options can either be an array of primitive values, on an array of label, value pairs.",
|
||||
"items": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"description": "Options can either be an array of primitive values, on an array of label, value pairs.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["value"],
|
||||
"properties": {
|
||||
"label": {
|
||||
"type": "string",
|
||||
"description": "Value label shown to user - supports html."
|
||||
},
|
||||
"value": {
|
||||
"description": "Value selected. Can be of any type.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
}
|
||||
],
|
||||
"docs": {
|
||||
"displayType": "yaml"
|
||||
}
|
||||
},
|
||||
"disabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Disable the option if true."
|
||||
},
|
||||
"filterString": {
|
||||
"type": "string",
|
||||
"description": "String to match against when filtering selector options during. If no filterString is provided the filter method matches against options.label."
|
||||
},
|
||||
"style": {
|
||||
"type": "object",
|
||||
"description": "Css style to applied to option.",
|
||||
"docs": {
|
||||
"displayType": "yaml"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"placeholder": {
|
||||
"type": "string",
|
||||
"default": "Select item",
|
||||
"description": "Placeholder text inside the block before user selects input."
|
||||
},
|
||||
"showArrow": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Show the suffix icon at the drop-down position of the selector."
|
||||
},
|
||||
"showSearch": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Make the selector options searchable."
|
||||
},
|
||||
"size": {
|
||||
"type": "string",
|
||||
"enum": ["small", "default", "large"],
|
||||
"default": "default",
|
||||
"description": "Size of the block."
|
||||
},
|
||||
"suffixIcon": {
|
||||
"type": ["string", "object"],
|
||||
"default": "DownOutlined",
|
||||
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon at the drop-down position of the selector.",
|
||||
"docs": {
|
||||
"displayType": "icon"
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "Title to describe the input component, if no title is specified the block id is displayed - supports html."
|
||||
}
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"onChange": {
|
||||
"type": "array",
|
||||
"description": "Trigger actions when selection is changed."
|
||||
},
|
||||
"onSearch": {
|
||||
"type": "array",
|
||||
"description": "Trigger actions when input is changed. 'value' is passed to the _event operator to be used in actions such as search queries."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -3,6 +3,33 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/build
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **build:** Better error messages on build. ([9934d07](https://github.com/lowdefy/lowdefy/commit/9934d07430aef93d4f992c048b3f7101b4934217))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/build
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/build
|
||||
|
@ -3,6 +3,33 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package lowdefy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package lowdefy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Support .yml in lowdefy.yaml file. ([0f7cc2a](https://github.com/lowdefy/lowdefy/commit/0f7cc2a7612a5ad9a8164d5a5437dde5c6d7da49)), closes [#902](https://github.com/lowdefy/lowdefy/issues/902)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
|
||||
|
@ -15,8 +15,16 @@
|
||||
*/
|
||||
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { type } from '@lowdefy/helpers';
|
||||
|
||||
const MountEvents = ({ asyncEventName, context, eventName, triggerEvent, children }) => {
|
||||
const MountEvents = ({
|
||||
asyncEventName,
|
||||
context,
|
||||
eventName,
|
||||
triggerEvent,
|
||||
initEventsTriggered,
|
||||
children,
|
||||
}) => {
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [error, setError] = useState(null);
|
||||
useEffect(() => {
|
||||
@ -28,6 +36,9 @@ const MountEvents = ({ asyncEventName, context, eventName, triggerEvent, childre
|
||||
triggerEvent({ name: asyncEventName, context });
|
||||
setLoading(false);
|
||||
}
|
||||
if (type.isFunction(initEventsTriggered)) {
|
||||
initEventsTriggered(true);
|
||||
}
|
||||
} catch (err) {
|
||||
setError(err);
|
||||
}
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/color
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/color
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/color
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/color
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@lowdefy/color",
|
||||
"version": "3.22.0",
|
||||
"version": "3.23.1",
|
||||
"license": "Apache-2.0",
|
||||
"description": "",
|
||||
"homepage": "https://lowdefy.com",
|
||||
|
@ -3,6 +3,51 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/docs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **docs:** Fix _ref resolver function example. ([0903094](https://github.com/lowdefy/lowdefy/commit/0903094ce531f4d8ab7849deb91ab3d6b7e5fd82))
|
||||
* **docs:** Included onSearch event example in MultipleSelector and Selector docs. ([0e53cb8](https://github.com/lowdefy/lowdefy/commit/0e53cb8f93ed49e0122ac038113d7378f67501f7))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Add _switch operator to docs. ([c5c6f0c](https://github.com/lowdefy/lowdefy/commit/c5c6f0c9a5b0dfc89e09835d3ab940195a077504))
|
||||
* Support .yml in lowdefy.yaml file. ([0f7cc2a](https://github.com/lowdefy/lowdefy/commit/0f7cc2a7612a5ad9a8164d5a5437dde5c6d7da49)), closes [#902](https://github.com/lowdefy/lowdefy/issues/902)
|
||||
* **docs:** Add avatar and links to blog template. ([d855599](https://github.com/lowdefy/lowdefy/commit/d855599398cae041933dd8b11aaf77648f87d4c2))
|
||||
* **docs:** Add how to generate pdfs. ([7b35550](https://github.com/lowdefy/lowdefy/commit/7b35550fa944995be8f8a9d0e809971cabcf12af))
|
||||
* **docs:** Fix the iframe videos in the docs. ([c4a957a](https://github.com/lowdefy/lowdefy/commit/c4a957a12ea5adf018b373d8da8c5116e064205f))
|
||||
* improvements on blog template. ([30e2291](https://github.com/lowdefy/lowdefy/commit/30e22917fed9932e43cde942532654aa4a6aeac6))
|
||||
* **docs:** Add how to generate CSVs. ([2cc8e45](https://github.com/lowdefy/lowdefy/commit/2cc8e45b165aa755dceb9e40525f8a0511fb3485))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **docs:** Add how to generate csv. ([3257f51](https://github.com/lowdefy/lowdefy/commit/3257f514b95f7cafb8ac30998194e7ae0a327862))
|
||||
* **docs:** Add videos to how tos. ([57c7779](https://github.com/lowdefy/lowdefy/commit/57c77798f0356c606cf90bfd36a4f63ab8d0ff36))
|
||||
* Add generate pdf how to. ([5bde460](https://github.com/lowdefy/lowdefy/commit/5bde460934e2dc94d677af5f287e3c85c0ff4c34))
|
||||
* **docs:** Added switch operator documentation. ([7c42c78](https://github.com/lowdefy/lowdefy/commit/7c42c7882422ea89332b32bcef985b5bc5059ec8))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
|
||||
|
@ -66,7 +66,7 @@ _ref:
|
||||
```yaml
|
||||
# lowdefy.yaml
|
||||
name: intercom-example
|
||||
lowdefy: '3.22.0'
|
||||
lowdefy: '3.23.1'
|
||||
app:
|
||||
html:
|
||||
appendBody: |
|
||||
@ -137,7 +137,7 @@ _ref:
|
||||
```yaml
|
||||
# file: lowdefy.yaml
|
||||
name: text-highlight-example
|
||||
lowdefy: '3.22.0'
|
||||
lowdefy: '3.23.1'
|
||||
app:
|
||||
html:
|
||||
# Load the custom modules into the index.html head tag.
|
||||
|
@ -35,3 +35,83 @@ _ref:
|
||||
|
||||
> Other selector blocks are `ButtonSelector`, `CheckboxSelector`, `RadioSelector` and `Selector`.
|
||||
|
||||
examples:
|
||||
- title: Listing options from database search
|
||||
block:
|
||||
id: example_selector
|
||||
type: MultipleSelector
|
||||
requests:
|
||||
- id: example_search
|
||||
type: MongoDBAggregation
|
||||
connectionId: companies
|
||||
properties:
|
||||
pipeline:
|
||||
- $search:
|
||||
compound:
|
||||
should:
|
||||
- wildcard:
|
||||
query:
|
||||
_string.concat:
|
||||
- '*'
|
||||
- _state: search_input
|
||||
- '*'
|
||||
path: # field names to search in the companies collection
|
||||
- _id
|
||||
- company_name
|
||||
allowAnalyzedField: true
|
||||
- $addFields:
|
||||
score:
|
||||
$meta: searchScore
|
||||
- $sort:
|
||||
score: -1
|
||||
- $limit: 50
|
||||
- $project:
|
||||
_id: 0
|
||||
value: $_id
|
||||
label:
|
||||
$concat:
|
||||
- $_id
|
||||
- ' - '
|
||||
- $ifNull:
|
||||
- $company_name
|
||||
- ''
|
||||
properties:
|
||||
placeholder: Search
|
||||
options: # search request results will be used as options
|
||||
_array.concat:
|
||||
- _if_none:
|
||||
- _state: example_options
|
||||
- []
|
||||
- _if_none:
|
||||
- _request: example_search
|
||||
- []
|
||||
label:
|
||||
disabled: true
|
||||
events:
|
||||
onChange: # selector onChange actions - triggered when the value of the selector changes
|
||||
- id: set_state
|
||||
type: SetState
|
||||
params:
|
||||
example_options:
|
||||
_mql.aggregate:
|
||||
on:
|
||||
_array.concat:
|
||||
- _state: example_options
|
||||
- _request: example_search
|
||||
pipeline:
|
||||
- $match:
|
||||
value:
|
||||
$in:
|
||||
_state: example_selector
|
||||
onSearch: # selector onSearch actions - triggered when the user types in the search input
|
||||
debounce:
|
||||
ms: 500
|
||||
try:
|
||||
- id: set_state
|
||||
type: SetState
|
||||
params:
|
||||
search_input:
|
||||
_event: value
|
||||
- id: perform_search
|
||||
type: Request
|
||||
params: example_search
|
||||
|
@ -34,3 +34,65 @@ _ref:
|
||||
The options for the selector can be provides as either an array of primitive values (Strings, numbers, booleans or dates), or as an array of label-value pairs, where the label is a string, and the value can be of any type, including objects like dates and arrays.
|
||||
|
||||
> Other selector blocks are `ButtonSelector`, `CheckboxSelector`, `MultipleSelector` and `RadioSelector`.
|
||||
|
||||
examples:
|
||||
- title: Listing options from database search
|
||||
block:
|
||||
id: example_selector
|
||||
type: Selector
|
||||
requests:
|
||||
- id: example_search
|
||||
type: MongoDBAggregation
|
||||
connectionId: companies
|
||||
properties:
|
||||
pipeline:
|
||||
- $search:
|
||||
compound:
|
||||
should:
|
||||
- wildcard:
|
||||
query:
|
||||
_string.concat:
|
||||
- '*'
|
||||
- _state: search_input
|
||||
- '*'
|
||||
path: # field names to search in the companies collection
|
||||
- _id
|
||||
- company_name
|
||||
allowAnalyzedField: true
|
||||
- $addFields:
|
||||
score:
|
||||
$meta: searchScore
|
||||
- $sort:
|
||||
score: -1
|
||||
- $limit: 50
|
||||
- $project: # selector options value, label pairs
|
||||
_id: 0
|
||||
value: $_id
|
||||
label:
|
||||
$concat:
|
||||
- $_id
|
||||
- ' - '
|
||||
- $ifNull:
|
||||
- $company_name
|
||||
- ''
|
||||
properties:
|
||||
placeholder: Search
|
||||
options:
|
||||
_if_none: # search request results will be used as options
|
||||
- _request: example_search
|
||||
- []
|
||||
label:
|
||||
disabled: true
|
||||
events:
|
||||
onSearch: # selector onSearch actions
|
||||
debounce:
|
||||
ms: 500
|
||||
try:
|
||||
- id: set_state
|
||||
type: SetState
|
||||
params:
|
||||
search_input:
|
||||
_event: value
|
||||
- id: perform_search
|
||||
type: Request
|
||||
params: example_search
|
||||
|
@ -45,7 +45,7 @@ _ref:
|
||||
|
||||
```yaml
|
||||
name: dashboard-app
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
types:
|
||||
AmChartsXY:
|
||||
url: https://blocks-cdn.lowdefy.com/v3.10.1/blocks-amcharts/meta/AmChartsXY.json
|
||||
@ -95,7 +95,7 @@ _ref:
|
||||
|
||||
```yaml
|
||||
name: dashboard-app
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
types:
|
||||
MyCustomBlock:
|
||||
url: http://localhost:3002/meta/MyCustomBlock.json
|
||||
|
@ -53,7 +53,7 @@ _ref:
|
||||
|
||||
```yaml
|
||||
name: google-analytics-example
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
# ...
|
||||
app:
|
||||
html:
|
||||
@ -98,7 +98,7 @@ _ref:
|
||||
```yaml
|
||||
# /lowdefy.yaml
|
||||
name: json-todos
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
app:
|
||||
html:
|
||||
appendHead:
|
||||
@ -156,7 +156,7 @@ _ref:
|
||||
```yaml
|
||||
# /lowdefy.yaml
|
||||
name: operator-example
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
app:
|
||||
html:
|
||||
appendHead:
|
||||
|
@ -43,7 +43,19 @@ _ref:
|
||||
The config object has the following properties:
|
||||
|
||||
- `homePageId: string`: The pageId of the page that should be loaded when a user loads the app without a pageId in the url route. This is the page that is loaded when you navigate to `yourdomain.com`.
|
||||
- `experimental_initPageId: string`: The pageId of the page that should be loaded when app is initialized. User is then redirected to requeted page. You can use onInit/onInitAsync/onEnter/onEnterAsync events to fetch and prepare global variables for other parts of the app.
|
||||
|
||||
- id: alert1
|
||||
type: Alert
|
||||
properties:
|
||||
type: warning
|
||||
showIcon: false
|
||||
message: Init page is an experimental feature, that may disappear in future releases as well as the flag itself can be changed. Use at your own risk.
|
||||
|
||||
- id: md2
|
||||
type: MarkdownWithCode
|
||||
properties:
|
||||
content: |
|
||||
# Global
|
||||
|
||||
Any data that you wish to use in your app can be stored in the __global__ object, and accessed using the [`_global`](/_global) operator. This is a good place to store data or configuration that is used throughout the app, for example the url of a logo or configuration of a page, since then these are only written once, and can be updated easily.
|
||||
|
@ -88,7 +88,7 @@ _ref:
|
||||
###### A basic full example requesting data from https://jsonplaceholder.typicode.com
|
||||
|
||||
```yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
name: Lowdefy starter
|
||||
connections:
|
||||
- id: my_api
|
||||
|
@ -55,10 +55,10 @@ _ref:
|
||||
COPY --chown=node:node . .
|
||||
|
||||
# Build the Lowdefy config using the Lowdefy CLI
|
||||
RUN npx lowdefy@3.22.0 build
|
||||
RUN npx lowdefy@3.23.1 build
|
||||
|
||||
# Use the correct Lowdefy base image
|
||||
FROM lowdefy/lowdefy-aws-lambda:3.22.0
|
||||
FROM lowdefy/lowdefy-aws-lambda:3.23.1
|
||||
|
||||
# Copy build output from build stage
|
||||
COPY --from=build /home/node/lowdefy/.lowdefy/build ./build
|
||||
|
@ -65,10 +65,10 @@ _ref:
|
||||
COPY --chown=node:node . .
|
||||
|
||||
# Build the Lowdefy config using the Lowdefy CLI
|
||||
RUN npx lowdefy@3.22.0 build
|
||||
RUN npx lowdefy@3.23.1 build
|
||||
|
||||
# Use the correct Lowdefy base image
|
||||
FROM lowdefy/lowdefy:3.22.0
|
||||
FROM lowdefy/lowdefy:3.23.1
|
||||
|
||||
# Copy build output from build stage
|
||||
COPY --from=build --chown=node:node /home/node/lowdefy/.lowdefy/build ./build
|
||||
|
@ -184,7 +184,7 @@ _ref:
|
||||
|
||||
###### /lowdefy.yaml
|
||||
```yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
name: Generate PDF from data with Lowdefy
|
||||
|
||||
app:
|
||||
|
@ -237,7 +237,7 @@ _ref:
|
||||
###### /lowdefy.yaml
|
||||
```yaml
|
||||
name: Generate a PDF
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
|
||||
app:
|
||||
html:
|
||||
@ -302,7 +302,7 @@ _ref:
|
||||
|
||||
###### /lowdefy.yaml
|
||||
```yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
name: Generate PDF from data with Lowdefy
|
||||
|
||||
app:
|
||||
|
@ -1,4 +1,4 @@
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
name: Generate PDF from data with Lowdefy
|
||||
|
||||
app:
|
||||
|
@ -1,4 +1,4 @@
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
name: Generate PDF from data with Lowdefy
|
||||
|
||||
app:
|
||||
|
@ -13,7 +13,7 @@
|
||||
# limitations under the License.
|
||||
|
||||
name: '@lowdefy/docs'
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
licence: Apache-2.0
|
||||
|
||||
cli:
|
||||
|
@ -740,10 +740,9 @@
|
||||
- id: _sum
|
||||
type: MenuLink
|
||||
pageId: _sum
|
||||
# TODO NEXT v3.22.0 INCLUDE
|
||||
# - id: _switch
|
||||
# type: MenuLink
|
||||
# pageId: _switch
|
||||
- id: _switch
|
||||
type: MenuLink
|
||||
pageId: _switch
|
||||
- id: _type
|
||||
type: MenuLink
|
||||
pageId: _type
|
||||
@ -771,9 +770,14 @@
|
||||
title: Lowdefy Versions
|
||||
icon: BranchesOutlined
|
||||
links:
|
||||
- id: v3.22.0
|
||||
- id: v3.23.1
|
||||
type: MenuLink
|
||||
url: https://docs.lowdefy.com
|
||||
properties:
|
||||
title: v3.23.1
|
||||
- id: v3.22.0
|
||||
type: MenuLink
|
||||
url: https://61519bcb8b8ed4412aae3057--lowdefy-docs.netlify.app
|
||||
properties:
|
||||
title: v3.22.0
|
||||
- id: v3.21.2
|
||||
|
@ -77,7 +77,7 @@ _ref:
|
||||
First register a custom JavaScript action: `getNormalizedEigenvector`
|
||||
```yaml
|
||||
# file: lowdefy.yaml
|
||||
lowdefy: '3.22.0'
|
||||
lowdefy: '3.23.1'
|
||||
app:
|
||||
html:
|
||||
appendHead: |
|
||||
|
@ -51,7 +51,7 @@ _ref:
|
||||
```yaml
|
||||
# lowdefy.yaml
|
||||
name: make-me-primes
|
||||
lowdefy: '3.22.0'
|
||||
lowdefy: '3.23.1'
|
||||
app:
|
||||
html:
|
||||
# This HTML will be appended to the head HTML tag in the Lowdefy app
|
||||
@ -119,7 +119,7 @@ _ref:
|
||||
```yaml
|
||||
# file: lowdefy.yaml
|
||||
name: my-chart
|
||||
lowdefy: '3.22.0'
|
||||
lowdefy: '3.23.1'
|
||||
app:
|
||||
html:
|
||||
appendHead:
|
||||
|
@ -73,7 +73,7 @@ _ref:
|
||||
###### Reference pages:
|
||||
```yaml
|
||||
# lowdefy.yaml
|
||||
lowdefy: '3.22.0'
|
||||
lowdefy: '3.23.1'
|
||||
pages:
|
||||
- _ref: pages/page1.yaml
|
||||
- _ref: pages/page2.yaml
|
||||
@ -94,7 +94,7 @@ _ref:
|
||||
```
|
||||
Returns:
|
||||
```
|
||||
lowdefy: '3.22.0'
|
||||
lowdefy: '3.23.1'
|
||||
pages:
|
||||
- id: page1
|
||||
type: PageHeaderMenu
|
||||
@ -176,12 +176,20 @@ _ref:
|
||||
|
||||
const readFilePromise = promisify(fs.readFile);
|
||||
|
||||
async function useLocalOrSharedConfig(path, vars, context) {
|
||||
const localFile = await readFilePromise(path.resolve(path), 'utf8');
|
||||
async function useLocalOrSharedConfig(refPath, vars, context) {
|
||||
let fileContent
|
||||
try {
|
||||
fileContent = await readFilePromise(path.resolve(refPath), 'utf8');
|
||||
return fileContent;
|
||||
} catch (error) {
|
||||
if (error.code === 'ENOENT') {
|
||||
fileContent = readFilePromise(path.resolve('../shared', refPath), 'utf8');
|
||||
return fileContent;
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
|
||||
if (localFile) return localFile;
|
||||
|
||||
return readFilePromise(path.resolve('../shared', path), 'utf8');
|
||||
}
|
||||
|
||||
module.exports = useLocalOrSharedConfig;
|
||||
@ -189,7 +197,7 @@ _ref:
|
||||
|
||||
```yaml
|
||||
// lowdefy.yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
|
||||
cli:
|
||||
refResolver: resolvers/useLocalOrSharedConfig.js
|
||||
@ -215,7 +223,7 @@ _ref:
|
||||
```
|
||||
```yaml
|
||||
// lowdefy.yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
|
||||
pages:
|
||||
- _ref:
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@lowdefy/docs",
|
||||
"version": "3.22.0",
|
||||
"version": "3.23.1",
|
||||
"license": "Apache-2.0",
|
||||
"description": "",
|
||||
"homepage": "https://lowdefy.com",
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -76,7 +76,7 @@ _ref:
|
||||
|
||||
```yaml
|
||||
name: lowdefy-project-template
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
|
||||
pages:
|
||||
################ -------- Copy from here -------- ################
|
||||
|
@ -180,7 +180,7 @@ _ref:
|
||||
Open the `lowdefy.yaml` file using a text editor like [VS Code](https://code.visualstudio.com/download). The content of the file should look like this:
|
||||
|
||||
```yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
name: Lowdefy starter
|
||||
|
||||
pages:
|
||||
|
@ -132,7 +132,7 @@ _ref:
|
||||
|
||||
###### Redirect to the Auth0 logout URL and return to the `logged-out` page in the app after logout:
|
||||
```yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
config:
|
||||
auth:
|
||||
openId:
|
||||
@ -144,7 +144,7 @@ _ref:
|
||||
|
||||
###### Redirect to the Keycloak logout URL and return to the `logged-out` page in the app after logout:
|
||||
```yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
config:
|
||||
auth:
|
||||
openId:
|
||||
|
@ -36,7 +36,7 @@ _ref:
|
||||
|
||||
###### List specific public pages:
|
||||
```yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
config:
|
||||
auth:
|
||||
pages:
|
||||
@ -48,7 +48,7 @@ _ref:
|
||||
````
|
||||
###### List specific protected pages:
|
||||
```yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
config:
|
||||
auth:
|
||||
pages:
|
||||
|
@ -29,7 +29,7 @@ _ref:
|
||||
Roles can be read from a custom claim on the OpenID Connect `idToken`. This should be an array of strings which are the role names. This needs to be configured at the OpenID Connect provider. The field that contains the roles array is configured in the `config.auth.openId` field in the Lowdefy configuration.
|
||||
|
||||
```yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
config:
|
||||
auth:
|
||||
openId:
|
||||
@ -43,7 +43,7 @@ _ref:
|
||||
|
||||
###### Protect pages using roles:
|
||||
```yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
config:
|
||||
auth:
|
||||
openId:
|
||||
|
@ -48,7 +48,7 @@ _ref:
|
||||
content: |
|
||||
Most authorization and authentication settings are configured in the `config.auth` object in the Lowdefy configuration. The following config can be set:
|
||||
```yaml
|
||||
lowdefy: 3.22.0
|
||||
lowdefy: 3.23.1
|
||||
config:
|
||||
auth:
|
||||
openId:
|
||||
|
@ -1 +1 @@
|
||||
v3.22.0
|
||||
v3.23.1
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/engine
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/engine
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/engine
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/engine
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/format
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/format
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/format
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/format
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@lowdefy/format",
|
||||
"version": "3.22.0",
|
||||
"version": "3.23.1",
|
||||
"license": "Apache-2.0",
|
||||
"description": "",
|
||||
"homepage": "https://lowdefy.com",
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/helpers
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/helpers
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/helpers
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/helpers
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@lowdefy/helpers",
|
||||
"version": "3.22.0",
|
||||
"version": "3.23.1",
|
||||
"licence": "Apache-2.0",
|
||||
"description": "",
|
||||
"homepage": "https://lowdefy.com",
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/layout
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/layout
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/layout
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/layout
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/node-utils
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/node-utils
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/node-utils
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/node-utils
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/nunjucks
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/nunjucks
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/nunjucks
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/nunjucks
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@lowdefy/nunjucks",
|
||||
"version": "3.22.0",
|
||||
"version": "3.23.1",
|
||||
"licence": "Apache-2.0",
|
||||
"description": "",
|
||||
"homepage": "https://lowdefy.com",
|
||||
@ -40,7 +40,7 @@
|
||||
"test": "jest --coverage"
|
||||
},
|
||||
"dependencies": {
|
||||
"@lowdefy/helpers": "3.22.0",
|
||||
"@lowdefy/helpers": "3.23.1",
|
||||
"moment": "2.29.1",
|
||||
"nunjucks": "3.2.3"
|
||||
},
|
||||
|
@ -3,6 +3,40 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/operators
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/operators
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **operators:** Added tests for switch operator to Node and Web Parsers. ([249ab6b](https://github.com/lowdefy/lowdefy/commit/249ab6bb475bb0d945e48d4f5b90d2308fd00e16))
|
||||
* **operators:** Added tests for switch operator. ([ce31fa3](https://github.com/lowdefy/lowdefy/commit/ce31fa30c05023f7a15c944abfc93a7ecb9f6b56))
|
||||
* **operators:** Updated switch operator to for... ...of syntax. ([cdbd0e0](https://github.com/lowdefy/lowdefy/commit/cdbd0e0d229933d6b0e497f90cf755ccd04b89c9))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **operators:** Added switch operator. ([436170c](https://github.com/lowdefy/lowdefy/commit/436170c2ec88e6a8ddbd5a34c791cd7eacc5f72b))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/operators
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@lowdefy/operators",
|
||||
"version": "3.22.0",
|
||||
"version": "3.23.1",
|
||||
"licence": "Apache-2.0",
|
||||
"description": "",
|
||||
"homepage": "https://lowdefy.com",
|
||||
@ -38,9 +38,9 @@
|
||||
"test:watch": "jest --coverage --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"@lowdefy/format": "3.22.0",
|
||||
"@lowdefy/helpers": "3.22.0",
|
||||
"@lowdefy/nunjucks": "3.22.0",
|
||||
"@lowdefy/format": "3.23.1",
|
||||
"@lowdefy/helpers": "3.23.1",
|
||||
"@lowdefy/nunjucks": "3.23.1",
|
||||
"change-case": "4.1.2",
|
||||
"deep-diff": "1.0.2",
|
||||
"js-yaml": "4.1.0",
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/server
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/server
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/server
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/server
|
||||
|
@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.1](https://github.com/lowdefy/lowdefy/compare/v3.23.0...v3.23.1) (2021-11-20)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/server-dev
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0](https://github.com/lowdefy/lowdefy/compare/v3.23.0-alpha.0...v3.23.0) (2021-11-19)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/server-dev
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.23.0-alpha.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0...v3.23.0-alpha.0) (2021-11-09)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/server-dev
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.22.0](https://github.com/lowdefy/lowdefy/compare/v3.22.0-alpha.1...v3.22.0) (2021-09-27)
|
||||
|
||||
**Note:** Version bump only for package @lowdefy/server-dev
|
||||
|
Loading…
x
Reference in New Issue
Block a user