d2aura 26.0.16 → 26.0.18
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/eda/edaManagerApi.d.ts +10 -4
- package/api/eda/edaManagerApi.js +61 -3
- package/api/eda/edaManagerApi.js.map +1 -1
- package/api/eda/generated/events.d.ts +42 -17
- package/api/eda/generated/events.js +87 -44
- package/api/eda/generated/events.js.map +1 -1
- package/api/eda/generated/structures.d.ts +30 -0
- package/api/eda/generated/structures.js.map +1 -1
- package/api/webAuthn/webAuthnManageApi.d.ts +9 -0
- package/api/webAuthn/webAuthnManageApi.js +61 -0
- package/api/webAuthn/webAuthnManageApi.js.map +1 -0
- package/api/webPush/webPushApi.js.map +1 -1
- package/api/webPush/webPushUtils.js.map +1 -1
- package/core/i18n/d2aura.sk.json +34 -0
- package/coreui/auth/passkeyLogin.d.ts +8 -0
- package/coreui/auth/passkeyLogin.js +70 -0
- package/coreui/auth/passkeyLogin.js.map +1 -0
- package/coreui/auth/passkeyLoginButton.d.ts +9 -0
- package/coreui/auth/passkeyLoginButton.js +24 -0
- package/coreui/auth/passkeyLoginButton.js.map +1 -0
- package/coreui/components/edaManagerComponent/components/edaChartViewer.js +1 -1
- package/coreui/components/edaManagerComponent/components/edaChartViewer.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js +3 -6
- package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaDetailPanel.js +1 -0
- package/coreui/components/edaManagerComponent/components/edaDetailPanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaDialogTitle.d.ts +8 -0
- package/coreui/components/edaManagerComponent/components/edaDialogTitle.js +10 -0
- package/coreui/components/edaManagerComponent/components/edaDialogTitle.js.map +1 -0
- package/coreui/components/edaManagerComponent/components/edaGraphPanel.js +2 -1
- package/coreui/components/edaManagerComponent/components/edaGraphPanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.js +1 -1
- package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.d.ts +1 -6
- package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.js +9 -8
- package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.d.ts +0 -1
- package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js +4 -4
- package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.js +1 -1
- package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaTablePanel.js +7 -24
- package/coreui/components/edaManagerComponent/components/edaTablePanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaTreeView.js +117 -145
- package/coreui/components/edaManagerComponent/components/edaTreeView.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js +19 -16
- package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/constants/actionTypes.d.ts +1 -0
- package/coreui/components/edaManagerComponent/constants/actionTypes.js +1 -0
- package/coreui/components/edaManagerComponent/constants/actionTypes.js.map +1 -1
- package/coreui/components/edaManagerComponent/constants/edaTypes.d.ts +7 -2
- package/coreui/components/edaManagerComponent/constants/edaTypes.js +1 -0
- package/coreui/components/edaManagerComponent/constants/edaTypes.js.map +1 -1
- package/coreui/components/edaManagerComponent/context/edaVectorDataContext.d.ts +4 -2
- package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js.map +1 -1
- package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.d.ts +2 -3
- package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js +118 -67
- package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js.map +1 -1
- package/coreui/components/edaManagerComponent/context/loadingContext.d.ts +11 -1
- package/coreui/components/edaManagerComponent/context/loadingContext.js +40 -2
- package/coreui/components/edaManagerComponent/context/loadingContext.js.map +1 -1
- package/coreui/components/edaManagerComponent/context/useEdaActions.d.ts +1 -0
- package/coreui/components/edaManagerComponent/context/useEdaActions.js +18 -9
- package/coreui/components/edaManagerComponent/context/useEdaActions.js.map +1 -1
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.js +5 -3
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.d.ts +0 -1
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js +3 -5
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.d.ts +0 -1
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js +4 -6
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.js +1 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.js.map +1 -1
- package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.js +46 -12
- package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.js.map +1 -1
- package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.js +10 -8
- package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.js.map +1 -1
- package/coreui/components/edaManagerComponent/dialogs/exportDialog.d.ts +1 -9
- package/coreui/components/edaManagerComponent/dialogs/exportDialog.js +48 -79
- package/coreui/components/edaManagerComponent/dialogs/exportDialog.js.map +1 -1
- package/coreui/components/edaManagerComponent/dialogs/importDialog.d.ts +10 -0
- package/coreui/components/edaManagerComponent/dialogs/importDialog.js +469 -0
- package/coreui/components/edaManagerComponent/dialogs/importDialog.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/export.d.ts +17 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/export.js +335 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/export.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/import.d.ts +65 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/import.js +375 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/import.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/types.d.ts +8 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/types.js +98 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/types.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeCheckbox.d.ts +5 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeCheckbox.js +13 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeCheckbox.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.d.ts +9 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.js +23 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/xmlAttributeHolder.d.ts +20 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/xmlAttributeHolder.js +36 -0
- package/coreui/components/edaManagerComponent/dialogs/importExport/xmlAttributeHolder.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/{groupVectorSelection.d.ts → vectorSelectionDialog.d.ts} +1 -1
- package/coreui/components/edaManagerComponent/dialogs/{groupVectorSelection.js → vectorSelectionDialog.js} +5 -4
- package/coreui/components/edaManagerComponent/dialogs/vectorSelectionDialog.js.map +1 -0
- package/coreui/components/edaManagerComponent/edaDetail.d.ts +2 -3
- package/coreui/components/edaManagerComponent/edaDetail.js +24 -20
- package/coreui/components/edaManagerComponent/edaDetail.js.map +1 -1
- package/coreui/components/edaManagerComponent/edaManager.js +9 -7
- package/coreui/components/edaManagerComponent/edaManager.js.map +1 -1
- package/coreui/components/edaManagerComponent/edaSelect.js +8 -11
- package/coreui/components/edaManagerComponent/edaSelect.js.map +1 -1
- package/coreui/components/edaManagerComponent/utils/utils.d.ts +6 -6
- package/coreui/components/edaManagerComponent/utils/utils.js +63 -5
- package/coreui/components/edaManagerComponent/utils/utils.js.map +1 -1
- package/coreui/components/passkey/passkeyManager.d.ts +7 -0
- package/coreui/components/passkey/passkeyManager.js +75 -0
- package/coreui/components/passkey/passkeyManager.js.map +1 -0
- 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/d2configuration/edaManager/E.EM_DETAIL_IMPL.xml +4 -0
- package/d2configuration/edaManager/E.EM_DETAIL_UNIT.xml +34 -0
- package/d2configuration/edaManager/E.EM_NAVIGATOR_SQL.xml +5 -5
- package/d2configuration/edaManager/E.EM_VECTOR_IMPL.xml +18 -2
- package/d2configuration/edaManager/E.EM_VECTOR_UNIT.xml +377 -16
- package/d2configuration/edaManager/SD.EM_Tree_Item.xml +22 -0
- package/package.json +10 -5
- package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.js.map +0 -1
- package/coreui/components/edaManagerComponent/utils/export.d.ts +0 -9
- package/coreui/components/edaManagerComponent/utils/export.js +0 -570
- package/coreui/components/edaManagerComponent/utils/export.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edaSelect.js","sourceRoot":"","sources":["../../../../../coreui/components/edaManagerComponent/edaSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useContext, useEffect, useMemo, useRef, useState} from \"react\";\r\nimport {ConfigProvider, Empty, Select, theme, Typography} from \"antd\";\r\nimport {SelectProps} from \"antd/es/select\";\r\nimport {CloseCircleOutlined, LoadingOutlined, MonitorOutlined, SelectOutlined} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport SizeContext from \"antd/es/config-provider/SizeContext\";\r\nimport EdaManagerApi, {TreeItem} from \"../../../api/eda/edaManagerApi\";\r\nimport {IdType} from \"./constants/edaTypes\";\r\nimport debounce from \"lodash/debounce\";\r\nimport {AdvancedFilterCondition, AdvancedFilterLogicalOperator, AdvancedFilterOperator} from \"../../../api/advancedFilterApi\";\r\nimport AdvancedFilterUtils from \"../advancedFilter/advancedFilterUtils\";\r\nimport {AdvancedFilterValueType} from \"../../../api/types/advancedFilter\";\r\nimport {FlattenOptionData} from \"rc-select/lib/interface\";\r\nimport ColorTag from \"../colorTag/colorTag\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport {EdaNavigator} from \"./edaNavigator\";\r\nimport {EdaDetail} from \"./edaDetail\";\r\n\r\nexport type DisplayType = \"code\" | \"name\" | \"code_name\" | \"name_code\";\r\n\r\ninterface Props extends Omit<SelectProps<TreeItem | undefined, TreeItem>, \"allowClear\" | \"clearIcon\" | \"showSearch\" | \"labelInValue\" | \"fieldNames\" |\r\n \"options\" | \"suffixIcon\" | \"onSearch\" | \"onFocus\" | \"showArrow\" | \"mode\" | \"loading\" | \"filterOption\" | \"notFoundContent\" | \"menuItemSelectedIcon\" |\r\n \"searchValue\"> {\r\n api: EdaManagerApi\r\n type: IdType\r\n displayType?: DisplayType\r\n showCancelButton?: boolean\r\n showDetailButton?: boolean\r\n showNewObjectButton?: boolean\r\n showOmitted?: boolean\r\n readonly?: boolean\r\n}\r\n\r\nexport const EdaSelect: FC<Props> = ({\r\n api, type, showCancelButton, showDetailButton, showNewObjectButton, displayType, showOmitted, readonly,\r\n disabled, size, value, onClear, onChange, onSelect, ...otherProps\r\n}) => {\r\n const {token} = theme.useToken();\r\n\r\n const sizeContext = useContext(SizeContext);\r\n\r\n const lastSearchRef = useRef<string | null>(null);\r\n const activeRequestRef = useRef<number>(0);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [options, setOptions] = useState<TreeItem[]>([]);\r\n const [detailVisible, setDetailVisible] = useState<boolean>(false);\r\n const [searchVisible, setSearchVisible] = useState<boolean>(false);\r\n\r\n const mergeSize = size ?? sizeContext\r\n\r\n const iconSize = useMemo(() => {\r\n switch (mergeSize) {\r\n case \"small\":\r\n return token.fontSizeSM;\r\n case \"large\":\r\n return token.fontSizeLG;\r\n case \"middle\":\r\n default:\r\n return token.fontSize;\r\n }\r\n }, [mergeSize]);\r\n\r\n const suffixIcon = useMemo(() => {\r\n if (disabled) {\r\n return <></>;\r\n } else if (loading) {\r\n return <LoadingOutlined\r\n style={{fontSize: iconSize}}\r\n />;\r\n } else {\r\n return (\r\n <>\r\n {showCancelButton && value && !readonly &&\r\n <CloseCircleOutlined\r\n style={{color: token.colorError, fontSize: iconSize}}\r\n title={i18n(\"Clear\")}\r\n onClick={() => {\r\n onChange?.(undefined, [])\r\n onClear?.();\r\n }}\r\n />\r\n }\r\n {showDetailButton && value &&\r\n <MonitorOutlined\r\n style={{fontSize: iconSize}}\r\n title={i18n(\"Show Detail\")}\r\n onClick={() => setDetailVisible(true)}\r\n />\r\n }\r\n {showNewObjectButton && !readonly &&\r\n <></>\r\n }\r\n {!readonly && (\r\n <SelectOutlined\r\n style={{fontSize: iconSize}}\r\n title={i18n(\"Open Select Dialog\")}\r\n onClick={() => {\r\n setSearchVisible(true);\r\n }}\r\n />\r\n )}\r\n </>\r\n );\r\n }\r\n\r\n }, [disabled, readonly, loading, showCancelButton, iconSize, token.colorError, value, onClear, onChange]);\r\n\r\n const loadData = useCallback(async (searchString: string) => {\r\n if (searchString === lastSearchRef.current) {\r\n return;\r\n }\r\n\r\n const requestId = ++activeRequestRef.current;\r\n const filterConditions = getFilterConditions(searchString);\r\n\r\n setLoading(true);\r\n lastSearchRef.current = searchString;\r\n\r\n try {\r\n let result: TreeItem[];\r\n\r\n switch (type) {\r\n case IdType.VECTOR:\r\n result = await api.findVectors(filterConditions);\r\n break;\r\n case IdType.GROUP:\r\n result = await api.findGroups(filterConditions);\r\n break;\r\n case IdType.SCENARIO:\r\n result = await api.findScenarios(filterConditions);\r\n break;\r\n }\r\n\r\n if (requestId === activeRequestRef.current) {\r\n setOptions(result);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n } finally {\r\n if (requestId === activeRequestRef.current) {\r\n setLoading(false);\r\n }\r\n }\r\n }, [api, type]);\r\n\r\n const debounceSearch = useMemo(() => {\r\n return debounce(loadData, 500);\r\n }, [loadData]);\r\n\r\n const handleFocus = useCallback(() => {\r\n if (options.length === 0 && !disabled) {\r\n loadData(\"\");\r\n }\r\n }, [options, disabled, loadData]);\r\n\r\n const handleDoubleClick = useCallback(() => {\r\n if (!disabled && !readonly) {\r\n setSearchVisible(true);\r\n }\r\n }, [disabled, readonly]);\r\n\r\n const renderOption = useCallback((oriOption: FlattenOptionData<TreeItem>) => {\r\n return (\r\n <div style={{display: \"flex\", justifyContent: \"space-between\"}}>\r\n <span>{oriOption.data.DisplayName}</span>\r\n <ColorTag>{oriOption.data.Name}</ColorTag>\r\n </div>\r\n )\r\n }, []);\r\n\r\n const renderLabel = useCallback(() => {\r\n switch (displayType) {\r\n default:\r\n case \"code_name\":\r\n return <span>{value?.Name} <Typography.Text type={\"secondary\"}>({value?.DisplayName})</Typography.Text></span>;\r\n case \"name_code\":\r\n return <span>{value?.DisplayName} <Typography.Text type={\"secondary\"}>({value?.Name})</Typography.Text></span>;\r\n case \"code\":\r\n return <span>{value?.Name}</span>;\r\n case \"name\":\r\n return <span>{value?.DisplayName}</span>;\r\n }\r\n }, [value, displayType]);\r\n\r\n const renderDetailPanelDialog = useMemo(() => {\r\n const visible = detailVisible && value;\r\n return (\r\n <ModalDialog\r\n open={detailVisible}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n onCancel={() => setDetailVisible(false)}\r\n title={<span>{i18n(\"Detail\")} <Typography.Text type={\"secondary\"}>({value ? value.Name : \"\"})</Typography.Text></span>}\r\n styles={{body: {padding: 8}}}\r\n initialWidth={720}\r\n initialHeight={window.innerHeight * 0.75}\r\n >\r\n {visible &&\r\n <EdaDetail\r\n api={api}\r\n item={{type, id: value.ID}}\r\n style={{height: \"100%\"}}\r\n />\r\n }\r\n {!visible &&\r\n <div style={{display: 'flex', justifyContent: 'center', padding: 40}}>\r\n <Empty description={i18n(\"No data provided\")}/>\r\n </div>\r\n }\r\n </ModalDialog>\r\n )\r\n }, [detailVisible, type, value, api]);\r\n\r\n const renderSearchPanelDialog = useMemo(() => {\r\n return (\r\n <ModalDialog\r\n open={searchVisible}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n onCancel={() => setSearchVisible(false)}\r\n title={i18n(\"Search\")}\r\n styles={{body: {padding: 8}}}\r\n initialWidth={640}\r\n initialHeight={window.innerHeight * 0.75}\r\n forceRender\r\n >\r\n <EdaNavigator\r\n api={api}\r\n showOmitted={showOmitted}\r\n hideContextMenu\r\n onDoubleClick={(id, item) => {\r\n if (id.type === type) {\r\n onChange?.(item, item);\r\n onSelect?.(item, item);\r\n setSearchVisible(false);\r\n }\r\n }}\r\n />\r\n </ModalDialog>\r\n )\r\n }, [searchVisible, api, showOmitted]);\r\n\r\n useEffect(() => {\r\n return () => debounceSearch.cancel();\r\n }, [debounceSearch]);\r\n\r\n return (\r\n <ConfigProvider componentSize={size}>\r\n {renderDetailPanelDialog}\r\n {renderSearchPanelDialog}\r\n <Select<TreeItem | undefined, TreeItem>\r\n {...otherProps}\r\n disabled={disabled}\r\n value={value}\r\n onSelect={onSelect}\r\n onChange={onChange}\r\n options={options}\r\n showSearch\r\n open={!readonly ? undefined : false}\r\n filterOption={false}\r\n fieldNames={{label: 'DisplayName', value: 'ID'}}\r\n optionFilterProp={\"DisplayName\"}\r\n onSearch={debounceSearch}\r\n onFocus={handleFocus}\r\n optionRender={renderOption}\r\n labelRender={renderLabel}\r\n notFoundContent={null}\r\n suffixIcon={<div style={{display: \"flex\", alignItems: \"center\", gap: 4, color: token.colorTextSecondary}}>{suffixIcon}</div>}\r\n // @ts-ignore\r\n onDoubleClick={handleDoubleClick}\r\n />\r\n </ConfigProvider>\r\n );\r\n}\r\n\r\nfunction getFilterConditionForCode(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition({columnName: \"Meno\", valueType: AdvancedFilterValueType.STRING}, {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n });\r\n}\r\n\r\nfunction getFilterConditionForName(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition({columnName: \"Zobraz_Meno\", valueType: AdvancedFilterValueType.STRING}, {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n })\r\n}\r\n\r\nfunction getFilterConditions(searchString?: string): AdvancedFilterCondition[] {\r\n const filterConditionForCode = getFilterConditionForCode(searchString);\r\n filterConditionForCode.left_par = 1;\r\n filterConditionForCode.logical_operator = AdvancedFilterLogicalOperator.OR;\r\n\r\n const filterConditionForName = getFilterConditionForName(searchString);\r\n filterConditionForName.right_par = 1;\r\n\r\n return [\r\n filterConditionForCode,\r\n filterConditionForName,\r\n ]\r\n}"]}
|
|
1
|
+
{"version":3,"file":"edaSelect.js","sourceRoot":"","sources":["../../../../../coreui/components/edaManagerComponent/edaSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useContext, useEffect, useMemo, useRef, useState} from \"react\";\r\nimport {ConfigProvider, Empty, Select, theme, Typography} from \"antd\";\r\nimport {SelectProps} from \"antd/es/select\";\r\nimport {CloseCircleOutlined, LoadingOutlined, MonitorOutlined, SelectOutlined} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport SizeContext from \"antd/es/config-provider/SizeContext\";\r\nimport EdaManagerApi, {TreeItem} from \"../../../api/eda/edaManagerApi\";\r\nimport {IdType} from \"./constants/edaTypes\";\r\nimport debounce from \"lodash/debounce\";\r\nimport {AdvancedFilterCondition, AdvancedFilterLogicalOperator, AdvancedFilterOperator} from \"../../../api/advancedFilterApi\";\r\nimport AdvancedFilterUtils from \"../advancedFilter/advancedFilterUtils\";\r\nimport {AdvancedFilterValueType} from \"../../../api/types/advancedFilter\";\r\nimport {FlattenOptionData} from \"rc-select/lib/interface\";\r\nimport ColorTag from \"../colorTag/colorTag\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport {EdaNavigator} from \"./edaNavigator\";\r\nimport {EdaDetail} from \"./edaDetail\";\r\nimport {EdaDialogTitle} from \"./components/edaDialogTitle\";\r\n\r\nexport type DisplayType = \"code\" | \"name\" | \"code_name\" | \"name_code\";\r\n\r\ninterface Props extends Omit<SelectProps<TreeItem | undefined, TreeItem>, \"allowClear\" | \"clearIcon\" | \"showSearch\" | \"labelInValue\" | \"fieldNames\" |\r\n \"options\" | \"suffixIcon\" | \"onSearch\" | \"onFocus\" | \"showArrow\" | \"mode\" | \"loading\" | \"filterOption\" | \"notFoundContent\" | \"menuItemSelectedIcon\" |\r\n \"searchValue\"> {\r\n api: EdaManagerApi\r\n type: IdType\r\n displayType?: DisplayType\r\n showCancelButton?: boolean\r\n showDetailButton?: boolean\r\n showNewObjectButton?: boolean\r\n showOmitted?: boolean\r\n readonly?: boolean\r\n}\r\n\r\nexport const EdaSelect: FC<Props> = ({\r\n api, type, showCancelButton, showDetailButton, showNewObjectButton, displayType, showOmitted, readonly,\r\n disabled, size, value, onClear, onChange, onSelect, ...otherProps\r\n}) => {\r\n const {token} = theme.useToken();\r\n\r\n const sizeContext = useContext(SizeContext);\r\n\r\n const lastSearchRef = useRef<string | null>(null);\r\n const activeRequestRef = useRef<number>(0);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [options, setOptions] = useState<TreeItem[]>([]);\r\n const [detailVisible, setDetailVisible] = useState<boolean>(false);\r\n const [searchVisible, setSearchVisible] = useState<boolean>(false);\r\n\r\n const mergeSize = size ?? sizeContext\r\n\r\n const iconSize = useMemo(() => {\r\n switch (mergeSize) {\r\n case \"small\":\r\n return token.fontSizeSM;\r\n case \"large\":\r\n return token.fontSizeLG;\r\n case \"middle\":\r\n default:\r\n return token.fontSize;\r\n }\r\n }, [mergeSize, token.fontSize, token.fontSizeLG, token.fontSizeSM]);\r\n\r\n const suffixIcon = useMemo(() => {\r\n if (disabled) {\r\n return <></>;\r\n } else if (loading) {\r\n return <LoadingOutlined\r\n style={{fontSize: iconSize}}\r\n />;\r\n } else {\r\n return (\r\n <>\r\n {showCancelButton && value && !readonly &&\r\n <CloseCircleOutlined\r\n style={{color: token.colorError, fontSize: iconSize}}\r\n title={i18n(\"Clear\")}\r\n onClick={() => {\r\n onChange?.(undefined, [])\r\n onClear?.();\r\n }}\r\n />\r\n }\r\n {showDetailButton && value &&\r\n <MonitorOutlined\r\n style={{fontSize: iconSize}}\r\n title={i18n(\"Show Detail\")}\r\n onClick={() => setDetailVisible(true)}\r\n />\r\n }\r\n {showNewObjectButton && !readonly &&\r\n <></>\r\n }\r\n {!readonly && (\r\n <SelectOutlined\r\n style={{fontSize: iconSize}}\r\n title={i18n(\"Open Select Dialog\")}\r\n onClick={() => {\r\n setSearchVisible(true);\r\n }}\r\n />\r\n )}\r\n </>\r\n );\r\n }\r\n\r\n }, [disabled, loading, iconSize, showCancelButton, value, readonly, token.colorError, showDetailButton, showNewObjectButton, onChange, onClear]);\r\n\r\n const loadData = useCallback(async (searchString: string) => {\r\n if (searchString === lastSearchRef.current) {\r\n return;\r\n }\r\n\r\n const requestId = ++activeRequestRef.current;\r\n const filterConditions = getFilterConditions(searchString);\r\n\r\n setLoading(true);\r\n lastSearchRef.current = searchString;\r\n\r\n try {\r\n let result: TreeItem[];\r\n\r\n switch (type) {\r\n case IdType.VECTOR:\r\n result = await api.findVectors(filterConditions);\r\n break;\r\n case IdType.GROUP:\r\n result = await api.findGroups(filterConditions);\r\n break;\r\n case IdType.SCENARIO:\r\n result = await api.findScenarios(filterConditions);\r\n break;\r\n case IdType.SET:\r\n return;\r\n }\r\n\r\n if (requestId === activeRequestRef.current) {\r\n setOptions(result);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n } finally {\r\n if (requestId === activeRequestRef.current) {\r\n setLoading(false);\r\n }\r\n }\r\n }, [api, type]);\r\n\r\n const debounceSearch = useMemo(() => {\r\n return debounce(loadData, 500);\r\n }, [loadData]);\r\n\r\n const handleFocus = useCallback(() => {\r\n if (options.length === 0 && !disabled) {\r\n loadData(\"\");\r\n }\r\n }, [options, disabled, loadData]);\r\n\r\n const handleDoubleClick = useCallback(() => {\r\n if (!disabled && !readonly) {\r\n setSearchVisible(true);\r\n }\r\n }, [disabled, readonly]);\r\n\r\n const renderOption = useCallback((oriOption: FlattenOptionData<TreeItem>) => {\r\n return (\r\n <div style={{display: \"flex\", justifyContent: \"space-between\"}}>\r\n <span>{oriOption.data.DisplayName}</span>\r\n <ColorTag>{oriOption.data.Name}</ColorTag>\r\n </div>\r\n )\r\n }, []);\r\n\r\n const renderLabel = useCallback(() => {\r\n switch (displayType) {\r\n default:\r\n case \"code_name\":\r\n return <span>{value?.Name} <Typography.Text type={\"secondary\"}>({value?.DisplayName})</Typography.Text></span>;\r\n case \"name_code\":\r\n return <span>{value?.DisplayName} <Typography.Text type={\"secondary\"}>({value?.Name})</Typography.Text></span>;\r\n case \"code\":\r\n return <span>{value?.Name}</span>;\r\n case \"name\":\r\n return <span>{value?.DisplayName}</span>;\r\n }\r\n }, [value, displayType]);\r\n\r\n const renderDetailPanelDialog = useMemo(() => {\r\n const visible = detailVisible && value;\r\n return (\r\n <ModalDialog\r\n open={detailVisible}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n onCancel={() => setDetailVisible(false)}\r\n title={<EdaDialogTitle title={i18n(\"Detail\")} name={value?.DisplayName} code={value?.Name}/>}\r\n styles={{body: {padding: 8}}}\r\n initialWidth={720}\r\n initialHeight={window.innerHeight * 0.75}\r\n >\r\n {visible &&\r\n <EdaDetail\r\n api={api}\r\n item={{type, id: value.ID}}\r\n style={{height: \"100%\"}}\r\n />\r\n }\r\n {!visible &&\r\n <div style={{display: 'flex', justifyContent: 'center', padding: 40}}>\r\n <Empty description={i18n(\"No data provided\")}/>\r\n </div>\r\n }\r\n </ModalDialog>\r\n )\r\n }, [detailVisible, type, value, api]);\r\n\r\n const renderSearchPanelDialog = useMemo(() => {\r\n return (\r\n <ModalDialog\r\n open={searchVisible}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n onCancel={() => setSearchVisible(false)}\r\n title={<EdaDialogTitle title={i18n(\"Search\")}/>}\r\n styles={{body: {padding: 8}}}\r\n initialWidth={640}\r\n initialHeight={window.innerHeight * 0.75}\r\n forceRender\r\n >\r\n <EdaNavigator\r\n api={api}\r\n showOmitted={showOmitted}\r\n hideContextMenu\r\n onDoubleClick={(id, item) => {\r\n if (id.type === type) {\r\n onChange?.(item, item);\r\n onSelect?.(item, item);\r\n setSearchVisible(false);\r\n }\r\n }}\r\n />\r\n </ModalDialog>\r\n )\r\n }, [searchVisible, api, showOmitted, type, onChange, onSelect]);\r\n\r\n useEffect(() => {\r\n return () => debounceSearch.cancel();\r\n }, [debounceSearch]);\r\n\r\n return (\r\n <ConfigProvider componentSize={size}>\r\n {renderDetailPanelDialog}\r\n {renderSearchPanelDialog}\r\n <Select<TreeItem | undefined, TreeItem>\r\n {...otherProps}\r\n disabled={disabled}\r\n value={value}\r\n onSelect={onSelect}\r\n onChange={onChange}\r\n options={options}\r\n showSearch\r\n open={!readonly ? undefined : false}\r\n filterOption={false}\r\n fieldNames={{label: 'DisplayName', value: 'ID'}}\r\n optionFilterProp={\"DisplayName\"}\r\n onSearch={debounceSearch}\r\n onFocus={handleFocus}\r\n optionRender={renderOption}\r\n labelRender={renderLabel}\r\n notFoundContent={null}\r\n suffixIcon={<div style={{display: \"flex\", alignItems: \"center\", gap: 4, color: token.colorTextSecondary}}>{suffixIcon}</div>}\r\n // @ts-ignore\r\n onDoubleClick={handleDoubleClick}\r\n />\r\n </ConfigProvider>\r\n );\r\n}\r\n\r\nfunction getFilterConditionForCode(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition({columnName: \"Meno\", valueType: AdvancedFilterValueType.STRING}, {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n });\r\n}\r\n\r\nfunction getFilterConditionForName(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition({columnName: \"Zobraz_Meno\", valueType: AdvancedFilterValueType.STRING}, {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n })\r\n}\r\n\r\nfunction getFilterConditions(searchString?: string): AdvancedFilterCondition[] {\r\n const filterConditionForCode = getFilterConditionForCode(searchString);\r\n filterConditionForCode.left_par = 1;\r\n filterConditionForCode.logical_operator = AdvancedFilterLogicalOperator.OR;\r\n\r\n const filterConditionForName = getFilterConditionForName(searchString);\r\n filterConditionForName.right_par = 1;\r\n\r\n return [\r\n filterConditionForCode,\r\n filterConditionForName,\r\n ]\r\n}"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { EdaRoundingType,
|
|
2
|
-
import { ItemType } from "../edaDetail";
|
|
1
|
+
import { EdaRoundingType, EdaVectorType, ItemType, StepType, TypedData } from "../constants/edaTypes";
|
|
3
2
|
import EdaManagerApi from "../../../../api/eda/edaManagerApi";
|
|
4
3
|
import { OpUnitType } from "dayjs";
|
|
4
|
+
import { SharedSampleRangeState } from "../context/sharedSampleRangeContext";
|
|
5
|
+
import React from "react";
|
|
5
6
|
export declare function savePreference(key: string, value: any): void;
|
|
6
7
|
export declare function loadPreference<T>(key: string, defaultValue: T): T;
|
|
7
8
|
export declare function formatValue(value: number | null | undefined, roundType: EdaRoundingType, decPlaces: number): string;
|
|
8
|
-
export declare function loadDetail(api: EdaManagerApi, item: {
|
|
9
|
-
type: IdType;
|
|
10
|
-
id: number;
|
|
11
|
-
}): Promise<TypedData | undefined>;
|
|
12
9
|
export declare function loadDetail(api: EdaManagerApi, item: ItemType): Promise<TypedData | undefined>;
|
|
13
10
|
export declare function stepToDayJsType(step: StepType): OpUnitType | null;
|
|
11
|
+
export declare function isSame(a: SharedSampleRangeState, b: SharedSampleRangeState): boolean;
|
|
12
|
+
export declare function awaitNextRenderFrame(): Promise<void>;
|
|
13
|
+
export declare function getVectorIcon(type: EdaVectorType): React.JSX.Element;
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import { EdaRoundingType, StepType } from "../constants/edaTypes";
|
|
1
|
+
import { EdaRoundingType, EdaVectorType, StepType } from "../constants/edaTypes";
|
|
2
2
|
import { LocaleHolder } from "d2core/i18n/localeHolder";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { NumberFifteenFilled } from "../icons/numberFifteenFilled";
|
|
5
|
+
import { LetterHFilled } from "../icons/letterHFilled";
|
|
6
|
+
import { LetterDFilled } from "../icons/letterDFilled";
|
|
7
|
+
import { LetterCFilled } from "../icons/letterCFilled";
|
|
8
|
+
import { LetterIFilled } from "../icons/letterIFilled";
|
|
9
|
+
import { PairOutlined } from "../icons/pairOutlined";
|
|
10
|
+
import { PeriodicOutlined } from "../icons/periodicOutlined";
|
|
11
|
+
import { FunctionOutlined, QuestionOutlined } from "@ant-design/icons";
|
|
3
12
|
export function savePreference(key, value) {
|
|
4
13
|
localStorage.setItem(key, JSON.stringify(value));
|
|
5
14
|
}
|
|
@@ -25,11 +34,8 @@ export function formatValue(value, roundType, decPlaces) {
|
|
|
25
34
|
}
|
|
26
35
|
}
|
|
27
36
|
export async function loadDetail(api, item) {
|
|
28
|
-
if (!item) {
|
|
29
|
-
return undefined;
|
|
30
|
-
}
|
|
31
37
|
if (Array.isArray(item)) {
|
|
32
|
-
return
|
|
38
|
+
return { type: 3, data: item };
|
|
33
39
|
}
|
|
34
40
|
let dataItem = undefined;
|
|
35
41
|
switch (item.type) {
|
|
@@ -54,6 +60,8 @@ export async function loadDetail(api, item) {
|
|
|
54
60
|
}
|
|
55
61
|
break;
|
|
56
62
|
}
|
|
63
|
+
case 3: {
|
|
64
|
+
}
|
|
57
65
|
}
|
|
58
66
|
return dataItem;
|
|
59
67
|
}
|
|
@@ -73,4 +81,54 @@ export function stepToDayJsType(step) {
|
|
|
73
81
|
return null;
|
|
74
82
|
}
|
|
75
83
|
}
|
|
84
|
+
export function isSame(a, b) {
|
|
85
|
+
return a.step === b.step &&
|
|
86
|
+
a.sampling === b.sampling &&
|
|
87
|
+
a.vectorPage === b.vectorPage &&
|
|
88
|
+
a.btWindow.isSame(b.btWindow) &&
|
|
89
|
+
a.etWindow.isSame(b.etWindow) &&
|
|
90
|
+
a.btTotal.isSame(b.btTotal) &&
|
|
91
|
+
a.etTotal.isSame(b.etTotal);
|
|
92
|
+
}
|
|
93
|
+
export async function awaitNextRenderFrame() {
|
|
94
|
+
await new Promise((resolve) => {
|
|
95
|
+
requestAnimationFrame(() => {
|
|
96
|
+
setTimeout(resolve, 0);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
export function getVectorIcon(type) {
|
|
101
|
+
switch (type) {
|
|
102
|
+
case EdaVectorType.FifteenMinutes:
|
|
103
|
+
return React.createElement(NumberFifteenFilled, null);
|
|
104
|
+
case EdaVectorType.Hour:
|
|
105
|
+
return React.createElement(LetterHFilled, null);
|
|
106
|
+
case EdaVectorType.Day:
|
|
107
|
+
return React.createElement(LetterDFilled, null);
|
|
108
|
+
case EdaVectorType.Descriptive:
|
|
109
|
+
return React.createElement(LetterCFilled, null);
|
|
110
|
+
case EdaVectorType.Interval:
|
|
111
|
+
return React.createElement(LetterIFilled, null);
|
|
112
|
+
case EdaVectorType.FifteenMinutesCalc:
|
|
113
|
+
return React.createElement(NumberFifteenFilled, { style: { color: "orange" } });
|
|
114
|
+
case EdaVectorType.HourCalc:
|
|
115
|
+
return React.createElement(LetterHFilled, { style: { color: "orange" } });
|
|
116
|
+
case EdaVectorType.DayCalc:
|
|
117
|
+
return React.createElement(LetterDFilled, { style: { color: "orange" } });
|
|
118
|
+
case EdaVectorType.Change:
|
|
119
|
+
return React.createElement(LetterCFilled, null);
|
|
120
|
+
case EdaVectorType.ChangeCalc:
|
|
121
|
+
return React.createElement(LetterCFilled, { style: { color: "orange" } });
|
|
122
|
+
case EdaVectorType.Pair:
|
|
123
|
+
return React.createElement(PairOutlined, null);
|
|
124
|
+
case EdaVectorType.Periodic:
|
|
125
|
+
return React.createElement(PeriodicOutlined, null);
|
|
126
|
+
case EdaVectorType.PeriodicCalc:
|
|
127
|
+
return React.createElement(PeriodicOutlined, { style: { color: "orange" } });
|
|
128
|
+
case EdaVectorType.Functional:
|
|
129
|
+
return React.createElement(FunctionOutlined, null);
|
|
130
|
+
default:
|
|
131
|
+
return React.createElement(QuestionOutlined, null);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
76
134
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {EdaRoundingType, IdType, StepType, TypedData} from \"../constants/edaTypes\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport {ItemType} from \"../edaDetail\";\r\nimport EdaManagerApi from \"../../../../api/eda/edaManagerApi\";\r\nimport {OpUnitType} from \"dayjs\";\r\n\r\nexport function savePreference(key: string, value: any) {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n}\r\n\r\nexport function loadPreference<T>(key: string, defaultValue: T): T {\r\n const stored = localStorage.getItem(key);\r\n\r\n return stored !== null ? JSON.parse(stored) : defaultValue;\r\n}\r\n\r\nconst TOTAL_DEC_PLACES = 7 //FIXME configurable\r\n\r\nexport function formatValue(value: number | null | undefined, roundType: EdaRoundingType, decPlaces: number): string {\r\n if (value === undefined || value === null) {\r\n return '';\r\n }\r\n\r\n const multiplier = Math.pow(10, decPlaces);\r\n\r\n switch (roundType) {\r\n case EdaRoundingType.NoRounding:\r\n return LocaleHolder.formatNumber(value, TOTAL_DEC_PLACES);\r\n case EdaRoundingType.RoundToNearest:\r\n return LocaleHolder.formatNumber(value, decPlaces);\r\n case EdaRoundingType.Floor:\r\n return LocaleHolder.formatNumber(Math.floor(value * multiplier) / multiplier, TOTAL_DEC_PLACES);\r\n case EdaRoundingType.Ceiling:\r\n return LocaleHolder.formatNumber(Math.ceil(value * multiplier) / multiplier, TOTAL_DEC_PLACES);\r\n }\r\n}\r\n\r\nexport async function loadDetail(api: EdaManagerApi, item: {type: IdType, id: number}): Promise<TypedData | undefined>;\r\nexport async function loadDetail(api: EdaManagerApi, item: ItemType): Promise<TypedData | undefined>;\r\nexport async function loadDetail(api: EdaManagerApi, item: ItemType): Promise<TypedData | undefined> {\r\n if (!item) {\r\n return undefined;\r\n }\r\n\r\n if (Array.isArray(item)) {\r\n //TODO\r\n return undefined;\r\n }\r\n\r\n let dataItem: TypedData | undefined = undefined;\r\n\r\n switch (item.type) {\r\n case IdType.VECTOR: {\r\n const vectorData = await api.loadVectorData(item.id);\r\n\r\n if (vectorData) {\r\n dataItem = {type: item.type, data: vectorData};\r\n }\r\n break;\r\n }\r\n case IdType.GROUP: {\r\n const groupData = await api.loadGroupData(item.id);\r\n\r\n if (groupData) {\r\n dataItem = {type: item.type, data: groupData};\r\n }\r\n break;\r\n }\r\n case IdType.SCENARIO: {\r\n const scenarioData = await api.loadScenarioData(item.id);\r\n\r\n if (scenarioData) {\r\n dataItem = {type: item.type, data: scenarioData};\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return dataItem;\r\n}\r\n\r\nexport function stepToDayJsType(step: StepType): OpUnitType | null {\r\n switch (step) {\r\n case StepType.Hourly:\r\n return 'hour';\r\n case StepType.Daily:\r\n return 'day';\r\n case StepType.Weekly:\r\n return 'week';\r\n case StepType.Monthly:\r\n return 'month';\r\n case StepType.Yearly:\r\n return 'year';\r\n case StepType.WholeInterval:\r\n return null;\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/utils/utils.tsx"],"names":[],"mappings":"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","sourcesContent":["import {EdaRoundingType, EdaVectorType, IdType, ItemType, StepType, TypedData} from \"../constants/edaTypes\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport EdaManagerApi from \"../../../../api/eda/edaManagerApi\";\r\nimport {OpUnitType} from \"dayjs\";\r\nimport {SharedSampleRangeState} from \"../context/sharedSampleRangeContext\";\r\nimport React from \"react\";\r\nimport {NumberFifteenFilled} from \"../icons/numberFifteenFilled\";\r\nimport {LetterHFilled} from \"../icons/letterHFilled\";\r\nimport {LetterDFilled} from \"../icons/letterDFilled\";\r\nimport {LetterCFilled} from \"../icons/letterCFilled\";\r\nimport {LetterIFilled} from \"../icons/letterIFilled\";\r\nimport {PairOutlined} from \"../icons/pairOutlined\";\r\nimport {PeriodicOutlined} from \"../icons/periodicOutlined\";\r\nimport {FunctionOutlined, QuestionOutlined} from \"@ant-design/icons\";\r\n\r\nexport function savePreference(key: string, value: any) {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n}\r\n\r\nexport function loadPreference<T>(key: string, defaultValue: T): T {\r\n const stored = localStorage.getItem(key);\r\n\r\n return stored !== null ? JSON.parse(stored) : defaultValue;\r\n}\r\n\r\nconst TOTAL_DEC_PLACES = 7 //FIXME configurable\r\n\r\nexport function formatValue(value: number | null | undefined, roundType: EdaRoundingType, decPlaces: number): string {\r\n if (value === undefined || value === null) {\r\n return '';\r\n }\r\n\r\n const multiplier = Math.pow(10, decPlaces);\r\n\r\n switch (roundType) {\r\n case EdaRoundingType.NoRounding:\r\n return LocaleHolder.formatNumber(value, TOTAL_DEC_PLACES);\r\n case EdaRoundingType.RoundToNearest:\r\n return LocaleHolder.formatNumber(value, decPlaces);\r\n case EdaRoundingType.Floor:\r\n return LocaleHolder.formatNumber(Math.floor(value * multiplier) / multiplier, TOTAL_DEC_PLACES);\r\n case EdaRoundingType.Ceiling:\r\n return LocaleHolder.formatNumber(Math.ceil(value * multiplier) / multiplier, TOTAL_DEC_PLACES);\r\n }\r\n}\r\n\r\nexport async function loadDetail(api: EdaManagerApi, item: ItemType): Promise<TypedData | undefined> {\r\n if (Array.isArray(item)) {\r\n return {type: IdType.SET, data: item};\r\n }\r\n\r\n let dataItem: TypedData | undefined = undefined;\r\n\r\n switch (item.type) {\r\n case IdType.VECTOR: {\r\n const vectorData = await api.loadVectorData(item.id);\r\n\r\n if (vectorData) {\r\n dataItem = {type: item.type, data: vectorData};\r\n }\r\n break;\r\n }\r\n case IdType.GROUP: {\r\n const groupData = await api.loadGroupData(item.id);\r\n\r\n if (groupData) {\r\n dataItem = {type: item.type, data: groupData};\r\n }\r\n break;\r\n }\r\n case IdType.SCENARIO: {\r\n const scenarioData = await api.loadScenarioData(item.id);\r\n\r\n if (scenarioData) {\r\n dataItem = {type: item.type, data: scenarioData};\r\n }\r\n break;\r\n }\r\n case IdType.SET: {\r\n\r\n }\r\n }\r\n\r\n return dataItem;\r\n}\r\n\r\nexport function stepToDayJsType(step: StepType): OpUnitType | null {\r\n switch (step) {\r\n case StepType.Hourly:\r\n return 'hour';\r\n case StepType.Daily:\r\n return 'day';\r\n case StepType.Weekly:\r\n return 'week';\r\n case StepType.Monthly:\r\n return 'month';\r\n case StepType.Yearly:\r\n return 'year';\r\n case StepType.WholeInterval:\r\n return null;\r\n }\r\n}\r\n\r\nexport function isSame(a: SharedSampleRangeState, b: SharedSampleRangeState) {\r\n return a.step === b.step &&\r\n a.sampling === b.sampling &&\r\n a.vectorPage === b.vectorPage &&\r\n a.btWindow.isSame(b.btWindow) &&\r\n a.etWindow.isSame(b.etWindow) &&\r\n a.btTotal.isSame(b.btTotal) &&\r\n a.etTotal.isSame(b.etTotal);\r\n}\r\n\r\nexport async function awaitNextRenderFrame() {\r\n await new Promise<void>((resolve) => {\r\n requestAnimationFrame(() => {\r\n setTimeout(resolve, 0);\r\n });\r\n });\r\n}\r\n\r\nexport function getVectorIcon(type: EdaVectorType) {\r\n switch (type) {\r\n case EdaVectorType.FifteenMinutes:\r\n return <NumberFifteenFilled/>;\r\n case EdaVectorType.Hour:\r\n return <LetterHFilled/>;\r\n case EdaVectorType.Day:\r\n return <LetterDFilled/>;\r\n case EdaVectorType.Descriptive:\r\n return <LetterCFilled/>;\r\n case EdaVectorType.Interval:\r\n return <LetterIFilled/>;\r\n case EdaVectorType.FifteenMinutesCalc:\r\n return <NumberFifteenFilled style={{color: \"orange\"}}/>;\r\n case EdaVectorType.HourCalc:\r\n return <LetterHFilled style={{color: \"orange\"}}/>;\r\n case EdaVectorType.DayCalc:\r\n return <LetterDFilled style={{color: \"orange\"}}/>;\r\n case EdaVectorType.Change:\r\n return <LetterCFilled/>;\r\n case EdaVectorType.ChangeCalc:\r\n return <LetterCFilled style={{color: \"orange\"}}/>;\r\n case EdaVectorType.Pair:\r\n return <PairOutlined/>;\r\n case EdaVectorType.Periodic:\r\n return <PeriodicOutlined/>;\r\n case EdaVectorType.PeriodicCalc:\r\n return <PeriodicOutlined style={{color: \"orange\"}}/>;\r\n case EdaVectorType.Functional:\r\n return <FunctionOutlined/>;\r\n default:\r\n return <QuestionOutlined/>;\r\n }\r\n}"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import WebAuthnManageApi from "../../../api/webAuthn/webAuthnManageApi";
|
|
3
|
+
interface PasskeyManagerProps {
|
|
4
|
+
api: WebAuthnManageApi;
|
|
5
|
+
}
|
|
6
|
+
export default function PasskeyManager({ api }: PasskeyManagerProps): React.JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import React, { useEffect, useState } from "react";
|
|
2
|
+
import { Button, Empty, Input, List, message, Popconfirm, Space, Spin, Tag, Typography } from "antd";
|
|
3
|
+
import { DeleteOutlined, KeyOutlined, PlusOutlined } from "@ant-design/icons";
|
|
4
|
+
import i18n from "d2core/i18n/i18n";
|
|
5
|
+
export default function PasskeyManager({ api }) {
|
|
6
|
+
const [creds, setCreds] = useState([]);
|
|
7
|
+
const [name, setName] = useState("");
|
|
8
|
+
const [loading, setLoading] = useState(true);
|
|
9
|
+
const [registering, setRegistering] = useState(false);
|
|
10
|
+
async function refresh() {
|
|
11
|
+
setCreds(await api.listCredentials());
|
|
12
|
+
}
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
(async () => {
|
|
15
|
+
try {
|
|
16
|
+
await refresh();
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
message.error(e instanceof Error ? e.message : String(e));
|
|
20
|
+
}
|
|
21
|
+
finally {
|
|
22
|
+
setLoading(false);
|
|
23
|
+
}
|
|
24
|
+
})();
|
|
25
|
+
}, []);
|
|
26
|
+
async function onRegister() {
|
|
27
|
+
setRegistering(true);
|
|
28
|
+
try {
|
|
29
|
+
await api.registerPasskey(name.trim() || i18n("My passkey"));
|
|
30
|
+
setName("");
|
|
31
|
+
message.success(i18n("Passkey registered."));
|
|
32
|
+
await refresh();
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
message.error(e instanceof Error ? e.message : String(e));
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
setRegistering(false);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async function onRemove(credentialId) {
|
|
42
|
+
try {
|
|
43
|
+
const ok = await api.removeCredential(credentialId);
|
|
44
|
+
if (ok) {
|
|
45
|
+
message.success(i18n("Passkey removed."));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
message.warning(i18n("Server did not remove the passkey."));
|
|
49
|
+
}
|
|
50
|
+
await refresh();
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
message.error(e instanceof Error ? e.message : String(e));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return (React.createElement("div", { style: { maxWidth: 640 } },
|
|
57
|
+
React.createElement(Space.Compact, { style: { width: "100%", marginBottom: 16 } },
|
|
58
|
+
React.createElement(Input, { value: name, onChange: (e) => setName(e.target.value), placeholder: i18n("Passkey name — optional (e.g. YubiKey 5C)"), disabled: registering, onPressEnter: onRegister, prefix: React.createElement(KeyOutlined, null) }),
|
|
59
|
+
React.createElement(Button, { type: "primary", icon: React.createElement(PlusOutlined, null), loading: registering, onClick: onRegister, "data-testid": "passkey-register" }, i18n("Register new passkey"))),
|
|
60
|
+
React.createElement(Typography.Title, { level: 5 }, i18n("Registered passkeys")),
|
|
61
|
+
loading ? (React.createElement(Spin, null)) : creds.length === 0 ? (React.createElement(Empty, { description: i18n("No passkeys registered yet.") })) : (React.createElement(List, { dataSource: creds, rowKey: (cred) => cred.id, renderItem: (cred) => (React.createElement(List.Item, { actions: [
|
|
62
|
+
React.createElement(Popconfirm, { key: "remove", title: i18n("Remove this passkey?"), okText: i18n("Remove"), cancelText: i18n("Cancel"), onConfirm: () => onRemove(cred.id) },
|
|
63
|
+
React.createElement(Button, { danger: true, size: "small", icon: React.createElement(DeleteOutlined, null) }, i18n("Remove"))),
|
|
64
|
+
] },
|
|
65
|
+
React.createElement(List.Item.Meta, { avatar: React.createElement(KeyOutlined, { style: { fontSize: 20 } }), title: cred.name || i18n("(unnamed)"), description: React.createElement(Space, { size: 4, wrap: true },
|
|
66
|
+
cred.createdAt && React.createElement(Tag, null,
|
|
67
|
+
i18n("created"),
|
|
68
|
+
": ",
|
|
69
|
+
cred.createdAt),
|
|
70
|
+
React.createElement(Tag, null,
|
|
71
|
+
"signCount: ",
|
|
72
|
+
cred.signCount),
|
|
73
|
+
cred.transports?.length ? React.createElement(Tag, null, cred.transports.join(", ")) : null) }))) }))));
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=passkeyManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passkeyManager.js","sourceRoot":"","sources":["../../../../../coreui/components/passkey/passkeyManager.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {useEffect, useState} from \"react\";\r\nimport {Button, Empty, Input, List, message, Popconfirm, Space, Spin, Tag, Typography} from \"antd\";\r\nimport {DeleteOutlined, KeyOutlined, PlusOutlined} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport WebAuthnManageApi, {WebAuthnCredentialView} from \"../../../api/webAuthn/webAuthnManageApi\";\r\n\r\ninterface PasskeyManagerProps {\r\n api: WebAuthnManageApi;\r\n}\r\n\r\n/**\r\n * Self-contained passkey (WebAuthn) management panel for the logged-in user: lists registered\r\n * passkeys, registers a new one (running the authenticator), and removes one. All identity is taken\r\n * from the authenticated session server-side; nothing here sends a username.\r\n */\r\nexport default function PasskeyManager({api}: PasskeyManagerProps) {\r\n const [creds, setCreds] = useState<WebAuthnCredentialView[]>([]);\r\n const [name, setName] = useState(\"\");\r\n const [loading, setLoading] = useState(true);\r\n const [registering, setRegistering] = useState(false);\r\n\r\n async function refresh() {\r\n setCreds(await api.listCredentials());\r\n }\r\n\r\n useEffect(() => {\r\n (async () => {\r\n try {\r\n await refresh();\r\n } catch (e) {\r\n message.error(e instanceof Error ? e.message : String(e));\r\n } finally {\r\n setLoading(false);\r\n }\r\n })();\r\n // api is stable for the lifetime of the page; load once on mount.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n async function onRegister() {\r\n setRegistering(true);\r\n try {\r\n await api.registerPasskey(name.trim() || i18n(\"My passkey\"));\r\n setName(\"\");\r\n message.success(i18n(\"Passkey registered.\"));\r\n await refresh();\r\n } catch (e) {\r\n message.error(e instanceof Error ? e.message : String(e));\r\n } finally {\r\n setRegistering(false);\r\n }\r\n }\r\n\r\n async function onRemove(credentialId: string) {\r\n try {\r\n const ok = await api.removeCredential(credentialId);\r\n if (ok) {\r\n message.success(i18n(\"Passkey removed.\"));\r\n } else {\r\n message.warning(i18n(\"Server did not remove the passkey.\"));\r\n }\r\n await refresh();\r\n } catch (e) {\r\n message.error(e instanceof Error ? e.message : String(e));\r\n }\r\n }\r\n\r\n return (\r\n <div style={{maxWidth: 640}}>\r\n <Space.Compact style={{width: \"100%\", marginBottom: 16}}>\r\n <Input\r\n value={name}\r\n onChange={(e) => setName(e.target.value)}\r\n placeholder={i18n(\"Passkey name — optional (e.g. YubiKey 5C)\")}\r\n disabled={registering}\r\n onPressEnter={onRegister}\r\n prefix={<KeyOutlined/>}\r\n />\r\n <Button\r\n type=\"primary\"\r\n icon={<PlusOutlined/>}\r\n loading={registering}\r\n onClick={onRegister}\r\n data-testid=\"passkey-register\"\r\n >\r\n {i18n(\"Register new passkey\")}\r\n </Button>\r\n </Space.Compact>\r\n\r\n <Typography.Title level={5}>{i18n(\"Registered passkeys\")}</Typography.Title>\r\n\r\n {loading ? (\r\n <Spin/>\r\n ) : creds.length === 0 ? (\r\n <Empty description={i18n(\"No passkeys registered yet.\")}/>\r\n ) : (\r\n <List\r\n dataSource={creds}\r\n rowKey={(cred) => cred.id}\r\n renderItem={(cred) => (\r\n <List.Item\r\n actions={[\r\n <Popconfirm\r\n key=\"remove\"\r\n title={i18n(\"Remove this passkey?\")}\r\n okText={i18n(\"Remove\")}\r\n cancelText={i18n(\"Cancel\")}\r\n onConfirm={() => onRemove(cred.id)}\r\n >\r\n <Button danger size=\"small\" icon={<DeleteOutlined/>}>\r\n {i18n(\"Remove\")}\r\n </Button>\r\n </Popconfirm>,\r\n ]}\r\n >\r\n <List.Item.Meta\r\n avatar={<KeyOutlined style={{fontSize: 20}}/>}\r\n title={cred.name || i18n(\"(unnamed)\")}\r\n description={\r\n <Space size={4} wrap>\r\n {cred.createdAt && <Tag>{i18n(\"created\")}: {cred.createdAt}</Tag>}\r\n <Tag>signCount: {cred.signCount}</Tag>\r\n {cred.transports?.length ? <Tag>{cred.transports.join(\", \")}</Tag> : null}\r\n </Space>\r\n }\r\n />\r\n </List.Item>\r\n )}\r\n />\r\n )}\r\n </div>\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\";\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}"]}
|
|
1
|
+
{"version":3,"file":"webPushSwitch.js","sourceRoot":"","sources":["../../../../../coreui/components/webPush/webPushSwitch.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {Switch} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {WebPushApi} from \"../../../api/webPush/webPushApi\";\r\nimport WebPushUtils from \"../../../api/webPush/webPushUtils\";\r\nimport {EncodingUtils} from \"../../../api/encoding/encodingUtils\";\r\n\r\ninterface Props {\r\n webPushApi: WebPushApi\r\n}\r\n\r\ninterface State {\r\n loading: boolean\r\n isSubscribed: boolean\r\n}\r\n\r\nexport default class WebPushSwitch extends React.Component<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n\r\n this.state = {\r\n loading: true,\r\n isSubscribed: false,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.updateSubscriptionState();\r\n }\r\n\r\n private updateSubscriptionState() {\r\n WebPushUtils.getSubscription().then(subscription => {\r\n this.setState({\r\n isSubscribed: subscription !== null,\r\n loading: false,\r\n });\r\n });\r\n }\r\n\r\n private async subscribe() {\r\n const applicationServerKey = await this.props.webPushApi.getPublicVapidKey();\r\n\r\n // 1. Ask for notification permission\r\n const permission = await Notification.requestPermission();\r\n if (permission !== \"granted\") {\r\n alert(\"Notifications not allowed\");\r\n return;\r\n }\r\n\r\n // 2. Get service worker\r\n const registration = await navigator.serviceWorker.ready;\r\n\r\n // 3. Subscribe to push\r\n const subscription = await registration.pushManager.subscribe({\r\n userVisibleOnly: true,\r\n applicationServerKey: EncodingUtils.base64ToUint8Array(applicationServerKey),\r\n });\r\n\r\n await this.props.webPushApi.saveSubscription(subscription);\r\n }\r\n\r\n private async unsubscribe() {\r\n const subscription = await WebPushUtils.getSubscription();\r\n\r\n if (subscription) {\r\n const success = await subscription.unsubscribe();\r\n\r\n if (success) {\r\n console.log(\"Unsubscribed: \", subscription.endpoint);\r\n await this.props.webPushApi.deleteSubscription(subscription);\r\n } else {\r\n console.warn(\"Failed to unsubscribe.\");\r\n }\r\n } else {\r\n console.log(\"No subscription found.\");\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Switch\r\n loading={this.state.loading}\r\n checked={this.state.isSubscribed}\r\n checkedChildren={i18n(\"Notifications\")}\r\n unCheckedChildren={i18n(\"Notifications\")}\r\n onChange={async checked => {\r\n this.setState({loading: true});\r\n if (checked) {\r\n await this.subscribe();\r\n } else {\r\n await this.unsubscribe()\r\n }\r\n\r\n this.updateSubscriptionState();\r\n }}\r\n />\r\n );\r\n }\r\n\r\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>
|
|
@@ -163,6 +163,10 @@ RPC PROCEDURE LoadDescriptiveVectorData(IN INT _id, RECORD NOALIAS(SD.EDA_Descri
|
|
|
163
163
|
CALL [_unit] LoadDescriptiveVectorData(_id, _data, _isOk, _errorMsg)
|
|
164
164
|
END LoadDescriptiveVectorData
|
|
165
165
|
|
|
166
|
+
RPC PROCEDURE SetDescriptiveVectorData(IN INT _id, IN RECORD NOALIAS(SD.EDA_DescriptiveData) _data, BOOL _isOk, TEXT _errorMsg)
|
|
167
|
+
CALL [_unit] SetDescriptiveVectorData(_id, _data, _isOk, _errorMsg)
|
|
168
|
+
END SetDescriptiveVectorData
|
|
169
|
+
|
|
166
170
|
RPC PROCEDURE LoadCalcVectorData(IN INT _id, RECORD NOALIAS(SD.EM_EDA_FunctionPrescription) _data, TEXT _prescription, BOOL _isOk, TEXT _errorMsg)
|
|
167
171
|
CALL [_unit] LoadCalcVectorData(_id, _data, _prescription, _isOk, _errorMsg)
|
|
168
172
|
END LoadCalcVectorData
|
|
@@ -55,6 +55,12 @@
|
|
|
55
55
|
<objType>EXT_FNCT</objType>
|
|
56
56
|
<valType>Int</valType>
|
|
57
57
|
</HOBJ_REF>
|
|
58
|
+
<HOBJ_REF>
|
|
59
|
+
<uid>0AE3CFBF5C0EF64EB226B998E528C6FB</uid>
|
|
60
|
+
<name>EDA_SetDescriptiveVectorRec</name>
|
|
61
|
+
<objType>EXT_FNCT</objType>
|
|
62
|
+
<valType>Int</valType>
|
|
63
|
+
</HOBJ_REF>
|
|
58
64
|
<HOBJ_REF>
|
|
59
65
|
<uid>3798D15A71FD1146AB9238660BD3D83E</uid>
|
|
60
66
|
<name>SD.EDA_DescriptiveData</name>
|
|
@@ -83,6 +89,17 @@
|
|
|
83
89
|
<col_name>structVersion</col_name>
|
|
84
90
|
<col_valType>Int</col_valType>
|
|
85
91
|
</COL_REF>
|
|
92
|
+
<HOBJ_REF>
|
|
93
|
+
<uid>F4921D03EDBA5A448B7B3A65B61FFB62</uid>
|
|
94
|
+
<name>SD.EDA_SetDescriptiveVector_Params_V1</name>
|
|
95
|
+
<objType>STRUCTDEF</objType>
|
|
96
|
+
<valType>NAN</valType>
|
|
97
|
+
</HOBJ_REF>
|
|
98
|
+
<COL_REF>
|
|
99
|
+
<col_idx>1</col_idx>
|
|
100
|
+
<col_name>structVersion</col_name>
|
|
101
|
+
<col_valType>Int</col_valType>
|
|
102
|
+
</COL_REF>
|
|
86
103
|
<HOBJ_REF>
|
|
87
104
|
<uid>42C6605F250C9D439C33565F834F13AF</uid>
|
|
88
105
|
<name>SD.EM_EDA_Function</name>
|
|
@@ -278,6 +295,23 @@ PUBLIC PROCEDURE LoadDescriptiveVectorData(IN INT _id, RECORD NOALIAS(SD.EDA_Des
|
|
|
278
295
|
_isOk := @TRUE
|
|
279
296
|
END LoadDescriptiveVectorData
|
|
280
297
|
|
|
298
|
+
PUBLIC PROCEDURE SetDescriptiveVectorData(IN INT _id, IN RECORD NOALIAS(SD.EDA_DescriptiveData) _data, BOOL _isOk, TEXT _errorMsg)
|
|
299
|
+
INT _retCode
|
|
300
|
+
RECORD NOALIAS(SD.EDA_SetDescriptiveVector_Params_V1) _params
|
|
301
|
+
|
|
302
|
+
_params^structVersion := 1
|
|
303
|
+
|
|
304
|
+
CALL %EDA_SetDescriptiveVectorRec(_id, _data, _params, _retCode)
|
|
305
|
+
|
|
306
|
+
IF _retCode # _ERR_NO_ERROR THEN
|
|
307
|
+
_errorMsg := "Error writig descriptive vector data [" + %IToStr(_retCode) + "]"
|
|
308
|
+
_isOk := @FALSE
|
|
309
|
+
RETURN
|
|
310
|
+
ENDIF
|
|
311
|
+
|
|
312
|
+
_isOk := @TRUE
|
|
313
|
+
END SetDescriptiveVectorData
|
|
314
|
+
|
|
281
315
|
PUBLIC PROCEDURE LoadCalcVectorData(IN INT _id, RECORD NOALIAS(SD.EM_EDA_FunctionPrescription) _data, TEXT _prescription, BOOL _isOk, TEXT _errorMsg)
|
|
282
316
|
RECORD NOALIAS (SD.EDA_ReadFunction_Params_V1) _params
|
|
283
317
|
INT _retCode
|
|
@@ -121,7 +121,7 @@ RPC PROCEDURE GetGroupVectorsCountSql(IN INT _id, IN BOOL _showOmitted, TEXT _sq
|
|
|
121
121
|
END GetGroupVectorsCountSql
|
|
122
122
|
|
|
123
123
|
RPC PROCEDURE GetGroupVectorItemsSql(IN INT _id, IN BOOL _showOmitted, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
|
|
124
|
-
_sql := "SELECT ID_Vektor, ID_SkVektor, Meno, '', Zobraz_Meno, Typ, Tech_Jednotky, View_Round, View_Dec_Pl FROM EDA_Vektor WHERE "
|
|
124
|
+
_sql := "SELECT ID_Vektor, ID_SkVektor, Meno, '', Zobraz_Meno, Typ, Tech_Jednotky, View_Round, View_Dec_Pl, NULL, CASE WHEN Integral = 2 THEN 1 ELSE 0 END FROM EDA_Vektor WHERE "
|
|
125
125
|
|
|
126
126
|
IF _showOmitted THEN
|
|
127
127
|
_sql := _sql + "ID_SkVektor IS NULL"
|
|
@@ -219,7 +219,7 @@ END GetScenarioVectorsCountSql
|
|
|
219
219
|
|
|
220
220
|
RPC PROCEDURE GetScenarioVectorItemsSql(IN INT _id, IN BOOL _showOmitted, IN BOOL _showDynamic, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
|
|
221
221
|
_sql := "SELECT v.ID_Vektor, vs.ID, v.Meno, '', CASE WHEN vs.zobraz_Meno is NULL THEN (v.zobraz_meno) ELSE (vs.Zobraz_Meno || ' (' || v.Zobraz_meno || ')') END zobraz_meno,"
|
|
222
|
-
_sql := _sql + " v.Typ, v.Tech_Jednotky, v.View_Round, v.View_Dec_Pl, vs.idx IDX FROM EDA_VEKTOR v, EDA_VEKTOR_SCENAR vs WHERE v.ID_Vektor = vs.ID_Vektor AND "
|
|
222
|
+
_sql := _sql + " v.Typ, v.Tech_Jednotky, v.View_Round, v.View_Dec_Pl, NULL, CASE WHEN v.Integral = 2 THEN 1 ELSE 0 END, vs.idx IDX FROM EDA_VEKTOR v, EDA_VEKTOR_SCENAR vs WHERE v.ID_Vektor = vs.ID_Vektor AND "
|
|
223
223
|
|
|
224
224
|
IF !_id\VLD | _showOmitted THEN
|
|
225
225
|
_sql := _sql + "1 = 0"
|
|
@@ -242,7 +242,7 @@ RPC PROCEDURE GetScenarioVectorItemsSql(IN INT _id, IN BOOL _showOmitted, IN BOO
|
|
|
242
242
|
ENDIF
|
|
243
243
|
|
|
244
244
|
IF _EDA_Scenar[1]^FILTER\VLD THEN
|
|
245
|
-
_sqlPom := "SELECT v.ID_Vektor, v.ID_SkVektor, v.Meno, '', v.Zobraz_meno, v.Typ, v.Tech_Jednotky, v.View_Round, v.View_Dec_Pl,
|
|
245
|
+
_sqlPom := "SELECT v.ID_Vektor, v.ID_SkVektor, v.Meno, '', v.Zobraz_meno, v.Typ, v.Tech_Jednotky, v.View_Round, v.View_Dec_Pl, NULL, CASE WHEN v.Integral = 2 THEN 1 ELSE 0 END, NULL FROM EDA_VEKTOR v, (" + _EDA_Scenar[1]^FILTER + ") filter WHERE filter.id_vektor = v.ID_Vektor"
|
|
246
246
|
_sql := _sql + " UNION " + _sqlPom
|
|
247
247
|
_sql := _sql + " ORDER BY 7, 5"
|
|
248
248
|
ENDIF
|
|
@@ -254,7 +254,7 @@ RPC PROCEDURE GetScenarioVectorItemsSql(IN INT _id, IN BOOL _showOmitted, IN BOO
|
|
|
254
254
|
END GetScenarioVectorItemsSql
|
|
255
255
|
|
|
256
256
|
RPC PROCEDURE GetVectorSql(IN INT _id, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
|
|
257
|
-
_sql := "SELECT ID_Vektor, ID_SkVektor, Meno, '', Zobraz_Meno, Typ, Tech_Jednotky, View_Round, View_Dec_Pl FROM EDA_Vektor WHERE ID_Vektor = " + %IToStr(_id)
|
|
257
|
+
_sql := "SELECT ID_Vektor, ID_SkVektor, Meno, '', Zobraz_Meno, Typ, Tech_Jednotky, View_Round, View_Dec_Pl, NULL, CASE WHEN Integral = 2 THEN 1 ELSE 0 END FROM EDA_Vektor WHERE ID_Vektor = " + %IToStr(_id)
|
|
258
258
|
_isOk := @TRUE
|
|
259
259
|
END GetVectorSql
|
|
260
260
|
|
|
@@ -269,7 +269,7 @@ RPC PROCEDURE GetScenarioSql(IN INT _id, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
|
|
|
269
269
|
END GetScenarioSql
|
|
270
270
|
|
|
271
271
|
RPC PROCEDURE FindVectorsSql(IN TEXT _filter, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
|
|
272
|
-
_sql := "SELECT ID_Vektor, ID_SkVektor, Meno, '', Zobraz_Meno, Typ, Tech_Jednotky, View_Round, View_Dec_Pl FROM EDA_Vektor WHERE " + _filter
|
|
272
|
+
_sql := "SELECT ID_Vektor, ID_SkVektor, Meno, '', Zobraz_Meno, Typ, Tech_Jednotky, View_Round, View_Dec_Pl, NULL, CASE WHEN Integral = 2 THEN 1 ELSE 0 END FROM EDA_Vektor WHERE " + _filter
|
|
273
273
|
_isOk := @TRUE
|
|
274
274
|
END FindVectorsSql
|
|
275
275
|
|