@ozen-ui/kit 0.80.0 → 0.81.0
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/__inner__/cjs/components/Dialog/Dialog.d.ts +1 -0
- package/__inner__/cjs/components/DialogNext/components/DialogModal/DialogModal.d.ts +1 -0
- package/__inner__/cjs/components/DialogNext/types.d.ts +1 -1
- package/__inner__/cjs/components/Drawer/Drawer.d.ts +1 -0
- package/__inner__/cjs/components/Modal/Modal.d.ts +1 -0
- package/__inner__/cjs/components/Modal/Modal.js +13 -5
- package/__inner__/cjs/components/Modal/constants.d.ts +1 -0
- package/__inner__/cjs/components/Modal/constants.js +2 -1
- package/__inner__/cjs/components/Modal/types.d.ts +2 -0
- package/__inner__/cjs/components/OzenProvider/providers/theme/entities/defaultProps.d.ts +2 -1
- package/__inner__/cjs/components/StepperVertical/StepperVertical.d.ts +1 -0
- package/__inner__/cjs/components/StepperVertical/StepperVertical.js +14 -3
- package/__inner__/cjs/components/StepperVertical/StepperVerticalContext.d.ts +8 -0
- package/__inner__/cjs/components/StepperVertical/StepperVerticalContext.js +10 -0
- package/__inner__/cjs/components/StepperVertical/hooks/index.d.ts +4 -0
- package/__inner__/cjs/components/StepperVertical/hooks/index.js +7 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalCreateStep/index.d.ts +2 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalCreateStep/index.js +5 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalCreateStep/types.d.ts +11 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalCreateStep/types.js +2 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalCreateStep/useStepperVerticalCreateStep.d.ts +2 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalCreateStep/useStepperVerticalCreateStep.js +48 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepHelper.d.ts +5 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepHelper.js +92 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsControl/index.d.ts +2 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsControl/index.js +5 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsControl/types.d.ts +8 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsControl/types.js +2 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsControl/useStepperVerticalStepsControl.d.ts +2 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsControl/useStepperVerticalStepsControl.js +26 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsStructure/index.d.ts +2 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsStructure/index.js +5 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsStructure/types.d.ts +15 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsStructure/types.js +2 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsStructure/useStepperVerticalStepsStructure.d.ts +8 -0
- package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsStructure/useStepperVerticalStepsStructure.js +82 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/constants.js +1 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.css +42 -4
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.d.ts +0 -1
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.js +46 -16
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepContext.d.ts +3 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepContext.js +11 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepRootContext.d.ts +7 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepRootContext.js +15 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/classNames.d.ts +1 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/classNames.js +5 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/entities/variant.d.ts +1 -1
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/entities/variant.js +1 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/index.d.ts +2 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/index.js +2 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/types.d.ts +2 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.css +10 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.d.ts +3 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.js +31 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/constants.d.ts +2 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/constants.js +6 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/content.d.ts +4 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/content.js +2 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/index.d.ts +1 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/index.js +4 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/index.d.ts +3 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/index.js +6 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/types.d.ts +11 -0
- package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/types.js +2 -0
- package/__inner__/cjs/components/StepperVertical/modules/index.d.ts +1 -0
- package/__inner__/cjs/components/StepperVertical/modules/index.js +1 -0
- package/__inner__/cjs/hooks/useEventBus/index.d.ts +1 -0
- package/__inner__/cjs/hooks/useEventBus/index.js +4 -0
- package/__inner__/cjs/hooks/useEventBus/useEventBus.d.ts +3 -0
- package/__inner__/cjs/hooks/useEventBus/useEventBus.js +9 -0
- package/__inner__/cjs/hooks/useEventBusEvents/index.d.ts +2 -0
- package/__inner__/cjs/hooks/useEventBusEvents/index.js +5 -0
- package/__inner__/cjs/hooks/useEventBusEvents/types.d.ts +4 -0
- package/__inner__/cjs/hooks/useEventBusEvents/types.js +2 -0
- package/__inner__/cjs/hooks/useEventBusEvents/useEventBusEvents.d.ts +5 -0
- package/__inner__/cjs/hooks/useEventBusEvents/useEventBusEvents.js +40 -0
- package/__inner__/cjs/utils/eventBus/EventBus.d.ts +8 -0
- package/__inner__/cjs/utils/eventBus/EventBus.js +51 -0
- package/__inner__/cjs/utils/eventBus/index.d.ts +2 -0
- package/__inner__/cjs/utils/eventBus/index.js +5 -0
- package/__inner__/cjs/utils/eventBus/types/EventBusEvents.d.ts +1 -0
- package/__inner__/cjs/utils/eventBus/types/EventBusEvents.js +2 -0
- package/__inner__/cjs/utils/eventBus/types/EventBusListener.d.ts +5 -0
- package/__inner__/cjs/utils/eventBus/types/EventBusListener.js +2 -0
- package/__inner__/cjs/utils/eventBus/types/EventBusListenerCallback.d.ts +1 -0
- package/__inner__/cjs/utils/eventBus/types/EventBusListenerCallback.js +2 -0
- package/__inner__/cjs/utils/eventBus/types/ExtractEventBusEvents.d.ts +3 -0
- package/__inner__/cjs/utils/eventBus/types/ExtractEventBusEvents.js +2 -0
- package/__inner__/cjs/utils/eventBus/types/index.d.ts +4 -0
- package/__inner__/cjs/utils/eventBus/types/index.js +7 -0
- package/__inner__/cjs/utils/index.d.ts +1 -0
- package/__inner__/cjs/utils/index.js +1 -0
- package/__inner__/cjs/utils/test-utils.d.ts +9 -1
- package/__inner__/cjs/utils/test-utils.js +19 -2
- package/__inner__/esm/components/Dialog/Dialog.d.ts +1 -0
- package/__inner__/esm/components/DialogNext/components/DialogModal/DialogModal.d.ts +1 -0
- package/__inner__/esm/components/DialogNext/types.d.ts +1 -1
- package/__inner__/esm/components/Drawer/Drawer.d.ts +1 -0
- package/__inner__/esm/components/Modal/Modal.d.ts +1 -0
- package/__inner__/esm/components/Modal/Modal.js +14 -6
- package/__inner__/esm/components/Modal/constants.d.ts +1 -0
- package/__inner__/esm/components/Modal/constants.js +1 -0
- package/__inner__/esm/components/Modal/types.d.ts +2 -0
- package/__inner__/esm/components/OzenProvider/providers/theme/entities/defaultProps.d.ts +2 -1
- package/__inner__/esm/components/StepperVertical/StepperVertical.d.ts +1 -0
- package/__inner__/esm/components/StepperVertical/StepperVertical.js +14 -3
- package/__inner__/esm/components/StepperVertical/StepperVerticalContext.d.ts +8 -0
- package/__inner__/esm/components/StepperVertical/StepperVerticalContext.js +10 -0
- package/__inner__/esm/components/StepperVertical/hooks/index.d.ts +4 -0
- package/__inner__/esm/components/StepperVertical/hooks/index.js +4 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalCreateStep/index.d.ts +2 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalCreateStep/index.js +2 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalCreateStep/types.d.ts +11 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalCreateStep/types.js +1 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalCreateStep/useStepperVerticalCreateStep.d.ts +2 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalCreateStep/useStepperVerticalCreateStep.js +44 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepHelper.d.ts +5 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepHelper.js +88 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsControl/index.d.ts +2 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsControl/index.js +2 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsControl/types.d.ts +8 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsControl/types.js +1 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsControl/useStepperVerticalStepsControl.d.ts +2 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsControl/useStepperVerticalStepsControl.js +22 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsStructure/index.d.ts +2 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsStructure/index.js +2 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsStructure/types.d.ts +15 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsStructure/types.js +1 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsStructure/useStepperVerticalStepsStructure.d.ts +8 -0
- package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsStructure/useStepperVerticalStepsStructure.js +78 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/constants.js +2 -1
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.css +42 -4
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.d.ts +0 -1
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.js +46 -16
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepContext.d.ts +3 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepContext.js +11 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepRootContext.d.ts +7 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepRootContext.js +11 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/classNames.d.ts +1 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/classNames.js +2 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/entities/variant.d.ts +1 -1
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/entities/variant.js +1 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/index.d.ts +2 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/index.js +2 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/types.d.ts +2 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.css +10 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.d.ts +3 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.js +28 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/constants.d.ts +2 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/constants.js +3 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/content.d.ts +4 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/content.js +1 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/index.d.ts +1 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/index.js +1 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/index.d.ts +3 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/index.js +3 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/types.d.ts +11 -0
- package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/types.js +1 -0
- package/__inner__/esm/components/StepperVertical/modules/index.d.ts +1 -0
- package/__inner__/esm/components/StepperVertical/modules/index.js +1 -0
- package/__inner__/esm/hooks/useEventBus/index.d.ts +1 -0
- package/__inner__/esm/hooks/useEventBus/index.js +1 -0
- package/__inner__/esm/hooks/useEventBus/useEventBus.d.ts +3 -0
- package/__inner__/esm/hooks/useEventBus/useEventBus.js +5 -0
- package/__inner__/esm/hooks/useEventBusEvents/index.d.ts +2 -0
- package/__inner__/esm/hooks/useEventBusEvents/index.js +2 -0
- package/__inner__/esm/hooks/useEventBusEvents/types.d.ts +4 -0
- package/__inner__/esm/hooks/useEventBusEvents/types.js +1 -0
- package/__inner__/esm/hooks/useEventBusEvents/useEventBusEvents.d.ts +5 -0
- package/__inner__/esm/hooks/useEventBusEvents/useEventBusEvents.js +36 -0
- package/__inner__/esm/utils/eventBus/EventBus.d.ts +8 -0
- package/__inner__/esm/utils/eventBus/EventBus.js +48 -0
- package/__inner__/esm/utils/eventBus/index.d.ts +2 -0
- package/__inner__/esm/utils/eventBus/index.js +2 -0
- package/__inner__/esm/utils/eventBus/types/EventBusEvents.d.ts +1 -0
- package/__inner__/esm/utils/eventBus/types/EventBusEvents.js +1 -0
- package/__inner__/esm/utils/eventBus/types/EventBusListener.d.ts +5 -0
- package/__inner__/esm/utils/eventBus/types/EventBusListener.js +1 -0
- package/__inner__/esm/utils/eventBus/types/EventBusListenerCallback.d.ts +1 -0
- package/__inner__/esm/utils/eventBus/types/EventBusListenerCallback.js +1 -0
- package/__inner__/esm/utils/eventBus/types/ExtractEventBusEvents.d.ts +3 -0
- package/__inner__/esm/utils/eventBus/types/ExtractEventBusEvents.js +1 -0
- package/__inner__/esm/utils/eventBus/types/index.d.ts +4 -0
- package/__inner__/esm/utils/eventBus/types/index.js +4 -0
- package/__inner__/esm/utils/index.d.ts +1 -0
- package/__inner__/esm/utils/index.js +1 -0
- package/__inner__/esm/utils/test-utils.d.ts +9 -1
- package/__inner__/esm/utils/test-utils.js +16 -1
- package/package.json +4 -4
- package/useEventBus/package.json +5 -0
- package/useEventBusEvents/package.json +5 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { useMemo, useEffect } from 'react';
|
|
2
|
+
import { useEventBus } from '../../../../hooks/useEventBus';
|
|
3
|
+
import { useStoredValue } from '../../../../hooks/useStoredValue';
|
|
4
|
+
import { cnCollapse } from '../../../Collapse';
|
|
5
|
+
export var useStepperVerticalStepsStructure = function (ref, stepsControl, children) {
|
|
6
|
+
var eventBus = useEventBus();
|
|
7
|
+
var structure = useStoredValue({
|
|
8
|
+
nodes: [],
|
|
9
|
+
nodeById: {},
|
|
10
|
+
});
|
|
11
|
+
var calculate = function () {
|
|
12
|
+
var element = ref.current;
|
|
13
|
+
if (!element) {
|
|
14
|
+
return { nodes: [], nodeById: {} };
|
|
15
|
+
}
|
|
16
|
+
var nodeById = {};
|
|
17
|
+
var nodes = [];
|
|
18
|
+
var stepsControlSteps = Object.values(stepsControl.steps.current);
|
|
19
|
+
var collectNodeSubsteps = function (node, element) {
|
|
20
|
+
var substeps = Object.values(node.step.substeps);
|
|
21
|
+
if (substeps.length === 0) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
var nextElement = element.nextElementSibling;
|
|
25
|
+
if (!nextElement) {
|
|
26
|
+
throw new Error('Ожидается следующий элемент для шага с подшагами');
|
|
27
|
+
}
|
|
28
|
+
var isNextElementCollapse = nextElement.classList.contains(cnCollapse());
|
|
29
|
+
if (!isNextElementCollapse) {
|
|
30
|
+
throw new Error('Ожидается collapse для подшагов');
|
|
31
|
+
}
|
|
32
|
+
var collapseInner = nextElement.firstElementChild;
|
|
33
|
+
if (!collapseInner) {
|
|
34
|
+
throw new Error('Не удалось получить inner для collapse');
|
|
35
|
+
}
|
|
36
|
+
Array.from(collapseInner.childNodes).forEach(function (collapseStep) {
|
|
37
|
+
var relatedSubstep = substeps.find(function (substep) { return substep.ref.current === collapseStep; });
|
|
38
|
+
if (!relatedSubstep) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
var newNode = {
|
|
42
|
+
root: node,
|
|
43
|
+
step: relatedSubstep,
|
|
44
|
+
substeps: [],
|
|
45
|
+
};
|
|
46
|
+
nodeById[relatedSubstep.id] = newNode;
|
|
47
|
+
node.substeps.push(newNode);
|
|
48
|
+
if (Object.keys(relatedSubstep.substeps).length > 0) {
|
|
49
|
+
collectNodeSubsteps(newNode, relatedSubstep.ref.current);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
element.childNodes.forEach(function (node) {
|
|
54
|
+
var relatedStep = stepsControlSteps.find(function (step) { return step.ref.current === node; });
|
|
55
|
+
if (!relatedStep) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
var newNode = {
|
|
59
|
+
root: null,
|
|
60
|
+
step: relatedStep,
|
|
61
|
+
substeps: [],
|
|
62
|
+
};
|
|
63
|
+
nodeById[relatedStep.id] = newNode;
|
|
64
|
+
nodes.push(newNode);
|
|
65
|
+
collectNodeSubsteps(newNode, newNode.step.ref.current);
|
|
66
|
+
});
|
|
67
|
+
return { nodeById: nodeById, nodes: nodes };
|
|
68
|
+
};
|
|
69
|
+
var recalculate = function () {
|
|
70
|
+
var newStructure = calculate();
|
|
71
|
+
structure.current = newStructure;
|
|
72
|
+
eventBus.publish('update', { structure: structure.current });
|
|
73
|
+
};
|
|
74
|
+
useEffect(function () {
|
|
75
|
+
recalculate();
|
|
76
|
+
}, [children]);
|
|
77
|
+
return useMemo(function () { return ({ value: structure, eventBus: eventBus }); }, []);
|
|
78
|
+
};
|
package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/constants.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { CheckCircleFilledIcon, CircleFillIcon, ClockFilledIcon, CrossCircleFilledIcon, MinusCircleFilledIcon, WarningCircleFilledIcon, } from '@ozen-ui/icons';
|
|
1
|
+
import { CheckCircleFilledIcon, CircleFillIcon, ClockFilledIcon, CrossCircleFilledIcon, DotBigIcon, MinusCircleFilledIcon, WarningCircleFilledIcon, } from '@ozen-ui/icons';
|
|
2
2
|
export var STEPPER_VERTICAL_STEP_DEFAULT_ICON_BY_VARIANT = {
|
|
3
|
+
default: DotBigIcon,
|
|
3
4
|
refusal: MinusCircleFilledIcon,
|
|
4
5
|
blocked: CrossCircleFilledIcon,
|
|
5
6
|
warning: WarningCircleFilledIcon,
|
package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.css
CHANGED
|
@@ -27,6 +27,18 @@
|
|
|
27
27
|
padding-block: var(--spacing-xs);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
.StepperVerticalStep-Substeps .Collapse-Inner {
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.StepperVerticalStep_variant_default {
|
|
36
|
+
--stepper-vertical-indicator-color-non-current: var(--color-background-action-light);
|
|
37
|
+
--stepper-vertical-indicator-color-current: var(--color-background-action);
|
|
38
|
+
--stepper-vertical-indicator-text-color-non-current: var(--color-content-action-dark);
|
|
39
|
+
--stepper-vertical-indicator-text-color-current: var(--color-content-action-on);
|
|
40
|
+
}
|
|
41
|
+
|
|
30
42
|
.StepperVerticalStep_variant_refusal {
|
|
31
43
|
--stepper-vertical-indicator-color-non-current: var(--color-background-error-light);
|
|
32
44
|
--stepper-vertical-indicator-color-current: var(--color-background-error);
|
|
@@ -91,22 +103,48 @@
|
|
|
91
103
|
white-space: nowrap;
|
|
92
104
|
}
|
|
93
105
|
|
|
94
|
-
.StepperVerticalStep
|
|
106
|
+
.StepperVerticalStep-Path {
|
|
95
107
|
position: relative;
|
|
96
108
|
}
|
|
97
109
|
|
|
98
|
-
.StepperVerticalStep
|
|
110
|
+
.StepperVerticalStep-Path::before {
|
|
111
|
+
content: '';
|
|
112
|
+
box-sizing: border-box;
|
|
113
|
+
display: block;
|
|
114
|
+
block-size: var(--stepper-vertical-indicator-icon-inset-top);
|
|
115
|
+
inline-size: 2px;
|
|
116
|
+
position: absolute;
|
|
117
|
+
inset-block-start: 0;
|
|
118
|
+
inset-inline-start: 50%;
|
|
119
|
+
transform: translate(-50%, 0);
|
|
120
|
+
background-color: var(--color-background-secondary);
|
|
121
|
+
border-radius: 0 0 var(--border-radius-xs) var(--border-radius-xs);
|
|
122
|
+
transition: var(--transition-default);
|
|
123
|
+
transition-property: block-size, clip-path;
|
|
124
|
+
clip-path: inset(100% 0 0 0);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.StepperVerticalStep-Path::after {
|
|
99
128
|
--stepper-vertical-indicator-icon-stroke-gap: 1px;
|
|
100
129
|
--stepper-vertical-indicator-inset-top: calc(var(--stepper-vertical-indicator-icon-size) + var(--stepper-vertical-indicator-icon-inset-top) + var(--stepper-vertical-indicator-icon-stroke-gap));
|
|
101
130
|
content: '';
|
|
102
131
|
box-sizing: border-box;
|
|
103
132
|
display: block;
|
|
104
|
-
block-size:
|
|
133
|
+
block-size: 0;
|
|
105
134
|
inline-size: 2px;
|
|
106
135
|
position: absolute;
|
|
107
136
|
inset-block-start: var(--stepper-vertical-indicator-inset-top);
|
|
108
137
|
inset-inline-start: 50%;
|
|
109
138
|
transform: translate(-50%, 0);
|
|
110
139
|
background-color: var(--color-background-secondary);
|
|
111
|
-
border-radius: var(--border-radius-xs);
|
|
140
|
+
border-radius: var(--border-radius-xs) var(--border-radius-xs) 0 0;
|
|
141
|
+
transition: var(--transition-default) block-size;
|
|
112
142
|
}
|
|
143
|
+
|
|
144
|
+
.StepperVerticalStep_hasPrevious .StepperVerticalStep-Path::before {
|
|
145
|
+
clip-path: inset(0% 0 0 0);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.StepperVerticalStep_hasNext .StepperVerticalStep-Path::after {
|
|
149
|
+
block-size: calc(100% - var(--stepper-vertical-indicator-inset-top) + 1px);
|
|
150
|
+
}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import type { StepperVerticalStepBaseProps } from './types';
|
|
2
|
-
export declare const cnStepperVerticalStep: import("@bem-react/classname").ClassNameFormatter;
|
|
3
2
|
export declare const StepperVerticalStep: import("../../../../utils").PolymorphicComponentWithRef<StepperVerticalStepBaseProps, "div", "as">;
|
package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.js
CHANGED
|
@@ -1,38 +1,68 @@
|
|
|
1
1
|
import { __assign, __rest } from "tslib";
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { useEffect, useMemo } from 'react';
|
|
3
|
+
import { useMultiRef } from '../../../../hooks/useMultiRef';
|
|
3
4
|
import { useThemeProps } from '../../../../hooks/useThemeProps';
|
|
4
|
-
import {
|
|
5
|
+
import { isArray, polymorphicComponentWithRef, resolveChildren, } from '../../../../utils';
|
|
6
|
+
import { Collapse } from '../../../Collapse';
|
|
5
7
|
import { Stack } from '../../../Stack';
|
|
6
8
|
import { Typography } from '../../../Typography';
|
|
9
|
+
import { useStepperVerticalStepHelper, useStepperVerticalCreateStep, } from '../../hooks';
|
|
7
10
|
import { useStepperVerticalContext } from '../../StepperVerticalContext';
|
|
8
11
|
import { StepperVerticalIconIndicator } from '../StepperVerticalIconIndicator';
|
|
12
|
+
import { cnStepperVerticalStep } from './classNames';
|
|
9
13
|
import { STEPPER_VERTICAL_STEP_DEFAULT_TAG, STEPPER_VERTICAL_STEP_DEFAULT_CURRENT, STEPPER_VERTICAL_STEP_DEFAULT_VARIANT, } from './constants';
|
|
10
14
|
import { StepperVerticalStepContext } from './StepperVerticalStepContext';
|
|
11
|
-
|
|
15
|
+
import { StepperVerticalStepRootContext, useStepperVerticalStepRootContext, } from './StepperVerticalStepRootContext';
|
|
12
16
|
export var StepperVerticalStep = polymorphicComponentWithRef(function (inProps, ref) {
|
|
13
17
|
var props = useThemeProps({
|
|
14
18
|
name: 'StepperVerticalStep',
|
|
15
19
|
props: inProps,
|
|
16
20
|
});
|
|
17
|
-
var _a = props.variant, variant = _a === void 0 ? STEPPER_VERTICAL_STEP_DEFAULT_VARIANT : _a, _b = props.current, current = _b === void 0 ? STEPPER_VERTICAL_STEP_DEFAULT_CURRENT : _b, ellipsisProp = props.ellipsis, hint = props.hint, children = props.children, caption = props.caption, action = props.action, _c = props.indicator, indicator = _c === void 0 ? React.createElement(StepperVerticalIconIndicator, null) : _c, className = props.className, _d = props.as, as = _d === void 0 ? STEPPER_VERTICAL_STEP_DEFAULT_TAG : _d, other = __rest(props, ["variant", "current", "ellipsis", "hint", "children", "caption", "action", "indicator", "className", "as"]);
|
|
21
|
+
var _a = props.variant, variant = _a === void 0 ? STEPPER_VERTICAL_STEP_DEFAULT_VARIANT : _a, _b = props.current, current = _b === void 0 ? STEPPER_VERTICAL_STEP_DEFAULT_CURRENT : _b, ellipsisProp = props.ellipsis, hint = props.hint, children = props.children, caption = props.caption, action = props.action, _c = props.indicator, indicator = _c === void 0 ? React.createElement(StepperVerticalIconIndicator, null) : _c, className = props.className, _d = props.as, as = _d === void 0 ? STEPPER_VERTICAL_STEP_DEFAULT_TAG : _d, substeps = props.substeps, other = __rest(props, ["variant", "current", "ellipsis", "hint", "children", "caption", "action", "indicator", "className", "as", "substeps"]);
|
|
18
22
|
var stepperVerticalContext = useStepperVerticalContext();
|
|
23
|
+
var rootContext = useStepperVerticalStepRootContext();
|
|
24
|
+
var isSubstep = !!rootContext;
|
|
25
|
+
var hasSubsteps = (function () {
|
|
26
|
+
var resolved = resolveChildren(substeps);
|
|
27
|
+
if (isArray(resolved)) {
|
|
28
|
+
return resolved.length > 0;
|
|
29
|
+
}
|
|
30
|
+
return !!resolved;
|
|
31
|
+
})();
|
|
19
32
|
var ellipsis = (function () {
|
|
20
33
|
if (ellipsisProp !== undefined) {
|
|
21
34
|
return ellipsisProp;
|
|
22
35
|
}
|
|
23
36
|
return stepperVerticalContext.ellipsis;
|
|
24
37
|
})();
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
var step = useStepperVerticalCreateStep(rootContext === null || rootContext === void 0 ? void 0 : rootContext.root);
|
|
39
|
+
var _e = useStepperVerticalStepHelper(step), hasNext = _e.hasNext, hasPrevious = _e.hasPrevious;
|
|
40
|
+
useEffect(function () {
|
|
41
|
+
if (rootContext && !(rootContext === null || rootContext === void 0 ? void 0 : rootContext.root.isSubStepsOpen)) {
|
|
42
|
+
step.setIsSubStepsOpen(false);
|
|
43
|
+
}
|
|
44
|
+
}, [rootContext === null || rootContext === void 0 ? void 0 : rootContext.root.isSubStepsOpen]);
|
|
45
|
+
var memoizedContext = useMemo(function () { return ({ variant: variant, current: current, hasSubsteps: hasSubsteps, step: step }); }, [variant, current, hasSubsteps, step, step.isSubStepsOpen, step.root]);
|
|
46
|
+
var memoizedRootContext = useMemo(function () { return ({ root: step }); }, [step, step.isSubStepsOpen, step.root]);
|
|
47
|
+
return (React.createElement(React.Fragment, null,
|
|
48
|
+
React.createElement(StepperVerticalStepContext.Provider, { value: memoizedContext },
|
|
49
|
+
React.createElement(Stack, __assign({}, other, { ref: useMultiRef([step.ref, ref]), as: as, className: cnStepperVerticalStep({
|
|
50
|
+
variant: variant,
|
|
51
|
+
current: current,
|
|
52
|
+
ellipsis: ellipsis,
|
|
53
|
+
substep: isSubstep,
|
|
54
|
+
hasNext: hasNext,
|
|
55
|
+
hasPrevious: hasPrevious,
|
|
56
|
+
}, [className]), gap: "m" }),
|
|
57
|
+
React.createElement("div", { className: cnStepperVerticalStep('Path') },
|
|
58
|
+
React.createElement("div", { className: cnStepperVerticalStep('Indicator') }, indicator)),
|
|
59
|
+
React.createElement(Stack, { direction: "column", className: cnStepperVerticalStep('Description') },
|
|
60
|
+
React.createElement(Stack, { className: cnStepperVerticalStep('Info'), direction: "column", gap: "xs" },
|
|
61
|
+
children && (React.createElement(Typography, { className: cnStepperVerticalStep('Label'), color: "primary", variant: "text-m_1" }, children)),
|
|
62
|
+
caption && (React.createElement(Typography, { className: cnStepperVerticalStep('Caption'), color: "primary", variant: "text-s" }, caption)),
|
|
63
|
+
hint && (React.createElement(Typography, { className: cnStepperVerticalStep('Hint'), color: "secondary", variant: "text-2xs" }, hint))),
|
|
64
|
+
action && (React.createElement("div", { className: cnStepperVerticalStep('Action') }, action))))),
|
|
65
|
+
hasSubsteps && (React.createElement(StepperVerticalStepRootContext.Provider, { value: memoizedRootContext },
|
|
66
|
+
React.createElement(Collapse, { className: cnStepperVerticalStep('Substeps'), expanded: step.isSubStepsOpen }, substeps)))));
|
|
37
67
|
});
|
|
38
68
|
StepperVerticalStep.displayName = 'StepperVerticalStep';
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import type { StepperVerticalStepControl } from '../../hooks';
|
|
1
2
|
import type { StepperVerticalStepVariant } from './entities';
|
|
2
3
|
export type StepperVerticalStepContextValue = {
|
|
3
4
|
variant: StepperVerticalStepVariant;
|
|
4
5
|
current: boolean;
|
|
6
|
+
hasSubsteps: boolean;
|
|
7
|
+
step: StepperVerticalStepControl;
|
|
5
8
|
};
|
|
6
9
|
export declare const StepperVerticalStepContextDefaultValue: StepperVerticalStepContextValue;
|
|
7
10
|
export declare const StepperVerticalStepContext: import("react").Context<StepperVerticalStepContextValue>;
|
|
@@ -4,6 +4,17 @@ import { STEPPER_VERTICAL_STEP_DEFAULT_VARIANT } from './constants';
|
|
|
4
4
|
export var StepperVerticalStepContextDefaultValue = {
|
|
5
5
|
variant: STEPPER_VERTICAL_STEP_DEFAULT_VARIANT,
|
|
6
6
|
current: false,
|
|
7
|
+
hasSubsteps: false,
|
|
8
|
+
step: {
|
|
9
|
+
id: '',
|
|
10
|
+
setIsSubStepsOpen: function () { },
|
|
11
|
+
ref: { current: null },
|
|
12
|
+
isSubStepsOpen: false,
|
|
13
|
+
root: null,
|
|
14
|
+
substeps: {},
|
|
15
|
+
unregisterSubstep: function () { },
|
|
16
|
+
registerSubstep: function () { },
|
|
17
|
+
},
|
|
7
18
|
};
|
|
8
19
|
export var StepperVerticalStepContext = createContext(StepperVerticalStepContextDefaultValue);
|
|
9
20
|
export var useStepperVerticalStepContext = function () {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { StepperVerticalStepControl } from '../../hooks';
|
|
2
|
+
export type StepperVerticalStepRootContextValue = {
|
|
3
|
+
root: StepperVerticalStepControl;
|
|
4
|
+
};
|
|
5
|
+
export declare const StepperVerticalStepRootContextDefaultValue: StepperVerticalStepRootContextValue | null;
|
|
6
|
+
export declare const StepperVerticalStepRootContext: import("react").Context<StepperVerticalStepRootContextValue | null>;
|
|
7
|
+
export declare const useStepperVerticalStepRootContext: () => StepperVerticalStepRootContextValue | null;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useContext, createContext } from 'react';
|
|
2
|
+
import { isDev } from '../../../../constants/environment';
|
|
3
|
+
export var StepperVerticalStepRootContextDefaultValue = null;
|
|
4
|
+
export var StepperVerticalStepRootContext = createContext(StepperVerticalStepRootContextDefaultValue);
|
|
5
|
+
export var useStepperVerticalStepRootContext = function () {
|
|
6
|
+
return useContext(StepperVerticalStepRootContext);
|
|
7
|
+
};
|
|
8
|
+
// Именованный провайдер
|
|
9
|
+
if (isDev) {
|
|
10
|
+
StepperVerticalStepRootContext.displayName = 'StepperVerticalStepRootContext';
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const cnStepperVerticalStep: import("@bem-react/classname").ClassNameFormatter;
|
package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/entities/variant.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const stepperVerticalStepVariant: readonly ["refusal", "blocked", "warning", "awaiting", "inProcessing", "success", "action"];
|
|
1
|
+
export declare const stepperVerticalStepVariant: readonly ["default", "refusal", "blocked", "warning", "awaiting", "inProcessing", "success", "action"];
|
|
2
2
|
export type StepperVerticalStepVariant = (typeof stepperVerticalStepVariant)[number];
|
|
@@ -19,6 +19,8 @@ export type StepperVerticalStepBaseProps = {
|
|
|
19
19
|
current?: boolean;
|
|
20
20
|
/** Если `true`, обрезает текст и добавляет многоточие */
|
|
21
21
|
ellipsis?: boolean;
|
|
22
|
+
/** Подшаги */
|
|
23
|
+
substeps?: ReactNode;
|
|
22
24
|
/** Идентификатор компонента для тестов */
|
|
23
25
|
'data-testid'?: string;
|
|
24
26
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
.StepperVerticalStepSubstepButton_open {
|
|
2
|
+
--stepper-vertical-step-substep-button-icon-rotate: 0deg;
|
|
3
|
+
}
|
|
4
|
+
.StepperVerticalStepSubstepButton_closed {
|
|
5
|
+
--stepper-vertical-step-substep-button-icon-rotate: 180deg;
|
|
6
|
+
}
|
|
7
|
+
.StepperVerticalStepSubstepButton-Icon {
|
|
8
|
+
transform: rotate(var(--stepper-vertical-step-substep-button-icon-rotate));
|
|
9
|
+
transition: var(--transition-default) transform;
|
|
10
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { StepperVerticalStepSubstepButtonBaseProps } from './types';
|
|
2
|
+
export declare const cnStepperVerticalStepSubstepButton: import("@bem-react/classname").ClassNameFormatter;
|
|
3
|
+
export declare const StepperVerticalStepSubstepButton: import("../../../../utils").PolymorphicComponentWithRef<StepperVerticalStepSubstepButtonBaseProps, "button", "as">;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ChevronUpIcon } from '@ozen-ui/icons';
|
|
4
|
+
import { useThemeProps } from '../../../../hooks/useThemeProps';
|
|
5
|
+
import { cn, polymorphicComponentWithRef, renderContent, } from '../../../../utils';
|
|
6
|
+
import { useStepperVerticalStepContext } from '../StepperVerticalStep';
|
|
7
|
+
import { StepperVerticalStepButton } from '../StepperVerticalStepButton';
|
|
8
|
+
import { STEPPER_VERTICAL_STEP_SUBSTEP_BUTTON_DEFAULT_COLOR, STEPPER_VERTICAL_STEP_SUBSTEP_BUTTON_DEFAULT_TAG, } from './constants';
|
|
9
|
+
export var cnStepperVerticalStepSubstepButton = cn('StepperVerticalStepSubstepButton');
|
|
10
|
+
export var StepperVerticalStepSubstepButton = polymorphicComponentWithRef(function (inProps, ref) {
|
|
11
|
+
var props = useThemeProps({
|
|
12
|
+
name: 'StepperVerticalStepSubstepButton',
|
|
13
|
+
props: inProps,
|
|
14
|
+
});
|
|
15
|
+
var _a = props.color, color = _a === void 0 ? STEPPER_VERTICAL_STEP_SUBSTEP_BUTTON_DEFAULT_COLOR : _a, className = props.className, _b = props.as, as = _b === void 0 ? STEPPER_VERTICAL_STEP_SUBSTEP_BUTTON_DEFAULT_TAG : _b, onClick = props.onClick, text = props.text, other = __rest(props, ["color", "className", "as", "onClick", "text"]);
|
|
16
|
+
var _c = useStepperVerticalStepContext(), hasSubsteps = _c.hasSubsteps, step = _c.step;
|
|
17
|
+
if (!hasSubsteps) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
return (React.createElement(StepperVerticalStepButton, __assign({}, other, { as: as, ref: ref, color: color, iconRight: React.createElement(ChevronUpIcon, { className: cnStepperVerticalStepSubstepButton('Icon') }), className: cnStepperVerticalStepSubstepButton({ open: step.isSubStepsOpen, closed: !step.isSubStepsOpen }, [className]), onClick: function (event) {
|
|
21
|
+
step.setIsSubStepsOpen(function (prevState) { return !prevState; });
|
|
22
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
23
|
+
} }), renderContent({
|
|
24
|
+
content: text,
|
|
25
|
+
props: { isOpen: step.isSubStepsOpen },
|
|
26
|
+
})));
|
|
27
|
+
});
|
|
28
|
+
StepperVerticalStepSubstepButton.displayName = 'StepperVerticalStepButton';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { STEPPER_VERTICAL_STEP_BUTTON_DEFAULT_COLOR, STEPPER_VERTICAL_STEP_BUTTON_DEFAULT_TAG, } from '../StepperVerticalStepButton';
|
|
2
|
+
export var STEPPER_VERTICAL_STEP_SUBSTEP_BUTTON_DEFAULT_COLOR = STEPPER_VERTICAL_STEP_BUTTON_DEFAULT_COLOR;
|
|
3
|
+
export var STEPPER_VERTICAL_STEP_SUBSTEP_BUTTON_DEFAULT_TAG = STEPPER_VERTICAL_STEP_BUTTON_DEFAULT_TAG;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './content';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './content';
|
package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/types.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ElementType } from 'react';
|
|
2
|
+
import type { PolymorphicComponentPropsWithRef } from '../../../../utils';
|
|
3
|
+
import type { StepperVerticalStepButtonBaseProps, StepperVerticalStepButtonRef } from '../StepperVerticalStepButton';
|
|
4
|
+
import type { STEPPER_VERTICAL_STEP_SUBSTEP_BUTTON_DEFAULT_TAG } from './constants';
|
|
5
|
+
import type { StepperVerticalStepSubstepButtonContent } from './entities';
|
|
6
|
+
export type StepperVerticalStepSubstepButtonRef<As extends ElementType = typeof STEPPER_VERTICAL_STEP_SUBSTEP_BUTTON_DEFAULT_TAG> = StepperVerticalStepButtonRef<As>;
|
|
7
|
+
export type StepperVerticalStepSubstepButtonBaseProps = {
|
|
8
|
+
/** Текст кнопки */
|
|
9
|
+
text: StepperVerticalStepSubstepButtonContent;
|
|
10
|
+
} & Omit<StepperVerticalStepButtonBaseProps, 'iconRight' | 'children'>;
|
|
11
|
+
export type StepperVerticalStepSubstepButtonProps<As extends ElementType = typeof STEPPER_VERTICAL_STEP_SUBSTEP_BUTTON_DEFAULT_TAG> = PolymorphicComponentPropsWithRef<StepperVerticalStepSubstepButtonBaseProps, As>;
|
package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useEventBus';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useEventBus';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { EventBus, EventBusEvents, ExtractEventBusEvents } from '../../utils';
|
|
2
|
+
import type { UseEventBusEventsSubscribes } from './types';
|
|
3
|
+
export declare const useEventBusEvents: <TEventBus extends EventBus<EventBusEvents>>(eventBus: TEventBus, subscribes: UseEventBusEventsSubscribes<ExtractEventBusEvents<TEventBus>>, params?: {
|
|
4
|
+
layoutEffect?: boolean;
|
|
5
|
+
}) => void;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import { logger } from '@ozen-ui/logger';
|
|
4
|
+
import { useDevEffect } from '../useDevEffect';
|
|
5
|
+
import { useIsomorphicEffect } from '../useIsomorphicEffect';
|
|
6
|
+
import { useStoredValue } from '../useStoredValue';
|
|
7
|
+
export var useEventBusEvents = function (eventBus, subscribes, params) {
|
|
8
|
+
var _a = (params !== null && params !== void 0 ? params : {}).layoutEffect, layoutEffect = _a === void 0 ? false : _a;
|
|
9
|
+
var savedLayoutEffect = useStoredValue(layoutEffect);
|
|
10
|
+
useDevEffect(function () {
|
|
11
|
+
if (savedLayoutEffect.current !== layoutEffect) {
|
|
12
|
+
logger.warn('Свойство "layoutEffect" не может отличаться между рендерами.');
|
|
13
|
+
}
|
|
14
|
+
}, [layoutEffect]);
|
|
15
|
+
var clearSubscribes = useStoredValue(function () { return function () { }; });
|
|
16
|
+
var useNeededEffect = savedLayoutEffect.current
|
|
17
|
+
? useIsomorphicEffect
|
|
18
|
+
: useEffect;
|
|
19
|
+
useNeededEffect(function () {
|
|
20
|
+
clearSubscribes.current();
|
|
21
|
+
var clearSubscribesCallbacks = [];
|
|
22
|
+
Object.entries(subscribes).forEach(function (_a) {
|
|
23
|
+
var _b = __read(_a, 2), event = _b[0], callback = _b[1];
|
|
24
|
+
var unsubscribe = eventBus.subscribe(event, callback);
|
|
25
|
+
clearSubscribesCallbacks.push(unsubscribe);
|
|
26
|
+
});
|
|
27
|
+
clearSubscribes.current = function () {
|
|
28
|
+
clearSubscribesCallbacks.forEach(function (unsubscribe) {
|
|
29
|
+
unsubscribe();
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
return function () {
|
|
33
|
+
clearSubscribes.current();
|
|
34
|
+
};
|
|
35
|
+
}, [eventBus, subscribes]);
|
|
36
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { EventBusEvents, EventBusListenerCallback } from './types';
|
|
2
|
+
export declare class EventBus<Events extends EventBusEvents> {
|
|
3
|
+
private listenersByEvent;
|
|
4
|
+
subscribe<Event extends keyof Events>(event: Event, callback: EventBusListenerCallback<Events[Event]>, isClearAfterCall?: boolean): () => void;
|
|
5
|
+
publish<Event extends keyof Events>(event: Event, payload: Events[Event]): void;
|
|
6
|
+
clear(event: keyof Events): void;
|
|
7
|
+
private unsubscribe;
|
|
8
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var EventBus = /** @class */ (function () {
|
|
2
|
+
function EventBus() {
|
|
3
|
+
this.listenersByEvent = {};
|
|
4
|
+
}
|
|
5
|
+
EventBus.prototype.subscribe = function (event, callback, isClearAfterCall) {
|
|
6
|
+
var _this = this;
|
|
7
|
+
if (isClearAfterCall === void 0) { isClearAfterCall = false; }
|
|
8
|
+
var listener = {
|
|
9
|
+
callback: callback,
|
|
10
|
+
isClearAfterCall: isClearAfterCall,
|
|
11
|
+
};
|
|
12
|
+
if (!this.listenersByEvent[event]) {
|
|
13
|
+
this.listenersByEvent[event] = new Set();
|
|
14
|
+
}
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
16
|
+
this.listenersByEvent[event].add(listener);
|
|
17
|
+
return function () {
|
|
18
|
+
_this.unsubscribe(event, listener);
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
EventBus.prototype.publish = function (event, payload) {
|
|
22
|
+
var _this = this;
|
|
23
|
+
var listeners = this.listenersByEvent[event];
|
|
24
|
+
if (!listeners) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
listeners.forEach(function (listener) {
|
|
28
|
+
var callback = listener.callback, isClearAfterCall = listener.isClearAfterCall;
|
|
29
|
+
callback(payload);
|
|
30
|
+
if (isClearAfterCall) {
|
|
31
|
+
_this.unsubscribe(event, listener);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
EventBus.prototype.clear = function (event) {
|
|
36
|
+
var _a;
|
|
37
|
+
(_a = this.listenersByEvent[event]) === null || _a === void 0 ? void 0 : _a.clear();
|
|
38
|
+
};
|
|
39
|
+
EventBus.prototype.unsubscribe = function (event, listener) {
|
|
40
|
+
var listeners = this.listenersByEvent[event];
|
|
41
|
+
if (!listeners) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
listeners.delete(listener);
|
|
45
|
+
};
|
|
46
|
+
return EventBus;
|
|
47
|
+
}());
|
|
48
|
+
export { EventBus };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type EventBusEvents = Record<string, any>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|