haori-bootstrap 0.5.41 → 0.5.43
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.ja.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Haori.js Bootstrap は、Haori.js 向けの Bootstrap ベース UI 拡張ライブラリです。
|
|
4
4
|
|
|
5
|
-
Version: 0.5.
|
|
5
|
+
Version: 0.5.43
|
|
6
6
|
|
|
7
7
|
## 概要
|
|
8
8
|
|
|
@@ -41,9 +41,9 @@ npm install haori-bootstrap
|
|
|
41
41
|
rel="stylesheet"
|
|
42
42
|
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css"
|
|
43
43
|
/>
|
|
44
|
-
<script src="https://cdn.jsdelivr.net/npm/haori@0.
|
|
44
|
+
<script src="https://cdn.jsdelivr.net/npm/haori@0.48.1/dist/haori.iife.js"></script>
|
|
45
45
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js"></script>
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/haori-bootstrap@0.5.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/haori-bootstrap@0.5.43/dist/haori-bootstrap.iife.js"></script>
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
IIFE 版は、window.Haori と window.bootstrap が利用可能な場合に自動で有効化されます。
|
|
@@ -248,12 +248,12 @@ push 後に、そのタグから GitHub Release を published にします。公
|
|
|
248
248
|
次回 patch リリースの例:
|
|
249
249
|
|
|
250
250
|
```bash
|
|
251
|
-
# version が 0.5.
|
|
251
|
+
# version が 0.5.44 になる
|
|
252
252
|
npm version patch
|
|
253
253
|
git push origin main --follow-tags
|
|
254
254
|
```
|
|
255
255
|
|
|
256
|
-
その後、push 済みタグの GitHub Release を作成して published にします。例として次回は `0.5.
|
|
256
|
+
その後、push 済みタグの GitHub Release を作成して published にします。例として次回は `0.5.44` タグになります。
|
|
257
257
|
|
|
258
258
|
自動公開:
|
|
259
259
|
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Haori.js Bootstrap is a Bootstrap-based UI extension library for Haori.js.
|
|
4
4
|
|
|
5
|
-
Version: 0.5.
|
|
5
|
+
Version: 0.5.43
|
|
6
6
|
|
|
7
7
|
## Overview
|
|
8
8
|
|
|
@@ -41,9 +41,9 @@ Load dependencies in this order for browser direct loading:
|
|
|
41
41
|
rel="stylesheet"
|
|
42
42
|
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css"
|
|
43
43
|
/>
|
|
44
|
-
<script src="https://cdn.jsdelivr.net/npm/haori@0.
|
|
44
|
+
<script src="https://cdn.jsdelivr.net/npm/haori@0.48.1/dist/haori.iife.js"></script>
|
|
45
45
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js"></script>
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/haori-bootstrap@0.5.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/haori-bootstrap@0.5.43/dist/haori-bootstrap.iife.js"></script>
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
The IIFE build auto-enables when both window.Haori and window.bootstrap are available.
|
|
@@ -245,15 +245,15 @@ git push origin main --follow-tags
|
|
|
245
245
|
|
|
246
246
|
After pushing, publish a GitHub Release from the generated version tag. The release workflow then publishes the package and uploads `dist.zip` automatically.
|
|
247
247
|
|
|
248
|
-
Example next patch release after `0.5.
|
|
248
|
+
Example next patch release after `0.5.43`:
|
|
249
249
|
|
|
250
250
|
```bash
|
|
251
|
-
# version becomes 0.5.
|
|
251
|
+
# version becomes 0.5.44
|
|
252
252
|
npm version patch
|
|
253
253
|
git push origin main --follow-tags
|
|
254
254
|
```
|
|
255
255
|
|
|
256
|
-
Create and publish the GitHub Release for the pushed tag such as `0.5.
|
|
256
|
+
Create and publish the GitHub Release for the pushed tag such as `0.5.44`.
|
|
257
257
|
|
|
258
258
|
Release automation:
|
|
259
259
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
var HaoriBootstrap=(function(E){"use strict";function J(e){return typeof e=="function"}function X(e){return J(e?.Modal)?e?.Modal:void 0}function Q(e){return J(e?.Toast)?e?.Toast:void 0}function N(e){return!!X(e)}function _e(e){return!!Q(e)}function k(e,n,t){const o=X(t);if(o)return typeof o.getOrCreateInstance=="function"?o.getOrCreateInstance(e,n):new o(e,n)}function De(e,n,t){const o=Q(t);if(o)return typeof o.getOrCreateInstance=="function"?o.getOrCreateInstance(e,n):new o(e,n)}const Pe="data-haori-dialog",xe="data-haori-confirm",Oe="data-haori-dialog-title",Y="data-haori-dialog-ok",Z="data-haori-confirm-ok",ee="data-haori-confirm-cancel",qe="OK",$e="Cancel";let Ue=0;function te(){return{backdrop:"static",keyboard:!1}}function ne(e,n){if(n.dialogContainerSelector){const t=e.querySelector(n.dialogContainerSelector);if(t)return t}return e.body}function oe(e,n,t,o){const r=o.dialogTitle,i=e.createElement("div");i.className="modal fade",i.tabIndex=-1,i.setAttribute(t?xe:Pe,"true"),i.setAttribute("aria-hidden","true");const c=e.createElement("div");c.className="modal-dialog modal-dialog-centered";const a=e.createElement("div");if(a.className="modal-content",r){const b=`haori-dialog-title-${++Ue}`,I=e.createElement("div");I.className="modal-header";const A=e.createElement("h5");A.className="modal-title",A.id=b,A.setAttribute(Oe,"true"),A.textContent=r,I.appendChild(A),a.appendChild(I),i.setAttribute("aria-labelledby",b)}const f=e.createElement("div");f.className="modal-body";const l=e.createElement("p");l.className="mb-0",l.style.whiteSpace="pre-line",l.textContent=n,f.appendChild(l);const m=e.createElement("div");if(m.className="modal-footer",t){const b=e.createElement("button");b.type="button",b.className="btn btn-secondary",b.setAttribute(ee,"true"),b.textContent=o.dialogCancelLabel??$e,m.appendChild(b)}const d=e.createElement("button");return d.type="button",d.className="btn btn-primary",d.setAttribute(t?Z:Y,"true"),d.textContent=o.dialogOkLabel??qe,m.appendChild(d),a.append(f,m),c.appendChild(a),i.appendChild(c),i}function re(e){let n=!1,t=!1;return{requestClose:o=>{n||(n=!0,o?.(),t&&e.hide())},handleShown:()=>{t=!0,n&&e.hide()}}}function Fe(e,n){const t=globalThis.document,o=oe(t,e,!1,n);ne(t,n).appendChild(o);const r=k(o,te(),n.bootstrap);return r?new Promise((i,c)=>{const a=()=>{o.removeEventListener("shown.bs.modal",m),o.removeEventListener("hidden.bs.modal",f),o.remove(),r.dispose?.(),i()},f=()=>{a()},l=re(r),m=l.handleShown;o.querySelector(`[${Y}]`)?.addEventListener("click",()=>{l.requestClose()}),o.addEventListener("shown.bs.modal",m),o.addEventListener("hidden.bs.modal",f,{once:!0});try{r.show()}catch(b){o.removeEventListener("shown.bs.modal",m),o.removeEventListener("hidden.bs.modal",f),o.remove(),r.dispose?.(),c(b)}}):(o.remove(),Promise.reject(new Error("Bootstrap Modal is unavailable.")))}function ze(e,n){const t=globalThis.document,o=oe(t,e,!0,n);ne(t,n).appendChild(o);const r=k(o,te(),n.bootstrap);return r?new Promise((i,c)=>{let a=!1;const f=()=>{o.removeEventListener("shown.bs.modal",d),o.removeEventListener("hidden.bs.modal",l),o.remove(),r.dispose?.(),i(a)},l=()=>{f()},m=re(r),d=m.handleShown,b=o.querySelector(`[${Z}]`),I=o.querySelector(`[${ee}]`);b?.addEventListener("click",()=>{m.requestClose(()=>{a=!0})}),I?.addEventListener("click",()=>{m.requestClose(()=>{a=!1})}),o.addEventListener("shown.bs.modal",d),o.addEventListener("hidden.bs.modal",l,{once:!0});try{r.show()}catch(A){o.removeEventListener("shown.bs.modal",d),o.removeEventListener("hidden.bs.modal",l),o.remove(),r.dispose?.(),c(A)}}):(o.remove(),Promise.reject(new Error("Bootstrap Modal is unavailable.")))}const p="data-haori-owned",h="data-haori-message-container",w="data-haori-invalid-target",L="data-haori-valid-target";function S(e){return e instanceof HTMLInputElement&&(e.type==="checkbox"||e.type==="radio")}function v(e){return e instanceof HTMLInputElement&&e.type==="radio"}function M(e){return e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement}function H(e){return Array.from(e.children).find(n=>n instanceof HTMLElement&&n.getAttribute(h)==="true")}function ie(e,n){const t=e.createElement("div");return t.setAttribute(p,"true"),t.textContent=n,t}function se(e){return H(e)}function y(e){if(e.name){const n=e.form??e.ownerDocument,t=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(e.name):e.name.replace(/(["\\])/g,"\\$1"),o=Array.from(n.querySelectorAll(`input[type="radio"][name="${t}"]`));if(o.length>0)return o}return[e]}function We(e){const[n,...t]=e;if(!n)return;let o=n;for(;o;){if(t.every(r=>o?.contains(r)))return o;o=o.parentElement}}function U(e){const t=y(e).map(o=>o.closest(".form-check")).filter(o=>o instanceof HTMLElement);if(t.length>1){const o=We(t);if(o&&!t.includes(o))return o}return R(e)}function R(e){const n=e.closest(".form-check");return n instanceof HTMLElement?n:void 0}function ae(e){const n=e.nextElementSibling;if(n instanceof HTMLElement&&n.getAttribute(h)==="true")return n;const t=document.createElement("div");return t.className="invalid-feedback d-block",t.setAttribute(p,"true"),t.setAttribute(h,"true"),e.insertAdjacentElement("afterend",t),t}function Ge(e){const n=v(e)?U(e):R(e);if(!n)return ae(e);const t=H(n);if(t)return t;const o=document.createElement("div");return o.className="invalid-feedback d-block",o.setAttribute(p,"true"),o.setAttribute(h,"true"),n.appendChild(o),o}function Ke(e){const n=se(e);if(n)return n;const t=document.createElement("div");return t.className="alert alert-danger",t.setAttribute("role","alert"),t.setAttribute(p,"true"),t.setAttribute(h,"true"),e.insertAdjacentElement("afterbegin",t),t}function T(e){e.getAttribute(w)==="true"&&(e.classList.remove("is-invalid"),e.removeAttribute(w))}function g(e){e.getAttribute(L)==="true"&&(e.classList.remove("is-valid"),e.removeAttribute(L))}function le(e){switch(e){case"success":return"alert alert-success";case"warning":return"alert alert-warning";case"info":return"alert alert-info";default:return"alert alert-danger"}}function B(e){return e==="success"?"valid-feedback d-block":"invalid-feedback d-block"}function ce(e){(v(e)?y(e):[e]).forEach(t=>{t.classList.add("is-invalid"),t.setAttribute(w,"true")})}function Ve(e){(v(e)?y(e):[e]).forEach(t=>{T(t)})}function de(e,n){const t=e.nextElementSibling;if(t instanceof HTMLElement&&t.getAttribute(h)==="true")return t.className=B(n),t;const o=document.createElement("div");return o.className=B(n),o.setAttribute(p,"true"),o.setAttribute(h,"true"),e.insertAdjacentElement("afterend",o),o}function je(e,n){const t=v(e)?U(e):R(e);if(!t)return de(e,n);const o=H(t);if(o)return o.className=B(n),o;const r=document.createElement("div");return r.className=B(n),r.setAttribute(p,"true"),r.setAttribute(h,"true"),t.appendChild(r),r}function Je(e,n){const t=se(e);if(t)return t.className=le(n),t;const o=document.createElement("div");return o.className=le(n),o.setAttribute("role","alert"),o.setAttribute(p,"true"),o.setAttribute(h,"true"),e.insertAdjacentElement("afterbegin",o),o}function Xe(e,n){return(S(e)?Ge(e):M(e)?ae(e):Ke(e)).appendChild(ie(document,n)),S(e)?ce(e):M(e)&&(e.classList.add("is-invalid"),e.setAttribute(w,"true")),Promise.resolve()}function Qe(e,n,t){if((S(e)?je(e,t):M(e)?de(e,t):Je(e,t)).appendChild(ie(document,n)),S(e)){const r=v(e)?y(e):[e];t==="success"?r.forEach(i=>{T(i),i.classList.add("is-valid"),i.setAttribute(L,"true")}):!t||t==="error"?(r.forEach(i=>g(i)),ce(e)):r.forEach(i=>{g(i),T(i)})}else M(e)&&(t==="success"?(T(e),e.classList.add("is-valid"),e.setAttribute(L,"true")):!t||t==="error"?(g(e),e.classList.add("is-invalid"),e.setAttribute(w,"true")):(g(e),T(e)));return Promise.resolve()}function ue(e){if(S(e)){const r=v(e)?U(e):R(e);(r?H(r):void 0)?.remove(),Ve(e),(v(e)?y(e):[e]).forEach(a=>g(a))}else if(M(e)){const r=e.nextElementSibling;r instanceof HTMLElement&&r.getAttribute(h)==="true"&&r.remove(),T(e),g(e)}return e.querySelectorAll(`[${h}="true"]`).forEach(r=>{r.remove()}),e.querySelectorAll(`[${w}="true"]`).forEach(r=>{T(r)}),e.querySelectorAll(`[${L}="true"]`).forEach(r=>{g(r)}),Promise.resolve()}const F=new WeakSet;let _=!1,z;const fe=e=>{e.target instanceof HTMLElement&&F.add(e.target)},me=e=>{e.target instanceof HTMLElement&&F.delete(e.target)};function Ye(e=document){_||(_=!0,z=e,e.addEventListener("show.bs.modal",fe),e.addEventListener("shown.bs.modal",me))}function Ze(e=z??document){_&&(_=!1,e.removeEventListener("show.bs.modal",fe),e.removeEventListener("shown.bs.modal",me),z=void 0)}function be(e){return e.classList.contains("modal")?e:e.closest(".modal")}function he(e){e.tabIndex<0&&(e.tabIndex=-1),e.hasAttribute("aria-hidden")||e.setAttribute("aria-hidden","true")}function et(e,n){const t=be(e);if(!t)return Promise.reject(new Error('No ancestor ".modal" element was found for the target.'));he(t),ue(t);const o=k(t,void 0,n.bootstrap);return o?(o.show(),Promise.resolve()):Promise.reject(new Error("Bootstrap Modal is unavailable."))}function tt(e,n){const t=be(e);if(!t)return Promise.reject(new Error('No ancestor ".modal" element was found for the target.'));he(t);const o=k(t,void 0,n.bootstrap);return o?F.has(t)?(t.addEventListener("shown.bs.modal",()=>{o.hide()},{once:!0}),Promise.resolve()):(o.hide(),Promise.resolve()):Promise.reject(new Error("Bootstrap Modal is unavailable."))}const Ee="data-haori-toast-container",nt="data-haori-toast",ot="data-haori-toast-level",rt="data-haori-toast-accent",it="data-haori-toast-dismiss",pe={"top-start":"top-0 start-0","top-center":"top-0 start-50 translate-middle-x","top-end":"top-0 end-0","bottom-start":"bottom-0 start-0","bottom-center":"bottom-0 start-50 translate-middle-x","bottom-end":"bottom-0 end-0"};function st(e){switch(e){case"success":return{accentClassName:"bg-success",level:"success"};case"warning":return{accentClassName:"bg-warning",level:"warning"};case"error":return{accentClassName:"bg-danger",level:"error"};default:return{accentClassName:"bg-info",level:"info"}}}function at(e,n){if(n.toastContainerSelector){const t=e.querySelector(n.toastContainerSelector);if(t)return t}return e.body}function lt(e,n){const t=at(e,n),o=pe[n.toastPosition??"bottom-end"],r=t.querySelector(`[${Ee}="true"]`);if(r){const c=Object.values(pe).flatMap(a=>a.split(" "));return r.classList.remove(...c),r.classList.add(...o.split(" ")),r}const i=e.createElement("div");return i.className=`toast-container position-fixed ${o} p-3`,i.setAttribute(Ee,"true"),t.appendChild(i),i}function ct(e,n,t){const o=globalThis.document,r=st(n),i=o.createElement("div");i.className="toast border bg-body text-body shadow-sm",i.setAttribute("role","status"),i.setAttribute("aria-live","polite"),i.setAttribute("aria-atomic","true"),i.setAttribute(nt,"true"),i.setAttribute(ot,r.level);const c=o.createElement("div");c.className="d-flex align-items-stretch";const a=o.createElement("div");a.className=`flex-shrink-0 rounded-start ${r.accentClassName}`,a.style.width="0.375rem",a.setAttribute(rt,"true");const f=o.createElement("div");f.className="toast-body",f.style.whiteSpace="pre-line",f.textContent=e;const l=o.createElement("button");l.type="button",l.className="btn-close me-2 m-auto flex-shrink-0",l.setAttribute("aria-label","Close"),l.setAttribute(it,"true"),c.appendChild(a),c.appendChild(f),c.appendChild(l),i.appendChild(c),lt(o,t).appendChild(i);const m=t.toastDelay!==void 0?{delay:t.toastDelay}:void 0,d=De(i,m,t.bootstrap);if(!d)return i.remove(),Promise.reject(new Error("Bootstrap Toast is unavailable."));l.addEventListener("click",()=>{d.hide?.()}),i.addEventListener("hidden.bs.toast",()=>{i.remove(),d.dispose?.()},{once:!0});try{return d.show(),Promise.resolve()}catch(b){return i.remove(),d.dispose?.(),Promise.reject(b)}}let u={options:{fallbackToNative:!0}};function C(e){return e?String(e).replace(/\\n/g,`
|
|
2
|
-
`):""}function ve(){return globalThis.window}function W(e){return Promise.resolve(e).then(()=>{})}function D(e){const n=u.originalHaori?.[e];return typeof n=="function"?n:void 0}function P(e){console.warn(`[haori-bootstrap] ${e} skipped because Bootstrap support is unavailable.`)}function Te(e){const n=C(e),t=D("dialog");if(t)return W(t(n));const o=ve();return u.options.fallbackToNative&&typeof o?.alert=="function"?(o.alert(n),Promise.resolve()):(P("dialog"),Promise.resolve())}function ge(e){const n=C(e),t=D("confirm");if(t)return Promise.resolve(t(n)).then(r=>!!r);const o=ve();return u.options.fallbackToNative&&typeof o?.confirm=="function"?Promise.resolve(o.confirm(n)):(P("confirm"),Promise.resolve(!1))}function Ae(e,n){const t=C(e),o=D("toast");return o?W(o(t,n)):(P("toast"),Promise.resolve())}function x(e,n){const t=D(e);return t?W(t(n)):(P(e),Promise.resolve())}function dt(e){u=e}class we{static dialog(n){const t=C(n);return N(u.options.bootstrap)?Fe(t,u.options).catch(()=>Te(t)):Te(t)}static confirm(n){const t=C(n);return N(u.options.bootstrap)?ze(t,u.options).catch(()=>ge(t)):ge(t)}static toast(n,t){const o=C(n);return _e(u.options.bootstrap)?ct(o,t,u.options).catch(()=>Ae(o,t)):Ae(o,t)}static openDialog(n){return N(u.options.bootstrap)?et(n,u.options).catch(()=>x("openDialog",n)):x("openDialog",n)}static closeDialog(n){return N(u.options.bootstrap)?tt(n,u.options).catch(()=>x("closeDialog",n)):x("closeDialog",n)}static addErrorMessage(n,t){return Xe(n,t)}static addMessage(n,t,o){return Qe(n,t,o)}static clearMessages(n){return ue(n)}}const ut="haori-bootstrap:collapse:",O="data-haori-persist";let q=!1,$,G;function Ce(e){return ut+e}function ft(e){try{const n=window.sessionStorage.getItem(Ce(e));return n==="shown"||n==="hidden"?n:void 0}catch{return}}function mt(e,n){try{window.sessionStorage.setItem(Ce(e),n)}catch{}}function Le(e,n){const t=e.id,o=[`[data-bs-toggle="collapse"][data-bs-target="#${t}"]`];if(t&&o.push(`[data-bs-toggle="collapse"][href="#${t}"]`),!t)return;e.ownerDocument.querySelectorAll(o.join(",")).forEach(i=>{i.setAttribute("aria-expanded",n?"true":"false"),i.classList.toggle("collapsed",!n)})}function Se(e){const n=e.getAttribute(O);if(!n)return;const t=ft(n);if(!t)return;const o=e.classList.contains("show");t==="shown"&&!o?(e.classList.add("show"),Le(e,!0)):t==="hidden"&&o&&(e.classList.remove("show"),Le(e,!1))}function Me(e){e instanceof HTMLElement&&e.hasAttribute(O)&&Se(e),e.querySelectorAll(`[${O}]`).forEach(Se)}function ye(e,n){const t=e.target;if(!(t instanceof HTMLElement))return;const o=t.getAttribute(O);o&&mt(o,n)}const Ie=e=>ye(e,"shown"),Ne=e=>ye(e,"hidden");function bt(e=document){if(q)return;q=!0,G=e,e.addEventListener("shown.bs.collapse",Ie),e.addEventListener("hidden.bs.collapse",Ne);const n=()=>{Me(e),$=new MutationObserver(t=>{for(const o of t)o.addedNodes.forEach(r=>{r instanceof HTMLElement&&Me(r)})}),e.body&&$.observe(e.body,{childList:!0,subtree:!0})};e.body?n():e.addEventListener("DOMContentLoaded",n,{once:!0})}function ht(e=G??document){q&&(q=!1,e.removeEventListener("shown.bs.collapse",Ie),e.removeEventListener("hidden.bs.collapse",Ne),$?.disconnect(),$=void 0,G=void 0)}const Et=[{attribute:"dialog-ok-label",apply:(e,n)=>{e.dialogOkLabel=n}},{attribute:"dialog-cancel-label",apply:(e,n)=>{e.dialogCancelLabel=n}}],pt=typeof document<"u"&&document.currentScript instanceof HTMLScriptElement?document.currentScript:null;function K(e,n){const t=e?.getAttribute(n)??null;if(!(t===null||t.trim()===""))return t}function vt(e=typeof document>"u"?null:document,n=pt){const t={};for(const{attribute:o,apply:r}of Et){const i=K(n,`data-${o}`)??K(e?.documentElement??null,`data-haori-${o}`)??K(e?.body??null,`data-haori-${o}`);i!==void 0&&r(t,i)}return t}const V={fallbackToNative:!0},ke=new Set(["dialog","confirm","toast","openDialog","closeDialog","addErrorMessage","addMessage","clearMessages"]);function Tt(e){const n=we;return new Proxy(e,{get(t,o,r){return typeof o=="string"&&ke.has(o)?n[o]:Reflect.get(t,o,r)},has(t,o){return typeof o=="string"&&ke.has(o)?!0:Reflect.has(t,o)}})}const s={installed:!1,options:V};function j(){return globalThis.window}function gt(e,n){const t=vt();return{bootstrap:e.bootstrap??n?.bootstrap,fallbackToNative:e.fallbackToNative??V.fallbackToNative,runtime:e.runtime??s.options.runtime??n?.Haori?.runtime,toastContainerSelector:e.toastContainerSelector??s.options.toastContainerSelector,dialogContainerSelector:e.dialogContainerSelector??s.options.dialogContainerSelector,dialogTitle:e.dialogTitle??s.options.dialogTitle,dialogOkLabel:e.dialogOkLabel??s.options.dialogOkLabel??t.dialogOkLabel,dialogCancelLabel:e.dialogCancelLabel??s.options.dialogCancelLabel??t.dialogCancelLabel,toastPosition:e.toastPosition??s.options.toastPosition,toastDelay:e.toastDelay??s.options.toastDelay}}function He(e=j()){return!!(e?.Haori&&e.bootstrap)}function Re(e={}){const n=j();if(!n?.Haori)throw new Error("window.Haori is required before calling install().");if(s.originalHaori||(s.originalHaori=n.Haori,s.originalRuntime=n.Haori.runtime),s.options=gt(e,n),s.options.runtime){const t=s.originalHaori??n.Haori;typeof t.setRuntime=="function"?t.setRuntime(s.options.runtime):console.warn("[haori-bootstrap] Haori.setRuntime が利用できません。runtime 設定は無視されます。")}dt({originalHaori:s.originalHaori,options:s.options}),n.Haori=Tt(s.originalHaori),bt(),Ye(),s.installed=!0}function At(){const e=j();if(!e||!s.originalHaori)return;const n=s.originalHaori;typeof n.setRuntime=="function"?n.setRuntime(s.originalRuntime):n.runtime=s.originalRuntime,e.Haori=s.originalHaori,ht(),Ze(),s.installed=!1,s.originalHaori=void 0,s.originalRuntime=void 0,s.options=V}function wt(){return s.installed}const Be="__haoriJsBootstrapAutoEnabled__";function Ct(){return globalThis.window}function Lt(e){return!!e[Be]}function St(e){e[Be]=!0}function Mt(){const e=Ct();if(!(!e||Lt(e))){if(!He(e)){console.warn("[haori-bootstrap] Auto-enable skipped because window.Haori or window.bootstrap is missing.");return}try{Re({bootstrap:e.bootstrap}),St(e)}catch(n){console.warn("[haori-bootstrap] Auto-enable failed.",n)}}}Mt();const yt="0.5.
|
|
2
|
+
`):""}function ve(){return globalThis.window}function W(e){return Promise.resolve(e).then(()=>{})}function D(e){const n=u.originalHaori?.[e];return typeof n=="function"?n:void 0}function P(e){console.warn(`[haori-bootstrap] ${e} skipped because Bootstrap support is unavailable.`)}function Te(e){const n=C(e),t=D("dialog");if(t)return W(t(n));const o=ve();return u.options.fallbackToNative&&typeof o?.alert=="function"?(o.alert(n),Promise.resolve()):(P("dialog"),Promise.resolve())}function ge(e){const n=C(e),t=D("confirm");if(t)return Promise.resolve(t(n)).then(r=>!!r);const o=ve();return u.options.fallbackToNative&&typeof o?.confirm=="function"?Promise.resolve(o.confirm(n)):(P("confirm"),Promise.resolve(!1))}function Ae(e,n){const t=C(e),o=D("toast");return o?W(o(t,n)):(P("toast"),Promise.resolve())}function x(e,n){const t=D(e);return t?W(t(n)):(P(e),Promise.resolve())}function dt(e){u=e}class we{static dialog(n){const t=C(n);return N(u.options.bootstrap)?Fe(t,u.options).catch(()=>Te(t)):Te(t)}static confirm(n){const t=C(n);return N(u.options.bootstrap)?ze(t,u.options).catch(()=>ge(t)):ge(t)}static toast(n,t){const o=C(n);return _e(u.options.bootstrap)?ct(o,t,u.options).catch(()=>Ae(o,t)):Ae(o,t)}static openDialog(n){return N(u.options.bootstrap)?et(n,u.options).catch(()=>x("openDialog",n)):x("openDialog",n)}static closeDialog(n){return N(u.options.bootstrap)?tt(n,u.options).catch(()=>x("closeDialog",n)):x("closeDialog",n)}static addErrorMessage(n,t){return Xe(n,t)}static addMessage(n,t,o){return Qe(n,t,o)}static clearMessages(n){return ue(n)}}const ut="haori-bootstrap:collapse:",O="data-haori-persist";let q=!1,$,G;function Ce(e){return ut+e}function ft(e){try{const n=window.sessionStorage.getItem(Ce(e));return n==="shown"||n==="hidden"?n:void 0}catch{return}}function mt(e,n){try{window.sessionStorage.setItem(Ce(e),n)}catch{}}function Le(e,n){const t=e.id,o=[`[data-bs-toggle="collapse"][data-bs-target="#${t}"]`];if(t&&o.push(`[data-bs-toggle="collapse"][href="#${t}"]`),!t)return;e.ownerDocument.querySelectorAll(o.join(",")).forEach(i=>{i.setAttribute("aria-expanded",n?"true":"false"),i.classList.toggle("collapsed",!n)})}function Se(e){const n=e.getAttribute(O);if(!n)return;const t=ft(n);if(!t)return;const o=e.classList.contains("show");t==="shown"&&!o?(e.classList.add("show"),Le(e,!0)):t==="hidden"&&o&&(e.classList.remove("show"),Le(e,!1))}function Me(e){e instanceof HTMLElement&&e.hasAttribute(O)&&Se(e),e.querySelectorAll(`[${O}]`).forEach(Se)}function ye(e,n){const t=e.target;if(!(t instanceof HTMLElement))return;const o=t.getAttribute(O);o&&mt(o,n)}const Ie=e=>ye(e,"shown"),Ne=e=>ye(e,"hidden");function bt(e=document){if(q)return;q=!0,G=e,e.addEventListener("shown.bs.collapse",Ie),e.addEventListener("hidden.bs.collapse",Ne);const n=()=>{Me(e),$=new MutationObserver(t=>{for(const o of t)o.addedNodes.forEach(r=>{r instanceof HTMLElement&&Me(r)})}),e.body&&$.observe(e.body,{childList:!0,subtree:!0})};e.body?n():e.addEventListener("DOMContentLoaded",n,{once:!0})}function ht(e=G??document){q&&(q=!1,e.removeEventListener("shown.bs.collapse",Ie),e.removeEventListener("hidden.bs.collapse",Ne),$?.disconnect(),$=void 0,G=void 0)}const Et=[{attribute:"dialog-ok-label",apply:(e,n)=>{e.dialogOkLabel=n}},{attribute:"dialog-cancel-label",apply:(e,n)=>{e.dialogCancelLabel=n}}],pt=typeof document<"u"&&document.currentScript instanceof HTMLScriptElement?document.currentScript:null;function K(e,n){const t=e?.getAttribute(n)??null;if(!(t===null||t.trim()===""))return t}function vt(e=typeof document>"u"?null:document,n=pt){const t={};for(const{attribute:o,apply:r}of Et){const i=K(n,`data-${o}`)??K(e?.documentElement??null,`data-haori-${o}`)??K(e?.body??null,`data-haori-${o}`);i!==void 0&&r(t,i)}return t}const V={fallbackToNative:!0},ke=new Set(["dialog","confirm","toast","openDialog","closeDialog","addErrorMessage","addMessage","clearMessages"]);function Tt(e){const n=we;return new Proxy(e,{get(t,o,r){return typeof o=="string"&&ke.has(o)?n[o]:Reflect.get(t,o,r)},has(t,o){return typeof o=="string"&&ke.has(o)?!0:Reflect.has(t,o)}})}const s={installed:!1,options:V};function j(){return globalThis.window}function gt(e,n){const t=vt();return{bootstrap:e.bootstrap??n?.bootstrap,fallbackToNative:e.fallbackToNative??V.fallbackToNative,runtime:e.runtime??s.options.runtime??n?.Haori?.runtime,toastContainerSelector:e.toastContainerSelector??s.options.toastContainerSelector,dialogContainerSelector:e.dialogContainerSelector??s.options.dialogContainerSelector,dialogTitle:e.dialogTitle??s.options.dialogTitle,dialogOkLabel:e.dialogOkLabel??s.options.dialogOkLabel??t.dialogOkLabel,dialogCancelLabel:e.dialogCancelLabel??s.options.dialogCancelLabel??t.dialogCancelLabel,toastPosition:e.toastPosition??s.options.toastPosition,toastDelay:e.toastDelay??s.options.toastDelay}}function He(e=j()){return!!(e?.Haori&&e.bootstrap)}function Re(e={}){const n=j();if(!n?.Haori)throw new Error("window.Haori is required before calling install().");if(s.originalHaori||(s.originalHaori=n.Haori,s.originalRuntime=n.Haori.runtime),s.options=gt(e,n),s.options.runtime){const t=s.originalHaori??n.Haori;typeof t.setRuntime=="function"?t.setRuntime(s.options.runtime):console.warn("[haori-bootstrap] Haori.setRuntime が利用できません。runtime 設定は無視されます。")}dt({originalHaori:s.originalHaori,options:s.options}),n.Haori=Tt(s.originalHaori),bt(),Ye(),s.installed=!0}function At(){const e=j();if(!e||!s.originalHaori)return;const n=s.originalHaori;typeof n.setRuntime=="function"?n.setRuntime(s.originalRuntime):n.runtime=s.originalRuntime,e.Haori=s.originalHaori,ht(),Ze(),s.installed=!1,s.originalHaori=void 0,s.originalRuntime=void 0,s.options=V}function wt(){return s.installed}const Be="__haoriJsBootstrapAutoEnabled__";function Ct(){return globalThis.window}function Lt(e){return!!e[Be]}function St(e){e[Be]=!0}function Mt(){const e=Ct();if(!(!e||Lt(e))){if(!He(e)){console.warn("[haori-bootstrap] Auto-enable skipped because window.Haori or window.bootstrap is missing.");return}try{Re({bootstrap:e.bootstrap}),St(e)}catch(n){console.warn("[haori-bootstrap] Auto-enable failed.",n)}}}Mt();const yt="0.5.43";return E.BootstrapHaori=we,E.hasAutoEnablePrerequisites=He,E.install=Re,E.isInstalled=wt,E.uninstall=At,E.version=yt,Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}),E})({});
|
|
3
3
|
//# sourceMappingURL=haori-bootstrap.iife.js.map
|