d2aura 26.0.15 → 26.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/types/advancedFilter.d.ts +3 -0
- package/api/types/advancedFilter.js.map +1 -1
- package/api/webPush/webPushApi.js.map +1 -1
- package/api/webPush/webPushUtils.js.map +1 -1
- package/coreui/abstractListPanel.d.ts +2 -1
- package/coreui/abstractListPanel.js +5 -1
- package/coreui/abstractListPanel.js.map +1 -1
- package/coreui/components/advancedFilter/advancedFilterButton.d.ts +2 -2
- package/coreui/components/advancedFilter/advancedFilterButton.js.map +1 -1
- package/coreui/components/advancedFilter/advancedFilteredGrid.d.ts +3 -2
- package/coreui/components/advancedFilter/advancedFilteredGrid.js +9 -1
- package/coreui/components/advancedFilter/advancedFilteredGrid.js.map +1 -1
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.d.ts +2 -2
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js +1 -1
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js.map +1 -1
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.d.ts +2 -2
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.js.map +1 -1
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.d.ts +2 -2
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.js +10 -2
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.js.map +1 -1
- package/coreui/components/d2Chart/d2ChartAdvancedZoom.d.ts +25 -0
- package/coreui/components/d2Chart/d2ChartAdvancedZoom.js +197 -0
- package/coreui/components/d2Chart/d2ChartAdvancedZoom.js.map +1 -0
- package/coreui/components/d2Chart/d2ChartPanel.d.ts +2 -0
- package/coreui/components/d2Chart/d2ChartPanel.js +9 -2
- package/coreui/components/d2Chart/d2ChartPanel.js.map +1 -1
- package/coreui/components/d2Chart/d2ChartToolboxPanel.d.ts +1 -0
- package/coreui/components/d2Chart/d2ChartToolboxPanel.js +2 -2
- package/coreui/components/d2Chart/d2ChartToolboxPanel.js.map +1 -1
- package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.js +1 -1
- package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.js.map +1 -1
- package/coreui/components/select/abstractMultiSelect.d.ts +32 -0
- package/coreui/components/select/abstractMultiSelect.js +126 -0
- package/coreui/components/select/abstractMultiSelect.js.map +1 -0
- package/coreui/components/select/abstractSelectModalDialog.d.ts +5 -0
- package/coreui/components/select/abstractSelectModalDialog.js +45 -5
- package/coreui/components/select/abstractSelectModalDialog.js.map +1 -1
- package/coreui/components/webPush/webPushSwitch.js.map +1 -1
- package/coreui/images/logo.svg +9 -9
- package/coreui/images/logo_full.svg +11 -11
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstractMultiSelect.js","sourceRoot":"","sources":["../../../../../coreui/components/select/abstractMultiSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {Select, SelectProps, Spin} from \"antd\";\r\nimport {\r\n AdvancedFilterApi,\r\n AdvancedFilterCondition,\r\n AdvancedFilterLogicalOperator,\r\n AdvancedFilterOperator\r\n} from \"../../../api/advancedFilterApi\";\r\nimport AdvancedFilterUtils from \"../advancedFilter/advancedFilterUtils\";\r\nimport {\r\n GeneralEntityColumn,\r\n getStringAdvancedFilterColumn\r\n} from \"../advancedFilter/advancedFilterColumnDefinitions\";\r\nimport debounce from \"lodash/debounce\";\r\nimport {CloseCircleOutlined, LoadingOutlined, SelectOutlined} from \"@ant-design/icons\";\r\nimport {ERROR_COLOR} from \"../../../api/constants/constants\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport Entity from \"../../../api/types/entity\";\r\nimport AbstractEntityApi from \"../../../api/abstractEntityApi\";\r\nimport {SelectedEntity} from \"./abstractSelect\";\r\nimport ColorTag from \"../colorTag/colorTag\";\r\n\r\nexport interface AbstractMultiSelectProps<T extends Entity> extends SelectProps {\r\n api: AbstractEntityApi<T>\r\n advancedFilterApi: AdvancedFilterApi\r\n\r\n value: SelectedEntity[]\r\n filterConditions?: AdvancedFilterCondition[]\r\n\r\n onChange(value: T[]): void\r\n}\r\n\r\ninterface AbstractMultiSelectSelectState<T extends Entity> {\r\n selectDialogOpen: boolean\r\n loading: boolean\r\n options: T[]\r\n}\r\n\r\nexport default abstract class AbstractMultiSelect<T extends Entity,\r\n P extends AbstractMultiSelectProps<T>,\r\n S extends AbstractMultiSelectSelectState<T> = AbstractMultiSelectSelectState<T>> extends React.Component<P, S> {\r\n\r\n constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n // @ts-ignore\r\n this.onLoadData = debounce(this.onLoadData.bind(this), 250);\r\n }\r\n\r\n protected initialState: AbstractMultiSelectSelectState<T> = {\r\n selectDialogOpen: false,\r\n loading: false,\r\n options: [],\r\n }\r\n\r\n private getFilterConditionForCode(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition(getStringAdvancedFilterColumn(GeneralEntityColumn.CODE), {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n });\r\n }\r\n\r\n private getFilterConditionForName(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition(getStringAdvancedFilterColumn(GeneralEntityColumn.NAME), {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n })\r\n }\r\n\r\n private getFilterConditions(searchString?: string): AdvancedFilterCondition[] {\r\n const filterConditionForCode = this.getFilterConditionForCode(searchString);\r\n filterConditionForCode.left_par = 1;\r\n filterConditionForCode.logical_operator = AdvancedFilterLogicalOperator.OR;\r\n\r\n const filterConditionForName = this.getFilterConditionForName(searchString);\r\n filterConditionForName.right_par = 1;\r\n\r\n return [\r\n filterConditionForCode,\r\n filterConditionForName,\r\n ]\r\n }\r\n\r\n async onLoadData(searchString?: string) {\r\n this.setState({loading: true});\r\n\r\n const filterConditions = this.getFilterConditions(searchString);\r\n if (this.props.filterConditions) {\r\n filterConditions[filterConditions.length - 1].logical_operator = AdvancedFilterLogicalOperator.AND;\r\n filterConditions.push(...this.props.filterConditions);\r\n }\r\n\r\n const pageableList = await this.getData(filterConditions);\r\n\r\n this.setState({options: pageableList.data, loading: false});\r\n }\r\n\r\n protected async getData(filterConditions: AdvancedFilterCondition[]) {\r\n return await this.props.api.getAllData(0, 10, \"\", filterConditions, true);\r\n }\r\n\r\n private showCancelButton(): boolean {\r\n return this.props.value.length > 0;\r\n }\r\n\r\n protected getSuffixIcon(): React.ReactNode {\r\n if (this.state.loading) {\r\n return <LoadingOutlined/>;\r\n } else {\r\n return (\r\n <>\r\n {this.showCancelButton() &&\r\n <CloseCircleOutlined\r\n style={{color: ERROR_COLOR}}\r\n title={i18n(\"Cancel Selected Entity\")}\r\n onClick={() => {\r\n this.props.onChange([]);\r\n }}\r\n />\r\n }\r\n <SelectOutlined\r\n title={i18n(\"Open Select Dialog\")}\r\n onClick={() => {\r\n this.setState({selectDialogOpen: true})\r\n }}\r\n />\r\n </>\r\n );\r\n }\r\n }\r\n\r\n abstract renderSelectDialog(): React.ReactNode;\r\n\r\n render() {\r\n const {\r\n disabled,\r\n value,\r\n onChange,\r\n api,\r\n advancedFilterApi,\r\n filterConditions,\r\n ...rest\r\n } = this.props;\r\n\r\n return (\r\n <div\r\n onDoubleClick={() => {\r\n if (!disabled && !this.state.selectDialogOpen) {\r\n this.setState({selectDialogOpen: true});\r\n }\r\n }}\r\n >\r\n {this.renderSelectDialog()}\r\n <Select\r\n disabled={disabled}\r\n style={{width: \"100%\"}}\r\n labelInValue\r\n filterOption={false}\r\n mode=\"multiple\"\r\n maxTagCount=\"responsive\"\r\n notFoundContent={\r\n this.state.loading\r\n ?\r\n <div style={{textAlign: \"center\"}}>\r\n <Spin indicator={<LoadingOutlined spin/>} spinning/>\r\n </div>\r\n :\r\n null\r\n }\r\n value={\r\n value.map(value => {\r\n return {\r\n value: value.id,\r\n label:\r\n <span>\r\n {value.code}\r\n {(value.code && value.name) ? ` (${value.name})` : value.name}\r\n </span>\r\n }\r\n })\r\n }\r\n loading={this.state.loading}\r\n onChange={(newValue) => {\r\n const selectedIds = new Set((newValue as any[]).map(opt => opt.value));\r\n const allKnownEntities = [...this.state.options, ...this.props.value as unknown as T[]];\r\n const seen = new Set();\r\n onChange(\r\n allKnownEntities.filter(e => {\r\n if (seen.has(e.id) || !selectedIds.has(e.id)) return false;\r\n seen.add(e.id);\r\n return true;\r\n })\r\n );\r\n }}\r\n onFocus={() => {\r\n this.onLoadData();\r\n }}\r\n onClick={event => {\r\n if (event.target instanceof HTMLInputElement || event.target instanceof HTMLSpanElement) {\r\n this.onLoadData();\r\n }\r\n }}\r\n onSearch={this.onLoadData}\r\n options={\r\n this.state.options.map(value => {\r\n return {\r\n value: value.id,\r\n code: value.code,\r\n name: value.name,\r\n }\r\n })\r\n }\r\n optionRender={option => {\r\n const data = option.data;\r\n const displayName = data.name ?? \"\";\r\n\r\n return (\r\n <div style={{display: \"flex\", justifyContent: \"space-between\"}}>\r\n {data.code && <ColorTag>{data.code}</ColorTag>}\r\n <div title={displayName}>{displayName}</div>\r\n </div>\r\n )\r\n }}\r\n suffixIcon={\r\n <span style={{display: \"flex\", gap: 4, fontSize: 14, color: \"rgba(0, 0, 0, 0.55)\"}}>\r\n {this.getSuffixIcon()}\r\n </span>\r\n }\r\n {...rest}\r\n />\r\n </div>\r\n );\r\n }\r\n}"]}
|
|
@@ -5,9 +5,13 @@ import { RowDoubleClickedEvent, SelectionChangedEvent } from "ag-grid-community"
|
|
|
5
5
|
import AbstractEntityApi from "../../../api/abstractEntityApi";
|
|
6
6
|
import AdvancedFilteredGrid, { AdvancedFilteredGridProps, AdvancedFilteredGridState } from "../advancedFilter/advancedFilteredGrid";
|
|
7
7
|
import type { ButtonProps } from "antd/es/button/button";
|
|
8
|
+
export interface WithSelected {
|
|
9
|
+
selected?: boolean;
|
|
10
|
+
}
|
|
8
11
|
export interface AbstractSelectModalDialogProps<T extends Entity> extends AdvancedFilteredGridProps<T> {
|
|
9
12
|
api: AbstractEntityApi<T>;
|
|
10
13
|
multiSelect?: boolean;
|
|
14
|
+
preselectedIds?: number[];
|
|
11
15
|
visible: boolean;
|
|
12
16
|
initialWidth?: number;
|
|
13
17
|
initialHeight?: number;
|
|
@@ -24,6 +28,7 @@ export default abstract class AbstractSelectModalDialog<T extends Entity, P exte
|
|
|
24
28
|
protected adaptLoadedData(data: T[]): void;
|
|
25
29
|
abstract getIdColumnName(): string;
|
|
26
30
|
abstract getTitle(): string;
|
|
31
|
+
protected getSelectionColumnDefinition(): DataGridColDef;
|
|
27
32
|
protected getCodeColumnDefinition(): DataGridColDef;
|
|
28
33
|
protected getNameColumnDefinition(): DataGridColDef;
|
|
29
34
|
protected getExtraColumnDefinitions(): DataGridColDef[];
|
|
@@ -6,6 +6,7 @@ import AdvancedFilterButton from "../advancedFilter/advancedFilterButton";
|
|
|
6
6
|
import { WarningOutlined } from "@ant-design/icons";
|
|
7
7
|
import i18n from "d2core/i18n/i18n";
|
|
8
8
|
import ColorTag from "../colorTag/colorTag";
|
|
9
|
+
import { Checkbox } from "antd";
|
|
9
10
|
class AbstractSelectModalDialog extends AdvancedFilteredGrid {
|
|
10
11
|
constructor(props) {
|
|
11
12
|
super(props);
|
|
@@ -44,7 +45,34 @@ class AbstractSelectModalDialog extends AdvancedFilteredGrid {
|
|
|
44
45
|
this.onOk = this.onOk.bind(this);
|
|
45
46
|
}
|
|
46
47
|
adaptLoadedData(data) {
|
|
47
|
-
|
|
48
|
+
const preselectedSet = new Set(this.props.preselectedIds ?? []);
|
|
49
|
+
data.forEach((value) => {
|
|
50
|
+
if (preselectedSet.has(value.id)) {
|
|
51
|
+
value.selected = true;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
getSelectionColumnDefinition() {
|
|
56
|
+
return {
|
|
57
|
+
headerName: i18n("Select"),
|
|
58
|
+
colId: "selected",
|
|
59
|
+
field: "selected",
|
|
60
|
+
width: 40,
|
|
61
|
+
cellRenderer: (params) => {
|
|
62
|
+
const data = params.data;
|
|
63
|
+
if (!data) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return (React.createElement("span", { style: { height: "100%", display: "flex", justifyContent: "center" } },
|
|
67
|
+
React.createElement(Checkbox, { checked: data.selected, onChange: e => {
|
|
68
|
+
data.selected = e.target.checked;
|
|
69
|
+
const rowNode = this.gridApi?.getRowNode(data.id.toString());
|
|
70
|
+
rowNode?.updateData(data);
|
|
71
|
+
} })));
|
|
72
|
+
},
|
|
73
|
+
enableCellChangeFlash: true,
|
|
74
|
+
group: i18n("Basic Columns"),
|
|
75
|
+
};
|
|
48
76
|
}
|
|
49
77
|
getCodeColumnDefinition() {
|
|
50
78
|
return this.getCodeColumn({ flex: 0.5 });
|
|
@@ -61,6 +89,7 @@ class AbstractSelectModalDialog extends AdvancedFilteredGrid {
|
|
|
61
89
|
getInitialColumnDefs() {
|
|
62
90
|
if (!this.initialColumnDefs) {
|
|
63
91
|
this.initialColumnDefs = [
|
|
92
|
+
...(this.props.preselectedIds ? [this.getSelectionColumnDefinition()] : []),
|
|
64
93
|
this.getIdColumn(this.getIdColumnName()),
|
|
65
94
|
this.getCodeColumnDefinition(),
|
|
66
95
|
this.getNameColumnDefinition(),
|
|
@@ -84,16 +113,27 @@ class AbstractSelectModalDialog extends AdvancedFilteredGrid {
|
|
|
84
113
|
return 800;
|
|
85
114
|
}
|
|
86
115
|
onOk() {
|
|
87
|
-
if (this.
|
|
116
|
+
if (this.props.preselectedIds) {
|
|
117
|
+
const selectedData = this.getLoadedData().filter((value) => value.selected);
|
|
118
|
+
this.props.onItemsSelected(selectedData);
|
|
119
|
+
}
|
|
120
|
+
else if (this.state.selectedData.length > 0) {
|
|
88
121
|
this.props.onItemsSelected(this.state.selectedData);
|
|
89
122
|
}
|
|
90
123
|
}
|
|
91
124
|
get okButtonProps() {
|
|
92
|
-
|
|
125
|
+
if (this.props.preselectedIds) {
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
return { disabled: this.state.selectedData.length === 0 };
|
|
130
|
+
}
|
|
93
131
|
}
|
|
94
132
|
onRowDoubleClicked(event) {
|
|
95
|
-
|
|
96
|
-
|
|
133
|
+
if (!this.props.preselectedIds) {
|
|
134
|
+
const item = event.data;
|
|
135
|
+
this.props.onItemsSelected([item]);
|
|
136
|
+
}
|
|
97
137
|
}
|
|
98
138
|
render() {
|
|
99
139
|
const { visible, initialWidth, initialHeight } = this.props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractSelectModalDialog.js","sourceRoot":"","sources":["../../../../../coreui/components/select/abstractSelectModalDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport Entity from \"../../../api/types/entity\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {GridReadyEvent, IGetRowsParams, RowDoubleClickedEvent, SelectionChangedEvent} from \"ag-grid-community\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport AbstractEntityApi, {PageableList} from \"../../../api/abstractEntityApi\";\r\nimport AdvancedFilteredGrid, {\r\n AdvancedFilteredGridProps,\r\n AdvancedFilteredGridState\r\n} from \"../advancedFilter/advancedFilteredGrid\";\r\nimport AdvancedFilterButton from \"../advancedFilter/advancedFilterButton\";\r\nimport {WarningOutlined} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport ColorTag from \"../colorTag/colorTag\";\r\nimport type {ButtonProps} from \"antd/es/button/button\";\r\n\r\nexport interface AbstractSelectModalDialogProps<T extends Entity> extends AdvancedFilteredGridProps<T> {\r\n api: AbstractEntityApi<T>\r\n\r\n multiSelect?: boolean\r\n visible: boolean\r\n initialWidth?: number\r\n initialHeight?: number\r\n\r\n onItemsSelected(selectedItems: T[]): void\r\n\r\n onCancel(): void\r\n}\r\n\r\nexport interface AbstractSelectModalDialogState<T extends Entity> extends AdvancedFilteredGridState<T> {\r\n totalNumberOfRows?: number\r\n}\r\n\r\nexport default abstract class AbstractSelectModalDialog<T extends Entity,\r\n P extends AbstractSelectModalDialogProps<T>,\r\n S extends AbstractSelectModalDialogState<T> = AbstractSelectModalDialogState<T>>\r\n extends AdvancedFilteredGrid<T, P, S> {\r\n\r\n private static MAX_ROWS_TO_SHOW = 1_000;\r\n\r\n protected initialState: AbstractSelectModalDialogState<T> = {\r\n loading: false,\r\n columnDefs: this.getInitialColumnDefs(),\r\n datasource: {\r\n getRows: async (params: IGetRowsParams) => {\r\n if (this.firstLoadedPage) {\r\n let pageableList: PageableList<T>;\r\n if (this.manualReload && params.startRow === 0 && params.endRow === 100) {\r\n this.manualReload = false;\r\n pageableList = this.firstLoadedPage;\r\n } else {\r\n pageableList = await this.getRecords(params.startRow, params.endRow);\r\n }\r\n this.setState({totalNumberOfRows: pageableList.totalNumberOfRows});\r\n let totalNumberOfRows = pageableList.totalNumberOfRows;\r\n if (totalNumberOfRows > AbstractSelectModalDialog.MAX_ROWS_TO_SHOW) {\r\n totalNumberOfRows = AbstractSelectModalDialog.MAX_ROWS_TO_SHOW;\r\n }\r\n this.adaptLoadedData(pageableList.data);\r\n params.successCallback(pageableList.data, totalNumberOfRows);\r\n } else {\r\n params.successCallback([], 0);\r\n }\r\n }\r\n },\r\n selectedData: [],\r\n\r\n filterConditions: [],\r\n }\r\n\r\n protected constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onRowDoubleClicked = this.onRowDoubleClicked.bind(this);\r\n this.onOk = this.onOk.bind(this);\r\n }\r\n\r\n protected adaptLoadedData(data: T[]) {\r\n data;\r\n }\r\n\r\n abstract getIdColumnName(): string;\r\n\r\n abstract getTitle(): string;\r\n\r\n protected getCodeColumnDefinition(): DataGridColDef {\r\n return this.getCodeColumn({flex: 0.5});\r\n }\r\n\r\n protected getNameColumnDefinition(): DataGridColDef {\r\n return this.getNameColumn({flex: 0.5});\r\n }\r\n\r\n protected getExtraColumnDefinitions(): DataGridColDef[] {\r\n return [];\r\n }\r\n\r\n getOnlyValidRecords(): boolean {\r\n return true;\r\n }\r\n\r\n protected getInitialColumnDefs(): DataGridColDef[] {\r\n if (!this.initialColumnDefs) {\r\n this.initialColumnDefs = [\r\n this.getIdColumn(this.getIdColumnName()),\r\n this.getCodeColumnDefinition(),\r\n this.getNameColumnDefinition(),\r\n ...this.getExtraColumnDefinitions()\r\n ]\r\n }\r\n return this.initialColumnDefs;\r\n }\r\n\r\n protected renderToolbarButtons(): React.ReactElement | undefined {\r\n const advancedFilterConfig = this.getAdvancedFilterConfig();\r\n\r\n if (advancedFilterConfig) {\r\n return (\r\n <AdvancedFilterButton\r\n advancedFilterApi={this.props.advancedFilterApi}\r\n listName={advancedFilterConfig.listName}\r\n columnDefinitions={this.getAdvancedFilterColumnDefinitions()}\r\n filterConditions={this.state.filterConditions}\r\n onApplyFilter={this.onApplyFilter}\r\n />\r\n );\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n onSelectionChanged(event: SelectionChangedEvent): void {\r\n const selectedRows = event.api.getSelectedRows();\r\n this.setState({selectedData: selectedRows});\r\n }\r\n\r\n protected getInitialWidth(): number {\r\n return 800;\r\n }\r\n\r\n protected onOk() {\r\n if (this.state.selectedData.length > 0) {\r\n this.props.onItemsSelected(this.state.selectedData);\r\n }\r\n }\r\n\r\n protected get okButtonProps(): ButtonProps | undefined {\r\n return {disabled: this.state.selectedData.length === 0}\r\n }\r\n\r\n protected onRowDoubleClicked(event: RowDoubleClickedEvent): void {\r\n const item = event.data as T;\r\n this.props.onItemsSelected([item]);\r\n }\r\n\r\n render() {\r\n const {visible, initialWidth, initialHeight} = this.props;\r\n\r\n return (\r\n <ModalDialog\r\n mode={ModalDialogMode.OK_CANCEL}\r\n title={\r\n <>\r\n {this.getTitle()}\r\n {!!this.state.totalNumberOfRows && this.state.totalNumberOfRows > AbstractSelectModalDialog.MAX_ROWS_TO_SHOW &&\r\n <div style={{display: \"inline\"}}>\r\n <ColorTag\r\n style={{whiteSpace: \"break-spaces\", marginLeft: 8}}\r\n color=\"warning\"\r\n icon={<WarningOutlined/>}\r\n >\r\n <span>{i18n(\"Displaying first %{count} records\", {count: AbstractSelectModalDialog.MAX_ROWS_TO_SHOW+\"\"})}</span>\r\n </ColorTag>\r\n </div>\r\n }\r\n </>\r\n }\r\n onOk={this.onOk}\r\n onCancel={this.props.onCancel}\r\n initialWidth={initialWidth ?? this.getInitialWidth()}\r\n initialHeight={initialHeight ?? window.innerHeight * 0.9}\r\n maskClosable={false}\r\n open={visible}\r\n okButtonProps={this.okButtonProps}\r\n >\r\n <ExtendedDataGrid<T>\r\n ref={(dataGrid) => {\r\n this.dataGrid = dataGrid;\r\n }}\r\n defaultGridConfiguration={{pageSize: -1, columnSearchVisible: true}}\r\n onGridReady={(params: GridReadyEvent) => {\r\n this.gridApi = params.api;\r\n }}\r\n columnDefs={this.state.columnDefs}\r\n onLoadData={this.onLoadData}\r\n rowModelType=\"infinite\"\r\n datasource={this.state.datasource}\r\n rowSelection={this.props.multiSelect ? \"multiple\" : \"single\"}\r\n onSelectionChanged={this.onSelectionChanged}\r\n onRowDoubleClicked={this.onRowDoubleClicked}\r\n toolbar={{\r\n toolbarButtons: this.renderToolbarButtons(),\r\n }}\r\n search={{\r\n hidden: true,\r\n }}\r\n onSortChanged={() => {\r\n this.dataGrid?.loadData();\r\n }}\r\n panelStyle={{padding: 0}}\r\n noRecordsOverlayRenderer={() => <div/>}\r\n />\r\n </ModalDialog>\r\n )\r\n }\r\n\r\n}"]}
|
|
1
|
+
{"version":3,"file":"abstractSelectModalDialog.js","sourceRoot":"","sources":["../../../../../coreui/components/select/abstractSelectModalDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport Entity from \"../../../api/types/entity\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {GridReadyEvent, IGetRowsParams, RowDoubleClickedEvent, SelectionChangedEvent} from \"ag-grid-community\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport AbstractEntityApi, {PageableList} from \"../../../api/abstractEntityApi\";\r\nimport AdvancedFilteredGrid, {\r\n AdvancedFilteredGridProps,\r\n AdvancedFilteredGridState\r\n} from \"../advancedFilter/advancedFilteredGrid\";\r\nimport AdvancedFilterButton from \"../advancedFilter/advancedFilterButton\";\r\nimport {WarningOutlined} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport ColorTag from \"../colorTag/colorTag\";\r\nimport type {ButtonProps} from \"antd/es/button/button\";\r\nimport {Checkbox} from \"antd\";\r\n\r\nexport interface WithSelected {\r\n selected?: boolean\r\n}\r\n\r\nexport interface AbstractSelectModalDialogProps<T extends Entity> extends AdvancedFilteredGridProps<T> {\r\n api: AbstractEntityApi<T>\r\n\r\n multiSelect?: boolean\r\n preselectedIds?: number[]\r\n visible: boolean\r\n initialWidth?: number\r\n initialHeight?: number\r\n\r\n onItemsSelected(selectedItems: T[]): void\r\n\r\n onCancel(): void\r\n}\r\n\r\nexport interface AbstractSelectModalDialogState<T extends Entity> extends AdvancedFilteredGridState<T> {\r\n totalNumberOfRows?: number\r\n}\r\n\r\nexport default abstract class AbstractSelectModalDialog<T extends Entity,\r\n P extends AbstractSelectModalDialogProps<T>,\r\n S extends AbstractSelectModalDialogState<T> = AbstractSelectModalDialogState<T>>\r\n extends AdvancedFilteredGrid<T, P, S> {\r\n\r\n private static MAX_ROWS_TO_SHOW = 1_000;\r\n\r\n protected initialState: AbstractSelectModalDialogState<T> = {\r\n loading: false,\r\n columnDefs: this.getInitialColumnDefs(),\r\n datasource: {\r\n getRows: async (params: IGetRowsParams) => {\r\n if (this.firstLoadedPage) {\r\n let pageableList: PageableList<T>;\r\n if (this.manualReload && params.startRow === 0 && params.endRow === 100) {\r\n this.manualReload = false;\r\n pageableList = this.firstLoadedPage;\r\n } else {\r\n pageableList = await this.getRecords(params.startRow, params.endRow);\r\n }\r\n this.setState({totalNumberOfRows: pageableList.totalNumberOfRows});\r\n let totalNumberOfRows = pageableList.totalNumberOfRows;\r\n if (totalNumberOfRows > AbstractSelectModalDialog.MAX_ROWS_TO_SHOW) {\r\n totalNumberOfRows = AbstractSelectModalDialog.MAX_ROWS_TO_SHOW;\r\n }\r\n this.adaptLoadedData(pageableList.data);\r\n params.successCallback(pageableList.data, totalNumberOfRows);\r\n } else {\r\n params.successCallback([], 0);\r\n }\r\n }\r\n },\r\n selectedData: [],\r\n\r\n filterConditions: [],\r\n }\r\n\r\n protected constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onRowDoubleClicked = this.onRowDoubleClicked.bind(this);\r\n this.onOk = this.onOk.bind(this);\r\n }\r\n\r\n protected adaptLoadedData(data: T[]) {\r\n const preselectedSet = new Set(this.props.preselectedIds ?? []);\r\n\r\n data.forEach((value: T & WithSelected) => {\r\n if (preselectedSet.has(value.id)) {\r\n value.selected = true;\r\n }\r\n })\r\n }\r\n\r\n abstract getIdColumnName(): string;\r\n\r\n abstract getTitle(): string;\r\n\r\n protected getSelectionColumnDefinition(): DataGridColDef {\r\n return {\r\n headerName: i18n(\"Select\"),\r\n colId: \"selected\",\r\n field: \"selected\",\r\n width: 40,\r\n cellRenderer: (params: any) => {\r\n const data = params.data as T & WithSelected;\r\n\r\n if (!data) {\r\n return null;\r\n }\r\n\r\n return (\r\n <span style={{height: \"100%\", display: \"flex\", justifyContent: \"center\"}}>\r\n <Checkbox\r\n checked={data.selected}\r\n onChange={e => {\r\n data.selected = e.target.checked;\r\n const rowNode = this.gridApi?.getRowNode(data.id.toString());\r\n rowNode?.updateData(data);\r\n }}\r\n />\r\n </span>\r\n );\r\n },\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }\r\n }\r\n\r\n protected getCodeColumnDefinition(): DataGridColDef {\r\n return this.getCodeColumn({flex: 0.5});\r\n }\r\n\r\n protected getNameColumnDefinition(): DataGridColDef {\r\n return this.getNameColumn({flex: 0.5});\r\n }\r\n\r\n protected getExtraColumnDefinitions(): DataGridColDef[] {\r\n return [];\r\n }\r\n\r\n getOnlyValidRecords(): boolean {\r\n return true;\r\n }\r\n\r\n protected getInitialColumnDefs(): DataGridColDef[] {\r\n if (!this.initialColumnDefs) {\r\n this.initialColumnDefs = [\r\n ...(this.props.preselectedIds ? [this.getSelectionColumnDefinition()] : []),\r\n this.getIdColumn(this.getIdColumnName()),\r\n this.getCodeColumnDefinition(),\r\n this.getNameColumnDefinition(),\r\n ...this.getExtraColumnDefinitions()\r\n ]\r\n }\r\n\r\n return this.initialColumnDefs;\r\n }\r\n\r\n protected renderToolbarButtons(): React.ReactElement | undefined {\r\n const advancedFilterConfig = this.getAdvancedFilterConfig();\r\n\r\n if (advancedFilterConfig) {\r\n return (\r\n <AdvancedFilterButton\r\n advancedFilterApi={this.props.advancedFilterApi}\r\n listName={advancedFilterConfig.listName}\r\n columnDefinitions={this.getAdvancedFilterColumnDefinitions()}\r\n filterConditions={this.state.filterConditions}\r\n onApplyFilter={this.onApplyFilter}\r\n />\r\n );\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n onSelectionChanged(event: SelectionChangedEvent): void {\r\n const selectedRows = event.api.getSelectedRows();\r\n this.setState({selectedData: selectedRows});\r\n }\r\n\r\n protected getInitialWidth(): number {\r\n return 800;\r\n }\r\n\r\n protected onOk() {\r\n if (this.props.preselectedIds) {\r\n const selectedData = this.getLoadedData().filter((value: T & WithSelected) => value.selected);\r\n this.props.onItemsSelected(selectedData);\r\n } else if (this.state.selectedData.length > 0) {\r\n this.props.onItemsSelected(this.state.selectedData);\r\n }\r\n }\r\n\r\n protected get okButtonProps(): ButtonProps | undefined {\r\n if (this.props.preselectedIds) {\r\n return undefined;\r\n } else {\r\n return {disabled: this.state.selectedData.length === 0}\r\n }\r\n }\r\n\r\n protected onRowDoubleClicked(event: RowDoubleClickedEvent): void {\r\n if (!this.props.preselectedIds) {\r\n const item = event.data as T;\r\n this.props.onItemsSelected([item]);\r\n }\r\n }\r\n\r\n render() {\r\n const {visible, initialWidth, initialHeight} = this.props;\r\n\r\n return (\r\n <ModalDialog\r\n mode={ModalDialogMode.OK_CANCEL}\r\n title={\r\n <>\r\n {this.getTitle()}\r\n {!!this.state.totalNumberOfRows && this.state.totalNumberOfRows > AbstractSelectModalDialog.MAX_ROWS_TO_SHOW &&\r\n <div style={{display: \"inline\"}}>\r\n <ColorTag\r\n style={{whiteSpace: \"break-spaces\", marginLeft: 8}}\r\n color=\"warning\"\r\n icon={<WarningOutlined/>}\r\n >\r\n <span>{i18n(\"Displaying first %{count} records\", {count: AbstractSelectModalDialog.MAX_ROWS_TO_SHOW+\"\"})}</span>\r\n </ColorTag>\r\n </div>\r\n }\r\n </>\r\n }\r\n onOk={this.onOk}\r\n onCancel={this.props.onCancel}\r\n initialWidth={initialWidth ?? this.getInitialWidth()}\r\n initialHeight={initialHeight ?? window.innerHeight * 0.9}\r\n maskClosable={false}\r\n open={visible}\r\n okButtonProps={this.okButtonProps}\r\n >\r\n <ExtendedDataGrid<T>\r\n ref={(dataGrid) => {\r\n this.dataGrid = dataGrid;\r\n }}\r\n defaultGridConfiguration={{pageSize: -1, columnSearchVisible: true}}\r\n onGridReady={(params: GridReadyEvent) => {\r\n this.gridApi = params.api;\r\n }}\r\n columnDefs={this.state.columnDefs}\r\n onLoadData={this.onLoadData}\r\n rowModelType=\"infinite\"\r\n datasource={this.state.datasource}\r\n rowSelection={this.props.multiSelect ? \"multiple\" : \"single\"}\r\n onSelectionChanged={this.onSelectionChanged}\r\n onRowDoubleClicked={this.onRowDoubleClicked}\r\n toolbar={{\r\n toolbarButtons: this.renderToolbarButtons(),\r\n }}\r\n search={{\r\n hidden: true,\r\n }}\r\n onSortChanged={() => {\r\n this.dataGrid?.loadData();\r\n }}\r\n panelStyle={{padding: 0}}\r\n noRecordsOverlayRenderer={() => <div/>}\r\n />\r\n </ModalDialog>\r\n )\r\n }\r\n\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webPushSwitch.js","sourceRoot":"","sources":["../../../../../coreui/components/webPush/webPushSwitch.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\
|
|
1
|
+
{"version":3,"file":"webPushSwitch.js","sourceRoot":"","sources":["../../../../../coreui/components/webPush/webPushSwitch.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {Switch} from \"antd\";\nimport i18n from \"d2core/i18n/i18n\";\nimport {WebPushApi} from \"../../../api/webPush/webPushApi\";\nimport WebPushUtils from \"../../../api/webPush/webPushUtils\";\nimport {EncodingUtils} from \"../../../api/encoding/encodingUtils\";\n\ninterface Props {\n webPushApi: WebPushApi\n}\n\ninterface State {\n loading: boolean\n isSubscribed: boolean\n}\n\nexport default class WebPushSwitch extends React.Component<Props, State> {\n constructor(props: Readonly<Props>) {\n super(props);\n\n this.state = {\n loading: true,\n isSubscribed: false,\n }\n }\n\n componentDidMount() {\n this.updateSubscriptionState();\n }\n\n private updateSubscriptionState() {\n WebPushUtils.getSubscription().then(subscription => {\n this.setState({\n isSubscribed: subscription !== null,\n loading: false,\n });\n });\n }\n\n private async subscribe() {\n const applicationServerKey = await this.props.webPushApi.getPublicVapidKey();\n\n // 1. Ask for notification permission\n const permission = await Notification.requestPermission();\n if (permission !== \"granted\") {\n alert(\"Notifications not allowed\");\n return;\n }\n\n // 2. Get service worker\n const registration = await navigator.serviceWorker.ready;\n\n // 3. Subscribe to push\n const subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: EncodingUtils.base64ToUint8Array(applicationServerKey),\n });\n\n await this.props.webPushApi.saveSubscription(subscription);\n }\n\n private async unsubscribe() {\n const subscription = await WebPushUtils.getSubscription();\n\n if (subscription) {\n const success = await subscription.unsubscribe();\n\n if (success) {\n console.log(\"Unsubscribed: \", subscription.endpoint);\n await this.props.webPushApi.deleteSubscription(subscription);\n } else {\n console.warn(\"Failed to unsubscribe.\");\n }\n } else {\n console.log(\"No subscription found.\");\n }\n }\n\n render() {\n return (\n <Switch\n loading={this.state.loading}\n checked={this.state.isSubscribed}\n checkedChildren={i18n(\"Notifications\")}\n unCheckedChildren={i18n(\"Notifications\")}\n onChange={async checked => {\n this.setState({loading: true});\n if (checked) {\n await this.subscribe();\n } else {\n await this.unsubscribe()\n }\n\n this.updateSubscriptionState();\n }}\n />\n );\n }\n\n}"]}
|
package/coreui/images/logo.svg
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
-
<svg width="100%" height="100%" viewBox="0 0 68 62" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
|
4
|
-
<g transform="matrix(1,0,0,1,-172.565,-296.134)">
|
|
5
|
-
<g transform="matrix(1,0,0,1,182.93,310.677)">
|
|
6
|
-
<path d="M0,32.646L-10.365,32.646L-10.365,41.595L0,41.595C1.637,44.92 5.052,47.189 9.036,47.189C13.018,47.189 16.433,44.92 18.07,41.595L56.763,41.595L56.763,32.646L18.071,32.646C16.434,29.321 13.018,27.053 9.036,27.053C5.052,27.053 1.637,29.321 0,32.646M28.326,11.846L-10.365,11.846L-10.365,20.795L28.327,20.795C29.963,24.12 33.379,26.388 37.364,26.388C41.346,26.388 44.761,24.12 46.398,20.795L56.763,20.795L56.763,11.846L46.398,11.846C44.761,8.521 41.346,6.254 37.364,6.254C33.379,6.254 29.963,8.521 28.326,11.846M0.001,-8.951L-10.365,-8.951L-10.365,-0.003L0,-0.003C1.637,3.323 5.052,5.59 9.036,5.59C13.018,5.59 16.434,3.323 18.071,-0.003L56.763,-0.003L56.763,-8.951L18.07,-8.951C16.433,-12.276 13.018,-14.543 9.036,-14.543C5.052,-14.543 1.637,-12.276 0.001,-8.951" style="fill:rgb(1,52,255);"/>
|
|
7
|
-
</g>
|
|
8
|
-
</g>
|
|
9
|
-
</svg>
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
+
<svg width="100%" height="100%" viewBox="0 0 68 62" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
|
4
|
+
<g transform="matrix(1,0,0,1,-172.565,-296.134)">
|
|
5
|
+
<g transform="matrix(1,0,0,1,182.93,310.677)">
|
|
6
|
+
<path d="M0,32.646L-10.365,32.646L-10.365,41.595L0,41.595C1.637,44.92 5.052,47.189 9.036,47.189C13.018,47.189 16.433,44.92 18.07,41.595L56.763,41.595L56.763,32.646L18.071,32.646C16.434,29.321 13.018,27.053 9.036,27.053C5.052,27.053 1.637,29.321 0,32.646M28.326,11.846L-10.365,11.846L-10.365,20.795L28.327,20.795C29.963,24.12 33.379,26.388 37.364,26.388C41.346,26.388 44.761,24.12 46.398,20.795L56.763,20.795L56.763,11.846L46.398,11.846C44.761,8.521 41.346,6.254 37.364,6.254C33.379,6.254 29.963,8.521 28.326,11.846M0.001,-8.951L-10.365,-8.951L-10.365,-0.003L0,-0.003C1.637,3.323 5.052,5.59 9.036,5.59C13.018,5.59 16.434,3.323 18.071,-0.003L56.763,-0.003L56.763,-8.951L18.07,-8.951C16.433,-12.276 13.018,-14.543 9.036,-14.543C5.052,-14.543 1.637,-12.276 0.001,-8.951" style="fill:rgb(1,52,255);"/>
|
|
7
|
+
</g>
|
|
8
|
+
</g>
|
|
9
|
+
</svg>
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
-
<svg width="100%" height="100%" viewBox="172 295 459 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
|
4
|
-
<g id="Layer-1" serif:id="Layer 1">
|
|
5
|
-
<g transform="matrix(1,0,0,1,182.93,310.677)">
|
|
6
|
-
<path d="M0,32.646L-10.365,32.646L-10.365,41.595L0,41.595C1.637,44.92 5.052,47.189 9.036,47.189C13.018,47.189 16.433,44.92 18.07,41.595L56.763,41.595L56.763,32.646L18.071,32.646C16.434,29.321 13.018,27.053 9.036,27.053C5.052,27.053 1.637,29.321 0,32.646M28.326,11.846L-10.365,11.846L-10.365,20.795L28.327,20.795C29.963,24.12 33.379,26.388 37.364,26.388C41.346,26.388 44.761,24.12 46.398,20.795L56.763,20.795L56.763,11.846L46.398,11.846C44.761,8.521 41.346,6.254 37.364,6.254C33.379,6.254 29.963,8.521 28.326,11.846M0.001,-8.951L-10.365,-8.951L-10.365,-0.003L0,-0.003C1.637,3.323 5.052,5.59 9.036,5.59C13.018,5.59 16.434,3.323 18.071,-0.003L56.763,-0.003L56.763,-8.951L18.07,-8.951C16.433,-12.276 13.018,-14.543 9.036,-14.543C5.052,-14.543 1.637,-12.276 0.001,-8.951" style="stroke:black;stroke-width:1px;"/>
|
|
7
|
-
</g>
|
|
8
|
-
<g transform="matrix(1,0,0,1,398.066,302.582)">
|
|
9
|
-
<path d="M0,48.893L0,36.861C5.901,39.084 13.946,40.54 23.143,40.54C35.023,40.54 37.627,38.702 37.627,35.712C37.627,26.057 -1.533,34.947 -1.533,13.64C-1.533,3.141 7.357,-3.142 27.512,-3.142C34.18,-3.142 41,-2.223 46.441,-0.766L48.509,11.036C42.685,9.503 34.868,8.354 25.978,8.354C14.101,8.354 11.494,10.193 11.494,13.181C11.494,22.837 50.656,13.948 50.656,35.252C50.656,45.751 41.767,52.035 21.611,52.035C13.716,52.035 5.746,50.734 0,48.893M-62.23,24.447C-62.23,6.208 -51.96,-3.142 -29.429,-3.142C-23.759,-3.142 -17.168,-2.452 -11.19,-1.532L-9.198,10.27C-14.792,9.195 -22.533,8.354 -29.429,8.354C-43.071,8.354 -48.053,10.653 -49.277,19.083L-10.194,19.083L-10.194,29.812L-49.277,29.812C-48.053,38.242 -43.071,40.541 -29.429,40.541C-22.533,40.541 -14.792,39.698 -9.198,38.624L-11.19,50.426C-17.168,51.345 -23.759,52.035 -29.429,52.035C-51.96,52.035 -62.23,42.687 -62.23,24.447M56.481,24.447C56.481,5.365 66.214,-3.142 88.132,-3.142C110.051,-3.142 119.782,5.365 119.782,24.447C119.782,43.53 110.051,52.035 88.132,52.035C66.214,52.035 56.481,43.53 56.481,24.447M-120.167,-2.377L-95.184,-2.377C-76.331,-2.377 -68.055,4.215 -68.055,19.005C-68.055,33.797 -76.331,40.386 -95.184,40.386L-107.827,40.386L-107.827,51.27L-120.167,51.27L-120.167,-2.377ZM-144.688,-0.844L-132.426,-2.758L-132.426,51.269L-144.688,51.269L-144.688,-0.844ZM219.637,44.756C219.637,40.924 222.319,38.242 226.151,38.242C229.983,38.242 232.664,40.924 232.664,44.756C232.664,48.587 229.983,51.269 226.151,51.269C222.319,51.269 219.637,48.587 219.637,44.756M155.188,-3.142C161.318,-3.142 166.453,-2.682 171.127,-1.532L173.121,10.193C167.987,9.044 162.084,8.354 156.643,8.354C144.153,8.354 140.934,10.883 140.934,19.389L140.934,22.915L171.972,22.915L171.972,34.027L140.934,34.027L140.934,50.964L128.672,50.964L128.672,19.849C128.672,4.829 137.944,-3.142 155.188,-3.142M197.872,9.12L177.717,9.12L177.717,-2.375L230.366,-2.375L230.366,9.12L210.212,9.12L210.212,50.964L197.872,50.964L197.872,9.12ZM226.151,50.121C229.216,50.121 231.439,47.898 231.439,44.756C231.439,41.614 229.216,39.392 226.151,39.392C223.084,39.392 220.862,41.614 220.862,44.756C220.862,47.898 223.084,50.121 226.151,50.121M223.852,41.154L226.456,41.154C228.067,41.154 228.757,41.996 228.757,43.377C228.757,44.372 228.373,45.061 227.606,45.369L229.216,48.127L227.684,48.127L226.226,45.599L225.155,45.599L225.155,48.127L223.852,48.127L223.852,41.154ZM226.304,44.448C227.071,44.448 227.376,44.296 227.376,43.377C227.376,42.456 227.071,42.304 226.304,42.304L225.155,42.304L225.155,44.448L226.304,44.448ZM88.132,40.541C102.694,40.541 106.371,37.321 106.371,24.447C106.371,11.573 102.694,8.354 88.132,8.354C73.571,8.354 69.892,11.573 69.892,24.447C69.892,37.321 73.571,40.541 88.132,40.541M-92.272,28.892C-84.531,28.892 -81.081,26.21 -81.081,19.005C-81.081,12.108 -84.147,9.12 -92.272,9.12L-107.827,9.12L-107.827,28.892L-92.272,28.892Z" style="fill-rule:nonzero;"/>
|
|
10
|
-
</g>
|
|
11
|
-
</g>
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
+
<svg width="100%" height="100%" viewBox="172 295 459 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
|
4
|
+
<g id="Layer-1" serif:id="Layer 1">
|
|
5
|
+
<g transform="matrix(1,0,0,1,182.93,310.677)">
|
|
6
|
+
<path d="M0,32.646L-10.365,32.646L-10.365,41.595L0,41.595C1.637,44.92 5.052,47.189 9.036,47.189C13.018,47.189 16.433,44.92 18.07,41.595L56.763,41.595L56.763,32.646L18.071,32.646C16.434,29.321 13.018,27.053 9.036,27.053C5.052,27.053 1.637,29.321 0,32.646M28.326,11.846L-10.365,11.846L-10.365,20.795L28.327,20.795C29.963,24.12 33.379,26.388 37.364,26.388C41.346,26.388 44.761,24.12 46.398,20.795L56.763,20.795L56.763,11.846L46.398,11.846C44.761,8.521 41.346,6.254 37.364,6.254C33.379,6.254 29.963,8.521 28.326,11.846M0.001,-8.951L-10.365,-8.951L-10.365,-0.003L0,-0.003C1.637,3.323 5.052,5.59 9.036,5.59C13.018,5.59 16.434,3.323 18.071,-0.003L56.763,-0.003L56.763,-8.951L18.07,-8.951C16.433,-12.276 13.018,-14.543 9.036,-14.543C5.052,-14.543 1.637,-12.276 0.001,-8.951" style="stroke:black;stroke-width:1px;"/>
|
|
7
|
+
</g>
|
|
8
|
+
<g transform="matrix(1,0,0,1,398.066,302.582)">
|
|
9
|
+
<path d="M0,48.893L0,36.861C5.901,39.084 13.946,40.54 23.143,40.54C35.023,40.54 37.627,38.702 37.627,35.712C37.627,26.057 -1.533,34.947 -1.533,13.64C-1.533,3.141 7.357,-3.142 27.512,-3.142C34.18,-3.142 41,-2.223 46.441,-0.766L48.509,11.036C42.685,9.503 34.868,8.354 25.978,8.354C14.101,8.354 11.494,10.193 11.494,13.181C11.494,22.837 50.656,13.948 50.656,35.252C50.656,45.751 41.767,52.035 21.611,52.035C13.716,52.035 5.746,50.734 0,48.893M-62.23,24.447C-62.23,6.208 -51.96,-3.142 -29.429,-3.142C-23.759,-3.142 -17.168,-2.452 -11.19,-1.532L-9.198,10.27C-14.792,9.195 -22.533,8.354 -29.429,8.354C-43.071,8.354 -48.053,10.653 -49.277,19.083L-10.194,19.083L-10.194,29.812L-49.277,29.812C-48.053,38.242 -43.071,40.541 -29.429,40.541C-22.533,40.541 -14.792,39.698 -9.198,38.624L-11.19,50.426C-17.168,51.345 -23.759,52.035 -29.429,52.035C-51.96,52.035 -62.23,42.687 -62.23,24.447M56.481,24.447C56.481,5.365 66.214,-3.142 88.132,-3.142C110.051,-3.142 119.782,5.365 119.782,24.447C119.782,43.53 110.051,52.035 88.132,52.035C66.214,52.035 56.481,43.53 56.481,24.447M-120.167,-2.377L-95.184,-2.377C-76.331,-2.377 -68.055,4.215 -68.055,19.005C-68.055,33.797 -76.331,40.386 -95.184,40.386L-107.827,40.386L-107.827,51.27L-120.167,51.27L-120.167,-2.377ZM-144.688,-0.844L-132.426,-2.758L-132.426,51.269L-144.688,51.269L-144.688,-0.844ZM219.637,44.756C219.637,40.924 222.319,38.242 226.151,38.242C229.983,38.242 232.664,40.924 232.664,44.756C232.664,48.587 229.983,51.269 226.151,51.269C222.319,51.269 219.637,48.587 219.637,44.756M155.188,-3.142C161.318,-3.142 166.453,-2.682 171.127,-1.532L173.121,10.193C167.987,9.044 162.084,8.354 156.643,8.354C144.153,8.354 140.934,10.883 140.934,19.389L140.934,22.915L171.972,22.915L171.972,34.027L140.934,34.027L140.934,50.964L128.672,50.964L128.672,19.849C128.672,4.829 137.944,-3.142 155.188,-3.142M197.872,9.12L177.717,9.12L177.717,-2.375L230.366,-2.375L230.366,9.12L210.212,9.12L210.212,50.964L197.872,50.964L197.872,9.12ZM226.151,50.121C229.216,50.121 231.439,47.898 231.439,44.756C231.439,41.614 229.216,39.392 226.151,39.392C223.084,39.392 220.862,41.614 220.862,44.756C220.862,47.898 223.084,50.121 226.151,50.121M223.852,41.154L226.456,41.154C228.067,41.154 228.757,41.996 228.757,43.377C228.757,44.372 228.373,45.061 227.606,45.369L229.216,48.127L227.684,48.127L226.226,45.599L225.155,45.599L225.155,48.127L223.852,48.127L223.852,41.154ZM226.304,44.448C227.071,44.448 227.376,44.296 227.376,43.377C227.376,42.456 227.071,42.304 226.304,42.304L225.155,42.304L225.155,44.448L226.304,44.448ZM88.132,40.541C102.694,40.541 106.371,37.321 106.371,24.447C106.371,11.573 102.694,8.354 88.132,8.354C73.571,8.354 69.892,11.573 69.892,24.447C69.892,37.321 73.571,40.541 88.132,40.541M-92.272,28.892C-84.531,28.892 -81.081,26.21 -81.081,19.005C-81.081,12.108 -84.147,9.12 -92.272,9.12L-107.827,9.12L-107.827,28.892L-92.272,28.892Z" style="fill-rule:nonzero;"/>
|
|
10
|
+
</g>
|
|
11
|
+
</g>
|
|
12
12
|
</svg>
|