GEN-1836: Table custom property enhancements (#18239)
* Table custom property enhancements * ui: remove rowCount * minor style file changes * minor change to show no data placeholder * add icons for property types * fix type filtering issue * fix spacing issue for custom properties card * refactor comments and style file * fix test * add playwright test for adding/updating table type property in entity * add sesrchField for search property by name --------- Co-authored-by: Sachin Chaurasiya <sachinchaurasiyachotey87@gmail.com>
@ -1518,12 +1518,6 @@ public abstract class EntityRepository<T extends EntityInterface> {
|
||||
+ undefinedColumns);
|
||||
}
|
||||
|
||||
if (fieldValue.get("rows").size() > tableConfig.getRowCount()) {
|
||||
throw new IllegalArgumentException(
|
||||
"Number of rows should be less than or equal to the expected row count "
|
||||
+ tableConfig.getRowCount());
|
||||
}
|
||||
|
||||
Set<String> rowFieldNames = new HashSet<>();
|
||||
fieldValue.get("rows").forEach(row -> row.fieldNames().forEachRemaining(rowFieldNames::add));
|
||||
|
||||
|
@ -23,7 +23,6 @@ import static org.openmetadata.service.util.EntityUtil.customFieldMatch;
|
||||
import static org.openmetadata.service.util.EntityUtil.getCustomField;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
@ -243,12 +242,6 @@ public class TypeRepository extends EntityRepository<Type> {
|
||||
JsonNode configNode = JsonUtils.valueToTree(config.getConfig());
|
||||
TableConfig tableConfig = JsonUtils.convertValue(config.getConfig(), TableConfig.class);
|
||||
|
||||
// rowCount is optional, if not present set it to the default value
|
||||
if (!configNode.has("rowCount")) {
|
||||
((ObjectNode) configNode).put("rowCount", tableConfig.getRowCount());
|
||||
config.setConfig(configNode);
|
||||
}
|
||||
|
||||
List<String> columns = new ArrayList<>();
|
||||
configNode.path("columns").forEach(node -> columns.add(node.asText()));
|
||||
Set<String> uniqueColumns = new HashSet<>(columns);
|
||||
|
@ -342,26 +342,6 @@ public class TypeResourceTest extends EntityResourceTest<Type, CreateType> {
|
||||
+ " and "
|
||||
+ tableConfig.getMaxColumns());
|
||||
|
||||
tableTypeFieldA.setCustomPropertyConfig(
|
||||
new CustomPropertyConfig()
|
||||
.withConfig(
|
||||
new TableConfig()
|
||||
.withColumns(Set.of("column-1", "column-2", "column-3"))
|
||||
.withRowCount(200)));
|
||||
ChangeDescription change2 = getChangeDescription(databaseEntity, MINOR_UPDATE);
|
||||
Type databaseEntity2 = databaseEntity;
|
||||
assertResponseContains(
|
||||
() ->
|
||||
addCustomPropertyAndCheck(
|
||||
databaseEntity2.getId(),
|
||||
tableTypeFieldA,
|
||||
ADMIN_AUTH_HEADERS,
|
||||
MINOR_UPDATE,
|
||||
change2),
|
||||
Status.BAD_REQUEST,
|
||||
"Custom Property table has invalid value rowCount must be less than or equal to "
|
||||
+ tableConfig.getMaxRows());
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
ObjectNode tableConfigJson = mapper.createObjectNode();
|
||||
ArrayNode columnsArray = tableConfigJson.putArray("columns");
|
||||
|
@ -127,9 +127,7 @@
|
||||
"type": "string",
|
||||
"description": "The cell value of each column in the row."
|
||||
}
|
||||
},
|
||||
"minItems": 1,
|
||||
"maxItems": 10
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": ["columns"],
|
||||
|
@ -17,13 +17,6 @@
|
||||
"maxItems": 3,
|
||||
"uniqueItems": true
|
||||
},
|
||||
"rowCount": {
|
||||
"type": "integer",
|
||||
"default": 10,
|
||||
"description": "Number of rows. Defaults to maxRows if not explicitly set.",
|
||||
"minimum": 1,
|
||||
"maximum": 10
|
||||
},
|
||||
"minColumns": {
|
||||
"type": "integer",
|
||||
"default": 1,
|
||||
@ -33,16 +26,6 @@
|
||||
"type": "integer",
|
||||
"default": 3,
|
||||
"$comment": "For internal use only: Maximum number of columns."
|
||||
},
|
||||
"minRows": {
|
||||
"type": "integer",
|
||||
"default": 1,
|
||||
"$comment": "For internal use only: Minimum number of rows."
|
||||
},
|
||||
"maxRows": {
|
||||
"type": "integer",
|
||||
"default": 10,
|
||||
"$comment": "For internal use only: Maximum number of rows."
|
||||
}
|
||||
},
|
||||
"required": ["columns"],
|
||||
|
@ -48,25 +48,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'containers',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
|
||||
entity_dashboard: {
|
||||
@ -79,25 +69,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'dashboards',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
|
||||
entity_database: {
|
||||
@ -110,25 +90,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'databases',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
|
||||
entity_databaseSchema: {
|
||||
@ -141,25 +111,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'databaseSchemas',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
|
||||
entity_glossaryTerm: {
|
||||
@ -172,25 +132,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'glossaryTerm',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
|
||||
entity_mlmodel: {
|
||||
@ -203,25 +153,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'mlmodels',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
|
||||
entity_pipeline: {
|
||||
@ -234,25 +174,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: true,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'pipelines',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
|
||||
entity_searchIndex: {
|
||||
@ -265,25 +195,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'searchIndexes',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
|
||||
entity_storedProcedure: {
|
||||
@ -296,25 +216,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'storedProcedures',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
|
||||
entity_table: {
|
||||
@ -327,25 +237,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'tables',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
|
||||
entity_topic: {
|
||||
@ -358,25 +258,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'topics',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
entity_apiCollection: {
|
||||
name: 'apiCollection',
|
||||
@ -388,25 +278,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'apiCollections',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
|
||||
entity_apiEndpoint: {
|
||||
@ -419,25 +299,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'apiEndpoints',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
entity_dataProduct: {
|
||||
name: 'dataProduct',
|
||||
@ -449,25 +319,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'dataProducts',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
entity_dashboardDataModel: {
|
||||
name: 'dataModel',
|
||||
@ -479,25 +339,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'dashboardDataModels',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
entity_metric: {
|
||||
name: 'metric',
|
||||
@ -509,25 +359,15 @@ export const CUSTOM_PROPERTIES_ENTITIES = {
|
||||
values: ['enum1', 'enum2', 'enum3'],
|
||||
multiSelect: false,
|
||||
},
|
||||
enumWithDescriptionConfig: {
|
||||
values: [
|
||||
{
|
||||
key: 'enumWithDescription1',
|
||||
description: 'This is enumWithDescription1',
|
||||
},
|
||||
{
|
||||
key: 'enumWithDescription2',
|
||||
description: 'This is enumWithDescription2',
|
||||
},
|
||||
],
|
||||
multiSelect: false,
|
||||
},
|
||||
dateFormatConfig: 'yyyy-MM-dd',
|
||||
dateTimeFormatConfig: 'yyyy-MM-dd HH:mm:ss',
|
||||
timeFormatConfig: 'HH:mm:ss',
|
||||
entityReferenceConfig: ['User', 'Team'],
|
||||
entityObj: {},
|
||||
entityApiType: 'metrics',
|
||||
tableConfig: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -52,6 +52,30 @@ test.describe('Custom properties with custom property config', () => {
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('Add update and delete Table custom properties', () => {
|
||||
Object.values(CUSTOM_PROPERTIES_ENTITIES).forEach(async (entity) => {
|
||||
const propertyName = `pwcustomproperty${entity.name}test${uuid()}`;
|
||||
|
||||
test(`Add Table custom property for ${entity.name}`, async ({ page }) => {
|
||||
test.slow(true);
|
||||
|
||||
await settingClick(page, entity.entityApiType, true);
|
||||
|
||||
await addCustomPropertiesForEntity({
|
||||
page,
|
||||
propertyName,
|
||||
customPropertyData: entity,
|
||||
customType: 'Table',
|
||||
tableConfig: entity.tableConfig,
|
||||
});
|
||||
|
||||
await editCreatedProperty(page, propertyName, 'Table');
|
||||
|
||||
await deleteCreatedProperty(page, propertyName);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test.describe(
|
||||
'Add update and delete Entity Reference custom properties',
|
||||
() => {
|
||||
|
@ -29,6 +29,7 @@ export enum CustomPropertyType {
|
||||
MARKDOWN = 'Markdown',
|
||||
}
|
||||
export enum CustomPropertyTypeByName {
|
||||
TABLE_CP = 'table-cp',
|
||||
STRING = 'string',
|
||||
INTEGER = 'integer',
|
||||
MARKDOWN = 'markdown',
|
||||
@ -56,6 +57,27 @@ export interface CustomProperty {
|
||||
};
|
||||
}
|
||||
|
||||
export const fillTextInputDetails = async (
|
||||
page: Page,
|
||||
text: string,
|
||||
columnName: string
|
||||
) => {
|
||||
await page
|
||||
.locator(`div[data-state-props-id="${columnName}"]`)
|
||||
.last()
|
||||
.dblclick();
|
||||
|
||||
await page
|
||||
.getByTestId('edit-table-type-property-modal')
|
||||
.getByRole('textbox')
|
||||
.fill(text);
|
||||
|
||||
await page
|
||||
.locator(`div[data-state-props-id="${columnName}"]`)
|
||||
.last()
|
||||
.press('Enter', { delay: 100 });
|
||||
};
|
||||
|
||||
export const setValueForProperty = async (data: {
|
||||
page: Page;
|
||||
propertyName: string;
|
||||
@ -203,6 +225,19 @@ export const setValueForProperty = async (data: {
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 'table-cp': {
|
||||
const values = value.split(',');
|
||||
await page.locator('[data-testid="add-new-row"]').click();
|
||||
|
||||
await fillTextInputDetails(page, values[0], 'pw-column1');
|
||||
|
||||
await fillTextInputDetails(page, values[1], 'pw-column2');
|
||||
|
||||
await page.locator('[data-testid="update-table-type-property"]').click();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
await patchRequest;
|
||||
};
|
||||
@ -224,7 +259,7 @@ export const validateValueForProperty = async (data: {
|
||||
.locator(`[data-testid="toggle-${propertyName}"]`)
|
||||
.isVisible();
|
||||
|
||||
if (toggleBtnVisibility) {
|
||||
if (toggleBtnVisibility && propertyType !== 'table-cp') {
|
||||
await container.locator(`[data-testid="toggle-${propertyName}"]`).click();
|
||||
}
|
||||
|
||||
@ -241,6 +276,12 @@ export const validateValueForProperty = async (data: {
|
||||
);
|
||||
} else if (propertyType === 'sqlQuery') {
|
||||
await expect(container.locator('.CodeMirror-scroll')).toContainText(value);
|
||||
} else if (propertyType === 'table-cp') {
|
||||
const values = value.split(',');
|
||||
|
||||
await expect(
|
||||
page.getByRole('row', { name: `${values[0]} ${values[1]}` })
|
||||
).toBeVisible();
|
||||
} else if (
|
||||
![
|
||||
'entityReference',
|
||||
@ -341,6 +382,12 @@ export const getPropertyValues = (
|
||||
newValue: '2025-07-09 15:07:59',
|
||||
};
|
||||
|
||||
case 'table-cp':
|
||||
return {
|
||||
value: 'column1,column2',
|
||||
newValue: 'column3,column4',
|
||||
};
|
||||
|
||||
default:
|
||||
return {
|
||||
value: '',
|
||||
@ -451,6 +498,15 @@ export const createCustomPropertyForEntity = async (
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...(item.name === 'table-cp'
|
||||
? {
|
||||
customPropertyConfig: {
|
||||
config: {
|
||||
columns: ['pw-column1', 'pw-column2'],
|
||||
},
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
},
|
||||
}
|
||||
);
|
||||
@ -488,19 +544,16 @@ export const addCustomPropertiesForEntity = async ({
|
||||
enumConfig,
|
||||
formatConfig,
|
||||
entityReferenceConfig,
|
||||
enumWithDescriptionConfig,
|
||||
tableConfig,
|
||||
}: {
|
||||
page: Page;
|
||||
propertyName: string;
|
||||
customPropertyData: { description: string };
|
||||
customType: string;
|
||||
enumConfig?: { values: string[]; multiSelect: boolean };
|
||||
enumWithDescriptionConfig?: {
|
||||
values: { key: string; description: string }[];
|
||||
multiSelect: boolean;
|
||||
};
|
||||
formatConfig?: string;
|
||||
entityReferenceConfig?: string[];
|
||||
tableConfig?: { columns: string[] };
|
||||
}) => {
|
||||
// Add Custom property for selected entity
|
||||
await page.click('[data-testid="add-field-button"]');
|
||||
@ -578,26 +631,14 @@ export const addCustomPropertiesForEntity = async ({
|
||||
await page.click('#root\\/multiSelect');
|
||||
}
|
||||
}
|
||||
// Enum With Description configuration
|
||||
if (customType === 'Enum With Descriptions' && enumWithDescriptionConfig) {
|
||||
for await (const [
|
||||
index,
|
||||
val,
|
||||
] of enumWithDescriptionConfig.values.entries()) {
|
||||
await page.locator('[data-testid="add-enum-description-config"]').click();
|
||||
await page.locator(`#key-${index}`).fill(val.key);
|
||||
await page.locator(descriptionBox).nth(index).fill(val.description);
|
||||
// Table configuration
|
||||
if (customType === 'Table' && tableConfig) {
|
||||
for (const val of tableConfig.columns) {
|
||||
await page.click('#root\\/columns');
|
||||
await page.fill('#root\\/columns', val);
|
||||
await page.press('#root\\/columns', 'Enter');
|
||||
}
|
||||
await clickOutside(page);
|
||||
|
||||
if (enumWithDescriptionConfig.multiSelect) {
|
||||
await page.click('#root\\/multiSelect');
|
||||
}
|
||||
|
||||
await page
|
||||
.locator(descriptionBox)
|
||||
.nth(2)
|
||||
.fill(customPropertyData.description);
|
||||
}
|
||||
|
||||
// Entity reference configuration
|
||||
@ -626,9 +667,8 @@ export const addCustomPropertiesForEntity = async ({
|
||||
}
|
||||
|
||||
// Description
|
||||
if (customType !== 'Enum With Descriptions') {
|
||||
await page.fill(descriptionBox, customPropertyData.description);
|
||||
}
|
||||
|
||||
await page.fill(descriptionBox, customPropertyData.description);
|
||||
|
||||
const createPropertyPromise = page.waitForResponse(
|
||||
'/api/v1/metadata/types/name/*?fields=customProperties'
|
||||
@ -663,22 +703,14 @@ export const editCreatedProperty = async (
|
||||
).toContainText('["enum1","enum2","enum3"]');
|
||||
}
|
||||
|
||||
if (type === 'Enum With Descriptions') {
|
||||
await expect(
|
||||
page
|
||||
.getByRole('row', {
|
||||
name: `${propertyName} enumWithDescriptions enumWithDescription1`,
|
||||
})
|
||||
.getByTestId('enum-with-description-config')
|
||||
).toBeVisible();
|
||||
if (type === 'Table') {
|
||||
await expect(page.getByText('Columns:pw-column1pw-column2')).toBeVisible();
|
||||
}
|
||||
|
||||
await editButton.click();
|
||||
|
||||
if (type !== 'Enum With Descriptions') {
|
||||
await page.locator(descriptionBox).fill('');
|
||||
await page.locator(descriptionBox).fill('This is new description');
|
||||
}
|
||||
await page.locator(descriptionBox).fill('');
|
||||
await page.locator(descriptionBox).fill('This is new description');
|
||||
|
||||
if (type === 'Enum') {
|
||||
await page.click('#root\\/customPropertyConfig');
|
||||
@ -686,10 +718,6 @@ export const editCreatedProperty = async (
|
||||
await page.press('#root\\/customPropertyConfig', 'Enter');
|
||||
await clickOutside(page);
|
||||
}
|
||||
if (type === 'Enum With Descriptions') {
|
||||
await page.locator(descriptionBox).nth(0).fill('');
|
||||
await page.locator(descriptionBox).nth(0).fill('This is new description');
|
||||
}
|
||||
|
||||
if (ENTITY_REFERENCE_PROPERTIES.includes(type ?? '')) {
|
||||
await page.click('#root\\/customPropertyConfig');
|
||||
@ -723,16 +751,6 @@ export const editCreatedProperty = async (
|
||||
).toContainText('["enum1","enum2","enum3","updatedValue"]');
|
||||
}
|
||||
|
||||
if (type === 'Enum With Descriptions') {
|
||||
await expect(
|
||||
page
|
||||
.getByRole('row', {
|
||||
name: `${propertyName} enumWithDescriptions enumWithDescription1`,
|
||||
})
|
||||
.getByTestId('enum-with-description-config')
|
||||
).toBeVisible();
|
||||
}
|
||||
|
||||
if (ENTITY_REFERENCE_PROPERTIES.includes(type ?? '')) {
|
||||
await expect(
|
||||
page.locator(
|
||||
|
@ -0,0 +1,14 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M7.02299 11.7777C7.434 11.7777 7.76718 11.4594 7.76718 11.0666C7.76718 10.6739 7.434 10.3555 7.02299 10.3555C6.61199 10.3555 6.27881 10.6739 6.27881 11.0666C6.27881 11.4594 6.61199 11.7777 7.02299 11.7777Z" fill="#292929"/>
|
||||
<path d="M7.02299 14.6215C7.434 14.6215 7.76718 14.3031 7.76718 13.9104C7.76718 13.5176 7.434 13.1992 7.02299 13.1992C6.61199 13.1992 6.27881 13.5176 6.27881 13.9104C6.27881 14.3031 6.61199 14.6215 7.02299 14.6215Z" fill="#292929"/>
|
||||
<path d="M9.99956 11.7777C10.4106 11.7777 10.7437 11.4594 10.7437 11.0666C10.7437 10.6739 10.4106 10.3555 9.99956 10.3555C9.58855 10.3555 9.25537 10.6739 9.25537 11.0666C9.25537 11.4594 9.58855 11.7777 9.99956 11.7777Z" fill="#292929"/>
|
||||
<path d="M9.99956 14.6215C10.4106 14.6215 10.7437 14.3031 10.7437 13.9104C10.7437 13.5176 10.4106 13.1992 9.99956 13.1992C9.58855 13.1992 9.25537 13.5176 9.25537 13.9104C9.25537 14.3031 9.58855 14.6215 9.99956 14.6215Z" fill="#292929"/>
|
||||
<path d="M12.9766 11.7777C13.3876 11.7777 13.7208 11.4594 13.7208 11.0666C13.7208 10.6739 13.3876 10.3555 12.9766 10.3555C12.5656 10.3555 12.2324 10.6739 12.2324 11.0666C12.2324 11.4594 12.5656 11.7777 12.9766 11.7777Z" fill="#292929"/>
|
||||
<path d="M12.9766 14.6215C13.3876 14.6215 13.7208 14.3031 13.7208 13.9104C13.7208 13.5176 13.3876 13.1992 12.9766 13.1992C12.5656 13.1992 12.2324 13.5176 12.2324 13.9104C12.2324 14.3031 12.5656 14.6215 12.9766 14.6215Z" fill="#292929"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M18 6.08863V15.3334C18 16.041 17.706 16.7187 17.1829 17.2193C16.659 17.7193 15.9498 18.0002 15.2093 18.0002H4.7907C4.05023 18.0002 3.34102 17.7193 2.81712 17.2193C2.29395 16.7187 2 16.041 2 15.3334V6.08863C2 5.38105 2.29395 4.70334 2.81712 4.2027C3.34102 3.70277 4.05023 3.42188 4.7907 3.42188H15.2093C15.9498 3.42188 16.659 3.70277 17.1829 4.2027C17.706 4.70334 18 5.38105 18 6.08863ZM16.8837 6.08863C16.8837 5.66409 16.7073 5.25732 16.3933 4.95722C16.0793 4.65712 15.6536 4.48858 15.2093 4.48858H4.7907C4.34642 4.48858 3.92074 4.65712 3.6067 4.95722C3.29265 5.25732 3.11628 5.66409 3.11628 6.08863V15.3334C3.11628 15.7579 3.29265 16.1647 3.6067 16.4648C3.92074 16.7649 4.34642 16.9335 4.7907 16.9335H15.2093C15.6536 16.9335 16.0793 16.7649 16.3933 16.4648C16.7073 16.1647 16.8837 15.7579 16.8837 15.3334V6.08863Z" fill="#292929"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.4419 7.33398C17.75 7.33398 18 7.57293 18 7.86734C18 8.16175 17.75 8.40069 17.4419 8.40069H2.55814C2.25005 8.40069 2 8.16175 2 7.86734C2 7.57293 2.25005 7.33398 2.55814 7.33398H17.4419Z" fill="#292929"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.4185 2.53335C12.4185 2.23894 12.6685 2 12.9766 2C13.2847 2 13.5347 2.23894 13.5347 2.53335V5.3779C13.5347 5.67231 13.2847 5.91125 12.9766 5.91125C12.6685 5.91125 12.4185 5.67231 12.4185 5.3779V2.53335Z" fill="#292929"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.46533 2.53335C6.46533 2.23894 6.71538 2 7.02347 2C7.33156 2 7.58161 2.23894 7.58161 2.53335V5.3779C7.58161 5.67231 7.33156 5.91125 7.02347 5.91125C6.71538 5.91125 6.46533 5.67231 6.46533 5.3779V2.53335Z" fill="#292929"/>
|
||||
<path d="M14.9548 18.5C16.8699 18.5 18.4095 16.9258 18.4095 15C18.4095 13.0742 16.8699 11.5 14.9548 11.5C13.0396 11.5 11.5 13.0742 11.5 15C11.5 16.9258 13.0396 18.5 14.9548 18.5Z" fill="white" stroke="#292929"/>
|
||||
<path d="M14.9546 13.7129V15.4272L15.7988 16.2843" stroke="#292929" stroke-linecap="round"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.4 KiB |
@ -0,0 +1,12 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.79998 11.7777C7.19271 11.7777 7.51109 11.4593 7.51109 11.0666C7.51109 10.6738 7.19271 10.3555 6.79998 10.3555C6.40724 10.3555 6.08887 10.6738 6.08887 11.0666C6.08887 11.4593 6.40724 11.7777 6.79998 11.7777Z" fill="#292929"/>
|
||||
<path d="M6.79998 14.6214C7.19271 14.6214 7.51109 14.3031 7.51109 13.9103C7.51109 13.5176 7.19271 13.1992 6.79998 13.1992C6.40724 13.1992 6.08887 13.5176 6.08887 13.9103C6.08887 14.3031 6.40724 14.6214 6.79998 14.6214Z" fill="#292929"/>
|
||||
<path d="M9.64422 11.7777C10.037 11.7777 10.3553 11.4593 10.3553 11.0666C10.3553 10.6738 10.037 10.3555 9.64422 10.3555C9.25148 10.3555 8.93311 10.6738 8.93311 11.0666C8.93311 11.4593 9.25148 11.7777 9.64422 11.7777Z" fill="#292929"/>
|
||||
<path d="M9.64422 14.6214C10.037 14.6214 10.3553 14.3031 10.3553 13.9103C10.3553 13.5176 10.037 13.1992 9.64422 13.1992C9.25148 13.1992 8.93311 13.5176 8.93311 13.9103C8.93311 14.3031 9.25148 14.6214 9.64422 14.6214Z" fill="#292929"/>
|
||||
<path d="M12.4889 11.7777C12.8817 11.7777 13.2001 11.4593 13.2001 11.0666C13.2001 10.6738 12.8817 10.3555 12.4889 10.3555C12.0962 10.3555 11.7778 10.6738 11.7778 11.0666C11.7778 11.4593 12.0962 11.7777 12.4889 11.7777Z" fill="#292929"/>
|
||||
<path d="M12.4889 14.6214C12.8817 14.6214 13.2001 14.3031 13.2001 13.9103C13.2001 13.5176 12.8817 13.1992 12.4889 13.1992C12.0962 13.1992 11.7778 13.5176 11.7778 13.9103C11.7778 14.3031 12.0962 14.6214 12.4889 14.6214Z" fill="#292929"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.2889 6.08854V15.333C17.2889 16.0405 17.008 16.7182 16.5081 17.2189C16.0075 17.7188 15.3298 17.9997 14.6222 17.9997H4.66667C3.95911 17.9997 3.28142 17.7188 2.7808 17.2189C2.28089 16.7182 2 16.0405 2 15.333V6.08854C2 5.38099 2.28089 4.7033 2.7808 4.20268C3.28142 3.70276 3.95911 3.42188 4.66667 3.42188H14.6222C15.3298 3.42188 16.0075 3.70276 16.5081 4.20268C17.008 4.7033 17.2889 5.38099 17.2889 6.08854ZM16.2222 6.08854C16.2222 5.66401 16.0537 5.25725 15.7536 4.95716C15.4535 4.65707 15.0468 4.48854 14.6222 4.48854H4.66667C4.24213 4.48854 3.83538 4.65707 3.53529 4.95716C3.2352 5.25725 3.06667 5.66401 3.06667 6.08854V15.333C3.06667 15.7575 3.2352 16.1643 3.53529 16.4644C3.83538 16.7645 4.24213 16.933 4.66667 16.933H14.6222C15.0468 16.933 15.4535 16.7645 15.7536 16.4644C16.0537 16.1643 16.2222 15.7575 16.2222 15.333V6.08854Z" fill="#292929"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.7556 7.33398C17.05 7.33398 17.2889 7.57292 17.2889 7.86732C17.2889 8.16172 17.05 8.40065 16.7556 8.40065H2.53333C2.23893 8.40065 2 8.16172 2 7.86732C2 7.57292 2.23893 7.33398 2.53333 7.33398H16.7556Z" fill="#292929"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9556 2.53333C11.9556 2.23893 12.1945 2 12.4889 2C12.7833 2 13.0222 2.23893 13.0222 2.53333V5.37778C13.0222 5.67218 12.7833 5.91111 12.4889 5.91111C12.1945 5.91111 11.9556 5.67218 11.9556 5.37778V2.53333Z" fill="#292929"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.2666 2.53333C6.2666 2.23893 6.50553 2 6.79993 2C7.09433 2 7.33327 2.23893 7.33327 2.53333V5.37778C7.33327 5.67218 7.09433 5.91111 6.79993 5.91111C6.50553 5.91111 6.2666 5.67218 6.2666 5.37778V2.53333Z" fill="#292929"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
@ -0,0 +1,3 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.3179 5.5264V3.06667H16.1781C16.4731 3.06667 16.7115 2.82827 16.7115 2.53333C16.7115 2.2384 16.4731 2 16.1781 2H14.7845H5.92693H4.53333C4.2384 2 4 2.2384 4 2.53333C4 2.82827 4.2384 3.06667 4.53333 3.06667H5.3936V5.5264C5.3936 7.02453 6.2144 8.39307 7.536 9.09813L9.224 10L7.536 10.9013C6.2144 11.6064 5.3936 12.9755 5.3936 14.4731V16.9333H4.53333C4.2384 16.9333 4 17.1717 4 17.4667C4 17.7616 4.2384 18 4.53333 18H5.92693H14.784H16.1776C16.4725 18 16.7109 17.7616 16.7109 17.4667C16.7109 17.1717 16.4725 16.9333 16.1776 16.9333H15.3173V14.4736C15.3173 12.9755 14.4965 11.6069 13.1749 10.9019L11.4875 10L13.1755 9.09867C14.4971 8.39307 15.3179 7.02453 15.3179 5.5264ZM14.2512 14.4736V16.9333H6.46027V14.4736C6.46027 13.3707 7.06507 12.3621 8.03787 11.8421L10.3557 10.6048L12.6736 11.8421C13.6464 12.3621 14.2512 13.3701 14.2512 14.4736ZM10.3557 9.3952L8.03787 8.15787C7.06507 7.63787 6.46027 6.62987 6.46027 5.5264V3.06667H14.2507V5.5264C14.2507 6.62933 13.6459 7.63787 12.6731 8.15787L10.3557 9.3952Z" fill="#292929"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,4 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.0909 16.3636H4.90909C4.1378 16.3628 3.39834 16.0561 2.85296 15.5107C2.30758 14.9653 2.00082 14.2258 2 13.4545V6.90909C2.00082 6.1378 2.30758 5.39834 2.85296 4.85296C3.39834 4.30758 4.1378 4.00082 4.90909 4H15.0909C15.8622 4.00082 16.6017 4.30758 17.147 4.85296C17.6924 5.39834 17.9992 6.1378 18 6.90909V13.4545C17.9992 14.2258 17.6924 14.9653 17.147 15.5107C16.6017 16.0561 15.8622 16.3628 15.0909 16.3636ZM4.90909 5.45455C4.52346 5.45499 4.15374 5.60837 3.88106 5.88106C3.60837 6.15374 3.45499 6.52346 3.45455 6.90909V13.4545C3.45499 13.8402 3.60837 14.2099 3.88106 14.4826C4.15374 14.7553 4.52346 14.9086 4.90909 14.9091H15.0909C15.4765 14.9086 15.8463 14.7553 16.1189 14.4826C16.3916 14.2099 16.545 13.8402 16.5455 13.4545V6.90909C16.545 6.52346 16.3916 6.15374 16.1189 5.88106C15.8463 5.60837 15.4765 5.45499 15.0909 5.45455H4.90909Z" fill="#292929"/>
|
||||
<path d="M10.0001 11.2233C9.19113 11.2236 8.40526 10.9537 7.76712 10.4566L3.00785 6.75487C2.85556 6.63639 2.75657 6.46227 2.73266 6.2708C2.70875 6.07934 2.76188 5.88621 2.88036 5.73392C2.99885 5.58163 3.17297 5.48264 3.36444 5.45873C3.5559 5.43483 3.74902 5.48796 3.90132 5.60644L8.66055 9.30814C9.04328 9.60657 9.51471 9.76863 10 9.76863C10.4854 9.76863 10.9568 9.60657 11.3395 9.30814L16.0988 5.60644C16.251 5.48796 16.4442 5.43483 16.6356 5.45873C16.8271 5.48264 17.0012 5.58163 17.1197 5.73392C17.2382 5.88621 17.2913 6.07934 17.2674 6.2708C17.2435 6.46227 17.1445 6.63639 16.9922 6.75487L12.233 10.4566C11.5948 10.9536 10.809 11.2234 10.0001 11.2233Z" fill="#292929"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
@ -0,0 +1,11 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 4C3.7775 4 3.55999 4.06598 3.37498 4.1896C3.18998 4.31321 3.04578 4.48891 2.96064 4.69448C2.87549 4.90005 2.85321 5.12625 2.89662 5.34448C2.94003 5.56271 3.04717 5.76316 3.20451 5.9205C3.36184 6.07783 3.56229 6.18497 3.78052 6.22838C3.99875 6.27179 4.22495 6.24951 4.43052 6.16436C4.63609 6.07922 4.81179 5.93502 4.9354 5.75002C5.05902 5.56501 5.125 5.3475 5.125 5.125C5.125 4.82663 5.00647 4.54048 4.7955 4.3295C4.58452 4.11853 4.29837 4 4 4ZM4 5.75C3.87639 5.75 3.75555 5.71334 3.65277 5.64467C3.54999 5.57599 3.46988 5.47838 3.42258 5.36418C3.37527 5.24997 3.36289 5.12431 3.38701 5.00307C3.41113 4.88183 3.47065 4.77047 3.55806 4.68306C3.64547 4.59565 3.75683 4.53612 3.87807 4.51201C3.99931 4.48789 4.12497 4.50027 4.23918 4.54758C4.35338 4.59488 4.45099 4.67499 4.51967 4.77777C4.58834 4.88055 4.625 5.00139 4.625 5.125C4.62481 5.2907 4.55891 5.44957 4.44174 5.56674C4.32457 5.68391 4.1657 5.74981 4 5.75Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M16.625 4.625H8.625C8.34888 4.625 8.125 4.40113 8.125 4.125C8.125 3.84888 8.34888 3.625 8.625 3.625H16.625C16.9011 3.625 17.125 3.84888 17.125 4.125C17.125 4.40113 16.9011 4.625 16.625 4.625Z" fill="#292929"/>
|
||||
<path d="M13.875 6.5H8.625C8.34887 6.5 8.125 6.27613 8.125 6C8.125 5.72387 8.34887 5.5 8.625 5.5H13.875C14.1511 5.5 14.375 5.72387 14.375 6C14.375 6.27613 14.1511 6.5 13.875 6.5Z" fill="#292929"/>
|
||||
<path d="M4 8.875C3.7775 8.875 3.55999 8.94098 3.37498 9.0646C3.18998 9.18821 3.04578 9.36391 2.96064 9.56948C2.87549 9.77505 2.85321 10.0012 2.89662 10.2195C2.94003 10.4377 3.04717 10.6382 3.20451 10.7955C3.36184 10.9528 3.56229 11.06 3.78052 11.1034C3.99875 11.1468 4.22495 11.1245 4.43052 11.0394C4.63609 10.9542 4.81179 10.81 4.9354 10.625C5.05902 10.44 5.125 10.2225 5.125 10C5.125 9.70163 5.00647 9.41548 4.7955 9.2045C4.58452 8.99353 4.29837 8.875 4 8.875ZM4 10.625C3.87639 10.625 3.75555 10.5883 3.65277 10.5197C3.54999 10.451 3.46988 10.3534 3.42258 10.2392C3.37527 10.125 3.36289 9.99931 3.38701 9.87807C3.41113 9.75683 3.47065 9.64547 3.55806 9.55806C3.64547 9.47065 3.75683 9.41112 3.87807 9.38701C3.99931 9.36289 4.12497 9.37527 4.23918 9.42258C4.35338 9.46988 4.45099 9.54999 4.51967 9.65277C4.58834 9.75555 4.625 9.87639 4.625 10C4.62481 10.1657 4.55891 10.3246 4.44174 10.4417C4.32457 10.5589 4.1657 10.6248 4 10.625Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M16.625 9.5H8.625C8.34888 9.5 8.125 9.27613 8.125 9C8.125 8.72388 8.34888 8.5 8.625 8.5H16.625C16.9011 8.5 17.125 8.72388 17.125 9C17.125 9.27613 16.9011 9.5 16.625 9.5Z" fill="#292929"/>
|
||||
<path d="M13.875 11.375H8.625C8.34887 11.375 8.125 11.1511 8.125 10.875C8.125 10.5989 8.34887 10.375 8.625 10.375H13.875C14.1511 10.375 14.375 10.5989 14.375 10.875C14.375 11.1511 14.1511 11.375 13.875 11.375Z" fill="#292929"/>
|
||||
<path d="M4 13.625C3.7775 13.625 3.55999 13.691 3.37498 13.8146C3.18998 13.9382 3.04578 14.1139 2.96064 14.3195C2.87549 14.525 2.85321 14.7512 2.89662 14.9695C2.94003 15.1877 3.04717 15.3882 3.20451 15.5455C3.36184 15.7028 3.56229 15.81 3.78052 15.8534C3.99875 15.8968 4.22495 15.8745 4.43052 15.7894C4.63609 15.7042 4.81179 15.56 4.9354 15.375C5.05902 15.19 5.125 14.9725 5.125 14.75C5.125 14.4516 5.00647 14.1655 4.7955 13.9545C4.58452 13.7435 4.29837 13.625 4 13.625ZM4 15.375C3.87639 15.375 3.75555 15.3383 3.65277 15.2697C3.54999 15.201 3.46988 15.1034 3.42258 14.9892C3.37527 14.875 3.36289 14.7493 3.38701 14.6281C3.41113 14.5068 3.47065 14.3955 3.55806 14.3081C3.64547 14.2207 3.75683 14.1611 3.87807 14.137C3.99931 14.1129 4.12497 14.1253 4.23918 14.1726C4.35338 14.2199 4.45099 14.3 4.51967 14.4028C4.58834 14.5055 4.625 14.6264 4.625 14.75C4.62481 14.9157 4.55891 15.0746 4.44174 15.1917C4.32457 15.3089 4.1657 15.3748 4 15.375Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M16.625 14.375H8.625C8.34887 14.375 8.125 14.1511 8.125 13.875C8.125 13.5989 8.34887 13.375 8.625 13.375H16.625C16.9011 13.375 17.125 13.5989 17.125 13.875C17.125 14.1511 16.9011 14.375 16.625 14.375Z" fill="#292929"/>
|
||||
<path d="M13.875 16.375H8.625C8.34887 16.375 8.125 16.1511 8.125 15.875C8.125 15.5989 8.34887 15.375 8.625 15.375H13.875C14.1511 15.375 14.375 15.5989 14.375 15.875C14.375 16.1511 14.1511 16.375 13.875 16.375Z" fill="#292929"/>
|
||||
</svg>
|
After Width: | Height: | Size: 4.3 KiB |
@ -0,0 +1,19 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10 4.25C10.2225 4.25 10.44 4.18402 10.625 4.0604C10.81 3.93679 10.9542 3.76109 11.0394 3.55552C11.1245 3.34995 11.1468 3.12375 11.1034 2.90552C11.06 2.6873 10.9528 2.48684 10.7955 2.32951C10.6382 2.17217 10.4377 2.06503 10.2195 2.02162C10.0012 1.97821 9.77505 2.00049 9.56948 2.08564C9.36391 2.17078 9.18821 2.31498 9.0646 2.49998C8.94098 2.68499 8.875 2.9025 8.875 3.125C8.875 3.42337 8.99353 3.70952 9.2045 3.9205C9.41548 4.13147 9.70163 4.25 10 4.25ZM10 2.5C10.1236 2.5 10.2445 2.53666 10.3472 2.60533C10.45 2.67401 10.5301 2.77162 10.5774 2.88582C10.6247 3.00003 10.6371 3.12569 10.613 3.24693C10.5889 3.36817 10.5294 3.47953 10.4419 3.56694C10.3545 3.65435 10.2432 3.71388 10.1219 3.73799C10.0007 3.76211 9.87503 3.74973 9.76082 3.70243C9.64662 3.65512 9.54901 3.57501 9.48033 3.47223C9.41166 3.36945 9.375 3.24861 9.375 3.125C9.37519 2.9593 9.44109 2.80043 9.55826 2.68327C9.67543 2.5661 9.8343 2.50019 10 2.5Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M16.875 8.875C16.6525 8.875 16.435 8.94098 16.25 9.0646C16.065 9.18821 15.9208 9.36391 15.8356 9.56948C15.7505 9.77505 15.7282 10.0012 15.7716 10.2195C15.815 10.4377 15.9222 10.6382 16.0795 10.7955C16.2368 10.9528 16.4373 11.06 16.6555 11.1034C16.8738 11.1468 17.1 11.1245 17.3055 11.0394C17.5111 10.9542 17.6868 10.81 17.8104 10.625C17.934 10.44 18 10.2225 18 10C18 9.70163 17.8815 9.41548 17.6705 9.2045C17.4595 8.99353 17.1734 8.875 16.875 8.875ZM16.875 10.625C16.7514 10.625 16.6305 10.5883 16.5278 10.5197C16.425 10.451 16.3449 10.3534 16.2976 10.2392C16.2503 10.125 16.2379 9.99931 16.262 9.87807C16.2861 9.75683 16.3457 9.64547 16.4331 9.55806C16.5205 9.47065 16.6318 9.41112 16.7531 9.38701C16.8743 9.36289 17 9.37527 17.1142 9.42258C17.2284 9.46988 17.326 9.54999 17.3947 9.65277C17.4633 9.75555 17.5 9.87639 17.5 10C17.4998 10.1657 17.4339 10.3246 17.3167 10.4417C17.1996 10.5589 17.0407 10.6248 16.875 10.625Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M3.125 8.875C2.9025 8.875 2.68499 8.94098 2.49998 9.0646C2.31498 9.18821 2.17078 9.36391 2.08564 9.56948C2.00049 9.77505 1.97821 10.0012 2.02162 10.2195C2.06503 10.4377 2.17217 10.6382 2.32951 10.7955C2.48684 10.9528 2.6873 11.06 2.90552 11.1034C3.12375 11.1468 3.34995 11.1245 3.55552 11.0394C3.76109 10.9542 3.93679 10.81 4.0604 10.625C4.18402 10.44 4.25 10.2225 4.25 10C4.25 9.70163 4.13147 9.41548 3.9205 9.2045C3.70952 8.99353 3.42337 8.875 3.125 8.875ZM3.125 10.625C3.00139 10.625 2.88055 10.5883 2.77777 10.5197C2.67499 10.451 2.59488 10.3534 2.54758 10.2392C2.50027 10.125 2.48789 9.99931 2.51201 9.87807C2.53613 9.75683 2.59565 9.64547 2.68306 9.55806C2.77047 9.47065 2.88183 9.41112 3.00307 9.38701C3.12431 9.36289 3.24997 9.37527 3.36418 9.42258C3.47838 9.46988 3.57599 9.54999 3.64467 9.65277C3.71334 9.75555 3.75 9.87639 3.75 10C3.74981 10.1657 3.68391 10.3246 3.56674 10.4417C3.44957 10.5589 3.2907 10.6248 3.125 10.625Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M5.13867 6.26367C5.36118 6.26367 5.57868 6.19769 5.76369 6.07408C5.94869 5.95046 6.09289 5.77476 6.17804 5.56919C6.26318 5.36362 6.28546 5.13742 6.24206 4.9192C6.19865 4.70097 6.0915 4.50051 5.93417 4.34318C5.77683 4.18584 5.57638 4.0787 5.35815 4.03529C5.13992 3.99188 4.91372 4.01416 4.70815 4.09931C4.50259 4.18446 4.32689 4.32865 4.20327 4.51366C4.07965 4.69866 4.01367 4.91617 4.01367 5.13867C4.01367 5.43704 4.1322 5.72319 4.34318 5.93417C4.55416 6.14515 4.8403 6.26367 5.13867 6.26367ZM5.13867 4.51367C5.26229 4.51367 5.38312 4.55033 5.4859 4.619C5.58868 4.68768 5.66879 4.78529 5.7161 4.8995C5.7634 5.0137 5.77578 5.13937 5.75166 5.2606C5.72755 5.38184 5.66802 5.49321 5.58061 5.58061C5.49321 5.66802 5.38184 5.72755 5.2606 5.75166C5.13937 5.77578 5.0137 5.7634 4.89949 5.7161C4.78529 5.66879 4.68768 5.58868 4.619 5.4859C4.55033 5.38312 4.51367 5.26229 4.51367 5.13867C4.51386 4.97297 4.57977 4.81411 4.69694 4.69694C4.81411 4.57977 4.97297 4.51386 5.13867 4.51367Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M14.8613 6.26367C15.0838 6.26367 15.3013 6.19769 15.4863 6.07408C15.6713 5.95046 15.8155 5.77476 15.9007 5.56919C15.9858 5.36362 16.0081 5.13742 15.9647 4.9192C15.9213 4.70097 15.8142 4.50051 15.6568 4.34318C15.4995 4.18584 15.299 4.0787 15.0808 4.03529C14.8626 3.99188 14.6364 4.01416 14.4308 4.09931C14.2252 4.18446 14.0495 4.32865 13.9259 4.51366C13.8023 4.69866 13.7363 4.91617 13.7363 5.13867C13.7363 5.43704 13.8549 5.72319 14.0658 5.93417C14.2768 6.14515 14.563 6.26367 14.8613 6.26367ZM14.8613 4.51367C14.9849 4.51367 15.1058 4.55033 15.2086 4.619C15.3113 4.68768 15.3914 4.78529 15.4388 4.8995C15.4861 5.0137 15.4984 5.13937 15.4743 5.2606C15.4502 5.38184 15.3907 5.49321 15.3033 5.58061C15.2159 5.66802 15.1045 5.72755 14.9833 5.75166C14.862 5.77578 14.7364 5.7634 14.6222 5.7161C14.5079 5.66879 14.4103 5.58868 14.3417 5.4859C14.273 5.38312 14.2363 5.26229 14.2363 5.13867C14.2365 4.97297 14.3024 4.81411 14.4196 4.69694C14.5368 4.57977 14.6956 4.51386 14.8613 4.51367Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M10 15.75C9.7775 15.75 9.55999 15.816 9.37498 15.9396C9.18998 16.0632 9.04578 16.2389 8.96064 16.4445C8.87549 16.65 8.85321 16.8762 8.89662 17.0945C8.94003 17.3127 9.04717 17.5132 9.20451 17.6705C9.36184 17.8278 9.5623 17.935 9.78052 17.9784C9.99875 18.0218 10.225 17.9995 10.4305 17.9144C10.6361 17.8292 10.8118 17.685 10.9354 17.5C11.059 17.315 11.125 17.0975 11.125 16.875C11.125 16.5766 11.0065 16.2905 10.7955 16.0795C10.5845 15.8685 10.2984 15.75 10 15.75ZM10 17.5C9.87639 17.5 9.75555 17.4633 9.65277 17.3947C9.54999 17.326 9.46988 17.2284 9.42258 17.1142C9.37527 17 9.36289 16.8743 9.38701 16.7531C9.41113 16.6318 9.47065 16.5205 9.55806 16.4331C9.64547 16.3456 9.75683 16.2861 9.87807 16.262C9.99931 16.2379 10.125 16.2503 10.2392 16.2976C10.3534 16.3449 10.451 16.425 10.5197 16.5278C10.5883 16.6305 10.625 16.7514 10.625 16.875C10.6248 17.0407 10.5589 17.1996 10.4417 17.3167C10.3246 17.4339 10.1657 17.4998 10 17.5Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M5.13867 13.7363C4.91617 13.7363 4.69866 13.8023 4.51366 13.9259C4.32865 14.0495 4.18446 14.2252 4.09931 14.4308C4.01416 14.6364 3.99188 14.8626 4.03529 15.0808C4.0787 15.299 4.18584 15.4995 4.34318 15.6568C4.50051 15.8142 4.70097 15.9213 4.9192 15.9647C5.13742 16.0081 5.36362 15.9858 5.56919 15.9007C5.77476 15.8155 5.95046 15.6713 6.07408 15.4863C6.19769 15.3013 6.26367 15.0838 6.26367 14.8613C6.26367 14.563 6.14515 14.2768 5.93417 14.0658C5.72319 13.8549 5.43704 13.7363 5.13867 13.7363ZM5.13867 15.4863C5.01506 15.4863 4.89422 15.4497 4.79144 15.381C4.68866 15.3123 4.60855 15.2147 4.56125 15.1005C4.51394 14.9863 4.50157 14.8606 4.52568 14.7394C4.5498 14.6182 4.60932 14.5068 4.69673 14.4194C4.78414 14.332 4.8955 14.2725 5.01674 14.2483C5.13798 14.2242 5.26365 14.2366 5.37785 14.2839C5.49205 14.3312 5.58966 14.4113 5.65834 14.5141C5.72702 14.6169 5.76367 14.7377 5.76367 14.8613C5.76349 15.027 5.69758 15.1859 5.58041 15.3031C5.46324 15.4202 5.30438 15.4861 5.13867 15.4863Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M14.8613 13.7363C14.6388 13.7363 14.4213 13.8023 14.2363 13.9259C14.0513 14.0495 13.9071 14.2252 13.822 14.4308C13.7368 14.6364 13.7145 14.8626 13.7579 15.0808C13.8014 15.299 13.9085 15.4995 14.0658 15.6568C14.2232 15.8142 14.4236 15.9213 14.6419 15.9647C14.8601 16.0081 15.0863 15.9858 15.2918 15.9007C15.4974 15.8155 15.6731 15.6713 15.7967 15.4863C15.9203 15.3013 15.9863 15.0838 15.9863 14.8613C15.9863 14.563 15.8678 14.2768 15.6568 14.0658C15.4458 13.8549 15.1597 13.7363 14.8613 13.7363ZM14.8613 15.4863C14.7377 15.4863 14.6169 15.4497 14.5141 15.381C14.4113 15.3123 14.3312 15.2147 14.2839 15.1005C14.2366 14.9863 14.2242 14.8606 14.2483 14.7394C14.2725 14.6182 14.332 14.5068 14.4194 14.4194C14.5068 14.332 14.6182 14.2725 14.7394 14.2483C14.8606 14.2242 14.9863 14.2366 15.1005 14.2839C15.2147 14.3312 15.3123 14.4113 15.381 14.5141C15.4497 14.6169 15.4863 14.7377 15.4863 14.8613C15.4861 15.027 15.4202 15.1859 15.3031 15.3031C15.1859 15.4202 15.027 15.4861 14.8613 15.4863Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M6.56825 7.39937C6.58521 7.463 6.62606 7.51764 6.68228 7.55193C6.73851 7.58621 6.80578 7.5975 6.87012 7.58345C6.91375 7.57277 6.95367 7.55048 6.98566 7.51895C7.01764 7.48741 7.0405 7.44781 7.0518 7.40434L7.97675 8.32926C8.08317 8.20053 8.20153 8.08216 8.33026 7.97573L7.40532 7.05084C7.45911 7.0368 7.50667 7.00518 7.54042 6.96102C7.57418 6.91685 7.59221 6.86266 7.59163 6.80708C7.59106 6.75149 7.57192 6.69769 7.53726 6.65422C7.5026 6.61076 7.4544 6.58014 7.40033 6.56721L6.70044 6.39766C6.65879 6.38756 6.61525 6.38835 6.57399 6.39994C6.53273 6.41152 6.49514 6.43352 6.46483 6.46382C6.43453 6.49412 6.41252 6.53171 6.40093 6.57296C6.38933 6.61422 6.38854 6.65777 6.39862 6.69942L6.56825 7.39937Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M13.4319 12.5998C13.419 12.5457 13.3884 12.4976 13.3449 12.4629C13.3015 12.4282 13.2477 12.4091 13.1921 12.4085C13.1365 12.408 13.0823 12.426 13.0382 12.4597C12.994 12.4935 12.9624 12.5411 12.9484 12.5948L12.0234 11.6699C11.917 11.7986 11.7986 11.917 11.6699 12.0234L12.5947 12.9482C12.541 12.9623 12.4934 12.994 12.4597 13.0381C12.426 13.0823 12.408 13.1365 12.4086 13.1921C12.4092 13.2477 12.4283 13.3015 12.463 13.3449C12.4976 13.3884 12.5458 13.419 12.5999 13.432C12.5999 13.432 13.2992 13.6014 13.2997 13.6015C13.3414 13.6111 13.3848 13.61 13.426 13.5984C13.4671 13.5869 13.5047 13.5652 13.5353 13.5354C13.5656 13.5051 13.5877 13.4675 13.5993 13.4262C13.6109 13.385 13.6116 13.3414 13.6016 13.2998L13.4319 12.5998Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M13.9217 10.5054C13.9571 10.561 14.0127 10.6007 14.0768 10.6162C14.1408 10.6317 14.2084 10.6219 14.2653 10.5886L14.8802 10.2136C14.9167 10.1913 14.947 10.16 14.968 10.1226C14.9889 10.0853 15 10.0431 15 10.0003C15 9.95741 14.9889 9.91527 14.968 9.87791C14.947 9.84054 14.9167 9.8092 14.8802 9.78689L14.2653 9.41189C14.218 9.38278 14.1623 9.37035 14.107 9.37656C14.0518 9.38278 14.0002 9.40729 13.9605 9.44619C13.9208 9.48509 13.8952 9.53615 13.8879 9.59125C13.8806 9.64635 13.8919 9.70233 13.92 9.75027H12.6123C12.6201 9.83264 12.625 9.91589 12.625 10.0003C12.625 10.0846 12.6201 10.1679 12.6123 10.2503H13.92C13.8972 10.289 13.8853 10.3332 13.8857 10.3781C13.886 10.423 13.8984 10.467 13.9217 10.5054Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M9.99977 7.375C10.0842 7.375 10.1674 7.37983 10.2498 7.38766V6.08065C10.2978 6.10878 10.3538 6.12005 10.409 6.11266C10.4641 6.10527 10.5152 6.07966 10.5541 6.03989C10.593 6.00012 10.6175 5.94848 10.6237 5.89319C10.6299 5.83789 10.6174 5.78212 10.5882 5.73474L10.2132 5.11987C10.1909 5.08326 10.1596 5.05301 10.1222 5.03202C10.0848 5.01103 10.0426 5 9.99978 5C9.95691 5 9.91476 5.01103 9.87738 5.03202C9.84 5.05301 9.80865 5.08326 9.78634 5.11987L9.41134 5.73474C9.38226 5.7821 9.36985 5.83783 9.37608 5.89305C9.38232 5.94828 9.40683 5.99984 9.44573 6.03953C9.48464 6.07922 9.53569 6.10477 9.59078 6.11211C9.64587 6.11945 9.70183 6.10816 9.74977 6.08004V7.38766C9.83215 7.37983 9.91538 7.375 9.99977 7.375Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M12.0234 8.32925L12.9484 7.40433C12.9597 7.4478 12.9825 7.4874 13.0145 7.51894C13.0465 7.55047 13.0864 7.57276 13.1301 7.58344C13.1945 7.59842 13.2622 7.58752 13.3186 7.5531C13.3751 7.51867 13.4158 7.46347 13.4319 7.39936L13.6016 6.69941C13.6116 6.65776 13.6108 6.61422 13.5993 6.57296C13.5877 6.5317 13.5656 6.49412 13.5353 6.46382C13.505 6.43352 13.4675 6.41152 13.4262 6.39994C13.3849 6.38835 13.3414 6.38756 13.2997 6.39765L12.5998 6.56721C12.5458 6.58016 12.4976 6.61079 12.463 6.65425C12.4283 6.69771 12.4092 6.7515 12.4086 6.80708C12.408 6.86267 12.426 6.91685 12.4597 6.96103C12.4934 7.00521 12.541 7.03686 12.5947 7.05094L11.6699 7.97573C11.7986 8.08215 11.917 8.20052 12.0234 8.32925Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M10 7.875C9.57972 7.875 9.16887 7.99963 8.81941 8.23313C8.46996 8.46663 8.19759 8.7985 8.03676 9.1868C7.87592 9.57509 7.83384 10.0024 7.91583 10.4146C7.99783 10.8268 8.20021 11.2054 8.4974 11.5026C8.79459 11.7998 9.17322 12.0022 9.58543 12.0842C9.99764 12.1662 10.4249 12.1241 10.8132 11.9632C11.2015 11.8024 11.5334 11.53 11.7669 11.1806C12.0004 10.8311 12.125 10.4203 12.125 10C12.125 9.43641 11.9011 8.89591 11.5026 8.4974C11.1041 8.09888 10.5636 7.875 10 7.875ZM10 11.625C9.67861 11.625 9.36443 11.5297 9.0972 11.3511C8.82997 11.1726 8.62169 10.9188 8.4987 10.6219C8.3757 10.3249 8.34352 9.9982 8.40622 9.68298C8.46893 9.36776 8.62369 9.07821 8.85095 8.85095C9.07821 8.62369 9.36776 8.46892 9.68298 8.40622C9.9982 8.34352 10.3249 8.3757 10.6219 8.4987C10.9188 8.62169 11.1726 8.82997 11.3511 9.0972C11.5297 9.36443 11.625 9.67861 11.625 10C11.6245 10.4308 11.4532 10.8439 11.1485 11.1485C10.8439 11.4532 10.4308 11.6245 10 11.625Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M6.07998 9.75026C6.10811 9.70231 6.1194 9.64634 6.11206 9.59125C6.10471 9.53615 6.07916 9.48509 6.03945 9.44619C5.99975 9.40729 5.94818 9.38278 5.89294 9.37656C5.83771 9.37035 5.78198 9.38278 5.73462 9.41188L5.11981 9.78688C5.08322 9.80919 5.05298 9.84054 5.032 9.8779C5.01102 9.91527 5 9.95741 5 10.0003C5 10.0431 5.01102 10.0853 5.032 10.1226C5.05298 10.16 5.08322 10.1913 5.11981 10.2136L5.73462 10.5886C5.79148 10.6222 5.85916 10.6322 5.92331 10.6167C5.98747 10.6012 6.04304 10.5612 6.07824 10.5054C6.10154 10.467 6.11401 10.423 6.11431 10.3781C6.11462 10.3331 6.10276 10.289 6.07998 10.2503H7.38766C7.37983 10.1679 7.37499 10.0846 7.37499 10.0003C7.37499 9.91588 7.37983 9.83262 7.38766 9.75026H6.07998Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M7.97675 11.6699L7.0518 12.5948C7.03776 12.5411 7.00616 12.4935 6.962 12.4597C6.91784 12.426 6.86366 12.408 6.80808 12.4085C6.7525 12.4091 6.6987 12.4282 6.65524 12.4629C6.61179 12.4976 6.58116 12.5457 6.56824 12.5998L6.39862 13.2998C6.38854 13.3414 6.38933 13.385 6.40093 13.4262C6.41252 13.4675 6.43453 13.5051 6.46484 13.5354C6.49544 13.5652 6.53304 13.5869 6.57421 13.5985C6.61537 13.61 6.65877 13.6111 6.70044 13.6015L7.40033 13.432C7.4544 13.419 7.50258 13.3884 7.53724 13.3449C7.5719 13.3015 7.59104 13.2477 7.59162 13.1921C7.5922 13.1365 7.57418 13.0823 7.54044 13.0382C7.5067 12.994 7.45916 12.9624 7.40538 12.9483L8.33025 12.0234C8.20153 11.917 8.08317 11.7986 7.97675 11.6699Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
<path d="M9.99975 12.6259C9.91536 12.6259 9.83212 12.6211 9.74975 12.6133V13.9208C9.7018 13.8927 9.64583 13.8815 9.59075 13.8888C9.53567 13.8962 9.48462 13.9217 9.44573 13.9614C9.40684 14.0011 9.38232 14.0527 9.37609 14.1079C9.36985 14.1631 9.38225 14.2188 9.41131 14.2662L9.78631 14.8811C9.80862 14.9177 9.83997 14.9479 9.87735 14.9689C9.91472 14.9899 9.95687 15.0009 9.99974 15.0009C10.0426 15.0009 10.0848 14.9899 10.1221 14.9689C10.1595 14.9479 10.1909 14.9177 10.2132 14.8811L10.5882 14.2662C10.6172 14.2188 10.6296 14.1631 10.6234 14.1079C10.6172 14.0527 10.5927 14.0011 10.5538 13.9614C10.5149 13.9217 10.4638 13.8962 10.4087 13.8888C10.3537 13.8814 10.2977 13.8927 10.2497 13.9208V12.6133C10.1674 12.6211 10.0841 12.6259 9.99975 12.6259Z" fill="#292929" stroke="#292929" stroke-width="0.3"/>
|
||||
</svg>
|
After Width: | Height: | Size: 15 KiB |
@ -0,0 +1,8 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.41422 9.5H3.08578C2.48706 9.5 2 9.01294 2 8.41422V5.08578C2 4.48706 2.48706 4 3.08578 4H6.41422C7.01294 4 7.5 4.48706 7.5 5.08578V8.41422C7.5 9.01294 7.01294 9.5 6.41422 9.5ZM3.08578 5C3.03847 5 3 5.03847 3 5.08578V8.41422C3 8.46153 3.03847 8.5 3.08578 8.5H6.41422C6.46153 8.5 6.5 8.46153 6.5 8.41422V5.08578C6.5 5.03847 6.46153 5 6.41422 5H3.08578Z" fill="#292929"/>
|
||||
<path d="M17.5 6.5H9.5C9.22387 6.5 9 6.27613 9 6C9 5.72387 9.22387 5.5 9.5 5.5H17.5C17.7761 5.5 18 5.72387 18 6C18 6.27613 17.7761 6.5 17.5 6.5Z" fill="#292929"/>
|
||||
<path d="M14.75 8.375H9.5C9.22387 8.375 9 8.15113 9 7.875C9 7.59887 9.22387 7.375 9.5 7.375H14.75C15.0261 7.375 15.25 7.59887 15.25 7.875C15.25 8.15113 15.0261 8.375 14.75 8.375Z" fill="#292929"/>
|
||||
<path d="M6.41422 16.75H3.08578C2.48706 16.75 2 16.2629 2 15.6642V12.3358C2 11.7371 2.48706 11.25 3.08578 11.25H6.41422C7.01294 11.25 7.5 11.7371 7.5 12.3358V15.6642C7.5 16.2629 7.01294 16.75 6.41422 16.75ZM3.08578 12.25C3.03847 12.25 3 12.2885 3 12.3358V15.6642C3 15.7115 3.03847 15.75 3.08578 15.75H6.41422C6.46153 15.75 6.5 15.7115 6.5 15.6642V12.3358C6.5 12.2885 6.46153 12.25 6.41422 12.25H3.08578Z" fill="#292929"/>
|
||||
<path d="M17.5 13.625H9.5C9.22387 13.625 9 13.4011 9 13.125C9 12.8489 9.22387 12.625 9.5 12.625H17.5C17.7761 12.625 18 12.8489 18 13.125C18 13.4011 17.7761 13.625 17.5 13.625Z" fill="#292929"/>
|
||||
<path d="M14.75 15.625H9.5C9.22387 15.625 9 15.4011 9 15.125C9 14.8489 9.22387 14.625 9.5 14.625H14.75C15.0261 14.625 15.25 14.8489 15.25 15.125C15.25 15.4011 15.0261 15.625 14.75 15.625Z" fill="#292929"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
@ -0,0 +1,10 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.5882 4H3.41176C2.63207 4 2 4.63207 2 5.41176V14.8235C2 15.6032 2.63207 16.2353 3.41176 16.2353H16.5882C17.3679 16.2353 18 15.6032 18 14.8235V5.41176C18 4.63207 17.3679 4 16.5882 4Z" fill="white" stroke="#292929"/>
|
||||
<mask id="path-2-inside-1_10935_271490" fill="white">
|
||||
<path d="M7.15338 12.4995V9.57216C6.60865 9.99032 6.24192 10.1995 6.05319 10.1995C5.96312 10.1995 5.8827 10.1641 5.81192 10.0933C5.7433 10.0203 5.70898 9.93677 5.70898 9.84237C5.70898 9.73301 5.7433 9.65254 5.81192 9.60105C5.88055 9.54967 6.00172 9.48312 6.17543 9.40162C6.43493 9.27945 6.64189 9.1507 6.7963 9.01564C6.95285 8.88049 7.09119 8.72934 7.21128 8.56199C7.33138 8.39475 7.40965 8.29178 7.44611 8.2532C7.48258 8.21461 7.5512 8.19531 7.652 8.19531C7.76566 8.19531 7.85681 8.23927 7.92544 8.32717C7.99407 8.41517 8.02837 8.5363 8.02837 8.69075V12.374C8.02837 12.8051 7.88147 13.0206 7.58766 13.0206C7.45683 13.0206 7.35175 12.9767 7.2724 12.8888C7.19305 12.8009 7.15338 12.6711 7.15338 12.4995Z"/>
|
||||
</mask>
|
||||
<path d="M7.15338 12.4995V9.57216C6.60865 9.99032 6.24192 10.1995 6.05319 10.1995C5.96312 10.1995 5.8827 10.1641 5.81192 10.0933C5.7433 10.0203 5.70898 9.93677 5.70898 9.84237C5.70898 9.73301 5.7433 9.65254 5.81192 9.60105C5.88055 9.54967 6.00172 9.48312 6.17543 9.40162C6.43493 9.27945 6.64189 9.1507 6.7963 9.01564C6.95285 8.88049 7.09119 8.72934 7.21128 8.56199C7.33138 8.39475 7.40965 8.29178 7.44611 8.2532C7.48258 8.21461 7.5512 8.19531 7.652 8.19531C7.76566 8.19531 7.85681 8.23927 7.92544 8.32717C7.99407 8.41517 8.02837 8.5363 8.02837 8.69075V12.374C8.02837 12.8051 7.88147 13.0206 7.58766 13.0206C7.45683 13.0206 7.35175 12.9767 7.2724 12.8888C7.19305 12.8009 7.15338 12.6711 7.15338 12.4995Z" fill="#292929"/>
|
||||
<path d="M7.15338 9.57216H8.15338V7.54384L6.54446 8.77893L7.15338 9.57216ZM5.81192 10.0933L5.08357 10.7785L5.09403 10.7896L5.10481 10.8004L5.81192 10.0933ZM5.81192 9.60105L5.21255 8.80058L5.2118 8.80115L5.81192 9.60105ZM6.17543 9.40162L6.6002 10.3069L6.60136 10.3064L6.17543 9.40162ZM6.7963 9.01564L6.14281 8.25867L6.13793 8.26295L6.7963 9.01564ZM7.21128 8.56199L6.399 7.97873L6.39885 7.97894L7.21128 8.56199ZM7.92544 8.32717L8.71398 7.71219L8.71366 7.71178L7.92544 8.32717ZM8.15338 12.4995V9.57216H6.15338V12.4995H8.15338ZM6.54446 8.77893C6.28883 8.97516 6.1016 9.10142 5.97445 9.17391C5.94429 9.19111 5.92062 9.20349 5.90297 9.21208C5.89427 9.21631 5.88759 9.21935 5.88285 9.22142C5.87807 9.2235 5.87577 9.22437 5.87577 9.22437C5.87581 9.22436 5.87657 9.22407 5.87801 9.22358C5.87944 9.22309 5.88168 9.22234 5.88468 9.22142C5.89052 9.21963 5.90027 9.21685 5.91357 9.21387C5.93818 9.20835 5.98677 9.19945 6.05319 9.19945V11.1995C6.43379 11.1995 6.77464 11.0199 6.96511 10.9113C7.20469 10.7747 7.47319 10.5873 7.7623 10.3654L6.54446 8.77893ZM6.05319 9.19945C6.14326 9.19945 6.23813 9.21803 6.32808 9.25761C6.41601 9.2963 6.47884 9.34599 6.51903 9.38618L5.10481 10.8004C5.34026 11.0358 5.66723 11.1995 6.05319 11.1995V9.19945ZM6.54027 9.40808C6.58058 9.45093 6.62586 9.51339 6.65986 9.59626C6.6943 9.68019 6.70898 9.7652 6.70898 9.84237H4.70898C4.70898 10.2083 4.85236 10.5327 5.08357 10.7785L6.54027 9.40808ZM6.70898 9.84237C6.70898 9.88986 6.70176 9.98164 6.65454 10.0923C6.60421 10.2103 6.52114 10.3191 6.41204 10.401L5.2118 8.80115C4.82381 9.09223 4.70898 9.51373 4.70898 9.84237H6.70898ZM6.41129 10.4015C6.39248 10.4156 6.39444 10.4118 6.43536 10.3893C6.47202 10.3692 6.52579 10.3418 6.6002 10.3069L5.75066 8.49632C5.57134 8.58045 5.3694 8.68314 5.21255 8.80058L6.41129 10.4015ZM6.60136 10.3064C6.91468 10.1589 7.2088 9.98339 7.45467 9.76834L6.13793 8.26295C6.07497 8.31801 5.95519 8.40003 5.7495 8.49686L6.60136 10.3064ZM7.44977 9.77259C7.66556 9.58631 7.85735 9.37687 8.02372 9.14505L6.39885 7.97894C6.32503 8.0818 6.24015 8.17467 6.14283 8.25869L7.44977 9.77259ZM8.02356 9.14526C8.08101 9.06525 8.1247 9.00589 8.15606 8.96464C8.17174 8.94403 8.182 8.93102 8.18775 8.92393C8.19569 8.91413 8.18919 8.92282 8.17297 8.93999L6.71926 7.56641C6.62633 7.66475 6.50506 7.83102 6.399 7.97873L8.02356 9.14526ZM8.17297 8.93999C8.03131 9.08991 7.87774 9.14936 7.79559 9.17246C7.71381 9.19545 7.65855 9.19531 7.652 9.19531V7.19531C7.49803 7.19531 7.05627 7.20974 6.71926 7.56641L8.17297 8.93999ZM7.652 9.19531C7.57709 9.19531 7.47702 9.18002 7.37124 9.12902C7.26487 9.07772 7.18759 9.00709 7.13721 8.94256L8.71366 7.71178C8.45132 7.37576 8.06671 7.19531 7.652 7.19531V9.19531ZM7.13689 8.94215C7.02445 8.79797 7.02837 8.675 7.02837 8.69075H9.02837C9.02837 8.39761 8.96369 8.03237 8.71398 7.71219L7.13689 8.94215ZM7.02837 8.69075V12.374H9.02837V8.69075H7.02837ZM7.02837 12.374C7.02837 12.4282 7.02346 12.4451 7.02568 12.4354C7.02787 12.4257 7.04176 12.3693 7.09188 12.2958C7.14648 12.2157 7.23044 12.136 7.34115 12.0819C7.4473 12.03 7.53862 12.0206 7.58766 12.0206V14.0206C8.01649 14.0206 8.4589 13.8412 8.74451 13.4222C8.98328 13.0719 9.02837 12.672 9.02837 12.374H7.02837ZM7.58766 12.0206C7.63521 12.0206 7.71011 12.0289 7.79659 12.0651C7.88545 12.1023 7.95965 12.1577 8.01471 12.2187L6.5301 13.5588C6.82013 13.8801 7.20691 14.0206 7.58766 14.0206V12.0206ZM8.01471 12.2187C8.16243 12.3824 8.15338 12.5333 8.15338 12.4995H6.15338C6.15338 12.8089 6.22367 13.2194 6.5301 13.5588L8.01471 12.2187Z" fill="#292929" mask="url(#path-2-inside-1_10935_271490)"/>
|
||||
<path d="M13.0896 8.67556L13.7649 8.00034L14.4401 8.67556H13.0896Z" fill="#292929" stroke="#292929"/>
|
||||
<path d="M13.7649 12.2338L13.0896 11.5586H14.4401L13.7649 12.2338Z" fill="#292929" stroke="#292929"/>
|
||||
</svg>
|
After Width: | Height: | Size: 5.4 KiB |
@ -0,0 +1,8 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M9.375 8.125V11.875" stroke="#292929" stroke-linecap="round"/>
|
||||
<path d="M4.375 8.125V11.875" stroke="#292929" stroke-linecap="round"/>
|
||||
<path d="M13.125 3.125H6.875C4.11358 3.125 1.875 5.36358 1.875 8.125V11.875C1.875 14.6364 4.11358 16.875 6.875 16.875H13.125C15.8864 16.875 18.125 14.6364 18.125 11.875V8.125C18.125 5.36358 15.8864 3.125 13.125 3.125Z" stroke="#292929" stroke-linejoin="round"/>
|
||||
<path d="M13.75 8.125V11.5625" stroke="#292929" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M11.5 10.5L13.5 12H14L16 10.5" stroke="#292929" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5 8.5L6.6 11.5H7L9 8.5" stroke="#292929" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
After Width: | Height: | Size: 812 B |
@ -0,0 +1,13 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_10949_271911)">
|
||||
<path d="M14.5 15.4428C13.2385 16.4872 11.6403 17.0622 10 17.0622C8.11347 17.0622 6.34003 16.3275 5.00597 14.9937C3.67222 13.6597 2.93753 11.8862 2.93753 9.99969C2.93753 9.69531 2.95691 9.39 2.99566 9.09156C3.05191 8.65125 3.15034 8.21469 3.28847 7.79406C3.29206 7.78312 3.29591 7.77213 3.29956 7.76116C3.33481 7.76381 3.37034 7.76562 3.40625 7.76562C4.18156 7.76562 4.8125 7.13469 4.8125 6.35937C4.8125 5.58406 4.18156 4.95312 3.40625 4.95312C2.63094 4.95312 2 5.58406 2 6.35937C2 6.76034 2.16903 7.12244 2.43925 7.37888C2.42503 7.41981 2.41119 7.46075 2.39781 7.50159C2.24125 7.97878 2.12937 8.47378 2.06562 8.97222C2.02222 9.30937 2.00003 9.655 2.00003 9.99969C2.00003 12.1366 2.83222 14.1456 4.34316 15.6566C5.85409 17.1675 7.86316 17.9997 10 17.9997C11.8582 17.9997 13.6688 17.3481 15.0978 16.1647C15.2975 15.9997 15.3253 15.7044 15.16 15.505C14.995 15.3053 14.6997 15.2775 14.5 15.4428Z" fill="black"/>
|
||||
<path d="M17.5605 12.6208C17.5748 12.5799 17.5886 12.539 17.602 12.4981C17.7585 12.0209 17.8704 11.5259 17.9342 11.0275C17.9776 10.6903 17.9998 10.3447 17.9998 10C17.9998 7.86313 17.1676 5.85406 15.6567 4.34313C14.1457 2.83219 12.1367 2 9.99979 2C8.14167 2 6.33104 2.65156 4.90198 3.835C4.70229 4 4.67448 4.29531 4.83979 4.49469C5.00479 4.69438 5.3001 4.72219 5.49979 4.55687C6.76135 3.5125 8.35948 2.9375 9.99979 2.9375C11.8864 2.9375 13.6598 3.67219 14.9939 5.00594C16.3276 6.34 17.0623 8.11344 17.0623 10C17.0623 10.3044 17.0429 10.6097 17.0042 10.9081C16.9479 11.3484 16.8495 11.785 16.7114 12.2056C16.7078 12.2166 16.7039 12.2276 16.7003 12.2385C16.665 12.2359 16.6295 12.2341 16.5935 12.2341C15.8182 12.2341 15.1873 12.865 15.1873 13.6403C15.1873 14.4156 15.8182 15.0466 16.5935 15.0466C17.3689 15.0466 17.9998 14.4156 17.9998 13.6403C17.9998 13.2393 17.8308 12.8773 17.5605 12.6208Z" fill="black"/>
|
||||
<path d="M12.6612 13.2035C12.4023 13.2035 12.1924 12.9937 12.1924 12.7348V8.74167L11.8931 9.08874C11.724 9.28477 11.428 9.30664 11.2319 9.13755C11.0359 8.96845 11.014 8.67249 11.1831 8.47642L12.3062 7.17433C12.4341 7.02599 12.6408 6.97286 12.8245 7.04111C13.0081 7.10936 13.1299 7.28461 13.1299 7.48049V12.7348C13.1299 12.9937 12.92 13.2035 12.6612 13.2035Z" fill="black"/>
|
||||
<path d="M8.17032 13.2031C7.07403 13.2031 6.18213 12.3112 6.18213 11.215V8.78503C6.18213 7.68875 7.07403 6.79688 8.17032 6.79688C9.2666 6.79688 10.1585 7.68878 10.1585 8.78503V11.215C10.1585 12.3112 9.26657 13.2031 8.17032 13.2031ZM8.17032 7.73438C7.59097 7.73438 7.11963 8.20572 7.11963 8.78503V11.215C7.11963 11.7943 7.59097 12.2656 8.17032 12.2656C8.74966 12.2656 9.22097 11.7943 9.22097 11.215V8.78503C9.22097 8.20572 8.74963 7.73438 8.17032 7.73438Z" fill="black"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_10949_271911">
|
||||
<rect width="16" height="16" fill="white" transform="translate(2 2)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
@ -0,0 +1,5 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.6776 5.53223L13.1274 2H5.30924C4.76766 2 4.32275 2.41477 4.32275 2.95632V8.00794C4.32275 8.00697 4.35575 8 4.37769 8H4.80662V2.95632C4.80662 2.68597 5.03888 2.48387 5.30924 2.48387H12.9087L13.0647 2.63016V4.61703C13.0647 5.15635 13.5033 5.58065 14.0426 5.58065H16.0295L16.1615 5.73532V17.0112C16.1615 17.2816 15.9737 17.5161 15.7033 17.5161H5.30924C5.03888 17.5161 4.80662 17.2815 4.80662 17.0112V15.0645H4.37769C4.35575 15.0645 4.32275 15.0657 4.32275 15.0647V17.0112C4.32275 17.5528 4.76766 18 5.30924 18H15.7033C16.2449 18 16.6776 17.5528 16.6776 17.0112V5.53223ZM14.0426 5.09677C13.7722 5.09677 13.5486 4.88739 13.5486 4.61703V3.16877V3.15939L15.5002 5.09677H14.0426Z" fill="#333333"/>
|
||||
<path d="M8.7975 10.666C8.3765 10.666 8.16602 10.9694 8.16602 11.576C8.16602 12.1771 8.37508 12.4776 8.79324 12.4776C9.00585 12.4776 9.16353 12.4046 9.26634 12.2586C9.36911 12.1126 9.4205 11.8851 9.4205 11.576C9.4205 11.2656 9.3684 11.0364 9.26421 10.8882C9.16005 10.7401 9.00447 10.666 8.7975 10.666Z" fill="#333333"/>
|
||||
<path d="M13.6323 8.48242H3.98058C3.43903 8.48242 3 8.92145 3 9.463V13.5664C3 14.1079 3.43903 14.5469 3.98058 14.5469H13.6323C14.1739 14.5469 14.6129 14.1079 14.6129 13.5664V9.463C14.6129 8.92145 14.1739 8.48242 13.6323 8.48242ZM5.68813 11.0167C5.75119 11.0649 5.92236 11.1528 6.20161 11.2804C6.46952 11.4008 6.65555 11.5302 6.75974 11.6684C6.8639 11.8066 6.91603 11.9806 6.91603 12.1904C6.91603 12.3832 6.86713 12.5543 6.76932 12.7039C6.67152 12.8535 6.53045 12.9696 6.34619 13.0526C6.1619 13.1355 5.94571 13.177 5.69768 13.177C5.49068 13.177 5.31868 13.1624 5.17832 13.1334C5.038 13.1044 4.90319 13.0536 4.7419 12.9813V12.2329C4.90319 12.3151 5.06703 12.3793 5.24 12.4253C5.4129 12.4714 5.5709 12.4945 5.71548 12.4945C5.84019 12.4945 5.93123 12.4728 5.98939 12.4296C6.04748 12.3864 6.07636 12.3307 6.07636 12.2627C6.07636 12.2202 6.06458 12.1829 6.04119 12.151C6.01781 12.1192 5.98016 12.0869 5.92845 12.0543C5.87671 12.0217 5.73884 11.9551 5.51487 11.8545C5.31213 11.7623 5.1601 11.673 5.05877 11.5865C4.95742 11.5001 4.88229 11.4008 4.83339 11.2888C4.78448 11.1769 4.76003 11.0443 4.76003 10.8912C4.76003 10.6049 4.86423 10.3817 5.07258 10.2215C5.28094 10.0613 5.56726 9.9812 5.93158 9.9812C6.25336 9.9812 6.58148 10.0556 6.91603 10.2044L6.65874 10.8529C6.36813 10.7197 6.11723 10.6531 5.90606 10.6531C5.7969 10.6531 5.71752 10.6722 5.66794 10.7105C5.61829 10.7487 5.59352 10.7962 5.59352 10.8529C5.59352 10.914 5.62503 10.9685 5.68813 11.0167ZM9.34632 13.8695L8.80316 13.1809L8.80645 13.1812V13.1791L8.7989 13.177C8.31126 13.177 7.93471 13.0402 7.67461 12.7666C7.41448 12.4931 7.2831 12.0947 7.2831 11.5717C7.2831 11.0543 7.41174 10.6592 7.67045 10.3863C7.92913 10.1135 8.30481 9.977 8.79807 9.977C9.29274 9.977 9.66752 10.1124 9.92271 10.3831C10.1778 10.6539 10.3053 11.0515 10.3053 11.5759C10.3053 12.2805 10.0813 12.7529 9.63342 12.9981L10.3925 13.8695H9.34632ZM12.9032 13.1276H10.871V10.0308H11.7097V12.4502H12.9032V13.1276Z" fill="#333333"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
@ -0,0 +1,6 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="2.5" y="4.5" width="15" height="12" rx="1.5" stroke="black"/>
|
||||
<path d="M7.29977 11.7276C7.2965 11.7153 7.29261 11.7034 7.28809 11.6916L6.01547 7.7728C5.96296 7.61094 5.80074 7.5 5.61687 7.5C5.43276 7.5 5.27078 7.61094 5.21804 7.7728L3.96032 11.6452C3.93747 11.6862 3.92213 11.7314 3.91677 11.7793L3.51751 13.0086C3.45173 13.2108 3.577 13.4236 3.79714 13.4838C4.0175 13.5444 4.24913 13.4296 4.31471 13.227L4.64801 12.201H6.58522L6.91836 13.227C6.97221 13.3928 7.13761 13.5 7.31673 13.5C7.35616 13.5 7.39628 13.4948 7.43617 13.484C7.6563 13.4236 7.7816 13.2108 7.71579 13.0086L7.29977 11.7276ZM4.89627 11.4369L5.61687 9.21872L6.33711 11.4369H4.89627Z" fill="black"/>
|
||||
<path d="M16.0838 9.63366C16.3137 9.63366 16.5 9.46271 16.5 9.2516V9.02083C16.5 8.18217 15.7278 7.5 14.779 7.5H14.662C13.7134 7.5 12.9414 8.18219 12.9414 9.02083V11.9789C12.9414 12.8175 13.7134 13.4997 14.662 13.4997H14.779C15.7278 13.4997 16.4998 12.8175 16.5 11.9791V11.6989C16.5 11.4877 16.3137 11.3168 16.0838 11.3168C15.854 11.3168 15.6679 11.4877 15.6679 11.6989V11.9791C15.6679 12.3961 15.2691 12.7358 14.779 12.7358H14.662C14.1722 12.7358 13.7736 12.3963 13.7736 11.9791V9.02081C13.7736 8.60376 14.172 8.26412 14.662 8.26412H14.779C15.2688 8.26412 15.6679 8.60355 15.6679 9.02081V9.25158C15.6679 9.46269 15.854 9.63366 16.0838 9.63366Z" fill="black"/>
|
||||
<path d="M11.2426 10.1269C11.4997 9.85867 11.6559 9.50681 11.6559 9.12226V9.02083C11.6559 8.18217 10.9128 7.5 9.9995 7.5H8.84359C8.61398 7.5 8.42765 7.67095 8.42765 7.88206V13.1176C8.42765 13.3288 8.61376 13.4997 8.84359 13.4997H10.2805C11.3163 13.4997 12.1588 12.7155 12.1588 11.7516V11.6283C12.1588 10.9912 11.791 10.4328 11.2426 10.1269ZM9.2595 8.26415H9.99947C10.454 8.26415 10.8237 8.60358 10.8237 9.02083V9.12226C10.8237 9.53972 10.4542 9.87978 9.99947 9.87978H9.2595V8.26415ZM11.3269 11.7514C11.3269 12.2941 10.8575 12.7358 10.2805 12.7358H9.2595V10.6437H10.2805C10.8575 10.6437 11.3269 11.0854 11.3269 11.628V11.7514Z" fill="black"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
@ -0,0 +1,9 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.3333 17.6667H3.66667C2.748 17.6667 2 16.9187 2 16V4.66667C2 3.748 2.748 3 3.66667 3H16.3333C17.252 3 18 3.748 18 4.66667V16C18 16.9187 17.252 17.6667 16.3333 17.6667ZM3.66667 3.66667C3.11533 3.66667 2.66667 4.11533 2.66667 4.66667V16C2.66667 16.5513 3.11533 17 3.66667 17H16.3333C16.8847 17 17.3333 16.5513 17.3333 16V4.66667C17.3333 4.11533 16.8847 3.66667 16.3333 3.66667H3.66667Z" fill="#292929"/>
|
||||
<path d="M17.6667 7.66667H2.33333C2.14933 7.66667 2 7.51733 2 7.33333C2 7.14933 2.14933 7 2.33333 7H17.6667C17.8507 7 18 7.14933 18 7.33333C18 7.51733 17.8507 7.66667 17.6667 7.66667Z" fill="#292929"/>
|
||||
<path d="M17.6667 10.9987H2.33333C2.14933 10.9987 2 10.8494 2 10.6654C2 10.4814 2.14933 10.332 2.33333 10.332H17.6667C17.8507 10.332 18 10.4814 18 10.6654C18 10.8494 17.8507 10.9987 17.6667 10.9987Z" fill="#292929"/>
|
||||
<path d="M17.6667 14.3327H2.33333C2.14933 14.3327 2 14.1833 2 13.9993C2 13.8153 2.14933 13.666 2.33333 13.666H17.6667C17.8507 13.666 18 13.8153 18 13.9993C18 14.1833 17.8507 14.3327 17.6667 14.3327Z" fill="#292929"/>
|
||||
<path d="M6.33333 17.6667C6.14933 17.6667 6 17.5173 6 17.3333V7.33333C6 7.14933 6.14933 7 6.33333 7C6.51733 7 6.66667 7.14933 6.66667 7.33333V17.3333C6.66667 17.5173 6.51733 17.6667 6.33333 17.6667Z" fill="#292929"/>
|
||||
<path d="M10.0003 17.6667C9.81633 17.6667 9.66699 17.5173 9.66699 17.3333V7.33333C9.66699 7.14933 9.81633 7 10.0003 7C10.1843 7 10.3337 7.14933 10.3337 7.33333V17.3333C10.3337 17.5173 10.1843 17.6667 10.0003 17.6667Z" fill="#292929"/>
|
||||
<path d="M13.6663 17.6667C13.4823 17.6667 13.333 17.5173 13.333 17.3333V7.33333C13.333 7.14933 13.4823 7 13.6663 7C13.8503 7 13.9997 7.14933 13.9997 7.33333V17.3333C13.9997 17.5173 13.8503 17.6667 13.6663 17.6667Z" fill="#292929"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
@ -0,0 +1,3 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.4602 6.53285L16.1659 5.82712C16.4402 5.55287 16.4402 5.1082 16.1659 4.83409C15.8917 4.55984 15.4471 4.55984 15.1729 4.83409L14.4671 5.53983C13.2831 4.55325 11.8443 3.95724 10.3095 3.81772V2.40446H10.9883C11.3761 2.40446 11.6905 2.08998 11.6905 1.70216C11.6905 1.31435 11.3761 1 10.9883 1H8.22623C7.83841 1 7.52406 1.31435 7.52406 1.70216C7.52406 2.08998 7.83841 2.40446 8.22623 2.40446H8.90504V3.81772C5.06313 4.16708 2 7.39459 2 11.3927C2 15.5971 5.40233 19 9.60735 19C13.8117 19 17.2146 15.5977 17.2146 11.3927C17.2146 9.59666 16.596 7.89584 15.4602 6.53285ZM9.60721 17.5955C6.18703 17.5955 3.40433 14.813 3.40433 11.3927C3.40433 7.97247 6.18703 5.18991 9.60721 5.18991C13.0275 5.18991 15.8101 7.97247 15.8101 11.3927C15.8101 14.813 13.0275 17.5955 9.60721 17.5955ZM12.8615 8.1385C13.1357 8.41275 13.1357 8.85742 12.8615 9.13153L10.1038 11.8892C9.82954 12.1635 9.38487 12.1635 9.11076 11.8892C8.83652 11.615 8.83652 11.1703 9.11076 10.8962L11.8683 8.1385C12.1426 7.86426 12.5872 7.86426 12.8615 8.1385Z" fill="black"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,4 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.8511 11.4139L10.6202 9.74077V6.33258C10.6202 5.98989 10.3432 5.71289 10.0005 5.71289C9.65786 5.71289 9.38086 5.98989 9.38086 6.33258V10.0506C9.38086 10.2458 9.47258 10.4299 9.62873 10.5464L12.1074 12.4054C12.219 12.4891 12.3491 12.5294 12.4786 12.5294C12.6676 12.5294 12.8535 12.4445 12.975 12.2809C13.1808 12.0075 13.125 11.619 12.8511 11.4139Z" fill="black"/>
|
||||
<path d="M10 2C5.58853 2 2 5.58853 2 10C2 14.4115 5.58853 18 10 18C14.4115 18 18 14.4115 18 10C18 5.58853 14.4115 2 10 2ZM10 16.7607C6.27266 16.7607 3.23934 13.7273 3.23934 10C3.23934 6.27266 6.27266 3.23934 10 3.23934C13.728 3.23934 16.7607 6.27266 16.7607 10C16.7607 13.7273 13.7273 16.7607 10 16.7607Z" fill="black"/>
|
||||
</svg>
|
After Width: | Height: | Size: 799 B |
@ -0,0 +1,6 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14 6.42773C11.7949 6.42773 10 8.22202 10 10.4277C10 12.6334 11.7949 14.4277 14 14.4277C16.2051 14.4277 18 12.6334 18 10.4277C18 8.22202 16.2051 6.42773 14 6.42773ZM14 13.2849C12.4246 13.2849 11.1429 12.0032 11.1429 10.4277C11.1429 8.85231 12.4246 7.57059 14 7.57059C15.5754 7.57059 16.8571 8.85231 16.8571 10.4277C16.8571 12.0032 15.5754 13.2849 14 13.2849Z" fill="black"/>
|
||||
<path d="M14.5714 8.71401V10.4283C14.5714 10.5797 14.5114 10.7254 14.404 10.8323L13.5469 11.6894C13.3234 11.9129 12.9623 11.9129 12.7389 11.6894C12.5154 11.466 12.5154 11.1049 12.7389 10.8814L13.4286 10.1917V8.71401C13.4286 8.39858 13.684 8.14258 14 8.14258C14.316 8.14258 14.5714 8.39858 14.5714 8.71401Z" fill="black"/>
|
||||
<path d="M2.57143 16.1436H11.7143C12.0303 16.1436 12.2857 15.8876 12.2857 15.5722V15.0008C12.2857 14.6853 12.0303 14.4293 11.7143 14.4293C11.3983 14.4293 11.1429 14.6853 11.1429 15.0008H3.14286V14.4293C3.14286 13.799 3.65543 13.2865 4.28571 13.2865C4.476 13.2865 9.68743 13.2865 9.42857 13.2865C9.74457 13.2865 10 13.0305 10 12.715C10 12.3996 9.74457 12.1436 9.42857 12.1436H8.85714V9.10133C8.85714 8.54475 9.02114 8.04704 9.31886 7.69904C10.3583 6.48418 10.196 4.63333 8.91886 3.61961C7.30114 2.33561 4.86286 3.14475 4.37257 5.14875C4.15257 6.04875 4.35886 6.96533 4.93829 7.66475C5.25429 8.04647 5.42857 8.59104 5.42857 9.1979V12.1436H4.28571C3.02514 12.1436 2 13.1688 2 14.4293V15.5722C2 15.8876 2.25543 16.1436 2.57143 16.1436ZM5.48286 5.42018C5.77257 4.23561 7.23429 3.74133 8.20857 4.51504C8.96571 5.11618 9.07943 6.2219 8.45086 6.95618C7.97543 7.51047 7.71429 8.27275 7.71429 9.10133V12.1436H6.57143V9.1979C6.57143 8.31275 6.31086 7.5299 5.81771 6.93504C5.46629 6.51104 5.34686 5.97333 5.48286 5.42018Z" fill="black"/>
|
||||
<path d="M11.1427 16.7148C11.4587 16.7148 11.7141 16.9708 11.7141 17.2863C11.7141 17.6017 11.4587 17.8577 11.1427 17.8577H3.14272C2.82672 17.8577 2.57129 17.6017 2.57129 17.2863C2.57129 16.9708 2.82672 16.7148 3.14272 16.7148H11.1427Z" fill="black"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
@ -11,14 +11,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { EntityType } from '../../../enums/entity.enum';
|
||||
import { EntityReference, ValueClass } from '../../../generated/entity/type';
|
||||
import { EntityReference } from '../../../generated/entity/type';
|
||||
|
||||
export type ExtensionDataTypes =
|
||||
| string
|
||||
| string[]
|
||||
| EntityReference
|
||||
| EntityReference[]
|
||||
| ValueClass[]
|
||||
| { start: string; end: string };
|
||||
|
||||
export interface ExtensionDataProps {
|
||||
|
@ -24,6 +24,7 @@ import React, {
|
||||
} from 'react';
|
||||
import { useHistory, useParams } from 'react-router-dom';
|
||||
import {
|
||||
CUSTOM_PROPERTIES_ICON_MAP,
|
||||
ENTITY_REFERENCE_OPTIONS,
|
||||
PROPERTY_TYPES_WITH_ENTITY_REFERENCE,
|
||||
PROPERTY_TYPES_WITH_FORMAT,
|
||||
@ -50,6 +51,7 @@ import {
|
||||
getTypeByFQN,
|
||||
getTypeListByCategory,
|
||||
} from '../../../../rest/metadataTypeAPI';
|
||||
import { getEntityName } from '../../../../utils/EntityUtils';
|
||||
import { generateFormFields } from '../../../../utils/formUtils';
|
||||
import { getSettingOptionByEntityType } from '../../../../utils/GlobalSettingsUtils';
|
||||
import { getSettingPath } from '../../../../utils/RouterUtils';
|
||||
@ -95,12 +97,27 @@ const AddCustomProperty = () => {
|
||||
);
|
||||
|
||||
const propertyTypeOptions = useMemo(() => {
|
||||
return map(propertyTypes, (type) => ({
|
||||
key: type.name,
|
||||
return map(propertyTypes, (type) => {
|
||||
const Icon =
|
||||
CUSTOM_PROPERTIES_ICON_MAP[
|
||||
type.name as keyof typeof CUSTOM_PROPERTIES_ICON_MAP
|
||||
];
|
||||
|
||||
// Remove -cp from the name and convert to start case
|
||||
label: startCase((type.displayName ?? type.name).replace(/-cp/g, '')),
|
||||
value: type.id,
|
||||
}));
|
||||
const title = startCase(getEntityName(type).replace(/-cp/g, ''));
|
||||
|
||||
return {
|
||||
searchField: title,
|
||||
key: type.name,
|
||||
label: (
|
||||
<div className="d-flex gap-2 items-center" title={title}>
|
||||
{Icon && <Icon width={20} />}
|
||||
<span>{title}</span>
|
||||
</div>
|
||||
),
|
||||
value: type.id,
|
||||
};
|
||||
});
|
||||
}, [propertyTypes]);
|
||||
|
||||
const {
|
||||
@ -171,7 +188,6 @@ const AddCustomProperty = () => {
|
||||
formatConfig: string;
|
||||
entityReferenceConfig: string[];
|
||||
multiSelect?: boolean;
|
||||
rowCount: number;
|
||||
columns: string[];
|
||||
}
|
||||
) => {
|
||||
@ -208,7 +224,6 @@ const AddCustomProperty = () => {
|
||||
customPropertyConfig = {
|
||||
config: {
|
||||
columns: data.columns,
|
||||
rowCount: data.rowCount ?? 10,
|
||||
},
|
||||
};
|
||||
}
|
||||
@ -220,7 +235,6 @@ const AddCustomProperty = () => {
|
||||
'formatConfig',
|
||||
'entityReferenceConfig',
|
||||
'enumConfig',
|
||||
'rowCount',
|
||||
'columns',
|
||||
]),
|
||||
propertyType: {
|
||||
@ -281,8 +295,8 @@ const AddCustomProperty = () => {
|
||||
field: t('label.type'),
|
||||
})}`,
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: { label: string }) => {
|
||||
return (option?.label ?? '')
|
||||
filterOption: (input: string, option: { searchField: string }) => {
|
||||
return (option?.searchField ?? '')
|
||||
.toLowerCase()
|
||||
.includes(input.toLowerCase());
|
||||
},
|
||||
@ -423,31 +437,6 @@ const AddCustomProperty = () => {
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'rowCount',
|
||||
label: t('label.row-count'),
|
||||
type: FieldTypes.NUMBER,
|
||||
required: false,
|
||||
id: 'root/rowCount',
|
||||
props: {
|
||||
'data-testid': 'rowCount',
|
||||
size: 'default',
|
||||
style: { width: '100%' },
|
||||
placeholder: t('label.row-count'),
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
min: 1,
|
||||
type: 'number',
|
||||
max: 10,
|
||||
message: t('message.entity-size-in-between', {
|
||||
entity: t('label.row-count'),
|
||||
min: 1,
|
||||
max: 10,
|
||||
}),
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const firstPanelChildren = (
|
||||
@ -457,9 +446,6 @@ const AddCustomProperty = () => {
|
||||
className="m-t-md"
|
||||
data-testid="custom-property-form"
|
||||
form={form}
|
||||
initialValues={{
|
||||
rowCount: 10,
|
||||
}}
|
||||
layout="vertical"
|
||||
onFinish={handleSubmit}
|
||||
onFocus={handleFieldFocus}>
|
||||
|
@ -12,11 +12,12 @@
|
||||
*/
|
||||
import { Button, Space, Tooltip, Typography } from 'antd';
|
||||
import { ColumnsType } from 'antd/lib/table';
|
||||
import { isArray, isEmpty, isString, isUndefined } from 'lodash';
|
||||
import { isArray, isEmpty, isString, isUndefined, startCase } from 'lodash';
|
||||
import React, { FC, Fragment, useEffect, useMemo, useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { ReactComponent as IconEdit } from '../../../assets/svg/edit-new.svg';
|
||||
import { ReactComponent as IconDelete } from '../../../assets/svg/ic-delete.svg';
|
||||
import { CUSTOM_PROPERTIES_ICON_MAP } from '../../../constants/CustomProperty.constants';
|
||||
import { ADD_CUSTOM_PROPERTIES_DOCS } from '../../../constants/docs.constants';
|
||||
import { NO_PERMISSION_FOR_ACTION } from '../../../constants/HelperTextUtil';
|
||||
import { TABLE_SCROLL_VALUE } from '../../../constants/Table.constants';
|
||||
@ -27,6 +28,7 @@ import ErrorPlaceHolder from '../../common/ErrorWithPlaceholder/ErrorPlaceHolder
|
||||
import RichTextEditorPreviewer from '../../common/RichTextEditor/RichTextEditorPreviewer';
|
||||
import Table from '../../common/Table/Table';
|
||||
import ConfirmationModal from '../../Modals/ConfirmationModal/ConfirmationModal';
|
||||
import './custom-property-table.less';
|
||||
import { CustomPropertyTableProp } from './CustomPropertyTable.interface';
|
||||
import EditCustomPropertyModal, {
|
||||
FormData,
|
||||
@ -116,7 +118,21 @@ export const CustomPropertyTable: FC<CustomPropertyTableProp> = ({
|
||||
title: t('label.type'),
|
||||
dataIndex: 'propertyType',
|
||||
key: 'propertyType',
|
||||
render: (propertyType) => getEntityName(propertyType),
|
||||
render: (propertyType: CustomProperty['propertyType']) => {
|
||||
const Icon =
|
||||
CUSTOM_PROPERTIES_ICON_MAP[
|
||||
propertyType.name as keyof typeof CUSTOM_PROPERTIES_ICON_MAP
|
||||
];
|
||||
|
||||
return (
|
||||
<div className="d-flex gap-2 custom-property-type-chip items-center">
|
||||
{Icon && <Icon width={20} />}
|
||||
<span>
|
||||
{startCase(getEntityName(propertyType).replace(/-cp/g, ''))}
|
||||
</span>
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
title: t('label.config'),
|
||||
@ -153,12 +169,6 @@ export const CustomPropertyTable: FC<CustomPropertyTableProp> = ({
|
||||
))}
|
||||
</ul>
|
||||
</Typography.Text>
|
||||
<Typography.Text>
|
||||
<span className="font-medium">{`${t(
|
||||
'label.row-count'
|
||||
)}: `}</span>
|
||||
{config?.rowCount ?? 10}
|
||||
</Typography.Text>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright 2024 Collate.
|
||||
* 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 (reference) url('../../../styles/variables.less');
|
||||
|
||||
.custom-property-type-chip {
|
||||
background: @grey-1;
|
||||
border: 1px solid @text-color;
|
||||
padding: 4px 8px;
|
||||
border-radius: 15px;
|
||||
width: fit-content;
|
||||
}
|
@ -294,7 +294,10 @@ export const CustomPropertyTable = <T extends ExtentionEntitiesKeys>({
|
||||
</div>
|
||||
</>
|
||||
) : (
|
||||
<Row data-testid="custom-properties-card" gutter={[16, 16]}>
|
||||
<Row
|
||||
className="custom-properties-card"
|
||||
data-testid="custom-properties-card"
|
||||
gutter={[16, 16]}>
|
||||
{dataSourceColumns.map((columns, colIndex) => (
|
||||
<Col key={colIndex} span={8}>
|
||||
{columns.map((record) => (
|
||||
|
@ -710,7 +710,6 @@ export const PropertyValue: FC<PropertyValueProps> = ({
|
||||
columns={columns}
|
||||
isUpdating={isLoading}
|
||||
isVisible={showInput}
|
||||
maxRowCount={config?.rowCount ?? 10}
|
||||
property={property}
|
||||
rows={value?.rows ?? []}
|
||||
onCancel={onHideInput}
|
||||
|
@ -13,7 +13,7 @@
|
||||
import ReactDataGrid from '@inovua/reactdatagrid-community';
|
||||
import '@inovua/reactdatagrid-community/index.css';
|
||||
import { TypeComputedProps } from '@inovua/reactdatagrid-community/types';
|
||||
import { Button, Modal, Tooltip, Typography } from 'antd';
|
||||
import { Button, Modal, Typography } from 'antd';
|
||||
import { isEmpty, omit } from 'lodash';
|
||||
import React, { FC, MutableRefObject, useCallback, useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
@ -28,7 +28,6 @@ interface EditTableTypePropertyModalProps {
|
||||
property: CustomProperty;
|
||||
columns: string[];
|
||||
rows: Record<string, string>[];
|
||||
maxRowCount: number;
|
||||
onCancel: () => void;
|
||||
onSave: (data: TableTypePropertyValueType) => Promise<void>;
|
||||
}
|
||||
@ -41,7 +40,6 @@ const EditTableTypePropertyModal: FC<EditTableTypePropertyModalProps> = ({
|
||||
property,
|
||||
columns,
|
||||
rows,
|
||||
maxRowCount,
|
||||
onCancel,
|
||||
onSave,
|
||||
}) => {
|
||||
@ -168,28 +166,23 @@ const EditTableTypePropertyModal: FC<EditTableTypePropertyModalProps> = ({
|
||||
data-testid="edit-table-type-property-modal"
|
||||
footer={
|
||||
<div className="d-flex justify-between">
|
||||
<Tooltip
|
||||
title={
|
||||
dataSource.length === maxRowCount
|
||||
? t('message.maximum-count-allowed', {
|
||||
count: maxRowCount,
|
||||
label: t('label.row-plural'),
|
||||
})
|
||||
: t('label.add-entity', { entity: t('label.row') })
|
||||
}>
|
||||
<Button
|
||||
disabled={dataSource.length === maxRowCount || isUpdating}
|
||||
type="primary"
|
||||
onClick={handleAddRow}>
|
||||
{t('label.add-entity', { entity: t('label.row') })}
|
||||
</Button>
|
||||
</Tooltip>
|
||||
<Button
|
||||
data-testid="add-new-row"
|
||||
disabled={isUpdating}
|
||||
type="primary"
|
||||
onClick={handleAddRow}>
|
||||
{t('label.add-entity', { entity: t('label.row') })}
|
||||
</Button>
|
||||
|
||||
<div className="d-flex gap-2">
|
||||
<Button disabled={isUpdating} onClick={onCancel}>
|
||||
<Button
|
||||
data-testid="cancel-update-table-type-property"
|
||||
disabled={isUpdating}
|
||||
onClick={onCancel}>
|
||||
{t('label.cancel')}
|
||||
</Button>
|
||||
<Button
|
||||
data-testid="update-table-type-property"
|
||||
disabled={isUpdating}
|
||||
loading={isUpdating}
|
||||
type="primary"
|
||||
@ -211,7 +204,7 @@ const EditTableTypePropertyModal: FC<EditTableTypePropertyModalProps> = ({
|
||||
}
|
||||
width={800}>
|
||||
{isEmpty(dataSource) ? (
|
||||
<TableTypePropertyView isInModal columns={columns} rows={rows} />
|
||||
<TableTypePropertyView columns={columns} rows={rows} />
|
||||
) : (
|
||||
<ReactDataGrid
|
||||
editable
|
||||
@ -222,7 +215,7 @@ const EditTableTypePropertyModal: FC<EditTableTypePropertyModalProps> = ({
|
||||
idProperty="id"
|
||||
minRowHeight={30}
|
||||
showZebraRows={false}
|
||||
style={{ height: '180px' }}
|
||||
style={{ height: '350px' }}
|
||||
onEditComplete={onEditComplete}
|
||||
onEditStart={onEditStart}
|
||||
onEditStop={onEditStop}
|
||||
|
@ -20,7 +20,6 @@ import './table-type-property-view.less';
|
||||
interface TableTypePropertyViewProps {
|
||||
columns: string[];
|
||||
rows: Record<string, string>[];
|
||||
isInModal?: boolean;
|
||||
}
|
||||
|
||||
const TableTypePropertyView: FC<TableTypePropertyViewProps> = ({
|
||||
@ -43,7 +42,7 @@ const TableTypePropertyView: FC<TableTypePropertyViewProps> = ({
|
||||
title: column,
|
||||
dataIndex: column,
|
||||
key: column,
|
||||
render: (text: string) => text ?? NO_DATA_PLACEHOLDER,
|
||||
render: (text: string) => text || NO_DATA_PLACEHOLDER,
|
||||
}));
|
||||
|
||||
return (
|
||||
@ -54,7 +53,11 @@ const TableTypePropertyView: FC<TableTypePropertyViewProps> = ({
|
||||
columns={tableColumns}
|
||||
data-testid="table-type-property-value"
|
||||
dataSource={rows}
|
||||
pagination={false}
|
||||
pagination={{
|
||||
position: ['bottomCenter'],
|
||||
pageSize: 10,
|
||||
hideOnSinglePage: true,
|
||||
}}
|
||||
rowKey="name"
|
||||
scroll={{ x: true }}
|
||||
size="small"
|
||||
|
@ -1,3 +1,15 @@
|
||||
/*
|
||||
* Copyright 2024 Collate.
|
||||
* 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.
|
||||
*/
|
||||
@border-right-color: #0000000f;
|
||||
|
||||
.table-type-custom-property.ant-table-wrapper {
|
||||
|
@ -10,6 +10,24 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ReactComponent as DateTimeIcon } from '../assets/svg/customproperties/date-time.svg';
|
||||
import { ReactComponent as DateIcon } from '../assets/svg/customproperties/date.svg';
|
||||
import { ReactComponent as DurationIcon } from '../assets/svg/customproperties/duration.svg';
|
||||
import { ReactComponent as EmailIcon } from '../assets/svg/customproperties/email.svg';
|
||||
import { ReactComponent as EntityReferenceListIcon } from '../assets/svg/customproperties/entity-list.svg';
|
||||
import { ReactComponent as EntityReferenceIcon } from '../assets/svg/customproperties/entity.svg';
|
||||
import { ReactComponent as EnumIcon } from '../assets/svg/customproperties/enum.svg';
|
||||
import { ReactComponent as IntegerIcon } from '../assets/svg/customproperties/integer.svg';
|
||||
import { ReactComponent as MarkDownIcon } from '../assets/svg/customproperties/markdown.svg';
|
||||
import { ReactComponent as NumberIcon } from '../assets/svg/customproperties/number.svg';
|
||||
import { ReactComponent as SQLQueryIcon } from '../assets/svg/customproperties/sql-query.svg';
|
||||
import { ReactComponent as StringIcon } from '../assets/svg/customproperties/string.svg';
|
||||
import { ReactComponent as TableIcon } from '../assets/svg/customproperties/table.svg';
|
||||
import { ReactComponent as TimeIntervalIcon } from '../assets/svg/customproperties/time-interval.svg';
|
||||
import { ReactComponent as TimeIcon } from '../assets/svg/customproperties/time.svg';
|
||||
import { ReactComponent as TimestampIcon } from '../assets/svg/customproperties/timestamp.svg';
|
||||
|
||||
export const PROPERTY_TYPES_WITH_FORMAT = ['date-cp', 'dateTime-cp', 'time-cp'];
|
||||
|
||||
export const PROPERTY_TYPES_WITH_ENTITY_REFERENCE = [
|
||||
@ -128,3 +146,22 @@ export const SUPPORTED_FORMAT_MAP = {
|
||||
};
|
||||
|
||||
export const TABLE_TYPE_CUSTOM_PROPERTY = 'table-cp';
|
||||
|
||||
export const CUSTOM_PROPERTIES_ICON_MAP = {
|
||||
'date-cp': DateIcon,
|
||||
'dateTime-cp': DateTimeIcon,
|
||||
duration: DurationIcon,
|
||||
email: EmailIcon,
|
||||
entityReference: EntityReferenceIcon,
|
||||
entityReferenceList: EntityReferenceListIcon,
|
||||
enum: EnumIcon,
|
||||
integer: IntegerIcon,
|
||||
markdown: MarkDownIcon,
|
||||
number: NumberIcon,
|
||||
sqlQuery: SQLQueryIcon,
|
||||
string: StringIcon,
|
||||
'table-cp': TableIcon,
|
||||
'time-cp': TimeIcon,
|
||||
timeInterval: TimeIntervalIcon,
|
||||
timestamp: TimestampIcon,
|
||||
};
|
||||
|
@ -12,11 +12,11 @@
|
||||
*/
|
||||
export const COMMON_RESIZABLE_PANEL_CONFIG = {
|
||||
LEFT_PANEL: {
|
||||
minWidth: 700,
|
||||
flex: 0.7,
|
||||
minWidth: 800,
|
||||
flex: 0.85,
|
||||
},
|
||||
RIGHT_PANEL: {
|
||||
minWidth: 320,
|
||||
flex: 0.3,
|
||||
flex: 0.15,
|
||||
},
|
||||
};
|
||||
|
@ -828,7 +828,8 @@ a[href].link-text-grey,
|
||||
.policies-list-table,
|
||||
.roles-list-table,
|
||||
.list-table,
|
||||
.kpi-table {
|
||||
.kpi-table,
|
||||
.custom-properties-card {
|
||||
margin-right: 64px;
|
||||
}
|
||||
}
|
||||
|