waibu-bootstrap 2.12.3 → 2.12.5
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/.github/FUNDING.yml +0 -0
- package/.github/workflows/repo-lockdown.yml +0 -0
- package/.jsdoc.conf.json +0 -0
- package/LICENSE +0 -0
- package/README.md +0 -0
- package/docs/WaibuBootstrap.html +0 -0
- package/docs/data/search.json +0 -0
- package/docs/fonts/Inconsolata-Regular.ttf +0 -0
- package/docs/fonts/OpenSans-Regular.ttf +0 -0
- package/docs/fonts/WorkSans-Bold.ttf +0 -0
- package/docs/global.html +0 -0
- package/docs/index.html +0 -0
- package/docs/index.js.html +0 -0
- package/docs/scripts/core.js +0 -0
- package/docs/scripts/core.min.js +0 -0
- package/docs/scripts/resize.js +0 -0
- package/docs/scripts/search.js +0 -0
- package/docs/scripts/search.min.js +5 -5
- package/docs/scripts/third-party/Apache-License-2.0.txt +0 -0
- package/docs/scripts/third-party/fuse.js +0 -0
- package/docs/scripts/third-party/hljs-line-num-original.js +0 -0
- package/docs/scripts/third-party/hljs-line-num.js +0 -0
- package/docs/scripts/third-party/hljs-original.js +0 -0
- package/docs/scripts/third-party/hljs.js +0 -0
- package/docs/scripts/third-party/popper.js +0 -0
- package/docs/scripts/third-party/tippy.js +0 -0
- package/docs/scripts/third-party/tocbot.js +0 -0
- package/docs/scripts/third-party/tocbot.min.js +0 -0
- package/docs/static/bitcoin.jpeg +0 -0
- package/docs/static/home.md +0 -0
- package/docs/static/logo-ecosystem.png +0 -0
- package/docs/static/logo.png +0 -0
- package/docs/styles/clean-jsdoc-theme-base.css +0 -0
- package/docs/styles/clean-jsdoc-theme-dark.css +0 -0
- package/docs/styles/clean-jsdoc-theme-light.css +0 -0
- package/docs/styles/clean-jsdoc-theme-scrollbar.css +0 -0
- package/docs/styles/clean-jsdoc-theme-without-scrollbar.min.css +0 -0
- package/docs/styles/clean-jsdoc-theme.min.css +0 -0
- package/extend/bajo/intl/id.json +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/_lib.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/active.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/background.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/border.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/dim.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/disabled.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/display.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/flex.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/font.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/gutter.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/label.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/link.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/margin-padding.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/popover.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/position.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/rounded.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/text.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag/tooltip.js +0 -0
- package/extend/waibuMpa/theme/component/method/after-build-tag.js +0 -0
- package/extend/waibuMpa/theme/component/widget/_lib.js +8 -2
- package/extend/waibuMpa/theme/component/widget/a.js +0 -0
- package/extend/waibuMpa/theme/component/widget/accordion-item.js +0 -0
- package/extend/waibuMpa/theme/component/widget/accordion.js +0 -0
- package/extend/waibuMpa/theme/component/widget/alert.js +0 -0
- package/extend/waibuMpa/theme/component/widget/app-launcher-trigger.js +0 -0
- package/extend/waibuMpa/theme/component/widget/app-launcher.js +0 -0
- package/extend/waibuMpa/theme/component/widget/badge.js +0 -0
- package/extend/waibuMpa/theme/component/widget/blockquote.js +0 -0
- package/extend/waibuMpa/theme/component/widget/breadcrumb-item.js +0 -0
- package/extend/waibuMpa/theme/component/widget/breadcrumb.js +0 -0
- package/extend/waibuMpa/theme/component/widget/btn-back-to-top.js +0 -0
- package/extend/waibuMpa/theme/component/widget/btn-close.js +0 -0
- package/extend/waibuMpa/theme/component/widget/btn-group.js +0 -0
- package/extend/waibuMpa/theme/component/widget/btn-toolbar.js +0 -0
- package/extend/waibuMpa/theme/component/widget/btn.js +0 -0
- package/extend/waibuMpa/theme/component/widget/card-body.js +0 -0
- package/extend/waibuMpa/theme/component/widget/card-footer.js +0 -0
- package/extend/waibuMpa/theme/component/widget/card-group.js +0 -0
- package/extend/waibuMpa/theme/component/widget/card-header.js +0 -0
- package/extend/waibuMpa/theme/component/widget/card-link.js +0 -0
- package/extend/waibuMpa/theme/component/widget/card-subtitle.js +0 -0
- package/extend/waibuMpa/theme/component/widget/card-text.js +0 -0
- package/extend/waibuMpa/theme/component/widget/card-title.js +0 -0
- package/extend/waibuMpa/theme/component/widget/card.js +0 -0
- package/extend/waibuMpa/theme/component/widget/carousel-item.js +0 -0
- package/extend/waibuMpa/theme/component/widget/carousel.js +0 -0
- package/extend/waibuMpa/theme/component/widget/collapse-item.js +0 -0
- package/extend/waibuMpa/theme/component/widget/collapse.js +0 -0
- package/extend/waibuMpa/theme/component/widget/container.js +0 -0
- package/extend/waibuMpa/theme/component/widget/drawer-toolbar.js +0 -0
- package/extend/waibuMpa/theme/component/widget/drawer.js +0 -0
- package/extend/waibuMpa/theme/component/widget/dropdown-item.js +0 -0
- package/extend/waibuMpa/theme/component/widget/dropdown.js +2 -1
- package/extend/waibuMpa/theme/component/widget/fieldset.js +0 -0
- package/extend/waibuMpa/theme/component/widget/figcaption.js +0 -0
- package/extend/waibuMpa/theme/component/widget/figure.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-check-toggle.js +2 -0
- package/extend/waibuMpa/theme/component/widget/form-check.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-color.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-date.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-datetime.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-file.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-input-addon.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-input.js +2 -3
- package/extend/waibuMpa/theme/component/widget/form-password.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-plaintext.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-radio-toggle.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-radio.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-range.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-select-ext.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-select.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-switch.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-textarea.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form-time.js +0 -0
- package/extend/waibuMpa/theme/component/widget/form.js +0 -0
- package/extend/waibuMpa/theme/component/widget/grid-col.js +0 -0
- package/extend/waibuMpa/theme/component/widget/grid-row.js +0 -0
- package/extend/waibuMpa/theme/component/widget/heading.js +0 -0
- package/extend/waibuMpa/theme/component/widget/img.js +0 -0
- package/extend/waibuMpa/theme/component/widget/lead.js +0 -0
- package/extend/waibuMpa/theme/component/widget/list-item.js +0 -0
- package/extend/waibuMpa/theme/component/widget/list.js +0 -0
- package/extend/waibuMpa/theme/component/widget/masonry.js +0 -0
- package/extend/waibuMpa/theme/component/widget/modal-body.js +0 -0
- package/extend/waibuMpa/theme/component/widget/modal-footer.js +0 -0
- package/extend/waibuMpa/theme/component/widget/modal-header.js +0 -0
- package/extend/waibuMpa/theme/component/widget/modal.js +0 -0
- package/extend/waibuMpa/theme/component/widget/nav-divider.js +0 -0
- package/extend/waibuMpa/theme/component/widget/nav-dropdown-darkmode.js +0 -0
- package/extend/waibuMpa/theme/component/widget/nav-dropdown-language.js +0 -0
- package/extend/waibuMpa/theme/component/widget/nav-dropdown-setting.js +0 -0
- package/extend/waibuMpa/theme/component/widget/nav-item-signout.js +0 -0
- package/extend/waibuMpa/theme/component/widget/nav-item.js +0 -0
- package/extend/waibuMpa/theme/component/widget/nav-toggle-fullscreen.js +0 -0
- package/extend/waibuMpa/theme/component/widget/nav.js +0 -0
- package/extend/waibuMpa/theme/component/widget/navbar-brand.js +0 -0
- package/extend/waibuMpa/theme/component/widget/navbar-text.js +0 -0
- package/extend/waibuMpa/theme/component/widget/navbar.js +0 -0
- package/extend/waibuMpa/theme/component/widget/pagination-item.js +0 -0
- package/extend/waibuMpa/theme/component/widget/pagination.js +0 -0
- package/extend/waibuMpa/theme/component/widget/progress-stack.js +0 -0
- package/extend/waibuMpa/theme/component/widget/progress.js +0 -0
- package/extend/waibuMpa/theme/component/widget/scrollspy.js +0 -0
- package/extend/waibuMpa/theme/component/widget/sidebar.js +0 -0
- package/extend/waibuMpa/theme/component/widget/spinner.js +0 -0
- package/extend/waibuMpa/theme/component/widget/table.js +1 -0
- package/extend/waibuMpa/theme/component/widget/tbody.js +0 -0
- package/extend/waibuMpa/theme/component/widget/td.js +0 -0
- package/extend/waibuMpa/theme/component/widget/tfoot.js +0 -0
- package/extend/waibuMpa/theme/component/widget/th.js +0 -0
- package/extend/waibuMpa/theme/component/widget/thead.js +0 -0
- package/extend/waibuMpa/theme/component/widget/toast-stack.js +0 -0
- package/extend/waibuMpa/theme/component/widget/toast.js +0 -0
- package/extend/waibuMpa/theme/component/widget/tr.js +0 -0
- package/extend/waibuMpa/theme.js +0 -0
- package/extend/waibuStatic/asset/css/wbs.css +0 -0
- package/extend/waibuStatic/asset/css/widget.css +33 -33
- package/extend/waibuStatic/asset/js/wbs.js +0 -0
- package/extend/waibuStatic/virtual.json +0 -0
- package/index.js +0 -0
- package/package.json +1 -1
- package/wiki/CHANGES.md +162 -151
- package/wiki/CONFIG.md +0 -0
- package/wiki/CONTRIBUTING.md +0 -0
package/.github/FUNDING.yml
CHANGED
|
File without changes
|
|
File without changes
|
package/.jsdoc.conf.json
CHANGED
|
File without changes
|
package/LICENSE
CHANGED
|
File without changes
|
package/README.md
CHANGED
|
File without changes
|
package/docs/WaibuBootstrap.html
CHANGED
|
File without changes
|
package/docs/data/search.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/global.html
CHANGED
|
File without changes
|
package/docs/index.html
CHANGED
|
File without changes
|
package/docs/index.js.html
CHANGED
|
File without changes
|
package/docs/scripts/core.js
CHANGED
|
File without changes
|
package/docs/scripts/core.min.js
CHANGED
|
File without changes
|
package/docs/scripts/resize.js
CHANGED
|
File without changes
|
package/docs/scripts/search.js
CHANGED
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const searchId="LiBfqbJVcV",searchHash="#"+searchId,searchContainer=document.querySelector("#PkfLWpAbet"),searchWrapper=document.querySelector("#iCxFxjkHbP"),searchCloseButton=document.querySelector("#VjLlGakifb"),searchInput=document.querySelector("#vpcKVYIppa"),resultBox=document.querySelector("#fWwVHRuDuN");function showResultText(e){resultBox.innerHTML=`<span class="search-result-c-text">${e}</span>`}function hideSearch(){window.location.hash===searchHash&&history.go(-1),window.onhashchange=null,searchContainer&&(searchContainer.style.display="none")}function listenCloseKey(e){"Escape"===e.key&&(hideSearch(),window.removeEventListener("keyup",listenCloseKey))}function showSearch(){try{hideMobileMenu()}catch(e){console.error(e)}window.onhashchange=hideSearch,window.location.hash!==searchHash&&history.pushState(null,null,searchHash),searchContainer&&(searchContainer.style.display="flex",window.addEventListener("keyup",listenCloseKey)),searchInput&&searchInput.focus()}async function fetchAllData(){var{hostname:e,protocol:t,port:n}=location,t=t+"//"+e+(""!==n?":"+n:"")+baseURL,e=new URL("data/search.json",t);const a=await fetch(e);n=(await a.json()).list;return n}function onClickSearchItem(t){const n=t.currentTarget;if(n){const a=n.getAttribute("href")||"";t=a.split("#")[1]||"";let e=document.getElementById(t);e||(t=decodeURI(t),e=document.getElementById(t)),e&&setTimeout(function(){bringElementIntoView(e)},100)}}function buildSearchResult(e){let t="";var n=/(<([^>]+)>)/gi;for(const s of e){const{title:c="",description:i=""}=s.item;var a=s.item.link.replace('<a href="',"").replace(/">.*/,""),o=c.replace(n,""),r=i.replace(n,"");t+=`
|
|
2
|
-
<a onclick="onClickSearchItem(event)" href="${a}" class="search-result-item">
|
|
3
|
-
<div class="search-result-item-title">${o}</div>
|
|
4
|
-
<div class="search-result-item-p">${r||"No description available."}</div>
|
|
5
|
-
</a>
|
|
1
|
+
const searchId="LiBfqbJVcV",searchHash="#"+searchId,searchContainer=document.querySelector("#PkfLWpAbet"),searchWrapper=document.querySelector("#iCxFxjkHbP"),searchCloseButton=document.querySelector("#VjLlGakifb"),searchInput=document.querySelector("#vpcKVYIppa"),resultBox=document.querySelector("#fWwVHRuDuN");function showResultText(e){resultBox.innerHTML=`<span class="search-result-c-text">${e}</span>`}function hideSearch(){window.location.hash===searchHash&&history.go(-1),window.onhashchange=null,searchContainer&&(searchContainer.style.display="none")}function listenCloseKey(e){"Escape"===e.key&&(hideSearch(),window.removeEventListener("keyup",listenCloseKey))}function showSearch(){try{hideMobileMenu()}catch(e){console.error(e)}window.onhashchange=hideSearch,window.location.hash!==searchHash&&history.pushState(null,null,searchHash),searchContainer&&(searchContainer.style.display="flex",window.addEventListener("keyup",listenCloseKey)),searchInput&&searchInput.focus()}async function fetchAllData(){var{hostname:e,protocol:t,port:n}=location,t=t+"//"+e+(""!==n?":"+n:"")+baseURL,e=new URL("data/search.json",t);const a=await fetch(e);n=(await a.json()).list;return n}function onClickSearchItem(t){const n=t.currentTarget;if(n){const a=n.getAttribute("href")||"";t=a.split("#")[1]||"";let e=document.getElementById(t);e||(t=decodeURI(t),e=document.getElementById(t)),e&&setTimeout(function(){bringElementIntoView(e)},100)}}function buildSearchResult(e){let t="";var n=/(<([^>]+)>)/gi;for(const s of e){const{title:c="",description:i=""}=s.item;var a=s.item.link.replace('<a href="',"").replace(/">.*/,""),o=c.replace(n,""),r=i.replace(n,"");t+=`
|
|
2
|
+
<a onclick="onClickSearchItem(event)" href="${a}" class="search-result-item">
|
|
3
|
+
<div class="search-result-item-title">${o}</div>
|
|
4
|
+
<div class="search-result-item-p">${r||"No description available."}</div>
|
|
5
|
+
</a>
|
|
6
6
|
`}return t}function getSearchResult(e,t,n){var t={...{shouldSort:!0,threshold:.4,location:0,distance:100,maxPatternLength:32,minMatchCharLength:1,keys:t}},a=Fuse.createIndex(t.keys,e);const o=new Fuse(e,t,a),r=o.search(n);return 20<r.length?r.slice(0,20):r}function debounce(t,n,a){let o;return function(){const e=arguments;clearTimeout(o),o=setTimeout(()=>{o=null,a||t.apply(this,e)},n),a&&!o&&t.apply(this,e)}}let searchData;async function search(e){e=e.target.value;if(resultBox)if(e){if(!searchData){showResultText("Loading...");try{searchData=await fetchAllData()}catch(e){return console.log(e),void showResultText("Failed to load result.")}}e=getSearchResult(searchData,["title","description"],e);e.length?resultBox.innerHTML=buildSearchResult(e):showResultText("No result found! Try some different combination.")}else showResultText("Type anything to view search result");else console.error("Search result container not found")}function onDomContentLoaded(){const e=document.querySelectorAll(".search-button");var t=debounce(search,300);searchCloseButton&&searchCloseButton.addEventListener("click",hideSearch),e&&e.forEach(function(e){e.addEventListener("click",showSearch)}),searchContainer&&searchContainer.addEventListener("click",hideSearch),searchWrapper&&searchWrapper.addEventListener("click",function(e){e.stopPropagation()}),searchInput&&searchInput.addEventListener("keyup",t),window.location.hash===searchHash&&showSearch()}window.addEventListener("DOMContentLoaded",onDomContentLoaded),window.addEventListener("hashchange",function(){window.location.hash===searchHash&&showSearch()});
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/static/bitcoin.jpeg
CHANGED
|
File without changes
|
package/docs/static/home.md
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/static/logo.png
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/extend/bajo/intl/id.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -16,6 +16,7 @@ async function getInputAttr (group, formControl = true, ro) {
|
|
|
16
16
|
|
|
17
17
|
if (formControl) group._.class.push('form-control')
|
|
18
18
|
const attr = omit(group._, ['hint', 'label', 'wrapper'])
|
|
19
|
+
|
|
19
20
|
if (has(attr, 'name') && !has(attr, 'value')) {
|
|
20
21
|
if (ro) attr.value = this.formData[attr.name]
|
|
21
22
|
else {
|
|
@@ -126,10 +127,15 @@ export async function buildFormFile (group) {
|
|
|
126
127
|
return await this.component.buildTag({ tag: 'input', attr, selfClosing: true })
|
|
127
128
|
}
|
|
128
129
|
|
|
129
|
-
export async function buildFormTextarea (group) {
|
|
130
|
+
export async function buildFormTextarea (group, opts = {}) {
|
|
130
131
|
const attr = await getInputAttr.call(this, group)
|
|
131
132
|
this.params.html = attr.value
|
|
132
|
-
attr.
|
|
133
|
+
if (attr.rows) {
|
|
134
|
+
let height = parseInt(attr.rows) * 1
|
|
135
|
+
if (opts.isLabelFloating) height += 3
|
|
136
|
+
attr.style.minHeight = `${height}em`
|
|
137
|
+
}
|
|
138
|
+
attr.style.minHeight = attr.style.minHeight ?? '100px'
|
|
133
139
|
delete attr.value
|
|
134
140
|
return await this.component.buildTag({ tag: 'textarea', attr, html: this.params.html })
|
|
135
141
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -9,7 +9,8 @@ export async function buildMenu (params = {}) { // scope: component
|
|
|
9
9
|
const { isString } = this.app.lib._
|
|
10
10
|
const $ = this.$
|
|
11
11
|
let menuHtml = params.html
|
|
12
|
-
let style = params.attr.
|
|
12
|
+
let style = params.attr.menuStyle ?? ''
|
|
13
|
+
style += params.attr.menuOnly ? 'display:block;' : ''
|
|
13
14
|
if (params.attr.menuMax) {
|
|
14
15
|
const max = parseInt(params.attr.menuMax)
|
|
15
16
|
if (max > 0) {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -11,6 +11,8 @@ export async function build (handler) {
|
|
|
11
11
|
const contents = []
|
|
12
12
|
attr._.id = this.params.attr.id ?? generateId('alpha')
|
|
13
13
|
if (attr._.color) attr.label.class.push(parseVariant.call(this, { cls: 'btn', value: attr._.color, values: colors, variants, prepend: true }))
|
|
14
|
+
if (attr._.size) attr.label.class.push('btn-' + attr._.size)
|
|
15
|
+
delete attr._.size
|
|
14
16
|
delete attr._.color
|
|
15
17
|
|
|
16
18
|
contents.push(await handler.call(this, attr, this.params))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -2,7 +2,7 @@ import { buildFormHint, buildFormLabel, buildFormInput } from './_lib.js'
|
|
|
2
2
|
import { sizes } from '../method/after-build-tag/_lib.js'
|
|
3
3
|
|
|
4
4
|
export async function handleInput ({ handler, group } = {}) {
|
|
5
|
-
const { trim, filter, has,
|
|
5
|
+
const { trim, filter, has, pull, find, get, isEmpty } = this.app.lib._
|
|
6
6
|
const { attrToArray } = this.app.waibu
|
|
7
7
|
const { $ } = this.component
|
|
8
8
|
const addons = [...(this.params.addons ?? [])]
|
|
@@ -11,7 +11,6 @@ export async function handleInput ({ handler, group } = {}) {
|
|
|
11
11
|
if (isLabelFloating) {
|
|
12
12
|
group.wrapper.class.push('form-floating')
|
|
13
13
|
group._.placeholder = group._.label
|
|
14
|
-
group._ = omit(group._, ['rows'])
|
|
15
14
|
}
|
|
16
15
|
let errMsg = ''
|
|
17
16
|
if (group._.name) {
|
|
@@ -31,7 +30,7 @@ export async function handleInput ({ handler, group } = {}) {
|
|
|
31
30
|
const result = {
|
|
32
31
|
prepend: [],
|
|
33
32
|
append: [],
|
|
34
|
-
input: await handler.call(this, group)
|
|
33
|
+
input: await handler.call(this, group, { isLabelFloating })
|
|
35
34
|
}
|
|
36
35
|
if (!isEmpty(errMsg)) result.input = $(result.input).addClass('is-invalid').prop('outerHTML')
|
|
37
36
|
const el = {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -10,6 +10,7 @@ function setResponsive (params) {
|
|
|
10
10
|
const { isString } = this.app.lib._
|
|
11
11
|
let xcls = `${cls}-responsive`
|
|
12
12
|
if (isString(this.params.attr.responsive)) xcls += '-' + this.params.attr.responsive
|
|
13
|
+
if (this.params.attr.rounded) xcls += ' rounded-3'
|
|
13
14
|
this.params.prepend = `<div class="${xcls}">`
|
|
14
15
|
this.params.append = '</div>'
|
|
15
16
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/extend/waibuMpa/theme.js
CHANGED
|
File without changes
|
|
File without changes
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
.ts-dropdown {
|
|
2
|
-
min-width: 242px;
|
|
3
|
-
}
|
|
4
|
-
.ts-control {
|
|
5
|
-
padding-top: 0px;
|
|
6
|
-
}
|
|
7
|
-
.ts-wrapper {
|
|
8
|
-
margin-left: calc(var(--bs-border-width) * -1) !important;
|
|
9
|
-
border-top-left-radius: var(--bs-border-radius) !important;
|
|
10
|
-
border-bottom-left-radius: var(--bs-border-radius) !important;
|
|
11
|
-
white-space: nowrap !important;
|
|
12
|
-
}
|
|
13
|
-
.ts-control, .ts-control input, .ts-dropdown {
|
|
14
|
-
color: inherit;
|
|
15
|
-
}
|
|
16
|
-
.form-floating > .ts-wrapper {
|
|
17
|
-
padding-top: 1.625rem !important;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.ts-wrapper.focus {
|
|
21
|
-
border-color: #86b7fe;
|
|
22
|
-
outline: 0;
|
|
23
|
-
box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.focus .ts-control {
|
|
27
|
-
box-shadow: none;
|
|
28
|
-
border: none;
|
|
29
|
-
box-shadow: none;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.form-select.no-caret {
|
|
33
|
-
--bs-form-select-bg-img: none !important;
|
|
1
|
+
.ts-dropdown {
|
|
2
|
+
min-width: 242px;
|
|
3
|
+
}
|
|
4
|
+
.ts-control {
|
|
5
|
+
padding-top: 0px;
|
|
6
|
+
}
|
|
7
|
+
.ts-wrapper {
|
|
8
|
+
margin-left: calc(var(--bs-border-width) * -1) !important;
|
|
9
|
+
border-top-left-radius: var(--bs-border-radius) !important;
|
|
10
|
+
border-bottom-left-radius: var(--bs-border-radius) !important;
|
|
11
|
+
white-space: nowrap !important;
|
|
12
|
+
}
|
|
13
|
+
.ts-control, .ts-control input, .ts-dropdown {
|
|
14
|
+
color: inherit;
|
|
15
|
+
}
|
|
16
|
+
.form-floating > .ts-wrapper {
|
|
17
|
+
padding-top: 1.625rem !important;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.ts-wrapper.focus {
|
|
21
|
+
border-color: #86b7fe;
|
|
22
|
+
outline: 0;
|
|
23
|
+
box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.focus .ts-control {
|
|
27
|
+
box-shadow: none;
|
|
28
|
+
border: none;
|
|
29
|
+
box-shadow: none;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.form-select.no-caret {
|
|
33
|
+
--bs-form-select-bg-img: none !important;
|
|
34
34
|
}
|
|
File without changes
|
|
File without changes
|
package/index.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
package/wiki/CHANGES.md
CHANGED
|
@@ -1,151 +1,162 @@
|
|
|
1
|
-
# Changes
|
|
2
|
-
|
|
3
|
-
## 2026-
|
|
4
|
-
|
|
5
|
-
- [2.12.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- [2.
|
|
21
|
-
- [2.12.
|
|
22
|
-
|
|
23
|
-
## 2026-
|
|
24
|
-
|
|
25
|
-
- [2.
|
|
26
|
-
- [2.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- [2.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
- [2.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
-
|
|
41
|
-
|
|
42
|
-
- [2.9.
|
|
43
|
-
|
|
44
|
-
## 2026-05-
|
|
45
|
-
|
|
46
|
-
- [2.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- [2.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
- [2.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
- [2.
|
|
72
|
-
- [2.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
- [2.6.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
- [2.
|
|
102
|
-
|
|
103
|
-
-
|
|
104
|
-
|
|
105
|
-
- [2.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
-
|
|
110
|
-
|
|
111
|
-
- [2.
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
- [2.
|
|
116
|
-
- [2.
|
|
117
|
-
|
|
118
|
-
## 2026-02-
|
|
119
|
-
|
|
120
|
-
- [2.
|
|
121
|
-
- [2.
|
|
122
|
-
- [2.
|
|
123
|
-
|
|
124
|
-
## 2026-02-
|
|
125
|
-
|
|
126
|
-
- [2.
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
- [2.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
-
|
|
136
|
-
|
|
137
|
-
- [2.1.
|
|
138
|
-
|
|
139
|
-
## 2026-
|
|
140
|
-
|
|
141
|
-
- [2.1.
|
|
142
|
-
- [2.1.
|
|
143
|
-
|
|
144
|
-
## 2026-01-
|
|
145
|
-
|
|
146
|
-
- [2.1.
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
-
|
|
151
|
-
|
|
1
|
+
# Changes
|
|
2
|
+
|
|
3
|
+
## 2026-11-02
|
|
4
|
+
|
|
5
|
+
- [2.12.5] Bug fix in `dropdown.js`
|
|
6
|
+
- [2.12.5] Bug fix in `table.js`
|
|
7
|
+
- [2.12.5] Bug fix in `form-check-toggle.js`
|
|
8
|
+
|
|
9
|
+
## 2026-10-19
|
|
10
|
+
|
|
11
|
+
- [2.12.4] Bug fix in `_lib.js`
|
|
12
|
+
- [2.12.4] Bug fix in `form-input.js`
|
|
13
|
+
|
|
14
|
+
## 2026-06-11
|
|
15
|
+
|
|
16
|
+
- [2.12.3] Bug fix in `form-select-ext` widget
|
|
17
|
+
|
|
18
|
+
## 2026-06-05
|
|
19
|
+
|
|
20
|
+
- [2.12.2] Bug fix in `form-input` widget
|
|
21
|
+
- [2.12.2] Bug fix in `toast` widget
|
|
22
|
+
|
|
23
|
+
## 2026-06-03
|
|
24
|
+
|
|
25
|
+
- [2.12.1] Bug fix in `_lib.getInputAttr()`
|
|
26
|
+
- [2.12.1] Bug fix in `form-input` widget
|
|
27
|
+
|
|
28
|
+
## 2026-06-01
|
|
29
|
+
|
|
30
|
+
- [2.11.0] Remove `params` on all widget since it already there through `this.params`
|
|
31
|
+
- [2.11.0] Add feature to add addons on all form inputs through schema
|
|
32
|
+
- [2.12.0] Tranform `form-plaintext` html as href addon if it contains link information
|
|
33
|
+
|
|
34
|
+
## 2026-05-25
|
|
35
|
+
|
|
36
|
+
- [2.10.0] Bug fix in `_lib.js`
|
|
37
|
+
- [2.10.0] Add dimmed background for `form-plaintext` widget
|
|
38
|
+
- [2.10.0] Auto detect theme & iconset
|
|
39
|
+
|
|
40
|
+
## 2026-05-22
|
|
41
|
+
|
|
42
|
+
- [2.9.2] Bug fix in `drawer` widget
|
|
43
|
+
|
|
44
|
+
## 2026-05-16
|
|
45
|
+
|
|
46
|
+
- [2.9.1] Bug fix in `form-select-ext` widget
|
|
47
|
+
- [2.9.1] Bug fix in `util.getInputAttr` helper
|
|
48
|
+
|
|
49
|
+
## 2026-05-11
|
|
50
|
+
|
|
51
|
+
- [2.9.0] Updates to match `dobo@2.23.0` specs
|
|
52
|
+
- [2.9.0] Bug fix in `theme.js`
|
|
53
|
+
- [2.9.0] Auto link for widget bound to database with refs
|
|
54
|
+
|
|
55
|
+
## 2026-05-03
|
|
56
|
+
|
|
57
|
+
- [2.8.2] Bug fix in `form-plaintext` widgets
|
|
58
|
+
|
|
59
|
+
## 2026-04-25
|
|
60
|
+
|
|
61
|
+
- [2.8.0] Change options to format value using the new key set by dobo
|
|
62
|
+
- [2.8.0] Use `generateId('alpha')` to make sure all generated id in widget doesn;t start with number
|
|
63
|
+
|
|
64
|
+
## 2026-04-18
|
|
65
|
+
|
|
66
|
+
- [2.7.2] Bug fix in `getInputAttr()` of `_lib.js`
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
## 2026-04-17
|
|
70
|
+
|
|
71
|
+
- [2.7.1] Bug fix in `getInputAttr()`
|
|
72
|
+
- [2.7.1] Bug fix in `FormPlaintext` widget
|
|
73
|
+
|
|
74
|
+
## 2026-04-13
|
|
75
|
+
|
|
76
|
+
- [2.7.0] Rewrite `getInputAttr()` to not dependent to any template data, rather only depend on attributes
|
|
77
|
+
|
|
78
|
+
## 2026-04-11
|
|
79
|
+
|
|
80
|
+
- [2.6.5] Bug fix in `form-select-ext` widget
|
|
81
|
+
- [2.6.5] Bug fix in `container` widget
|
|
82
|
+
- [2.6.5] Bug fix in `getInputAttr()`
|
|
83
|
+
- [2.6.5] Bug fix in `parseVariant()`
|
|
84
|
+
- [2.6.5] Bug fix in `parseSimple()`
|
|
85
|
+
|
|
86
|
+
## 2026-04-07
|
|
87
|
+
|
|
88
|
+
- [2.6.4] Bug fix on widget `form-select-ext`
|
|
89
|
+
- [2.6.4] Bug fix on `buildFormSelect()`
|
|
90
|
+
|
|
91
|
+
## 2026-04-01
|
|
92
|
+
|
|
93
|
+
- [2.6.3] Bug fix on widget `form-datetime`
|
|
94
|
+
|
|
95
|
+
## 2026-03-07
|
|
96
|
+
|
|
97
|
+
- [2.6.2] Bug fix on widget `app-launcher-trigger`
|
|
98
|
+
|
|
99
|
+
## 2026-03-06
|
|
100
|
+
|
|
101
|
+
- [2.6.1] Bug fix on `wbs.js`
|
|
102
|
+
|
|
103
|
+
## 2026-02-20
|
|
104
|
+
|
|
105
|
+
- [2.6.0] Change `getInputAttr()` to async function
|
|
106
|
+
- [2.6.0] Update to support a function handler as `prop.values`
|
|
107
|
+
- [2.6.0] Add button to admin area in `Drawer` if user is an admin
|
|
108
|
+
|
|
109
|
+
## 2026-02-18
|
|
110
|
+
|
|
111
|
+
- [2.4.0] Update attribute functions from `waibu`
|
|
112
|
+
- [2.4.0] Bug fix on `FormSelectExt` 's static css
|
|
113
|
+
- [2.4.0] Bug fix on `FormSelectCountry` 's static css
|
|
114
|
+
- [2.5.0] Remove `FormSelectCountry` alltogther
|
|
115
|
+
- [2.5.0] Bug fix on `FormSelectExt`'s options
|
|
116
|
+
- [2.5.0] In read only mode, auto detect value from model's values
|
|
117
|
+
|
|
118
|
+
## 2026-02-15
|
|
119
|
+
|
|
120
|
+
- [2.3.0] Add capability to use custom tag on `select`
|
|
121
|
+
- [2.3.0] Now you can hide caret on `<c:form-select-ext />` with `no-caret` attribute
|
|
122
|
+
- [2.3.0] Add `value-store="name:key"` to read/write value to Alpine's store
|
|
123
|
+
|
|
124
|
+
## 2026-02-11
|
|
125
|
+
|
|
126
|
+
- [2.2.3] Bug fix on widget attribute `rounded`
|
|
127
|
+
- [2.2.3] Bug fix on widget `<c:nav-item />`
|
|
128
|
+
|
|
129
|
+
## 2026-02-09
|
|
130
|
+
|
|
131
|
+
- [2.2.0] Start using simplified `webAppCtx`
|
|
132
|
+
- [2.2.1] Bug fix on `sidebar` widget
|
|
133
|
+
- [2.2.2] Bug fix on `sidebar` widget
|
|
134
|
+
|
|
135
|
+
## 2026-02-04
|
|
136
|
+
|
|
137
|
+
- [2.1.8] Bug fix on `<c:nav-dropdown-setting>`
|
|
138
|
+
|
|
139
|
+
## 2026-02-03
|
|
140
|
+
|
|
141
|
+
- [2.1.7] Bug fix on menu direction
|
|
142
|
+
- [2.1.7] Bug fix on `dropdown` widget
|
|
143
|
+
|
|
144
|
+
## 2026-01-18
|
|
145
|
+
|
|
146
|
+
- [2.1.5] Darkmode handling
|
|
147
|
+
- [2.1.5] Put border around fieldset if its type is a card
|
|
148
|
+
- [2.1.6] Remove `getOrCreateInstance()` on `wbs.appLauncher()`
|
|
149
|
+
|
|
150
|
+
## 2026-01-17
|
|
151
|
+
|
|
152
|
+
- [2.1.3] Sidebar buttons in inactive state should be transparent
|
|
153
|
+
- [2.1.4] Add capability to set custom theme & iconset through headers
|
|
154
|
+
|
|
155
|
+
## 2026-01-13
|
|
156
|
+
|
|
157
|
+
- [2.1.1] Bug fix on waibuMpa's widgeting system
|
|
158
|
+
|
|
159
|
+
## 2025-12-31
|
|
160
|
+
|
|
161
|
+
- [2.1.0] Ported to match `bajo@2.2.x` specs
|
|
162
|
+
- [2.1.0] Upgrade to `bootstrap@5.3.8`
|
package/wiki/CONFIG.md
CHANGED
|
File without changes
|
package/wiki/CONTRIBUTING.md
CHANGED
|
File without changes
|