@design.estate/dees-catalog 3.71.1 → 3.72.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/dist_bundle/bundle.js +102 -22
- 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 +120 -24
- package/dist_watch/bundle.js +100 -20
- 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 +114 -23
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,6 +187463,65 @@ 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
|
+
await modal.destroy();
|
|
187519
|
+
await this.destroy();
|
|
187520
|
+
}, "action")
|
|
187521
|
+
}
|
|
187522
|
+
]
|
|
187523
|
+
});
|
|
187524
|
+
}
|
|
187449
187525
|
async destroy() {
|
|
187450
187526
|
const domtools19 = await this.domtoolsPromise;
|
|
187451
187527
|
const container = this.shadowRoot.querySelector(".stepperContainer");
|
|
@@ -187467,12 +187543,14 @@ _init82 = __decoratorStart(_a81);
|
|
|
187467
187543
|
_steps = new WeakMap();
|
|
187468
187544
|
_selectedStep = new WeakMap();
|
|
187469
187545
|
_overlay = new WeakMap();
|
|
187546
|
+
_cancelable = new WeakMap();
|
|
187470
187547
|
_stepperZIndex = new WeakMap();
|
|
187471
187548
|
_activeForm = new WeakMap();
|
|
187472
187549
|
_activeFormValid = new WeakMap();
|
|
187473
187550
|
__decorateElement(_init82, 4, "steps", _steps_dec, _DeesStepper, _steps);
|
|
187474
187551
|
__decorateElement(_init82, 4, "selectedStep", _selectedStep_dec, _DeesStepper, _selectedStep);
|
|
187475
187552
|
__decorateElement(_init82, 4, "overlay", _overlay_dec, _DeesStepper, _overlay);
|
|
187553
|
+
__decorateElement(_init82, 4, "cancelable", _cancelable_dec, _DeesStepper, _cancelable);
|
|
187476
187554
|
__decorateElement(_init82, 4, "stepperZIndex", _stepperZIndex_dec, _DeesStepper, _stepperZIndex);
|
|
187477
187555
|
__decorateElement(_init82, 4, "activeForm", _activeForm_dec, _DeesStepper, _activeForm);
|
|
187478
187556
|
__decorateElement(_init82, 4, "activeFormValid", _activeFormValid_dec, _DeesStepper, _activeFormValid);
|
|
@@ -187663,15 +187741,17 @@ __publicField(_DeesStepper, "styles", [
|
|
|
187663
187741
|
transition: all 0.15s ease;
|
|
187664
187742
|
background: transparent;
|
|
187665
187743
|
border: none;
|
|
187666
|
-
border-left: 1px solid var(--dees-color-border-subtle);
|
|
187667
187744
|
color: var(--dees-color-text-muted);
|
|
187668
187745
|
white-space: nowrap;
|
|
187669
187746
|
display: flex;
|
|
187670
187747
|
align-items: center;
|
|
187671
187748
|
}
|
|
187672
187749
|
|
|
187673
|
-
|
|
187674
|
-
|
|
187750
|
+
/* Border-left separator on every button EXCEPT the first one.
|
|
187751
|
+
Uses general sibling so the stepHint (if rendered on the left) does
|
|
187752
|
+
not shift which button counts as "first" and create a phantom border. */
|
|
187753
|
+
.bottomButtons .bottomButton ~ .bottomButton {
|
|
187754
|
+
border-left: 1px solid var(--dees-color-border-subtle);
|
|
187675
187755
|
}
|
|
187676
187756
|
|
|
187677
187757
|
.bottomButtons .bottomButton:hover {
|
|
@@ -201198,7 +201278,7 @@ init_group_runtime();
|
|
|
201198
201278
|
// ts_web/00_commitinfo_data.ts
|
|
201199
201279
|
var commitinfo = {
|
|
201200
201280
|
name: "@design.estate/dees-catalog",
|
|
201201
|
-
version: "3.
|
|
201281
|
+
version: "3.72.0",
|
|
201202
201282
|
description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
|
|
201203
201283
|
};
|
|
201204
201284
|
export {
|
|
@@ -203171,4 +203251,4 @@ ibantools/jsnext/ibantools.js:
|
|
|
203171
203251
|
* @preferred
|
|
203172
203252
|
*)
|
|
203173
203253
|
*/
|
|
203174
|
-
//# sourceMappingURL=bundle-
|
|
203254
|
+
//# sourceMappingURL=bundle-1775937892404.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.0',
|
|
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));
|
|
@@ -317,15 +335,17 @@ let DeesStepper = (() => {
|
|
|
317
335
|
transition: all 0.15s ease;
|
|
318
336
|
background: transparent;
|
|
319
337
|
border: none;
|
|
320
|
-
border-left: 1px solid var(--dees-color-border-subtle);
|
|
321
338
|
color: var(--dees-color-text-muted);
|
|
322
339
|
white-space: nowrap;
|
|
323
340
|
display: flex;
|
|
324
341
|
align-items: center;
|
|
325
342
|
}
|
|
326
343
|
|
|
327
|
-
|
|
328
|
-
|
|
344
|
+
/* Border-left separator on every button EXCEPT the first one.
|
|
345
|
+
Uses general sibling so the stepHint (if rendered on the left) does
|
|
346
|
+
not shift which button counts as "first" and create a phantom border. */
|
|
347
|
+
.bottomButtons .bottomButton ~ .bottomButton {
|
|
348
|
+
border-left: 1px solid var(--dees-color-border-subtle);
|
|
329
349
|
}
|
|
330
350
|
|
|
331
351
|
.bottomButtons .bottomButton:hover {
|
|
@@ -383,6 +403,7 @@ let DeesStepper = (() => {
|
|
|
383
403
|
<div
|
|
384
404
|
class="stepperContainer ${this.overlay ? 'overlay' : ''}"
|
|
385
405
|
style=${this.overlay ? `z-index: ${this.stepperZIndex};` : ''}
|
|
406
|
+
@click=${this.handleOutsideClick}
|
|
386
407
|
>
|
|
387
408
|
${this.steps.map((stepArg, stepIndex) => {
|
|
388
409
|
const isSelected = stepArg === this.selectedStep;
|
|
@@ -405,23 +426,27 @@ let DeesStepper = (() => {
|
|
|
405
426
|
<div class="title">${stepArg.title}</div>
|
|
406
427
|
<div class="content">${stepArg.content}</div>
|
|
407
428
|
</div>
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
? html `<div class="stepHint">Complete form to continue</div>`
|
|
412
|
-
: ''}
|
|
413
|
-
${stepArg.menuOptions.map((actionArg, actionIndex) => {
|
|
414
|
-
const isPrimary = actionIndex === stepArg.menuOptions.length - 1;
|
|
415
|
-
const isDisabled = isPrimary && this.activeForm !== null && !this.activeFormValid;
|
|
416
|
-
return html `
|
|
417
|
-
<div
|
|
418
|
-
class="bottomButton ${isPrimary ? 'primary' : ''} ${isDisabled ? 'disabled' : ''}"
|
|
419
|
-
@click=${() => this.handleMenuOptionClick(actionArg, isPrimary)}
|
|
420
|
-
>${actionArg.name}</div>
|
|
421
|
-
`;
|
|
422
|
-
})}
|
|
423
|
-
</div>`
|
|
429
|
+
<div slot="footer" class="bottomButtons">
|
|
430
|
+
${isSelected && this.activeForm !== null && !this.activeFormValid
|
|
431
|
+
? html `<div class="stepHint">Complete form to continue</div>`
|
|
424
432
|
: ''}
|
|
433
|
+
${this.cancelable
|
|
434
|
+
? html `<div
|
|
435
|
+
class="bottomButton"
|
|
436
|
+
@click=${() => this.handleCancelRequest()}
|
|
437
|
+
>Cancel</div>`
|
|
438
|
+
: ''}
|
|
439
|
+
${stepArg.menuOptions?.map((actionArg, actionIndex) => {
|
|
440
|
+
const isPrimary = actionIndex === stepArg.menuOptions.length - 1;
|
|
441
|
+
const isDisabled = isPrimary && this.activeForm !== null && !this.activeFormValid;
|
|
442
|
+
return html `
|
|
443
|
+
<div
|
|
444
|
+
class="bottomButton ${isPrimary ? 'primary' : ''} ${isDisabled ? 'disabled' : ''}"
|
|
445
|
+
@click=${() => this.handleMenuOptionClick(actionArg, isPrimary)}
|
|
446
|
+
>${actionArg.name}</div>
|
|
447
|
+
`;
|
|
448
|
+
}) ?? ''}
|
|
449
|
+
</div>
|
|
425
450
|
</dees-tile>`;
|
|
426
451
|
})}
|
|
427
452
|
</div>
|
|
@@ -570,6 +595,77 @@ let DeesStepper = (() => {
|
|
|
570
595
|
}
|
|
571
596
|
await optionArg.action(this);
|
|
572
597
|
}
|
|
598
|
+
/**
|
|
599
|
+
* Currently-open confirmation modal (if any). Prevents double-stacking when
|
|
600
|
+
* the user clicks the backdrop or the Cancel button while a confirm modal
|
|
601
|
+
* is already visible. The reference may become stale (point to a destroyed
|
|
602
|
+
* modal) if the user dismisses the confirm modal by clicking its own
|
|
603
|
+
* backdrop — so handleCancelRequest() uses isConnected to detect that.
|
|
604
|
+
*/
|
|
605
|
+
cancelConfirmModal;
|
|
606
|
+
/**
|
|
607
|
+
* Click handler on .stepperContainer. Mirrors dees-modal.handleOutsideClick:
|
|
608
|
+
* when the user clicks the empty backdrop area (target === stepperContainer,
|
|
609
|
+
* not any descendant tile), trigger the cancel confirmation flow. Clicks
|
|
610
|
+
* that originate inside a step tile have a different event.target and are
|
|
611
|
+
* ignored here.
|
|
612
|
+
*/
|
|
613
|
+
handleOutsideClick(eventArg) {
|
|
614
|
+
if (!this.overlay)
|
|
615
|
+
return;
|
|
616
|
+
if (!this.cancelable)
|
|
617
|
+
return;
|
|
618
|
+
eventArg.stopPropagation();
|
|
619
|
+
const stepperContainer = this.shadowRoot.querySelector('.stepperContainer');
|
|
620
|
+
if (eventArg.target === stepperContainer) {
|
|
621
|
+
this.handleCancelRequest();
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* Shown by both the backdrop click and the Cancel button in the footer.
|
|
626
|
+
* Presents a dees-modal asking the user to confirm cancellation. If they
|
|
627
|
+
* confirm, the stepper and window layer are destroyed; otherwise the
|
|
628
|
+
* confirm modal is dismissed and the stepper stays open.
|
|
629
|
+
*
|
|
630
|
+
* The isConnected check on the cached reference handles the case where the
|
|
631
|
+
* user dismissed the previous confirm modal by clicking ITS OWN backdrop —
|
|
632
|
+
* dees-modal.handleOutsideClick calls destroy() directly, bypassing our
|
|
633
|
+
* action callbacks, so our cached reference would be stale without this
|
|
634
|
+
* fallback check.
|
|
635
|
+
*/
|
|
636
|
+
async handleCancelRequest() {
|
|
637
|
+
if (!this.cancelable)
|
|
638
|
+
return;
|
|
639
|
+
if (this.cancelConfirmModal && this.cancelConfirmModal.isConnected)
|
|
640
|
+
return;
|
|
641
|
+
this.cancelConfirmModal = undefined;
|
|
642
|
+
this.cancelConfirmModal = await DeesModal.createAndShow({
|
|
643
|
+
heading: 'Cancel setup?',
|
|
644
|
+
width: 'small',
|
|
645
|
+
content: html `
|
|
646
|
+
<p style="margin: 0;">
|
|
647
|
+
Are you sure you want to cancel? Any progress on the current step will be lost.
|
|
648
|
+
</p>
|
|
649
|
+
`,
|
|
650
|
+
menuOptions: [
|
|
651
|
+
{
|
|
652
|
+
name: 'Continue setup',
|
|
653
|
+
action: async (modal) => {
|
|
654
|
+
this.cancelConfirmModal = undefined;
|
|
655
|
+
await modal.destroy();
|
|
656
|
+
},
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
name: 'Yes, cancel',
|
|
660
|
+
action: async (modal) => {
|
|
661
|
+
this.cancelConfirmModal = undefined;
|
|
662
|
+
await modal.destroy();
|
|
663
|
+
await this.destroy();
|
|
664
|
+
},
|
|
665
|
+
},
|
|
666
|
+
],
|
|
667
|
+
});
|
|
668
|
+
}
|
|
573
669
|
async destroy() {
|
|
574
670
|
const domtools = await this.domtoolsPromise;
|
|
575
671
|
const container = this.shadowRoot.querySelector('.stepperContainer');
|
|
@@ -595,4 +691,4 @@ let DeesStepper = (() => {
|
|
|
595
691
|
return DeesStepper = _classThis;
|
|
596
692
|
})();
|
|
597
693
|
export { DeesStepper };
|
|
598
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1zdGVwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtbGF5b3V0L2RlZXMtc3RlcHBlci9kZWVzLXN0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsSUFBSSxFQUNKLEdBQUcsRUFDSCxTQUFTLEVBRVQsVUFBVSxFQUNWLFFBQVEsR0FFVCxNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sS0FBSyxRQUFRLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFFN0YsT0FBTywyQkFBMkIsQ0FBQztJQW1CdEIsV0FBVzs0QkFEdkIsYUFBYSxDQUFDLGNBQWMsQ0FBQzs7OztzQkFDRyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzJCQUFuQixTQUFRLFdBQVc7Ozs7aUNBMkJ6QyxRQUFRLENBQUM7b0JBQ1IsSUFBSSxFQUFFLEtBQUs7aUJBQ1osQ0FBQzt3Q0FHRCxRQUFRLENBQUM7b0JBQ1IsSUFBSSxFQUFFLE1BQU07aUJBQ2IsQ0FBQzttQ0FHRCxRQUFRLENBQUM7b0JBQ1IsSUFBSSxFQUFFLE9BQU87b0JBQ2IsT0FBTyxFQUFFLElBQUk7aUJBQ2QsQ0FBQzt5Q0FHRCxRQUFRLENBQUMsRUFBRSxJQUFJ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
|
|
694
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1zdGVwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtbGF5b3V0L2RlZXMtc3RlcHBlci9kZWVzLXN0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsSUFBSSxFQUNKLEdBQUcsRUFDSCxTQUFTLEVBRVQsVUFBVSxFQUNWLFFBQVEsR0FFVCxNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sS0FBSyxRQUFRLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTNFLE9BQU8sMkJBQTJCLENBQUM7SUFtQnRCLFdBQVc7NEJBRHZCLGFBQWEsQ0FBQyxjQUFjLENBQUM7Ozs7c0JBQ0csV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsyQkFBbkIsU0FBUSxXQUFXOzs7O2lDQTRCekMsUUFBUSxDQUFDO29CQUNSLElBQUksRUFBRSxLQUFLO2lCQUNaLENBQUM7d0NBR0QsUUFBUSxDQUFDO29CQUNSLElBQUksRUFBRSxNQUFNO2lCQUNiLENBQUM7bUNBR0QsUUFBUSxDQUFDO29CQUNSLElBQUksRUFBRSxPQUFPO29CQUNiLE9BQU8s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
|