haori-bootstrap 0.5.58 → 0.5.59
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.59
|
|
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.59.
|
|
44
|
+
<script src="https://cdn.jsdelivr.net/npm/haori@0.59.2/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.59/dist/haori-bootstrap.iife.js"></script>
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
IIFE 版は、window.Haori と window.bootstrap が利用可能な場合に自動で有効化されます。
|
|
@@ -314,12 +314,12 @@ push 後に、そのタグから GitHub Release を published にします。公
|
|
|
314
314
|
次回 patch リリースの例:
|
|
315
315
|
|
|
316
316
|
```bash
|
|
317
|
-
# version が 0.5.
|
|
317
|
+
# version が 0.5.60 になる
|
|
318
318
|
npm version patch
|
|
319
319
|
git push origin main --follow-tags
|
|
320
320
|
```
|
|
321
321
|
|
|
322
|
-
その後、push 済みタグの GitHub Release を作成して published にします。例として次回は `0.5.
|
|
322
|
+
その後、push 済みタグの GitHub Release を作成して published にします。例として次回は `0.5.60` タグになります。
|
|
323
323
|
|
|
324
324
|
自動公開:
|
|
325
325
|
|
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.59
|
|
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.59.
|
|
44
|
+
<script src="https://cdn.jsdelivr.net/npm/haori@0.59.2/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.59/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.
|
|
@@ -311,15 +311,15 @@ git push origin main --follow-tags
|
|
|
311
311
|
|
|
312
312
|
After pushing, publish a GitHub Release from the generated version tag. The release workflow then publishes the package and uploads `dist.zip` automatically.
|
|
313
313
|
|
|
314
|
-
Example next patch release after `0.5.
|
|
314
|
+
Example next patch release after `0.5.59`:
|
|
315
315
|
|
|
316
316
|
```bash
|
|
317
|
-
# version becomes 0.5.
|
|
317
|
+
# version becomes 0.5.60
|
|
318
318
|
npm version patch
|
|
319
319
|
git push origin main --follow-tags
|
|
320
320
|
```
|
|
321
321
|
|
|
322
|
-
Create and publish the GitHub Release for the pushed tag such as `0.5.
|
|
322
|
+
Create and publish the GitHub Release for the pushed tag such as `0.5.60`.
|
|
323
323
|
|
|
324
324
|
Release automation:
|
|
325
325
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
var HaoriBootstrap=(function(E){"use strict";function Z(e){return typeof e=="function"}function ee(e){return Z(e?.Modal)?e?.Modal:void 0}function te(e){return Z(e?.Toast)?e?.Toast:void 0}function N(e){return!!ee(e)}function Ge(e){return!!te(e)}function H(e,t,n){const o=ee(n);if(o)return typeof o.getOrCreateInstance=="function"?o.getOrCreateInstance(e,t):new o(e,t)}function Ke(e,t,n){const o=te(n);if(o)return typeof o.getOrCreateInstance=="function"?o.getOrCreateInstance(e,t):new o(e,t)}const Ve="data-haori-dialog",je="data-haori-confirm",Je="data-haori-dialog-title",ne="data-haori-dialog-ok",oe="data-haori-confirm-ok",re="data-haori-confirm-cancel",Xe="OK",Qe="Cancel";let Ye=0;function se(){return{backdrop:"static",keyboard:!1}}function ie(e,t){if(t.dialogContainerSelector){const n=e.querySelector(t.dialogContainerSelector);if(n)return n}return e.body}function ae(e,t,n,o){const r=o.dialogTitle,s=e.createElement("div");s.className="modal fade",s.tabIndex=-1,s.setAttribute(n?je:Ve,"true"),s.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-${++Ye}`,I=e.createElement("div");I.className="modal-header";const T=e.createElement("h5");T.className="modal-title",T.id=b,T.setAttribute(Je,"true"),T.textContent=r,I.appendChild(T),a.appendChild(I),s.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=t,f.appendChild(l);const m=e.createElement("div");if(m.className="modal-footer",n){const b=e.createElement("button");b.type="button",b.className="btn btn-secondary",b.setAttribute(re,"true"),b.textContent=o.dialogCancelLabel??Qe,m.appendChild(b)}const d=e.createElement("button");return d.type="button",d.className="btn btn-primary",d.setAttribute(n?oe:ne,"true"),d.textContent=o.dialogOkLabel??Xe,m.appendChild(d),a.append(f,m),c.appendChild(a),s.appendChild(c),s}function le(e){let t=!1,n=!1;return{requestClose:o=>{t||(t=!0,o?.(),n&&e.hide())},handleShown:()=>{n=!0,t&&e.hide()}}}function Ze(e,t){const n=globalThis.document,o=ae(n,e,!1,t);ie(n,t).appendChild(o);const r=H(o,se(),t.bootstrap);return r?new Promise((s,c)=>{const a=()=>{o.removeEventListener("shown.bs.modal",m),o.removeEventListener("hidden.bs.modal",f),o.remove(),r.dispose?.(),s()},f=()=>{a()},l=le(r),m=l.handleShown;o.querySelector(`[${ne}]`)?.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 et(e,t){const n=globalThis.document,o=ae(n,e,!0,t);ie(n,t).appendChild(o);const r=H(o,se(),t.bootstrap);return r?new Promise((s,c)=>{let a=!1;const f=()=>{o.removeEventListener("shown.bs.modal",d),o.removeEventListener("hidden.bs.modal",l),o.remove(),r.dispose?.(),s(a)},l=()=>{f()},m=le(r),d=m.handleShown,b=o.querySelector(`[${oe}]`),I=o.querySelector(`[${re}]`);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(T){o.removeEventListener("shown.bs.modal",d),o.removeEventListener("hidden.bs.modal",l),o.remove(),r.dispose?.(),c(T)}}):(o.remove(),Promise.reject(new Error("Bootstrap Modal is unavailable.")))}const v="data-haori-owned",h="data-haori-message-container",w="data-haori-invalid-target",L="data-haori-valid-target",tt=new Set(["button","a","area","br","col","embed","hr","img","source","track","wbr"]);function S(e){return e instanceof HTMLInputElement&&(e.type==="checkbox"||e.type==="radio")}function p(e){return e instanceof HTMLInputElement&&e.type==="radio"}function M(e){return e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement}function F(e){return tt.has(e.localName)}function ce(e){const t=e.nextElementSibling;return t instanceof HTMLElement&&t.getAttribute(h)==="true"?t:void 0}function k(e){return Array.from(e.children).find(t=>t instanceof HTMLElement&&t.getAttribute(h)==="true")}function de(e,t){const n=e.createElement("div");return n.setAttribute(v,"true"),n.textContent=t,n}function ue(e){return F(e)?ce(e):k(e)}function fe(e,t){e.insertAdjacentElement(F(e)?"afterend":"afterbegin",t)}function y(e){if(e.name){const t=e.form??e.ownerDocument,n=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(e.name):e.name.replace(/(["\\])/g,"\\$1"),o=Array.from(t.querySelectorAll(`input[type="radio"][name="${n}"]`));if(o.length>0)return o}return[e]}function nt(e){const[t,...n]=e;if(!t)return;let o=t;for(;o;){if(n.every(r=>o?.contains(r)))return o;o=o.parentElement}}function W(e){const n=y(e).map(o=>o.closest(".form-check")).filter(o=>o instanceof HTMLElement);if(n.length>1){const o=nt(n);if(o&&!n.includes(o))return o}return R(e)}function R(e){const t=e.closest(".form-check");return t instanceof HTMLElement?t:void 0}function me(e){const t=e.nextElementSibling;if(t instanceof HTMLElement&&t.getAttribute(h)==="true")return t;const n=document.createElement("div");return n.className="invalid-feedback d-block",n.setAttribute(v,"true"),n.setAttribute(h,"true"),e.insertAdjacentElement("afterend",n),n}function ot(e){const t=p(e)?W(e):R(e);if(!t)return me(e);const n=k(t);if(n)return n;const o=document.createElement("div");return o.className="invalid-feedback d-block",o.setAttribute(v,"true"),o.setAttribute(h,"true"),t.appendChild(o),o}function rt(e){const t=ue(e);if(t)return t;const n=document.createElement("div");return n.className="alert alert-danger",n.setAttribute("role","alert"),n.setAttribute(v,"true"),n.setAttribute(h,"true"),fe(e,n),n}function g(e){e.getAttribute(w)==="true"&&(e.classList.remove("is-invalid"),e.removeAttribute(w))}function A(e){e.getAttribute(L)==="true"&&(e.classList.remove("is-valid"),e.removeAttribute(L))}function be(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 D(e){return e==="success"?"valid-feedback d-block":"invalid-feedback d-block"}function he(e){(p(e)?y(e):[e]).forEach(n=>{n.classList.add("is-invalid"),n.setAttribute(w,"true")})}function st(e){(p(e)?y(e):[e]).forEach(n=>{g(n)})}function Ee(e,t){const n=e.nextElementSibling;if(n instanceof HTMLElement&&n.getAttribute(h)==="true")return n.className=D(t),n;const o=document.createElement("div");return o.className=D(t),o.setAttribute(v,"true"),o.setAttribute(h,"true"),e.insertAdjacentElement("afterend",o),o}function it(e,t){const n=p(e)?W(e):R(e);if(!n)return Ee(e,t);const o=k(n);if(o)return o.className=D(t),o;const r=document.createElement("div");return r.className=D(t),r.setAttribute(v,"true"),r.setAttribute(h,"true"),n.appendChild(r),r}function at(e,t){const n=ue(e);if(n)return n.className=be(t),n;const o=document.createElement("div");return o.className=be(t),o.setAttribute("role","alert"),o.setAttribute(v,"true"),o.setAttribute(h,"true"),fe(e,o),o}function lt(e,t){return(S(e)?ot(e):M(e)?me(e):rt(e)).appendChild(de(document,t)),S(e)?he(e):M(e)&&(e.classList.add("is-invalid"),e.setAttribute(w,"true")),Promise.resolve()}function ct(e,t,n){if((S(e)?it(e,n):M(e)?Ee(e,n):at(e,n)).appendChild(de(document,t)),S(e)){const r=p(e)?y(e):[e];n==="success"?r.forEach(s=>{g(s),s.classList.add("is-valid"),s.setAttribute(L,"true")}):!n||n==="error"?(r.forEach(s=>A(s)),he(e)):r.forEach(s=>{A(s),g(s)})}else M(e)&&(n==="success"?(g(e),e.classList.add("is-valid"),e.setAttribute(L,"true")):!n||n==="error"?(A(e),e.classList.add("is-invalid"),e.setAttribute(w,"true")):(A(e),g(e)));return Promise.resolve()}function ve(e){if(S(e)){const r=p(e)?W(e):R(e);(r?k(r):void 0)?.remove(),st(e),(p(e)?y(e):[e]).forEach(a=>A(a))}else if(M(e)){const r=e.nextElementSibling;r instanceof HTMLElement&&r.getAttribute(h)==="true"&&r.remove(),g(e),A(e)}else F(e)&&ce(e)?.remove();return e.querySelectorAll(`[${h}="true"]`).forEach(r=>{r.remove()}),e.querySelectorAll(`[${w}="true"]`).forEach(r=>{g(r)}),e.querySelectorAll(`[${L}="true"]`).forEach(r=>{A(r)}),Promise.resolve()}const z=new WeakSet,dt="data-haori-dismiss-lock",G=new WeakSet;let _=null,K=new WeakMap,B=!1,V;function pe(e){return Array.from(e.ownerDocument.querySelectorAll(".modal.show")).filter(t=>t!==e)}const ge=e=>{e.target instanceof HTMLElement&&(_=e.target)},Ae=e=>{if(!(e.target instanceof HTMLElement))return;const t=e.target;z.add(t),_&&K.set(t,_)},Te=e=>{if(!(e.target instanceof HTMLElement))return;const t=e.target;z.delete(t),t.getAttribute("data-bs-focus")!=="false"&&pe(t).length>0&&!t.contains(t.ownerDocument.activeElement)&&t.focus()},we=e=>{if(!(e.target instanceof HTMLElement))return;const t=e.target,n=K.get(t),o=pe(t),r=t.ownerDocument.activeElement;o.length===0||o.some(s=>s.contains(r))||n&&o.some(s=>s.contains(n))&&(n.focus(),t.ownerDocument.activeElement===n)||o[o.length-1].focus()},Ce=e=>{const t=e.target;t instanceof HTMLElement&&t.hasAttribute(dt)&&!G.has(t)&&e.preventDefault()};function Le(e,t){G.add(e);try{t.hide()}finally{G.delete(e)}}function ut(e=document){B||(B=!0,V=e,e.addEventListener("focusin",ge),e.addEventListener("show.bs.modal",Ae),e.addEventListener("shown.bs.modal",Te),e.addEventListener("hide.bs.modal",Ce),e.addEventListener("hidden.bs.modal",we))}function ft(e=V??document){B&&(B=!1,e.removeEventListener("focusin",ge),e.removeEventListener("show.bs.modal",Ae),e.removeEventListener("shown.bs.modal",Te),e.removeEventListener("hide.bs.modal",Ce),e.removeEventListener("hidden.bs.modal",we),V=void 0,_=null,K=new WeakMap)}function Se(e){return e.classList.contains("modal")?e:e.closest(".modal")}function Me(e){e.tabIndex<0&&(e.tabIndex=-1),e.hasAttribute("aria-hidden")||e.setAttribute("aria-hidden","true")}function mt(e,t){const n=Se(e);if(!n)return Promise.reject(new Error('No ancestor ".modal" element was found for the target.'));Me(n),ve(n);const o=H(n,void 0,t.bootstrap);return o?(o.show(),Promise.resolve()):Promise.reject(new Error("Bootstrap Modal is unavailable."))}function bt(e,t){const n=Se(e);if(!n)return Promise.reject(new Error('No ancestor ".modal" element was found for the target.'));Me(n);const o=H(n,void 0,t.bootstrap);return o?z.has(n)?(n.addEventListener("shown.bs.modal",()=>{Le(n,o)},{once:!0}),Promise.resolve()):(Le(n,o),Promise.resolve()):Promise.reject(new Error("Bootstrap Modal is unavailable."))}const ye="data-haori-toast-container",ht="data-haori-toast",Et="data-haori-toast-level",vt="data-haori-toast-accent",pt="data-haori-toast-dismiss",Ie={"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 gt(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,t){if(t.toastContainerSelector){const n=e.querySelector(t.toastContainerSelector);if(n)return n}return e.body}function Tt(e,t){const n=At(e,t),o=Ie[t.toastPosition??"bottom-end"],r=n.querySelector(`[${ye}="true"]`);if(r){const c=Object.values(Ie).flatMap(a=>a.split(" "));return r.classList.remove(...c),r.classList.add(...o.split(" ")),r}const s=e.createElement("div");return s.className=`toast-container position-fixed ${o} p-3`,s.setAttribute(ye,"true"),n.appendChild(s),s}function wt(e,t,n){const o=globalThis.document,r=gt(t),s=o.createElement("div");s.className="toast border bg-body text-body shadow-sm",s.setAttribute("role","status"),s.setAttribute("aria-live","polite"),s.setAttribute("aria-atomic","true"),s.setAttribute(ht,"true"),s.setAttribute(Et,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(vt,"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(pt,"true"),c.appendChild(a),c.appendChild(f),c.appendChild(l),s.appendChild(c),Tt(o,n).appendChild(s);const m=n.toastDelay!==void 0?{delay:n.toastDelay}:void 0,d=Ke(s,m,n.bootstrap);if(!d)return s.remove(),Promise.reject(new Error("Bootstrap Toast is unavailable."));l.addEventListener("click",()=>{d.hide?.()}),s.addEventListener("hidden.bs.toast",()=>{s.remove(),d.dispose?.()},{once:!0});try{return d.show(),Promise.resolve()}catch(b){return s.remove(),d.dispose?.(),Promise.reject(b)}}let u={options:{fallbackToNative:!0}};function C(e){return e?String(e).replace(/\\n/g,`
|
|
2
|
-
`):""}function Ne(){return globalThis.window}function j(e){return Promise.resolve(e).then(()=>{})}function P(e){const t=u.originalHaori?.[e];return typeof t=="function"?t:void 0}function O(e){console.warn(`[haori-bootstrap] ${e} skipped because Bootstrap support is unavailable.`)}function He(e){const t=C(e),n=P("dialog");if(n)return j(n(t));const o=Ne();return u.options.fallbackToNative&&typeof o?.alert=="function"?(o.alert(t),Promise.resolve()):(O("dialog"),Promise.resolve())}function ke(e){const t=C(e),n=P("confirm");if(n)return Promise.resolve(n(t)).then(r=>!!r);const o=Ne();return u.options.fallbackToNative&&typeof o?.confirm=="function"?Promise.resolve(o.confirm(t)):(O("confirm"),Promise.resolve(!1))}function Re(e,t){const n=C(e),o=P("toast");return o?j(o(n,t)):(O("toast"),Promise.resolve())}function x(e,t){const n=P(e);return n?j(n(t)):(O(e),Promise.resolve())}function Ct(e){u=e}class De{static dialog(t){const n=C(t);return N(u.options.bootstrap)?Ze(n,u.options).catch(()=>He(n)):He(n)}static confirm(t){const n=C(t);return N(u.options.bootstrap)?et(n,u.options).catch(()=>ke(n)):ke(n)}static toast(t,n){const o=C(t);return Ge(u.options.bootstrap)?wt(o,n,u.options).catch(()=>Re(o,n)):Re(o,n)}static openDialog(t){return N(u.options.bootstrap)?mt(t,u.options).catch(()=>x("openDialog",t)):x("openDialog",t)}static closeDialog(t){return N(u.options.bootstrap)?bt(t,u.options).catch(()=>x("closeDialog",t)):x("closeDialog",t)}static addErrorMessage(t,n){return lt(t,n)}static addMessage(t,n,o){return ct(t,n,o)}static clearMessages(t){return ve(t)}}const Lt="haori-bootstrap:collapse:",q="data-haori-persist";let $=!1,U,J;function _e(e){return Lt+e}function St(e){try{const t=window.sessionStorage.getItem(_e(e));return t==="shown"||t==="hidden"?t:void 0}catch{return}}function Mt(e,t){try{window.sessionStorage.setItem(_e(e),t)}catch{}}function Be(e,t){const n=e.id,o=[`[data-bs-toggle="collapse"][data-bs-target="#${n}"]`];if(n&&o.push(`[data-bs-toggle="collapse"][href="#${n}"]`),!n)return;e.ownerDocument.querySelectorAll(o.join(",")).forEach(s=>{s.setAttribute("aria-expanded",t?"true":"false"),s.classList.toggle("collapsed",!t)})}function Pe(e){const t=e.getAttribute(q);if(!t)return;const n=St(t);if(!n)return;const o=e.classList.contains("show");n==="shown"&&!o?(e.classList.add("show"),Be(e,!0)):n==="hidden"&&o&&(e.classList.remove("show"),Be(e,!1))}function Oe(e){e instanceof HTMLElement&&e.hasAttribute(q)&&Pe(e),e.querySelectorAll(`[${q}]`).forEach(Pe)}function xe(e,t){const n=e.target;if(!(n instanceof HTMLElement))return;const o=n.getAttribute(q);o&&Mt(o,t)}const qe=e=>xe(e,"shown"),$e=e=>xe(e,"hidden");function yt(e=document){if($)return;$=!0,J=e,e.addEventListener("shown.bs.collapse",qe),e.addEventListener("hidden.bs.collapse",$e);const t=()=>{Oe(e),U=new MutationObserver(n=>{for(const o of n)o.addedNodes.forEach(r=>{r instanceof HTMLElement&&Oe(r)})}),e.body&&U.observe(e.body,{childList:!0,subtree:!0})};e.body?t():e.addEventListener("DOMContentLoaded",t,{once:!0})}function It(e=J??document){$&&($=!1,e.removeEventListener("shown.bs.collapse",qe),e.removeEventListener("hidden.bs.collapse",$e),U?.disconnect(),U=void 0,J=void 0)}const Nt=[{attribute:"dialog-ok-label",apply:(e,t)=>{e.dialogOkLabel=t}},{attribute:"dialog-cancel-label",apply:(e,t)=>{e.dialogCancelLabel=t}}],Ht=typeof document<"u"&&document.currentScript instanceof HTMLScriptElement?document.currentScript:null;function X(e,t){const n=e?.getAttribute(t)??null;if(!(n===null||n.trim()===""))return n}function kt(e=typeof document>"u"?null:document,t=Ht){const n={};for(const{attribute:o,apply:r}of Nt){const s=X(t,`data-${o}`)??X(e?.documentElement??null,`data-haori-${o}`)??X(e?.body??null,`data-haori-${o}`);s!==void 0&&r(n,s)}return n}const Q={fallbackToNative:!0},Ue=new Set(["dialog","confirm","toast","openDialog","closeDialog","addErrorMessage","addMessage","clearMessages"]);function Rt(e){const t=De;return new Proxy(e,{get(n,o,r){return typeof o=="string"&&Ue.has(o)?t[o]:Reflect.get(n,o,r)},has(n,o){return typeof o=="string"&&Ue.has(o)?!0:Reflect.has(n,o)}})}const i={installed:!1,options:Q};function Y(){return globalThis.window}function Dt(e,t){const n=kt();return{bootstrap:e.bootstrap??t?.bootstrap,fallbackToNative:e.fallbackToNative??Q.fallbackToNative,runtime:e.runtime??i.options.runtime??t?.Haori?.runtime,toastContainerSelector:e.toastContainerSelector??i.options.toastContainerSelector,dialogContainerSelector:e.dialogContainerSelector??i.options.dialogContainerSelector,dialogTitle:e.dialogTitle??i.options.dialogTitle,dialogOkLabel:e.dialogOkLabel??i.options.dialogOkLabel??n.dialogOkLabel,dialogCancelLabel:e.dialogCancelLabel??i.options.dialogCancelLabel??n.dialogCancelLabel,toastPosition:e.toastPosition??i.options.toastPosition,toastDelay:e.toastDelay??i.options.toastDelay}}function Fe(e=Y()){return!!(e?.Haori&&e.bootstrap)}function We(e={}){const t=Y();if(!t?.Haori)throw new Error("window.Haori is required before calling install().");if(i.originalHaori||(i.originalHaori=t.Haori,i.originalRuntime=t.Haori.runtime),i.options=Dt(e,t),i.options.runtime){const n=i.originalHaori??t.Haori;typeof n.setRuntime=="function"?n.setRuntime(i.options.runtime):console.warn("[haori-bootstrap] Haori.setRuntime が利用できません。runtime 設定は無視されます。")}Ct({originalHaori:i.originalHaori,options:i.options}),t.Haori=Rt(i.originalHaori),yt(),ut(),i.installed=!0}function _t(){const e=Y();if(!e||!i.originalHaori)return;const t=i.originalHaori;typeof t.setRuntime=="function"?t.setRuntime(i.originalRuntime):t.runtime=i.originalRuntime,e.Haori=i.originalHaori,It(),ft(),i.installed=!1,i.originalHaori=void 0,i.originalRuntime=void 0,i.options=Q}function Bt(){return i.installed}const ze="__haoriJsBootstrapAutoEnabled__";function Pt(){return globalThis.window}function Ot(e){return!!e[ze]}function xt(e){e[ze]=!0}function qt(){const e=Pt();if(!(!e||Ot(e))){if(!Fe(e)){console.warn("[haori-bootstrap] Auto-enable skipped because window.Haori or window.bootstrap is missing.");return}try{We({bootstrap:e.bootstrap}),xt(e)}catch(t){console.warn("[haori-bootstrap] Auto-enable failed.",t)}}}qt();const $t="0.5.
|
|
2
|
+
`):""}function Ne(){return globalThis.window}function j(e){return Promise.resolve(e).then(()=>{})}function P(e){const t=u.originalHaori?.[e];return typeof t=="function"?t:void 0}function O(e){console.warn(`[haori-bootstrap] ${e} skipped because Bootstrap support is unavailable.`)}function He(e){const t=C(e),n=P("dialog");if(n)return j(n(t));const o=Ne();return u.options.fallbackToNative&&typeof o?.alert=="function"?(o.alert(t),Promise.resolve()):(O("dialog"),Promise.resolve())}function ke(e){const t=C(e),n=P("confirm");if(n)return Promise.resolve(n(t)).then(r=>!!r);const o=Ne();return u.options.fallbackToNative&&typeof o?.confirm=="function"?Promise.resolve(o.confirm(t)):(O("confirm"),Promise.resolve(!1))}function Re(e,t){const n=C(e),o=P("toast");return o?j(o(n,t)):(O("toast"),Promise.resolve())}function x(e,t){const n=P(e);return n?j(n(t)):(O(e),Promise.resolve())}function Ct(e){u=e}class De{static dialog(t){const n=C(t);return N(u.options.bootstrap)?Ze(n,u.options).catch(()=>He(n)):He(n)}static confirm(t){const n=C(t);return N(u.options.bootstrap)?et(n,u.options).catch(()=>ke(n)):ke(n)}static toast(t,n){const o=C(t);return Ge(u.options.bootstrap)?wt(o,n,u.options).catch(()=>Re(o,n)):Re(o,n)}static openDialog(t){return N(u.options.bootstrap)?mt(t,u.options).catch(()=>x("openDialog",t)):x("openDialog",t)}static closeDialog(t){return N(u.options.bootstrap)?bt(t,u.options).catch(()=>x("closeDialog",t)):x("closeDialog",t)}static addErrorMessage(t,n){return lt(t,n)}static addMessage(t,n,o){return ct(t,n,o)}static clearMessages(t){return ve(t)}}const Lt="haori-bootstrap:collapse:",q="data-haori-persist";let $=!1,U,J;function _e(e){return Lt+e}function St(e){try{const t=window.sessionStorage.getItem(_e(e));return t==="shown"||t==="hidden"?t:void 0}catch{return}}function Mt(e,t){try{window.sessionStorage.setItem(_e(e),t)}catch{}}function Be(e,t){const n=e.id,o=[`[data-bs-toggle="collapse"][data-bs-target="#${n}"]`];if(n&&o.push(`[data-bs-toggle="collapse"][href="#${n}"]`),!n)return;e.ownerDocument.querySelectorAll(o.join(",")).forEach(s=>{s.setAttribute("aria-expanded",t?"true":"false"),s.classList.toggle("collapsed",!t)})}function Pe(e){const t=e.getAttribute(q);if(!t)return;const n=St(t);if(!n)return;const o=e.classList.contains("show");n==="shown"&&!o?(e.classList.add("show"),Be(e,!0)):n==="hidden"&&o&&(e.classList.remove("show"),Be(e,!1))}function Oe(e){e instanceof HTMLElement&&e.hasAttribute(q)&&Pe(e),e.querySelectorAll(`[${q}]`).forEach(Pe)}function xe(e,t){const n=e.target;if(!(n instanceof HTMLElement))return;const o=n.getAttribute(q);o&&Mt(o,t)}const qe=e=>xe(e,"shown"),$e=e=>xe(e,"hidden");function yt(e=document){if($)return;$=!0,J=e,e.addEventListener("shown.bs.collapse",qe),e.addEventListener("hidden.bs.collapse",$e);const t=()=>{Oe(e),U=new MutationObserver(n=>{for(const o of n)o.addedNodes.forEach(r=>{r instanceof HTMLElement&&Oe(r)})}),e.body&&U.observe(e.body,{childList:!0,subtree:!0})};e.body?t():e.addEventListener("DOMContentLoaded",t,{once:!0})}function It(e=J??document){$&&($=!1,e.removeEventListener("shown.bs.collapse",qe),e.removeEventListener("hidden.bs.collapse",$e),U?.disconnect(),U=void 0,J=void 0)}const Nt=[{attribute:"dialog-ok-label",apply:(e,t)=>{e.dialogOkLabel=t}},{attribute:"dialog-cancel-label",apply:(e,t)=>{e.dialogCancelLabel=t}}],Ht=typeof document<"u"&&document.currentScript instanceof HTMLScriptElement?document.currentScript:null;function X(e,t){const n=e?.getAttribute(t)??null;if(!(n===null||n.trim()===""))return n}function kt(e=typeof document>"u"?null:document,t=Ht){const n={};for(const{attribute:o,apply:r}of Nt){const s=X(t,`data-${o}`)??X(e?.documentElement??null,`data-haori-${o}`)??X(e?.body??null,`data-haori-${o}`);s!==void 0&&r(n,s)}return n}const Q={fallbackToNative:!0},Ue=new Set(["dialog","confirm","toast","openDialog","closeDialog","addErrorMessage","addMessage","clearMessages"]);function Rt(e){const t=De;return new Proxy(e,{get(n,o,r){return typeof o=="string"&&Ue.has(o)?t[o]:Reflect.get(n,o,r)},has(n,o){return typeof o=="string"&&Ue.has(o)?!0:Reflect.has(n,o)}})}const i={installed:!1,options:Q};function Y(){return globalThis.window}function Dt(e,t){const n=kt();return{bootstrap:e.bootstrap??t?.bootstrap,fallbackToNative:e.fallbackToNative??Q.fallbackToNative,runtime:e.runtime??i.options.runtime??t?.Haori?.runtime,toastContainerSelector:e.toastContainerSelector??i.options.toastContainerSelector,dialogContainerSelector:e.dialogContainerSelector??i.options.dialogContainerSelector,dialogTitle:e.dialogTitle??i.options.dialogTitle,dialogOkLabel:e.dialogOkLabel??i.options.dialogOkLabel??n.dialogOkLabel,dialogCancelLabel:e.dialogCancelLabel??i.options.dialogCancelLabel??n.dialogCancelLabel,toastPosition:e.toastPosition??i.options.toastPosition,toastDelay:e.toastDelay??i.options.toastDelay}}function Fe(e=Y()){return!!(e?.Haori&&e.bootstrap)}function We(e={}){const t=Y();if(!t?.Haori)throw new Error("window.Haori is required before calling install().");if(i.originalHaori||(i.originalHaori=t.Haori,i.originalRuntime=t.Haori.runtime),i.options=Dt(e,t),i.options.runtime){const n=i.originalHaori??t.Haori;typeof n.setRuntime=="function"?n.setRuntime(i.options.runtime):console.warn("[haori-bootstrap] Haori.setRuntime が利用できません。runtime 設定は無視されます。")}Ct({originalHaori:i.originalHaori,options:i.options}),t.Haori=Rt(i.originalHaori),yt(),ut(),i.installed=!0}function _t(){const e=Y();if(!e||!i.originalHaori)return;const t=i.originalHaori;typeof t.setRuntime=="function"?t.setRuntime(i.originalRuntime):t.runtime=i.originalRuntime,e.Haori=i.originalHaori,It(),ft(),i.installed=!1,i.originalHaori=void 0,i.originalRuntime=void 0,i.options=Q}function Bt(){return i.installed}const ze="__haoriJsBootstrapAutoEnabled__";function Pt(){return globalThis.window}function Ot(e){return!!e[ze]}function xt(e){e[ze]=!0}function qt(){const e=Pt();if(!(!e||Ot(e))){if(!Fe(e)){console.warn("[haori-bootstrap] Auto-enable skipped because window.Haori or window.bootstrap is missing.");return}try{We({bootstrap:e.bootstrap}),xt(e)}catch(t){console.warn("[haori-bootstrap] Auto-enable failed.",t)}}}qt();const $t="0.5.59";return E.BootstrapHaori=De,E.hasAutoEnablePrerequisites=Fe,E.install=We,E.isInstalled=Bt,E.uninstall=_t,E.version=$t,Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}),E})({});
|
|
3
3
|
//# sourceMappingURL=haori-bootstrap.iife.js.map
|