@design.estate/dees-catalog 3.71.1 → 3.72.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_bundle/bundle.js +113 -26
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.d.ts +37 -0
- package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.js +131 -28
- package/dist_watch/bundle.js +111 -24
- package/dist_watch/bundle.js.map +2 -2
- package/package.json +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-layout/dees-stepper/dees-stepper.ts +125 -27
package/dist_bundle/bundle.js
CHANGED
|
@@ -187227,7 +187227,7 @@ var stepperDemo = /* @__PURE__ */ __name(() => b2`
|
|
|
187227
187227
|
init_dist_ts30();
|
|
187228
187228
|
init_dist_ts29();
|
|
187229
187229
|
init_theme();
|
|
187230
|
-
var _activeFormValid_dec, _activeForm_dec, _stepperZIndex_dec, _overlay_dec, _selectedStep_dec, _steps_dec, _a81, _DeesStepper_decorators, _init82, _steps, _selectedStep, _overlay, _stepperZIndex, _activeForm, _activeFormValid;
|
|
187230
|
+
var _activeFormValid_dec, _activeForm_dec, _stepperZIndex_dec, _cancelable_dec, _overlay_dec, _selectedStep_dec, _steps_dec, _a81, _DeesStepper_decorators, _init82, _steps, _selectedStep, _overlay, _cancelable, _stepperZIndex, _activeForm, _activeFormValid;
|
|
187231
187231
|
_DeesStepper_decorators = [customElement("dees-stepper")];
|
|
187232
187232
|
var _DeesStepper = class _DeesStepper extends (_a81 = DeesElement, _steps_dec = [n5({
|
|
187233
187233
|
type: Array
|
|
@@ -187236,31 +187236,43 @@ var _DeesStepper = class _DeesStepper extends (_a81 = DeesElement, _steps_dec =
|
|
|
187236
187236
|
})], _overlay_dec = [n5({
|
|
187237
187237
|
type: Boolean,
|
|
187238
187238
|
reflect: true
|
|
187239
|
+
})], _cancelable_dec = [n5({
|
|
187240
|
+
type: Boolean,
|
|
187241
|
+
reflect: true
|
|
187239
187242
|
})], _stepperZIndex_dec = [n5({ type: Number, attribute: false })], _activeForm_dec = [n5({ type: Object, attribute: false })], _activeFormValid_dec = [n5({ type: Boolean, attribute: false })], _a81) {
|
|
187240
187243
|
constructor() {
|
|
187241
187244
|
super();
|
|
187242
187245
|
__privateAdd(this, _steps, __runInitializers(_init82, 8, this, [])), __runInitializers(_init82, 11, this);
|
|
187243
187246
|
__privateAdd(this, _selectedStep, __runInitializers(_init82, 12, this)), __runInitializers(_init82, 15, this);
|
|
187244
187247
|
__privateAdd(this, _overlay, __runInitializers(_init82, 16, this, false)), __runInitializers(_init82, 19, this);
|
|
187245
|
-
__privateAdd(this,
|
|
187246
|
-
__privateAdd(this,
|
|
187247
|
-
__privateAdd(this,
|
|
187248
|
+
__privateAdd(this, _cancelable, __runInitializers(_init82, 20, this, true)), __runInitializers(_init82, 23, this);
|
|
187249
|
+
__privateAdd(this, _stepperZIndex, __runInitializers(_init82, 24, this, 1e3)), __runInitializers(_init82, 27, this);
|
|
187250
|
+
__privateAdd(this, _activeForm, __runInitializers(_init82, 28, this, null)), __runInitializers(_init82, 31, this);
|
|
187251
|
+
__privateAdd(this, _activeFormValid, __runInitializers(_init82, 32, this, true)), __runInitializers(_init82, 35, this);
|
|
187248
187252
|
__publicField(this, "activeFormSubscription");
|
|
187249
187253
|
__publicField(this, "windowLayer");
|
|
187250
187254
|
__publicField(this, "getIndexOfStep", /* @__PURE__ */ __name((stepArg) => {
|
|
187251
187255
|
return this.steps.findIndex((stepArg2) => stepArg === stepArg2);
|
|
187252
187256
|
}, "getIndexOfStep"));
|
|
187253
187257
|
__publicField(this, "scroller");
|
|
187258
|
+
/**
|
|
187259
|
+
* Currently-open confirmation modal (if any). Prevents double-stacking when
|
|
187260
|
+
* the user clicks the backdrop or the Cancel button while a confirm modal
|
|
187261
|
+
* is already visible. The reference may become stale (point to a destroyed
|
|
187262
|
+
* modal) if the user dismisses the confirm modal by clicking its own
|
|
187263
|
+
* backdrop — so handleCancelRequest() uses isConnected to detect that.
|
|
187264
|
+
*/
|
|
187265
|
+
__publicField(this, "cancelConfirmModal");
|
|
187254
187266
|
}
|
|
187255
187267
|
static async createAndShow(optionsArg) {
|
|
187256
187268
|
const body3 = document.body;
|
|
187257
187269
|
const stepper = new _DeesStepper();
|
|
187258
187270
|
stepper.steps = optionsArg.steps;
|
|
187259
187271
|
stepper.overlay = true;
|
|
187272
|
+
if (optionsArg.cancelable !== void 0) {
|
|
187273
|
+
stepper.cancelable = optionsArg.cancelable;
|
|
187274
|
+
}
|
|
187260
187275
|
stepper.windowLayer = await DeesWindowLayer.createAndShow({ blur: true });
|
|
187261
|
-
stepper.windowLayer.addEventListener("click", async () => {
|
|
187262
|
-
await stepper.destroy();
|
|
187263
|
-
});
|
|
187264
187276
|
body3.append(stepper.windowLayer);
|
|
187265
187277
|
body3.append(stepper);
|
|
187266
187278
|
stepper.stepperZIndex = zIndexRegistry.getNextZIndex();
|
|
@@ -187272,6 +187284,7 @@ var _DeesStepper = class _DeesStepper extends (_a81 = DeesElement, _steps_dec =
|
|
|
187272
187284
|
<div
|
|
187273
187285
|
class="stepperContainer ${this.overlay ? "overlay" : ""}"
|
|
187274
187286
|
style=${this.overlay ? `z-index: ${this.stepperZIndex};` : ""}
|
|
187287
|
+
@click=${this.handleOutsideClick}
|
|
187275
187288
|
>
|
|
187276
187289
|
${this.steps.map((stepArg, stepIndex) => {
|
|
187277
187290
|
const isSelected = stepArg === this.selectedStep;
|
|
@@ -187292,19 +187305,23 @@ var _DeesStepper = class _DeesStepper extends (_a81 = DeesElement, _steps_dec =
|
|
|
187292
187305
|
<div class="title">${stepArg.title}</div>
|
|
187293
187306
|
<div class="content">${stepArg.content}</div>
|
|
187294
187307
|
</div>
|
|
187295
|
-
|
|
187296
|
-
|
|
187297
|
-
|
|
187308
|
+
<div slot="footer" class="bottomButtons">
|
|
187309
|
+
${isSelected && this.activeForm !== null && !this.activeFormValid ? b2`<div class="stepHint">Complete form to continue</div>` : ""}
|
|
187310
|
+
${this.cancelable ? b2`<div
|
|
187311
|
+
class="bottomButton"
|
|
187312
|
+
@click=${() => this.handleCancelRequest()}
|
|
187313
|
+
>Cancel</div>` : ""}
|
|
187314
|
+
${stepArg.menuOptions?.map((actionArg, actionIndex) => {
|
|
187298
187315
|
const isPrimary = actionIndex === stepArg.menuOptions.length - 1;
|
|
187299
187316
|
const isDisabled = isPrimary && this.activeForm !== null && !this.activeFormValid;
|
|
187300
187317
|
return b2`
|
|
187301
|
-
|
|
187302
|
-
|
|
187303
|
-
|
|
187304
|
-
|
|
187305
|
-
|
|
187306
|
-
})}
|
|
187307
|
-
|
|
187318
|
+
<div
|
|
187319
|
+
class="bottomButton ${isPrimary ? "primary" : ""} ${isDisabled ? "disabled" : ""}"
|
|
187320
|
+
@click=${() => this.handleMenuOptionClick(actionArg, isPrimary)}
|
|
187321
|
+
>${actionArg.name}</div>
|
|
187322
|
+
`;
|
|
187323
|
+
}) ?? ""}
|
|
187324
|
+
</div>
|
|
187308
187325
|
</dees-tile>`;
|
|
187309
187326
|
})}
|
|
187310
187327
|
</div>
|
|
@@ -187446,11 +187463,72 @@ var _DeesStepper = class _DeesStepper extends (_a81 = DeesElement, _steps_dec =
|
|
|
187446
187463
|
}
|
|
187447
187464
|
await optionArg.action(this);
|
|
187448
187465
|
}
|
|
187466
|
+
/**
|
|
187467
|
+
* Click handler on .stepperContainer. Mirrors dees-modal.handleOutsideClick:
|
|
187468
|
+
* when the user clicks the empty backdrop area (target === stepperContainer,
|
|
187469
|
+
* not any descendant tile), trigger the cancel confirmation flow. Clicks
|
|
187470
|
+
* that originate inside a step tile have a different event.target and are
|
|
187471
|
+
* ignored here.
|
|
187472
|
+
*/
|
|
187473
|
+
handleOutsideClick(eventArg) {
|
|
187474
|
+
if (!this.overlay) return;
|
|
187475
|
+
if (!this.cancelable) return;
|
|
187476
|
+
eventArg.stopPropagation();
|
|
187477
|
+
const stepperContainer = this.shadowRoot.querySelector(".stepperContainer");
|
|
187478
|
+
if (eventArg.target === stepperContainer) {
|
|
187479
|
+
this.handleCancelRequest();
|
|
187480
|
+
}
|
|
187481
|
+
}
|
|
187482
|
+
/**
|
|
187483
|
+
* Shown by both the backdrop click and the Cancel button in the footer.
|
|
187484
|
+
* Presents a dees-modal asking the user to confirm cancellation. If they
|
|
187485
|
+
* confirm, the stepper and window layer are destroyed; otherwise the
|
|
187486
|
+
* confirm modal is dismissed and the stepper stays open.
|
|
187487
|
+
*
|
|
187488
|
+
* The isConnected check on the cached reference handles the case where the
|
|
187489
|
+
* user dismissed the previous confirm modal by clicking ITS OWN backdrop —
|
|
187490
|
+
* dees-modal.handleOutsideClick calls destroy() directly, bypassing our
|
|
187491
|
+
* action callbacks, so our cached reference would be stale without this
|
|
187492
|
+
* fallback check.
|
|
187493
|
+
*/
|
|
187494
|
+
async handleCancelRequest() {
|
|
187495
|
+
if (!this.cancelable) return;
|
|
187496
|
+
if (this.cancelConfirmModal && this.cancelConfirmModal.isConnected) return;
|
|
187497
|
+
this.cancelConfirmModal = void 0;
|
|
187498
|
+
this.cancelConfirmModal = await DeesModal.createAndShow({
|
|
187499
|
+
heading: "Cancel setup?",
|
|
187500
|
+
width: "small",
|
|
187501
|
+
content: b2`
|
|
187502
|
+
<p style="margin: 0;">
|
|
187503
|
+
Are you sure you want to cancel? Any progress on the current step will be lost.
|
|
187504
|
+
</p>
|
|
187505
|
+
`,
|
|
187506
|
+
menuOptions: [
|
|
187507
|
+
{
|
|
187508
|
+
name: "Continue setup",
|
|
187509
|
+
action: /* @__PURE__ */ __name(async (modal) => {
|
|
187510
|
+
this.cancelConfirmModal = void 0;
|
|
187511
|
+
await modal.destroy();
|
|
187512
|
+
}, "action")
|
|
187513
|
+
},
|
|
187514
|
+
{
|
|
187515
|
+
name: "Yes, cancel",
|
|
187516
|
+
action: /* @__PURE__ */ __name(async (modal) => {
|
|
187517
|
+
this.cancelConfirmModal = void 0;
|
|
187518
|
+
modal.destroy();
|
|
187519
|
+
const domtools19 = await this.domtoolsPromise;
|
|
187520
|
+
await domtools19.convenience.smartdelay.delayFor(100);
|
|
187521
|
+
await this.destroy();
|
|
187522
|
+
}, "action")
|
|
187523
|
+
}
|
|
187524
|
+
]
|
|
187525
|
+
});
|
|
187526
|
+
}
|
|
187449
187527
|
async destroy() {
|
|
187450
187528
|
const domtools19 = await this.domtoolsPromise;
|
|
187451
187529
|
const container = this.shadowRoot.querySelector(".stepperContainer");
|
|
187452
187530
|
container?.classList.add("predestroy");
|
|
187453
|
-
await domtools19.convenience.smartdelay.delayFor(
|
|
187531
|
+
await domtools19.convenience.smartdelay.delayFor(250);
|
|
187454
187532
|
if (this.parentElement) {
|
|
187455
187533
|
this.parentElement.removeChild(this);
|
|
187456
187534
|
}
|
|
@@ -187467,12 +187545,14 @@ _init82 = __decoratorStart(_a81);
|
|
|
187467
187545
|
_steps = new WeakMap();
|
|
187468
187546
|
_selectedStep = new WeakMap();
|
|
187469
187547
|
_overlay = new WeakMap();
|
|
187548
|
+
_cancelable = new WeakMap();
|
|
187470
187549
|
_stepperZIndex = new WeakMap();
|
|
187471
187550
|
_activeForm = new WeakMap();
|
|
187472
187551
|
_activeFormValid = new WeakMap();
|
|
187473
187552
|
__decorateElement(_init82, 4, "steps", _steps_dec, _DeesStepper, _steps);
|
|
187474
187553
|
__decorateElement(_init82, 4, "selectedStep", _selectedStep_dec, _DeesStepper, _selectedStep);
|
|
187475
187554
|
__decorateElement(_init82, 4, "overlay", _overlay_dec, _DeesStepper, _overlay);
|
|
187555
|
+
__decorateElement(_init82, 4, "cancelable", _cancelable_dec, _DeesStepper, _cancelable);
|
|
187476
187556
|
__decorateElement(_init82, 4, "stepperZIndex", _stepperZIndex_dec, _DeesStepper, _stepperZIndex);
|
|
187477
187557
|
__decorateElement(_init82, 4, "activeForm", _activeForm_dec, _DeesStepper, _activeForm);
|
|
187478
187558
|
__decorateElement(_init82, 4, "activeFormValid", _activeFormValid_dec, _DeesStepper, _activeFormValid);
|
|
@@ -187523,9 +187603,14 @@ __publicField(_DeesStepper, "styles", [
|
|
|
187523
187603
|
height: 100vh;
|
|
187524
187604
|
}
|
|
187525
187605
|
|
|
187526
|
-
.
|
|
187527
|
-
|
|
187528
|
-
|
|
187606
|
+
/* Exit animation — reverse of the entry. Tiles slide DOWN + fade out,
|
|
187607
|
+
mirroring the .entrance slide-up. The transition override is needed
|
|
187608
|
+
because dees-tile.step has its own 0.7s transition for step selection
|
|
187609
|
+
which would otherwise make the exit sluggish. */
|
|
187610
|
+
.stepperContainer.predestroy dees-tile.step {
|
|
187611
|
+
transform: translateY(16px);
|
|
187612
|
+
filter: opacity(0);
|
|
187613
|
+
transition: transform 0.25s, filter 0.2s;
|
|
187529
187614
|
}
|
|
187530
187615
|
|
|
187531
187616
|
dees-tile.step {
|
|
@@ -187663,15 +187748,17 @@ __publicField(_DeesStepper, "styles", [
|
|
|
187663
187748
|
transition: all 0.15s ease;
|
|
187664
187749
|
background: transparent;
|
|
187665
187750
|
border: none;
|
|
187666
|
-
border-left: 1px solid var(--dees-color-border-subtle);
|
|
187667
187751
|
color: var(--dees-color-text-muted);
|
|
187668
187752
|
white-space: nowrap;
|
|
187669
187753
|
display: flex;
|
|
187670
187754
|
align-items: center;
|
|
187671
187755
|
}
|
|
187672
187756
|
|
|
187673
|
-
|
|
187674
|
-
|
|
187757
|
+
/* Border-left separator on every button EXCEPT the first one.
|
|
187758
|
+
Uses general sibling so the stepHint (if rendered on the left) does
|
|
187759
|
+
not shift which button counts as "first" and create a phantom border. */
|
|
187760
|
+
.bottomButtons .bottomButton ~ .bottomButton {
|
|
187761
|
+
border-left: 1px solid var(--dees-color-border-subtle);
|
|
187675
187762
|
}
|
|
187676
187763
|
|
|
187677
187764
|
.bottomButtons .bottomButton:hover {
|
|
@@ -201198,7 +201285,7 @@ init_group_runtime();
|
|
|
201198
201285
|
// ts_web/00_commitinfo_data.ts
|
|
201199
201286
|
var commitinfo = {
|
|
201200
201287
|
name: "@design.estate/dees-catalog",
|
|
201201
|
-
version: "3.
|
|
201288
|
+
version: "3.72.1",
|
|
201202
201289
|
description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
|
|
201203
201290
|
};
|
|
201204
201291
|
export {
|
|
@@ -203171,4 +203258,4 @@ ibantools/jsnext/ibantools.js:
|
|
|
203171
203258
|
* @preferred
|
|
203172
203259
|
*)
|
|
203173
203260
|
*/
|
|
203174
|
-
//# sourceMappingURL=bundle-
|
|
203261
|
+
//# sourceMappingURL=bundle-1775985878752.js.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-catalog',
|
|
6
|
-
version: '3.
|
|
6
|
+
version: '3.72.1',
|
|
7
7
|
description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSxzSkFBc0o7Q0FDcEssQ0FBQSJ9
|
|
@@ -22,10 +22,18 @@ export declare class DeesStepper extends DeesElement {
|
|
|
22
22
|
static demoGroups: string[];
|
|
23
23
|
static createAndShow(optionsArg: {
|
|
24
24
|
steps: IStep[];
|
|
25
|
+
cancelable?: boolean;
|
|
25
26
|
}): Promise<DeesStepper>;
|
|
26
27
|
accessor steps: IStep[];
|
|
27
28
|
accessor selectedStep: IStep;
|
|
28
29
|
accessor overlay: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* When true (default), the stepper renders a Cancel button in every step's
|
|
32
|
+
* footer, and clicking the backdrop (overlay mode) triggers the same cancel
|
|
33
|
+
* confirmation flow. Set to false for forced flows where the user must
|
|
34
|
+
* complete the stepper — no Cancel button, no backdrop dismissal.
|
|
35
|
+
*/
|
|
36
|
+
accessor cancelable: boolean;
|
|
29
37
|
accessor stepperZIndex: number;
|
|
30
38
|
accessor activeForm: DeesForm | null;
|
|
31
39
|
accessor activeFormValid: boolean;
|
|
@@ -64,5 +72,34 @@ export declare class DeesStepper extends DeesElement {
|
|
|
64
72
|
* completes before the click handler returns.
|
|
65
73
|
*/
|
|
66
74
|
private handleMenuOptionClick;
|
|
75
|
+
/**
|
|
76
|
+
* Currently-open confirmation modal (if any). Prevents double-stacking when
|
|
77
|
+
* the user clicks the backdrop or the Cancel button while a confirm modal
|
|
78
|
+
* is already visible. The reference may become stale (point to a destroyed
|
|
79
|
+
* modal) if the user dismisses the confirm modal by clicking its own
|
|
80
|
+
* backdrop — so handleCancelRequest() uses isConnected to detect that.
|
|
81
|
+
*/
|
|
82
|
+
private cancelConfirmModal?;
|
|
83
|
+
/**
|
|
84
|
+
* Click handler on .stepperContainer. Mirrors dees-modal.handleOutsideClick:
|
|
85
|
+
* when the user clicks the empty backdrop area (target === stepperContainer,
|
|
86
|
+
* not any descendant tile), trigger the cancel confirmation flow. Clicks
|
|
87
|
+
* that originate inside a step tile have a different event.target and are
|
|
88
|
+
* ignored here.
|
|
89
|
+
*/
|
|
90
|
+
private handleOutsideClick;
|
|
91
|
+
/**
|
|
92
|
+
* Shown by both the backdrop click and the Cancel button in the footer.
|
|
93
|
+
* Presents a dees-modal asking the user to confirm cancellation. If they
|
|
94
|
+
* confirm, the stepper and window layer are destroyed; otherwise the
|
|
95
|
+
* confirm modal is dismissed and the stepper stays open.
|
|
96
|
+
*
|
|
97
|
+
* The isConnected check on the cached reference handles the case where the
|
|
98
|
+
* user dismissed the previous confirm modal by clicking ITS OWN backdrop —
|
|
99
|
+
* dees-modal.handleOutsideClick calls destroy() directly, bypassing our
|
|
100
|
+
* action callbacks, so our cached reference would be stale without this
|
|
101
|
+
* fallback check.
|
|
102
|
+
*/
|
|
103
|
+
handleCancelRequest(): Promise<void>;
|
|
67
104
|
destroy(): Promise<void>;
|
|
68
105
|
}
|
|
@@ -40,6 +40,7 @@ import { themeDefaultStyles } from '../../00theme.js';
|
|
|
40
40
|
import { cssGeistFontFamily } from '../../00fonts.js';
|
|
41
41
|
import { zIndexRegistry } from '../../00zindex.js';
|
|
42
42
|
import { DeesWindowLayer } from '../../00group-overlay/dees-windowlayer/dees-windowlayer.js';
|
|
43
|
+
import { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';
|
|
43
44
|
import '../dees-tile/dees-tile.js';
|
|
44
45
|
let DeesStepper = (() => {
|
|
45
46
|
let _classDecorators = [customElement('dees-stepper')];
|
|
@@ -56,6 +57,9 @@ let DeesStepper = (() => {
|
|
|
56
57
|
let _overlay_decorators;
|
|
57
58
|
let _overlay_initializers = [];
|
|
58
59
|
let _overlay_extraInitializers = [];
|
|
60
|
+
let _cancelable_decorators;
|
|
61
|
+
let _cancelable_initializers = [];
|
|
62
|
+
let _cancelable_extraInitializers = [];
|
|
59
63
|
let _stepperZIndex_decorators;
|
|
60
64
|
let _stepperZIndex_initializers = [];
|
|
61
65
|
let _stepperZIndex_extraInitializers = [];
|
|
@@ -79,12 +83,17 @@ let DeesStepper = (() => {
|
|
|
79
83
|
type: Boolean,
|
|
80
84
|
reflect: true,
|
|
81
85
|
})];
|
|
86
|
+
_cancelable_decorators = [property({
|
|
87
|
+
type: Boolean,
|
|
88
|
+
reflect: true,
|
|
89
|
+
})];
|
|
82
90
|
_stepperZIndex_decorators = [property({ type: Number, attribute: false })];
|
|
83
91
|
_activeForm_decorators = [property({ type: Object, attribute: false })];
|
|
84
92
|
_activeFormValid_decorators = [property({ type: Boolean, attribute: false })];
|
|
85
93
|
__esDecorate(this, null, _steps_decorators, { kind: "accessor", name: "steps", static: false, private: false, access: { has: obj => "steps" in obj, get: obj => obj.steps, set: (obj, value) => { obj.steps = value; } }, metadata: _metadata }, _steps_initializers, _steps_extraInitializers);
|
|
86
94
|
__esDecorate(this, null, _selectedStep_decorators, { kind: "accessor", name: "selectedStep", static: false, private: false, access: { has: obj => "selectedStep" in obj, get: obj => obj.selectedStep, set: (obj, value) => { obj.selectedStep = value; } }, metadata: _metadata }, _selectedStep_initializers, _selectedStep_extraInitializers);
|
|
87
95
|
__esDecorate(this, null, _overlay_decorators, { kind: "accessor", name: "overlay", static: false, private: false, access: { has: obj => "overlay" in obj, get: obj => obj.overlay, set: (obj, value) => { obj.overlay = value; } }, metadata: _metadata }, _overlay_initializers, _overlay_extraInitializers);
|
|
96
|
+
__esDecorate(this, null, _cancelable_decorators, { kind: "accessor", name: "cancelable", static: false, private: false, access: { has: obj => "cancelable" in obj, get: obj => obj.cancelable, set: (obj, value) => { obj.cancelable = value; } }, metadata: _metadata }, _cancelable_initializers, _cancelable_extraInitializers);
|
|
88
97
|
__esDecorate(this, null, _stepperZIndex_decorators, { kind: "accessor", name: "stepperZIndex", static: false, private: false, access: { has: obj => "stepperZIndex" in obj, get: obj => obj.stepperZIndex, set: (obj, value) => { obj.stepperZIndex = value; } }, metadata: _metadata }, _stepperZIndex_initializers, _stepperZIndex_extraInitializers);
|
|
89
98
|
__esDecorate(this, null, _activeForm_decorators, { kind: "accessor", name: "activeForm", static: false, private: false, access: { has: obj => "activeForm" in obj, get: obj => obj.activeForm, set: (obj, value) => { obj.activeForm = value; } }, metadata: _metadata }, _activeForm_initializers, _activeForm_extraInitializers);
|
|
90
99
|
__esDecorate(this, null, _activeFormValid_decorators, { kind: "accessor", name: "activeFormValid", static: false, private: false, access: { has: obj => "activeFormValid" in obj, get: obj => obj.activeFormValid, set: (obj, value) => { obj.activeFormValid = value; } }, metadata: _metadata }, _activeFormValid_initializers, _activeFormValid_extraInitializers);
|
|
@@ -100,10 +109,10 @@ let DeesStepper = (() => {
|
|
|
100
109
|
const stepper = new DeesStepper();
|
|
101
110
|
stepper.steps = optionsArg.steps;
|
|
102
111
|
stepper.overlay = true;
|
|
112
|
+
if (optionsArg.cancelable !== undefined) {
|
|
113
|
+
stepper.cancelable = optionsArg.cancelable;
|
|
114
|
+
}
|
|
103
115
|
stepper.windowLayer = await DeesWindowLayer.createAndShow({ blur: true });
|
|
104
|
-
stepper.windowLayer.addEventListener('click', async () => {
|
|
105
|
-
await stepper.destroy();
|
|
106
|
-
});
|
|
107
116
|
body.append(stepper.windowLayer);
|
|
108
117
|
body.append(stepper);
|
|
109
118
|
// Get z-index for stepper (should be above window layer)
|
|
@@ -121,7 +130,16 @@ let DeesStepper = (() => {
|
|
|
121
130
|
#overlay_accessor_storage = (__runInitializers(this, _selectedStep_extraInitializers), __runInitializers(this, _overlay_initializers, false));
|
|
122
131
|
get overlay() { return this.#overlay_accessor_storage; }
|
|
123
132
|
set overlay(value) { this.#overlay_accessor_storage = value; }
|
|
124
|
-
#
|
|
133
|
+
#cancelable_accessor_storage = (__runInitializers(this, _overlay_extraInitializers), __runInitializers(this, _cancelable_initializers, true));
|
|
134
|
+
/**
|
|
135
|
+
* When true (default), the stepper renders a Cancel button in every step's
|
|
136
|
+
* footer, and clicking the backdrop (overlay mode) triggers the same cancel
|
|
137
|
+
* confirmation flow. Set to false for forced flows where the user must
|
|
138
|
+
* complete the stepper — no Cancel button, no backdrop dismissal.
|
|
139
|
+
*/
|
|
140
|
+
get cancelable() { return this.#cancelable_accessor_storage; }
|
|
141
|
+
set cancelable(value) { this.#cancelable_accessor_storage = value; }
|
|
142
|
+
#stepperZIndex_accessor_storage = (__runInitializers(this, _cancelable_extraInitializers), __runInitializers(this, _stepperZIndex_initializers, 1000));
|
|
125
143
|
get stepperZIndex() { return this.#stepperZIndex_accessor_storage; }
|
|
126
144
|
set stepperZIndex(value) { this.#stepperZIndex_accessor_storage = value; }
|
|
127
145
|
#activeForm_accessor_storage = (__runInitializers(this, _stepperZIndex_extraInitializers), __runInitializers(this, _activeForm_initializers, null));
|
|
@@ -177,9 +195,14 @@ let DeesStepper = (() => {
|
|
|
177
195
|
height: 100vh;
|
|
178
196
|
}
|
|
179
197
|
|
|
180
|
-
.
|
|
181
|
-
|
|
182
|
-
|
|
198
|
+
/* Exit animation — reverse of the entry. Tiles slide DOWN + fade out,
|
|
199
|
+
mirroring the .entrance slide-up. The transition override is needed
|
|
200
|
+
because dees-tile.step has its own 0.7s transition for step selection
|
|
201
|
+
which would otherwise make the exit sluggish. */
|
|
202
|
+
.stepperContainer.predestroy dees-tile.step {
|
|
203
|
+
transform: translateY(16px);
|
|
204
|
+
filter: opacity(0);
|
|
205
|
+
transition: transform 0.25s, filter 0.2s;
|
|
183
206
|
}
|
|
184
207
|
|
|
185
208
|
dees-tile.step {
|
|
@@ -317,15 +340,17 @@ let DeesStepper = (() => {
|
|
|
317
340
|
transition: all 0.15s ease;
|
|
318
341
|
background: transparent;
|
|
319
342
|
border: none;
|
|
320
|
-
border-left: 1px solid var(--dees-color-border-subtle);
|
|
321
343
|
color: var(--dees-color-text-muted);
|
|
322
344
|
white-space: nowrap;
|
|
323
345
|
display: flex;
|
|
324
346
|
align-items: center;
|
|
325
347
|
}
|
|
326
348
|
|
|
327
|
-
|
|
328
|
-
|
|
349
|
+
/* Border-left separator on every button EXCEPT the first one.
|
|
350
|
+
Uses general sibling so the stepHint (if rendered on the left) does
|
|
351
|
+
not shift which button counts as "first" and create a phantom border. */
|
|
352
|
+
.bottomButtons .bottomButton ~ .bottomButton {
|
|
353
|
+
border-left: 1px solid var(--dees-color-border-subtle);
|
|
329
354
|
}
|
|
330
355
|
|
|
331
356
|
.bottomButtons .bottomButton:hover {
|
|
@@ -383,6 +408,7 @@ let DeesStepper = (() => {
|
|
|
383
408
|
<div
|
|
384
409
|
class="stepperContainer ${this.overlay ? 'overlay' : ''}"
|
|
385
410
|
style=${this.overlay ? `z-index: ${this.stepperZIndex};` : ''}
|
|
411
|
+
@click=${this.handleOutsideClick}
|
|
386
412
|
>
|
|
387
413
|
${this.steps.map((stepArg, stepIndex) => {
|
|
388
414
|
const isSelected = stepArg === this.selectedStep;
|
|
@@ -405,23 +431,27 @@ let DeesStepper = (() => {
|
|
|
405
431
|
<div class="title">${stepArg.title}</div>
|
|
406
432
|
<div class="content">${stepArg.content}</div>
|
|
407
433
|
</div>
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
<div
|
|
418
|
-
class="bottomButton ${isPrimary ? 'primary' : ''} ${isDisabled ? 'disabled' : ''}"
|
|
419
|
-
@click=${() => this.handleMenuOptionClick(actionArg, isPrimary)}
|
|
420
|
-
>${actionArg.name}</div>
|
|
421
|
-
`;
|
|
422
|
-
})}
|
|
423
|
-
</div>`
|
|
434
|
+
<div slot="footer" class="bottomButtons">
|
|
435
|
+
${isSelected && this.activeForm !== null && !this.activeFormValid
|
|
436
|
+
? html `<div class="stepHint">Complete form to continue</div>`
|
|
437
|
+
: ''}
|
|
438
|
+
${this.cancelable
|
|
439
|
+
? html `<div
|
|
440
|
+
class="bottomButton"
|
|
441
|
+
@click=${() => this.handleCancelRequest()}
|
|
442
|
+
>Cancel</div>`
|
|
424
443
|
: ''}
|
|
444
|
+
${stepArg.menuOptions?.map((actionArg, actionIndex) => {
|
|
445
|
+
const isPrimary = actionIndex === stepArg.menuOptions.length - 1;
|
|
446
|
+
const isDisabled = isPrimary && this.activeForm !== null && !this.activeFormValid;
|
|
447
|
+
return html `
|
|
448
|
+
<div
|
|
449
|
+
class="bottomButton ${isPrimary ? 'primary' : ''} ${isDisabled ? 'disabled' : ''}"
|
|
450
|
+
@click=${() => this.handleMenuOptionClick(actionArg, isPrimary)}
|
|
451
|
+
>${actionArg.name}</div>
|
|
452
|
+
`;
|
|
453
|
+
}) ?? ''}
|
|
454
|
+
</div>
|
|
425
455
|
</dees-tile>`;
|
|
426
456
|
})}
|
|
427
457
|
</div>
|
|
@@ -570,11 +600,84 @@ let DeesStepper = (() => {
|
|
|
570
600
|
}
|
|
571
601
|
await optionArg.action(this);
|
|
572
602
|
}
|
|
603
|
+
/**
|
|
604
|
+
* Currently-open confirmation modal (if any). Prevents double-stacking when
|
|
605
|
+
* the user clicks the backdrop or the Cancel button while a confirm modal
|
|
606
|
+
* is already visible. The reference may become stale (point to a destroyed
|
|
607
|
+
* modal) if the user dismisses the confirm modal by clicking its own
|
|
608
|
+
* backdrop — so handleCancelRequest() uses isConnected to detect that.
|
|
609
|
+
*/
|
|
610
|
+
cancelConfirmModal;
|
|
611
|
+
/**
|
|
612
|
+
* Click handler on .stepperContainer. Mirrors dees-modal.handleOutsideClick:
|
|
613
|
+
* when the user clicks the empty backdrop area (target === stepperContainer,
|
|
614
|
+
* not any descendant tile), trigger the cancel confirmation flow. Clicks
|
|
615
|
+
* that originate inside a step tile have a different event.target and are
|
|
616
|
+
* ignored here.
|
|
617
|
+
*/
|
|
618
|
+
handleOutsideClick(eventArg) {
|
|
619
|
+
if (!this.overlay)
|
|
620
|
+
return;
|
|
621
|
+
if (!this.cancelable)
|
|
622
|
+
return;
|
|
623
|
+
eventArg.stopPropagation();
|
|
624
|
+
const stepperContainer = this.shadowRoot.querySelector('.stepperContainer');
|
|
625
|
+
if (eventArg.target === stepperContainer) {
|
|
626
|
+
this.handleCancelRequest();
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
/**
|
|
630
|
+
* Shown by both the backdrop click and the Cancel button in the footer.
|
|
631
|
+
* Presents a dees-modal asking the user to confirm cancellation. If they
|
|
632
|
+
* confirm, the stepper and window layer are destroyed; otherwise the
|
|
633
|
+
* confirm modal is dismissed and the stepper stays open.
|
|
634
|
+
*
|
|
635
|
+
* The isConnected check on the cached reference handles the case where the
|
|
636
|
+
* user dismissed the previous confirm modal by clicking ITS OWN backdrop —
|
|
637
|
+
* dees-modal.handleOutsideClick calls destroy() directly, bypassing our
|
|
638
|
+
* action callbacks, so our cached reference would be stale without this
|
|
639
|
+
* fallback check.
|
|
640
|
+
*/
|
|
641
|
+
async handleCancelRequest() {
|
|
642
|
+
if (!this.cancelable)
|
|
643
|
+
return;
|
|
644
|
+
if (this.cancelConfirmModal && this.cancelConfirmModal.isConnected)
|
|
645
|
+
return;
|
|
646
|
+
this.cancelConfirmModal = undefined;
|
|
647
|
+
this.cancelConfirmModal = await DeesModal.createAndShow({
|
|
648
|
+
heading: 'Cancel setup?',
|
|
649
|
+
width: 'small',
|
|
650
|
+
content: html `
|
|
651
|
+
<p style="margin: 0;">
|
|
652
|
+
Are you sure you want to cancel? Any progress on the current step will be lost.
|
|
653
|
+
</p>
|
|
654
|
+
`,
|
|
655
|
+
menuOptions: [
|
|
656
|
+
{
|
|
657
|
+
name: 'Continue setup',
|
|
658
|
+
action: async (modal) => {
|
|
659
|
+
this.cancelConfirmModal = undefined;
|
|
660
|
+
await modal.destroy();
|
|
661
|
+
},
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
name: 'Yes, cancel',
|
|
665
|
+
action: async (modal) => {
|
|
666
|
+
this.cancelConfirmModal = undefined;
|
|
667
|
+
modal.destroy(); // fire-and-forget — starts the confirm modal fade
|
|
668
|
+
const domtools = await this.domtoolsPromise;
|
|
669
|
+
await domtools.convenience.smartdelay.delayFor(100);
|
|
670
|
+
await this.destroy();
|
|
671
|
+
},
|
|
672
|
+
},
|
|
673
|
+
],
|
|
674
|
+
});
|
|
675
|
+
}
|
|
573
676
|
async destroy() {
|
|
574
677
|
const domtools = await this.domtoolsPromise;
|
|
575
678
|
const container = this.shadowRoot.querySelector('.stepperContainer');
|
|
576
679
|
container?.classList.add('predestroy');
|
|
577
|
-
await domtools.convenience.smartdelay.delayFor(
|
|
680
|
+
await domtools.convenience.smartdelay.delayFor(250);
|
|
578
681
|
if (this.parentElement) {
|
|
579
682
|
this.parentElement.removeChild(this);
|
|
580
683
|
}
|
|
@@ -595,4 +698,4 @@ let DeesStepper = (() => {
|
|
|
595
698
|
return DeesStepper = _classThis;
|
|
596
699
|
})();
|
|
597
700
|
export { DeesStepper };
|
|
598
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1zdGVwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtbGF5b3V0L2RlZXMtc3RlcHBlci9kZWVzLXN0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsSUFBSSxFQUNKLEdBQUcsRUFDSCxTQUFTLEVBRVQsVUFBVSxFQUNWLFFBQVEsR0FFVCxNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sS0FBSyxRQUFRLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFFN0YsT0FBTywyQkFBMkIsQ0FBQztJQW1CdEIsV0FBVzs0QkFEdkIsYUFBYSxDQUFDLGNBQWMsQ0FBQzs7OztzQkFDRyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzJCQUFuQixTQUFRLFdBQVc7Ozs7aUNBMkJ6QyxRQUFRLENBQUM7b0JBQ1IsSUFBSSxFQUFFLEtBQUs7aUJBQ1osQ0FBQzt3Q0FHRCxRQUFRLENBQUM7b0JBQ1IsSUFBSSxFQUFFLE1BQU07aUJBQ2IsQ0FBQzttQ0FHRCxRQUFRLENBQUM7b0JBQ1IsSUFBSSxFQUFFLE9BQU87b0JBQ2IsT0FBTyxFQUFFLElBQUk7aUJBQ2QsQ0FBQzt5Q0FHRCxRQUFRLENBQUMsRUFBRSxJQUFJ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
|
|
701
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1zdGVwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtbGF5b3V0L2RlZXMtc3RlcHBlci9kZWVzLXN0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsSUFBSSxFQUNKLEdBQUcsRUFDSCxTQUFTLEVBRVQsVUFBVSxFQUNWLFFBQVEsR0FFVCxNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sS0FBSyxRQUFRLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTNFLE9BQU8sMkJBQTJCLENBQUM7SUFtQnRCLFdBQVc7NEJBRHZCLGFBQWEsQ0FBQyxjQUFjLENBQUM7Ozs7c0JBQ0csV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsyQkFBbkIsU0FBUSxXQUFXOzs7O2lDQTRCekMsUUFBUSxDQUFDO29CQUNSLElBQUksRUFBRSxLQUFLO2lCQUNaLENBQUM7d0NBR0QsUUFBUSxDQUFDO29CQUNSLElBQUksRUFBRSxNQUFNO2lCQUNiLENBQUM7bUNBR0QsUUFBUSxDQUFDO29CQUNSLElBQUksRUFBRSxPQUFPO29CQUNiLE9BQU8s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
|