@linzjs/windows 16.1.0 → 16.3.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/README.md +159 -146
- package/dist/LuiModalAsync/LuiModalAsync.scss +11 -9
- package/dist/LuiModalAsync/LuiModalAsyncContextProvider.js +2 -0
- package/dist/LuiModalAsync/LuiModalAsyncContextProvider.js.map +1 -1
- package/dist/LuiModalAsync/LuiModalAsyncInstanceContext.d.ts +11 -0
- package/dist/LuiModalAsync/LuiModalAsyncInstanceContext.js +2 -0
- package/dist/LuiModalAsync/LuiModalAsyncInstanceContext.js.map +1 -1
- package/dist/LuiModalAsync/useShowAsyncModal.js +19 -1
- package/dist/LuiModalAsync/useShowAsyncModal.js.map +1 -1
- package/dist/components/CopyableText.scss +8 -4
- package/dist/index.js +49 -52
- package/dist/index.js.map +1 -1
- package/dist/panel/PanelBlue.scss +6 -5
- package/dist/panel/PanelInline.js +2 -0
- package/dist/panel/PanelInline.js.map +1 -1
- package/dist/panel/PanelInstanceContext.d.ts +11 -0
- package/dist/panel/PanelInstanceContext.js +2 -0
- package/dist/panel/PanelInstanceContext.js.map +1 -1
- package/dist/panel/PanelInstanceContextProvider.js +2 -0
- package/dist/panel/PanelInstanceContextProvider.js.map +1 -1
- package/dist/panel/index.d.ts +0 -1
- package/dist/panel/index.js +0 -1
- package/dist/panel/index.js.map +1 -1
- package/dist/ribbon/Ribbon.scss +13 -7
- package/dist/ribbon/RibbonMenu.scss +4 -4
- package/package.json +26 -24
- package/dist/panel/OpenPanelButton.d.ts +0 -8
- package/dist/panel/OpenPanelButton.js +0 -11
- package/dist/panel/OpenPanelButton.js.map +0 -1
package/README.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
> Reusable promise based windowing component for LINZ / Toitū te whenua.
|
|
8
8
|
|
|
9
9
|
React state based modals/windows are painful because they require:
|
|
10
|
+
|
|
10
11
|
- shared states for open/closed.
|
|
11
12
|
- callbacks/states for return values.
|
|
12
13
|
- inline modal/window includes, which prevent you from closing the invoking component before the modal/window has completed.
|
|
@@ -15,6 +16,7 @@ This module gives you promise based modals/windows which don't require all the s
|
|
|
15
16
|
based boilerplate / inline-components.
|
|
16
17
|
|
|
17
18
|
So you can simply do this in your react-app:
|
|
19
|
+
|
|
18
20
|
```
|
|
19
21
|
const result = await showModal(TestModal, { props... })
|
|
20
22
|
|
|
@@ -24,22 +26,28 @@ const result = await showModal(TestModal, { props... })
|
|
|
24
26
|
```
|
|
25
27
|
|
|
26
28
|
## Features
|
|
29
|
+
|
|
27
30
|
- Async HTML dialog based Modals.
|
|
28
31
|
- Draggable and resizeable, pop-in/out Panels/Windows.
|
|
29
32
|
|
|
30
33
|
## Install
|
|
34
|
+
|
|
31
35
|
```
|
|
32
36
|
npm install @linzjs/windows
|
|
33
37
|
```
|
|
38
|
+
|
|
34
39
|
or with Yarn
|
|
40
|
+
|
|
35
41
|
```
|
|
36
42
|
yarn add @linzjs/windows
|
|
37
43
|
```
|
|
38
44
|
|
|
39
45
|
## Debug log
|
|
46
|
+
|
|
40
47
|
To enable debug logs set:
|
|
48
|
+
|
|
41
49
|
```javascript
|
|
42
|
-
localStorage.setItem(
|
|
50
|
+
localStorage.setItem('@linzjs/windows.debugEnabled', 'true');
|
|
43
51
|
```
|
|
44
52
|
|
|
45
53
|
## Demo
|
|
@@ -123,11 +131,7 @@ export const TestModalUsage = () => {
|
|
|
123
131
|
const { showModal, modalOwnerRef } = useShowAsyncModal();
|
|
124
132
|
|
|
125
133
|
const showModalHandler = async () => {
|
|
126
|
-
const result = await showModal(
|
|
127
|
-
TestModal,
|
|
128
|
-
{ text: "I'm generic modal content" },
|
|
129
|
-
{ showOnAllWindows: true },
|
|
130
|
-
);
|
|
134
|
+
const result = await showModal(TestModal, { text: "I'm generic modal content" }, { showOnAllWindows: true });
|
|
131
135
|
|
|
132
136
|
if (!result) return alert('Modal closed');
|
|
133
137
|
alert(`Modal result is: ${String(result)}`);
|
|
@@ -148,12 +152,12 @@ export const TestModalUsage = () => {
|
|
|
148
152
|
|
|
149
153
|
Pre-built modals for common use cases: `outline`, `info`, `warning`, `error`, `success`, `progress`, and `blocked`.
|
|
150
154
|
|
|
151
|
-
| Outline
|
|
152
|
-
|
|
155
|
+
| Outline | Info | Warning | Error |
|
|
156
|
+
| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
153
157
|
|  |  |  |  |
|
|
154
158
|
|
|
155
|
-
| Success
|
|
156
|
-
|
|
159
|
+
| Success | Progress | Blocked | Custom buttons |
|
|
160
|
+
| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
157
161
|
|  |  |  |  |
|
|
158
162
|
|
|
159
163
|
**Setup** — same `LuiModalAsyncContextProvider` as above.
|
|
@@ -282,6 +286,7 @@ export const PrefabModalUsage = () => {
|
|
|
282
286
|
```
|
|
283
287
|
|
|
284
288
|
To clear a "don't show again" session key programmatically:
|
|
289
|
+
|
|
285
290
|
```tsx
|
|
286
291
|
import { LuiModalDontShowSessionRemove } from '@linzjs/windows';
|
|
287
292
|
|
|
@@ -357,14 +362,8 @@ import { Panel, PanelContent, PanelHeader } from '@linzjs/windows';
|
|
|
357
362
|
|
|
358
363
|
export const ShowPanelComponent = ({ data }: { data: number }) => (
|
|
359
364
|
<Panel title={`Panel demo ${data}`} size={{ width: 640, height: 'auto' }}>
|
|
360
|
-
<PanelHeader
|
|
361
|
-
|
|
362
|
-
icon={'ic_add_adopt'}
|
|
363
|
-
onHelpClick={() => alert('Help!')}
|
|
364
|
-
/>
|
|
365
|
-
<PanelContent>
|
|
366
|
-
{/* panel body content */}
|
|
367
|
-
</PanelContent>
|
|
365
|
+
<PanelHeader helpUrl={'#help'} icon={'ic_add_adopt'} onHelpClick={() => alert('Help!')} />
|
|
366
|
+
<PanelContent>{/* panel body content */}</PanelContent>
|
|
368
367
|
</Panel>
|
|
369
368
|
);
|
|
370
369
|
|
|
@@ -372,9 +371,7 @@ export const ShowPanelComponent = ({ data }: { data: number }) => (
|
|
|
372
371
|
export const ShowPanelModalComponent = ({ data }: { data: number }) => (
|
|
373
372
|
<Panel title={`Panel demo ${data}`} size={{ width: 640, height: 400 }} modal={true}>
|
|
374
373
|
<PanelHeader icon={'ic_add_adopt'} disablePopout={true} />
|
|
375
|
-
<PanelContent>
|
|
376
|
-
{/* panel body content */}
|
|
377
|
-
</PanelContent>
|
|
374
|
+
<PanelContent>{/* panel body content */}</PanelContent>
|
|
378
375
|
</Panel>
|
|
379
376
|
);
|
|
380
377
|
```
|
|
@@ -399,10 +396,7 @@ export const TestShowPanel = () => (
|
|
|
399
396
|
componentFn={() => <ShowPanelComponent data={2} />}
|
|
400
397
|
uniqueId="panel2"
|
|
401
398
|
/>
|
|
402
|
-
<OpenPanelButton
|
|
403
|
-
buttonText={'Panel as a Modal'}
|
|
404
|
-
componentFn={() => <ShowPanelModalComponent data={3} />}
|
|
405
|
-
/>
|
|
399
|
+
<OpenPanelButton buttonText={'Panel as a Modal'} componentFn={() => <ShowPanelModalComponent data={3} />} />
|
|
406
400
|
{/* Panel with dynamic bounds — recalculated on resize */}
|
|
407
401
|
<OpenPanelButton
|
|
408
402
|
buttonText={'Dynamic bounds panel'}
|
|
@@ -425,17 +419,17 @@ export const TestShowPanel = () => (
|
|
|
425
419
|
|
|
426
420
|
**Panel props:**
|
|
427
421
|
|
|
428
|
-
| Prop
|
|
429
|
-
|
|
430
|
-
| `title`
|
|
431
|
-
| `size`
|
|
432
|
-
| `modal`
|
|
433
|
-
| `resizeable`
|
|
434
|
-
| `maxHeight`
|
|
435
|
-
| `maxWidth`
|
|
436
|
-
| `minHeight`
|
|
437
|
-
| `minWidth`
|
|
438
|
-
| `dynamicBounds` | `() => { x, y, width, height }`
|
|
422
|
+
| Prop | Type | Description |
|
|
423
|
+
| --------------- | --------------------------------------------- | ------------------------------------------------- |
|
|
424
|
+
| `title` | `string` | Panel title bar text |
|
|
425
|
+
| `size` | `{ width: number, height: number \| 'auto' }` | Initial panel size |
|
|
426
|
+
| `modal` | `boolean` | Disable dragging and popout, center on screen |
|
|
427
|
+
| `resizeable` | `boolean` | Allow user resizing (default `true`) |
|
|
428
|
+
| `maxHeight` | `number` | Maximum height in px |
|
|
429
|
+
| `maxWidth` | `number` | Maximum width in px |
|
|
430
|
+
| `minHeight` | `number` | Minimum height in px |
|
|
431
|
+
| `minWidth` | `number` | Minimum width in px |
|
|
432
|
+
| `dynamicBounds` | `() => { x, y, width, height }` | Callback to recalculate position/size dynamically |
|
|
439
433
|
|
|
440
434
|
**Saving panel state** — pass `panelStateOptions` to `PanelsContextProvider` or `OpenPanelButton`:
|
|
441
435
|
|
|
@@ -464,9 +458,7 @@ import { useState } from 'react';
|
|
|
464
458
|
export const DockablePanel = ({ data }: { data: number }) => (
|
|
465
459
|
<Panel title={`Panel demo ${data}`} size={{ width: 640, height: 400 }}>
|
|
466
460
|
<PanelHeader dockTo={'leftSide'} />
|
|
467
|
-
<PanelContent>
|
|
468
|
-
{/* panel body content */}
|
|
469
|
-
</PanelContent>
|
|
461
|
+
<PanelContent>{/* panel body content */}</PanelContent>
|
|
470
462
|
</Panel>
|
|
471
463
|
);
|
|
472
464
|
|
|
@@ -563,12 +555,17 @@ const PanelContents = () => {
|
|
|
563
555
|
|
|
564
556
|
export const TestShowPanelWithGlobalModal = () => (
|
|
565
557
|
<>
|
|
566
|
-
<OpenPanelButton
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
<
|
|
570
|
-
|
|
571
|
-
|
|
558
|
+
<OpenPanelButton
|
|
559
|
+
buttonText={'TestPanel 1'}
|
|
560
|
+
componentFn={() => (
|
|
561
|
+
<Panel title={'Panel demo 1'} size={{ width: 640, height: 400 }}>
|
|
562
|
+
<PanelHeader icon={'ic_send'} onHelpClick={() => alert('Help!!!')} />
|
|
563
|
+
<PanelContent>
|
|
564
|
+
<PanelContents />
|
|
565
|
+
</PanelContent>
|
|
566
|
+
</Panel>
|
|
567
|
+
)}
|
|
568
|
+
/>
|
|
572
569
|
</>
|
|
573
570
|
);
|
|
574
571
|
```
|
|
@@ -586,111 +583,127 @@ A toolbar ribbon with buttons, sliders, menus, and separators. Supports horizont
|
|
|
586
583
|
|
|
587
584
|
```tsx
|
|
588
585
|
import {
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
586
|
+
RibbonButton,
|
|
587
|
+
RibbonButtonLink,
|
|
588
|
+
RibbonButtonOpenPanel,
|
|
589
|
+
RibbonButtonSlider,
|
|
590
|
+
RibbonContainer,
|
|
591
|
+
RibbonSeparator,
|
|
592
|
+
RibbonMenu,
|
|
593
|
+
RibbonMenuOption,
|
|
594
|
+
RibbonMenuSeparator,
|
|
595
|
+
Panel,
|
|
596
|
+
PanelContent,
|
|
597
|
+
PanelHeader,
|
|
601
598
|
} from '@linzjs/windows';
|
|
602
599
|
import { useState } from 'react';
|
|
603
600
|
|
|
604
601
|
export const TestRibbonPanel = () => {
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
{
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
602
|
+
const [selectedItem, setSelectedItem] = useState('ic_add_rectangle');
|
|
603
|
+
const [loading, setLoading] = useState(false);
|
|
604
|
+
const [processing, setProcessing] = useState(false);
|
|
605
|
+
|
|
606
|
+
return (
|
|
607
|
+
<>
|
|
608
|
+
<button onClick={() => setLoading(!loading)}>Toggle loading</button>
|
|
609
|
+
<button onClick={() => setProcessing(!processing)}>Toggle processing</button>
|
|
610
|
+
|
|
611
|
+
{/* Horizontal ribbon */}
|
|
612
|
+
<RibbonContainer style={{ position: 'absolute', left: 220, top: 120 }}>
|
|
613
|
+
{/* Button that opens a panel — disabled state */}
|
|
614
|
+
<RibbonButtonOpenPanel
|
|
615
|
+
disabled
|
|
616
|
+
title={'Marks'}
|
|
617
|
+
icon={'ic_marks'}
|
|
618
|
+
componentFn={() => (
|
|
619
|
+
<Panel title="Marks" size={{ width: 640, height: 400 }}>
|
|
620
|
+
<PanelHeader />
|
|
621
|
+
<PanelContent />
|
|
622
|
+
</Panel>
|
|
623
|
+
)}
|
|
624
|
+
loading={loading}
|
|
625
|
+
/>
|
|
626
|
+
|
|
627
|
+
<RibbonSeparator />
|
|
628
|
+
|
|
629
|
+
{/* Button that opens a panel — with processing indicator */}
|
|
630
|
+
<RibbonButtonOpenPanel
|
|
631
|
+
title={'Vectors'}
|
|
632
|
+
icon={'ic_line_irregular'}
|
|
633
|
+
componentFn={() => (
|
|
634
|
+
<Panel title="Vectors" size={{ width: 640, height: 400 }}>
|
|
635
|
+
<PanelHeader />
|
|
636
|
+
<PanelContent />
|
|
637
|
+
</Panel>
|
|
638
|
+
)}
|
|
639
|
+
loading={loading}
|
|
640
|
+
processing={processing}
|
|
641
|
+
processingMessage={'Validating...'}
|
|
642
|
+
/>
|
|
643
|
+
|
|
644
|
+
{/* Slider button — opens a sub-panel of options below */}
|
|
645
|
+
<RibbonButtonSlider title={selectedItem} icon={selectedItem} alignment={'down'} loading={loading}>
|
|
646
|
+
<RibbonContainer orientation={'vertical'}>
|
|
647
|
+
<RibbonButton
|
|
648
|
+
title={'Rectangle'}
|
|
649
|
+
icon={'ic_add_rectangle'}
|
|
650
|
+
selected={selectedItem === 'ic_add_rectangle'}
|
|
651
|
+
onClick={() => setSelectedItem('ic_add_rectangle')}
|
|
652
|
+
/>
|
|
653
|
+
<RibbonButton
|
|
654
|
+
title={'Other'}
|
|
655
|
+
icon={'ic_polygon_selection'}
|
|
656
|
+
selected={selectedItem === 'ic_polygon_selection'}
|
|
657
|
+
onClick={() => setSelectedItem('ic_polygon_selection')}
|
|
658
|
+
/>
|
|
659
|
+
</RibbonContainer>
|
|
660
|
+
</RibbonButtonSlider>
|
|
661
|
+
|
|
662
|
+
{/* Slider button — dropdown menu with autoClose */}
|
|
663
|
+
<RibbonButtonSlider title={'Other'} icon={'ic_more_vert'} alignment={'down'} autoClose={true} loading={loading}>
|
|
664
|
+
<RibbonMenu>
|
|
665
|
+
<RibbonMenuOption icon={'ic_define_nonprimary_diagram_circle'}>Circle</RibbonMenuOption>
|
|
666
|
+
<RibbonMenuOption icon={'ic_define_nonprimary_diagram_rectangle'} disabled={true}>
|
|
667
|
+
Rectangle
|
|
668
|
+
</RibbonMenuOption>
|
|
669
|
+
<RibbonMenuSeparator />
|
|
670
|
+
<RibbonMenuOption>Item 3</RibbonMenuOption>
|
|
671
|
+
<RibbonMenuSeparator />
|
|
672
|
+
<RibbonMenuOption icon={'ic_clear'}>Cancel</RibbonMenuOption>
|
|
673
|
+
</RibbonMenu>
|
|
674
|
+
</RibbonButtonSlider>
|
|
675
|
+
</RibbonContainer>
|
|
676
|
+
|
|
677
|
+
{/* Vertical ribbon */}
|
|
678
|
+
<RibbonContainer orientation={'vertical'} style={{ position: 'absolute', left: 220, top: 180 }}>
|
|
679
|
+
<RibbonButtonOpenPanel
|
|
680
|
+
title={'Vectors'}
|
|
681
|
+
icon={'ic_timeline'}
|
|
682
|
+
componentFn={() => (
|
|
683
|
+
<Panel title="Vectors" size={{ width: 640, height: 400 }}>
|
|
684
|
+
<PanelHeader />
|
|
685
|
+
<PanelContent />
|
|
686
|
+
</Panel>
|
|
687
|
+
)}
|
|
688
|
+
loading={loading}
|
|
689
|
+
/>
|
|
690
|
+
{/* Slider opens to the right */}
|
|
691
|
+
<RibbonButtonSlider title={selectedItem} icon={selectedItem} alignment={'right'} loading={loading}>
|
|
692
|
+
<RibbonContainer>
|
|
693
|
+
<RibbonButton
|
|
694
|
+
title={'Rectangle'}
|
|
695
|
+
icon={'ic_add_rectangle'}
|
|
696
|
+
selected={selectedItem === 'ic_add_rectangle'}
|
|
697
|
+
onClick={() => setSelectedItem('ic_add_rectangle')}
|
|
698
|
+
/>
|
|
699
|
+
</RibbonContainer>
|
|
700
|
+
</RibbonButtonSlider>
|
|
701
|
+
{/* External link button */}
|
|
702
|
+
<RibbonButtonLink href={'https://example.com/'} icon={'ic_link'} loading={loading} />
|
|
703
|
+
</RibbonContainer>
|
|
704
|
+
</>
|
|
705
|
+
);
|
|
693
706
|
};
|
|
694
707
|
```
|
|
695
708
|
|
|
696
|
-
**`RibbonButtonSlider` alignment options:** `'down'` | `'up'` | `'left'` | `'right'` | `'left-up'` | `'right-up'` | `'right-center'`
|
|
709
|
+
**`RibbonButtonSlider` alignment options:** `'down'` | `'up'` | `'left'` | `'right'` | `'left-up'` | `'right-up'` | `'right-center'`
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
@use
|
|
2
|
-
@use
|
|
3
|
-
@use
|
|
4
|
-
@use
|
|
5
|
-
@use
|
|
6
|
-
@use
|
|
7
|
-
|
|
8
|
-
dialog.LuiModalAsync,
|
|
1
|
+
@use '@linzjs/lui/dist/scss/Foundation/Variables/ColorVars' as colors;
|
|
2
|
+
@use '@linzjs/lui/dist/scss/Foundation/Utilities/BoxShadow' as shadow;
|
|
3
|
+
@use '@linzjs/lui/dist/scss/Foundation/Variables/SpacingVars' as spacing;
|
|
4
|
+
@use '@linzjs/lui/dist/scss/Foundation/Variables/FormVars' as form;
|
|
5
|
+
@use '@linzjs/lui/dist/scss/Foundation/Variables/FontVars' as fonts;
|
|
6
|
+
@use '@linzjs/lui/dist/scss/Foundation/Utilities/REM' as rem;
|
|
7
|
+
|
|
8
|
+
dialog.LuiModalAsync,
|
|
9
|
+
div.LuiModalAsync {
|
|
9
10
|
@include fonts.font-regular();
|
|
10
11
|
font-size: fonts.$base-font-size;
|
|
11
12
|
line-height: fonts.$base-line-height;
|
|
@@ -26,7 +27,8 @@ dialog.LuiModalAsync::backdrop {
|
|
|
26
27
|
background: rgb(0 0 0 / 10%);
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
dialog.LuiModalAsync,
|
|
30
|
+
dialog.LuiModalAsync,
|
|
31
|
+
div.LuiModalAsync {
|
|
30
32
|
box-sizing: border-box;
|
|
31
33
|
|
|
32
34
|
@include shadow.drop-shadow(sm);
|
|
@@ -157,6 +157,8 @@ export const LuiModalAsyncContextProvider = ({ children }) => {
|
|
|
157
157
|
ownerRef: modalInstance.ownerRef,
|
|
158
158
|
close: () => modalInstance.resolve(undefined),
|
|
159
159
|
resolve: modalInstance.resolve,
|
|
160
|
+
isModalInstance: true,
|
|
161
|
+
getOwnerWindow: () => modalInstance.ownerRef.current?.ownerDocument.defaultView ?? window,
|
|
160
162
|
}, children: portalOwners(modalInstance).map((element) => createPortal(_jsx(_Fragment, { children: modalInstance.componentInstance }), element)) }, modalInstance.uuid))) }), _jsx(_Fragment, { children: children })] }));
|
|
161
163
|
};
|
|
162
164
|
//# sourceMappingURL=LuiModalAsyncContextProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LuiModalAsyncContextProvider.js","sourceRoot":"","sources":["../../src/LuiModalAsync/LuiModalAsyncContextProvider.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LuiModalAsyncContextProvider.js","sourceRoot":"","sources":["../../src/LuiModalAsync/LuiModalAsyncContextProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,17 @@ export interface LuiModalAsyncInstanceContextType {
|
|
|
6
6
|
ownerRef: MutableRefObject<HTMLElement | null>;
|
|
7
7
|
close: () => void;
|
|
8
8
|
resolve: (value: any) => void;
|
|
9
|
+
/**
|
|
10
|
+
* True only when rendered inside a real modal instance. Lets other code (e.g.
|
|
11
|
+
* useShowAsyncModal) tell apart "not inside a modal" from a context whose fields happen to be
|
|
12
|
+
* unset. Mirrors PanelInstanceContextType.isPanelInstance.
|
|
13
|
+
*/
|
|
14
|
+
isModalInstance: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* The window this modal is currently rendered in. Read live (not reactive) so a modal opened
|
|
17
|
+
* from within this one targets the same window. Mirrors PanelInstanceContextType.getOwnerWindow.
|
|
18
|
+
*/
|
|
19
|
+
getOwnerWindow: () => Window;
|
|
9
20
|
}
|
|
10
21
|
/**
|
|
11
22
|
* Provides access to resolving/closing to modal elements.
|
|
@@ -9,5 +9,7 @@ export const LuiModalAsyncInstanceContext = createContext({
|
|
|
9
9
|
ownerRef: { current: null },
|
|
10
10
|
close: NoContextError,
|
|
11
11
|
resolve: NoContextError,
|
|
12
|
+
isModalInstance: false,
|
|
13
|
+
getOwnerWindow: () => window,
|
|
12
14
|
});
|
|
13
15
|
//# sourceMappingURL=LuiModalAsyncInstanceContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LuiModalAsyncInstanceContext.js","sourceRoot":"","sources":["../../src/LuiModalAsync/LuiModalAsyncInstanceContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LuiModalAsyncInstanceContext.js","sourceRoot":"","sources":["../../src/LuiModalAsync/LuiModalAsyncInstanceContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,OAAO,CAAC;AAuBxD,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,aAAa,CAAmC;IAC1F,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3B,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,cAAc;IACvB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM;CAC7B,CAAC,CAAC"}
|
|
@@ -1,10 +1,28 @@
|
|
|
1
1
|
import { useCallback, useContext, useMemo, useRef } from 'react';
|
|
2
2
|
import { LuiModalAsyncContext, openModalOnAllWindows, } from './LuiModalAsyncContext';
|
|
3
|
+
import { LuiModalAsyncInstanceContext } from './LuiModalAsyncInstanceContext';
|
|
4
|
+
import { PanelInstanceContext } from '../panel/PanelInstanceContext';
|
|
3
5
|
export const useShowAsyncModal = () => {
|
|
4
6
|
const { showModal } = useContext(LuiModalAsyncContext);
|
|
7
|
+
const panelInstanceContext = useContext(PanelInstanceContext);
|
|
8
|
+
const modalInstanceContext = useContext(LuiModalAsyncInstanceContext);
|
|
5
9
|
// eslint-disable-next-line
|
|
6
10
|
const modalOwnerRef = useRef(document.body);
|
|
7
|
-
const showModalAsync = useCallback((component, args, props) =>
|
|
11
|
+
const showModalAsync = useCallback((component, args, props) => {
|
|
12
|
+
// If called from within another modal, follow that modal's own window so nested modals
|
|
13
|
+
// stay together. Otherwise, if called from within a panel, follow that panel's own window
|
|
14
|
+
// (which may be popped out) rather than the main window. Re-read on every call so this
|
|
15
|
+
// stays correct as the panel/modal pops in/out. Skipped when showOnAllWindows is set.
|
|
16
|
+
if (!props?.showOnAllWindows) {
|
|
17
|
+
if (modalInstanceContext.isModalInstance) {
|
|
18
|
+
modalOwnerRef.current = modalInstanceContext.getOwnerWindow().document.body;
|
|
19
|
+
}
|
|
20
|
+
else if (panelInstanceContext.isPanelInstance) {
|
|
21
|
+
modalOwnerRef.current = panelInstanceContext.getOwnerWindow().document.body;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return showModal(props?.showOnAllWindows ? openModalOnAllWindows : modalOwnerRef, component, args, props);
|
|
25
|
+
}, [showModal, panelInstanceContext, modalInstanceContext]);
|
|
8
26
|
return useMemo(() => ({
|
|
9
27
|
showModal: showModalAsync,
|
|
10
28
|
modalOwnerRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useShowAsyncModal.js","sourceRoot":"","sources":["../../src/LuiModalAsync/useShowAsyncModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,GAGtB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"useShowAsyncModal.js","sourceRoot":"","sources":["../../src/LuiModalAsync/useShowAsyncModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,GAGtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACvD,MAAM,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAC9D,MAAM,oBAAoB,GAAG,UAAU,CAAC,4BAA4B,CAAC,CAAC;IAEtE,2BAA2B;IAC3B,MAAM,aAAa,GAAG,MAAM,CAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEjD,MAAM,cAAc,GAAG,WAAW,CAChC,CACE,SAAa,EACb,IAAmD,EACnD,KAAsB,EAC4C,EAAE;QACpE,uFAAuF;QACvF,0FAA0F;QAC1F,uFAAuF;QACvF,sFAAsF;QACtF,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC;YAC7B,IAAI,oBAAoB,CAAC,eAAe,EAAE,CAAC;gBACzC,aAAa,CAAC,OAAO,GAAG,oBAAoB,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9E,CAAC;iBAAM,IAAI,oBAAoB,CAAC,eAAe,EAAE,CAAC;gBAChD,aAAa,CAAC,OAAO,GAAG,oBAAoB,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9E,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5G,CAAC,EACD,CAAC,SAAS,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CACxD,CAAC;IAEF,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE,cAAc;QACzB,aAAa;KACd,CAAC,EACF,CAAC,cAAc,CAAC,CACjB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@use
|
|
1
|
+
@use '@linzjs/lui/dist/scss/Foundation/Variables/ColorVars' as lui;
|
|
2
2
|
|
|
3
3
|
.CopyToClipboard {
|
|
4
4
|
cursor: pointer;
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
|
|
13
13
|
.windows_tooltiptext {
|
|
14
14
|
opacity: 0;
|
|
15
|
-
transition:
|
|
15
|
+
transition:
|
|
16
|
+
opacity 0.3s ease,
|
|
17
|
+
width 0.3s ease;
|
|
16
18
|
pointer-events: none;
|
|
17
19
|
background-color: white;
|
|
18
20
|
color: rgb(46 52 56);
|
|
@@ -26,11 +28,13 @@
|
|
|
26
28
|
|
|
27
29
|
left: calc(100% + 8px);
|
|
28
30
|
transform: translateY(42%);
|
|
29
|
-
box-shadow:
|
|
31
|
+
box-shadow:
|
|
32
|
+
0 2px 3px #00000040,
|
|
33
|
+
0 0 3px #00000026;
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
&:hover .windows_tooltiptext {
|
|
33
37
|
visibility: visible;
|
|
34
38
|
opacity: 1;
|
|
35
39
|
}
|
|
36
|
-
}
|
|
40
|
+
}
|