@unabridged/midwest 0.17.0 → 0.18.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/app/assets/javascript/midwest/index.ts +4 -0
- package/app/assets/javascript/midwest.js +407 -33
- package/app/assets/javascript/midwest.js.map +1 -1
- package/app/assets/stylesheets/midwest.css +1 -1
- package/app/assets/stylesheets/midwest.tailwind.css +4 -1
- package/dist/css/midwest.css +1 -1
- package/dist/javascript/collection/app/assets/javascript/midwest/index.js +4 -0
- package/dist/javascript/collection/app/assets/javascript/midwest/index.js.map +1 -1
- package/dist/javascript/collection/app/components/midwest/color_picker_component/color_picker_component_controller.js +135 -0
- package/dist/javascript/collection/app/components/midwest/color_picker_component/color_picker_component_controller.js.map +1 -0
- package/dist/javascript/collection/app/components/midwest/countdown_timer_component/countdown_timer_component_controller.js +27 -6
- package/dist/javascript/collection/app/components/midwest/countdown_timer_component/countdown_timer_component_controller.js.map +1 -1
- package/dist/javascript/collection/app/components/midwest/form/autocomplete_component/autocomplete_component_controller.js +109 -21
- package/dist/javascript/collection/app/components/midwest/form/autocomplete_component/autocomplete_component_controller.js.map +1 -1
- package/dist/javascript/collection/app/components/midwest/form/color_picker_component/color_picker_component_controller.js +129 -0
- package/dist/javascript/collection/app/components/midwest/form/color_picker_component/color_picker_component_controller.js.map +1 -0
- package/dist/javascript/collection/app/components/midwest/form/input_component/input_component_controller.js +50 -1
- package/dist/javascript/collection/app/components/midwest/form/input_component/input_component_controller.js.map +1 -1
- package/dist/javascript/collection/app/components/midwest/form/live_summary_component/live_summary_component_controller.js +38 -5
- package/dist/javascript/collection/app/components/midwest/form/live_summary_component/live_summary_component_controller.js.map +1 -1
- package/dist/javascript/collection/app/components/midwest/notification_component/notification_component_controller.js +60 -0
- package/dist/javascript/collection/app/components/midwest/notification_component/notification_component_controller.js.map +1 -0
- package/dist/javascript/midwest.d.ts +5 -0
- package/dist/javascript/midwest.js +407 -33
- package/dist/javascript/midwest.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Controller } from '@hotwired/stimulus';
|
|
2
|
+
|
|
3
|
+
class Notification extends Controller {
|
|
4
|
+
container = null;
|
|
5
|
+
observer = null;
|
|
6
|
+
connect() {
|
|
7
|
+
this.container = this.element.closest("[popover]");
|
|
8
|
+
this.container?.showPopover?.();
|
|
9
|
+
requestAnimationFrame(() => {
|
|
10
|
+
this.element.classList.add("visible");
|
|
11
|
+
});
|
|
12
|
+
const frame = this.element.parentElement;
|
|
13
|
+
if (frame) {
|
|
14
|
+
this.observer = new MutationObserver(() => this.syncCountdown());
|
|
15
|
+
this.observer.observe(frame, { childList: true });
|
|
16
|
+
setTimeout(() => this.syncCountdown());
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
disconnect() {
|
|
20
|
+
this.observer?.disconnect();
|
|
21
|
+
this.observer = null;
|
|
22
|
+
if (this.container) {
|
|
23
|
+
const frame = this.container.querySelector("turbo-frame");
|
|
24
|
+
if (frame?.children.length === 0 && this.container.matches(":popover-open")) {
|
|
25
|
+
this.container.hidePopover?.();
|
|
26
|
+
}
|
|
27
|
+
this.container = null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
close() {
|
|
31
|
+
if (!this.element.classList.contains("animated")) {
|
|
32
|
+
this.element.remove();
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this.element.classList.add("closing");
|
|
36
|
+
setTimeout(() => {
|
|
37
|
+
this.element.remove();
|
|
38
|
+
}, 350);
|
|
39
|
+
}
|
|
40
|
+
syncCountdown() {
|
|
41
|
+
const timerEl = this.element.querySelector('[data-controller~="midwest-countdown-timer"]');
|
|
42
|
+
if (!timerEl)
|
|
43
|
+
return;
|
|
44
|
+
const timer = this.application.getControllerForElementAndIdentifier(
|
|
45
|
+
timerEl,
|
|
46
|
+
"midwest-countdown-timer"
|
|
47
|
+
);
|
|
48
|
+
if (!timer)
|
|
49
|
+
return;
|
|
50
|
+
const isTop = this.element === this.element.parentElement?.firstElementChild;
|
|
51
|
+
if (isTop) {
|
|
52
|
+
timer.resume();
|
|
53
|
+
} else {
|
|
54
|
+
timer.pause();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { Notification as default };
|
|
60
|
+
//# sourceMappingURL=notification_component_controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification_component_controller.js","sources":["../../../../../../../app/components/midwest/notification_component/notification_component_controller.ts"],"sourcesContent":["import { Controller } from '@hotwired/stimulus'\n\ntype PopoverElement = HTMLElement & { showPopover?(): void; hidePopover?(): void }\n\ninterface PausableTimer {\n pause(): void\n resume(): void\n}\n\nexport default class Notification extends Controller<HTMLElement> {\n private container: PopoverElement | null = null\n private observer: MutationObserver | null = null\n\n connect () {\n this.container = this.element.closest<PopoverElement>('[popover]')\n this.container?.showPopover?.()\n\n requestAnimationFrame(() => {\n this.element.classList.add('visible')\n })\n\n const frame = this.element.parentElement\n if (frame) {\n this.observer = new MutationObserver(() => this.syncCountdown())\n this.observer.observe(frame, { childList: true })\n // Defer until nested controllers (e.g. CountdownTimer) have connected\n setTimeout(() => this.syncCountdown())\n }\n }\n\n disconnect () {\n this.observer?.disconnect()\n this.observer = null\n\n if (this.container) {\n const frame = this.container.querySelector('turbo-frame')\n if (frame?.children.length === 0 && this.container.matches(':popover-open')) {\n this.container.hidePopover?.()\n }\n this.container = null\n }\n }\n\n close () {\n if (!this.element.classList.contains('animated')) {\n this.element.remove()\n return\n }\n\n this.element.classList.add('closing')\n setTimeout(() => {\n this.element.remove()\n }, 350)\n }\n\n private syncCountdown (): void {\n const timerEl = this.element.querySelector<HTMLElement>('[data-controller~=\"midwest-countdown-timer\"]')\n if (!timerEl) return\n\n const timer = this.application.getControllerForElementAndIdentifier(\n timerEl, 'midwest-countdown-timer'\n ) as PausableTimer | null\n if (!timer) return\n\n const isTop = this.element === this.element.parentElement?.firstElementChild\n if (isTop) { timer.resume() } else { timer.pause() }\n }\n}\n"],"names":[],"mappings":";;AASA,MAAqB,qBAAqB,UAAwB,CAAA;AAAA,EACxD,SAAmC,GAAA,IAAA,CAAA;AAAA,EACnC,QAAoC,GAAA,IAAA,CAAA;AAAA,EAE5C,OAAW,GAAA;AACT,IAAA,IAAA,CAAK,SAAY,GAAA,IAAA,CAAK,OAAQ,CAAA,OAAA,CAAwB,WAAW,CAAA,CAAA;AACjE,IAAA,IAAA,CAAK,WAAW,WAAc,IAAA,CAAA;AAE9B,IAAA,qBAAA,CAAsB,MAAM;AAC1B,MAAK,IAAA,CAAA,OAAA,CAAQ,SAAU,CAAA,GAAA,CAAI,SAAS,CAAA,CAAA;AAAA,KACrC,CAAA,CAAA;AAED,IAAM,MAAA,KAAA,GAAQ,KAAK,OAAQ,CAAA,aAAA,CAAA;AAC3B,IAAA,IAAI,KAAO,EAAA;AACT,MAAA,IAAA,CAAK,WAAW,IAAI,gBAAA,CAAiB,MAAM,IAAA,CAAK,eAAe,CAAA,CAAA;AAC/D,MAAA,IAAA,CAAK,SAAS,OAAQ,CAAA,KAAA,EAAO,EAAE,SAAA,EAAW,MAAM,CAAA,CAAA;AAEhD,MAAW,UAAA,CAAA,MAAM,IAAK,CAAA,aAAA,EAAe,CAAA,CAAA;AAAA,KACvC;AAAA,GACF;AAAA,EAEA,UAAc,GAAA;AACZ,IAAA,IAAA,CAAK,UAAU,UAAW,EAAA,CAAA;AAC1B,IAAA,IAAA,CAAK,QAAW,GAAA,IAAA,CAAA;AAEhB,IAAA,IAAI,KAAK,SAAW,EAAA;AAClB,MAAA,MAAM,KAAQ,GAAA,IAAA,CAAK,SAAU,CAAA,aAAA,CAAc,aAAa,CAAA,CAAA;AACxD,MAAI,IAAA,KAAA,EAAO,SAAS,MAAW,KAAA,CAAA,IAAK,KAAK,SAAU,CAAA,OAAA,CAAQ,eAAe,CAAG,EAAA;AAC3E,QAAA,IAAA,CAAK,UAAU,WAAc,IAAA,CAAA;AAAA,OAC/B;AACA,MAAA,IAAA,CAAK,SAAY,GAAA,IAAA,CAAA;AAAA,KACnB;AAAA,GACF;AAAA,EAEA,KAAS,GAAA;AACP,IAAA,IAAI,CAAC,IAAK,CAAA,OAAA,CAAQ,SAAU,CAAA,QAAA,CAAS,UAAU,CAAG,EAAA;AAChD,MAAA,IAAA,CAAK,QAAQ,MAAO,EAAA,CAAA;AACpB,MAAA,OAAA;AAAA,KACF;AAEA,IAAK,IAAA,CAAA,OAAA,CAAQ,SAAU,CAAA,GAAA,CAAI,SAAS,CAAA,CAAA;AACpC,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,IAAA,CAAK,QAAQ,MAAO,EAAA,CAAA;AAAA,OACnB,GAAG,CAAA,CAAA;AAAA,GACR;AAAA,EAEQ,aAAuB,GAAA;AAC7B,IAAA,MAAM,OAAU,GAAA,IAAA,CAAK,OAAQ,CAAA,aAAA,CAA2B,8CAA8C,CAAA,CAAA;AACtG,IAAA,IAAI,CAAC,OAAA;AAAS,MAAA,OAAA;AAEd,IAAM,MAAA,KAAA,GAAQ,KAAK,WAAY,CAAA,oCAAA;AAAA,MAC7B,OAAA;AAAA,MAAS,yBAAA;AAAA,KACX,CAAA;AACA,IAAA,IAAI,CAAC,KAAA;AAAO,MAAA,OAAA;AAEZ,IAAA,MAAM,KAAQ,GAAA,IAAA,CAAK,OAAY,KAAA,IAAA,CAAK,QAAQ,aAAe,EAAA,iBAAA,CAAA;AAC3D,IAAA,IAAI,KAAO,EAAA;AAAE,MAAA,KAAA,CAAM,MAAO,EAAA,CAAA;AAAA,KAAS,MAAA;AAAE,MAAA,KAAA,CAAM,KAAM,EAAA,CAAA;AAAA,KAAE;AAAA,GACrD;AACF;;;;"}
|
|
@@ -46,8 +46,13 @@ declare class CountdownTimer extends Controller {
|
|
|
46
46
|
};
|
|
47
47
|
secondsValue: number;
|
|
48
48
|
private timer;
|
|
49
|
+
private remaining;
|
|
50
|
+
private startTime;
|
|
49
51
|
connect(): void;
|
|
50
52
|
disconnect(): void;
|
|
53
|
+
pause(): void;
|
|
54
|
+
resume(): void;
|
|
55
|
+
private setPlayState;
|
|
51
56
|
}
|
|
52
57
|
|
|
53
58
|
declare class Chart extends Controller<HTMLElement> {
|