@archbase/components 3.0.25 → 4.0.1
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/dist/buttons/ArchbaseSpeedDial.d.ts +59 -0
- package/dist/buttons/index.d.ts +2 -0
- package/dist/charts/ArchbaseArcGauge.d.ts +55 -0
- package/dist/charts/ArchbaseGantt.d.ts +70 -0
- package/dist/charts/ArchbaseLinearGauge.d.ts +55 -0
- package/dist/charts/ArchbaseResourceTimeline.d.ts +61 -0
- package/dist/charts/ArchbaseSparkline.d.ts +45 -0
- package/dist/charts/index.d.ts +10 -0
- package/dist/containers/ArchbaseExpansionPanel.d.ts +60 -0
- package/dist/containers/ArchbaseFloatingPanel.d.ts +91 -0
- package/dist/containers/index.d.ts +4 -0
- package/dist/datagrid/export/ArchbaseDataGridExcelExport.d.ts +67 -0
- package/dist/datagrid/export/index.d.ts +2 -0
- package/dist/datagrid/index.d.ts +1 -0
- package/dist/display/ArchbaseAnimationWrapper.d.ts +73 -0
- package/dist/display/ArchbaseBarcodeGenerator.d.ts +50 -0
- package/dist/display/ArchbaseCarousel.d.ts +100 -0
- package/dist/display/ArchbaseCodeViewer.d.ts +63 -0
- package/dist/display/ArchbaseDiffViewer.d.ts +41 -0
- package/dist/display/ArchbaseJsonTree.d.ts +34 -0
- package/dist/display/ArchbaseLightbox.d.ts +89 -0
- package/dist/display/ArchbaseMarquee.d.ts +46 -0
- package/dist/display/ArchbasePhotoAlbum.d.ts +58 -0
- package/dist/display/ArchbaseQRCode.d.ts +44 -0
- package/dist/display/ArchbaseTooltipRich.d.ts +82 -0
- package/dist/display/ArchbaseVirtualList.d.ts +116 -0
- package/dist/display/index.d.ts +24 -0
- package/dist/editors/ArchbaseAIPromptInput.d.ts +69 -0
- package/dist/editors/ArchbaseAsyncMultiSelect.d.ts +1 -1
- package/dist/editors/ArchbaseAsyncSelect.d.ts +1 -1
- package/dist/editors/ArchbaseBarcodeScanner.d.ts +63 -0
- package/dist/editors/ArchbaseCepInput.d.ts +26 -0
- package/dist/editors/ArchbaseColorGradientPicker.d.ts +80 -0
- package/dist/editors/ArchbaseCpfCnpjInput.d.ts +21 -0
- package/dist/editors/ArchbaseCurrencyInput.d.ts +25 -0
- package/dist/editors/ArchbaseDualListbox.d.ts +61 -0
- package/dist/editors/ArchbaseInPlaceEditor.d.ts +67 -0
- package/dist/editors/ArchbaseLightGrid.d.ts +56 -0
- package/dist/editors/ArchbaseMentionInput.d.ts +75 -0
- package/dist/editors/ArchbaseMultiEmail.d.ts +53 -0
- package/dist/editors/ArchbaseMultiViewCalendar.d.ts +47 -0
- package/dist/editors/ArchbaseNumberStepper.d.ts +66 -0
- package/dist/editors/ArchbaseOTPInput.d.ts +27 -0
- package/dist/editors/ArchbasePhoneInput.d.ts +52 -0
- package/dist/editors/ArchbaseRangeSlider.d.ts +22 -0
- package/dist/editors/ArchbaseSignaturePad.d.ts +60 -0
- package/dist/editors/ArchbaseSpeechToTextInput.d.ts +106 -0
- package/dist/editors/ArchbaseSpreadsheet.d.ts +56 -0
- package/dist/editors/ArchbaseTagInput.d.ts +55 -0
- package/dist/editors/index.d.ts +40 -0
- package/dist/feedback/ArchbaseChunkProgressBar.d.ts +35 -0
- package/dist/feedback/ArchbaseRipple.d.ts +43 -0
- package/dist/feedback/ArchbaseSkeleton.d.ts +115 -0
- package/dist/feedback/index.d.ts +6 -0
- package/dist/filters/ArchbaseColumnSelector.d.ts +38 -0
- package/dist/filters/index.d.ts +2 -0
- package/dist/forms/ArchbaseFieldArray.d.ts +80 -0
- package/dist/forms/ArchbaseFormWizard.d.ts +73 -0
- package/dist/forms/ArchbaseStepper.d.ts +51 -0
- package/dist/forms/index.d.ts +8 -0
- package/dist/forms/useArchbaseFormWizard.d.ts +74 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/useArchbaseConfirm.d.ts +59 -0
- package/dist/image/editor/index.d.ts +43 -4
- package/dist/image/index.d.ts +1 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +22510 -13820
- package/dist/list/ArchbaseTreeList.d.ts +76 -0
- package/dist/list/index.d.ts +2 -0
- package/dist/navigation/ArchbaseActionSheet.d.ts +70 -0
- package/dist/navigation/ArchbaseAppBar.d.ts +63 -0
- package/dist/navigation/ArchbaseBottomNavigation.d.ts +61 -0
- package/dist/navigation/ArchbaseContextMenu.d.ts +76 -0
- package/dist/navigation/ArchbaseKeyboardShortcuts.d.ts +85 -0
- package/dist/navigation/ArchbaseSpotlight.d.ts +69 -0
- package/dist/navigation/index.d.ts +12 -0
- package/dist/notification/ArchbaseNotificationCenter.d.ts +56 -0
- package/dist/notification/index.d.ts +2 -0
- package/dist/onboarding/ArchbaseOnboardingTour.d.ts +27 -76
- package/dist/viewers/ArchbaseDocViewer.d.ts +40 -0
- package/dist/viewers/ArchbasePdfBuilder.d.ts +53 -0
- package/dist/viewers/ArchbaseXmlViewer.d.ts +36 -0
- package/dist/viewers/index.d.ts +6 -0
- package/package.json +41 -18
- package/src/buttons/ArchbaseSpeedDial.tsx +282 -0
- package/src/buttons/index.ts +3 -0
- package/src/charts/ArchbaseArcGauge.tsx +325 -0
- package/src/charts/ArchbaseGantt.tsx +494 -0
- package/src/charts/ArchbaseLinearGauge.tsx +288 -0
- package/src/charts/ArchbaseResourceTimeline.tsx +433 -0
- package/src/charts/ArchbaseSparkline.tsx +193 -0
- package/src/charts/index.ts +20 -1
- package/src/containers/ArchbaseExpansionPanel.tsx +208 -0
- package/src/containers/ArchbaseFloatingPanel.tsx +448 -0
- package/src/containers/index.ts +17 -0
- package/src/datagrid/components/pagination/grid-pagination.tsx +2 -2
- package/src/datagrid/export/ArchbaseDataGridExcelExport.tsx +293 -0
- package/src/datagrid/export/index.ts +8 -0
- package/src/datagrid/index.tsx +2 -0
- package/src/display/ArchbaseAnimationWrapper.tsx +272 -0
- package/src/display/ArchbaseBarcodeGenerator.tsx +303 -0
- package/src/display/ArchbaseCarousel.tsx +679 -0
- package/src/display/ArchbaseCodeViewer.tsx +271 -0
- package/src/display/ArchbaseDiffViewer.tsx +108 -0
- package/src/display/ArchbaseJsonTree.tsx +150 -0
- package/src/display/ArchbaseLightbox.tsx +279 -0
- package/src/display/ArchbaseMarquee.tsx +268 -0
- package/src/display/ArchbasePhotoAlbum.tsx +415 -0
- package/src/display/ArchbaseQRCode.tsx +137 -0
- package/src/display/ArchbaseTooltipRich.tsx +317 -0
- package/src/display/ArchbaseVirtualList.tsx +618 -0
- package/src/display/index.ts +94 -1
- package/src/editors/ArchbaseAIPromptInput.tsx +432 -0
- package/src/editors/ArchbaseBarcodeScanner.tsx +570 -0
- package/src/editors/ArchbaseCepInput.tsx +173 -0
- package/src/editors/ArchbaseColorGradientPicker.tsx +460 -0
- package/src/editors/ArchbaseCpfCnpjInput.tsx +193 -0
- package/src/editors/ArchbaseCurrencyInput.tsx +100 -0
- package/src/editors/ArchbaseDualListbox.tsx +671 -0
- package/src/editors/ArchbaseInPlaceEditor.tsx +406 -0
- package/src/editors/ArchbaseLightGrid.tsx +538 -0
- package/src/editors/ArchbaseMentionInput.tsx +384 -0
- package/src/editors/ArchbaseMultiEmail.tsx +367 -0
- package/src/editors/ArchbaseMultiViewCalendar.tsx +439 -0
- package/src/editors/ArchbaseNumberStepper.tsx +219 -0
- package/src/editors/ArchbaseOTPInput.tsx +133 -0
- package/src/editors/ArchbaseOperationHoursEditor.tsx +1 -1
- package/src/editors/ArchbasePhoneInput.tsx +355 -0
- package/src/editors/ArchbaseRangeSlider.tsx +109 -0
- package/src/editors/ArchbaseSignaturePad.tsx +425 -0
- package/src/editors/ArchbaseSpeechToTextInput.tsx +444 -0
- package/src/editors/ArchbaseSpreadsheet.tsx +388 -0
- package/src/editors/ArchbaseTagInput.tsx +326 -0
- package/src/editors/index.tsx +92 -0
- package/src/feedback/ArchbaseChunkProgressBar.tsx +156 -0
- package/src/feedback/ArchbaseRipple.tsx +278 -0
- package/src/feedback/ArchbaseSkeleton.tsx +419 -0
- package/src/feedback/index.ts +22 -1
- package/src/filters/ArchbaseColumnSelector.tsx +268 -0
- package/src/filters/index.ts +2 -0
- package/src/forms/ArchbaseFieldArray.tsx +305 -0
- package/src/forms/ArchbaseFormWizard.tsx +284 -0
- package/src/forms/ArchbaseStepper.tsx +137 -0
- package/src/forms/index.ts +24 -2
- package/src/forms/useArchbaseFormWizard.ts +283 -0
- package/src/hooks/index.ts +12 -0
- package/src/hooks/useArchbaseConfirm.ts +293 -0
- package/src/image/editor/functions/image-processing.ts +5 -0
- package/src/image/editor/index.tsx +305 -391
- package/src/image/index.ts +1 -0
- package/src/index.ts +3 -0
- package/src/list/ArchbaseTreeList.tsx +422 -0
- package/src/list/index.ts +3 -0
- package/src/navigation/ArchbaseActionSheet.tsx +301 -0
- package/src/navigation/ArchbaseAppBar.tsx +233 -0
- package/src/navigation/ArchbaseBottomNavigation.tsx +243 -0
- package/src/navigation/ArchbaseContextMenu.tsx +298 -0
- package/src/navigation/ArchbaseKeyboardShortcuts.tsx +472 -0
- package/src/navigation/ArchbaseSpotlight.tsx +483 -0
- package/src/navigation/index.ts +48 -1
- package/src/notification/ArchbaseNotificationCenter.tsx +502 -0
- package/src/notification/index.ts +2 -0
- package/src/onboarding/ArchbaseOnboardingTour.tsx +229 -102
- package/src/viewers/ArchbaseDocViewer.tsx +584 -0
- package/src/viewers/ArchbasePdfBuilder.tsx +291 -0
- package/src/viewers/ArchbaseXmlViewer.tsx +142 -0
- package/src/viewers/index.ts +12 -0
|
@@ -1,99 +1,50 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { OnboardingTourStep } from '@gfazioli/mantine-onboarding-tour';
|
|
3
2
|
export interface ArchbaseOnboardingTourStep {
|
|
4
|
-
/**
|
|
5
|
-
* ID único do step
|
|
6
|
-
*/
|
|
3
|
+
/** ID único do step */
|
|
7
4
|
id: string;
|
|
8
|
-
/**
|
|
9
|
-
* Seletor CSS do elemento a ser destacado
|
|
10
|
-
*/
|
|
5
|
+
/** Seletor CSS do elemento a ser destacado */
|
|
11
6
|
target?: string;
|
|
12
|
-
/**
|
|
13
|
-
* Título do step
|
|
14
|
-
*/
|
|
7
|
+
/** Título do step */
|
|
15
8
|
title?: ReactNode;
|
|
16
|
-
/**
|
|
17
|
-
* Conteúdo/descrição do step
|
|
18
|
-
*/
|
|
9
|
+
/** Conteúdo/descrição do step */
|
|
19
10
|
content?: ReactNode;
|
|
20
11
|
}
|
|
21
12
|
export interface ArchbaseOnboardingTourProps {
|
|
22
|
-
/**
|
|
23
|
-
* Array de steps do tour
|
|
24
|
-
*/
|
|
13
|
+
/** Array de steps do tour */
|
|
25
14
|
steps: ArchbaseOnboardingTourStep[];
|
|
26
|
-
/**
|
|
27
|
-
* Callback quando o tour é iniciado
|
|
28
|
-
*/
|
|
15
|
+
/** Callback quando o tour é iniciado */
|
|
29
16
|
onStart?: () => void;
|
|
30
|
-
/**
|
|
31
|
-
* Callback quando o tour é finalizado
|
|
32
|
-
*/
|
|
17
|
+
/** Callback quando o tour é finalizado */
|
|
33
18
|
onEnd?: () => void;
|
|
34
|
-
/**
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
onChange?: (step: OnboardingTourStep) => void;
|
|
38
|
-
/**
|
|
39
|
-
* Iniciar o tour automaticamente ao montar o componente
|
|
40
|
-
* @default false
|
|
41
|
-
*/
|
|
19
|
+
/** Callback quando o step muda */
|
|
20
|
+
onChange?: (step: ArchbaseOnboardingTourStep) => void;
|
|
21
|
+
/** Iniciar o tour automaticamente ao montar o componente */
|
|
42
22
|
autoStart?: boolean;
|
|
43
|
-
/**
|
|
44
|
-
* Se o tour deve ser repetido (loop)
|
|
45
|
-
*/
|
|
23
|
+
/** Se o tour deve ser repetido (loop) */
|
|
46
24
|
loop?: boolean;
|
|
47
|
-
/**
|
|
48
|
-
* Conteúdo da aplicação (children é obrigatório no componente base)
|
|
49
|
-
*/
|
|
25
|
+
/** Conteúdo da aplicação */
|
|
50
26
|
children: ReactNode;
|
|
27
|
+
/** Label do botão próximo */
|
|
28
|
+
nextLabel?: string;
|
|
29
|
+
/** Label do botão anterior */
|
|
30
|
+
prevLabel?: string;
|
|
31
|
+
/** Label do botão finalizar */
|
|
32
|
+
finishLabel?: string;
|
|
33
|
+
/** Label do botão pular */
|
|
34
|
+
skipLabel?: string;
|
|
35
|
+
/** Mostrar botão pular */
|
|
36
|
+
showSkip?: boolean;
|
|
51
37
|
}
|
|
52
38
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* Wrapper sobre @gfazioli/mantine-onboarding-tour para criar tours interativos
|
|
56
|
-
* de onboarding em aplicações React. Ideal para introduzir novos usuários às
|
|
57
|
-
* funcionalidades do sistema.
|
|
58
|
-
*
|
|
59
|
-
* @example
|
|
60
|
-
* ```tsx
|
|
61
|
-
* function App() {
|
|
62
|
-
* const tourSteps: ArchbaseOnboardingTourStep[] = [
|
|
63
|
-
* {
|
|
64
|
-
* id: 'welcome',
|
|
65
|
-
* target: '#dashboard',
|
|
66
|
-
* title: 'Bem-vindo ao Dashboard',
|
|
67
|
-
* content: 'Aqui você pode ver todas as suas métricas.',
|
|
68
|
-
* },
|
|
69
|
-
* {
|
|
70
|
-
* id: 'settings',
|
|
71
|
-
* target: '#settings',
|
|
72
|
-
* title: 'Configurações',
|
|
73
|
-
* content: 'Ajuste suas preferências aqui.',
|
|
74
|
-
* },
|
|
75
|
-
* ];
|
|
76
|
-
*
|
|
77
|
-
* return (
|
|
78
|
-
* <ArchbaseOnboardingTour
|
|
79
|
-
* steps={tourSteps}
|
|
80
|
-
* autoStart={true}
|
|
81
|
-
* onEnd={() => console.log('Tour finalizado!')}
|
|
82
|
-
* >
|
|
83
|
-
* <YourAppContent />
|
|
84
|
-
* </ArchbaseOnboardingTour>
|
|
85
|
-
* );
|
|
86
|
-
* }
|
|
87
|
-
* ```
|
|
39
|
+
* ArchbaseOnboardingTour — Tour interativo de onboarding sem dependências externas.
|
|
40
|
+
* Usa Mantine Overlay + Portal para destacar elementos e exibir tooltips.
|
|
88
41
|
*/
|
|
89
|
-
export declare function ArchbaseOnboardingTour({ steps, onStart, onEnd, onChange, autoStart, loop, children, }: ArchbaseOnboardingTourProps): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
export declare function ArchbaseOnboardingTour({ steps, onStart, onEnd, onChange, autoStart, loop, children, nextLabel, prevLabel, finishLabel, skipLabel, showSkip, }: ArchbaseOnboardingTourProps): import("react/jsx-runtime").JSX.Element;
|
|
90
43
|
/**
|
|
91
|
-
* Hook
|
|
92
|
-
*
|
|
93
|
-
* Para controle programático completo, use o hook `useOnboardingTour`
|
|
94
|
-
* diretamente de @gfazioli/mantine-onboarding-tour
|
|
44
|
+
* Hook para controlar o tour programaticamente
|
|
95
45
|
*/
|
|
96
46
|
export declare function useArchbaseOnboarding(): {
|
|
47
|
+
started: boolean;
|
|
97
48
|
start: () => void;
|
|
98
49
|
stop: () => void;
|
|
99
50
|
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { IArchbaseDataSourceBase } from '@archbase/data';
|
|
2
|
+
type DocumentType = 'pdf' | 'image' | 'text' | 'office' | 'unknown';
|
|
3
|
+
export interface ArchbaseDocViewerProps<T> {
|
|
4
|
+
/** DataSource to read the URL or base64 value from */
|
|
5
|
+
dataSource?: IArchbaseDataSourceBase<T>;
|
|
6
|
+
/** Field name within the DataSource */
|
|
7
|
+
dataField?: string;
|
|
8
|
+
/** Standalone URL string */
|
|
9
|
+
uri?: string;
|
|
10
|
+
/** Standalone base64 string (include the data URI prefix or provide mimeType) */
|
|
11
|
+
base64?: string;
|
|
12
|
+
/** Explicit MIME type – auto-detected from the URL extension when omitted */
|
|
13
|
+
mimeType?: string;
|
|
14
|
+
/** Height of the viewer @default '600px' */
|
|
15
|
+
height?: string | number;
|
|
16
|
+
/** Width of the viewer @default '100%' */
|
|
17
|
+
width?: string | number;
|
|
18
|
+
/** Show the toolbar with download / open-in-new-tab buttons @default true */
|
|
19
|
+
showToolbar?: boolean;
|
|
20
|
+
/** Label for Input.Wrapper */
|
|
21
|
+
label?: string;
|
|
22
|
+
/** Description for Input.Wrapper */
|
|
23
|
+
description?: string;
|
|
24
|
+
/** Error message for Input.Wrapper */
|
|
25
|
+
error?: string;
|
|
26
|
+
/** Callback fired when the document finishes loading */
|
|
27
|
+
onDocumentLoad?: () => void;
|
|
28
|
+
/** Callback fired when the document fails to load */
|
|
29
|
+
onDocumentError?: (error: Error) => void;
|
|
30
|
+
/** Custom style applied to the outer container */
|
|
31
|
+
style?: React.CSSProperties;
|
|
32
|
+
/** Custom class name */
|
|
33
|
+
className?: string;
|
|
34
|
+
}
|
|
35
|
+
declare function ArchbaseDocViewer<T>({ dataSource, dataField, uri, base64, mimeType: mimeTypeProp, height, width, showToolbar, label, description, error: errorProp, onDocumentLoad, onDocumentError, style, className, }: ArchbaseDocViewerProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
declare namespace ArchbaseDocViewer {
|
|
37
|
+
var displayName: string;
|
|
38
|
+
}
|
|
39
|
+
export { ArchbaseDocViewer };
|
|
40
|
+
export type { DocumentType };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
import { Designer, Form, Viewer } from '@pdfme/ui';
|
|
3
|
+
import { Template, Font } from '@pdfme/common';
|
|
4
|
+
export interface ArchbasePdfBuilderRef {
|
|
5
|
+
/** Generate a PDF from the current template + inputs and return its bytes. */
|
|
6
|
+
generatePdf(): Promise<Uint8Array>;
|
|
7
|
+
/** Return the current pdfme instance (Designer | Form | Viewer) if available. */
|
|
8
|
+
getInstance(): Designer | Form | Viewer | null;
|
|
9
|
+
}
|
|
10
|
+
export interface ArchbasePdfBuilderProps<T = unknown> {
|
|
11
|
+
/** Which pdfme UI to render. */
|
|
12
|
+
mode?: 'designer' | 'form' | 'viewer';
|
|
13
|
+
/** The pdfme template object. */
|
|
14
|
+
template: Template;
|
|
15
|
+
/**
|
|
16
|
+
* Optional Archbase DataSource – used in `form` mode to populate inputs
|
|
17
|
+
* from the current record.
|
|
18
|
+
*/
|
|
19
|
+
dataSource?: any;
|
|
20
|
+
/** Field path inside the data source record. */
|
|
21
|
+
dataField?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Standalone inputs for `form` / `viewer` mode.
|
|
24
|
+
* Each element maps schema field names to string values.
|
|
25
|
+
*/
|
|
26
|
+
inputs?: Record<string, string>[];
|
|
27
|
+
/** Fired whenever the designer changes the template. */
|
|
28
|
+
onTemplateChange?: (template: Template) => void;
|
|
29
|
+
/** Fired when `generatePdf` completes. */
|
|
30
|
+
onGenerate?: (pdf: Uint8Array) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Additional pdfme schema plugins.
|
|
33
|
+
* Defaults to `[text, image, barcodes]`.
|
|
34
|
+
*/
|
|
35
|
+
plugins?: Record<string, any>;
|
|
36
|
+
/** Custom font configuration forwarded to pdfme. */
|
|
37
|
+
font?: Font;
|
|
38
|
+
/** Container height. */
|
|
39
|
+
height?: string | number;
|
|
40
|
+
/** Container width. */
|
|
41
|
+
width?: string | number;
|
|
42
|
+
/** Optional label rendered above the builder (uses Mantine Input.Wrapper). */
|
|
43
|
+
label?: string;
|
|
44
|
+
/** Optional description rendered below the label. */
|
|
45
|
+
description?: string;
|
|
46
|
+
/** Extra inline styles applied to the outer wrapper. */
|
|
47
|
+
style?: CSSProperties;
|
|
48
|
+
/** Extra CSS class name applied to the outer wrapper. */
|
|
49
|
+
className?: string;
|
|
50
|
+
}
|
|
51
|
+
export declare const ArchbasePdfBuilder: <T = unknown>(props: ArchbasePdfBuilderProps<T> & {
|
|
52
|
+
ref?: React.Ref<ArchbasePdfBuilderRef>;
|
|
53
|
+
}) => React.ReactElement | null;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { IArchbaseDataSourceBase } from '@archbase/data';
|
|
2
|
+
export interface ArchbaseXmlViewerProps<T> {
|
|
3
|
+
/** DataSource to read the XML string value from */
|
|
4
|
+
dataSource?: IArchbaseDataSourceBase<T>;
|
|
5
|
+
/** Field name within the DataSource */
|
|
6
|
+
dataField?: string;
|
|
7
|
+
/** Standalone XML string value */
|
|
8
|
+
value?: string;
|
|
9
|
+
/** Alias for value - standalone XML string */
|
|
10
|
+
xml?: string;
|
|
11
|
+
/** Label for Input.Wrapper */
|
|
12
|
+
label?: string;
|
|
13
|
+
/** Description for Input.Wrapper */
|
|
14
|
+
description?: string;
|
|
15
|
+
/** Error message for Input.Wrapper */
|
|
16
|
+
error?: string;
|
|
17
|
+
/** Whether to show line numbers @default true */
|
|
18
|
+
showLineNumbers?: boolean;
|
|
19
|
+
/** Whether to show the copy button @default true */
|
|
20
|
+
showCopyButton?: boolean;
|
|
21
|
+
/** Whether to auto-format/indent the XML @default true */
|
|
22
|
+
formatXml?: boolean;
|
|
23
|
+
/** Max height - enables scroll area when set */
|
|
24
|
+
maxHeight?: string | number;
|
|
25
|
+
/** Custom style */
|
|
26
|
+
style?: React.CSSProperties;
|
|
27
|
+
/** Custom class name */
|
|
28
|
+
className?: string;
|
|
29
|
+
/** Width of the viewer */
|
|
30
|
+
width?: string | number;
|
|
31
|
+
}
|
|
32
|
+
declare function ArchbaseXmlViewer<T>({ dataSource, dataField, value: valueProp, xml, label, description, error, showCopyButton, formatXml, maxHeight, style, className, width, }: ArchbaseXmlViewerProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
declare namespace ArchbaseXmlViewer {
|
|
34
|
+
var displayName: string;
|
|
35
|
+
}
|
|
36
|
+
export { ArchbaseXmlViewer };
|
package/dist/viewers/index.d.ts
CHANGED
|
@@ -2,4 +2,10 @@ export { ArchbasePDFViewer } from './ArchbasePDFViewer';
|
|
|
2
2
|
export { ArchbasePDFViewerToolbar } from './ArchbasePDFViewer.toolbar';
|
|
3
3
|
export { ArchbasePDFAnnotations, ArchbasePDFAnnotationsList, } from './ArchbasePDFViewer.annotations';
|
|
4
4
|
export type { ArchbasePDFViewerProps, PDFSource, PDFAnnotation, PDFRenderMode, PDFTextLayerMode, PDFToolbarActions, } from './ArchbasePDFViewer.types';
|
|
5
|
+
export { ArchbaseXmlViewer } from './ArchbaseXmlViewer';
|
|
6
|
+
export type { ArchbaseXmlViewerProps } from './ArchbaseXmlViewer';
|
|
7
|
+
export { ArchbasePdfBuilder } from './ArchbasePdfBuilder';
|
|
8
|
+
export type { ArchbasePdfBuilderProps, ArchbasePdfBuilderRef } from './ArchbasePdfBuilder';
|
|
9
|
+
export { ArchbaseDocViewer } from './ArchbaseDocViewer';
|
|
10
|
+
export type { ArchbaseDocViewerProps } from './ArchbaseDocViewer';
|
|
5
11
|
export * from './file-preview';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@archbase/components",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.1",
|
|
4
4
|
"description": "UI Components for Archbase React v3 - Form editors, data visualization, and business components",
|
|
5
5
|
"author": "Edson Martins <edsonmartins2005@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,29 +23,35 @@
|
|
|
23
23
|
"src"
|
|
24
24
|
],
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@mantine/carousel": "
|
|
27
|
-
"@mantine/charts": "
|
|
28
|
-
"@mantine/code-highlight": "
|
|
29
|
-
"@mantine/core": "
|
|
30
|
-
"@mantine/dates": "
|
|
31
|
-
"@mantine/dropzone": "
|
|
32
|
-
"@mantine/form": "
|
|
33
|
-
"@mantine/hooks": "
|
|
34
|
-
"@mantine/modals": "
|
|
35
|
-
"@mantine/notifications": "
|
|
26
|
+
"@mantine/carousel": "9.1.1",
|
|
27
|
+
"@mantine/charts": "9.1.1",
|
|
28
|
+
"@mantine/code-highlight": "9.1.1",
|
|
29
|
+
"@mantine/core": "9.1.1",
|
|
30
|
+
"@mantine/dates": "9.1.1",
|
|
31
|
+
"@mantine/dropzone": "9.1.1",
|
|
32
|
+
"@mantine/form": "9.1.1",
|
|
33
|
+
"@mantine/hooks": "9.1.1",
|
|
34
|
+
"@mantine/modals": "9.1.1",
|
|
35
|
+
"@mantine/notifications": "9.1.1",
|
|
36
36
|
"@tabler/icons-react": "^3.26.0",
|
|
37
37
|
"react": "^18.3.0 || ^19.2.0",
|
|
38
38
|
"react-dom": "^18.3.0 || ^19.2.0"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@archbase/core": "
|
|
42
|
-
"@archbase/data": "
|
|
43
|
-
"@archbase/layout": "
|
|
44
|
-
"@
|
|
45
|
-
"@
|
|
41
|
+
"@archbase/core": "4.0.1",
|
|
42
|
+
"@archbase/data": "4.0.1",
|
|
43
|
+
"@archbase/layout": "4.0.1",
|
|
44
|
+
"@fortune-sheet/core": "^1.0.4",
|
|
45
|
+
"@fortune-sheet/react": "^1.0.4",
|
|
46
|
+
"@pdfme/ui": "^5.3.6",
|
|
47
|
+
"@pdfme/common": "^5.3.6",
|
|
48
|
+
"@pdfme/schemas": "^5.3.6",
|
|
49
|
+
"@pdfme/generator": "^5.3.6",
|
|
50
|
+
"@gfazioli/mantine-list-view-table": "^2.2.0",
|
|
46
51
|
"@mui/x-data-grid": "^7.28.3",
|
|
47
52
|
"@rehooks/component-size": "^1.0.3",
|
|
48
53
|
"ajv": "^8.16.0",
|
|
54
|
+
"cep-promise": "^4.4.0",
|
|
49
55
|
"chart.js": "^4.4.2",
|
|
50
56
|
"classnames": "^2.5.1",
|
|
51
57
|
"clsx": "^2.1.1",
|
|
@@ -57,6 +63,7 @@
|
|
|
57
63
|
"export-to-csv": "^0.2.2",
|
|
58
64
|
"file-saver": "^2.0.5",
|
|
59
65
|
"framer-motion": "^11.15.0",
|
|
66
|
+
"gantt-task-react": "^0.3.9",
|
|
60
67
|
"html2canvas": "^1.4.1",
|
|
61
68
|
"i18next": "^23.10.0",
|
|
62
69
|
"immer": "^10.1.1",
|
|
@@ -72,22 +79,28 @@
|
|
|
72
79
|
"overlayscrollbars": "^2.8.3",
|
|
73
80
|
"pdfjs-dist": "^4.0.379",
|
|
74
81
|
"pubsub-js": "^1.9.4",
|
|
82
|
+
"qrcode.react": "^4.2.0",
|
|
75
83
|
"ramda": "~0.29.1",
|
|
76
84
|
"react-chartjs-2": "^5.2.0",
|
|
77
85
|
"react-date-object": "^2.1.8",
|
|
86
|
+
"react-diff-viewer-continued": "^4.0.5",
|
|
78
87
|
"react-easy-crop": "^4.7.4",
|
|
79
88
|
"react-frame-component": "^5.2.7",
|
|
80
89
|
"react-hook-form": "^7.54.2",
|
|
81
90
|
"react-i18next": "^13.5.0",
|
|
82
91
|
"react-imask": "^7.6.1",
|
|
83
92
|
"react-inspector": "^9.0.0",
|
|
93
|
+
"react-json-view-lite": "^2.1.0",
|
|
84
94
|
"react-intersection-observer": "^9.10.3",
|
|
85
95
|
"react-markdown": "^9.0.1",
|
|
86
96
|
"react-markdown-editor-lite": "^1.3.5",
|
|
87
97
|
"react-modal": "^3.16.1",
|
|
98
|
+
"react-phone-number-input": "^3.4.0",
|
|
88
99
|
"react-multi-date-picker": "4.1.2",
|
|
100
|
+
"react-multi-email": "^1.0.24",
|
|
89
101
|
"react-pdf": "^9.1.0",
|
|
90
102
|
"react-router": "^6.22.0",
|
|
103
|
+
"react-signature-canvas": "^1.0.7",
|
|
91
104
|
"react-router-dom": "^6.22.0",
|
|
92
105
|
"react-speech-recognition": "^3.10.0",
|
|
93
106
|
"react-thermal-printer": "^0.22.0",
|
|
@@ -102,7 +115,15 @@
|
|
|
102
115
|
"uuid": "^9.0.1",
|
|
103
116
|
"validator": "^13.12.0",
|
|
104
117
|
"vis-timeline": "^7.7.3",
|
|
105
|
-
"xlsx": "^0.18.5"
|
|
118
|
+
"xlsx": "^0.18.5",
|
|
119
|
+
"react-mentions": "^4.4.10",
|
|
120
|
+
"sheet-happens": "^0.0.57",
|
|
121
|
+
"mantine-contextmenu": "^7.14.0",
|
|
122
|
+
"jsbarcode": "^3.11.6",
|
|
123
|
+
"yet-another-react-lightbox": "^3.21.0",
|
|
124
|
+
"react-photo-album": "^3.0.0",
|
|
125
|
+
"react-image-picker-editor": "^1.1.1",
|
|
126
|
+
"react-pro-sidebar": "^1.1.0"
|
|
106
127
|
},
|
|
107
128
|
"devDependencies": {
|
|
108
129
|
"@types/d3": "^7.4.3",
|
|
@@ -110,6 +131,7 @@
|
|
|
110
131
|
"@types/node": "^22.16.1",
|
|
111
132
|
"@types/react": "^19.0.6",
|
|
112
133
|
"@types/react-dom": "^19.0.2",
|
|
134
|
+
"@types/react-signature-canvas": "^1.0.5",
|
|
113
135
|
"@vitejs/plugin-react": "^4.3.4",
|
|
114
136
|
"react": "^19.2.3",
|
|
115
137
|
"react-dom": "^19.2.3",
|
|
@@ -117,7 +139,8 @@
|
|
|
117
139
|
"typescript": "~5.7.2",
|
|
118
140
|
"vite": "^6.0.3",
|
|
119
141
|
"vite-plugin-dts": "^4.5.4",
|
|
120
|
-
"vitest": "^2.1.8"
|
|
142
|
+
"vitest": "^2.1.8",
|
|
143
|
+
"@types/react-mentions": "^4.1.13"
|
|
121
144
|
},
|
|
122
145
|
"publishConfig": {
|
|
123
146
|
"registry": "http://192.168.1.110:4873"
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import React, { forwardRef, useCallback, useState, ReactNode } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
ActionIcon,
|
|
4
|
+
Box,
|
|
5
|
+
Tooltip,
|
|
6
|
+
MantineColor,
|
|
7
|
+
MantineSize,
|
|
8
|
+
MantineRadius,
|
|
9
|
+
Transition,
|
|
10
|
+
Text,
|
|
11
|
+
} from '@mantine/core';
|
|
12
|
+
import { IconPlus, IconX } from '@tabler/icons-react';
|
|
13
|
+
|
|
14
|
+
export interface ArchbaseSpeedDialAction {
|
|
15
|
+
/** ID único da ação */
|
|
16
|
+
id: string;
|
|
17
|
+
/** Ícone da ação */
|
|
18
|
+
icon: ReactNode;
|
|
19
|
+
/** Label da ação (tooltip) */
|
|
20
|
+
label: string;
|
|
21
|
+
/** Callback ao clicar */
|
|
22
|
+
onClick: () => void;
|
|
23
|
+
/** Cor da ação */
|
|
24
|
+
color?: MantineColor;
|
|
25
|
+
/** Se está desabilitado */
|
|
26
|
+
disabled?: boolean;
|
|
27
|
+
/** Se deve mostrar label junto ao botão */
|
|
28
|
+
showLabel?: boolean;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface ArchbaseSpeedDialProps {
|
|
32
|
+
/** Ações do speed dial */
|
|
33
|
+
actions: ArchbaseSpeedDialAction[];
|
|
34
|
+
/** Ícone quando fechado */
|
|
35
|
+
icon?: ReactNode;
|
|
36
|
+
/** Ícone quando aberto */
|
|
37
|
+
openIcon?: ReactNode;
|
|
38
|
+
/** Cor do botão principal */
|
|
39
|
+
color?: MantineColor;
|
|
40
|
+
/** Tamanho dos botões */
|
|
41
|
+
size?: MantineSize;
|
|
42
|
+
/** Raio das bordas */
|
|
43
|
+
radius?: MantineRadius;
|
|
44
|
+
/** Direção de expansão */
|
|
45
|
+
direction?: 'up' | 'down' | 'left' | 'right';
|
|
46
|
+
/** Se está aberto (controlado) */
|
|
47
|
+
opened?: boolean;
|
|
48
|
+
/** Callback ao abrir/fechar */
|
|
49
|
+
onOpenChange?: (opened: boolean) => void;
|
|
50
|
+
/** Se deve fechar ao clicar em uma ação */
|
|
51
|
+
closeOnActionClick?: boolean;
|
|
52
|
+
/** Posição no layout */
|
|
53
|
+
position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
54
|
+
/** Se está fixo na tela */
|
|
55
|
+
fixed?: boolean;
|
|
56
|
+
/** Espaçamento da borda quando fixo */
|
|
57
|
+
offset?: number;
|
|
58
|
+
/** Espaçamento entre ações */
|
|
59
|
+
gap?: number;
|
|
60
|
+
/** Variante do botão */
|
|
61
|
+
variant?: 'filled' | 'light' | 'outline' | 'subtle' | 'default';
|
|
62
|
+
/** Se deve mostrar backdrop */
|
|
63
|
+
withBackdrop?: boolean;
|
|
64
|
+
/** Callback ao clicar no backdrop */
|
|
65
|
+
onBackdropClick?: () => void;
|
|
66
|
+
/** Classe CSS */
|
|
67
|
+
className?: string;
|
|
68
|
+
/** Estilo */
|
|
69
|
+
style?: React.CSSProperties;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export const ArchbaseSpeedDial = forwardRef<HTMLDivElement, ArchbaseSpeedDialProps>(
|
|
73
|
+
(
|
|
74
|
+
{
|
|
75
|
+
actions,
|
|
76
|
+
icon,
|
|
77
|
+
openIcon,
|
|
78
|
+
color = 'blue',
|
|
79
|
+
size = 'lg',
|
|
80
|
+
radius = 'xl',
|
|
81
|
+
direction = 'up',
|
|
82
|
+
opened: controlledOpened,
|
|
83
|
+
onOpenChange,
|
|
84
|
+
closeOnActionClick = true,
|
|
85
|
+
position = 'bottom-right',
|
|
86
|
+
fixed = true,
|
|
87
|
+
offset = 24,
|
|
88
|
+
gap = 12,
|
|
89
|
+
variant = 'filled',
|
|
90
|
+
withBackdrop = false,
|
|
91
|
+
onBackdropClick,
|
|
92
|
+
className,
|
|
93
|
+
style,
|
|
94
|
+
},
|
|
95
|
+
ref
|
|
96
|
+
) => {
|
|
97
|
+
const [internalOpened, setInternalOpened] = useState(false);
|
|
98
|
+
|
|
99
|
+
const isOpened = controlledOpened !== undefined ? controlledOpened : internalOpened;
|
|
100
|
+
|
|
101
|
+
const handleToggle = useCallback(() => {
|
|
102
|
+
const newValue = !isOpened;
|
|
103
|
+
if (controlledOpened === undefined) {
|
|
104
|
+
setInternalOpened(newValue);
|
|
105
|
+
}
|
|
106
|
+
onOpenChange?.(newValue);
|
|
107
|
+
}, [controlledOpened, isOpened, onOpenChange]);
|
|
108
|
+
|
|
109
|
+
const handleClose = useCallback(() => {
|
|
110
|
+
if (controlledOpened === undefined) {
|
|
111
|
+
setInternalOpened(false);
|
|
112
|
+
}
|
|
113
|
+
onOpenChange?.(false);
|
|
114
|
+
}, [controlledOpened, onOpenChange]);
|
|
115
|
+
|
|
116
|
+
const handleActionClick = useCallback(
|
|
117
|
+
(action: ArchbaseSpeedDialAction) => {
|
|
118
|
+
if (action.disabled) return;
|
|
119
|
+
action.onClick();
|
|
120
|
+
if (closeOnActionClick) {
|
|
121
|
+
handleClose();
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
[closeOnActionClick, handleClose]
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
const handleBackdropClick = useCallback(() => {
|
|
128
|
+
handleClose();
|
|
129
|
+
onBackdropClick?.();
|
|
130
|
+
}, [handleClose, onBackdropClick]);
|
|
131
|
+
|
|
132
|
+
// Calcula a posição do container
|
|
133
|
+
const positionStyles = fixed
|
|
134
|
+
? {
|
|
135
|
+
position: 'fixed' as const,
|
|
136
|
+
...(position.includes('top') ? { top: offset } : { bottom: offset }),
|
|
137
|
+
...(position.includes('left') ? { left: offset } : { right: offset }),
|
|
138
|
+
}
|
|
139
|
+
: {};
|
|
140
|
+
|
|
141
|
+
// Calcula a direção de expansão
|
|
142
|
+
const getActionPosition = (index: number): React.CSSProperties => {
|
|
143
|
+
const distance = (index + 1) * (getSizeValue(size) + gap);
|
|
144
|
+
|
|
145
|
+
switch (direction) {
|
|
146
|
+
case 'up':
|
|
147
|
+
return { bottom: distance, left: 0 };
|
|
148
|
+
case 'down':
|
|
149
|
+
return { top: distance, left: 0 };
|
|
150
|
+
case 'left':
|
|
151
|
+
return { right: distance, top: 0 };
|
|
152
|
+
case 'right':
|
|
153
|
+
return { left: distance, top: 0 };
|
|
154
|
+
default:
|
|
155
|
+
return { bottom: distance, left: 0 };
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
// Tamanho numérico baseado no MantineSize
|
|
160
|
+
const getSizeValue = (s: MantineSize): number => {
|
|
161
|
+
const sizes: Record<MantineSize, number> = {
|
|
162
|
+
xs: 30,
|
|
163
|
+
sm: 36,
|
|
164
|
+
md: 42,
|
|
165
|
+
lg: 50,
|
|
166
|
+
xl: 60,
|
|
167
|
+
};
|
|
168
|
+
return sizes[s] || 42;
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
// Tamanho do action (um pouco menor)
|
|
172
|
+
const actionSize = size === 'xl' ? 'lg' : size === 'lg' ? 'md' : size === 'md' ? 'sm' : 'xs';
|
|
173
|
+
|
|
174
|
+
const DefaultIcon = isOpened ? IconX : IconPlus;
|
|
175
|
+
const displayIcon = isOpened ? (openIcon || <IconX />) : (icon || <IconPlus />);
|
|
176
|
+
|
|
177
|
+
return (
|
|
178
|
+
<>
|
|
179
|
+
{/* Backdrop */}
|
|
180
|
+
{withBackdrop && (
|
|
181
|
+
<Transition mounted={isOpened} transition="fade" duration={200}>
|
|
182
|
+
{(styles) => (
|
|
183
|
+
<Box
|
|
184
|
+
onClick={handleBackdropClick}
|
|
185
|
+
style={{
|
|
186
|
+
...styles,
|
|
187
|
+
position: 'fixed',
|
|
188
|
+
inset: 0,
|
|
189
|
+
backgroundColor: 'rgba(0, 0, 0, 0.3)',
|
|
190
|
+
zIndex: 999,
|
|
191
|
+
}}
|
|
192
|
+
/>
|
|
193
|
+
)}
|
|
194
|
+
</Transition>
|
|
195
|
+
)}
|
|
196
|
+
|
|
197
|
+
{/* Speed Dial Container */}
|
|
198
|
+
<Box
|
|
199
|
+
ref={ref}
|
|
200
|
+
className={className}
|
|
201
|
+
style={{
|
|
202
|
+
...positionStyles,
|
|
203
|
+
...style,
|
|
204
|
+
zIndex: 1000,
|
|
205
|
+
}}
|
|
206
|
+
>
|
|
207
|
+
{/* Actions */}
|
|
208
|
+
<Box style={{ position: 'relative' }}>
|
|
209
|
+
{actions.map((action, index) => (
|
|
210
|
+
<Transition
|
|
211
|
+
key={action.id}
|
|
212
|
+
mounted={isOpened}
|
|
213
|
+
transition="pop"
|
|
214
|
+
duration={200}
|
|
215
|
+
timingFunction="ease"
|
|
216
|
+
>
|
|
217
|
+
{(styles) => (
|
|
218
|
+
<Box
|
|
219
|
+
style={{
|
|
220
|
+
...styles,
|
|
221
|
+
position: 'absolute',
|
|
222
|
+
...getActionPosition(index),
|
|
223
|
+
display: 'flex',
|
|
224
|
+
alignItems: 'center',
|
|
225
|
+
gap: 8,
|
|
226
|
+
flexDirection: direction === 'left' ? 'row-reverse' : 'row',
|
|
227
|
+
transitionDelay: `${index * 50}ms`,
|
|
228
|
+
}}
|
|
229
|
+
>
|
|
230
|
+
{action.showLabel && (
|
|
231
|
+
<Text
|
|
232
|
+
size="sm"
|
|
233
|
+
style={{
|
|
234
|
+
whiteSpace: 'nowrap',
|
|
235
|
+
backgroundColor: 'var(--mantine-color-dark-7)',
|
|
236
|
+
color: 'white',
|
|
237
|
+
padding: '4px 8px',
|
|
238
|
+
borderRadius: 4,
|
|
239
|
+
}}
|
|
240
|
+
>
|
|
241
|
+
{action.label}
|
|
242
|
+
</Text>
|
|
243
|
+
)}
|
|
244
|
+
<Tooltip label={action.label} position={direction === 'right' ? 'right' : 'left'}>
|
|
245
|
+
<ActionIcon
|
|
246
|
+
size={actionSize}
|
|
247
|
+
radius={radius}
|
|
248
|
+
variant={variant}
|
|
249
|
+
color={action.color || color}
|
|
250
|
+
disabled={action.disabled}
|
|
251
|
+
onClick={() => handleActionClick(action)}
|
|
252
|
+
>
|
|
253
|
+
{action.icon}
|
|
254
|
+
</ActionIcon>
|
|
255
|
+
</Tooltip>
|
|
256
|
+
</Box>
|
|
257
|
+
)}
|
|
258
|
+
</Transition>
|
|
259
|
+
))}
|
|
260
|
+
|
|
261
|
+
{/* Main Button */}
|
|
262
|
+
<ActionIcon
|
|
263
|
+
size={size}
|
|
264
|
+
radius={radius}
|
|
265
|
+
variant={variant}
|
|
266
|
+
color={color}
|
|
267
|
+
onClick={handleToggle}
|
|
268
|
+
style={{
|
|
269
|
+
transition: 'transform 0.2s ease',
|
|
270
|
+
transform: isOpened ? 'rotate(45deg)' : 'rotate(0deg)',
|
|
271
|
+
}}
|
|
272
|
+
>
|
|
273
|
+
{displayIcon}
|
|
274
|
+
</ActionIcon>
|
|
275
|
+
</Box>
|
|
276
|
+
</Box>
|
|
277
|
+
</>
|
|
278
|
+
);
|
|
279
|
+
}
|
|
280
|
+
);
|
|
281
|
+
|
|
282
|
+
ArchbaseSpeedDial.displayName = 'ArchbaseSpeedDial';
|