From e2980ef4136a21f957f8cefde1898b0666832d68 Mon Sep 17 00:00:00 2001 From: zhixin Date: Sun, 22 Dec 2024 11:29:25 +0800 Subject: [PATCH] Add 1.23.5 --- versions/1.23.5/CNAME | 1 + versions/1.23.5/LICENSE | 319 ++ versions/1.23.5/assets/css/docs.min.css | 8 + versions/1.23.5/assets/css/docs.min.css.map | 1 + versions/1.23.5/assets/css/style.css | 179 + versions/1.23.5/assets/images/alipay.jpg | Bin 0 -> 104403 bytes versions/1.23.5/assets/images/alipayLogo.png | Bin 0 -> 22275 bytes .../1.23.5/assets/images/bootstrap-table.jpg | Bin 0 -> 30089 bytes versions/1.23.5/assets/images/bootstrap3.jpg | Bin 0 -> 10091 bytes versions/1.23.5/assets/images/bootstrap4.jpg | Bin 0 -> 16012 bytes versions/1.23.5/assets/images/bootstrap5.jpg | Bin 0 -> 20774 bytes versions/1.23.5/assets/images/bulma.jpg | Bin 0 -> 17681 bytes versions/1.23.5/assets/images/edu-birdie.png | Bin 0 -> 22304 bytes .../1.23.5/assets/images/element-table.jpg | Bin 0 -> 8230 bytes versions/1.23.5/assets/images/foundation.jpg | Bin 0 -> 14590 bytes versions/1.23.5/assets/images/fresh-table.jpg | Bin 0 -> 12570 bytes .../1.23.5/assets/images/light-bootstrap.jpg | Bin 0 -> 12777 bytes versions/1.23.5/assets/images/materialize.jpg | Bin 0 -> 9728 bytes .../1.23.5/assets/images/pager-dashboard.jpg | Bin 0 -> 15653 bytes versions/1.23.5/assets/images/paypalLogo.png | Bin 0 -> 4245 bytes versions/1.23.5/assets/images/semantic.jpg | Bin 0 -> 8301 bytes versions/1.23.5/assets/images/weixin.png | Bin 0 -> 85427 bytes versions/1.23.5/assets/images/weixinLogo.png | Bin 0 -> 3779 bytes versions/1.23.5/assets/js/docs.min.js | 22 + versions/1.23.5/assets/js/supports.js | 34 + .../js/themes/assets/themes-CVLjNXsq.css | 1 + .../js/themes/assets/themes-C_IVHFtD.js | 17 + versions/1.23.5/docs/about/index.html | 11 + versions/1.23.5/docs/about/license/index.html | 443 ++ .../1.23.5/docs/about/overview/index.html | 415 ++ versions/1.23.5/docs/about/team/index.html | 436 ++ .../1.23.5/docs/about/translations/index.html | 417 ++ .../1.23.5/docs/api/column-options/index.html | 1295 ++++++ versions/1.23.5/docs/api/events/index.html | 1099 +++++ versions/1.23.5/docs/api/index.html | 11 + .../1.23.5/docs/api/localizations/index.html | 685 ++++ versions/1.23.5/docs/api/methods/index.html | 1578 ++++++++ .../1.23.5/docs/api/table-options/index.html | 3553 +++++++++++++++++ .../1.23.5/docs/extensions/addrbar/index.html | 512 +++ .../docs/extensions/auto-refresh/index.html | 553 +++ .../1.23.5/docs/extensions/cookie/index.html | 745 ++++ .../docs/extensions/copy-rows/index.html | 619 +++ .../docs/extensions/custom-view/index.html | 628 +++ .../docs/extensions/defer-url/index.html | 448 +++ .../docs/extensions/editable/index.html | 565 +++ .../1.23.5/docs/extensions/export/index.html | 673 ++++ .../docs/extensions/filter-control/index.html | 963 +++++ .../docs/extensions/fixed-columns/index.html | 502 +++ .../docs/extensions/group-by-v2/index.html | 568 +++ .../docs/extensions/i18n-enhance/index.html | 454 +++ .../docs/extensions/key-events/index.html | 456 +++ .../1.23.5/docs/extensions/mobile/index.html | 528 +++ .../docs/extensions/multiple-sort/index.html | 754 ++++ .../docs/extensions/page-jump-to/index.html | 487 +++ .../docs/extensions/pipeline/index.html | 515 +++ .../1.23.5/docs/extensions/print/index.html | 687 ++++ .../extensions/reorder-columns/index.html | 529 +++ .../docs/extensions/reorder-rows/index.html | 660 +++ .../docs/extensions/resizable/index.html | 457 +++ .../docs/extensions/sticky-header/index.html | 511 +++ .../1.23.5/docs/extensions/toolbar/index.html | 555 +++ .../docs/extensions/treegrid/index.html | 530 +++ versions/1.23.5/docs/faq/index.html | 459 +++ .../browsers-devices/index.html | 438 ++ .../getting-started/build-tools/index.html | 479 +++ .../docs/getting-started/contents/index.html | 443 ++ .../docs/getting-started/download/index.html | 458 +++ .../getting-started/introduction/index.html | 508 +++ .../docs/getting-started/usage/index.html | 531 +++ versions/1.23.5/docs/index.html | 11 + versions/1.23.5/docs/online-editor/index.html | 518 +++ versions/1.23.5/docs/vuejs/browser/index.html | 622 +++ .../1.23.5/docs/vuejs/component/index.html | 498 +++ .../1.23.5/docs/vuejs/introduction/index.html | 457 +++ versions/1.23.5/docs/vuejs/webpack/index.html | 585 +++ versions/1.23.5/documentation/index.html | 11 + versions/1.23.5/es/documentation/index.html | 11 + versions/1.23.5/es/faq/index.html | 11 + versions/1.23.5/es/home/index.html | 11 + versions/1.23.5/es/index.html | 11 + versions/1.23.5/es/online-editor/index.html | 11 + versions/1.23.5/faq/index.html | 11 + versions/1.23.5/favicon.png | Bin 0 -> 61067 bytes versions/1.23.5/getting-started/index.html | 11 + versions/1.23.5/home/index.html | 11 + versions/1.23.5/index.html | 352 ++ versions/1.23.5/news/index.html | 1260 ++++++ versions/1.23.5/online-editor/index.html | 11 + versions/1.23.5/redirects.json | 1 + versions/1.23.5/robots.txt | 6 + versions/1.23.5/sitemap.xml | 168 + .../1.23.5/themes/bootstrap-table/index.html | 264 ++ versions/1.23.5/themes/bootstrap3/index.html | 264 ++ versions/1.23.5/themes/bootstrap4.html | 11 + versions/1.23.5/themes/bootstrap4/index.html | 266 ++ versions/1.23.5/themes/bulma/index.html | 268 ++ versions/1.23.5/themes/foundation/index.html | 269 ++ versions/1.23.5/themes/index.html | 184 + versions/1.23.5/themes/materialize/index.html | 269 ++ versions/1.23.5/themes/semantic/index.html | 269 ++ versions/1.23.5/vuejs/index.html | 11 + .../1.23.5/zh-cn/documentation/index.html | 11 + versions/1.23.5/zh-cn/faq/index.html | 11 + versions/1.23.5/zh-cn/home/index.html | 11 + versions/1.23.5/zh-cn/index.html | 11 + .../1.23.5/zh-cn/online-editor/index.html | 11 + 106 files changed, 34458 insertions(+) create mode 100644 versions/1.23.5/CNAME create mode 100644 versions/1.23.5/LICENSE create mode 100644 versions/1.23.5/assets/css/docs.min.css create mode 100644 versions/1.23.5/assets/css/docs.min.css.map create mode 100644 versions/1.23.5/assets/css/style.css create mode 100644 versions/1.23.5/assets/images/alipay.jpg create mode 100644 versions/1.23.5/assets/images/alipayLogo.png create mode 100644 versions/1.23.5/assets/images/bootstrap-table.jpg create mode 100644 versions/1.23.5/assets/images/bootstrap3.jpg create mode 100644 versions/1.23.5/assets/images/bootstrap4.jpg create mode 100644 versions/1.23.5/assets/images/bootstrap5.jpg create mode 100644 versions/1.23.5/assets/images/bulma.jpg create mode 100644 versions/1.23.5/assets/images/edu-birdie.png create mode 100644 versions/1.23.5/assets/images/element-table.jpg create mode 100644 versions/1.23.5/assets/images/foundation.jpg create mode 100644 versions/1.23.5/assets/images/fresh-table.jpg create mode 100644 versions/1.23.5/assets/images/light-bootstrap.jpg create mode 100644 versions/1.23.5/assets/images/materialize.jpg create mode 100644 versions/1.23.5/assets/images/pager-dashboard.jpg create mode 100644 versions/1.23.5/assets/images/paypalLogo.png create mode 100644 versions/1.23.5/assets/images/semantic.jpg create mode 100644 versions/1.23.5/assets/images/weixin.png create mode 100644 versions/1.23.5/assets/images/weixinLogo.png create mode 100644 versions/1.23.5/assets/js/docs.min.js create mode 100644 versions/1.23.5/assets/js/supports.js create mode 100644 versions/1.23.5/assets/js/themes/assets/themes-CVLjNXsq.css create mode 100644 versions/1.23.5/assets/js/themes/assets/themes-C_IVHFtD.js create mode 100644 versions/1.23.5/docs/about/index.html create mode 100644 versions/1.23.5/docs/about/license/index.html create mode 100644 versions/1.23.5/docs/about/overview/index.html create mode 100644 versions/1.23.5/docs/about/team/index.html create mode 100644 versions/1.23.5/docs/about/translations/index.html create mode 100644 versions/1.23.5/docs/api/column-options/index.html create mode 100644 versions/1.23.5/docs/api/events/index.html create mode 100644 versions/1.23.5/docs/api/index.html create mode 100644 versions/1.23.5/docs/api/localizations/index.html create mode 100644 versions/1.23.5/docs/api/methods/index.html create mode 100644 versions/1.23.5/docs/api/table-options/index.html create mode 100644 versions/1.23.5/docs/extensions/addrbar/index.html create mode 100644 versions/1.23.5/docs/extensions/auto-refresh/index.html create mode 100644 versions/1.23.5/docs/extensions/cookie/index.html create mode 100644 versions/1.23.5/docs/extensions/copy-rows/index.html create mode 100644 versions/1.23.5/docs/extensions/custom-view/index.html create mode 100644 versions/1.23.5/docs/extensions/defer-url/index.html create mode 100644 versions/1.23.5/docs/extensions/editable/index.html create mode 100644 versions/1.23.5/docs/extensions/export/index.html create mode 100644 versions/1.23.5/docs/extensions/filter-control/index.html create mode 100644 versions/1.23.5/docs/extensions/fixed-columns/index.html create mode 100644 versions/1.23.5/docs/extensions/group-by-v2/index.html create mode 100644 versions/1.23.5/docs/extensions/i18n-enhance/index.html create mode 100644 versions/1.23.5/docs/extensions/key-events/index.html create mode 100644 versions/1.23.5/docs/extensions/mobile/index.html create mode 100644 versions/1.23.5/docs/extensions/multiple-sort/index.html create mode 100644 versions/1.23.5/docs/extensions/page-jump-to/index.html create mode 100644 versions/1.23.5/docs/extensions/pipeline/index.html create mode 100644 versions/1.23.5/docs/extensions/print/index.html create mode 100644 versions/1.23.5/docs/extensions/reorder-columns/index.html create mode 100644 versions/1.23.5/docs/extensions/reorder-rows/index.html create mode 100644 versions/1.23.5/docs/extensions/resizable/index.html create mode 100644 versions/1.23.5/docs/extensions/sticky-header/index.html create mode 100644 versions/1.23.5/docs/extensions/toolbar/index.html create mode 100644 versions/1.23.5/docs/extensions/treegrid/index.html create mode 100644 versions/1.23.5/docs/faq/index.html create mode 100644 versions/1.23.5/docs/getting-started/browsers-devices/index.html create mode 100644 versions/1.23.5/docs/getting-started/build-tools/index.html create mode 100644 versions/1.23.5/docs/getting-started/contents/index.html create mode 100644 versions/1.23.5/docs/getting-started/download/index.html create mode 100644 versions/1.23.5/docs/getting-started/introduction/index.html create mode 100644 versions/1.23.5/docs/getting-started/usage/index.html create mode 100644 versions/1.23.5/docs/index.html create mode 100644 versions/1.23.5/docs/online-editor/index.html create mode 100644 versions/1.23.5/docs/vuejs/browser/index.html create mode 100644 versions/1.23.5/docs/vuejs/component/index.html create mode 100644 versions/1.23.5/docs/vuejs/introduction/index.html create mode 100644 versions/1.23.5/docs/vuejs/webpack/index.html create mode 100644 versions/1.23.5/documentation/index.html create mode 100644 versions/1.23.5/es/documentation/index.html create mode 100644 versions/1.23.5/es/faq/index.html create mode 100644 versions/1.23.5/es/home/index.html create mode 100644 versions/1.23.5/es/index.html create mode 100644 versions/1.23.5/es/online-editor/index.html create mode 100644 versions/1.23.5/faq/index.html create mode 100644 versions/1.23.5/favicon.png create mode 100644 versions/1.23.5/getting-started/index.html create mode 100644 versions/1.23.5/home/index.html create mode 100644 versions/1.23.5/index.html create mode 100644 versions/1.23.5/news/index.html create mode 100644 versions/1.23.5/online-editor/index.html create mode 100644 versions/1.23.5/redirects.json create mode 100644 versions/1.23.5/robots.txt create mode 100644 versions/1.23.5/sitemap.xml create mode 100644 versions/1.23.5/themes/bootstrap-table/index.html create mode 100644 versions/1.23.5/themes/bootstrap3/index.html create mode 100644 versions/1.23.5/themes/bootstrap4.html create mode 100644 versions/1.23.5/themes/bootstrap4/index.html create mode 100644 versions/1.23.5/themes/bulma/index.html create mode 100644 versions/1.23.5/themes/foundation/index.html create mode 100644 versions/1.23.5/themes/index.html create mode 100644 versions/1.23.5/themes/materialize/index.html create mode 100644 versions/1.23.5/themes/semantic/index.html create mode 100644 versions/1.23.5/vuejs/index.html create mode 100644 versions/1.23.5/zh-cn/documentation/index.html create mode 100644 versions/1.23.5/zh-cn/faq/index.html create mode 100644 versions/1.23.5/zh-cn/home/index.html create mode 100644 versions/1.23.5/zh-cn/index.html create mode 100644 versions/1.23.5/zh-cn/online-editor/index.html diff --git a/versions/1.23.5/CNAME b/versions/1.23.5/CNAME new file mode 100644 index 0000000000..af9610cf7b --- /dev/null +++ b/versions/1.23.5/CNAME @@ -0,0 +1 @@ +bootstrap-table.com diff --git a/versions/1.23.5/LICENSE b/versions/1.23.5/LICENSE new file mode 100644 index 0000000000..58b8eb1d5f --- /dev/null +++ b/versions/1.23.5/LICENSE @@ -0,0 +1,319 @@ +Creative Commons Legal Code + +Attribution 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR + DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE +TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY +BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS +CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND +CONDITIONS. + +1. Definitions + +a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may be + recast, transformed, or adapted including in any form recognizably + derived from the original, except that a work that constitutes a + Collection will not be considered an Adaptation for the purpose of + this License. For the avoidance of doubt, where the Work is a musical + work, performance or phonogram, the synchronization of the Work in + timed-relation with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. +b. "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed + in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, in + which the Work is included in its entirety in unmodified form along + with one or more other contributions, each constituting separate and + independent works in themselves, which together are assembled into a + collective whole. A work that constitutes a Collection will not be + considered an Adaptation (as defined above) for the purposes of this + License. +c. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. +d. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. +e. "Original Author" means, in the case of a literary or artistic work, + the individual, individuals, entity or entities who created the Work + or if no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. +f. "Work" means the literary and/or artistic work offered under the terms + of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, + pamphlet and other writing; a lecture, address, sermon or other work + of the same nature; a dramatic or dramatico-musical work; a + choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which are + assimilated works expressed by a process analogous to cinematography; + a work of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of applied + art; an illustration, map, plan, sketch or three-dimensional work + relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to the + extent it is protected as a copyrightable work; or a work performed by + a variety or circus performer to the extent it is not otherwise + considered a literary or artistic work. +g. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. +h. "Publicly Perform" means to perform public recitations of the Work and + to communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a + place individually chosen by them; to perform the Work to the public + by any means or process and the communication to the public of the + performances of the Work, including by public digital performance; to + broadcast and rebroadcast the Work by any means including signs, + sounds or images. +i. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, +limit, or restrict any uses free from copyright or rights arising from +limitations or exceptions that are provided for in connection with the +copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: + +a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; +b. to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to + clearly label, demarcate or otherwise identify that changes were made + to the original Work. For example, a translation could be marked "The + original work was translated from English to Spanish," or a + modification could indicate "The original work has been modified."; +c. to Distribute and Publicly Perform the Work including as incorporated + in Collections; and, +d. to Distribute and Publicly Perform Adaptations. +e. For the avoidance of doubt: + +i. Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme cannot be waived, the Licensor + reserves the exclusive right to collect such royalties for any + exercise by You of the rights granted under this License; +ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives the + exclusive right to collect such royalties for any exercise by You + of the rights granted under this License; and, +iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that the + Licensor is a member of a collecting society that administers + voluntary licensing schemes, via that society, from any exercise + by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights in +other media and formats. Subject to Section 8(f), all rights not expressly +granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: + +a. You may Distribute or Publicly Perform the Work only under the terms + of this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms + on the Work that restrict the terms of this License or the ability of + the recipient of the Work to exercise the rights granted to that + recipient under the terms of the License. You may not sublicense the + Work. You must keep intact all notices that refer to this License and + to the disclaimer of warranties with every copy of the Work You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Work, You may not impose any effective technological + measures on the Work that restrict the ability of a recipient of the + Work from You to exercise the rights granted to that recipient under + the terms of the License. This Section 4(a) applies to the Work as + incorporated in a Collection, but this does not require the Collection + apart from the Work itself to be made subject to the terms of this + License. If You create a Collection, upon notice from any Licensor You + must, to the extent practicable, remove from the Collection any credit + as required by Section 4(b), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the extent + practicable, remove from the Adaptation any credit as required by + Section 4(b), as requested. +b. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party + or parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party + or parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the Work; + and (iv) , consistent with Section 3(b), in the case of an Adaptation, + a credit identifying the use of the Work in the Adaptation (e.g., + "French translation of the Work by Original Author," or "Screenplay + based on original Work by Original Author"). The credit required by + this Section 4 (b) may be implemented in any reasonable manner; + provided, however, that in the case of a Adaptation or Collection, at + a minimum such credit will appear, if a credit for all contributing + authors of the Adaptation or Collection appears, then as part of these + credits and in a manner at least as prominent as the credits for the + other contributing authors. For the avoidance of doubt, You may only + use the credit required by this Section for the purpose of attribution + in the manner set out above and, by exercising Your rights under this + License, You may not implicitly or explicitly assert or imply any + connection with, sponsorship or endorsement by the Original Author, + Licensor and/or Attribution Parties, as appropriate, of You or Your + use of the Work, without the separate, express prior written + permission of the Original Author, Licensor and/or Attribution + Parties. +c. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify or + take other derogatory action in relation to the Work which would be + prejudicial to the Original Author's honor or reputation. Licensor + agrees that in those jurisdictions (e.g. Japan), in which any exercise + of the right granted in Section 3(b) of this License (the right to + make Adaptations) would be deemed to be a distortion, mutilation, + modification or other derogatory action prejudicial to the Original + Author's honor and reputation, the Licensor will waive or not assert, + as appropriate, this Section, to the fullest extent permitted by the + applicable national law, to enable You to reasonably exercise Your + right under Section 3(b) of this License (right to make Adaptations) + but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR +OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY +KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, +INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF +LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, +WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION +OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. +b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + +8. Miscellaneous + +a. Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. +b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same + terms and conditions as the license granted to You under this License. +c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. +d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. +e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. +f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 + and the Universal Copyright Convention (as revised on July 24, 1971). + These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights under + applicable law. + + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of doubt, + this trademark restriction does not form part of this License. + + Creative Commons may be contacted at http://creativecommons.org/. diff --git a/versions/1.23.5/assets/css/docs.min.css b/versions/1.23.5/assets/css/docs.min.css new file mode 100644 index 0000000000..f454ee88e5 --- /dev/null +++ b/versions/1.23.5/assets/css/docs.min.css @@ -0,0 +1,8 @@ +/*! + * Bootstrap Docs (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under the Creative Commons Attribution 3.0 Unported License. For + * details, see https://creativecommons.org/licenses/by/3.0/. + */.bd-navbar{min-height:4rem;background-color:#563d7c;box-shadow:0 .5rem 1rem rgba(0,0,0,.05),inset 0 -1px 0 rgba(0,0,0,.1)}@media (max-width:991.98px){.bd-navbar{padding-right:.5rem;padding-left:.5rem}.bd-navbar .navbar-nav-scroll{max-width:100%;height:2.5rem;margin-top:.25rem;overflow:hidden;font-size:.875rem}.bd-navbar .navbar-nav-scroll .navbar-nav{padding-bottom:2rem;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}@media (min-width:768px){@supports ((position:-webkit-sticky) or (position:sticky)){.bd-navbar{position:-webkit-sticky;position:sticky;top:0;z-index:1071}}}.bd-navbar .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem;color:#cbbde2}.bd-navbar .navbar-nav .nav-link.active,.bd-navbar .navbar-nav .nav-link:hover{color:#fff;background-color:transparent}.bd-navbar .navbar-nav .nav-link.active{font-weight:600}.bd-navbar .navbar-nav-svg{display:inline-block;width:1rem;height:1rem;vertical-align:text-top}.bd-navbar .dropdown-menu{font-size:.875rem}.bd-navbar .dropdown-item.active{font-weight:600;color:#212529;background-color:transparent;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:.4rem .6rem;background-size:.75rem .75rem}.bd-masthead{position:relative;padding:3rem 15px}.bd-masthead h1{line-height:1}.bd-masthead .btn{padding:.8rem 2rem;font-weight:600}.bd-masthead .carbonad{margin-top:0!important;margin-bottom:-3rem!important}@media (min-width:576px){.bd-masthead{padding-top:5rem;padding-bottom:5rem}.bd-masthead .carbonad{margin-bottom:0!important}}@media (min-width:768px){.bd-masthead h1{font-size:4rem}.bd-masthead .carbonad{margin-top:3rem!important}}.half-rule{width:6rem;margin:2.5rem 0}.masthead-followup .bd-clipboard{display:none}.masthead-followup .highlight{padding:.5rem 0;background-color:transparent}#carbonads{position:static;display:block;max-width:400px;padding:15px 15px 15px 160px;margin:2rem 0;overflow:hidden;font-size:13px;line-height:1.4;text-align:left;background-color:rgba(0,0,0,.05)}#carbonads a{color:#333;text-decoration:none}@media (min-width:576px){#carbonads{max-width:330px;border-radius:4px}}.carbon-img{float:left;margin-left:-145px}.carbon-poweredby{display:block;color:#777!important}.bd-content{-ms-flex-order:1;order:1}.bd-content>h2[id],.bd-content>h3[id],.bd-content>h4[id]{pointer-events:none}.bd-content>h2[id]::before,.bd-content>h3[id]::before,.bd-content>h4[id]::before{display:block;height:6rem;margin-top:-6rem;content:""}.bd-content>table{width:100%;max-width:100%;margin-bottom:1rem}@media (max-width:991.98px){.bd-content>table{display:block;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar}.bd-content>table.table-bordered{border:0}}.bd-content>table>tbody>tr>td,.bd-content>table>tbody>tr>th,.bd-content>table>tfoot>tr>td,.bd-content>table>tfoot>tr>th,.bd-content>table>thead>tr>td,.bd-content>table>thead>tr>th{padding:.75rem;vertical-align:top;border:1px solid #dee2e6}.bd-content>table>tbody>tr>td>p:last-child,.bd-content>table>tbody>tr>th>p:last-child,.bd-content>table>tfoot>tr>td>p:last-child,.bd-content>table>tfoot>tr>th>p:last-child,.bd-content>table>thead>tr>td>p:last-child,.bd-content>table>thead>tr>th>p:last-child{margin-bottom:0}.bd-content>table td:first-child>code{white-space:nowrap}.bd-content-title{display:block;pointer-events:auto}.bd-content>h2:not(:first-child){margin-top:3rem}.bd-content>h3{margin-top:1.5rem}.bd-content>ol li,.bd-content>ul li{margin-bottom:.25rem}@media (min-width:992px){.bd-content>ol,.bd-content>p,.bd-content>ul{max-width:80%}}.bd-title{margin-top:1rem;margin-bottom:.5rem;font-weight:300}@media (min-width:576px){.bd-title{font-size:3rem}}.bd-lead{font-size:1.125rem;font-weight:300}@media (min-width:576px){.bd-lead{max-width:80%;margin-bottom:1rem;font-size:1.5rem}}.bd-text-purple{color:#563d7c}.bd-text-purple-bright{color:#7952b3}.skippy{display:block;padding:1em;color:#fff;text-align:center;background-color:#563d7c;outline:0}.skippy:hover{color:#fff}.skippy-text{padding:.5em;outline:1px dotted}.bd-toc{-ms-flex-order:2;order:2;padding-top:1.5rem;padding-bottom:1.5rem;font-size:.875rem}@supports ((position:-webkit-sticky) or (position:sticky)){.bd-toc{position:-webkit-sticky;position:sticky;top:4rem;height:calc(100vh - 4rem);overflow-y:auto}}.section-nav{padding-left:0;border-left:1px solid #eee}.section-nav ul{padding-left:1rem}.toc-entry{display:block}.toc-entry a{display:block;padding:.125rem 1.5rem;color:#99979c}.toc-entry a:hover{color:#007bff;text-decoration:none}.bd-sidebar{-ms-flex-order:0;order:0;border-bottom:1px solid rgba(0,0,0,.1)}@media (min-width:768px){.bd-sidebar{border-right:1px solid rgba(0,0,0,.1)}@supports ((position:-webkit-sticky) or (position:sticky)){.bd-sidebar{position:-webkit-sticky;position:sticky;top:4rem;z-index:1000;height:calc(100vh - 4rem)}}}@media (min-width:1200px){.bd-sidebar{-ms-flex:0 1 320px;flex:0 1 320px}}.bd-links{padding-top:1rem;padding-bottom:1rem;margin-right:-15px;margin-left:-15px}@media (min-width:768px){@supports ((position:-webkit-sticky) or (position:sticky)){.bd-links{max-height:calc(100vh - 9rem);overflow-y:auto}}}@media (min-width:768px){.bd-links{display:block!important}}.bd-search{position:relative;padding:1rem 15px;margin-right:-15px;margin-left:-15px;border-bottom:1px solid rgba(0,0,0,.05)}.bd-search .form-control:focus{border-color:#7952b3;box-shadow:0 0 0 3px rgba(121,82,179,.25)}.bd-search-docs-toggle{line-height:1;color:#212529}.bd-sidenav{display:none}.bd-toc-link{display:block;padding:.25rem 1.5rem;font-weight:600;color:rgba(0,0,0,.65)}.bd-toc-link:hover{color:rgba(0,0,0,.85);text-decoration:none}.bd-toc-item.active{margin-bottom:1rem}.bd-toc-item.active:not(:first-child){margin-top:1rem}.bd-toc-item.active>.bd-toc-link{color:rgba(0,0,0,.85)}.bd-toc-item.active>.bd-toc-link:hover{background-color:transparent}.bd-toc-item.active>.bd-sidenav{display:block}.bd-sidebar .nav>li>a{display:block;padding:.25rem 1.5rem;font-size:90%;color:rgba(0,0,0,.65)}.bd-sidebar .nav>li>a:hover{color:rgba(0,0,0,.85);text-decoration:none;background-color:transparent}.bd-sidebar .nav>.active:hover>a,.bd-sidebar .nav>.active>a{font-weight:600;color:rgba(0,0,0,.85);background-color:transparent}.bd-footer{font-size:85%;text-align:center;background-color:#f7f7f7}.bd-footer a{font-weight:600;color:#495057}.bd-footer a:focus,.bd-footer a:hover{color:#007bff}.bd-footer p{margin-bottom:0}@media (min-width:576px){.bd-footer{text-align:left}}.bd-footer-links{padding-left:0;margin-bottom:1rem}.bd-footer-links li{display:inline-block}.bd-footer-links li+li{margin-left:1rem}.bd-example-row .row>.col,.bd-example-row .row>[class^=col-]{padding-top:.75rem;padding-bottom:.75rem;background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.2)}.bd-example-row .row+.row{margin-top:1rem}.bd-example-row .flex-items-bottom,.bd-example-row .flex-items-middle,.bd-example-row .flex-items-top{min-height:6rem;background-color:rgba(255,0,0,.1)}.bd-example-row-flex-cols .row{min-height:10rem;background-color:rgba(255,0,0,.1)}.bd-highlight{background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.15)}.example-container{width:800px;width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.example-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.example-content-main{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.example-content-main{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}}@media (min-width:992px){.example-content-main{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}}.example-content-secondary{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.example-content-secondary{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}}@media (min-width:992px){.example-content-secondary{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}}.bd-example-container{min-width:16rem;max-width:25rem;margin-right:auto;margin-left:auto}.bd-example-container-header{height:3rem;margin-bottom:.5rem;background-color:#fff;border-radius:.25rem}.bd-example-container-sidebar{float:right;width:4rem;height:8rem;background-color:#80bdff;border-radius:.25rem}.bd-example-container-body{height:8rem;margin-right:4.5rem;background-color:#957bbe;border-radius:.25rem}.bd-example-container-fluid{max-width:none}.bd-example{position:relative;padding:1rem;margin:1rem -15px 0;border:solid #f8f9fa;border-width:.2rem 0 0}.bd-example::after{display:block;clear:both;content:""}@media (min-width:576px){.bd-example{padding:1.5rem;margin-right:0;margin-left:0;border-width:.2rem}}.bd-example+.clipboard+.highlight,.bd-example+.highlight{margin-top:0}.bd-example+p{margin-top:2rem}.bd-example .pos-f-t{position:relative;margin:-1rem}@media (min-width:576px){.bd-example .pos-f-t{margin:-1.5rem}}.bd-example .custom-file-input:lang(es)~.custom-file-label::after{content:"Elegir"}.bd-example>.form-control+.form-control{margin-top:.5rem}.bd-example>.alert+.alert,.bd-example>.nav+.nav,.bd-example>.navbar+.navbar,.bd-example>.progress+.btn,.bd-example>.progress+.progress{margin-top:1rem}.bd-example>.dropdown-menu:first-child{position:static;display:block}.bd-example>.form-group:last-child{margin-bottom:0}.bd-example>.close{float:none}.bd-example-type .table .type-info{color:#999;vertical-align:middle}.bd-example-type .table td{padding:1rem 0;border-color:#eee}.bd-example-type .table tr:first-child td{border-top:0}.bd-example-type h1,.bd-example-type h2,.bd-example-type h3,.bd-example-type h4,.bd-example-type h5,.bd-example-type h6{margin-top:0;margin-bottom:0}.bd-example-bg-classes p{padding:1rem}.bd-example>img+img,.bd-example>svg+svg{margin-left:.5rem}.bd-example>.btn-group{margin-top:.25rem;margin-bottom:.25rem}.bd-example>.btn-toolbar+.btn-toolbar{margin-top:.5rem}.bd-example-control-sizing input[type=text]+input[type=text],.bd-example-control-sizing select{margin-top:.5rem}.bd-example-form .input-group{margin-bottom:.5rem}.bd-example>textarea.form-control{resize:vertical}.bd-example>.list-group{max-width:400px}.bd-example .fixed-top,.bd-example .sticky-top{position:static;margin:-1rem -1rem 1rem}.bd-example .fixed-bottom{position:static;margin:1rem -1rem -1rem}@media (min-width:576px){.bd-example .fixed-top,.bd-example .sticky-top{margin:-1.5rem -1.5rem 1rem}.bd-example .fixed-bottom{margin:1rem -1.5rem -1.5rem}}.bd-example .pagination{margin-top:.5rem;margin-bottom:.5rem}.modal{z-index:1072}.modal .popover,.modal .tooltip{z-index:1073}.modal-backdrop{z-index:1071}.bd-example-modal{background-color:#fafafa}.bd-example-modal .modal{position:relative;top:auto;right:auto;bottom:auto;left:auto;z-index:1;display:block}.bd-example-modal .modal-dialog{left:auto;margin-right:auto;margin-left:auto}.bd-example-tabs .nav-tabs{margin-bottom:1rem}.bd-example-popover-static{padding-bottom:1.5rem;background-color:#f9f9f9}.bd-example-popover-static .popover{position:relative;display:block;float:left;width:260px;margin:1.25rem}.tooltip-demo a{white-space:nowrap}.bd-example-tooltip-static .tooltip{position:relative;display:inline-block;margin:10px 20px;opacity:1}.scrollspy-example{position:relative;height:200px;margin-top:.5rem;overflow:auto}.scrollspy-example-2{position:relative;height:350px;overflow:auto}.bd-example-border-utils [class^=border]{display:inline-block;width:5rem;height:5rem;margin:.25rem;background-color:#f5f5f5}.bd-example-border-utils-0 [class^=border]{border:1px solid #dee2e6}.highlight{padding:1rem;margin-top:1rem;margin-bottom:1rem;background-color:#f8f9fa;-ms-overflow-style:-ms-autohiding-scrollbar}@media (min-width:576px){.highlight{padding:1.5rem}}.bd-content .highlight{margin-right:-15px;margin-left:-15px}@media (min-width:576px){.bd-content .highlight{margin-right:0;margin-left:0}}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0}.highlight pre code{font-size:inherit;color:#212529}.btn-bd-primary{font-weight:600;color:#7952b3;border-color:#7952b3}.btn-bd-primary:active,.btn-bd-primary:hover{color:#fff;background-color:#7952b3;border-color:#7952b3}.btn-bd-primary:focus{box-shadow:0 0 0 3px rgba(121,82,179,.25)}.btn-bd-download{font-weight:600;color:#ffe484;border-color:#ffe484}.btn-bd-download:active,.btn-bd-download:hover{color:#2a2730;background-color:#ffe484;border-color:#ffe484}.btn-bd-download:focus{box-shadow:0 0 0 3px rgba(255,228,132,.25)}.bd-callout{padding:1.25rem;margin-top:1.25rem;margin-bottom:1.25rem;border:1px solid #eee;border-left-width:.25rem;border-radius:.25rem}.bd-callout h4{margin-top:0;margin-bottom:.25rem}.bd-callout p:last-child{margin-bottom:0}.bd-callout code{border-radius:.25rem}.bd-callout+.bd-callout{margin-top:-.25rem}.bd-callout-info{border-left-color:#5bc0de}.bd-callout-info h4{color:#5bc0de}.bd-callout-warning{border-left-color:#f0ad4e}.bd-callout-warning h4{color:#f0ad4e}.bd-callout-danger{border-left-color:#d9534f}.bd-callout-danger h4{color:#d9534f}.bd-browser-bugs td p{margin-bottom:0}.bd-browser-bugs th:first-child{width:18%}.bd-brand-logos{display:table;width:100%;margin-bottom:1rem;overflow:hidden;color:#563d7c;background-color:#f9f9f9;border-radius:.25rem}.bd-brand-logos .inverse{color:#fff;background-color:#563d7c}.bd-brand-item{padding:4rem 0;text-align:center}.bd-brand-item+.bd-brand-item{border-top:1px solid #fff}.bd-brand-item h1,.bd-brand-item h3{margin-top:0;margin-bottom:0}@media (min-width:768px){.bd-brand-item{display:table-cell;width:1%}.bd-brand-item+.bd-brand-item{border-top:0;border-left:1px solid #fff}.bd-brand-item h1{font-size:4rem}}.color-swatches{margin:0 -5px;overflow:hidden}.color-swatches .bd-purple{background-color:#563d7c}.color-swatches .bd-purple-light{background-color:#cbbde2}.color-swatches .bd-purple-lighter{background-color:#e5e1ea}.color-swatches .bd-gray{background-color:#f9f9f9}.color-swatch{float:left;width:4rem;height:4rem;margin-right:.25rem;margin-left:.25rem;border-radius:.25rem}@media (min-width:768px){.color-swatch{width:6rem;height:6rem}}.swatch-blue{color:#fff;background-color:#007bff}.swatch-indigo{color:#fff;background-color:#6610f2}.swatch-purple{color:#fff;background-color:#6f42c1}.swatch-pink{color:#fff;background-color:#e83e8c}.swatch-red{color:#fff;background-color:#dc3545}.swatch-orange{color:#212529;background-color:#fd7e14}.swatch-yellow{color:#212529;background-color:#ffc107}.swatch-green{color:#fff;background-color:#28a745}.swatch-teal{color:#fff;background-color:#20c997}.swatch-cyan{color:#fff;background-color:#17a2b8}.swatch-white{color:#212529;background-color:#fff}.swatch-gray{color:#fff;background-color:#6c757d}.swatch-gray-dark{color:#fff;background-color:#343a40}.swatch-primary{color:#fff;background-color:#007bff}.swatch-secondary{color:#fff;background-color:#6c757d}.swatch-success{color:#fff;background-color:#28a745}.swatch-info{color:#fff;background-color:#17a2b8}.swatch-warning{color:#212529;background-color:#ffc107}.swatch-danger{color:#fff;background-color:#dc3545}.swatch-light{color:#212529;background-color:#f8f9fa}.swatch-dark{color:#fff;background-color:#343a40}.swatch-100{color:#212529;background-color:#f8f9fa}.swatch-200{color:#212529;background-color:#e9ecef}.swatch-300{color:#212529;background-color:#dee2e6}.swatch-400{color:#212529;background-color:#ced4da}.swatch-500{color:#212529;background-color:#adb5bd}.swatch-600{color:#fff;background-color:#6c757d}.swatch-700{color:#fff;background-color:#495057}.swatch-800{color:#fff;background-color:#343a40}.swatch-900{color:#fff;background-color:#212529}.bd-clipboard{position:relative;display:none;float:right}.bd-clipboard+.highlight{margin-top:0}@media (min-width:768px){.bd-clipboard{display:block}}.btn-clipboard{position:absolute;top:.5rem;right:.5rem;z-index:10;display:block;padding:.25rem .5rem;font-size:75%;color:#818a91;background-color:transparent;border:0;border-radius:.25rem}.btn-clipboard:hover{color:#fff;background-color:#027de7}.bd-placeholder-img{font-size:1.125rem;text-anchor:middle}@media (min-width:768px){.bd-placeholder-img-lg{font-size:3.5rem}}.hll{background-color:#ffc}.c{color:#999}.k{color:#069}.o{color:#555}.cm{color:#999}.cp{color:#099}.c1{color:#999}.cs{color:#999}.gd{background-color:#fcc;border:1px solid #c00}.ge{font-style:italic}.gr{color:red}.gh{color:#030}.gi{background-color:#cfc;border:1px solid #0c0}.go{color:#aaa}.gp{color:#009}.gu{color:#030}.gt{color:#9c6}.kc{color:#069}.kd{color:#069}.kn{color:#069}.kp{color:#069}.kr{color:#069}.kt{color:#078}.m{color:#f60}.s{color:#d44950}.na{color:#4f9fcf}.nb{color:#366}.nc{color:#0a8}.no{color:#360}.nd{color:#99f}.ni{color:#999}.ne{color:#c00}.nf{color:#c0f}.nl{color:#99f}.nn{color:#0cf}.nt{color:#2f6f9f}.nv{color:#033}.ow{color:#000}.w{color:#bbb}.mf{color:#f60}.mh{color:#f60}.mi{color:#f60}.mo{color:#f60}.sb{color:#c30}.sc{color:#c30}.sd{font-style:italic;color:#c30}.s2{color:#c30}.se{color:#c30}.sh{color:#c30}.si{color:#a00}.sx{color:#c30}.sr{color:#3aa}.s1{color:#c30}.ss{color:#fc3}.bp{color:#366}.vc{color:#033}.vg{color:#033}.vi{color:#033}.il{color:#f60}.css .nt+.nt,.css .o,.css .o+.nt{color:#999}.language-bash::before,.language-sh::before{color:#009;content:"$ ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.language-powershell::before{color:#009;content:"PM> ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.anchorjs-link{font-weight:400;color:rgba(0,123,255,.5);transition:color .15s ease-in-out,opacity .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.anchorjs-link{transition:none}}.anchorjs-link:hover{color:#007bff;text-decoration:none}.algolia-autocomplete{display:block!important;-ms-flex:1;flex:1}.algolia-autocomplete .ds-dropdown-menu{width:100%;min-width:0!important;max-width:none!important;padding:.75rem 0!important;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.175)}@media (min-width:768px){.algolia-autocomplete .ds-dropdown-menu{width:175%}}.algolia-autocomplete .ds-dropdown-menu::before{display:none!important}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{padding:0!important;overflow:visible!important;background-color:transparent!important;border:0!important}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{margin-top:0!important}.algolia-autocomplete .algolia-docsearch-suggestion{padding:0!important;overflow:visible!important}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{padding:.125rem 1rem!important;margin-top:0!important;font-size:.875rem!important;font-weight:600!important;color:#7952b3!important;border-bottom:0!important}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{float:none!important;padding-top:0!important}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:none!important;width:auto!important;padding:0!important;text-align:left!important}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:block!important;font-size:.875rem;color:#495057}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline::after{padding:0 .25rem;content:"/"}.algolia-autocomplete .algolia-docsearch-suggestion--content{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;float:none!important;width:100%!important;padding:.25rem 1rem!important}.algolia-autocomplete .algolia-docsearch-suggestion--content::before{display:none!important}.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header{padding-top:.75rem!important;margin-top:.75rem!important;border-top:1px solid rgba(0,0,0,.1)}.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column{display:none!important}.algolia-autocomplete .algolia-docsearch-suggestion--title{display:block;margin-bottom:0!important;font-size:.875rem!important;font-weight:400!important}.algolia-autocomplete .algolia-docsearch-suggestion--text{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;padding:.2rem 0;font-size:.8125rem!important;font-weight:400;line-height:1.25!important;color:#6c757d}.algolia-autocomplete .algolia-docsearch-footer{float:none!important;width:auto!important;height:auto!important;padding:.75rem 1rem 0;font-size:.75rem!important;line-height:1!important;color:#767676!important;border-top:1px solid rgba(0,0,0,.1)}.algolia-autocomplete .algolia-docsearch-footer--logo{display:inline!important;overflow:visible!important;color:inherit!important;text-indent:0!important;background:0 0!important}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#5f2dab;background-color:rgba(154,132,187,.12)}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{box-shadow:inset 0 -2px 0 0 rgba(95,45,171,.5)!important}.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content{background-color:rgba(208,189,236,.15)!important} +/*# sourceMappingURL=docs.min.css.map */ \ No newline at end of file diff --git a/versions/1.23.5/assets/css/docs.min.css.map b/versions/1.23.5/assets/css/docs.min.css.map new file mode 100644 index 0000000000..68f0b7cf0e --- /dev/null +++ b/versions/1.23.5/assets/css/docs.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../scss/docs.scss","../scss/_nav.scss","../../../../../scss/mixins/_breakpoints.scss","../scss/_masthead.scss","../scss/_ads.scss","../../../../../scss/mixins/_border-radius.scss","../scss/_content.scss","site/docs/4.2/assets/css/docs.min.css","../scss/_skippy.scss","../../../../../scss/mixins/_hover.scss","../scss/_sidebar.scss","../scss/_footer.scss","../scss/_component-examples.scss","../../../../../scss/mixins/_grid.scss","../../../../../scss/mixins/_clearfix.scss","../scss/_buttons.scss","../scss/_callouts.scss","../scss/_browser-bugs.scss","../scss/_brand.scss","../scss/_colors.scss","../scss/_clipboard-js.scss","../scss/_placeholder-img.scss","../scss/_syntax.scss","../scss/_anchor.scss","../../../../../scss/mixins/_transition.scss","../scss/_algolia.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Docs (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under the Creative Commons Attribution 3.0 Unported License. For\n * details, see https://creativecommons.org/licenses/by/3.0/.\n */\n\n// Dev notes\n//\n// Background information on nomenclature and architecture decisions here.\n//\n// - Bootstrap functions, variables, and mixins are included for easy reuse.\n// Doing so gives us access to the same core utilities provided by Bootstrap.\n// For example, consistent media queries through those mixins.\n//\n// - Bootstrap's **docs variables** are prefixed with `$bd-`.\n// These custom colors avoid collision with the components Bootstrap provides.\n//\n// - Classes are prefixed with `.bd-`.\n// These classes indicate custom-built or modified components for the design\n// and layout of the Bootstrap docs. They are not included in our builds.\n//\n// Happy Bootstrapping!\n\n// Load Bootstrap variables and mixins\n@import \"../../../../../scss/functions\";\n@import \"../../../../../scss/variables\";\n@import \"../../../../../scss/mixins\";\n\n// Load docs components\n@import \"variables\";\n@import \"nav\";\n@import \"masthead\";\n@import \"ads\";\n@import \"content\";\n@import \"skippy\";\n@import \"sidebar\";\n@import \"footer\";\n@import \"component-examples\";\n@import \"buttons\";\n@import \"callouts\";\n@import \"browser-bugs\";\n@import \"brand\";\n@import \"colors\";\n@import \"clipboard-js\";\n@import \"placeholder-img\";\n\n// Load docs dependencies\n@import \"syntax\";\n@import \"anchor\";\n@import \"algolia\";\n","//\n// Main navbar\n//\n\n.bd-navbar {\n min-height: 4rem;\n background-color: $bd-purple;\n box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .05), inset 0 -1px 0 rgba(0, 0, 0, .1);\n\n @include media-breakpoint-down(md) {\n padding-right: .5rem;\n padding-left: .5rem;\n\n .navbar-nav-scroll {\n max-width: 100%;\n height: 2.5rem;\n margin-top: .25rem;\n overflow: hidden;\n font-size: .875rem;\n\n .navbar-nav {\n padding-bottom: 2rem;\n overflow-x: auto;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n }\n }\n }\n\n @include media-breakpoint-up(md) {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: 1071; // over everything in bootstrap\n }\n }\n\n .navbar-nav {\n .nav-link {\n padding-right: .5rem;\n padding-left: .5rem;\n color: $bd-purple-light;\n\n &.active,\n &:hover {\n color: $white;\n background-color: transparent;\n }\n\n &.active {\n font-weight: 600;\n }\n }\n }\n\n .navbar-nav-svg {\n display: inline-block;\n width: 1rem;\n height: 1rem;\n vertical-align: text-top;\n }\n\n .dropdown-menu {\n font-size: .875rem;\n }\n\n .dropdown-item.active {\n font-weight: 600;\n color: $gray-900;\n background-color: transparent;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: .4rem .6rem;\n background-size: .75rem .75rem;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n.bd-masthead {\n position: relative;\n padding: 3rem ($grid-gutter-width / 2);\n // background-image: linear-gradient(45deg, #fafafa, #f5f5f5);\n\n h1 {\n line-height: 1;\n }\n\n .btn {\n padding: .8rem 2rem;\n font-weight: 600;\n }\n\n .carbonad {\n margin-top: 0 !important;\n margin-bottom: -3rem !important;\n }\n\n @include media-breakpoint-up(sm) {\n padding-top: 5rem;\n padding-bottom: 5rem;\n\n .carbonad {\n margin-bottom: 0 !important;\n }\n }\n\n @include media-breakpoint-up(md) {\n h1 {\n font-size: 4rem;\n }\n\n .carbonad {\n margin-top: 3rem !important;\n }\n }\n}\n\n.half-rule {\n width: 6rem;\n margin: 2.5rem 0;\n}\n\n.masthead-followup {\n .bd-clipboard { display: none; }\n\n .highlight {\n padding: .5rem 0;\n background-color: transparent;\n }\n}\n","// stylelint-disable declaration-no-important, selector-max-id\n\n//\n// Carbon ads\n//\n\n#carbonads {\n position: static;\n display: block;\n max-width: 400px;\n padding: 15px 15px 15px 160px;\n margin: 2rem 0;\n overflow: hidden;\n font-size: 13px;\n line-height: 1.4;\n text-align: left;\n background-color: rgba(0, 0, 0, .05);\n\n a {\n color: #333;\n text-decoration: none;\n }\n\n @include media-breakpoint-up(sm) {\n max-width: 330px;\n @include border-radius(4px);\n }\n}\n\n.carbon-img {\n float: left;\n margin-left: -145px;\n}\n\n.carbon-poweredby {\n display: block;\n color: #777 !important;\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n","// stylelint-disable no-duplicate-selectors, selector-max-combinators, selector-max-compound-selectors, selector-max-type, selector-no-qualifying-type\n\n//\n// Automatically style Markdown-based tables like a Bootstrap `.table`.\n//\n\n.bd-content {\n order: 1;\n\n // Hack the sticky header\n > h2[id],\n > h3[id],\n > h4[id] {\n pointer-events: none;\n\n &::before {\n display: block;\n height: 6rem;\n margin-top: -6rem;\n content: \"\";\n }\n }\n\n > table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n\n @include media-breakpoint-down(md) {\n display: block;\n overflow-x: auto;\n -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057\n\n &.table-bordered {\n border: 0;\n }\n }\n\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: $table-cell-padding;\n vertical-align: top;\n border: 1px solid $table-border-color;\n\n > p:last-child {\n margin-bottom: 0;\n }\n }\n }\n }\n\n // Prevent breaking of code (e.g., Grunt tasks list)\n td:first-child > code {\n white-space: nowrap;\n }\n }\n}\n\n.bd-content-title {\n display: block;\n pointer-events: auto;\n}\n\n//\n// Docs sections\n//\n\n.bd-content {\n > h2:not(:first-child) {\n margin-top: 3rem;\n }\n\n > h3 {\n margin-top: 1.5rem;\n }\n\n > ul li,\n > ol li {\n margin-bottom: .25rem;\n }\n\n @include media-breakpoint-up(lg) {\n > ul,\n > ol,\n > p {\n max-width: 80%;\n }\n }\n}\n\n.bd-title {\n margin-top: 1rem;\n margin-bottom: .5rem;\n font-weight: 300;\n\n @include media-breakpoint-up(sm) {\n font-size: 3rem;\n }\n}\n\n.bd-lead {\n font-size: 1.125rem;\n font-weight: 300;\n\n @include media-breakpoint-up(sm) {\n max-width: 80%;\n margin-bottom: 1rem;\n font-size: 1.5rem;\n }\n}\n\n.bd-text-purple { color: $bd-purple; }\n.bd-text-purple-bright { color: $bd-purple-bright; }\n","/*!\n * Bootstrap Docs (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under the Creative Commons Attribution 3.0 Unported License. For\n * details, see https://creativecommons.org/licenses/by/3.0/.\n */\n.bd-navbar {\n min-height: 4rem;\n background-color: #563d7c;\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.05), inset 0 -1px 0 rgba(0, 0, 0, 0.1);\n}\n\n@media (max-width: 991.98px) {\n .bd-navbar {\n padding-right: .5rem;\n padding-left: .5rem;\n }\n .bd-navbar .navbar-nav-scroll {\n max-width: 100%;\n height: 2.5rem;\n margin-top: .25rem;\n overflow: hidden;\n font-size: .875rem;\n }\n .bd-navbar .navbar-nav-scroll .navbar-nav {\n padding-bottom: 2rem;\n overflow-x: auto;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n }\n}\n\n@media (min-width: 768px) {\n @supports ((position: -webkit-sticky) or (position: sticky)) {\n .bd-navbar {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1071;\n }\n }\n}\n\n.bd-navbar .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem;\n color: #cbbde2;\n}\n\n.bd-navbar .navbar-nav .nav-link.active, .bd-navbar .navbar-nav .nav-link:hover {\n color: #fff;\n background-color: transparent;\n}\n\n.bd-navbar .navbar-nav .nav-link.active {\n font-weight: 600;\n}\n\n.bd-navbar .navbar-nav-svg {\n display: inline-block;\n width: 1rem;\n height: 1rem;\n vertical-align: text-top;\n}\n\n.bd-navbar .dropdown-menu {\n font-size: .875rem;\n}\n\n.bd-navbar .dropdown-item.active {\n font-weight: 600;\n color: #212529;\n background-color: transparent;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: .4rem .6rem;\n background-size: .75rem .75rem;\n}\n\n.bd-masthead {\n position: relative;\n padding: 3rem 15px;\n}\n\n.bd-masthead h1 {\n line-height: 1;\n}\n\n.bd-masthead .btn {\n padding: .8rem 2rem;\n font-weight: 600;\n}\n\n.bd-masthead .carbonad {\n margin-top: 0 !important;\n margin-bottom: -3rem !important;\n}\n\n@media (min-width: 576px) {\n .bd-masthead {\n padding-top: 5rem;\n padding-bottom: 5rem;\n }\n .bd-masthead .carbonad {\n margin-bottom: 0 !important;\n }\n}\n\n@media (min-width: 768px) {\n .bd-masthead h1 {\n font-size: 4rem;\n }\n .bd-masthead .carbonad {\n margin-top: 3rem !important;\n }\n}\n\n.half-rule {\n width: 6rem;\n margin: 2.5rem 0;\n}\n\n.masthead-followup .bd-clipboard {\n display: none;\n}\n\n.masthead-followup .highlight {\n padding: .5rem 0;\n background-color: transparent;\n}\n\n#carbonads {\n position: static;\n display: block;\n max-width: 400px;\n padding: 15px 15px 15px 160px;\n margin: 2rem 0;\n overflow: hidden;\n font-size: 13px;\n line-height: 1.4;\n text-align: left;\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n#carbonads a {\n color: #333;\n text-decoration: none;\n}\n\n@media (min-width: 576px) {\n #carbonads {\n max-width: 330px;\n border-radius: 4px;\n }\n}\n\n.carbon-img {\n float: left;\n margin-left: -145px;\n}\n\n.carbon-poweredby {\n display: block;\n color: #777 !important;\n}\n\n.bd-content {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.bd-content > h2[id],\n.bd-content > h3[id],\n.bd-content > h4[id] {\n pointer-events: none;\n}\n\n.bd-content > h2[id]::before,\n.bd-content > h3[id]::before,\n.bd-content > h4[id]::before {\n display: block;\n height: 6rem;\n margin-top: -6rem;\n content: \"\";\n}\n\n.bd-content > table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n}\n\n@media (max-width: 991.98px) {\n .bd-content > table {\n display: block;\n overflow-x: auto;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .bd-content > table.table-bordered {\n border: 0;\n }\n}\n\n.bd-content > table > thead > tr > th,\n.bd-content > table > thead > tr > td,\n.bd-content > table > tbody > tr > th,\n.bd-content > table > tbody > tr > td,\n.bd-content > table > tfoot > tr > th,\n.bd-content > table > tfoot > tr > td {\n padding: 0.75rem;\n vertical-align: top;\n border: 1px solid #dee2e6;\n}\n\n.bd-content > table > thead > tr > th > p:last-child,\n.bd-content > table > thead > tr > td > p:last-child,\n.bd-content > table > tbody > tr > th > p:last-child,\n.bd-content > table > tbody > tr > td > p:last-child,\n.bd-content > table > tfoot > tr > th > p:last-child,\n.bd-content > table > tfoot > tr > td > p:last-child {\n margin-bottom: 0;\n}\n\n.bd-content > table td:first-child > code {\n white-space: nowrap;\n}\n\n.bd-content-title {\n display: block;\n pointer-events: auto;\n}\n\n.bd-content > h2:not(:first-child) {\n margin-top: 3rem;\n}\n\n.bd-content > h3 {\n margin-top: 1.5rem;\n}\n\n.bd-content > ul li,\n.bd-content > ol li {\n margin-bottom: .25rem;\n}\n\n@media (min-width: 992px) {\n .bd-content > ul,\n .bd-content > ol,\n .bd-content > p {\n max-width: 80%;\n }\n}\n\n.bd-title {\n margin-top: 1rem;\n margin-bottom: .5rem;\n font-weight: 300;\n}\n\n@media (min-width: 576px) {\n .bd-title {\n font-size: 3rem;\n }\n}\n\n.bd-lead {\n font-size: 1.125rem;\n font-weight: 300;\n}\n\n@media (min-width: 576px) {\n .bd-lead {\n max-width: 80%;\n margin-bottom: 1rem;\n font-size: 1.5rem;\n }\n}\n\n.bd-text-purple {\n color: #563d7c;\n}\n\n.bd-text-purple-bright {\n color: #7952b3;\n}\n\n.skippy {\n display: block;\n padding: 1em;\n color: #fff;\n text-align: center;\n background-color: #563d7c;\n outline: 0;\n}\n\n.skippy:hover {\n color: #fff;\n}\n\n.skippy-text {\n padding: .5em;\n outline: 1px dotted;\n}\n\n.bd-toc {\n -ms-flex-order: 2;\n order: 2;\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n font-size: .875rem;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .bd-toc {\n position: -webkit-sticky;\n position: sticky;\n top: 4rem;\n height: calc(100vh - 4rem);\n overflow-y: auto;\n }\n}\n\n.section-nav {\n padding-left: 0;\n border-left: 1px solid #eee;\n}\n\n.section-nav ul {\n padding-left: 1rem;\n}\n\n.toc-entry {\n display: block;\n}\n\n.toc-entry a {\n display: block;\n padding: .125rem 1.5rem;\n color: #99979c;\n}\n\n.toc-entry a:hover {\n color: #007bff;\n text-decoration: none;\n}\n\n.bd-sidebar {\n -ms-flex-order: 0;\n order: 0;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n@media (min-width: 768px) {\n .bd-sidebar {\n border-right: 1px solid rgba(0, 0, 0, 0.1);\n }\n @supports ((position: -webkit-sticky) or (position: sticky)) {\n .bd-sidebar {\n position: -webkit-sticky;\n position: sticky;\n top: 4rem;\n z-index: 1000;\n height: calc(100vh - 4rem);\n }\n }\n}\n\n@media (min-width: 1200px) {\n .bd-sidebar {\n -ms-flex: 0 1 320px;\n flex: 0 1 320px;\n }\n}\n\n.bd-links {\n padding-top: 1rem;\n padding-bottom: 1rem;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n@media (min-width: 768px) {\n @supports ((position: -webkit-sticky) or (position: sticky)) {\n .bd-links {\n max-height: calc(100vh - 9rem);\n overflow-y: auto;\n }\n }\n}\n\n@media (min-width: 768px) {\n .bd-links {\n display: block !important;\n }\n}\n\n.bd-search {\n position: relative;\n padding: 1rem 15px;\n margin-right: -15px;\n margin-left: -15px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.bd-search .form-control:focus {\n border-color: #7952b3;\n box-shadow: 0 0 0 3px rgba(121, 82, 179, 0.25);\n}\n\n.bd-search-docs-toggle {\n line-height: 1;\n color: #212529;\n}\n\n.bd-sidenav {\n display: none;\n}\n\n.bd-toc-link {\n display: block;\n padding: .25rem 1.5rem;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.65);\n}\n\n.bd-toc-link:hover {\n color: rgba(0, 0, 0, 0.85);\n text-decoration: none;\n}\n\n.bd-toc-item.active {\n margin-bottom: 1rem;\n}\n\n.bd-toc-item.active:not(:first-child) {\n margin-top: 1rem;\n}\n\n.bd-toc-item.active > .bd-toc-link {\n color: rgba(0, 0, 0, 0.85);\n}\n\n.bd-toc-item.active > .bd-toc-link:hover {\n background-color: transparent;\n}\n\n.bd-toc-item.active > .bd-sidenav {\n display: block;\n}\n\n.bd-sidebar .nav > li > a {\n display: block;\n padding: .25rem 1.5rem;\n font-size: 90%;\n color: rgba(0, 0, 0, 0.65);\n}\n\n.bd-sidebar .nav > li > a:hover {\n color: rgba(0, 0, 0, 0.85);\n text-decoration: none;\n background-color: transparent;\n}\n\n.bd-sidebar .nav > .active > a,\n.bd-sidebar .nav > .active:hover > a {\n font-weight: 600;\n color: rgba(0, 0, 0, 0.85);\n background-color: transparent;\n}\n\n.bd-footer {\n font-size: 85%;\n text-align: center;\n background-color: #f7f7f7;\n}\n\n.bd-footer a {\n font-weight: 600;\n color: #495057;\n}\n\n.bd-footer a:hover, .bd-footer a:focus {\n color: #007bff;\n}\n\n.bd-footer p {\n margin-bottom: 0;\n}\n\n@media (min-width: 576px) {\n .bd-footer {\n text-align: left;\n }\n}\n\n.bd-footer-links {\n padding-left: 0;\n margin-bottom: 1rem;\n}\n\n.bd-footer-links li {\n display: inline-block;\n}\n\n.bd-footer-links li + li {\n margin-left: 1rem;\n}\n\n.bd-example-row .row > .col,\n.bd-example-row .row > [class^=\"col-\"] {\n padding-top: .75rem;\n padding-bottom: .75rem;\n background-color: rgba(86, 61, 124, 0.15);\n border: 1px solid rgba(86, 61, 124, 0.2);\n}\n\n.bd-example-row .row + .row {\n margin-top: 1rem;\n}\n\n.bd-example-row .flex-items-top,\n.bd-example-row .flex-items-middle,\n.bd-example-row .flex-items-bottom {\n min-height: 6rem;\n background-color: rgba(255, 0, 0, 0.1);\n}\n\n.bd-example-row-flex-cols .row {\n min-height: 10rem;\n background-color: rgba(255, 0, 0, 0.1);\n}\n\n.bd-highlight {\n background-color: rgba(86, 61, 124, 0.15);\n border: 1px solid rgba(86, 61, 124, 0.15);\n}\n\n.example-container {\n width: 800px;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.example-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.example-content-main {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n .example-content-main {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n}\n\n@media (min-width: 992px) {\n .example-content-main {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n}\n\n.example-content-secondary {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n .example-content-secondary {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n}\n\n@media (min-width: 992px) {\n .example-content-secondary {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n}\n\n.bd-example-container {\n min-width: 16rem;\n max-width: 25rem;\n margin-right: auto;\n margin-left: auto;\n}\n\n.bd-example-container-header {\n height: 3rem;\n margin-bottom: .5rem;\n background-color: white;\n border-radius: 0.25rem;\n}\n\n.bd-example-container-sidebar {\n float: right;\n width: 4rem;\n height: 8rem;\n background-color: #80bdff;\n border-radius: 0.25rem;\n}\n\n.bd-example-container-body {\n height: 8rem;\n margin-right: 4.5rem;\n background-color: #957bbe;\n border-radius: 0.25rem;\n}\n\n.bd-example-container-fluid {\n max-width: none;\n}\n\n.bd-example {\n position: relative;\n padding: 1rem;\n margin: 1rem -15px 0;\n border: solid #f8f9fa;\n border-width: .2rem 0 0;\n}\n\n.bd-example::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n@media (min-width: 576px) {\n .bd-example {\n padding: 1.5rem;\n margin-right: 0;\n margin-left: 0;\n border-width: .2rem;\n }\n}\n\n.bd-example + .highlight,\n.bd-example + .clipboard + .highlight {\n margin-top: 0;\n}\n\n.bd-example + p {\n margin-top: 2rem;\n}\n\n.bd-example .pos-f-t {\n position: relative;\n margin: -1rem;\n}\n\n@media (min-width: 576px) {\n .bd-example .pos-f-t {\n margin: -1.5rem;\n }\n}\n\n.bd-example .custom-file-input:lang(es) ~ .custom-file-label::after {\n content: \"Elegir\";\n}\n\n.bd-example > .form-control + .form-control {\n margin-top: .5rem;\n}\n\n.bd-example > .nav + .nav,\n.bd-example > .alert + .alert,\n.bd-example > .navbar + .navbar,\n.bd-example > .progress + .progress,\n.bd-example > .progress + .btn {\n margin-top: 1rem;\n}\n\n.bd-example > .dropdown-menu:first-child {\n position: static;\n display: block;\n}\n\n.bd-example > .form-group:last-child {\n margin-bottom: 0;\n}\n\n.bd-example > .close {\n float: none;\n}\n\n.bd-example-type .table .type-info {\n color: #999;\n vertical-align: middle;\n}\n\n.bd-example-type .table td {\n padding: 1rem 0;\n border-color: #eee;\n}\n\n.bd-example-type .table tr:first-child td {\n border-top: 0;\n}\n\n.bd-example-type h1,\n.bd-example-type h2,\n.bd-example-type h3,\n.bd-example-type h4,\n.bd-example-type h5,\n.bd-example-type h6 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.bd-example-bg-classes p {\n padding: 1rem;\n}\n\n.bd-example > svg + svg,\n.bd-example > img + img {\n margin-left: .5rem;\n}\n\n.bd-example > .btn-group {\n margin-top: .25rem;\n margin-bottom: .25rem;\n}\n\n.bd-example > .btn-toolbar + .btn-toolbar {\n margin-top: .5rem;\n}\n\n.bd-example-control-sizing select,\n.bd-example-control-sizing input[type=\"text\"] + input[type=\"text\"] {\n margin-top: .5rem;\n}\n\n.bd-example-form .input-group {\n margin-bottom: .5rem;\n}\n\n.bd-example > textarea.form-control {\n resize: vertical;\n}\n\n.bd-example > .list-group {\n max-width: 400px;\n}\n\n.bd-example .fixed-top,\n.bd-example .sticky-top {\n position: static;\n margin: -1rem -1rem 1rem;\n}\n\n.bd-example .fixed-bottom {\n position: static;\n margin: 1rem -1rem -1rem;\n}\n\n@media (min-width: 576px) {\n .bd-example .fixed-top,\n .bd-example .sticky-top {\n margin: -1.5rem -1.5rem 1rem;\n }\n .bd-example .fixed-bottom {\n margin: 1rem -1.5rem -1.5rem;\n }\n}\n\n.bd-example .pagination {\n margin-top: .5rem;\n margin-bottom: .5rem;\n}\n\n.modal {\n z-index: 1072;\n}\n\n.modal .tooltip,\n.modal .popover {\n z-index: 1073;\n}\n\n.modal-backdrop {\n z-index: 1071;\n}\n\n.bd-example-modal {\n background-color: #fafafa;\n}\n\n.bd-example-modal .modal {\n position: relative;\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n z-index: 1;\n display: block;\n}\n\n.bd-example-modal .modal-dialog {\n left: auto;\n margin-right: auto;\n margin-left: auto;\n}\n\n.bd-example-tabs .nav-tabs {\n margin-bottom: 1rem;\n}\n\n.bd-example-popover-static {\n padding-bottom: 1.5rem;\n background-color: #f9f9f9;\n}\n\n.bd-example-popover-static .popover {\n position: relative;\n display: block;\n float: left;\n width: 260px;\n margin: 1.25rem;\n}\n\n.tooltip-demo a {\n white-space: nowrap;\n}\n\n.bd-example-tooltip-static .tooltip {\n position: relative;\n display: inline-block;\n margin: 10px 20px;\n opacity: 1;\n}\n\n.scrollspy-example {\n position: relative;\n height: 200px;\n margin-top: .5rem;\n overflow: auto;\n}\n\n.scrollspy-example-2 {\n position: relative;\n height: 350px;\n overflow: auto;\n}\n\n.bd-example-border-utils [class^=\"border\"] {\n display: inline-block;\n width: 5rem;\n height: 5rem;\n margin: .25rem;\n background-color: #f5f5f5;\n}\n\n.bd-example-border-utils-0 [class^=\"border\"] {\n border: 1px solid #dee2e6;\n}\n\n.highlight {\n padding: 1rem;\n margin-top: 1rem;\n margin-bottom: 1rem;\n background-color: #f8f9fa;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n@media (min-width: 576px) {\n .highlight {\n padding: 1.5rem;\n }\n}\n\n.bd-content .highlight {\n margin-right: -15px;\n margin-left: -15px;\n}\n\n@media (min-width: 576px) {\n .bd-content .highlight {\n margin-right: 0;\n margin-left: 0;\n }\n}\n\n.highlight pre {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n background-color: transparent;\n border: 0;\n}\n\n.highlight pre code {\n font-size: inherit;\n color: #212529;\n}\n\n.btn-bd-primary {\n font-weight: 600;\n color: #7952b3;\n border-color: #7952b3;\n}\n\n.btn-bd-primary:hover, .btn-bd-primary:active {\n color: #fff;\n background-color: #7952b3;\n border-color: #7952b3;\n}\n\n.btn-bd-primary:focus {\n box-shadow: 0 0 0 3px rgba(121, 82, 179, 0.25);\n}\n\n.btn-bd-download {\n font-weight: 600;\n color: #ffe484;\n border-color: #ffe484;\n}\n\n.btn-bd-download:hover, .btn-bd-download:active {\n color: #2a2730;\n background-color: #ffe484;\n border-color: #ffe484;\n}\n\n.btn-bd-download:focus {\n box-shadow: 0 0 0 3px rgba(255, 228, 132, 0.25);\n}\n\n.bd-callout {\n padding: 1.25rem;\n margin-top: 1.25rem;\n margin-bottom: 1.25rem;\n border: 1px solid #eee;\n border-left-width: .25rem;\n border-radius: 0.25rem;\n}\n\n.bd-callout h4 {\n margin-top: 0;\n margin-bottom: .25rem;\n}\n\n.bd-callout p:last-child {\n margin-bottom: 0;\n}\n\n.bd-callout code {\n border-radius: 0.25rem;\n}\n\n.bd-callout + .bd-callout {\n margin-top: -.25rem;\n}\n\n.bd-callout-info {\n border-left-color: #5bc0de;\n}\n\n.bd-callout-info h4 {\n color: #5bc0de;\n}\n\n.bd-callout-warning {\n border-left-color: #f0ad4e;\n}\n\n.bd-callout-warning h4 {\n color: #f0ad4e;\n}\n\n.bd-callout-danger {\n border-left-color: #d9534f;\n}\n\n.bd-callout-danger h4 {\n color: #d9534f;\n}\n\n.bd-browser-bugs td p {\n margin-bottom: 0;\n}\n\n.bd-browser-bugs th:first-child {\n width: 18%;\n}\n\n.bd-brand-logos {\n display: table;\n width: 100%;\n margin-bottom: 1rem;\n overflow: hidden;\n color: #563d7c;\n background-color: #f9f9f9;\n border-radius: 0.25rem;\n}\n\n.bd-brand-logos .inverse {\n color: #fff;\n background-color: #563d7c;\n}\n\n.bd-brand-item {\n padding: 4rem 0;\n text-align: center;\n}\n\n.bd-brand-item + .bd-brand-item {\n border-top: 1px solid #fff;\n}\n\n.bd-brand-item h1,\n.bd-brand-item h3 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n@media (min-width: 768px) {\n .bd-brand-item {\n display: table-cell;\n width: 1%;\n }\n .bd-brand-item + .bd-brand-item {\n border-top: 0;\n border-left: 1px solid #fff;\n }\n .bd-brand-item h1 {\n font-size: 4rem;\n }\n}\n\n.color-swatches {\n margin: 0 -5px;\n overflow: hidden;\n}\n\n.color-swatches .bd-purple {\n background-color: #563d7c;\n}\n\n.color-swatches .bd-purple-light {\n background-color: #cbbde2;\n}\n\n.color-swatches .bd-purple-lighter {\n background-color: #e5e1ea;\n}\n\n.color-swatches .bd-gray {\n background-color: #f9f9f9;\n}\n\n.color-swatch {\n float: left;\n width: 4rem;\n height: 4rem;\n margin-right: .25rem;\n margin-left: .25rem;\n border-radius: 0.25rem;\n}\n\n@media (min-width: 768px) {\n .color-swatch {\n width: 6rem;\n height: 6rem;\n }\n}\n\n.swatch-blue {\n color: #fff;\n background-color: #007bff;\n}\n\n.swatch-indigo {\n color: #fff;\n background-color: #6610f2;\n}\n\n.swatch-purple {\n color: #fff;\n background-color: #6f42c1;\n}\n\n.swatch-pink {\n color: #fff;\n background-color: #e83e8c;\n}\n\n.swatch-red {\n color: #fff;\n background-color: #dc3545;\n}\n\n.swatch-orange {\n color: #212529;\n background-color: #fd7e14;\n}\n\n.swatch-yellow {\n color: #212529;\n background-color: #ffc107;\n}\n\n.swatch-green {\n color: #fff;\n background-color: #28a745;\n}\n\n.swatch-teal {\n color: #fff;\n background-color: #20c997;\n}\n\n.swatch-cyan {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.swatch-white {\n color: #212529;\n background-color: #fff;\n}\n\n.swatch-gray {\n color: #fff;\n background-color: #6c757d;\n}\n\n.swatch-gray-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.swatch-primary {\n color: #fff;\n background-color: #007bff;\n}\n\n.swatch-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\n.swatch-success {\n color: #fff;\n background-color: #28a745;\n}\n\n.swatch-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.swatch-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\n.swatch-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\n.swatch-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.swatch-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.swatch-100 {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.swatch-200 {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.swatch-300 {\n color: #212529;\n background-color: #dee2e6;\n}\n\n.swatch-400 {\n color: #212529;\n background-color: #ced4da;\n}\n\n.swatch-500 {\n color: #212529;\n background-color: #adb5bd;\n}\n\n.swatch-600 {\n color: #fff;\n background-color: #6c757d;\n}\n\n.swatch-700 {\n color: #fff;\n background-color: #495057;\n}\n\n.swatch-800 {\n color: #fff;\n background-color: #343a40;\n}\n\n.swatch-900 {\n color: #fff;\n background-color: #212529;\n}\n\n.bd-clipboard {\n position: relative;\n display: none;\n float: right;\n}\n\n.bd-clipboard + .highlight {\n margin-top: 0;\n}\n\n@media (min-width: 768px) {\n .bd-clipboard {\n display: block;\n }\n}\n\n.btn-clipboard {\n position: absolute;\n top: .5rem;\n right: .5rem;\n z-index: 10;\n display: block;\n padding: .25rem .5rem;\n font-size: 75%;\n color: #818a91;\n background-color: transparent;\n border: 0;\n border-radius: 0.25rem;\n}\n\n.btn-clipboard:hover {\n color: #fff;\n background-color: #027de7;\n}\n\n.bd-placeholder-img {\n font-size: 1.125rem;\n text-anchor: middle;\n}\n\n@media (min-width: 768px) {\n .bd-placeholder-img-lg {\n font-size: 3.5rem;\n }\n}\n\n.hll {\n background-color: #ffc;\n}\n\n.c {\n color: #999;\n}\n\n.k {\n color: #069;\n}\n\n.o {\n color: #555;\n}\n\n.cm {\n color: #999;\n}\n\n.cp {\n color: #099;\n}\n\n.c1 {\n color: #999;\n}\n\n.cs {\n color: #999;\n}\n\n.gd {\n background-color: #fcc;\n border: 1px solid #c00;\n}\n\n.ge {\n font-style: italic;\n}\n\n.gr {\n color: #f00;\n}\n\n.gh {\n color: #030;\n}\n\n.gi {\n background-color: #cfc;\n border: 1px solid #0c0;\n}\n\n.go {\n color: #aaa;\n}\n\n.gp {\n color: #009;\n}\n\n.gu {\n color: #030;\n}\n\n.gt {\n color: #9c6;\n}\n\n.kc {\n color: #069;\n}\n\n.kd {\n color: #069;\n}\n\n.kn {\n color: #069;\n}\n\n.kp {\n color: #069;\n}\n\n.kr {\n color: #069;\n}\n\n.kt {\n color: #078;\n}\n\n.m {\n color: #f60;\n}\n\n.s {\n color: #d44950;\n}\n\n.na {\n color: #4f9fcf;\n}\n\n.nb {\n color: #366;\n}\n\n.nc {\n color: #0a8;\n}\n\n.no {\n color: #360;\n}\n\n.nd {\n color: #99f;\n}\n\n.ni {\n color: #999;\n}\n\n.ne {\n color: #c00;\n}\n\n.nf {\n color: #c0f;\n}\n\n.nl {\n color: #99f;\n}\n\n.nn {\n color: #0cf;\n}\n\n.nt {\n color: #2f6f9f;\n}\n\n.nv {\n color: #033;\n}\n\n.ow {\n color: #000;\n}\n\n.w {\n color: #bbb;\n}\n\n.mf {\n color: #f60;\n}\n\n.mh {\n color: #f60;\n}\n\n.mi {\n color: #f60;\n}\n\n.mo {\n color: #f60;\n}\n\n.sb {\n color: #c30;\n}\n\n.sc {\n color: #c30;\n}\n\n.sd {\n font-style: italic;\n color: #c30;\n}\n\n.s2 {\n color: #c30;\n}\n\n.se {\n color: #c30;\n}\n\n.sh {\n color: #c30;\n}\n\n.si {\n color: #a00;\n}\n\n.sx {\n color: #c30;\n}\n\n.sr {\n color: #3aa;\n}\n\n.s1 {\n color: #c30;\n}\n\n.ss {\n color: #fc3;\n}\n\n.bp {\n color: #366;\n}\n\n.vc {\n color: #033;\n}\n\n.vg {\n color: #033;\n}\n\n.vi {\n color: #033;\n}\n\n.il {\n color: #f60;\n}\n\n.css .o,\n.css .o + .nt,\n.css .nt + .nt {\n color: #999;\n}\n\n.language-bash::before,\n.language-sh::before {\n color: #009;\n content: \"$ \";\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.language-powershell::before {\n color: #009;\n content: \"PM> \";\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.anchorjs-link {\n font-weight: 400;\n color: rgba(0, 123, 255, 0.5);\n transition: color 0.15s ease-in-out, opacity 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .anchorjs-link {\n transition: none;\n }\n}\n\n.anchorjs-link:hover {\n color: #007bff;\n text-decoration: none;\n}\n\n.algolia-autocomplete {\n display: block !important;\n -ms-flex: 1;\n flex: 1;\n}\n\n.algolia-autocomplete .ds-dropdown-menu {\n width: 100%;\n min-width: 0 !important;\n max-width: none !important;\n padding: .75rem 0 !important;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);\n}\n\n@media (min-width: 768px) {\n .algolia-autocomplete .ds-dropdown-menu {\n width: 175%;\n }\n}\n\n.algolia-autocomplete .ds-dropdown-menu::before {\n display: none !important;\n}\n\n.algolia-autocomplete .ds-dropdown-menu [class^=\"ds-dataset-\"] {\n padding: 0 !important;\n overflow: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n}\n\n.algolia-autocomplete .ds-dropdown-menu .ds-suggestions {\n margin-top: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion {\n padding: 0 !important;\n overflow: visible !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--category-header {\n padding: .125rem 1rem !important;\n margin-top: 0 !important;\n font-size: .875rem !important;\n font-weight: 600 !important;\n color: #7952b3 !important;\n border-bottom: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--wrapper {\n float: none !important;\n padding-top: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column {\n float: none !important;\n width: auto !important;\n padding: 0 !important;\n text-align: left !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline {\n display: block !important;\n font-size: .875rem;\n color: #495057;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline::after {\n padding: 0 .25rem;\n content: \"/\";\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--content {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n float: none !important;\n width: 100% !important;\n padding: .25rem 1rem !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--content::before {\n display: none !important;\n}\n\n.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header {\n padding-top: .75rem !important;\n margin-top: .75rem !important;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column {\n display: none !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--title {\n display: block;\n margin-bottom: 0 !important;\n font-size: .875rem !important;\n font-weight: 400 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--text {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n padding: .2rem 0;\n font-size: .8125rem !important;\n font-weight: 400;\n line-height: 1.25 !important;\n color: #6c757d;\n}\n\n.algolia-autocomplete .algolia-docsearch-footer {\n float: none !important;\n width: auto !important;\n height: auto !important;\n padding: .75rem 1rem 0;\n font-size: .75rem !important;\n line-height: 1 !important;\n color: #767676 !important;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.algolia-autocomplete .algolia-docsearch-footer--logo {\n display: inline !important;\n overflow: visible !important;\n color: inherit !important;\n text-indent: 0 !important;\n background: none !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--highlight {\n color: #5f2dab;\n background-color: rgba(154, 132, 187, 0.12);\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight {\n box-shadow: inset 0 -2px 0 0 rgba(95, 45, 171, 0.5) !important;\n}\n\n.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content {\n background-color: rgba(208, 189, 236, 0.15) !important;\n}\n/*# sourceMappingURL=docs.min.css.map */",".skippy {\n display: block;\n padding: 1em;\n color: $white;\n text-align: center;\n background-color: $bd-purple;\n outline: 0;\n\n @include hover {\n color: $white;\n }\n}\n\n.skippy-text {\n padding: .5em;\n outline: 1px dotted;\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Right side table of contents\n//\n\n.bd-toc {\n @supports (position: sticky) {\n position: sticky;\n top: 4rem;\n height: calc(100vh - 4rem);\n overflow-y: auto;\n }\n order: 2;\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n font-size: .875rem;\n}\n\n.section-nav {\n padding-left: 0;\n border-left: 1px solid #eee;\n\n ul {\n padding-left: 1rem;\n }\n}\n\n.toc-entry {\n display: block;\n\n a {\n display: block;\n padding: .125rem 1.5rem;\n color: #99979c;\n\n &:hover {\n color: $blue;\n text-decoration: none;\n }\n }\n}\n\n//\n// Left side navigation\n//\n\n.bd-sidebar {\n order: 0;\n // background-color: #f5f2f9;\n border-bottom: 1px solid rgba(0, 0, 0, .1);\n\n @include media-breakpoint-up(md) {\n @supports (position: sticky) {\n position: sticky;\n top: 4rem;\n z-index: 1000;\n height: calc(100vh - 4rem);\n }\n border-right: 1px solid rgba(0, 0, 0, .1);\n }\n\n @include media-breakpoint-up(xl) {\n flex: 0 1 320px;\n }\n}\n\n.bd-links {\n padding-top: 1rem;\n padding-bottom: 1rem;\n margin-right: -15px;\n margin-left: -15px;\n\n @include media-breakpoint-up(md) {\n @supports (position: sticky) {\n max-height: calc(100vh - 9rem);\n overflow-y: auto;\n }\n }\n\n // Override collapse behaviors\n @include media-breakpoint-up(md) {\n display: block !important;\n }\n}\n\n.bd-search {\n position: relative; // To contain the Algolia search\n padding: 1rem 15px;\n margin-right: -15px;\n margin-left: -15px;\n border-bottom: 1px solid rgba(0, 0, 0, .05);\n\n .form-control:focus {\n border-color: $bd-purple-bright;\n box-shadow: 0 0 0 3px rgba($bd-purple-bright, .25);\n }\n}\n\n.bd-search-docs-toggle {\n line-height: 1;\n color: $gray-900;\n}\n\n.bd-sidenav {\n display: none;\n}\n\n.bd-toc-link {\n display: block;\n padding: .25rem 1.5rem;\n font-weight: 600;\n color: rgba(0, 0, 0, .65);\n\n &:hover {\n color: rgba(0, 0, 0, .85);\n text-decoration: none;\n }\n}\n\n.bd-toc-item {\n &.active {\n margin-bottom: 1rem;\n\n &:not(:first-child) {\n margin-top: 1rem;\n }\n\n > .bd-toc-link {\n color: rgba(0, 0, 0, .85);\n\n &:hover {\n background-color: transparent;\n }\n }\n\n > .bd-sidenav {\n display: block;\n }\n }\n}\n\n// All levels of nav\n.bd-sidebar .nav > li > a {\n display: block;\n padding: .25rem 1.5rem;\n font-size: 90%;\n color: rgba(0, 0, 0, .65);\n}\n\n.bd-sidebar .nav > li > a:hover {\n color: rgba(0, 0, 0, .85);\n text-decoration: none;\n background-color: transparent;\n}\n\n.bd-sidebar .nav > .active > a,\n.bd-sidebar .nav > .active:hover > a {\n font-weight: 600;\n color: rgba(0, 0, 0, .85);\n background-color: transparent;\n}\n","//\n// Footer\n//\n\n.bd-footer {\n font-size: 85%;\n text-align: center;\n background-color: #f7f7f7;\n\n a {\n font-weight: 600;\n color: $gray-700;\n\n &:hover,\n &:focus {\n color: $link-color;\n }\n }\n\n p {\n margin-bottom: 0;\n }\n\n @include media-breakpoint-up(sm) {\n text-align: left;\n }\n}\n\n.bd-footer-links {\n padding-left: 0;\n margin-bottom: 1rem;\n\n li {\n display: inline-block;\n\n + li {\n margin-left: 1rem;\n }\n }\n}\n","// stylelint-disable no-duplicate-selectors, selector-no-qualifying-type\n\n//\n// Grid examples\n//\n\n.bd-example-row {\n .row {\n > .col,\n > [class^=\"col-\"] {\n padding-top: .75rem;\n padding-bottom: .75rem;\n background-color: rgba(86, 61, 124, .15);\n border: 1px solid rgba(86, 61, 124, .2);\n }\n }\n\n .row + .row {\n margin-top: 1rem;\n }\n\n .flex-items-top,\n .flex-items-middle,\n .flex-items-bottom {\n min-height: 6rem;\n background-color: rgba(255, 0, 0, .1);\n }\n}\n\n.bd-example-row-flex-cols .row {\n min-height: 10rem;\n background-color: rgba(255, 0, 0, .1);\n}\n\n.bd-highlight {\n background-color: rgba($bd-purple, .15);\n border: 1px solid rgba($bd-purple, .15);\n}\n\n// Grid mixins\n.example-container {\n width: 800px;\n @include make-container();\n}\n\n.example-row {\n @include make-row();\n}\n\n.example-content-main {\n @include make-col-ready();\n\n @include media-breakpoint-up(sm) {\n @include make-col(6);\n }\n\n @include media-breakpoint-up(lg) {\n @include make-col(8);\n }\n}\n\n.example-content-secondary {\n @include make-col-ready();\n\n @include media-breakpoint-up(sm) {\n @include make-col(6);\n }\n\n @include media-breakpoint-up(lg) {\n @include make-col(4);\n }\n}\n\n\n//\n// Container illustrations\n//\n\n.bd-example-container {\n min-width: 16rem;\n max-width: 25rem;\n margin-right: auto;\n margin-left: auto;\n}\n\n.bd-example-container-header {\n height: 3rem;\n margin-bottom: .5rem;\n background-color: lighten($blue, 50%);\n @include border-radius;\n}\n\n.bd-example-container-sidebar {\n float: right;\n width: 4rem;\n height: 8rem;\n background-color: lighten($blue, 25%);\n @include border-radius;\n}\n\n.bd-example-container-body {\n height: 8rem;\n margin-right: 4.5rem;\n background-color: lighten($bd-purple, 25%);\n @include border-radius;\n}\n\n.bd-example-container-fluid {\n max-width: none;\n}\n\n\n//\n// Docs examples\n//\n\n.bd-example {\n position: relative;\n padding: 1rem;\n margin: 1rem (-$grid-gutter-width / 2) 0;\n border: solid $gray-100;\n border-width: .2rem 0 0;\n @include clearfix();\n\n @include media-breakpoint-up(sm) {\n padding: 1.5rem;\n margin-right: 0;\n margin-left: 0;\n border-width: .2rem;\n }\n\n + .highlight,\n + .clipboard + .highlight {\n margin-top: 0;\n }\n\n + p {\n margin-top: 2rem;\n }\n\n .pos-f-t {\n position: relative;\n margin: -1rem;\n\n @include media-breakpoint-up(sm) {\n margin: -1.5rem;\n }\n }\n\n .custom-file-input:lang(es) ~ .custom-file-label::after {\n content: \"Elegir\";\n }\n\n > .form-control {\n + .form-control {\n margin-top: .5rem;\n }\n }\n\n > .nav + .nav,\n > .alert + .alert,\n > .navbar + .navbar,\n > .progress + .progress,\n > .progress + .btn {\n margin-top: 1rem;\n }\n\n > .dropdown-menu:first-child {\n position: static;\n display: block;\n }\n\n > .form-group:last-child {\n margin-bottom: 0;\n }\n\n > .close {\n float: none;\n }\n}\n\n// Typography\n.bd-example-type {\n .table {\n .type-info {\n color: #999;\n vertical-align: middle;\n }\n td {\n padding: 1rem 0;\n border-color: #eee;\n }\n tr:first-child td {\n border-top: 0;\n }\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n// Contextual background colors\n.bd-example-bg-classes p {\n padding: 1rem;\n}\n\n// Images\n.bd-example {\n > svg + svg,\n > img + img {\n margin-left: .5rem;\n }\n}\n\n// Buttons\n.bd-example {\n > .btn-group {\n margin-top: .25rem;\n margin-bottom: .25rem;\n }\n > .btn-toolbar + .btn-toolbar {\n margin-top: .5rem;\n }\n}\n\n// Forms\n.bd-example-control-sizing select,\n.bd-example-control-sizing input[type=\"text\"] + input[type=\"text\"] {\n margin-top: .5rem;\n}\n.bd-example-form .input-group {\n margin-bottom: .5rem;\n}\n.bd-example > textarea.form-control {\n resize: vertical;\n}\n\n// List groups\n.bd-example > .list-group {\n max-width: 400px;\n}\n\n// Navbars\n.bd-example {\n .fixed-top,\n .sticky-top {\n position: static;\n margin: -1rem -1rem 1rem;\n }\n .fixed-bottom {\n position: static;\n margin: 1rem -1rem -1rem;\n }\n\n @include media-breakpoint-up(sm) {\n .fixed-top,\n .sticky-top {\n margin: -1.5rem -1.5rem 1rem;\n }\n .fixed-bottom {\n margin: 1rem -1.5rem -1.5rem;\n }\n }\n}\n\n// Pagination\n.bd-example .pagination {\n margin-top: .5rem;\n margin-bottom: .5rem;\n}\n\n// Example modals\n.modal {\n z-index: 1072;\n\n .tooltip,\n .popover {\n z-index: 1073;\n }\n}\n\n.modal-backdrop {\n z-index: 1071;\n}\n\n.bd-example-modal {\n background-color: #fafafa;\n\n .modal {\n position: relative;\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n z-index: 1;\n display: block;\n }\n\n .modal-dialog {\n left: auto;\n margin-right: auto;\n margin-left: auto;\n }\n}\n\n// Example tabbable tabs\n.bd-example-tabs .nav-tabs {\n margin-bottom: 1rem;\n}\n\n// Popovers\n.bd-example-popover-static {\n padding-bottom: 1.5rem;\n background-color: #f9f9f9;\n\n .popover {\n position: relative;\n display: block;\n float: left;\n width: 260px;\n margin: 1.25rem;\n }\n}\n\n// Tooltips\n.tooltip-demo a {\n white-space: nowrap;\n}\n\n.bd-example-tooltip-static .tooltip {\n position: relative;\n display: inline-block;\n margin: 10px 20px;\n opacity: 1;\n}\n\n// Scrollspy demo on fixed height div\n.scrollspy-example {\n position: relative;\n height: 200px;\n margin-top: .5rem;\n overflow: auto;\n}\n\n.scrollspy-example-2 {\n position: relative;\n height: 350px;\n overflow: auto;\n}\n\n.bd-example-border-utils {\n [class^=\"border\"] {\n display: inline-block;\n width: 5rem;\n height: 5rem;\n margin: .25rem;\n background-color: #f5f5f5;\n }\n}\n\n.bd-example-border-utils-0 {\n [class^=\"border\"] {\n border: 1px solid $border-color;\n }\n}\n\n//\n// Code snippets\n//\n\n.highlight {\n padding: 1rem;\n margin-top: 1rem;\n margin-bottom: 1rem;\n background-color: $gray-100;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n\n @include media-breakpoint-up(sm) {\n padding: 1.5rem;\n }\n}\n\n.bd-content .highlight {\n margin-right: (-$grid-gutter-width / 2);\n margin-left: (-$grid-gutter-width / 2);\n\n @include media-breakpoint-up(sm) {\n margin-right: 0;\n margin-left: 0;\n }\n}\n\n.highlight {\n pre {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n background-color: transparent;\n border: 0;\n }\n pre code {\n font-size: inherit;\n color: $gray-900; // Effectively the base text color\n }\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","// Buttons\n//\n// Custom buttons for the docs.\n\n.btn-bd-primary {\n font-weight: 600;\n color: $bd-purple-bright;\n border-color: $bd-purple-bright;\n\n &:hover,\n &:active {\n color: $white;\n background-color: $bd-purple-bright;\n border-color: $bd-purple-bright;\n }\n\n &:focus {\n box-shadow: 0 0 0 3px rgba($bd-purple-bright, .25);\n }\n}\n\n.btn-bd-download {\n font-weight: 600;\n color: $bd-download;\n border-color: $bd-download;\n\n &:hover,\n &:active {\n color: $bd-dark;\n background-color: $bd-download;\n border-color: $bd-download;\n }\n\n &:focus {\n box-shadow: 0 0 0 3px rgba($bd-download, .25);\n }\n}\n","//\n// Callouts\n//\n\n.bd-callout {\n padding: 1.25rem;\n margin-top: 1.25rem;\n margin-bottom: 1.25rem;\n border: 1px solid #eee;\n border-left-width: .25rem;\n @include border-radius;\n\n h4 {\n margin-top: 0;\n margin-bottom: .25rem;\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n\n code {\n @include border-radius;\n }\n\n + .bd-callout {\n margin-top: -.25rem;\n }\n}\n\n// Variations\n@mixin bs-callout-variant($color) {\n border-left-color: $color;\n\n h4 { color: $color; }\n}\n\n.bd-callout-info { @include bs-callout-variant($bd-info); }\n.bd-callout-warning { @include bs-callout-variant($bd-warning); }\n.bd-callout-danger { @include bs-callout-variant($bd-danger); }\n","// Wall of Browser Bugs\n//\n// Better display for the responsive table on the Wall of Browser Bugs.\n\n.bd-browser-bugs {\n td p {\n margin-bottom: 0;\n }\n th:first-child {\n width: 18%;\n }\n}\n","//\n// Brand guidelines\n//\n\n// Logo series wrapper\n.bd-brand-logos {\n display: table;\n width: 100%;\n margin-bottom: 1rem;\n overflow: hidden;\n color: $bd-purple;\n background-color: #f9f9f9;\n @include border-radius;\n\n .inverse {\n color: $white;\n background-color: $bd-purple;\n }\n}\n\n// Individual items\n.bd-brand-item {\n padding: 4rem 0;\n text-align: center;\n\n + .bd-brand-item {\n border-top: 1px solid $white;\n }\n\n // Heading content within\n h1,\n h3 {\n margin-top: 0;\n margin-bottom: 0;\n }\n\n @include media-breakpoint-up(md) {\n display: table-cell;\n width: 1%;\n\n + .bd-brand-item {\n border-top: 0;\n border-left: 1px solid $white;\n }\n\n h1 {\n font-size: 4rem;\n }\n }\n}\n\n\n//\n// Color swatches\n//\n\n.color-swatches {\n margin: 0 -5px;\n overflow: hidden; // clearfix\n\n // Docs colors\n .bd-purple {\n background-color: $bd-purple;\n }\n .bd-purple-light {\n background-color: $bd-purple-light;\n }\n .bd-purple-lighter {\n background-color: #e5e1ea;\n }\n .bd-gray {\n background-color: #f9f9f9;\n }\n}\n\n.color-swatch {\n float: left;\n width: 4rem;\n height: 4rem;\n margin-right: .25rem;\n margin-left: .25rem;\n @include border-radius;\n\n @include media-breakpoint-up(md) {\n width: 6rem;\n height: 6rem;\n }\n}\n","//\n// Docs color palette classes\n//\n\n@each $color, $value in $colors {\n .swatch-#{$color} {\n color: color-yiq($value);\n background-color: #{$value};\n }\n}\n\n@each $color, $value in $theme-colors {\n .swatch-#{$color} {\n color: color-yiq($value);\n background-color: #{$value};\n }\n}\n\n@each $color, $value in $grays {\n .swatch-#{$color} {\n color: color-yiq($value);\n background-color: #{$value};\n }\n}\n","// clipboard.js\n//\n// JS-based `Copy` buttons for code snippets.\n\n.bd-clipboard {\n position: relative;\n display: none;\n float: right;\n\n + .highlight {\n margin-top: 0;\n }\n\n @include media-breakpoint-up(md) {\n display: block;\n }\n}\n\n.btn-clipboard {\n position: absolute;\n top: .5rem;\n right: .5rem;\n z-index: 10;\n display: block;\n padding: .25rem .5rem;\n font-size: 75%;\n color: #818a91;\n background-color: transparent;\n border: 0;\n @include border-radius;\n\n &:hover {\n color: $white;\n background-color: #027de7;\n }\n}\n","//\n// Placeholder svg used in the docs.\n//\n\n// Remember to update `site/_layouts/examples.html` too if this changes!\n\n.bd-placeholder-img {\n font-size: 1.125rem;\n text-anchor: middle;\n}\n\n.bd-placeholder-img-lg {\n @include media-breakpoint-up(md) {\n font-size: 3.5rem;\n }\n}\n","// stylelint-disable declaration-block-single-line-max-declarations, selector-class-pattern\n\n.hll { background-color: #ffc; }\n.c { color: #999; }\n.k { color: #069; }\n.o { color: #555; }\n.cm { color: #999; }\n.cp { color: #099; }\n.c1 { color: #999; }\n.cs { color: #999; }\n.gd { background-color: #fcc; border: 1px solid #c00; }\n.ge { font-style: italic; }\n.gr { color: #f00; }\n.gh { color: #030; }\n.gi { background-color: #cfc; border: 1px solid #0c0; }\n.go { color: #aaa; }\n.gp { color: #009; }\n.gu { color: #030; }\n.gt { color: #9c6; }\n.kc { color: #069; }\n.kd { color: #069; }\n.kn { color: #069; }\n.kp { color: #069; }\n.kr { color: #069; }\n.kt { color: #078; }\n.m { color: #f60; }\n.s { color: #d44950; }\n.na { color: #4f9fcf; }\n.nb { color: #366; }\n.nc { color: #0a8; }\n.no { color: #360; }\n.nd { color: #99f; }\n.ni { color: #999; }\n.ne { color: #c00; }\n.nf { color: #c0f; }\n.nl { color: #99f; }\n.nn { color: #0cf; }\n.nt { color: #2f6f9f; }\n.nv { color: #033; }\n.ow { color: #000; }\n.w { color: #bbb; }\n.mf { color: #f60; }\n.mh { color: #f60; }\n.mi { color: #f60; }\n.mo { color: #f60; }\n.sb { color: #c30; }\n.sc { color: #c30; }\n.sd { font-style: italic; color: #c30; }\n.s2 { color: #c30; }\n.se { color: #c30; }\n.sh { color: #c30; }\n.si { color: #a00; }\n.sx { color: #c30; }\n.sr { color: #3aa; }\n.s1 { color: #c30; }\n.ss { color: #fc3; }\n.bp { color: #366; }\n.vc { color: #033; }\n.vg { color: #033; }\n.vi { color: #033; }\n.il { color: #f60; }\n\n.css .o,\n.css .o + .nt,\n.css .nt + .nt { color: #999; }\n\n.language-bash::before,\n.language-sh::before {\n color: #009;\n content: \"$ \";\n user-select: none;\n}\n\n.language-powershell::before {\n color: #009;\n content: \"PM> \";\n user-select: none;\n}\n",".anchorjs-link {\n font-weight: 400;\n color: rgba($link-color, .5);\n @include transition(color .15s ease-in-out, opacity .15s ease-in-out);\n\n &:hover {\n color: $link-color;\n text-decoration: none;\n }\n}\n","// stylelint-disable property-blacklist\n@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n\n @if $enable-prefers-reduced-motion-media-query {\n @media screen and (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Docsearch overrides\n//\n// `!important` indicates overridden properties.\n.algolia-autocomplete {\n display: block !important;\n flex: 1;\n\n // Menu container\n .ds-dropdown-menu {\n width: 100%;\n min-width: 0 !important;\n max-width: none !important;\n padding: .75rem 0 !important;\n background-color: $white;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, .1);\n box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .175);\n\n @include media-breakpoint-up(md) {\n width: 175%;\n }\n\n // Caret\n &::before {\n display: none !important;\n }\n\n [class^=\"ds-dataset-\"] {\n padding: 0 !important;\n overflow: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n }\n\n .ds-suggestions {\n margin-top: 0 !important;\n }\n }\n\n .algolia-docsearch-suggestion {\n padding: 0 !important;\n overflow: visible !important;\n }\n\n .algolia-docsearch-suggestion--category-header {\n padding: .125rem 1rem !important;\n margin-top: 0 !important;\n font-size: .875rem !important;\n font-weight: 600 !important;\n color: $bd-purple-bright !important;\n border-bottom: 0 !important;\n }\n\n .algolia-docsearch-suggestion--wrapper {\n float: none !important;\n padding-top: 0 !important;\n }\n\n // Section header\n .algolia-docsearch-suggestion--subcategory-column {\n float: none !important;\n width: auto !important;\n padding: 0 !important;\n text-align: left !important;\n }\n\n .algolia-docsearch-suggestion--subcategory-inline {\n display: block !important;\n font-size: .875rem;\n color: $gray-700;\n\n &::after {\n padding: 0 .25rem;\n content: \"/\";\n }\n }\n\n .algolia-docsearch-suggestion--content {\n display: flex;\n flex-wrap: wrap;\n float: none !important;\n width: 100% !important;\n padding: .25rem 1rem !important;\n\n // Vertical divider between column header and content\n &::before {\n display: none !important;\n }\n }\n\n .ds-suggestion {\n &:not(:first-child) {\n .algolia-docsearch-suggestion--category-header {\n padding-top: .75rem !important;\n margin-top: .75rem !important;\n border-top: 1px solid rgba(0, 0, 0, .1);\n }\n }\n\n .algolia-docsearch-suggestion--subcategory-column {\n display: none !important;\n }\n }\n\n .algolia-docsearch-suggestion--title {\n display: block;\n margin-bottom: 0 !important;\n font-size: .875rem !important;\n font-weight: 400 !important;\n }\n\n .algolia-docsearch-suggestion--text {\n flex: 0 0 100%;\n max-width: 100%;\n padding: .2rem 0;\n font-size: .8125rem !important;\n font-weight: 400;\n line-height: 1.25 !important;\n color: $gray-600;\n }\n\n .algolia-docsearch-footer {\n float: none !important;\n width: auto !important;\n height: auto !important;\n padding: .75rem 1rem 0;\n font-size: .75rem !important;\n line-height: 1 !important;\n color: #767676 !important;\n border-top: 1px solid rgba(0, 0, 0, .1);\n }\n\n .algolia-docsearch-footer--logo {\n display: inline !important;\n overflow: visible !important;\n color: inherit !important;\n text-indent: 0 !important;\n background: none !important;\n }\n\n .algolia-docsearch-suggestion--highlight {\n color: #5f2dab;\n background-color: rgba(154, 132, 187, .12);\n }\n\n .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight {\n box-shadow: inset 0 -2px 0 0 rgba(95, 45, 171, .5) !important;\n }\n\n .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content {\n background-color: rgba(208, 189, 236, .15) !important;\n }\n}\n"]} \ No newline at end of file diff --git a/versions/1.23.5/assets/css/style.css b/versions/1.23.5/assets/css/style.css new file mode 100644 index 0000000000..30b2780ee6 --- /dev/null +++ b/versions/1.23.5/assets/css/style.css @@ -0,0 +1,179 @@ +.btn-bd-light { + color: #6c757d; + border-color: #dee2e6; +} + +.api h2 { + margin-top: 4rem !important; + margin-bottom: 2rem; +} + +.extensions h3 { + margin-bottom: 2rem; +} + +.donate img { + max-height: 200px; +} + +.donate th, +.donate td { + text-align: center; + vertical-align: middle !important; +} + +.donate svg.navbar-nav-svg { + width: 96px; +} + +#share-buttons { + display: inline-block; + vertical-align: middle; +} + +#share-buttons>a { + position: relative; + text-align: left; + height: 36px; + width: 32px; + float: left; + text-align: center; + color: silver; +} + +#share-buttons>a { + position: relative; + text-align: left; + height: 36px; + width: 32px; + float: left; + text-align: center; + color: silver; +} + +#share-buttons>a>svg { + height: 18px; + fill: #d5d5d5; + margin-top: 9px; +} + +#share-buttons>.github:hover, +#share-buttons>.github:hover svg { + color: #000; + fill: #000; +} + +#share-buttons>.twitter:hover, +#share-buttons>.twitter:hover svg { + color: #55acee; + fill: #55acee; +} + +#share-buttons>.facebook:hover, +#share-buttons>.facebook:hover svg { + color: #3b5998; + fill: #3b5998; +} + +#share-buttons>.linkedin:hover, +#share-buttons>.linkedin:hover svg { + color: #0077b5; + fill: #0077b5; +} + +#share-buttons>.mail:hover, +#share-buttons>.mail:hover svg { + color: #7d7d7d; + fill: #7d7d7d; +} + +.share-desc { + font-size: 12px; + color: #777; + text-align: left; +} + +.post-date { + display: block; + margin-top: -.5rem; + margin-bottom: 1rem; + color: #767676; +} + +.btn-brand { + background: #7952B3; + color: #ffffff; +} + +.btn-brand:hover { + background: #614092; + color: #ffffff; +} + +.fa-link { + font-size: 20px; + color: #333; +} + +header.themes .bd-lead { + max-width: 100%; +} + +.supports-container { + text-align: center; +} + +.supports { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + padding: 0 .5em 1em; +} + +.support-description { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + margin-bottom: 1em; +} + +.support-item { + position: relative; + display: inline-block; + margin: 3px; + padding: .25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: .25rem; +} + +.support-item:hover { + background-color: rgba(108,117,125,.25098); +} + +.support-avatar.Gold { + max-height: 96px; + max-width: 288px; +} + +.support-avatar.Bronze { + max-height: 64px; + max-width: 192px; +} + +.support-avatar { + max-height: 48px; + max-width: 144px; + min-height: 48px; + min-width: 48px; + vertical-align: middle; +} + +.online-editor img { + max-width: 100%; +} diff --git a/versions/1.23.5/assets/images/alipay.jpg b/versions/1.23.5/assets/images/alipay.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a02b1d502ef2b0b0d748fa9c1d32aca42d461aa8 GIT binary patch literal 104403 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 Ul`4;aa$79zmj>!}s`fGe11olz0RR91 literal 0 HcmV?d00001 diff --git a/versions/1.23.5/assets/images/bootstrap-table.jpg b/versions/1.23.5/assets/images/bootstrap-table.jpg new file mode 100644 index 0000000000000000000000000000000000000000..875d0cd8f2bed7e48306ae616667dfd13df70669 GIT binary patch literal 30089 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 mb$(|6wi_{#E1@&F_x008O!4{$dJkOAOh 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 literal 0 HcmV?d00001 diff --git a/versions/1.23.5/assets/images/bootstrap5.jpg b/versions/1.23.5/assets/images/bootstrap5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0102ead74faccd48c19909a290ac7223eda0b3f GIT binary patch literal 20774 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 z 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 CURjI) literal 0 HcmV?d00001 diff --git a/versions/1.23.5/assets/images/edu-birdie.png b/versions/1.23.5/assets/images/edu-birdie.png new file mode 100644 index 0000000000000000000000000000000000000000..e99abce5747a42733966492c88ec82b741b8c72c GIT binary patch literal 22304 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

1?RB4Oaj3>`|K^wVCX#t z&=0s_$P6Me8-;W8z>4Uv#E=$09vgVk7FwY0h(uaBzBh?+B2nAXDS;UhEV_so zv(=gE9x6XonpHp3yTLkBW1_BO_5CF#AgG7+2qTwMBd{NHHTEPe(WTz2ZAPu+1T0J+ zn?XT0^Vf6P?PgYoa(+{E>x&t?>hOW|uNUk;7@<$TuiU~*oz<(qU0_oMlWb~?~y)@KJv=Wy}d&1WNnZ(S(s3r)PDgCx}ci^2@7u(h|# z)P%o~rjz6D6LU{e0tSRy8qGrYP$x1rZZyzn)PZs)@muf}j?CnNAx7ee*yIEidg}F> z(Vryi5(W%){G^VwWYfAIxnv7+9#j1Tq@{H*;U)r;{e5)#_DNKO{HhK%X_Vj3P+HAi zm8mvQD9|0I56{#v!WNdj=s=Zf+f|;6$@G&(fka1nfi>tv zagb1E!{EDrSZ2X9TPj3NTvk>cvwQXyG!>=Yz>Lzm0SyEGAxH0cb^f}$BieQW-fD`M zFl{)q`Z|P(MLQwJ+su=&3sA-^5($aTk#T3MzYgnhXf6nRC_BE0SWAG*s$tt^w*ogc zZYMF`FfJlG@U4;O%!?y_3$^T|V`3jLDqj<3pZjTlr_Z-K|%TVYI+GTi&SbfWkv z=o>@rbXcVFr72$LVa2t+`8E!Ah$A;&&Q5giad2KOKjfEaKfh9PoA-O2=%DVd=wf({ z6T}urLGdHp1GzFLOAh&sw5KOxyupfz77zk4LjH<>f>>-_<1w*Ru9FqU8LTZ5$32sQ zT@hT$rr@8=x$((`Urg)W(l3%^i?t}CJShJn?{H={8Dg6_|Gs>=T`{|;RLkP0kW0vO zE3fkZ;QqqXjf|?0Q87bpp^^VZpbno#tBX|x%wn;NSG8Lwk=Y43ovZkDfbE0D?qoy< zYF~hu3Evi0#L~R70bZuM28Lt+4W2t~db}vz>Go9LAEC>9cB@ph;GPYZ9H&JXt~srs zLIX`y3DAl9A&yI`b~+zV99>X^dLn=#NeHgwIjsUaCg3Acna$iw33|KLZW1b^E`SQ4 zDs-@m8i%XiI9g}eNUgFd{}+A$%Cp_{Q7HBlV${)p0hfX&Xw2vnsX@S5Cis3d+`)gd z{UH=H?FZKp@4`^Zk$wiB^--pBLLe;Or$M}{#>HO6BQMwyC)!yvw){=-b{$HKt#p(O zuS_FWh$3anz?oVhZVNAJ2InXq{`?F2;Qk_!bw3a43q%|9QlV~x6$;WMM`e$l{G0|j zou&hv7$QpOIama9K3?U(J+6ECjVg-XhUtitMecI?4WEw>v9@Z>upPQjFq1vH5({H{ zbJcu*G&s>9H8RpzbrPw2tDM^nQm^ZGj%Drz2dkf;%#ANua!$b4%th}`Eok1Xqk z#an2!O?doh(}*>c@_TqU!Vj_xdgRxuxlUe+Pl&4yX(%}>G0`Aply{NoIQEDHK` zf$hAS!(w(8m~?+Cah)=wwvz0%uXhk=k#}HMg;-P_2E75&zsCv#sCGxT_CpQ5O@s z$gq+051DE+l+W>mN{lN0%cCCNc(t|geTJET7!Pv+}-zt=;n4F><(gyf^4=LQyzg|c6x~(N{cglcx4u?dHAP;5TJ_QOcu*FX^sNs_^ zE%83xh%I-^ylHRWKfgPUJaiEd7#t_ILOhTH%1*)i+_^U(2W%$PTjJv4YRx0wCa2bS zv!|Vxc6asR4f$$9%c4gkQIeyZUD+f!?b})psPto7y(K?f!bfu8BBMf(-3t4wr$TqG z!S7DL1|a0wuF;?t-12uiZ1>Ce>1b|(6naIli;*-WaD5X+R~gbR^|-`|)r2xjA)qh9 zMGPjtuYUu>e9JX;!~Z##wK2a4v$~4$0iU?^+-`At|@;!A5^^V zUtXeJ4vdnSzLBT|nV2T(`T>vK!bs=-O_jc2C0ZHNzg;Ur9ji3^V7^LBRili-$xXav zexyn-{ChVeUZx@U9l|y(1=II5_iAhDoeWn7vWh}9Ie)Xm$r0^Dl}Gc0{7Jo|m;5&5 zFk}RFTEfE5zhau<_kwa7rE*w71aja`jCvzw7EVl2y` zDHK*hX&TB3OH-_5+urGd>@E8hkH(PLTcII8vraRdFV@6YypXqvIF%BRvn@0F>`Y_D z+4-GFW6BHpKyS@XR-*4>Ot?3k8Zp7?Dv{UG^OZ97R^`t#C~hE0ifvuDN1l^oB4bRm zc;w-Xf?-j0UPh4A8AszJm5w_u30n8~90vO<^d7Cj4rtL9swa}1To&Lj!z9Qve-I7K zdcI}PdYo4$|7@(p#T91$LfkwG+;vF7RBso0T@MO0o=;dn$^@QaKBTkfXO5gNqlfZiyuZB=q~GESV7^Gb1jQGb=3T4h(CMDq+bZi(-;~eZ+Q+B;EU0z*s|o2-i}u&{N_7benfob%igG|Z50+y}iP|;WR#v1&o+-Tc z`9h0kL%sRHtWl}Fb&Wcz2g6jSW-;aptdbE&H0|CjDtyqMLCzM5y`E-QS45dtD65!# z?h-;?n}ZKnM0bF^QPzU0=*QpVymPO|jUj+YR^z^7#U68dV01nfxh+zSY8ITODa$v1IMN zzFJFvsRP5+869M-G!x=OE?n?dbNve1LnKkJ!ftY_B!aeqo<0(KCbA6#@9U}!GMn&^ z(p1q9{dN6uA$CHihEytJMz@F~JHaH8#Al2{3Hw@MYTwa{oS$NwabWG&zdx#bR9r3O z~fN*Q36AZ)# zYcQkDXr`XY^F@tigN1e!*Lam0m;Ugf?$~K$aaK;4!4*zZ%O%%CRMHFm4OhR3QPGoE zA2zyfM6}&v#soOV!%a330|+CJsIeV z%Lm8h*2Msm3HN2ab2P5>4MUM4p$uya&{GrC9EXmLmiY4f(S}qZ&k|TKWdRO6&mzbC zF>y4;Fz|{-t57OqZk*i!bG5t3q4dk0EhosLz>CQB!<>6P7&>oRVQhXU0{0$E{j+pU zK?f`YAtBP+ZY^lAt!$g$!x;;KsKiVVhMe|sp8N0XM1={bG3xEIyr;ZW+Ur!<2_3d7 ztax{kJ8wkEQnkVB!rc;zZiM#v{g}PtcS zz|9}UU(=*_^=Wh~Pxt*Xo24ihR0<5xx(y13uu$P zHRoT)v>&9CVXEG)f~XMCcO#5tERbrHKe4iPtd0eDUC-p`JK%^LSlsRJ^QWW+yD8k? zYlb5UcZa?|9il_7r_2*v-Ae<@e}~)}SEfdP3jGFb0MTdc)!H6pb)P=rt@D0-8i5of zY|?6wRbe|}Xph9PIx5m0>DK&}u#-GU+$dF~%LIXVqb&0;#5oqF5Jf?jJ2)M4 zbzy8)u-cnCE>~0vApkU{A_OlFdq1e&7Y>dcPRU%BfiG;J#prr?+p!}jUhJ@bEbp~x z0?3ZUK1EwSv48!CK@G>|lf0LpIsBe^7JdV~cmPfas$H=mTAX?(-_DA8)xWpP=-jRs zs+Qx(bVFBxsBlQ5gz#*6eDG(ApC$*dx;7b)!D$hjlVW;l=ow2*o?c+yOBsn0xgh=J{^#a5)s z`*^o;0BULhnW)VLNy?L1l9U~~i}-<2kZiz~V`so0A^f-EGtOcBk*NcYF<>3MoVhU+ zXXZ5?*=M;+ZTNM$^-`|ugo4XR{0B8qWZd6aS#?lH^ctn61N8~pe)R9(CyIn#Zb!Cv z>5nNdnBPhmN3ki*FAk|+;=oiVkugJF$DukEh)_6J@Dl3}cCEHv{qODu`BhePDM*qa zoC{ONVOn7*u6BRw0rNgiAU8_ApoFN%nu;Rzl^ud+{L%|fVcGr^R$RR>%Gw~r*pB+y zVh5VSU_D#b6&tcaTz7!ZHhq9*Q}cH|q@L@ZY9CLxzX(HtJV>^>2#L9Ppp5#UtrK$QOLpqpax|i+)6c&h!iB0 zmCM5}*)bmi)=Hy#-p6DBF~^k^IM89y3a7Fml>zxQlQIEd_`4CrjOKxHfK+UF2#Ku7 ziigEYU(v#N?V7@Uquu*ogIz$4qVS!Rd+CibIsIOBWuEp-m&KRNtN)b5@8_za!F= zxcq2W_KLcXuLk$Nuxm$sd+BHzhcZFROJ2T7;s$0Q-@*N0AqJA(fr13q5@vJ zgA97)jw+!*!^ktS*P|e0!}3~?K?l~qk?PIzByKioG3ET;@tlZV&@qSm2QVMU%V!qJ zFnv=*u_%z4V(w%H@d+)HgEh<(d2T(d{4R~OAFpDx9||drgbs;*P@E-bi++&s-B*q< zwW4J63V%Ju?_qDVV|^#6o`YYDod_xd7z>&nf#;gv8c_$fpr`#JOwbidK|z^zd!r2Y zXoGu1cc*^-HG(hQsQFdM^ttXz^_r*@dM*df*rTOdJn5Qb);vi>u6Pvd@XA%G__?Yl z*FRgGa*fW84DuCw&u+>U#ifuh0jVqjQ<9;MucTO_g;rawehg3sh(SAwt}`tU4aNwS zGT#Sg`2{NIqrthP)E4;I0O_8|2;c0g;acr!+v(~rg9@T{Hb+}SAhk47#_+#uR=BK6wHU+1d+So{kIpELr;GH2 zv(h`J+v33r*oKc!%M=7>QPq9&J9dUT+_?XM*WJzNWkN6p(j&YE zeCGQ|u?xzTTFH9h8r70m5#Q377FlX8VDBPT2q(bGGI;Z|rLDPaY5GNA?5hV?=e4RF05v$3~LKf-GVY>xOV zU77baY`>m3G#f-A&cf_y2v+9iCCJaM1Sx(PWd@0;b>0Pyb>j(4hy1Q+Oz(C!Q|`t5 zQOkbSKQZBPs>DNEzC?S7;y_{Gn4(~oy}bV0a;-vS zXVLcysKITu8vng3n4`oAI>r;PhCGo&_W8O;pO+ME)MU(+il`GmXPJt?xlF#hK<^^6 zn|@$-Gf6Fah1ago7`oAB6ybywr%U;jBg8eeq~pKs++|AWjqiTtZRFCSm-Cb#l4xR} zvPuMPjpR-=;QdMvs~v(Oz;Astc!fH!P4>qOluVB)ZU#DgF+ywuQF3{7vY zYQ@*tjnJ5Nrqy85@>n9DTRIaOs?aXp=A{d(fITvv3~R*qA)Mg_^LhLdWC8#2ikc(f zN4PA%NlZt{;vhfGCDP-(!@qtDy0nrP;=^y5juS9#C_Csl?O5;VHI3lGI_wPb0PkA? zGa(X|@|!9r)T0@Zvfz5T8bz#?QP?GAhvstQn8mlb&jR9tuYtO&=_#bJ7_4~oDGD~Lk-y1g3ER!>K>K~go^{Fd)xl+{PDQwvUBFpg!#?Ry?T$zis%+-`vN$k5+F%v0K)rB%3 z74MTm@wdwp&F2=%8M26q<;D0;JRBY$UI$S_`~~Wd74~-^2&S)qqtqxePb?a86emIa%OVhr2(D=VY02gI!bE)t}0UKS?@< zNsSxqmH!-iM>I?+pi&$jo)sZ_N`$4_X)r)WHVoq-nit(dhO<@T#>JklwQtE7nsn>@ zj?JEt_4b;R;?BFJ7657RMH*q;{>M#y6pj1G_ax!{B=k%_nkX( zx5se#CJ@{4UuB~WinWaS^MoK{GTeeavlA?o-T)?1Rf6v-bwXjnry>L8`&y9&r94;s zb#@8^rJ;SMBNn@flJ?IwWu#!Nc@8Ht>IbVcx(Lfs<}M3Vv@YW>+<4|I=QkRJCYTE| zW{`vToI5S&EBJhPh~g%&Dtk_jJV0~jajiIG4gPPKRX8fOXC|OfO6r|IlG&2|Xd2K8 zl<)jCr_TfjsFKLIYi;<@m0Y~+&QJ%MgRY?ew39fnr0ia64v*Fk z`XBJ#5idZQKu8>-Xh1eRw6X_(xGhJ4K`n^xZ3|QM2fCSp{zwr~mMQ!YDo~|{5Rtn= zKnX^_ZDx%S5ye^G4~H9H=<4z(1e%Uaq`{}`gR(ca%V3z0kVAUQk|s+|((@sdH;{ut zAyJ}p|SJJZAw={=p<(cdYPX1H%_w$s8MMxOV0o3^OHy-WKW9t@AW8kvM2mQ@qosviXt9Pu#xSaK)6BX5I7n*< z08+~14oqxUFM*Ea%)k#qDlrPMEQ}X%UsL+ZsT3#kwzghbcMeGPTn3HkDD22KO~6c-Ld zbyqUPVjg8EE$IqUnX(ZT?*U=xnBp|)P8Q3m#qz4f5Y3UwOJ??e01Z~xBaxgdkF@a3-i z{V}g^uVF2r4mok6)JD$dR;fW}{Yh_W+DKFdPy>>0Qf{;RyUoAX_{IZ&mu(5Y;Zm7T zhiXn2jJ6ZLs|_gqC9LUWkw!^^LpL&02B?hDpne1mCi&@g)YsTz6NTU{9sTnUNTk&N zjNpBKVRPOp96EZ{DmJRIOHfDg%qfl! zc?^h^d|;0v;kI(!WM;Dd8x&_Zg!Bl)B9_k%!T!8nWER9#p$K8AN)@Uy{JFTQ z8|D%lWXZveZ12DIWy1{kqXx(@z*BXPRI`(RA3AA%m{?Ik0F5P;{Qk}BZk(ijL5`ku zPf6ZkK#;XtJEQI^L0?j3Dr|v~7eW4OsRXnw!|GoF;H5TXoL=sp4~4vU?mD*y5{7F9 zUm*M_RoeK2a+!)oYMO31`?x7D%E-ct35q>qXVs%g!P#zOBpoPXn`+ZA#E$NGuM~Dm zK1yjK;UsZWY`B*zT`v`u6qz*c4zQZ`rMBS>#d?L6zycyugpHDUS;^53nw zpMUg9=0uJr5c~e^!+eTQ;`pXS`+S0j%Cg7PoPq0b9f$E^PaZz{>6Bjk@|9(3Hf+y% zikQE%35xSHyat!(P9^Ox{((bp%&se3FVN)acNoGSMrxa`?Jjor8bBuDk}?y(V*5bi zuSFdHXMC&?%QZ!IB=XxUG%Gepz(G_RHs=6%4zz+YGJT>zX8;u@z6u@U_px5*&jk6} zts42#n8hTIjJ4U}D$vRjW-639LpF;`36!wN27M~xLW0nlN|q(@ zdY$G1yE+PU=%k>x6R!-H^jb{t6PG;zvJ$#)-wk{Ylis2+3p;2CNhQ((-UUJs(hx$v zTZG6jj=D&G=AG<`t@!!~Re4^0c|XXSo}u3Bx%rC6uXL{~ zq7}bCEhl^zFB6HD#qFRg&Z*ZOaL<18RtD)nb*5rFO&ww8%*R5@ZN~U#=H}ub% z-ho5aGg-rQ&@N}T?hHcHkbvT*>$LVypYN7Ja%ySuvBURw%T_{P`SNYZCVHMBd zuAode{)683TN%E!M;c;mr`yjMopPz`_qLY~#}XEgI$(OhX;cm1m(!h1$bFeL@VDnr zU$y6W7Lyv%^?%5!;;^mT^f%PM_P0sVNXAd6vq`9kn!f_P%C*w#DwD{o6XAz5rdF|s zc$s~kRsTVCXtzZm1whxA|3%D-tb&~?>5bIqJ)uF}?bsvMrH-pg?XutM(gwwEEi#E{ zNDn&BG6raZoH3y%hQJd=y|Qp*1onmK7%K$vM&Y{6N;uZ9Xf9|%A*mr9eF}sUFrv>x zzcW4q=g&mckVClqpmJv{Gj>%we$GJIq-tf;w?&&oCb(BjO??D{Hckio{!T%jG1a0F z=3mhfITgF+!Af>t3j*5cH0xYSop*+9(W^+*-ZctHd|<^7qsugN%LQ9qzx}!Rlx0e& zc~<;p^BWb-6cLP|SS5F1x9!==XLp7$@=Uz2znZ|Dvz(Q?5+?Mlip#0hj#*jZJVXOiH(Iv1vFc(Wb1;|cvNegqPYt8#l!BqgfEJ60f1YGwk(lc4_fjrDK9FQSyN00+ zNxa8JteNwSONbWN?vdKiDST#%3J{M^{x%sk;rO~62-@e7hcp}lU-t2Nji`e1X8ieWV~MjQ%bF=9vEovXwk!&zzsn`p=@+$34*1BLA=XO^B4tmE2y|0&YY(+m_zUkZ2Z zIv3ABDN2zIc@*xRn2)9rShX@ycYe)8bdSi)R5g$J4ZVCDVLOQ`3yIbcUJ%08;()_^bS82%O zlKn0baosMFj&BQ^-Gc$=@BVHTFGV5wb@18;CHr4z4(+_t5Kw#o!?3-mRc5o+$CK%+ zx8~9?-XH};up2|-@*UCUa_99)AsX2C&J-GqW&39{u5)@G=Ysp$`yB@25&lhV$m8gD zhzPUW(W!C*3+VgFP$eo<$D9q9g!*|%qxN1kVA>|wEBAF&>;NYU<*)0Mi=@mphE<&b zRIWfIKa2obz;JzdFaZjL>km$Md{(7YagQ`S%R`;0voGUVoWBKVECrbSmjIqu1``({O6vCS5$ zqlZ~QR!_e_*IDhw_{tDD@>Z>$qzgc>$Zj6YbzS*h%%S4^t$}== zW)j+XI~S~I28A2wf}(~pkvj^!cRJRBd4k!U2@IL2hN@#f_j*9K1wk9_0_{q2mUu5W z#8S2S-QOvLDd!C=y}$K>v)>UIrOvR@VnD^B_*`wzPSp#xlMA0!pPjJ!^MOkoN$Nz< zt%8vPqlk`XulYINHTpu(Nwu+~TsW&o{%0^?CFZm3k2y@o&9K##ns$_~hDQ`{mP>98 z^+zM`{#Vpz$v&)BErMDV$>wL3?5B~#?;DkugPTJ?U&&7$q0j6pjp)22n1dUzy9n_8 zpq>0icgat$hB)P3CAhDZ{!z$KQ?u+t!3k%i$aO_5+^fK(4=OWqMA5Qi@X~;1u=%$y z29PVrh+xNVz^^N1$sn?M19INDhRJ$yY^P3raxx1p9pWp!X(-(`_{;um+TL z3B_WnEljy9Ku4|0-Rx$SkCh`!IO~d%t5}CBE3o)v zp|wkRg^e4>Go?O?8ov;q%npo6J_KSgNU|{#fs!LYq7i!et+&}N-0VKK-*T+_za-~CbYY4mGefq zD2f%DtOQ(RDyucQN7c7)+-sL6ope-KWHEd@?ct{Y?)rcbrSgLHfQ25t&%*?bl?PIR(tFk+n z$&aw99@A&WLKfipK8(=YHk|L!zDlVSg^&4I@rq1_@P6*j%NGZ?K&}=Nb8s;FW z+M1_8x)oG5tB{-ti-jXgk z<$LISA0>R?m>=El77AdA{E>!%#5KANTXsMRIQ#Ta{s>g6KrS&iC_=i_LH(Obv@_N; zgX711*N_4Sq#{T(CjU0SR~Z&Z~pz7zQC03xDrofgu2>3-78EQuPsu{|><c!Cv|C|MwsS#C<|5t@Ud5u zA_a021)3MCC-@_Nk@#&Uz&GCmb&rO3byRPVrtM3h>qk^oL>5)jzS`vr{XY-%*va6_ zu0&p&PPUZ(m0ps_*nt;fBbS>b45W4&p6vIBbAJd7{}okd5r%g1}% z_)8Ti52mqO(Wc60z0bNSDc^cCeofU(OG_L+HcEsR}3JMz0Z$_hF!i>V`oSbJ@LUuEaG$_f#qEb!0PRRduIj+ zF%EH2T}N#96wIDsUPc1N;qMZFCk5Qkvb{KQuV@^Wa814$x0}W6RyN|P zGXmL_QE#_i+RaQPvZ(^{QO`}Bb!ML+A!I-AE-|&MCPxcxNYy+i0MSp9fhs5Z!n;v7 zbDAcnN&d~TMxZc4rpA@h9L)HJiJ4zA5a`o?s^pv6l4INE~2p^GfPr8MU$>yb|^l zcqE)T$&<_Cpl6KmA@ErGPXpi0gVD#pvm+HS3gXuVBo>UTZU-bH48WI45@#OfXEe{f z4P-iWA+`g0;FN;UQk6-c{?0xmsw8$iDzFbeiumIO$7d>FpOMH@eU{ua%tzY+H=Ef3 zBet@?iI-Hs^10LZ!D9;Lz4Lp^;_vsCpTZdcvs%@aJLm0y>MHKQrW>em`kf6~RZO@3a8T1=$M2qgNU*I$mV<~4fSw6Ga zEjLP~Qa_q`I9|yl<|7>T``<5-_d#qI;F=P;?N~v7a&9nG2{$)RfwvLs!E&s?pHv~) z0htWLjw|mTn*_{DoIi*Fay-3?t0#Ip-H2FPXCX`kUa!JCq*|46*F9B1cJ=4$IHwsg zmNEG4VEOhS&WYd(!tUv}^q$eR7Z7`xWXdItTm9Sree+^mf6#B*#nrBT&$%B2IfgD! zDue5FG5~xV{0*sGgTC8=t&vU`{J0C(fJhvHZafk|d=i9NR-Il(R%dEGeRC4e_~=1GH+x(yu6bfN2y3Dg~;Yb}^eiJm>1K=A2V zLgK(dL{F19;l{`yP|3iUEb|fW;YTmmE2&8>yOD^4yd5GQ8ANvjX%PopCR2Zz4Lm2q z@rYSIXP94JhJU`2`jCJGifH~Z;uKw$6c0Z+e@}l?#YJxlJ9j@05lVQJ2EVsY=P{4y z56uHStoti^T9-XZ&p!DGe(RJ9?U)o9^jpxmb6Y>{IvhisEL;_^|8GMuw4Q`1?rvRK zuXnMbX)W9thug%qAycKBD$l56zlHbJY(xSzfkD@(w)_=B z5?J;1Y!k-{!#Xp*JvZ!;SkvCXaLOAY@tb|b_o)Moz~H(1NQUbXYv@x1f_$$csC4$k z8G)w<($Ak!Hs{!cU}ogb-y=i?`+_@ZPs9932JW1{2w}1B#7PoEKlG+L876PeWHa2KK)q%lKw@k-|8uK7Qz}VIyY0;qVQZ6~&2L^vW@b ze-vv;cMhTs_Q}LSFgU^y%RUF5a}bd`N6{G}Fo5>PAfi3Di+?+|;*-UoChC+ii&VkG zll?e{wY_eWm|55kPeFX{C5AyE;&~5QgCl&5?36zA^LtStKwxYj^10Xm_ z$w>YT;y^-Srw69QLSpz!gg#&xUJkxuoCtO5=v?I=&oa6LOvZ^@3D?Sz#k(>9N=1zH z_#k4Pys@c6Nrz-Wry~yhabOO68%S74WYlP}6wcOga*=>^$1RcsjD*b8|5}Rrk6e<7 z6R+I$X&2ax{qqpc2N(q+%phIniDbht=6`Zvj*#(w6~K8!zxUtb6trK@*)@P6@%xvP zix9KERn==#V?+rVbXo0{A~cdY>wv%aGn0--fv184NtYhH>sq zfr8_lLD(23<0ORkNQPbrbN>A4#VT9^Hw@OI9UK?Evz;pTJ?Do&6z%z z6!gy&e?yK`uWS(imR7Y&Fm)-EY&(MO(h{zgD589-k{~7@&hbQgat#ta z4x_IRC;?Gte>Y#z)8Wg zj2S;Cl{XEgo@)_P{MzX;)eI-_?t<#aPBNQ;);dYjqWMF^YgmS+J71C0KRbUuwmc1Vi5=tfc zvkb;YVqC7yaFhJ5Z_DppduT_?%(+e`z*PX507FAC4n#-o(x+Cnu3dP!VFYV6PbSnj z*q|~XTS~|Hl*)&aeiWmLhEN)=NZ|NQ<0tR)IT=G%fky^REs@-^9Ep;e;X~C=2zG$_ z)-T0?Pn(`uph7)_z&HXJCVbMzbsVjdUgWV32r-~B;pC?#xz;^|9#OX<_RP0pVwh!XZC4w8vdr*i~YxbwBnZr z(e)_|m&xUHR;T1=95d_!#>wHiv8jM{q56tv@lvPW8G)mEg=5IN^5py^v+-pl*I>sR z3*mud#SMw@=LmOjHIBrz-rtcUc10IwhGOQq#i@utQ*wpObBs+j6ID4kAXwrOgyKjA zrD*Fh2>DHW2v30PjQDe<^cdm@Q43&&oqt)MbUl7jnZ%!jKk>l>E*bfpU|^K! z7&N`d6^PRdj}Q=Ze*gz}w{DcM3$}qc@mH~a81Kgn^URH3ru!!u0B1!Cpd`tO+}UJF zk+ny+Nkpl;HmgDc!Z`8Y`D?AR5%i?6zkn$J6$g~t0dZ*sF7H=h>HRZAQ|u`$Sj3RV zICjqlecZNgoy1I24@UYvbhuvyFqS*dFlJcnWHk|SN-vXCki5m7#EbXrfCfQ6vT5=z z$*B+L*{s*U)?n+^wM&Nh4dU&mAXGfWBN~Gq&c#f_euwJX6zD!ne5@(Ms^(z~}o(Ky(7x*qP0INNT zDjjZAI|KEl9b!*_A)v2(73Uvda3!G^V<&aVcKu;ZoobxY7GdWZsPdu$6#6JA+d--_ z?b7z-o~64x&BoEG#x1^CMUDuHr;+Wi-ucm%CoVZBxP8@cB^s>J-5KIQa5fU>FiZxa zsD_5&gWPHb0OA#a?KlG76NNje4#P1&q?&<_W~px62qLptqDu1T!7lM|5AiV1S|ZFd zRX|t)po|#BP3}U}E)IM`1TtJK!>)c+@DOy5$*1;k>CHIf)Rn%7D4--vUBOczI6S9y z3GyWa^RIx%0ttW>IO%?eSnC%f%rsrvx&lgklpq;`b_-5tqYWb&7?3WxzML%cz%+Q4 z>fV5DsK@hAlb!rjjhymKt%}u>O#JyC5*Z%4L-kNH&;U;tK`S95@p>l(fnY>PGJ);_ z`;do>ocUahve$H#kE_i~VIZXqXoU@)SXZmZ3G2;!T=gUa$180_rUYz#PHCM?;1n&ygJqCGQGl@ns)VfqqBRYxKmn2wOYLCs=D<#dZM!r*z6T{tQq#LE z!c0%{Ln{&;$mv%_e^6J+^rMFkIPtuLvj+}4P|MC6?8$KUGIUp_-@s!KYI*|c@c7XY zKRnOTZe)g9we^rD>np0Iu6(Qbo3RG~uBEY)yy799A?Z`!A5-@*Ds7zLt5JdKBu0nz z8nv+jPI@kd=?ccBr**k&le}BENJeOs`w$a|rxvj~CX%cL&`?Y{gW-00*g8-6p$|TZ z3pqc%hDh+K-~1QipPOaSp!mZ{Il?$7oP-b1`1fIpQcqaRH?Qg1IUGxCy3Wml9+m;L zvS3#rA*VD(BEci}o?g)=UxEOTaS$)lpwH!D*^FXJY4m02U3oA)8D|2;@t07N;pQ72 zc+FFml9$hBUF^Q8{-f6vRXytwc#FRFjAF_95f^5=?eemo)OpjxhAx7{{W>s(8?o}? zfgjfXV)Z0#ofDYX#cAl0_uF#7T8UaC%)Y~t@nrvsyt{+l6A z$J#bCkNHj9@%?lnI0WICseh-Z6!)N{IDok4uBbib~Lwu1?u^-&PyQL~-v59Yv zhsn^RUpggM*}AyljN_CHjx9(YABl{(V7n+Z@N5en#mR9$0A5Hu1DWk--RZ%`D4?H% zFmr4&j5b%A9Gjg1nxxda^tPIfHXl0JtIi|n1w3RzLSp}NZgIR(;GrN!X7o1ZDb=NR zf`<7%vp;S}e=vHj*&keG^U$Bp`U6eIfjv3$1Gowo!REofVFXdGHs~xsCSeE6$MNzD z*hqLPAXRo;?L3MQ-@m|0sHfxA?j7bmB}fO`uIwDcX6l{4RiEP)n*nO9m;f07eaiUZ zbxvMkUa!CZ{GhwVo11^`%enV=xbhu3dfbRaB1O>}{gI;^E^2Poa*q4g{?Z)a_IGH$bbD=lp zCM|X{2`b}=n}Mp#fyp|ut|b^moG_Fux!bX;_fW;geAKOyV9`C4Wl{R5!{p_FWEs|h z$n;D{8wPD9m5{JFaZ?RCHTjT-6L@!ky~p=c+Di2fyK-4i5;fM7ucnccl9SzpWZic#XZS_MyJo7i5?6$(9U8yNtZJyluk zBc@>;_}vw-&TKCQH74(Ff3Ot{=2!%yI|U`;n+%9xopb6&(jSf&Vw$0;`EJq#t`^Cp zyHVw&(o+B269&LiSr>jVq!kn3c1{w0G6ed6W!(0?VY4qfanL=L+uFVu|HH*s;vSl& zKH)2lEtz=TxnqA>(VnHxe(fk}iDW9zAf2&&7}b*px$~Nmze)TPdVajNJH3aO{Wk+A zDG|bNg-rZOH5oZc_~G+ZY3$mHEGi%0L112@4*zX|={T8~26N=U7R-9Gf~;p(!@|4#oP#s6UD9S~+whFX50P1r4F;x7DI1WH?bL%EE^J+g)C85# z)=-XwbT2p^h`u8H;3+#1e`W`;H@^kIW{_KUXEyEbARwj`A@3&2Sf?&l-TxJs?`b`E z7k^zfR!z)q;8yiReE4=%W>4Fesyx1vW$kU^(T(P&s#4;9ck!0U(1Q!Mxx4eKJH_rv zf9%P)>&d+BPCIPV7*TC^834;mFo6p$*iUXeDgTzDEcfMMEO*8a&y@(i!wCK04@aty zmJERXLPpU(pft0To5%X+w#o~K{u9e&9EaA@TW()>xU32cz!Dm!1q79g9p{K_rkf{w zBMoT`q%n}jKpF#khJn}~s`@=)0A>Y@{rd)TpstdJhR_FIpT4iS3^#*3dGU<#F1m}gZk!``7M=uOrwEPTdG`xsXq1HfgB{Qx`{CV#i z2Sx-fM+?);>l@c~=?bSY@NL5Y!}sXUsL|1~7@-&bwx?8y`As`Oc*cyPl5=L2j)136 zejpfexBA1O$6naH>5K9*8Aj_3 deQH>d{|6tw>*n8|*U@jluDO=Hf}y98xt)W{V;5CD-(Vl7AZuqA$3H=+n3$P4**GP+xg{Mn6f_)vxt)Fh zFkPe)r`D&Tx&feOqM~77R2|DDmGb@ypQbs8h)^R4ryZt_=e1E)X3%; z1lOO~XYJqUe?icmJ7WnjQT+)|OZ^w{UjkH2)W5UPFiRP++S97vlJ-5F09>XylVYM_ z0;mCw0W?<-7L;{5oP*A$Kx(;fZD!Gr;IWl*r~{#C5pfC_7~d9N`LZ@m)byI3ab4v4 zSRwvuzMDjY3;$gfI9C{x-h3d_Q4-`53EEB!r zgH|8BM}<}>YTI%EI3NGR*Z)eM_q5r8oB|};PCgaxIbIO1bo08@T8G;DJY_G z#dzv+t=rLLpu+6zJpPe`qj8m#D!?95)d|zX=qRh{wI0A*HB@c)?|C1;BRArN8p$pl z?4RwecB}NpqQ8V}6Zlui!QJk31kfn}c?$UIJO5;EicxLnS^7w#*%W2nA8oZ(r>>b; z*rdt}2@R#)CPztQpn#h=sOVagY?J0&vs(wDy~)zZ=V*}>(1*?=%|q-(O_=54)<;I$ zT@6v*QMg_J_Rne4*f$)}*6*sBCJ-k{%C9f$OQ#_69YO&gK_0WE%?%AsO3vG}p*^-Y z=F^gbcHnLX={5Kn-UnodZK^2l-P=ip&wrmr%pUTLB$QN*nUM&k zdL3F*7|Kp@cX5e}>M9w@m#jyKCeCIK@%N8h$aZ<5&pJW8QV*2ntTB;|#Xo^rOZF6$O%VqvJLHM8~{` z(DcI4(p~v#MWlK1+kKy*zwg-UuHOL!w zB0oFvv`}xNbk>Piko|z8vb$DpsT{8fp)<9cgopmF`B==F;KZ+>i~$2HjX(UQCkE73 zm=>t%?5F+^r=u-l9Hir1GZ=AS8K|t{8F5wRrt|P#a++Poasy`i)pWzCP~4F0#~}lz z`2L3$*J~%@>rAwlh0xZ`Iw2YO6`2FQoUp3cS36kMa)uxOGV9knRk=1j?ufUxLhBoc zb(!$aiVT%jiG`oc?b-K+ll+%He=7jfVfxaq5n<6rkhuvy?r}H&W`$|``S(O|?f~CS zN#+d|8>J)xw`L2&L_1rfB5PS*kXKgH`2;;@S*WLL-((K|xu^q1PCUr7nMdm&3~YK^ ztQncUNjfIVerJ3d!ebK>@-v%lwL0@Gat~MD47+*YZTxFlA1{-q>@RkEdmhxwcqVtS zZnoWv{x-+fugAUQ=clJUcq2enlEC&DxM}VB1)(Rb+mE=tNIt$|C3$7cbQ=mO$PQ|M zx`S1LeNOUz?)L6L*esrHVXt^WaX0B2^wZHJ;v5^vzrm;|Eh-!FeWM^_n00vXdmi?a z%+5Ehao6IEx@qu$6P$9iaW5`NZ+Mftj^gS*RteJRb6K}B@|1gKs-oKNH#}TuHY~ba z$^@+*FXNW$=VRII59J9$2^J+8TKc%IBY3%RSXu5iPhPgt3e(OO&*xuj$!MJ9RESJa zU=iQl!u*VgnMTFad?gLtq%ka* z$C;_pvB;pHf1dbeEc3o*z*rahex*Mcx3ZrW@rRq+#>|yb zd~5G0tQwn>xolKmGk1^>YBtUO8d5Z(5#2BuimW~4H;)V|KT@~TTQ9M>Ti=A=;;JBZ zzuV}q{Vo|^&CN~0e@EDhdp)yB(fqKD9KPm>H_~FRI+Pt_t*?Aa5h{uBHUT)_`SqOm zU(ujR%6c&#D(bor-u`0Mu|emyv&RvZORnBAAFI&`zL#tMni!nArM85-@xP5~3CHu?xN8=%13BDiaBd8ktSGfx)0srB_jCu2*>ss{cup6@lI z_v#k@$9ByVsG7@RPorZ4PXzDTOUd8YTeJ(84|#Oy8GNMw8&TY1eqwd>9`JER_08ydEsbj|3B;oqb-%B5GR@QRUp)*M zEPs>-m?{avf+|4eCyeKVmOK(ON~LDFgzE-dH^$BPvfcCD!Jd8-h4R8!EyOp`E6pH1 zNe8noY0G$=aozHA6_^=X&~g)}EZ33O83J7(WS2Zu5gg@1{_g7Ks$MLDfn~u%TNhIn ztfHG-lk?G4ikMqjeF>pyAT6VInLbxbfq7&TmujKPQK3k$_@SpGFA@K#y8%1UQk zX>tt(JBl-G38+|J!yy%LJU(Re6%!0_s7Di2m?^Ob)G`xm?Pqm-AtK0uIvg?@9@KDM z8z@7WFOX$C^W2L4s#Tp}b`$+1Fy8o0(OOhuqk*!tY!+BxaWqpKJmC%!f4C@0EJT66 zzJ8i!=?7Mz93>bcLG59R;KAosQ%%b)86ks8iOvfjOTccf2br}8?v7}?N4NYj3ho7W zyTJa|MR-3Vm%#jtK~S-TRd|hwL!lyuD=mHisSqSMqg!RR7WI1RI{A?m)E>!3r|7Mx zv#qbUxDT&|8CEMA1Ww7X3u;W&>Go*eMzh5rk;AMtMmF9P={{+mMBk4%^TLBqvnY?Q z#PNW!2pQOO_@_6EB2A#l+_^?>xfPxOX1J}Bv9F%oUNEkwZ6batoh?ZVtU4Mh&h-V3 z)k}rPrx%-6!1{2ffP2v8s-es;1;Vy|Z~F_p;CKidhuFjP_I~e@Tg}B^%Q8|SVK-)k zv_k=_S~+ zdf-PP@_~>GB5MXDkU!-#@iZ$m&ehY`cZb)Wc19nv_=ll&?K>?Aqxkx3g?*OG4~oHG({ zCRtNQR1LrUvv{;``nC8(ewKSq_!SoI5sE+1F=YG1$-w-ahgiZCQKfP=4J9KXV`-O} zy$M!WigJ9Lg;HxxLDDr9Hsruoa)bRnCkC|w2DSaVjxT|%nZ3N-jotZTOTe{W{V4p1 zF=l>iX+I<9xxTJp6%aP2Y)`1Md7jh)Hoxl}>#%*|E)wRJT?%b(b;K|7a3>0~3C4=l zVIK%|ZD z-msH8(}CHqt@`HBp2R{B=u<$#lYKstb!ewSEQW&QkIR1-lZh532;{($BaFBnoWOlw95?dD z{t-@&-M1szqtekpk>aAQ7?Rh9qJ*h$kVfCGIrO99Xj+KYdAZT_L)hcDXx zQaJYUB-WUo#TYzi?VOYHL#}<`&_J}KCFMh~>G726g_eadWjl_w&8K#c{$|DgUlz?m z7~lUZBZT(?SNKRmS7*X8<6CmsVPhy=B0paZYX_~1THiXxAq%_N;ulvJc_D7)9|r#t zd8tWYqo4Cgd$(|8IwU@=g25vEjqCR|Ldb3|6(hR2q*b%4ENxfs=-EM7sgZFwpOrzu z_x+PQVJDQI*T!3q4o`k_Q;RG+tH5e==L_~Ob!>8Pz}q+?<$1k7m(+9%^t z@ZEruT-FN(f59pLoX84x>GK*ayERElGOU-bV6hRZjviz<9B=iu-QvmWbH@iuBLo`) z!!9Ow=uaVbSL<^Do_~4riZ9O91TupnM7I$5N`~DZ`xu*v%Z(gGj{gOH^W^i$Y=^9G zLyB!ksNNm_zjRO^c+&KIbaW3merY-X77lJ#JghW7Njqk|zZDAGwXHlBKA_s?P3m8v zyEjNw6%9ga)Kq~DtmQ3;>||71#vXr`mn5+E7?XRsy0le0L9)o)oX&Zix0()G-zGfV z!SQ9JqCiU?N}9*RHl^HUtg_FoXWK}Zb}tEzFN6)M%2#f->AnAK!+534z;+E$;dF90 z=o5jEt8PDMl||suvMv!EpO`oW2;;@JwwBr>!%qRZ2h7I~p}pHPchn+q$8_OUG(YRU zxUNLo=GVEHRi}N-SPs2qgm6nBz-;YIHgP16F*_THIwyIrAOoJu#+yn6Ya+$cUcIqA z0Bg4xDJj;fB2aiYWEPar(9^1HphGNC2Rm3=q!jsn2+5Ysdg5O?gx&ESGVh0{ZgLCF zavC1LYco^u2KYZ&0#&=2EIua+vkftyyaHY^i-NexidR&+5ya+gRzx$%=w44j<<>xq zE+{aEO;MD4l65orPHgc8F|OIn+N3dx)Tni|#=2zST}4*}w{7bmE-qSeG0&*$UhB73 zgMdpLI5;lOQY>ibJGux?%%xmuouAAtj+#LC5?t5Gn;8od(lb>xeU&FKHrH>Mn2JAY z-0b_o5D8E+|J?My8vni70`;;Q^><~a;GJc}ymox^+82n;$fQY8dX8^Q+P5;DqNKn! zGq_A$-M-tGt(~@0KqQ~KOTsbxW@DGpoa<}6sUSf5c@9%vpF-2u@2eDx+a2^9ZQDQtProdqoQ2lz*y+t7)!+UZ zc*VWvNWG$sHLIALMOaRi`02f!_InX;UK$?U89_N`O9$Jcu#sw-sJ!dmzLrY}Gr3U_ zuS7y!grtT?DLWw)7MpJBx~x;k%V)@xadp6?%$i&sx8*jKk7nN*W}>(S?{NI?x@_DR z)pIWF_Ivd8MOw=+wl04(Et03#Dg?R5VV!}1XC4;|U3lEs`v{~KBJj>9$#;@B(|gY1 z&wOIY*p@JEkNNO-Zv9Hn>zy3FGIk1hdkWATkzRI-*~m5%?{vTN(v$ z9Xj`rj>%K&-YLiGV&3-wtp7HZYNS1;&-`=azXyJSpuTyZ`ew^ziBFOI^zS=YfAQhB zm;ZyQm~eh~m~g)T-{1Z2{D(89`Vvr+w6JQ6{fU)orEj{;HE!)+knp*U$u1aaT%Z1G zO8#$~YzNaR9ux*u+-snDocg-uL=}!}{eg37M(sB-S5JKOG@7Df@Ho2<}jk=3XmSbSJ@ zFn5@K>7cE0f1zOD_>}~QluCt_{p`Af$6?_uh%7lBh@+>v+KimIl~@dk1|>iY2lA_iR5Di9B^E1;o(MiVj#F%$U7Ohpz_yTCp)=?07&1mjw7yRw zY_C}a;dm29r;_geeXKp_EYkhR7`*9JB0P-V<8?{W^si0oR={B9iQqa(XG*-ZHHA$V zGKw*JmgL&U*0>ovY)=?Xyfp%yz7X5-$=S+l(t*I)@rXVrc*xvAvgMQeC;r=k7>MrE z;IzI;l-B0Pkrw+djcb5QYBnq_t@^u%&qV%vgwi&sx;Kc2%S_)VpwA6FF$Y!-e_-To z?l*L+T8E&cdkk%FUL_O5g8ZHt(D`lbtGs*zi2OT(>Vhsif_pcaP)?g%LdOG$k>wF( z8(9w0wp6oJ6k>1PbU1EpX2{kyX!m*@p9Q{7-UbdWDtINkx}SnU!f5>iQL-`FC$ zv3xyHl>i{7(AmxSwVqaMe_}+;=6J)LNW*8Efzj!b;}X%;K;8C;t{2z_H03DeLHyso z{zvZ@Lm4uTPaCl1g@6gm7YvOit%f{Oc!Ehhbw#7qz>3yw>K}_XV^(PuJ^jiXJzLAu zoImw?XB~4QC{#fhsUbYV)>g&RA$ejP`dbrr!bTShd9YP~_TmkoET+s~FoX=g+pbpe z9mn4mOK^k4VX0&TQ>;Vrzy4xa&=PKD)t3;2wceq*16&x7o*FSIvb_Zh z>0{+rS;N?HCq$eA0PB~6>$Z;PgPw*Q?1)liMAielcy_7q*T=@>W1RR-0dNqPw(o$` z+ZOaoaRA_wevjt0`GTBzv86Ou==o8s-2g-6;-cy9%UQzO4b>`rpYjBP@=c|v_`bTK;kO|jzsSlGPpj52$mh9rZp0aw@A7wu^Z zP(#%Tn)^*>QSI>Ao3mJ4^c0vRMZWZ_I9RnzaE+Me;KOHCRFHtOX3fqjJ94 z!T2e!e*6W|-{z+71_|`F+7@qZr=QettoOz`y=R+g(kcm_+#Nk`JOeQ>UeADssr1GjAy_v0S(i>z%4Af#fRJ!FTlWnCF-#C($w#1`3xKZ+M6 z=QRW_e1|t0{jI64TG#q%jy_}88)AkNvV{yj;4V)~mRjEMDKJu8T0vDI zFZP~1E?%^Kt~0Uds1K$qcV;$hRXp=+*vMOqCIkLR9B^#-AmXEz&2`K?lpQtiPd9M`Y&+(QB;((_B4Uu6{;p;k$7?Axz{UmNn zsmy7!llUXX|NWlU1SCCF6^LHYsU_#qj=hP2rBB0OBUHzm)H25=1#>ta#CkN%hM^MR zd6|1|C}*y3;)+e;zRCJ^q_IFux6^Bzi1n56IV%obh-+ceR~dTvD`f0F=hTcEEftuw^P<+oy+GoD~s`_^*{gCR4hb_7YWZUy>0!r f(Jq-2G3AiB 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

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/docs/about/license/index.html b/versions/1.23.5/docs/about/license/index.html new file mode 100644 index 0000000000..daff570e65 --- /dev/null +++ b/versions/1.23.5/docs/about/license/index.html @@ -0,0 +1,443 @@ + + + + + + + + + + + + +License FAQs · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + +
+
+ + View on GitHub + +

+ License FAQs +

+
+

Commonly asked questions about Bootstrap Table’s open source license.

+
+ +

Bootstrap Table is released under the MIT license and is copyright 2024 Zhixin Wen. Boiled down to smaller chunks, it can be described with the following conditions.

+ +

It requires you to:

+ +
    +
  • Keep the license and copyright notice included in Bootstrap Table’s CSS and JavaScript files when you use them in your works
  • +
+ +

It permits you to:

+ +
    +
  • Freely download and use Bootstrap Table, in whole or in part, for personal, private, company internal, or commercial purposes
  • +
  • Use Bootstrap Table in packages or distributions that you create
  • +
  • Modify the source code
  • +
  • Grant a sublicense to modify and distribute Bootstrap Table to third parties not included in the license
  • +
+ +

It forbids you to:

+ +
    +
  • Hold the authors and license owners liable for damages as Bootstrap Table is provided without warranty
  • +
  • Hold the creators or copyright holders of Bootstrap Table liable
  • +
  • Redistribute any piece of Bootstrap Table without proper attribution
  • +
  • Use any marks owned by Zhixin Wen in any way that might state or imply that Zhixin Wen endorses your distribution
  • +
  • Use any marks owned by Zhixin Wen in any way that might state or imply that you created the Zhixin Wen software in question
  • +
+ +

It does not require you to:

+ +
    +
  • Include the source of Bootstrap Table itself or of any modifications, you may have made to it in any redistribution you may assemble that includes it
  • +
  • Submit changes that you make to Bootstrap Table back to the Bootstrap Table project (though such feedback is encouraged)
  • +
+ +

The full Bootstrap Table license is located in the project repository for more information.

+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/about/overview/index.html b/versions/1.23.5/docs/about/overview/index.html new file mode 100644 index 0000000000..cc2039414a --- /dev/null +++ b/versions/1.23.5/docs/about/overview/index.html @@ -0,0 +1,415 @@ + + + + + + + + + + + + +About · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + +
+
+ + View on GitHub + +

+ About +

+
+

Learn more about the Bootstrap Table team, how and why the project started, and how to get involved.

+
+ +

Team

+ +

Bootstrap Table is maintained by wenzhixin, djhvscf and UtechtDustin on GitHub. We’re actively looking to grow this team. We would love to hear from you if you’re excited about CSS at scale, writing and maintaining vanilla JavaScript plugins, and improving build tooling processes for frontend code.

+ +

Get involved

+ +

Get involved with Bootstrap development by opening an issue or submitting a pull request. Read our contributing guidelines for information on how we develop.

+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/about/team/index.html b/versions/1.23.5/docs/about/team/index.html new file mode 100644 index 0000000000..649f78001f --- /dev/null +++ b/versions/1.23.5/docs/about/team/index.html @@ -0,0 +1,436 @@ + + + + + + + + + + + + +Team · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + +
+
+ + View on GitHub + +

+ Team +

+
+

An overview of the founding team and core contributors to Bootstrap Table.

+
+ +

Bootstrap Table is maintained by the founding team and a small group of invaluable core contributors, with our community’s massive support and involvement.

+ + + +

Get involved with Bootstrap Table development by opening an issue or submitting a pull request. Read our contributing guidelines for information on how we develop.

+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/about/translations/index.html b/versions/1.23.5/docs/about/translations/index.html new file mode 100644 index 0000000000..e18807be11 --- /dev/null +++ b/versions/1.23.5/docs/about/translations/index.html @@ -0,0 +1,417 @@ + + + + + + + + + + + + +Translations · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + +
+
+ + View on GitHub + +

+ Translations +

+
+

Links to community-translated Bootstrap Table documentation sites.

+
+ +

Community members have translated Bootstrap Table’s documentation into various languages. None are officially supported and they may not always be up to date.

+ +
    + +
+ +

We don’t help organize or host translations, we just link to them.

+ +

Finished a new or better translation? Open a pull request to add it to our list.

+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/api/column-options/index.html b/versions/1.23.5/docs/api/column-options/index.html new file mode 100644 index 0000000000..6930574de2 --- /dev/null +++ b/versions/1.23.5/docs/api/column-options/index.html @@ -0,0 +1,1295 @@ + + + + + + + + + + + + +Column Options · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Column Options +

+
+

The column options API of Bootstrap Table.

+
+ +

The column options is defined in jQuery.fn.bootstrapTable.columnDefaults.

+ +

align

+ +
    +
  • +

    Attribute: data-align

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate how to align the column data. 'left', 'right', 'center' can be used.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Aligning Columns

    +
  • +
+ +

cardVisible

+ +
    +
  • +

    Attribute: data-card-visible

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to hide the columns item in the card view state.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Card Visible

    +
  • +
+ +

cellStyle

+ +
    +
  • +

    Attribute: data-cell-style

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    The cell style formatter function, take four parameters:

    + +
      +
    • value: the field value.
    • +
    • row: the row record data.
    • +
    • index: the row index.
    • +
    • field: the row field.
    • +
    + +

    Support classes or css.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Cell Style

    +
  • +
+ +

checkbox

+ +
    +
  • +

    Attribute: data-checkbox

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show a checkbox. The checkbox column has a fixed width.

    + +

    If a value is given, the checkbox is automatically checked. +Its also possible to check/uncheck the checkbox by using a formatter (return true to check, return false to uncheck).

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Column Checkbox

    +
  • +
+ +

checkboxEnabled

+ +
    +
  • +

    Attribute: data-checkbox-enabled

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to disable the checkboxes/radio boxes.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Checkbox Enabled and Checkbox Disabled

    +
  • +
+ +

class

+ +
    +
  • +

    Attribute: class | data-class

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The column class name.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Column Class

    +
  • +
+ +

clickToSelect

+ +
    +
  • +

    Attribute: data-click-to-select

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to select the checkbox or radio box when clicking rows.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Click to Select

    +
  • +
+ +

colspan

+ +
    +
  • +

    Attribute: colspan | data-colspan

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    Indicate how many columns a cell should take up.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Rowspan Colspan

    +
  • +
+ +

detailFormatter

+ +
    +
  • +

    Attribute: data-detail-formatter

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    Format your detail view when detailView and detailViewByClick is set to true. Return a String and it will be appended into the detail view cell, optionally render the element directly using the third parameter, which is a jQuery element of the target cell.

    + +

    Fallback is the detail-formatter of the table.

    +
  • +
  • +

    Default: function(index, row, $element) { return '' }

    +
  • +
  • +

    Example: Detail Formatter

    +
  • +
+ +

escape

+ +
    +
  • +

    Attribute: data-escape

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Escapes a string for insertion into HTML, replacing &, <, >, “, `, and ‘ characters.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Column Escape

    +
  • +
+ +

events

+ +
    +
  • +

    Attribute: data-events

    +
  • +
  • +

    Type: Object

    +
  • +
  • +

    Detail:

    + +

    The cell events listener, when you use formatter function, take four parameters:

    + +
      +
    • event: the jQuery event.
    • +
    • value: the field value.
    • +
    • row: the row record data.
    • +
    • index: the row index.
    • +
    + +

    Example code:

    +
  • +
+ +
  <th .. data-events="operateEvent">
+  var operateEvents = {
+    'click .like': function (e, value, row, index) {}
+  }
+  
+ +
    +
  • +

    Default: undefined

    +
  • +
  • Example: Column Events +

    falign

    +
  • +
  • +

    Attribute: data-falign

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate how to align the table footer. 'left', 'right', 'center' can be used.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • Example: Aligning Footer
  • +
+ +

field

+ +
    +
  • +

    Attribute: data-field

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The column field name. This field must be unique, or some unknown problems may occur.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Column Field

    +
  • +
+ +

footerFormatter

+ +
    +
  • +

    Attribute: data-footer-formatter

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    The context (this) is the column Object.

    + +

    The function, takes two parameters:

    + +
      +
    • data: Array of all the data rows.
    • +
    • value: If footer data is set, the value of the footer column.
    • +
    + +

    The expected return data type is jQuery, String or HTMLElement. Other types will be forced to the String type.

    + +

    If you fetch data from a server and set the footer value from the server response, please use the footerField Option.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Footer Formatter

    +
  • +
+ +

footerStyle

+ +
    +
  • +

    Attribute: data-footer-style

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    The footer style formatter function, takes one parameter:

    + +
      +
    • column: the column object.
    • +
    + +

    Support classes or css. Example usage:

    +
  • +
+ +
  function footerStyle(column) {
+    return {
+      css: { 'font-weight': 'normal' },
+      classes: 'my-class'
+    }
+  }
+  
+ + + +

formatter

+ +
    +
  • +

    Attribute: data-formatter

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    The context (this) is the column Object.

    + +

    The cell formatter function, take four parameters:

    + +
      +
    • value: the field value.
    • +
    • row: the row record data.
    • +
    • index: the row index.
    • +
    • field: the row field.
    • +
    + +

    The expected return data type is jQuery, String or HTMLElement. Other types will be forced to the String type.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Column Formatter

    +
  • +
+ +

halign

+ +
    +
  • +

    Attribute: data-halign

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate how to align the table header. 'left', 'right', 'center' can be used.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Aligning Columns

    +
  • +
+ +

order

+ +
    +
  • +

    Attribute: data-order

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The default sort order, can only be 'asc' or 'desc'.

    +
  • +
  • +

    Default: 'asc'

    +
  • +
  • +

    Example: Sort Name Order

    +
  • +
+ +

radio

+ +
    +
  • +

    Attribute: data-radio

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show a radio. The radio column has a fixed width.

    + +

    If a value is given, the checkbox is automatically checked. +Its also possible to check/uncheck the radio by using a formatter (return true to check, return false to uncheck).

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Column Radio

    +
  • +
+ +

rowspan

+ +
    +
  • +

    Attribute: rowspan | data-rowspan

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    Indicate how many rows a cell should take up.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Rowspan Colspan

    +
  • +
+ +

searchable

+ +
    +
  • +

    Attribute: data-searchable

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to search data for this column.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Column Searchable

    +
  • +
+ +

searchFormatter

+ +
    +
  • +

    Attribute: data-search-formatter

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to search using formatted data.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Search Formatter

    +
  • +
+ +

searchHighlightFormatter

+ +
    +
  • +

    Attribute: data-search-highlight-formatter

    +
  • +
  • +

    Type: Boolean|Function

    +
  • +
  • +

    Detail:

    + +

    Define a function to use a custom highlight formatter for the search highlight option.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Searchable Highlight Formatter

    +
  • +
+ +

showSelectTitle

+ +
    +
  • +

    Attribute: data-show-select-title

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show the title of column with ‘radio’ or ‘singleSelect’ ‘checkbox’ option.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Show Select Title

    +
  • +
+ +

sortable

+ +
    +
  • +

    Attribute: data-sortable

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to allow the column can be sorted.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Column Sortable

    +
  • +
+ +

sorter

+ +
    +
  • +

    Attribute: data-sorter

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    The custom field sort function that is used to do local sorting, take four parameters:

    + +
      +
    • fieldA: the first field value.
    • +
    • fieldB: the second field value.
    • +
    • rowA: the first row.
    • +
    • rowB: the second row.
    • +
    + +

    Expected return values: -1, 0, 1.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Column Sorter

    +
  • +
+ +

sortName

+ +
    +
  • +

    Attribute: data-sort-name

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Provide a customizable sort-name, not the default sort-name in the header, or the field name of the column. For example, a column might display the value of fieldName of ‘html’ such as <b><span style="color:red">abc</span></b>, but a fieldName to sort is ‘content’ with the value of 'abc'.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Sort Name Order

    +
  • +
+ +

switchable

+ +
    +
  • +

    Attribute: data-switchable

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to disable the switchable of columns item.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Column Switchable

    +
  • +
+ +

switchableLabel

+ +
    +
  • +

    Attribute: data-switchable-label

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The label of the switchable column in the dropdown. If not specified uses the column title.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Column Switchable

    +
  • +
+ +

title

+ +
    +
  • +

    Attribute: data-title

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The column title text.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Column Title

    +
  • +
+ +

titleTooltip

+ +
    +
  • +

    Attribute: data-title-tooltip

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The column title tooltip text. This option also supports the title HTML attribute.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Title Tooltip

    +
  • +
+ +

valign

+ +
    +
  • +

    Attribute: data-valign

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate how to align the cell data. 'top', 'middle', 'bottom' can be used.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Aligning Columns

    +
  • +
+ +

visible

+ +
    +
  • +

    Attribute: data-visible

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to hide the columns item.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Column Visible

    +
  • +
+ +

width

+ +
    +
  • +

    Attribute: data-width

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    The width of the column. If not defined, the width will auto expand to fit its contents. Though if the table is left responsive and sized too small, this 'width' might be ignored (use min/max-width via class or such then). The default used unit is ‘px’. Use widthUnit to change it!

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Column Width

    +
  • +
+ +

widthUnit

+ +
    +
  • +

    Attribute: data-width-unit

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Defines the unit which is used for the option width.

    +
  • +
  • +

    Default: px

    +
  • +
  • +

    Example: Width Unit

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/api/events/index.html b/versions/1.23.5/docs/api/events/index.html new file mode 100644 index 0000000000..51765e6034 --- /dev/null +++ b/versions/1.23.5/docs/api/events/index.html @@ -0,0 +1,1099 @@ + + + + + + + + + + + + +Events · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Events +

+
+

The Events API of Bootstrap Table.

+
+ +

Events can be bound in two ways:

+
    +
  • via the option object
  • +
  • via jquery event handler
  • +
+ +

Binding via the options object:

+ +
// Here, you can expect to have as the last parameter the bootstrap-table object
+
+$('#table').bootstrapTable({
+  onEventName: function (arg1, arg2, ...) {
+    // ...
+  }
+})
+ +

Binding via the jquery event handler:

+ +
// Here, you can expect to have in the 'e' variable the sender property, which is the bootstrap-table object
+
+$('#table').on('event-name.bs.table', function (e, arg1, arg2, ...) {
+  // ...
+})
+ +

Hint: if you use the jquery event handler, make sure to bind the event listener before the event is executed!

+ +

onAll

+ +
    +
  • +

    jQuery Event: all.bs.table

    +
  • +
  • +

    Parameter: name, args

    +
  • +
  • +

    Detail:

    + +

    It fires when any event triggers. The parameters contain:

    + +
      +
    • name: the event name,
    • +
    • args: the event data.
    • +
    +
  • +
+ +

onCheck

+ +
    +
  • +

    jQuery Event: check.bs.table

    +
  • +
  • +

    Parameter: row, $element

    +
  • +
  • +

    Detail:

    + +

    It fires when the user checks a row. The parameters contain:

    + +
      +
    • row: the record corresponding to the clicked row.
    • +
    • $element: the DOM element checked.
    • +
    +
  • +
+ +

onCheckAll

+ +
    +
  • +

    jQuery Event: check-all.bs.table

    +
  • +
  • +

    Parameter: rowsAfter, rowsBefore

    +
  • +
  • +

    Detail:

    + +

    It fires when the user checks all rows. The parameters contain:

    + +
      +
    • rowsAfter: array of records of the now checked rows.
    • +
    • rowsBefore: array of records of the checked rows before.
    • +
    +
  • +
+ +

onCheckSome

+ +
    +
  • +

    jQuery Event: check-some.bs.table

    +
  • +
  • +

    Parameter: rows

    +
  • +
  • +

    Detail:

    + +

    It fires when the user checks some rows. The parameters contain:

    + +
      +
    • rows: array of records corresponding to newly checked rows.
    • +
    +
  • +
+ +

onClickCell

+ +
    +
  • +

    jQuery Event: click-cell.bs.table

    +
  • +
  • +

    Parameter: field, value, row, $element

    +
  • +
  • +

    Detail:

    + +

    It fires when the user clicks a cell. The parameters contain:

    + +
      +
    • field: the field name corresponding to the clicked cell.
    • +
    • value: the data value corresponding to the clicked cell.
    • +
    • row: the record corresponding to the clicked row.
    • +
    • $element: the td element.
    • +
    +
  • +
+ +

onClickRow

+ +
    +
  • +

    jQuery Event: click-row.bs.table

    +
  • +
  • +

    Parameter: row, $element, field

    +
  • +
  • +

    Detail:

    + +

    It fires when the user clicks a row. The parameters contain:

    + +
      +
    • row: the record corresponding to the clicked row.
    • +
    • $element: the tr element.
    • +
    • field: the field name corresponding to the clicked cell.
    • +
    +
  • +
+ +

onCollapseRow

+ +
    +
  • +

    jQuery Event: collapse-row.bs.table

    +
  • +
  • +

    Parameter: index, row, detailView

    +
  • +
  • +

    Detail:

    + +

    It fires when you click the detail icon to collapse the detail view. The parameters contain:

    + +
      +
    • index: the index of the collapsed row.
    • +
    • row: the record corresponding to the collapsed row.
    • +
    • detailView: the collapsed detailView.
    • +
    +
  • +
+ +

onColumnSwitch

+ +
    +
  • +

    jQuery Event: column-switch.bs.table

    +
  • +
  • +

    Parameter: field, checked

    +
  • +
  • +

    Detail:

    + +

    It fires when switch the column visible (showColumns). The parameters contain:

    + +
      +
    • field: the field name corresponding to the switch column.
    • +
    • checked: the checked state of the column.
    • +
    +
  • +
+ +

onColumnSwitchAll

+ +
    +
  • +

    jQuery Event: column-switch-all.bs.table

    +
  • +
  • +

    Parameter: checked

    +
  • +
  • +

    Detail:

    + +

    It fires when toggle all columns. The parameters contain:

    + +
      +
    • checked: the checked state of the column.
    • +
    +
  • +
+ +

onDblClickCell

+ +
    +
  • +

    jQuery Event: dbl-click-cell.bs.table

    +
  • +
  • +

    Parameter: field, value, row, $element

    +
  • +
  • +

    Detail:

    + +

    It fires when the user double click a cell. The parameters contain:

    + +
      +
    • field: the field name corresponding to the clicked cell.
    • +
    • value: the data value corresponding to the clicked cell.
    • +
    • row: the record corresponding to the clicked row.
    • +
    • $element: the td element.
    • +
    +
  • +
+ +

onDblClickRow

+ +
    +
  • +

    jQuery Event: dbl-click-row.bs.table

    +
  • +
  • +

    Parameter: row, $element, field

    +
  • +
  • +

    Detail:

    + +

    It fires when the user doubles click a row. The parameters contain:

    + +
      +
    • row: the record corresponding to the clicked row.
    • +
    • $element: the tr element.
    • +
    • field: the field name corresponding to the clicked cell.
    • +
    +
  • +
+ +

onExpandRow

+ +
    +
  • +

    jQuery Event: expand-row.bs.table

    +
  • +
  • +

    Parameter: index, row, $detail

    +
  • +
  • +

    Detail:

    + +

    It fires when you click the detail icon to expand the detail view. The parameters contain:

    + +
      +
    • index: the index of the expanded row.
    • +
    • row: the record corresponding to the expanded row.
    • +
    • $detail: the DOM element of the detail div after the current tr element, you can use jQuery methods to custom the detail views.
    • +
    +
  • +
+ +

onLoadError

+ +
    +
  • +

    jQuery Event: load-error.bs.table

    +
  • +
  • +

    Parameter: status, jqXHR

    +
  • +
  • +

    Detail:

    + +

    It fires when some errors occur to load remote data. The parameters contain:

    + +
      +
    • status: the status code of jqXHR.
    • +
    • jqXHR: jqXHR object, which is a super set of the XMLHTTPRequest object. For more information, see the jqXHR Type.
    • +
    +
  • +
+ +

onLoadSuccess

+ +
    +
  • +

    jQuery Event: load-success.bs.table

    +
  • +
  • +

    Parameter: data

    +
  • +
  • +

    Detail:

    + +

    It fires when remote data is loaded successfully. The parameters contain:

    + +
      +
    • data: the remote data loaded into the table. (Note: this data cannot be modified once it’s loaded into the table. If you need to process received data before using it in the table, write your custom responseHandler instead.)
    • +
    • status: the status code of jqXHR.
    • +
    • jqXHR: jqXHR object, which is a super set of the XMLHTTPRequest object. For more information, see the jqXHR Type.
    • +
    +
  • +
+ +

onPageChange

+ +
    +
  • +

    jQuery Event: page-change.bs.table

    +
  • +
  • +

    Parameter: number, size

    +
  • +
  • +

    Detail:

    + +

    It fires when changing the page number or page size. The parameters contain:

    + +
      +
    • number: the page number.
    • +
    • size: the page size.
    • +
    +
  • +
+ +

onPostBody

+ +
    +
  • +

    jQuery Event: post-body.bs.table

    +
  • +
  • +

    Parameter: data

    +
  • +
  • +

    Detail:

    + +

    It fires after the table body are rendered and available in the DOM. The parameters contain:

    + +
      +
    • data: the rendered data.
    • +
    +
  • +
+ +

onPostFooter

+ +
    +
  • +

    jQuery Event: post-footer.bs.table

    +
  • +
  • +

    Parameter: $tableFooter

    +
  • +
  • +

    Detail:

    + +

    It fires after the footer are rendered and available in the DOM. The parameters contain:

    + +
      +
    • $tableFooter: the DOM element of the footer.
    • +
    +
  • +
+ +

onPostHeader

+ +
    +
  • +

    jQuery Event: post-header.bs.table

    +
  • +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    It fires after the table header is rendered and available in the DOM.

    +
  • +
+ +

onPreBody

+ +
    +
  • +

    jQuery Event: pre-body.bs.table

    +
  • +
  • +

    Parameter: data

    +
  • +
  • +

    Detail:

    + +

    It fires before the table body are rendered. The parameters contain:

    + +
      +
    • data: the rendered data.
    • +
    +
  • +
+ +

onRefresh

+ +
    +
  • +

    jQuery Event: refresh.bs.table

    +
  • +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    It fires after the click of the refresh button. The parameters contain:

    + +
      +
    • params: the additional parameters request to the server.
    • +
    +
  • +
+ +

onRefreshOptions

+ +
    +
  • +

    jQuery Event: refresh-options.bs.table

    +
  • +
  • +

    Parameter: options

    +
  • +
  • +

    Detail:

    + +

    It fires after refreshing the options, and before destroying and init the table. The parameters contain:

    + +
      +
    • options: the table options object.
    • +
    +
  • +
+ +

onResetView

+ +
    +
  • +

    jQuery Event: reset-view.bs.table

    +
  • +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    It fires when resetting the view of the table.

    +
  • +
+ +

onScrollBody

+ +
    +
  • +

    jQuery Event: scroll-body.bs.table

    +
  • +
  • +

    Parameter: $tableBody

    +
  • +
  • +

    Detail:

    + +

    It fires when the table body scroll.

    +

    onSearch

    +
  • +
  • +

    jQuery Event: search.bs.table

    +
  • +
  • +

    Parameter: text

    +
  • +
  • +

    Detail:

    + +

    It fires when searching the table. The parameters contain:

    + +
      +
    • text: the text of the search input.
    • +
    +
  • +
+ +

onSort

+ +
    +
  • +

    jQuery Event: sort.bs.table

    +
  • +
  • +

    Parameter: name, order

    +
  • +
  • +

    Detail:

    + +

    It fires when the user sort a column. The parameters contain:

    + +
      +
    • name: the sort column field name.
    • +
    • order: the sort column order.
    • +
    +
  • +
+ +

onToggle

+ +
    +
  • +

    jQuery Event: toggle.bs.table

    +
  • +
  • +

    Parameter: cardView

    +
  • +
  • +

    Detail:

    + +

    It fires when toggling the view of the table. The parameters contain:

    + +
      +
    • cardView: the cardView state of the table.
    • +
    +
  • +
+ +

onTogglePagination

+ +
    +
  • +

    jQuery Event: toggle-pagination.bs.table

    +
  • +
  • +

    Parameter: state

    +
  • +
  • +

    Detail:

    + +

    It fires when the pagination is toggled:

    + +
      +
    • state: the new pagination state (true-> Pagination is enabled, false -> Pagination is disabled )
    • +
    +
  • +
+ +

onUncheck

+ +
    +
  • +

    jQuery Event: uncheck.bs.table

    +
  • +
  • +

    Parameter: row, $element

    +
  • +
  • +

    Detail:

    + +

    It fires when the user unchecks a row. The parameters contain:

    + +
      +
    • row: the record corresponding to the clicked row.
    • +
    • $element: the DOM element unchecked.
    • +
    +
  • +
+ +

onUncheckAll

+ +
    +
  • +

    jQuery Event: uncheck-all.bs.table

    +
  • +
  • +

    Parameter: rowsAfter, rowsBefore

    +
  • +
  • +

    Detail:

    + +

    It fires when the user unchecks all rows. The parameters contain:

    + +
      +
    • rowsAfter: array of records of the now checked rows.
    • +
    • rowsBefore: array of records of the checked rows before.
    • +
    +
  • +
+ +

onUncheckSome

+ +
    +
  • +

    jQuery Event: uncheck-some.bs.table

    +
  • +
  • +

    Parameter: rows

    +
  • +
  • +

    Detail:

    + +

    It fires when the user unchecks some rows. The parameters contain:

    + +
      +
    • rows: array of records corresponding to previously checked rows.
    • +
    +
  • +
+ +

onVirtualScroll

+ +
    +
  • +

    jQuery Event: virtual-scroll.bs.table

    +
  • +
  • +

    Parameter: startIndex, endIndex

    +
  • +
  • +

    Detail:

    + +

    It fires when the user scrolls the virtual scroll. The parameters contain:

    + +
      +
    • startIndex: the start row index of the virtual scroll.
    • +
    • endIndex: the end row index of the virtual scroll.
    • +
    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/api/index.html b/versions/1.23.5/docs/api/index.html new file mode 100644 index 0000000000..548e5ede6a --- /dev/null +++ b/versions/1.23.5/docs/api/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/docs/api/localizations/index.html b/versions/1.23.5/docs/api/localizations/index.html new file mode 100644 index 0000000000..b9be757d5b --- /dev/null +++ b/versions/1.23.5/docs/api/localizations/index.html @@ -0,0 +1,685 @@ + + + + + + + + + + + + +Localizations · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Localizations +

+
+

The Localizations API of Bootstrap Table.

+
+ +

We can import all locale files what you need:

+ +
```html
+<script src="bootstrap-table-en-US.js"></script>
+<script src="bootstrap-table-zh-CN.js"></script>
+...
+ +

And then use JavaScript to switch locale:

+ +
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['en-US'])
+// $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['zh-CN'])
+// ...
+ +

Or use data attributes to set locale for table:

+ +
<table data-toggle="table" data-locale="en-US">
+</table>
+ +

Or use JavaScript to set locale for table:

+ +
$('#table').bootstrapTable({
+  locale: 'en-US'
+})
+ +

You can use short code for the locale:

+ +
$('#table').bootstrapTable({
+  locale: 'en'
+})
+ +

List of all existing translations with their short codes is on Github

+ +

You can custom the format localizations, the calling syntax:

+ +
$('#table').bootstrapTable({
+  formatName: function () {
+    return 'Format message'
+  }
+})
+ +

formatAllRows

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • Default: 'All' +

    formatClearSearch

    +
  • +
  • +

    Parameter: undefined

    +
  • +
  • Default: 'Clear Search'
  • +
+ +

formatColumns

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'Columns'

    +
  • +
+ +

formatColumnsToggleAll

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'Toggle all'

    +
  • +
+ +

formatDetailPagination

+ +
    +
  • +

    Parameter: totalRows

    +
  • +
  • +

    Default: 'Showing %s rows'

    +
  • +
+ +

formatFullscreen

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'Fullscreen'

    +
  • +
+ +

formatLoadingMessage

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'Loading, please wait…'

    +
  • +
+ +

formatNoMatches

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'No matching records found'

    +
  • +
+ +

formatPaginationSwitch

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'Hide/Show pagination'

    +
  • +
+ +

formatPaginationSwitchDown

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'Show pagination'

    +
  • +
+ +

formatPaginationSwitchUp

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'Hide pagination'

    +
  • +
+ +

formatRecordsPerPage

+ +
    +
  • +

    Parameter: pageNumber

    +
  • +
  • +

    Default: '%s records per page'

    +
  • +
+ +

formatRefresh

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'Refresh'

    +
  • +
+ +

formatSearch

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'Search'

    +
  • +
+ +

formatShowingRows

+ +
    +
  • +

    Parameter: pageFrom, pageTo, totalRows

    +
  • +
  • +

    Default: 'Showing %s to %s of %s rows'

    +
  • +
+ +

formatSRPaginationNextText

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'next page'

    +
  • +
+ +

formatSRPaginationPageText

+ +
    +
  • +

    Parameter: page

    +
  • +
  • +

    Default: 'to page %s

    +
  • +
+ +

formatSRPaginationPreText

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'previous page'

    +
  • +
+ +

formatToggleOff

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'Hide card view'

    +
  • +
+ +

formatToggleOn

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: 'Show card view'

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/api/methods/index.html b/versions/1.23.5/docs/api/methods/index.html new file mode 100644 index 0000000000..bc5d144318 --- /dev/null +++ b/versions/1.23.5/docs/api/methods/index.html @@ -0,0 +1,1578 @@ + + + + + + + + + + + + +Methods · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Methods +

+
+

The Methods API of Bootstrap Table.

+
+ +

The calling method syntax: $('#table').bootstrapTable('method', parameter).

+ +

append

+ +
    +
  • +

    Parameter: data

    +
  • +
  • +

    Detail:

    + +

    Append the data to the table.

    +
  • +
  • +

    Example: Append

    +
  • +
+ +

check

+ +
    +
  • +

    Parameter: index

    +
  • +
  • +

    Detail:

    + +

    Check a row. The row index starts with 0.

    +
  • +
  • +

    Example: Check/Uncheck

    +
  • +
+ +

checkAll

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Check all current page rows.

    +
  • +
  • +

    Example: Check/Uncheck All

    +
  • +
+ +

checkBy

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Check a row by an array of values, the params contain:

    + +
      +
    • field: name of the field used to find records.
    • +
    • values: array of values for rows to check.
    • +
    • onlyCurrentPage (default false): If true, only the visible dataset will be checked. If pagination is used, the other pages will be ignored.
    • +
    +
  • +
  • +

    Example: Check/Uncheck By

    +
  • +
+ +

checkInvert

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Invert check of current page rows. Triggers onCheckSome and onUncheckSome events.

    +
  • +
  • +

    Example: Check Invert

    +
  • +
+ +

collapseAllRows

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Collapse all rows if the detail view option is set to true.

    +
  • +
  • +

    Example: Expand/Collapse All Rows

    +
  • +
+ +

collapseRow

+ +
    +
  • +

    Parameter: index

    +
  • +
  • +

    Detail:

    + +

    Collapse the row with the index passed by parameter if the detail view option is set to true.

    +
  • +
  • +

    Example: Expand/Collapse Row

    +
  • +
+ +

collapseRowByUniqueId

+ +
    +
  • +

    Parameter: uniqueId

    +
  • +
  • +

    Detail:

    + +

    Collapse the row with the uniqueId passed by parameter if the detail view option is set to true.

    +
  • +
  • +

    Example: Expand/Collapse Row by uniqueId

    +
  • +
+ +

destroy

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Destroy the Bootstrap Table.

    +
  • +
  • +

    Example: Destroy

    +
  • +
+ +

expandAllRows

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Expand all rows if the detail view option is set to true.

    +
  • +
  • +

    Example: Expand/Collapse All Rows

    +
  • +
+ +

expandRow

+ +
    +
  • +

    Parameter: index

    +
  • +
  • +

    Detail:

    + +

    Expand the row that has the index passed by parameter if the detail view option is set to true.

    +
  • +
  • +

    Example: Expand/Collapse Row

    +
  • +
+ +

expandRowByUniqueId

+ +
    +
  • +

    Parameter: uniqueId

    +
  • +
  • +

    Detail:

    + +

    Expand the row with the uniqueId passed by parameter if the detail view option is set to true.

    +
  • +
  • +

    Example: Expand/Collapse Row by uniqueId

    +
  • +
+ +

filterBy

+ +
    +
  • Parameter: +
      +
    • filter - An Object of filter + Default: {}
    • +
    • options - An Object of options + Default: +
        {
      +      'filterAlgorithm': 'and'
      +  }
      +
      +
    • +
    +
  • +
  • +

    Detail:

    + +

    (Can used only in client-side) Filter data in the table. +There are multiple ways to filter:

    +
      +
    • Leave the options blank to use the and filter.
    • +
    • Set the filterAlgorithm (see at parameter) to or to use the or filter.
    • +
    • Pass a function to the filterAlgorithm (see at parameter) to use a custom filter.
    • +
    + +

    Filter Algorithm

    + +
      +
    • And +
        +
      • Filter {age: 10} to show the data only age is equal to 10. You can also filter with an array of values, as in: {age: 10, hairColor: ['blue', 'red', 'green']} to find data where age is equal to 10 and hairColor is either blue, red, or green.
      • +
      +
    • +
    • Or +
        +
      • Filter {age: 10, name: "santa"} to show all Data which has a age of 10 or the name is equals to santa.
      • +
      +
    • +
    • Custom +
        +
      • Filter by your Custom algorithm
      • +
      • Function parameters: +
          +
        • Row
        • +
        • Filters
        • +
        +
      • +
      • Return true to keep the row and return false to filter the row.
      • +
      +
    • +
    +
  • +
  • Example: Filter By
  • +
+ +

getData

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Get the loaded data of the table at the moment that this method is called

    + +
      +
    • useCurrentPage: if set to true, the method will return the data only on the current page.
    • +
    • includeHiddenRows: if set to true, the method will include the hidden rows.
    • +
    • unfiltered: if set to true, the method will include all data (unfiltered).
    • +
    • formatted: get the formatted value from the defined formatter.
    • +
    +
  • +
  • +

    Example: Get Data

    +
  • +
+ +

getFooterData

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Get the loaded data of the footer at the moment that this method is called

    +
  • +
  • +

    Example: Get Footer Data

    +
  • +
+ +

getHiddenColumns

+ + + +

getHiddenRows

+ +
    +
  • +

    Parameter: show

    +
  • +
  • +

    Detail:

    + +

    Get all rows hidden, and if you pass the show parameter true, the rows will be shown again. Otherwise, the method only will return the rows hidden.

    +
  • +
  • +

    Example: Get Hidden Rows

    +
  • +
+ +

getOptions

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Return the options object.

    +
  • +
  • +

    Example: Get Options

    +
  • +
+ +

getRowByUniqueId

+ +
    +
  • +

    Parameter: id

    +
  • +
  • +

    Detail:

    + +

    Get data from the table, the row that contains the id passed by parameter.

    +
  • +
  • +

    Example: Get Row By Unique Id

    +
  • +
+ +

getScrollPosition

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Get the current scroll position. The unit is 'px'.

    +
  • +
  • +

    Example: Get Scroll Position

    +
  • +
+ +

getSelections

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Return selected rows. When no record is selected, an empty array will return. +The selected rows will be unselected while some actions, e.g., searching or page change. If you want to maintain the selections, please use maintainMetaData.

    +
  • +
  • +

    Example: Get Selections

    +
  • +
+ +

getVisibleColumns

+ + + +

hideAllColumns

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Hide All the columns.

    +
  • +
  • +

    Example: Show/Hide All Columns

    +
  • +
+ +

hideColumn

+ +
    +
  • +

    Parameter: field

    +
  • +
  • +

    Detail:

    + +

    Hide the specified field column. +The parameter can be a string or an array of fields.

    +
  • +
  • +

    Example: Show/Hide Column

    +
  • +
+ +

hideLoading

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Hide loading status.

    +
  • +
  • +

    Example: Show/Hide Loading

    +
  • +
+ +

hideRow

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Hide the specified row. The params must contain at least one of the following properties:

    + +
      +
    • index: the row index.
    • +
    • uniqueId: the value of the uniqueId for that row.
    • +
    +
  • +
  • +

    Example: Show/Hide Row

    +
  • +
+ +

insertRow

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Insert a new row. The params contain the following properties:

    + +
      +
    • index: the row index to insert into.
    • +
    • row: the row data.
    • +
    +
  • +
  • +

    Example: Insert Row

    +
  • +
+ +

load

+ +
    +
  • +

    Parameter: data

    +
  • +
  • +

    Detail:

    + +

    Load the data to the table. The old rows will be removed.

    +
  • +
  • +

    Example: Load

    +
  • +
+ +

mergeCells

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Merge some cells into one cell. The params contain the following properties:

    + +
      +
    • index: the row index.
    • +
    • field: the field name.
    • +
    • rowspan: the rowspan count to be merged.
    • +
    • colspan: the colspan count to be merged.
    • +
    +
  • +
  • +

    Example: Merge Cells

    +
  • +
+ +

nextPage

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Go to the next page.

    +
  • +
  • +

    Example: Select/Prev/Next Page

    +
  • +
+ +

prepend

+ +
    +
  • +

    Parameter: data

    +
  • +
  • +

    Detail:

    + +

    Prepend the data to the table.

    +
  • +
  • +

    Example: Prepend

    +
  • +
+ +

prevPage

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Go to the previous page.

    +
  • +
  • +

    Example: Select/Prev/Next Page

    +
  • +
+ +

refresh

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Refresh/reload the remote server data, you can set {silent: true} to refresh the data silently, and set {url: newUrl, pageNumber: pageNumber, pageSize: pageSize} to change the url (optional), page number (optional) and page size (optional). To supply query params specific to this request, set {query: {foo: 'bar'}}.

    +
  • +
  • +

    Example: Refresh

    +
  • +
+ +

refreshOptions

+ +
    +
  • +

    Parameter: options

    +
  • +
  • +

    Detail:

    + +

    Refresh the table options.

    +
  • +
  • +

    Example: Refresh Options

    +
  • +
+ +

remove

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Remove data from the table. The params contain two properties:

    + +
      +
    • field: the field name of remove rows. If $index is not in your fields, you can use this special field $index to remove rows by row index.
    • +
    • values: the array of values for rows that should be removed. If you use the special field $index, you can pass an array of indexes.
    • +
    +
  • +
  • +

    Example: Remove

    +
  • +
+ +

removeAll

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Remove all data from the table.

    +
  • +
  • +

    Example: Remove All

    +
  • +
+ +

removeByUniqueId

+ +
    +
  • +

    Parameter: id

    +
  • +
  • +

    Detail:

    + +

    Remove data from the table, the row that contains the id passed by parameter.

    +
  • +
  • +

    Example: Remove By Unique Id

    +
  • +
+ +

resetSearch

+ +
    +
  • +

    Parameter: text

    +
  • +
  • +

    Detail:

    + +

    Set the search text.

    +
  • +
  • +

    Example: Reset Search

    +
  • +
+ +

resetView

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Reset the Bootstrap Table view. For example, reset the table height, the params contain:

    + +
      +
    • height: the height of the table.
    • +
    +
  • +
  • +

    Example: Reset View

    +
  • +
+ +

scrollTo

+ +
    +
  • +

    Parameter: value|object

    +
  • +
  • +

    Detail:

    + +
      +
    • value +
        +
      • Scroll to the number value position, the unit is 'px', set 'bottom' means scroll to the bottom.
      • +
      +
    • +
    • object +
        +
      • Scroll to the unit (px or rows (index starts by 0)) +Default: {unit: 'px', value: 0}
      • +
      +
    • +
    +
  • +
  • +

    Example: Scroll To

    +
  • +
+ +

selectPage

+ +
    +
  • +

    Parameter: page

    +
  • +
  • +

    Detail:

    + +

    Go to the specified page.

    +
  • +
  • +

    Example: Select/Prev/Next Page

    +
  • +
+ +

showAllColumns

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Show All the columns.

    +
  • +
  • +

    Example: Show/Hide All Columns

    +
  • +
+ +

showColumn

+ +
    +
  • +

    Parameter: field

    +
  • +
  • +

    Detail:

    + +

    Show the specified field column. +The parameter can be a string or an array of fields.

    +
  • +
  • +

    Example: Show/Hide Column

    +
  • +
+ +

showLoading

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Show loading status.

    +
  • +
  • +

    Example: Show/Hide Loading

    +
  • +
+ +

showRow

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Show the specified row. The params must contain at least one of the following properties:

    + +
      +
    • index: the row index.
    • +
    • uniqueId: the value of the uniqueId for that row.
    • +
    +
  • +
  • +

    Example: Show/Hide Row

    +
  • +
+ +

sortBy

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Sorts the table by the specified field. The params must contain at least one of the following properties:

    + +
      +
    • field: the field name.
    • +
    • sortOrder: the sort order, can only be ‘asc’ or ‘desc’.
    • +
    +
  • +
  • +

    Example: Sort By

    +
  • +
+ +

sortReset

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Resets sort state of the table regardless of whether caused by the user or programmatically.

    +
  • +
  • +

    Example: Sort reset

    +
  • +
+ +

toggleDetailView

+ +
    +
  • +

    Parameter: index

    +
  • +
  • +

    Detail:

    + +

    Toggle the row that has the index passed by parameter if the detail view option is set to true.

    +
  • +
  • +

    Example: Toggle Detail View

    +
  • +
+ +

toggleFullscreen

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Toggle fullscreen.

    +
  • +
  • +

    Example: Toggle Fullscreen

    +
  • +
+ +

togglePagination

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Toggle the pagination option.

    +
  • +
  • +

    Example: Toggle Pagination

    +
  • +
+ +

toggleView

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Toggle the card/table view.

    +
  • +
  • +

    Example: Toggle View

    +
  • +
+ +

uncheck

+ +
    +
  • +

    Parameter: index

    +
  • +
  • +

    Detail:

    + +

    Uncheck a row. The row index starts with 0.

    +
  • +
  • +

    Example: Check/Uncheck

    +
  • +
+ +

uncheckAll

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Uncheck all current page rows.

    +
  • +
  • +

    Example: Check/Uncheck All

    +
  • +
+ +

uncheckBy

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Uncheck a row by an array of values. The params contain:

    + +
      +
    • field: name of the field used to find records.
    • +
    • values: array of values for rows to uncheck.
    • +
    • onlyCurrentPage (default false): If true, only the visible dataset will be unchecked. If pagination is used, the other pages will be ignored.
    • +
    +
  • +
  • +

    Example: Check/Uncheck By

    +
  • +
+ +

updateByUniqueId

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Update the specified row(s). Each param contains the following properties:

    + +
      +
    • id: a row id where the id should be the uniqueId field assigned to the table.
    • +
    • row: the new row data.
    • +
    • replace (optional): set to true to replace the row instead of extending.
    • +
    +
  • +
  • +

    Example: Update By Unique Id

    +
  • +
+ +

updateCell

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Update one cell. The params contain the following properties:

    + +
      +
    • index: the row index.
    • +
    • field: the field name.
    • +
    • value: the new field value.
    • +
    + +

    To disable table re-initialization, you can set {reinit: false}.

    +
  • +
  • +

    Example: Update Cell

    +
  • +
+ +

updateCellByUniqueId

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Update the specified cell(s). Each param contains the following properties:

    + +
      +
    • id: row id where the id should be the uniqueId field assigned to the table.
    • +
    • field: field name of the cell to be updated.
    • +
    • value: the new value of the cell.
    • +
    + +

    To disable table re-initialization, you can set {reinit: false}.

    +
  • +
  • +

    Example: Update Cell By Unique Id

    +
  • +
+ +

updateColumnTitle

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Update the field title of the column. The params contain the following properties:

    + +
      +
    • field: the field name.
    • +
    • title: the field title.
    • +
    +
  • +
  • +

    Example: Update Column Title

    +
  • +
+ +

updateFormatText

+ +
    +
  • +

    Parameter: formatName, text

    +
  • +
  • +

    Detail:

    + +

    Update the localizations format text.

    +
  • +
  • +

    Example: Update Format Text

    +
  • +
+ +

updateRow

+ +
    +
  • +

    Parameter: params

    +
  • +
  • +

    Detail:

    + +

    Update the specified row(s). Each param contains the following properties:

    + +
      +
    • index: the row index to be updated.
    • +
    • row: the new row data.
    • +
    • replace (optional): set to true to replace the row instead of extending.
    • +
    +
  • +
  • +

    Example: Update Row

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/api/table-options/index.html b/versions/1.23.5/docs/api/table-options/index.html new file mode 100644 index 0000000000..1c8fa7b1d2 --- /dev/null +++ b/versions/1.23.5/docs/api/table-options/index.html @@ -0,0 +1,3553 @@ + + + + + + + + + + + + +Table Options · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + +
+ +
+ + +
+
+ + View on GitHub + +

+ Table Options +

+
+

The table options API of Bootstrap Table.

+
+ +

The table options are defined in jQuery.fn.bootstrapTable.defaults.

+ +

-

+ +
    +
  • +

    Attribute: data-toggle

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Activate bootstrap table without writing JavaScript.

    +
  • +
  • +

    Default: 'table'

    +
  • +
  • +

    Example: From HTML

    +
  • +
+ +

ajax

+ +
    +
  • +

    Attribute: data-ajax

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    A method to replace ajax call. Should implement the same API as jQuery ajax method.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Table AJAX

    +
  • +
+ +

ajaxOptions

+ +
    +
  • +

    Attribute: data-ajax-options

    +
  • +
  • +

    Type: Object

    +
  • +
  • +

    Detail:

    + +

    Additional options for submit ajax request. List of values: jQuery.ajax.

    +
  • +
  • +

    Default: {}

    +
  • +
  • +

    Example: AJAX Options

    +
  • +
+ +

buttons

+ +
    +
  • +

    Attribute: data-buttons

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    This option allows creating/adding custom button(s) to the “buttons bar” (top right of the table). +These buttons can be sorted with the table option buttonsOrder, the used key/name for the event should be used for that!

    + +

    The custom button is highly configurable, the following options exists:

    +
      +
    • text +
        +
      • Description: This options is used for the showButtonText table option.
      • +
      • Type: String
      • +
      +
    • +
    • icon +
        +
      • Description: This option is used for the showButtonIcons table option.
      • +
      • Type: String - Only needs the icon class e.g. fa-users
      • +
      +
    • +
    • render +
        +
      • Description: Set this option to false to hide the button by default, the button is visible again when you add the data attribute data-show-button-name="true".
      • +
      +
    • +
    • attributes +
        +
      • Description: This option allows adding additional html attributes e.g. title
      • +
      • Type: Object
      • +
      • Example: {title: 'Button title'}
      • +
      +
    • +
    • html +
        +
      • Description: If you don’t want to autogenerate the html, you can use this option to insert your custom html. +The event option only works if you custom HTML contains name="button-name". +If this option is used the following options will be ignored: +
          +
        • text
        • +
        • icon
        • +
        • attributes
        • +
        +
      • +
      • Type: Function|String
      • +
      +
    • +
    • event +
        +
      • Description: Should be used if you want to add an event to the button
      • +
      • Type: Function|Object|String
      • +
      +
    • +
    + +

    The event option can be configured in three ways. +One event with click event:

    +
    {
    +  'event': () => { }
    +}
    +
    + +

    One event with a self-defined event type:

    +
      {
    +    'event': {
    +      'mouseenter': () => { }
    +    }
    +  }
    +
    + +

    Multiple events with self-defined event types:

    +
      {
    +    'event': {
    +      'click': () => { },
    +      'mouseenter': () => { },
    +      'mouseleave': () => { }
    +    }
    +  }
    +
    + +

    Hint: Instead of inline functions, you also can use function names.

    + +

    A configured custom button could look like this:

    +
    {
    +  btnRemoveEvenRows: {
    +    'text': 'Remove even Rows',
    +    'icon': 'fa-trash',
    +    'event': () => {
    +      //DO STUFF TO REMOVE EVEN ROWS
    +    },
    +    'attributes': {
    +      'title': 'Remove all rows which has a even id'
    +    }
    +  }
    +}
    +
    +
  • +
  • +

    Default: {}

    +
  • +
  • +

    Example: Buttons

    +
  • +
+ +

buttonsAlign

+ +
    +
  • +

    Attribute: data-buttons-align

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate how to align the toolbar buttons. 'left', 'right' can be used.

    +
  • +
  • +

    Default: 'right'

    +
  • +
  • +

    Example: Buttons Align

    +
  • +
+ +

buttonsAttributeTitle

+ +
    +
  • +

    Attribute: data-buttons-attribute-title

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Customize the title attribute of the toolbar buttons, which is mainly used to customize the toolbar style.

    +
  • +
  • +

    Default: 'title'

    +
  • +
  • +

    Example: Buttons Attribute Title

    +
  • +
+ +

buttonsClass

+ +
    +
  • +

    Attribute: data-buttons-class

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Defines the class (added after 'btn-') of table buttons.

    +
  • +
  • +

    Default: 'secondary'

    +
  • +
  • +

    Example: Buttons Class

    +
  • +
+ +

buttonsOrder

+ +
    +
  • +

    Attribute: data-buttons-order

    +
  • +
  • +

    Type: Array

    +
  • +
  • +

    Detail:

    + +

    Indicate how to custom order the toolbar buttons.

    +
  • +
  • +

    Default: ['paginationSwitch', 'refresh', 'toggle', 'fullscreen', 'columns']

    +
  • +
  • +

    Example: Buttons Order

    +
  • +
+ +

buttonsPrefix

+ +
    +
  • +

    Attribute: data-buttons-prefix

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Defines prefix of table buttons.

    +
  • +
  • +

    Default: 'btn'

    +
  • +
  • +

    Example: Buttons Prefix

    +
  • +
+ +

buttonsToolbar

+ +
    +
  • +

    Attribute: data-buttons-toolbar

    +
  • +
  • +

    Type: String/Node

    +
  • +
  • +

    Detail:

    + +

    A jQuery selector that indicates the custom buttons toolbar, for example: #buttons-toolbar, .buttons-toolbar, or a DOM node.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Buttons Toolbar

    +
  • +
+ +

cache

+ +
    +
  • +

    Attribute: data-cache

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to disable caching of AJAX requests.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Table Cache

    +
  • +
+ +

cardView

+ +
    +
  • +

    Attribute: data-card-view

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show card view table, for example, mobile view.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Card View

    +
  • +
+ +

checkboxHeader

+ +
    +
  • +

    Attribute: data-checkbox-header

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to hide the check-all checkbox in the header row.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Checkbox Header

    +
  • +
+ +

classes

+ +
    +
  • +

    Attribute: data-classes

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The class name of table. 'table', 'table-bordered', 'table-hover', 'table-striped', 'table-dark', 'table-sm' and 'table-borderless' can be used. By default, the table is bordered.

    +
  • +
  • +

    Default: 'table table-bordered table-hover'

    +
  • +
  • +

    Example: Table Classes

    +
  • +
+ +

clickToSelect

+ +
    +
  • +

    Attribute: data-click-to-select

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to select the checkbox or radio box when clicking rows.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Click To Select

    +
  • +
+ +

columns

+ +
    +
  • +

    Attribute: -

    +
  • +
  • +

    Type: Array

    +
  • +
  • +

    Detail:

    + +

    The table columns config object. See column properties for more details.

    +
  • +
  • +

    Default: []

    +
  • +
  • +

    Example: Table Columns

    +
  • +
+ +

contentType

+ +
    +
  • +

    Attribute: data-content-type

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The contentType of request remote data, for example: application/x-www-form-urlencoded.

    +
  • +
  • +

    Default: 'application/json'

    +
  • +
  • +

    Example: Content Type

    +
  • +
+ +

customSearch

+ +
    +
  • +

    Attribute: data-custom-search

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    The custom search function is executed instead of the built-in search function, takes three parameters:

    + +
      +
    • data: the table data.
    • +
    • text: the search text.
    • +
    • filter: the filter object from filterBy method.
    • +
    + +

    Example usage:

    +
  • +
+ +
  function customSearch(data, text) {
+    return data.filter(function (row) {
+      return row.field.indexOf(text) > -1
+    })
+  }
+  
+ + + +

customSort

+ +
    +
  • +

    Attribute: data-custom-sort

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    The custom sort function is executed instead of the built-in sort function, takes three parameters:

    + +
      +
    • sortName: the sort name.
    • +
    • sortOrder: the sort order.
    • +
    • data: the rows data.
    • +
    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Custom Order

    +
  • +
+ +

data

+ +
    +
  • +

    Attribute: data-data

    +
  • +
  • +

    Type: Array | Object

    +
  • +
  • +

    Detail:

    + +

    The data to be loaded.

    + +

    If in the data has _<field>_rowspan or _<field>_colspan property, then will merge cells auto, for example:

    +
    $table.bootstrapTable({
    +  data: [
    +    {
    +      id: 1,
    +      name: 'Item 1',
    +      _name_rowspan: 2,
    +      price: '$1'
    +    },
    +    {
    +      id: 2,
    +      price: '$2'
    +    }
    +  ]
    +})
    +
    +

    If using this feature, the data is required to ensure that the format is correct.

    +
  • +
  • +

    Default: []

    +
  • +
  • +

    Example: From Data

    +
  • +
+ +

dataField

+ +
    +
  • +

    Attribute: data-data-field

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Key in incoming JSON containing 'rows' data list.

    +
  • +
  • +

    Default: 'rows'

    +
  • +
  • +

    Example: Total/Data Field

    +
  • +
+ +

dataType

+ +
    +
  • +

    Attribute: data-data-type

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The type of data that you are expecting back from the server.

    +
  • +
  • +

    Default: 'json'

    +
  • +
  • +

    Example: Data Type

    +
  • +
+ +

detailFilter

+ +
    +
  • +

    Attribute: data-detail-filter

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    Enable expansion per row when detailView is set to true. Return true, and the row will be enabled for expansion, return false and expansion for the row will be disabled. Default function returns true to allow expansion for all rows.

    +
  • +
  • +

    Default: function(index, row) { return true }

    +
  • +
  • +

    Example: Detail Filter

    +
  • +
+ +

detailFormatter

+ +
    +
  • +

    Attribute: data-detail-formatter

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    Format your detail view when detailView is set to true. Return a String, and it will be appended into the detail view cell, optionally render the element directly using the third parameter, which is a jQuery element of the target cell.

    +
  • +
  • +

    Default: function(index, row, element) { return '' }

    +
  • +
  • +

    Example: Detail View

    +
  • +
+ +

detailView

+ +
    +
  • +

    Attribute: data-detail-view

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show a detailed view table. You can set the uniqueId option to maintain the detail view state when refreshing the table.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Detail View UniqueId

    +
  • +
+ +

detailViewAlign

+ +
    +
  • +

    Attribute: data-detail-view-align

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate how to align the detail view icon. 'left', 'right' can be used.

    +
  • +
  • +

    Default: 'left'

    +
  • +
  • +

    Example: Detail view Align

    +
  • +
+ +

detailViewByClick

+ +
    +
  • +

    Attribute: data-detail-view-by-click

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to toggle the detail view when a cell is clicked.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Detail View Icon

    +
  • +
+ +

detailViewIcon

+ +
    +
  • +

    Attribute: data-detail-view-icon

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show the detail view column (plus/minus icon).

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Detail View Icon

    +
  • +
+ +

escape

+ +
    +
  • +

    Attribute: data-escape

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Escapes a string for insertion into HTML, replacing &, <, >, “, , and ' characters. +To disable it for the column titles check the escapeTitle` option.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Table Escape

    +
  • +
+ +

escapeTitle

+ +
    +
  • +

    Attribute: data-escape-title

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Toggles if the escape option should be applied to the column titles.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Table Escape title

    +
  • +
+ +

filterOptions

+ +
    +
  • +

    Attribute: data-filter-options

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Define the default filter options of the algorithm, filterAlgorithm: 'and' means all given filters must match, filterAlgorithm: 'or' means one of the given filters must match.

    +
  • +
  • +

    Default: { filterAlgorithm: 'and' }

    +
  • +
  • +

    Example: Filter Options

    +
  • +
+ +

fixedScroll

+ +
    +
  • +

    Attribute: data-fixed-scroll

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to enable the fixed scrollbar position of the table when loading data.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Fixed Scroll

    +
  • +
+ +

footerField

+ +
    +
  • +

    Attribute: data-footer-field

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Defines the key of the footer Object (From data array or server response JSON). +The footer Object can be used to set/define footer colspan and/or the value of the footer. +Only triggered when data-pagination is true and data-side-pagination is server.

    +
  • +
+ +
    {
+      "rows": [
+        {
+          "id": 0,
+          "name": "Item 0",
+          "price": "$0",
+          "amount": 3
+        }
+      ],
+      "footer": {
+        "id": "footer id",
+        "_id_colspan": 2,
+        "name": "footer name"
+      }
+    }
+    
+ + + +

footerStyle

+ +
    +
  • +

    Attribute: data-footer-style

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    The footer style formatter function, takes one parameter:

    + +
      +
    • column: the column object.
    • +
    + +

    Support classes or css. Example usage:

    +
  • +
+ +
  function footerStyle(column) {
+    return {
+      css: { 'font-weight': 'normal' },
+      classes: 'my-class'
+    }
+  }
+  
+ + + +

headerStyle

+ +
    +
  • +

    Attribute: data-header-style

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    The header style formatter function, takes one parameter:

    + +
      +
    • column: the column object.
    • +
    + +

    Support classes or css. Example usage:

    +
  • +
+ +
  function headerStyle(column) {
+    return {
+      css: { 'font-weight': 'normal' },
+      classes: 'my-class'
+    }
+  }
+  
+ + + +

height

+ +
    +
  • +

    Attribute: data-height

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    The height of the table, enables a fixed header of the table.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Table Height

    +
  • +
+ +

icons

+ +
    +
  • +

    Attribute: data-icons

    +
  • +
  • +

    Type: Object

    +
  • +
  • +

    Detail:

    + +

    Defines icons used in the toolbar, pagination, and details view.

    +
  • +
  • +

    Default:

    +
  • +
+ +
  {
+    paginationSwitchDown: 'fa-caret-square-down',
+    paginationSwitchUp: 'fa-caret-square-up',
+    refresh: 'fa-sync',
+    toggleOff: 'fa-toggle-off',
+    toggleOn: 'fa-toggle-on',
+    columns: 'fa-th-list',
+    fullscreen: 'fa-arrows-alt',
+    detailOpen: 'fa-plus',
+    detailClose: 'fa-minus'
+  }
+  
+ + + +

iconSize

+ +
    +
  • +

    Attribute: data-icon-size

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Defines icon size, undefined, 'lg', 'sm' can be used.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Icon Size

    +
  • +
+ +

iconsPrefix

+ +
    +
  • +

    Attribute: data-icons-prefix

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Defines icon set name. By default, this option is automatically calculated by the theme.

    + +
    {
    +  bootstrap3: 'glyphicon',
    +  bootstrap4: 'fa',
    +  bootstrap5: 'bi',
    +  'bootstrap-table': 'icon',
    +  bulma: 'fa',
    +  foundation: 'fa',
    +  materialize: 'material-icons',
    +  semantic: 'fa'
    +}
    +
    +
  • +
  • +

    Default: undefined

    +
  • +
  • Example: Icons Prefix +

    idField

    +
  • +
  • +

    Attribute: data-id-field

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate which field will be used as checkbox/radio value, its the counterpart to selectItemName.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • Example: Id Field
  • +
+ +

ignoreClickToSelectOn

+ +
    +
  • +

    Attribute: data-ignore-click-to-select-on

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    Set the ignore elements clickToSelect on. Takes one parameter:

    + +
      +
    • element: the element clicked on.
    • +
    + +

    Return true if the click should be ignored, false if the click should cause the row to be selected. This option is only relevant if clickToSelect is true.

    +
  • +
  • +

    Default: { return ['A', 'BUTTON'].includes(tagName) }

    +
  • +
  • +

    Example: Ignore Click To Select On

    +
  • +
+ +

loadingFontSize

+ +
    +
  • +

    Attribute: data-loading-font-size

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    To define the font size of the loading text, the default value is 'auto', calculated automatically according to the table width, between 12px and 32px.

    +
  • +
  • +

    Default: 'auto'

    +
  • +
  • +

    Example: Loading Font Size

    +
  • +
+ +

loadingTemplate

+ +
    +
  • +

    Attribute: data-loading-template

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    To custom the loading type by yourself. The parameters object contain:

    + +
      +
    • loadingMessage: the formatLoadingMessage locale.
    • +
    +
  • +
  • Default: +
    function (loadingMessage) {
    +  return '<span class="loading-wrap">' +
    +    '<span class="loading-text">' +
    +    loadingMessage +
    +    '</span>' +
    +    '<span class="animation-wrap"><span class="animation-dot"></span></span>' +
    +    '</span>'
    +}
    +
    +
  • +
  • Example: Loading Template
  • +
+ +

locale

+ +
    +
  • +

    Attribute: data-locale

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Sets the locale to use (i.e. 'zh-CN'). Locale files must be pre-loaded. +Allows for fallback locales, if loaded, in the following order:

    + +
      +
    • First tries for the locale as specified,
    • +
    • Then tries the locale with ‘_’ translated to ‘-‘ and the region code upper cased,
    • +
    • Then tries the short locale code (i.e. 'zh' instead of 'zh-CN'),
    • +
    • And finally will use the last locale file loaded (or the default locale if no locales loaded).
    • +
    + +

    If left undefined or an empty string, use the last locale loaded (or 'en-US' if no locale files loaded).

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Table Locale

    +
  • +
+ +

maintainMetaData

+ +
    +
  • +

    Attribute: data-maintain-meta-data

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to maintain the following metadata on the change page and search:

    +
      +
    • selected rows
    • +
    • hidden rows
    • +
    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Maintain Meta Data

    +
  • +
+ +

method

+ +
    +
  • +

    Attribute: data-method

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The method type to request remote data.

    +
  • +
  • +

    Default: 'get'

    +
  • +
  • +

    Example: Table Method

    +
  • +
+ +

minimumCountColumns

+ +
    +
  • +

    Attribute: data-minimum-count-columns

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    The minimum number of columns to hide from the columns dropdown list.

    +
  • +
  • +

    Default: 1

    +
  • +
  • +

    Example: Minimum Count Columns

    +
  • +
+ +

multipleSelectRow

+ +
    +
  • +

    Attribute: data-multiple-select-row

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to enable the multiple selection row. Can use the ctrl+click to select one row or shift+click to select a range of rows.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Multiple Select Row

    +
  • +
+ +

pageList

+ +
    +
  • +

    Attribute: data-page-list

    +
  • +
  • +

    Type: Array

    +
  • +
  • +

    Detail:

    + +

    When setting the pagination property, initialize the page size by selecting the list. If you include the 'all' or 'unlimited' option, all the records will be shown in your table.

    + +

    Hint: If the table has lesser rows as the option(s), the options will be hidden automatically. To disable that feature, you can set smartDisplay to false

    +
  • +
  • +

    Default: [10, 25, 50, 100]

    +
  • +
  • +

    Example: Page List

    +
  • +
+ +

pageNumber

+ +
    +
  • +

    Attribute: data-page-number

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    When setting the pagination property, initialize the page number.

    +
  • +
  • +

    Default: 1

    +
  • +
  • +

    Example: Page Number

    +
  • +
+ +

pageSize

+ +
    +
  • +

    Attribute: data-page-size

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    When setting the pagination property, initialize the page size.

    +
  • +
  • +

    Default: 10

    +
  • +
  • +

    Example: Page Size

    +
  • +
+ +

pagination

+ +
    +
  • +

    Attribute: data-pagination

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show a pagination toolbar on the table bottom.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Table Pagination

    +
  • +
+ +

paginationDetailHAlign

+ +
    +
  • +

    Attribute: data-pagination-detail-h-align

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate how to align the pagination detail. 'left', 'right' can be used.

    +
  • +
  • +

    Default: 'left'

    +
  • +
  • +

    Example: Pagination H Align

    +
  • +
+ +

paginationHAlign

+ +
    +
  • +

    Attribute: data-pagination-h-align

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate how to align the pagination. 'left', 'right' can be used.

    +
  • +
  • +

    Default: 'right'

    +
  • +
  • +

    Example: Pagination H Align

    +
  • +
+ +

paginationLoadMore

+ +
    +
  • +

    Attribute: data-pagination-load-more

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to enable loading more data through pagination. It is only used in the client-side pagination. In general, to implement the “load more” functionality, it is often necessary to combine it with a responseHandler to process the returned data.

    + +

    It is primarily used in scenarios where the total number of pages is unknown. In such cases, it is not possible to display the exact total count or calculate the total number of pages. Instead, a display format such as “100+” can be utilized to indicate the presence of additional items beyond the displayed count. As the user navigates to the last page, more data is loaded, along with an update to the pagination information. This process continues until all data loading is complete.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Pagination Load More

    +
  • +
+ +

paginationLoop

+ +
    +
  • +

    Attribute: data-pagination-loop

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to enable pagination continuous loop mode.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Pagination Loop

    +
  • +
+ +

paginationNextText

+ +
    +
  • +

    Attribute: data-pagination-next-text

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate the icon or text to be shown in the pagination detail, the next button.

    +
  • +
  • +

    Default: '›'

    +
  • +
  • +

    Example: Pagination Text

    +
  • +
+ +

paginationPagesBySide

+ +
    +
  • +

    Attribute: data-pagination-pages-by-side

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    The number of pages on each side (right, left) of the current page.

    +
  • +
  • +

    Default: 1

    +
  • +
  • +

    Example: Pagination Index Number

    +
  • +
+ +

paginationParts

+ +
    +
  • +

    Attribute: data-pagination-parts

    +
  • +
  • +

    Type: Array

    +
  • +
  • +

    Detail:

    + +

    These options define which parts of the pagination should be visible.

    +
      +
    • pageInfo Shows which dataset will be displayed on the current page (e.g. Showing 1 to 10 of 54 rows).
    • +
    • pageInfoShort Similar to pageInfo, it only displays how many rows the table has (e.g. Showing 54 rows).
    • +
    • pageSize Shows the dropdown which defines how many rows should be displayed on the page.
    • +
    • pageList Shows the main part of the pagination (The list of the pages).
    • +
    +
  • +
  • +

    Default: ['pageInfo', 'pageSize', 'pageList']

    +
  • +
  • +

    Example: Pagination Parts

    +
  • +
+ +

paginationPreText

+ +
    +
  • +

    Attribute: data-pagination-pre-text

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate the icon or text shown in the pagination detail, the previous button.

    +
  • +
  • +

    Default: '‹'

    +
  • +
  • +

    Example: Pagination Text

    +
  • +
+ +

paginationSuccessivelySize

+ +
    +
  • +

    Attribute: data-pagination-successively-size

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    Maximum successive number of pages in a row.

    +
  • +
  • +

    Default: 5

    +
  • +
  • +

    Example: Pagination Index Number

    +
  • +
+ +

paginationUseIntermediate

+ +
    +
  • +

    Attribute: data-pagination-use-intermediate

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Calculate and show intermediate pages for quick access.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Pagination Index Number

    +
  • +
+ +

paginationVAlign

+ +
    +
  • +

    Attribute: data-pagination-v-align

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate how to vertical-align the pagination. 'top', 'bottom', 'both' (put the pagination on top and bottom) can be used.

    +
  • +
  • +

    Default: 'bottom'

    +
  • +
  • +

    Example: Pagination V Align

    +
  • +
+ +

queryParams

+ +
    +
  • +

    Attribute: data-query-params

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    When requesting remote data, you can send additional parameters by modifying queryParams.

    + +

    If queryParamsType = 'limit', the params object contains: limit, offset, search, sort, order.

    + +

    Else, it contains: pageSize, pageNumber, searchText, sortName, sortOrder.

    + +

    Return false to stop request.

    +
  • +
  • +

    Default: function(params) { return params }

    +
  • +
  • +

    Example: Query Params

    +
  • +
+ +

queryParamsType

+ +
    +
  • +

    Attribute: data-query-params-type

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Set 'limit' to send query params with RESTFul type.

    +
  • +
  • +

    Default: 'limit'

    +
  • +
  • +

    Example: Query Params Type

    +
  • +
+ +

regexSearch

+ +
    +
  • +

    Attribute: data-regex-search

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to enable the regex search. +If this option is enabled, you can search with regex, e.g. [47a]$ for all items which end with a 4, 7 or a. +The regex can be entered with /[47a]$/gim or without [47a]$ flags. The default flags are gim.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Regex Search

    +
  • +
+ +

rememberOrder

+ +
    +
  • +

    Attribute: data-remember-order

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to remember the order for each column.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Remember Order

    +
  • +
+ +

responseHandler

+ +
    +
  • +

    Attribute: data-response-handler

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    Before loading remote data, handle the response data format. The parameters object contains:

    + +
      +
    • res: the response data.
    • +
    • jqXHR: jqXHR object, which is a super set of the XMLHTTPRequest object. For more information, see the jqXHR Type.
    • +
    +
  • +
  • +

    Default: function(res) { return res }

    +
  • +
  • +

    Example: Response Handler

    +
  • +
+ +

rowAttributes

+ +
    +
  • +

    Attribute: data-row-attributes

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    The row attribute formatter function, takes two parameters:

    + +
      +
    • row: the row record data.
    • +
    • index: the row index.
    • +
    + +

    Support all custom attributes.

    +
  • +
  • +

    Default: {}

    +
  • +
  • +

    Example: Row Attributes

    +
  • +
+ +

rowStyle

+ +
    +
  • +

    Attribute: data-row-style

    +
  • +
  • +

    Type: Function

    +
  • +
  • +

    Detail:

    + +

    The row style formatter function, takes two parameters:

    + +
      +
    • row: the row record data.
    • +
    • index: the row index.
    • +
    + +

    Support classes or css.

    +
  • +
  • +

    Default: {}

    +
  • +
  • +

    Example: Row Style

    +
  • +
+ + + +
    +
  • +

    Attribute: data-search

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Enable the search input.

    + +

    There are three ways to search:

    +
      +
    • The value contains the search query (Default). +Example: Github contains git.
    • +
    • The value must be identical to the search query. +Example: Github (value) and Github (search query).
    • +
    • Comparisons (<, >, <=, =<, >=, =>). +Example: 4 is larger than 3.
    • +
    + +

    Notes:

    +
      +
    • If you want to use a custom search input, use the searchSelector.
    • +
    • You can also search via regex using the regexSearch option.
    • +
    • If you want to send searchable params to server-side pagination, use the searchable option.
    • +
    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Table Search

    +
  • +
+ +

searchable

+ +
    +
  • +

    Attribute: data-searchable

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to send searchable params to the server while using server-side pagination.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Searchable

    +
  • +
+ +

searchAccentNeutralise

+ +
    +
  • +

    Attribute: data-search-accent-neutralise

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to true if you want to use the accent neutralize feature.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Search Accent Neutralise

    +
  • +
+ +

searchAlign

+ +
    +
  • +

    Attribute: data-search-align

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate how to align the search input. 'left', 'right' can be used.

    +
  • +
  • +

    Default: 'right'

    +
  • +
  • +

    Example: Search Align

    +
  • +
+ +

searchHighlight

+ +
    +
  • +

    Attribute: data-search-highlight

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to true to highlight the searched text (using the <mark> HTML tag). +You can also define a custom highlight formatter, e.g., for values with HTML or to use a custom highlight color.

    +
  • +
  • +

    Default: 'false'

    +
  • +
  • +

    Example: Search Highlight

    +
  • +
+ +

searchOnEnterKey

+ +
    +
  • +

    Attribute: data-search-on-enter-key

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    The search method will be executed until the Enter key is pressed.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Search On Enter Key

    +
  • +
+ +

searchSelector

+ +
    +
  • +

    Attribute: data-search-selector

    +
  • +
  • +

    Type: Boolean|String

    +
  • +
  • +

    Detail:

    + +

    If this option is set (must be a valid dom selector, e.g. #customSearch), the found dom element (an input element) will be used as table search instead of the built-in search input.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Search Selector

    +
  • +
+ +

searchText

+ +
    +
  • +

    Attribute: data-search-text

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    When setting search property, initialize the search text.

    +
  • +
  • +

    Default: ''

    +
  • +
  • +

    Example: Search Text

    +
  • +
+ +

searchTimeOut

+ +
    +
  • +

    Attribute: data-search-time-out

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    Set timeout for search fire.

    +
  • +
  • +

    Default: 500

    +
  • +
  • +

    Example: Search Time Out

    +
  • +
+ +

selectItemName

+ +
    +
  • +

    Attribute: data-select-item-name

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The name of the radio or checkbox input.

    +
  • +
  • +

    Default: 'btSelectItem'

    +
  • +
  • +

    Example: Id Field

    +
  • +
+ +

serverSort

+ +
    +
  • +

    Attribute: data-server-sort

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to sort the data on the client-side, only works when the sidePagination is server.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Server Sort

    +
  • +
+ +

showButtonIcons

+ +
    +
  • +

    Attribute: data-show-button-icons

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    All buttons will show icons on them.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: show button icons

    +
  • +
+ +

showButtonText

+ +
    +
  • +

    Attribute: data-show-button-text

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    All buttons will show text on them.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: show button text

    +
  • +
+ +

showColumns

+ +
    +
  • +

    Attribute: data-show-columns

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show the columns drop down list. We can set the switchable column option to false to hide the columns item in the drop down list. The minimum number of selected columns can be controlled with the minimumCountColumns table option.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Basic Columns and Large Columns

    +
  • +
+ +

showColumnsSearch

+ +
    +
  • +

    Attribute: data-show-columns-search

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show a search for the column’s filter.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Columns Search

    +
  • +
+ +

showColumnsToggleAll

+ +
    +
  • +

    Attribute: data-show-columns-toggle-all

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show a toggle all checkbox within the columns option/dropdown.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Columns Toggle All

    +
  • +
+ +

showExtendedPagination

+ +
    +
  • +

    Attribute: data-show-extended-pagination

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show an extended version of pagination (including the count of all rows without filters). +If you use pagination on the server side, please use totalNotFilteredField to define the count.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Show Extended Pagination

    +
  • +
+ +

showFooter

+ +
    +
  • +

    Attribute: data-show-footer

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show the summary footer row.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Show Footer

    +
  • +
+ +

showFullscreen

+ +
    +
  • +

    Attribute: data-show-fullscreen

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show the fullscreen button.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Show Fullscreen

    +
  • +
+ +

showHeader

+ +
    +
  • +

    Attribute: data-show-header

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to hide the table header.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Show Header

    +
  • +
+ +

showPaginationSwitch

+ +
    +
  • +

    Attribute: data-show-pagination-switch

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show the pagination switch button.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Show Pagination Switch

    +
  • +
+ +

showRefresh

+ +
    +
  • +

    Attribute: data-show-refresh

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show the refresh button.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Show Refresh

    +
  • +
+ +

showSearchButton

+ +
    +
  • +

    Attribute: data-show-search-button

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show a search Button behind the search input. +The Search will only be executed if the button is pressed (e.g., to prevent traffic or loading time).

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Show Search Button

    +
  • +
+ +

showSearchClearButton

+ +
    +
  • +

    Attribute: data-show-search-clear-button

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show a clear Button behind the search input, which will clear the search input (also all filter from filter-control (if enabled)).

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Show Search Clear Button

    +
  • +
+ +

showToggle

+ +
    +
  • +

    Attribute: data-show-toggle

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show the toggle button to toggle table/card view.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Show Toggle

    +
  • +
+ +

sidePagination

+ +
    +
  • +

    Attribute: data-side-pagination

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Defines the side pagination of the table, can only be 'client' or 'server'. +Using the 'server' side requires setting the 'url' or 'ajax' option.

    + +

    Note that the required server response format is different depending on whether the 'sidePagination' option is set to 'client' or 'server'. See the following examples:

    + + + +

    URL parameters:

    + +

    When sidePagination is set to server, the bootstrap table will make calls to the url with the following URL parameters:

    + +
      +
    • offset with a value between 0 and total - 1, indicating the first record to include.
    • +
    • limit with a value indicating the number of rows per page.
    • +
    + +

    When implementing server-side pagination, you must implement a JSON view in a format like this example. That view must take the URL parameter values indicated above and return records starting at the offset index and returns the number of records indicated by limit. For example, if you want records 11-20, your view must obtain the offset=10 and limit=10 from the URL string and return records like this example.

    +
  • +
  • +

    Default: 'client'

    +
  • +
  • +

    Example: Client Side Pagination and Server Side Pagination

    +
  • +
+ +

silentSort

+ +
    +
  • +

    Attribute: data-silent-sort

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to sort the data with the loading message. This options works when the sidePagination option is set to 'server'.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Silent Sort

    +
  • +
+ +

singleSelect

+ +
    +
  • +

    Attribute: data-single-select

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to allow a checkbox selecting only one row.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Single Select

    +
  • +
+ +

smartDisplay

+ +
    +
  • +

    Attribute: data-smart-display

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to display pagination or card view smartly.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Smart Display

    +
  • +
+ +

sortable

+ +
    +
  • +

    Attribute: data-sortable

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to disable sortable of all columns.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Table Sortable

    +
  • +
+ +

sortClass

+ +
    +
  • +

    Attribute: data-sort-class

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The class name of the td elements are sorted.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Sort Class

    +
  • +
+ +

sortEmptyLast

+ +
    +
  • +

    Attribute: data-sort-empty-last

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to sort <empty string>, undefined and null as last value.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Sort Empty Last

    +
  • +
+ +

sortName

+ +
    +
  • +

    Attribute: data-sort-name

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Defines which column will be sorted.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Sort Name Order

    +
  • +
+ +

sortOrder

+ +
    +
  • +

    Attribute: data-sort-order

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Defines the column sort order, can only be undefined, 'asc' or 'desc'.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Sort Name Order

    +
  • +
+ +

sortReset

+ +
    +
  • +

    Attribute: data-sort-reset

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to reset the sort on the third click.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Sort Reset

    +
  • +
+ +

sortResetPage

+ +
    +
  • +

    Attribute: data-sort-reset-page

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to reset the page number when sorting.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Sort Reset Page

    +
  • +
+ +

sortStable

+ +
    +
  • +

    Attribute: data-sort-stable

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to get a stable sorting. We will add '_position' property to the row.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Sort Stable

    +
  • +
+ +

strictSearch

+ +
    +
  • +

    Attribute: data-strict-search

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Enable the strict search. +Disables the comparison checks.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Strict Search

    +
  • +
+ +

theadClasses

+ +
    +
  • +

    Attribute: data-thead-classes

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The class name of table thead. Bootstrap v4, use the modifier classes .thead-light or .thead-dark to make thead appear light or dark gray.

    +
  • +
  • +

    Default: ''

    +
  • +
  • +

    Example: Thead Classes

    +
  • +
+ +

toolbar

+ +
    +
  • +

    Attribute: data-toolbar

    +
  • +
  • +

    Type: String/Node

    +
  • +
  • +

    Detail:

    + +

    A jQuery selector that indicates the toolbar, for example: #toolbar, .toolbar, or a DOM node.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: Custom Toolbar

    +
  • +
+ +

toolbarAlign

+ +
    +
  • +

    Attribute: data-toolbar-align

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate how to align the custom toolbar. 'left', 'right' can be used.

    +
  • +
  • +

    Default: 'left'

    +
  • +
  • +

    Example: Toolbar Align

    +
  • +
+ +

totalField

+ +
    +
  • +

    Attribute: data-total-field

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Key in incoming JSON containing 'total' data.

    +
  • +
  • +

    Default: 'total'

    +
  • +
  • +

    Example: Total/Data Field

    +
  • +
+ +

totalNotFiltered

+ +
    +
  • +

    Attribute: data-total-not-filtered

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    This property is mainly passed in by the pagination server, which is easy to use.

    +
  • +
  • +

    Default: 0

    +
  • +
+ +

totalNotFilteredField

+ +
    +
  • +

    Attribute: data-total-not-filtered-field

    +
  • +
  • +

    Type: string

    +
  • +
  • +

    Detail:

    + +

    The field from the JSON response will be used for showExtendedPagination.

    +
  • +
  • +

    Default: totalNotFiltered

    +
  • +
  • +

    Example: Total Not Filtered Field

    +
  • +
+ +

totalRows

+ +
    +
  • +

    Attribute: data-total-rows

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    This property is mainly passed in by the pagination server, which is easy to use.

    +
  • +
  • +

    Default: 0

    +
  • +
+ +

trimOnSearch

+ +
    +
  • +

    Attribute: data-trim-on-search

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to trim spaces in the search field.

    +
  • +
  • +

    Default: true

    +
  • +
  • +

    Example: Trim On Search

    +
  • +
+ +

undefinedText

+ +
    +
  • +

    Attribute: data-undefined-text

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Defines the default undefined text.

    +
  • +
  • +

    Default: '-'

    +
  • +
  • +

    Example: Undefined Text

    +
  • +
+ +

uniqueId

+ +
    +
  • +

    Attribute: data-unique-id

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    Indicate a unique identifier for each row. +The Unique id should always be safe for html e.g. alphanumeric, it should not contain chars which can break html e.g. ".

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: getRowByUniqueId

    +
  • +
+ +

url

+ +
    +
  • +

    Attribute: data-url

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    A URL to request data from remote site.

    + +

    Note that the required server response format is different depending on whether the 'sidePagination' option is specified. See the following examples:

    + + + +

    URL parameters:

    + +

    When sidePagination is set to server, the bootstrap table will make calls to the url with the following URL parameters:

    + +
      +
    • offset with a value between 0 and total - 1, indicating the first record to include.
    • +
    • limit with a value indicating the number of rows per page.
    • +
    + +

    When implementing server-side pagination, you must implement a JSON view in a format like this example. That view must take the URL parameter values indicated above and return records starting at the offset index and returns the number of records indicated by limit. For example, if you want records 11-20, your view must obtain the offset=10 and limit=10 from the URL string and return records like this example.

    +
  • +
  • +

    Default: undefined

    +
  • +
  • +

    Example: From URL

    +
  • +
  • +

    Error handling

    + +

    To get loading errors please use onLoadError

    +
  • +
+ +

virtualScroll

+ +
    +
  • +

    Attribute: data-virtual-scroll

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to enable virtual scroll to display a virtual, “infinite” list.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: Large Data

    +
  • +
+ +

virtualScrollItemHeight

+ +
    +
  • +

    Attribute: data-virtual-scroll-item-height

    +
  • +
  • +

    Type: Number

    +
  • +
  • +

    Detail:

    + +

    If this option is not defined, we will use the height of the first item by default.

    + +

    It is important to provide this if the virtual item height is significantly larger than the default height. This dimension is used to help determine how many cells should be created when initialized and to help calculate the height of the scrollable area. This height value can only use px units.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

visibleSearch

+ +
    +
  • +

    Attribute: data-visible-search

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to search only in visible column/data. If the data contains other values which are not displayed, they will be ignored while searching.

    +
  • +
  • +

    Default: false

    +
  • +
  • +

    Example: visible search

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/addrbar/index.html b/versions/1.23.5/docs/extensions/addrbar/index.html new file mode 100644 index 0000000000..e64ddbac25 --- /dev/null +++ b/versions/1.23.5/docs/extensions/addrbar/index.html @@ -0,0 +1,512 @@ + + + + + + + + + + + + +Table Addrbar · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Addrbar +

+
+

Table Addrbar extension of Bootstrap Table.

+
+ +

Every time when changing page, sorting and searching operation, it will change the query params of the address bar. And while page loading, this plugin will use the query params in the address bar to make the request.

+ +

Usage

+ +
<script src="extensions/addrbar/bootstrap-table-addrbar.js"></script>
+ +

Example

+ +

Addrbar

+ +

Options

+ +

addrbar

+ +
    +
  • +

    Attribute: data-addrbar

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to true if you want to use the addrbar feature.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

addrCustomParams

+ +
    +
  • +

    Attribute: data-addr-custom-params

    +
  • +
  • +

    Type: Function|Object

    +
  • +
  • +

    Detail:

    + +

    Define an object in which key and value pairs will be added as custom/additional get parameters to the URL, for example, custom filters. +The key is the GET parameter name, and the value is the value of the GET parameter.

    +
  • +
  • +

    Default: {}

    +
  • +
+ +

addrPrefix

+ +
    +
  • +

    Attribute: data-addr-prefix

    +
  • +
  • +

    Type: String

    +
  • +
  • +

    Detail:

    + +

    The prefix of the query params, it should be used for multi tables.

    + +

    While there are many tables in one page, and you want each of them can use this, then you may need the addrPrefix option.

    + +

    There are 5 parameters in default. They are

    + +
      +
    • page: page number
    • +
    • size: page size
    • +
    • order: asc/dsc
    • +
    • sort: the sort keyword
    • +
    • search: search keyword
    • +
    + +

    If you want each table can use this plugin, this parameters will make the tables bothering each other. The addrPrefix filed will get the tables a unique prefix to avoid.

    +
  • +
  • +

    Default: ''

    +
  • +
+ +

Note

+ +
    +
  • Only support server side pagination.
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/auto-refresh/index.html b/versions/1.23.5/docs/extensions/auto-refresh/index.html new file mode 100644 index 0000000000..752f88cd8b --- /dev/null +++ b/versions/1.23.5/docs/extensions/auto-refresh/index.html @@ -0,0 +1,553 @@ + + + + + + + + + + + + +Table Auto Refresh · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Auto Refresh +

+
+

Table Auto Refresh extension of Bootstrap Table.

+
+ +

Usage

+ +
<script src="extensions/auto-refresh/bootstrap-table-auto-refresh.js"></script>
+ +

Example

+ +

Auto Refresh

+ +

Options

+ +

autoRefresh

+ +
    +
  • +

    Attribute: data-auto-refresh

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to enable the auto refresh plugin.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

autoRefreshInterval

+ +
    +
  • +

    Attribute: data-auto-refresh-interval

    +
  • +
  • +

    type: Number

    +
  • +
  • +

    Detail:

    + +

    Time in seconds for the auto refresh to occur every.

    +
  • +
  • +

    Default: 60

    +
  • +
+ +

autoRefreshSilent

+ +
    +
  • +

    Attribute: data-auto-refresh-silent

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to auto refresh silently.

    +
  • +
  • +

    Default: true

    +
  • +
+ +

autoRefreshStatus

+ +
    +
  • +

    Attribute: data-auto-refresh-status

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to enable auto refresh. This is the state auto refresh will be in when the table loads. Clicking the button toggles this property. This is simply the default state of auto refresh as the user can always change it by clicking the button.

    +
  • +
  • +

    Default: true

    +
  • +
+ +

showAutoRefresh

+ +
    +
  • +

    Attribute: data-show-auto-refresh

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to hide the auto refresh button, for example, if you want to disallow deactivating the auto fresh by the user.

    +
  • +
  • +

    Default: true

    +
  • +
+ +

Icons

+ +
    +
  • autoRefresh: ‘fa-clock’
  • +
+ +

Localizations

+ +

formatAutoRefresh

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: function () { return "Auto Refresh" }

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/cookie/index.html b/versions/1.23.5/docs/extensions/cookie/index.html new file mode 100644 index 0000000000..268b938333 --- /dev/null +++ b/versions/1.23.5/docs/extensions/cookie/index.html @@ -0,0 +1,745 @@ + + + + + + + + + + + + +Table Cookie · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Cookie +

+
+

Table Cookie extension of Bootstrap Table.

+
+ +

Usage

+ +
<script src="extensions/cookie/bootstrap-table-cookie.js"></script>
+ +

Example

+ +

Cookie

+ +

Options

+ + + +
    +
  • +

    Attribute: data-cookie

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to save the state of a table (its paging position, ordering state, and records per page).

    +
  • +
  • +

    Default: false

    +
  • +
+ +

cookieCustomStorageDelete

+ +
    +
  • +

    Attribute: data-cookie-custom-storage-delete

    +
  • +
  • +

    type: function

    +
  • +
  • +

    parameter

    + +
      +
    • cookieName - The name of the value e.g. the search
    • +
    +
  • +
  • +

    Detail:

    + +

    This option allows deleting values with your custom function. +This option is only required if you use customStorage on the cookieStorage option!

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

cookieCustomStorageGet

+ +
    +
  • +

    Attribute: data-cookie-custom-storage-get

    +
  • +
  • +

    type: function

    +
  • +
  • +

    parameter

    + +
      +
    • cookieName - The name of the value e.g. the search
    • +
    +
  • +
  • +

    Detail:

    + +

    This option allows getting the saved value from your custom function. +This option is only required if you use customStorage on the cookieStorage option!

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

cookieCustomStorageSet

+ +
    +
  • +

    Attribute: data-cookie-custom-storage-set

    +
  • +
  • +

    type: function

    +
  • +
  • +

    parameter

    + +
      +
    • cookieName - The name of the value e.g. the search
    • +
    • value - The value that will be saved
    • +
    +
  • +
  • +

    Detail:

    + +

    This option allows saving values with your custom function. +This option is only required if you use customStorage on the cookieStorage option!

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

cookieDomain

+ +
    +
  • +

    Attribute: data-cookie-domain

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    This is the website domain, with the www. prefix removed.

    +
  • +
  • +

    Default: null

    +
  • +
+ +

cookieExpire

+ +
    +
  • +

    Attribute: data-cookie-expire

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    You must set this property if the cookie option is enabled to know when will expire the cookie. Must use this format: 'number{letter}' like '2h', in the letter position you can use: 's', 'mi', 'h', 'd', 'm', 'y', these means: 'seconds', 'minutes', 'hours', 'days', 'months', 'years'.

    +
  • +
  • +

    Default: 2h

    +
  • +
+ +

cookieIdTable

+ +
    +
  • +

    Attribute: data-cookie-id-table

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    You must set this property if the cookie property is enabled to set a unique cookie with an identifier for each table in your page or project. You must set this property because we need to create cookies with an identifier.

    +
  • +
  • +

    Default: ''

    +
  • +
+ +

cookiePath

+ +
    +
  • +

    Attribute: data-cookie-path

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    you can tell the browser what path the cookie belongs to. By default, the cookie belongs to the current page.

    +
  • +
  • +

    Default: null

    +
  • +
+ +

cookieSecure

+ +
    +
  • +

    Attribute: data-cookie-secure

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    This property keeps cookie communication limited to encrypted transmission, directing browsers to use cookies only via secure/encrypted connections.

    +
  • +
  • +

    Default: null

    +
  • +
+ +

cookieSameSite

+ +
    +
  • +

    Attribute: data-cookie-same-site

    +
  • +
  • +

    type: string

    +
  • +
  • +

    Detail:

    + +

    This property defines the value of the SameSite cookie attribute, for more information please check the SameSite Documentation.

    +
  • +
  • +

    Default: Lax

    +
  • +
+ +

cookieStorage

+ +
    +
  • +

    Attribute: data-cookie-storage

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set the storage that this extension will use. Use cookieStorage, localStorage, sessionStorage, or customStorage.

    + +

    Info for customStorage: +You have use cookieCustomStorageGet, cookieCustomStorageSet and cookieCustomStorageDelete.

    +
  • +
  • +

    Default: cookieStorage

    +
  • +
+ +

cookiesEnabled

+ +
    +
  • +

    Attribute: data-cookies-enabled

    +
  • +
  • +

    type: Array

    +
  • +
  • +

    Detail:

    + +

    Set this array with the table properties (sortOrder, sortName, sortPriority, pageNumber, pageList, hiddenColumns, searchText, filterControl) that you want to save

    +
  • +
  • +

    Default: ['bs.table.sortOrder', 'bs.table.sortName', 'bs.table.sortPriority', 'bs.table.pageNumber', 'bs.table.pageList', 'bs.table.hiddenColumns', 'bs.table.searchText', 'bs.table.filterControl', 'bs.table.cardView', 'bs.table.customView']

    +
  • +
+ +

Methods

+ +

deleteCookie

+ +
    +
  • +

    parameters: cookieName

    +
  • +
  • +

    Detail:

    + +

    Delete the saved cookie by cookie name.

    +
  • +
+ +

getCookies

+ +
    +
  • +

    parameters: undefined

    +
  • +
  • +

    Detail:

    + +

    Return the saved cookies.

    +
  • +
+ +

This plugin saves

+ +
    +
  • Page number
  • +
  • Page size (Rows per page)
  • +
  • Search text
  • +
  • Search filter control
  • +
  • Sort order
  • +
  • Sort name
  • +
  • Multiple Sort order
  • +
  • Hidden columns
  • +
  • Card view state
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/copy-rows/index.html b/versions/1.23.5/docs/extensions/copy-rows/index.html new file mode 100644 index 0000000000..29ca74c698 --- /dev/null +++ b/versions/1.23.5/docs/extensions/copy-rows/index.html @@ -0,0 +1,619 @@ + + + + + + + + + + + + +Table Copy Rows · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Copy Rows +

+
+

Table Copy Rows extension of Bootstrap Table.

+
+ +

This extension adds functionality for copying selected rows to the clipboard. Currently works on all desktop browsers except Safari.

+ +

Usage

+ +
<script src="extensions/copy-rows/bootstrap-table-copy-rows.js"></script>
+ +

Example

+ +

Copy Rows

+ +

Options

+ +

showCopyRows

+ +
    +
  • +

    Attribute: data-show-copy-rows

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show the copy button. This button copies the contents of the selected rows to the clipboard.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

copyDelimiter

+ +
    +
  • +

    Attribute: data-copy-delimiter

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    This delimiter will be inserted in between the column values when copying.

    +
  • +
  • +

    Default: ', '

    +
  • +
+ +

copyNewline

+ +
    +
  • +

    Attribute: data-copy-newline

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    This newline will be inserted in between the row values when copying.

    +
  • +
  • +

    Default: '\n'

    +
  • +
+ +

copyWithHidden

+ +
    +
  • +

    Attribute: data-copy-with-hidden

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to copy with hidden columns.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

copyRowsHandler

+ +
    +
  • +

    Attribute: `data-copy-rows-handler

    +
  • +
  • +

    type: Function

    +
  • +
  • +

    Detail:

    + +

    Before copying rows, handle the copying rows data. The parameters object contains:

    + +
      +
    • text: the copy rows data.
    • +
    +
  • +
  • +

    Default: function(text) { return text }

    +
  • +
+ +

Column options

+ +

ignoreCopy

+ +
    +
  • +

    Attribute: data-ignore-copy

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to ignore this column while copying.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

rawCopy

+ +
    +
  • +

    Attribute: data-raw-copy

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to copy the raw value instead the formatted one. +If no formatter is used, this option has no effect.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

Icons

+ +
    +
  • copy: ‘fa-copy’
  • +
+ +

Methods

+ +

copyColumnsToClipboard

+ +
    +
  • Copy the contents of the selected rows to the clipboard.
  • +
+ +

Localizations

+ +

formatCopyRows

+ +
    +
  • +

    type: Function

    +
  • +
  • +

    Default: function () { return "Copy Rows" }

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/custom-view/index.html b/versions/1.23.5/docs/extensions/custom-view/index.html new file mode 100644 index 0000000000..f1f7be9332 --- /dev/null +++ b/versions/1.23.5/docs/extensions/custom-view/index.html @@ -0,0 +1,628 @@ + + + + + + + + + + + + +Custom View · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Custom View +

+
+

Custom View extension of Bootstrap Table.

+
+ +

Description

+

This extension adds the ability to create a custom view to display the data.

+ +

Usage

+ +
<script src="extensions/custom-view/bootstrap-table-custom-view.js"></script>
+ +

Example

+ +

Custom View

+ +

Options

+ +

customView

+ +
    +
  • +

    Attribute: data-custom-view

    +
  • +
  • +

    Type: Function|Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to false to disable this extension. +Set to function to format your custom view.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

customViewDefaultView

+ +
    +
  • +

    Attribute: data-custom-view-default-view

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to true to show the custom view as the default view.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

showCustomView

+ +
    +
  • +

    Attribute: data-show-custom-view

    +
  • +
  • +

    Type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to true to show the custom view toggle button.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

Icons

+ +
    +
  • customViewOn: +
      +
    • Bootstrap3: glyphicon glyphicon-list
    • +
    • Bootstrap4: fa fa-eye
    • +
    • bootstrap5: ‘bi-eye’,
    • +
    • Semantic: fa fa-eye
    • +
    • Foundation: fa fa-eye
    • +
    • Bulma: fa fa-eye
    • +
    • Materialize: remove_red_eye
    • +
    +
  • +
  • customViewOff: +
      +
    • Bootstrap3: glyphicon glyphicon-thumbnails
    • +
    • Bootstrap4: fa fa-th
    • +
    • bootstrap5: ‘bi-grid’,
    • +
    • Semantic: fa fa-th
    • +
    • Foundation: fa fa-th
    • +
    • Bulma: fa fa-th
    • +
    • Materialize: grid_on
    • +
    +
  • +
+ +

Methods

+ +

toggleCustomView

+ +
    +
  • Toggles the view between the table and the custom view.
  • +
+ +

Events

+ +

onCustomViewPreBody

+ +
    +
  • +

    jQuery Event: custom-view-pre-body.bs.table

    +
  • +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    It fires before the custom view is rendered.

    +
  • +
+ +

onCustomViewPostBody

+ +
    +
  • +

    jQuery Event: custom-view-post-body.bs.table

    +
  • +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    It fires after the custom view is rendered.

    +
  • +
+ +

onToggleCustomView

+ +
    +
  • +

    It fires when the custom view is toggled.

    +
  • +
  • +

    jQuery Event: toggle-custom-view.bs.table

    +
  • +
  • +

    Parameter: state

    +
  • +
  • +

    Detail:

    + +

    It fires when the custom view is toggled:

    + +
      +
    • state: the new custom view state (true-> Custom view is enabled, false -> Custom view is disabled )
    • +
    +
  • +
+ +

Localizations

+ +

formatToggleCustomViewOn

+ +
    +
  • +

    type: Function

    +
  • +
  • +

    Default: function () { return "Show custom view" }

    +
  • +
+ +

formatToggleCustomViewOff

+ +
    +
  • +

    type: Function

    +
  • +
  • +

    Default: function () { return "Hide custom view" }

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/defer-url/index.html b/versions/1.23.5/docs/extensions/defer-url/index.html new file mode 100644 index 0000000000..529ceb462b --- /dev/null +++ b/versions/1.23.5/docs/extensions/defer-url/index.html @@ -0,0 +1,448 @@ + + + + + + + + + + + + +Table Defer URL · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + +
+ +
+ + +
+
+ + View on GitHub + +

+ Table Defer URL +

+
+

Table Defer URL extension of Bootstrap Table.

+
+ +

Usage

+ +
<script src="extensions/defer-url/bootstrap-table-defer-url.js"></script>
+ +

Example

+ +

Defer URL

+ +

Options

+ +

deferUrl

+ +
    +
  • +

    Attribute: data-defer-url

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    When using server-side processing, the default mode of operation for bootstrap-table is to simply throw away any data that currently exists in the table and make a request to the server to get the first page of data to display. This is fine for an empty table, but if you already have the first page of data displayed in plain HTML, it is a waste of resources. As such, you can use deferUrl instead of url to allow you to instruct bootstrap-table to not make that initial request, rather it will use the data already on the page.

    +
  • +
  • +

    Default: null

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/editable/index.html b/versions/1.23.5/docs/extensions/editable/index.html new file mode 100644 index 0000000000..3de294091e --- /dev/null +++ b/versions/1.23.5/docs/extensions/editable/index.html @@ -0,0 +1,565 @@ + + + + + + + + + + + + +Table Editable · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Editable +

+
+

Table Editable extension of Bootstrap Table.

+
+ +

Use Plugin: x-editable

+ +

Usage

+ +
<script src="extensions/editable/bootstrap-table-editable.js"></script>
+ +

Options

+ +

editable

+ +
    +
  • +

    Attribute: data-editable

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to disabled editable of all columns.

    +
  • +
  • +

    Default: true

    +
  • +
+ +

Column options

+ +

alwaysUseFormatter

+ +
    +
  • +

    Attribute: data-always-use-formatter

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to use always the formatter, even if the column was already edited.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

editable

+ +
    +
  • +

    Attribute: data-editable

    +
  • +
  • +

    type: Object | Function

    +
  • +
  • +

    Detail:

    + +

    Configuration of x-editable. Full list of options: http://vitalets.github.io/x-editable/docs.html#editable.

    + +

    If it is the type of Function, it is called with params: index, row, element for +each row of the table. It should return the Object of the x-editable configuration.

    + +

    All options can be defined via data-editable-* HTML attributes. Table-wide options are used for every column but can be overridden:

    +
  • +
+ +
  <table id="my_table_id"
+    data-url="data/url.json"
+    data-id-field="id"
+    data-editable-emptytext="Default empty text."
+    data-editable-url="/my/editable/update/path">
+    <thead>
+      <tr>
+        <th class="col-md-1" data-field="id" data-sortable="true" data-align="center">#</th>
+        <th class="col-md-4" data-field="name" data-editable="true">Name</th>
+        <th class="col-md-7" data-field="description" data-editable="true" data-editable-emptytext="Custom empty text.">Description</th>
+      </tr>
+    </thead>
+  </table>
+  
+ +

You can use noEditFormatter to disable the editable column, for example:

+ +
  {
+    editable: {
+      noEditFormatter (value, row, index) {
+        if (value === 'noEdit') {
+          return 'No Edit'
+        }
+        return false
+      }
+    }
+  }
+  
+ +
    +
  • Default: undefined
  • +
+ +

Events

+ +

onEditableInit(editable-init.bs.table)

+ +

Fired when all columns were initialized by the $().editable() method.

+ +

onEditableSave(editable-save.bs.table)

+ +

Fired when an editable cell is saved.

+ +

parameters: field, row, rowIndex, oldValue, $el

+ +

onEditableShown(editable-shown.bs.table)

+ +

Fired when an editable cell is opened for edits.

+ +

parameters: field, row, $el

+ +

onEditableHidden(editable-hidden.bs.table)

+ +

Fired when an editable cell is hidden/closed.

+ +

parameters: field, row, $el, reason

+ +

The existing problems

+ +
    +
  • The editable extension does not support searchable in the select type.
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/export/index.html b/versions/1.23.5/docs/extensions/export/index.html new file mode 100644 index 0000000000..0529b4a9a9 --- /dev/null +++ b/versions/1.23.5/docs/extensions/export/index.html @@ -0,0 +1,673 @@ + + + + + + + + + + + + +Table Export · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Export +

+
+

Table Export extension of Bootstrap Table.

+
+ +

Use Plugin: tableExport.jquery.plugin

+ +

This is an important link to check out as some file types may require extra steps.

+ +

Usage

+ +
<script src="extensions/export/bootstrap-table-export.js"></script>
+ +

Example

+ +

Export

+ +

Options

+ +

showExport

+ +
    +
  • +

    Attribute: data-show-export

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show the export button.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

exportDataType

+ +
    +
  • +

    Attribute: data-export-data-type

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Export data type, support: 'basic', 'all', 'selected'.

    +
  • +
  • +

    Default: basic

    +
  • +
+ +

exportFooter

+ +
    +
  • +

    Attribute: data-export-footer

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to export the table footer.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

exportOptions

+ +
    +
  • +

    Attribute: data-export-options

    +
  • +
  • +

    type: Object

    +
  • +
  • +

    Detail:

    + +

    Export options of tableExport.jquery.plugin

    + +

    exportOptions.fileName can be a string or a function, for example:

    + +
    exportOptions: {
    +  fileName: function () {
    +    return 'exportName'
    +  }
    +}
    +
    +
  • +
+ +

exportTypes

+ +
    +
  • +

    Attribute: data-export-types

    +
  • +
  • +

    type: Array

    +
  • +
  • +

    Detail:

    + +

    Export types, support types: ['json', 'xml', 'png', 'csv', 'txt', 'sql', 'doc', 'excel', 'xlsx', 'pdf'].

    +
  • +
  • +

    Default: ['json', 'xml', 'csv', 'txt', 'sql', 'excel']

    +
  • +
+ +

Icons

+ +
    +
  • export: 'glyphicon-export icon-share'
  • +
+ +

Column options

+ +

forceExport

+ +
    +
  • +

    Attribute: data-force-export

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to force export a column e.g. hidden columns.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

forceHide

+ +
    +
  • +

    Attribute: data-force-hide

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to force hide a column e.g. for icon columns.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

Events

+ +

onExportSaved

+ +
    +
  • +

    jQuery Event: export-saved.bs.table

    +
  • +
  • +

    Parameter: exportedRows

    +
  • +
  • +

    Detail:

    + +

    Fired when the data is exported, the parameter contain:

    + +
      +
    • exportedRows: The exported rows (depends on exportDataType)
    • +
    +
  • +
+ +

onExportStarted

+ +
    +
  • +

    jQuery Event: export-started.bs.table

    +
  • +
  • +

    Parameter: undefined

    +
  • +
  • +

    Detail:

    + +

    Fired before the data will be collected and exported.

    +
  • +
+ +

Methods

+ +

exportTable

+ +
    +
  • +

    parameters: options

    +
  • +
  • +

    Detail:

    + +

    Export table with custom options.

    +
  • +
+ +

Localizations

+ +

formatExport

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: function () { return "Export data" }

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/filter-control/index.html b/versions/1.23.5/docs/extensions/filter-control/index.html new file mode 100644 index 0000000000..6b8fd668cb --- /dev/null +++ b/versions/1.23.5/docs/extensions/filter-control/index.html @@ -0,0 +1,963 @@ + + + + + + + + + + + + +Table Filter Control · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Filter Control +

+
+

Table Filter Control extension of Bootstrap Table.

+
+ +

Usage

+ +
<link rel="stylesheet" type="text/css" href="extensions/filter-control/bootstrap-table-filter-control.css">
+<script src="extensions/filter-control/bootstrap-table-filter-control.js"></script>
+ +

Example

+ +

Filter Control

+ +

Options

+ +

filterControl

+ +
    +
  • +

    Attribute: data-filter-control

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to true to add an input or select into the column.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

filterControlVisible

+ +
    +
  • +

    Attribute: data-filter-control-visible

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to false to hide the filter controls.

    +
  • +
  • +

    Default: true

    +
  • +
+ +

alignmentSelectControlOptions

+ +
    +
  • +

    Attribute: data-alignment-select-control-options

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set the alignment of the select control options. Use left, right or auto.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

filterControlContainer

+ +
    +
  • +

    Attribute: data-filter-control-container

    +
  • +
  • +

    type: Selector

    +
  • +
  • +

    Detail:

    + +

    Set to e.g. #filter to allow custom input filter in an element with the id filter. +Each filter element (input or select) must have the following class bootstrap-table-filter-control-<FieldName> ( must be replaced with the defined [Field](https://bootstrap-table.com/docs/api/column-options/#field) name).

    +
  • +
  • +

    Default: false

    +
  • +
+ +

filterDataCollector

+ +
    +
  • +

    Attribute: data-filter-data-collector

    +
  • +
  • +

    type: Function

    +
  • +
  • +

    Detail:

    + +

    Collect data which will added to the select filter, to filter through e.g. labels that are comma separated and displayed with a formatter.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

filterControlMultipleSearch

+ +
    +
  • +

    Attribute: data-filter-control-multiple-search

    +
  • +
  • +

    type: bool

    +
  • +
  • +

    Detail:

    + +

    Set to true to allow searching multiple values at once. +The values will be split by a delimiter, see option filterControlMultipleSearchDelimiter.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

filterControlMultipleSearchDelimiter

+ +
    +
  • +

    Attribute: data-filter-control-multiple-search-delimiter

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Defines the delimiter which will be used to split the search values in the option filterControlMultipleSearchDelimiter.

    +
  • +
  • +

    Default: ,

    +
  • +
+ +

filterControlSearchClear

+ +
    +
  • +

    Attribute: data-filter-control-search-clear

    +
  • +
  • +

    type: bool

    +
  • +
  • +

    Detail:

    + +

    Set to true to clear the filter control filters using the table option showSearchButton.

    +
  • +
  • +

    Default: true

    +
  • +
+ +

searchOnEnterKey

+ +
    +
  • +

    Attribute: data-search-on-enter-key

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to true to fire the search action when the user presses the enter key.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

showFilterControlSwitch

+ +
    +
  • +

    Attribute: data-show-filter-control-switch

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to true to show the filter control switch button.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

sortSelectOptions

+ +
    +
  • +

    Attribute: data-sort-select-options

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to true to sort the option elements of the select control.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

Column options

+ +

filterControl

+ +
    +
  • +

    Attribute: data-filter-control

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set input: show an input control, select: show a select control, datepicker: show a html5 datepicker control.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

filterControlPlaceholder

+ +
    +
  • +

    attribute: data-filter-control-placeholder

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set this to show a placeholder only in the input filter control.

    +
  • +
  • +

    Default: ''

    +
  • +
+ +

filterCustomSearch

+ +
    +
  • +

    Attribute: data-filter-custom-search

    +
  • +
  • +

    type: function

    +
  • +
  • +

    Detail:

    + +

    The custom search function is executed instead of the built-in search function and takes four parameters:

    + +
      +
    • text: the search text.
    • +
    • value: the value of the column to compare.
    • +
    • field: the column field name.
    • +
    • data: the table data.
    • +
    + +

    Return false to filter out the current column/row. +Return true to not filter out the current column/row. +Return null to skip the custom search for the current value.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

filterData

+ +
    +
  • +

    Attribute: data-filter-data

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set custom select filter values, use +var:variable to load from a variable +obj:variable.key to load from an object +url:http://www.example.com/data.json to load from a remote JSON file +json:{key:data} to load from a JSON string. +func:functionName to load from a function.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

filterDatepickerOptions

+ +
    +
  • +

    Attribute: data-filter-datepicker-options

    +
  • +
  • +

    type: Object

    +
  • +
  • +

    Detail:

    + +

    If the datepicker option is set use this option to configure the datepicker with the native options. Use this way: data-filter-datepicker-options='{"max":value1, "min": value2, "step": value3}'. For more information visit this documentation

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

filterDefault

+ +
    +
  • +

    Attribute: data-filter-default

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set the default value of the filter.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

filterOrderBy

+ +
    +
  • +

    attribute: data-filter-order-by

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set this to order the options in a select control whether ascending ('asc'), descending ('desc') or in the order provided by the server ('server').

    +
  • +
  • +

    Default: 'asc'

    +
  • +
+ +

filterStartsWithSearch

+ +
    +
  • +

    attribute: data-filter-starts-with-search

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to true if you want to use the starts with search mode.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

filterStrictSearch

+ +
    +
  • +

    Attribute: data-filter-strict-search

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set to true if you want to use the strict search mode.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

Icons

+ +
    +
  • clear: 'glyphicon-trash icon-clear'
  • +
  • filterControlSwitchHide: 'glyphicon-zoom-out icon-zoom-out'
  • +
  • filterControlSwitchShow: 'glyphicon-zoom-in icon-zoom-in'
  • +
+ +

Events

+ +

onColumnSearch(column-search.bs.table)

+ +
    +
  • Fired when we are searching into the column data
  • +
+ +

onCreatedControls(created-controls.bs.table)

+ +
    +
  • Fired when we are searching into the column data
  • +
+ +

Methods

+ +

triggerSearch

+ +
    +
  • Trigger manually the search action
  • +
+ +

clearFilterControl

+ +
    +
  • Clear all the controls added by this plugin (similar to showSearchClearButton option).
  • +
+ +

toggleFilterControl

+ +
    +
  • Toggles the visibility (show/hide) of the filter controls.
  • +
+ +

Localizations

+ +

formatClearFilters

+ +
    +
  • +

    type: Function

    +
  • +
  • +

    Default: function () { return "Clear Filters" }

    +
  • +
+ +

formatFilterControlSwitch

+ +
    +
  • +

    type: Function

    +
  • +
  • +

    Default: function () { return "Hide/Show controls" }

    +
  • +
+ +

formatFilterControlSwitchHide

+ +
    +
  • +

    type: Function

    +
  • +
  • +

    Default: function () { return "Hide controls" }

    +
  • +
+ +

formatFilterControlSwitchShow

+ +
    +
  • +

    type: Function

    +
  • +
  • +

    Default: function () { return "Show controls" }

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/fixed-columns/index.html b/versions/1.23.5/docs/extensions/fixed-columns/index.html new file mode 100644 index 0000000000..19936aa45b --- /dev/null +++ b/versions/1.23.5/docs/extensions/fixed-columns/index.html @@ -0,0 +1,502 @@ + + + + + + + + + + + + +Table Fixed Columns · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Fixed Columns +

+
+

Table Fixed columns extension of Bootstrap Table.

+
+ +

Usage

+ +
<link rel="stylesheet" href="extensions/fixed-columns/bootstrap-table-fixed-columns.css">
+<script src="extensions/fixed-columns/bootstrap-table-fixed-columns.js"></script>
+ +

Example

+ +

Fixed Columns

+ +

Options

+ +

fixedColumns

+ +
    +
  • +

    attribute: data-fixed-columns

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to enable fixed columns.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

fixedNumber

+ +
    +
  • +

    attribute: data-fixed-number

    +
  • +
  • +

    type: Number

    +
  • +
  • +

    Detail:

    + +

    The number of the left fixed columns.

    +
  • +
  • +

    Default: 0

    +
  • +
+ +

fixedRightNumber

+ +
    +
  • +

    type: Number

    +
  • +
  • +

    Detail:

    + +

    The number of the right fixed columns.

    +
  • +
  • +

    Default: 0

    +
  • +
+ +

Note

+ +
    +
  • Not support detailView option.
  • +
  • Not support cardView option.
  • +
  • Not support showFooter option.
  • +
  • Need to import after sticky-header when using with sticky-header extension. For example:
  • +
+ +
<link rel="stylesheet" href="extensions/sticky-header/bootstrap-table-sticky-header.css">
+<link rel="stylesheet" href="extensions/fixed-columns/bootstrap-table-fixed-columns.css">
+<script src="extensions/sticky-header/bootstrap-table-sticky-header.js"></script>
+<script src="extensions/fixed-columns/bootstrap-table-fixed-columns.js"></script>
+ + +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/group-by-v2/index.html b/versions/1.23.5/docs/extensions/group-by-v2/index.html new file mode 100644 index 0000000000..b5462ee9aa --- /dev/null +++ b/versions/1.23.5/docs/extensions/group-by-v2/index.html @@ -0,0 +1,568 @@ + + + + + + + + + + + + +Table Group By v2 · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Group By v2 +

+
+

Table Group By v2 extension of Bootstrap Table.

+
+ +

Usage

+ +
<link rel="stylesheet" href="extensions/group-by-v2/bootstrap-table-group-by.css">
+<script src="extensions/group-by-v2/bootstrap-table-group-by.js"></script>
+ +

Example

+ +

Group By v2

+ +

Options

+ +

groupBy

+ +
    +
  • +

    attribute: data-group-by

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to group the data by the field passed.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

groupByField

+ +
    +
  • +

    attribute: data-group-by-field

    +
  • +
  • +

    type: String|Array

    +
  • +
  • +

    Detail:

    + +

    Set the field name(s) that you want to group the data. +For a single field use a String e.g. shape. +For a multiple fields use a Array e.g. ["shape", "color"].

    +
  • +
  • +

    Default: ''

    +
  • +
+ +

groupByFormatter

+ +
    +
  • +

    attribute: data-group-by-formatter

    +
  • +
  • +

    type: Function

    +
  • +
  • +

    Detail:

    + +

    The group row formatter function, takes three parameters:

    + +
      +
    • value: the group by value.
    • +
    • idx: the index of the group.
    • +
    • data: an array of rows in the group.
    • +
    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

groupByToggle

+ +
    +
  • +

    attribute: data-group-by-toggle

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to allow collapse/expand groups.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

groupByShowToggleIcon

+ +
    +
  • +

    attribute: data-group-by-show-toggle-icon

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show icons if the group is collapsed or expanded (see groupByToggle).

    +
  • +
  • +

    Default: false

    +
  • +
+ +

groupByCollapsedGroups

+ +
    +
  • +

    attribute: data-group-by-collapsed-groups

    +
  • +
  • +

    type: Array|Function

    +
  • +
  • +

    Detail:

    + +

    All group keys (which are in this array will be collapsed by default. +The value of this option can be:

    +
      +
    • A variable (array)
    • +
    • An Array string e.g. ["circle"]
    • +
    • A function (returns an array) which gets as parameters: +
        +
      • The group key
      • +
      • The entries of the group
      • +
      +
    • +
    +
  • +
  • +

    Default: []

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/i18n-enhance/index.html b/versions/1.23.5/docs/extensions/i18n-enhance/index.html new file mode 100644 index 0000000000..87b09501d3 --- /dev/null +++ b/versions/1.23.5/docs/extensions/i18n-enhance/index.html @@ -0,0 +1,454 @@ + + + + + + + + + + + + +Table i18n Enhance · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table i18n Enhance +

+
+

Table i18n Enhance extension of Bootstrap Table.

+
+ +

Usage

+ +
<script src="extensions/i18n-enhance/bootstrap-table-i18n-enhance.js"></script>
+ +

Example

+ +

i18n Enhance

+ +

Methods

+ +

changeLocale

+ +

Change table locale.

+ +
    +
  • Parameters: localeId
  • +
  • Example: $table.bootstrapTable('changeLocale', 'zh_TW')
  • +
+ +

changeTitle

+ +

Change the column’s title.

+ +
    +
  • Parameters: object, the object’s key is a column field, value is the new title.
  • +
  • Example:
  • +
+ +
$table.bootstrapTable('changeTitle', {
+  columnA.field: 'New column A title.',
+  columnB.field: 'New column B title.'
+})
+ + +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/key-events/index.html b/versions/1.23.5/docs/extensions/key-events/index.html new file mode 100644 index 0000000000..f30d8187b1 --- /dev/null +++ b/versions/1.23.5/docs/extensions/key-events/index.html @@ -0,0 +1,456 @@ + + + + + + + + + + + + +Table Key Events · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + +
+ +
+ + +
+
+ + View on GitHub + +

+ Table Key Events +

+
+

Table Key Events extension of Bootstrap Table.

+
+ +

Usage

+ +
<script src="extensions/key-events/bootstrap-table-key-events.js"></script>
+ +

Example

+ +

Key Events

+ +

Options

+ +

keyEvents

+ +
    +
  • +

    attribute: data-key-events

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    True to enable the key events. The key event list is:

    +
      +
    • s: It will be focused the search textbox if it is enabled.
    • +
    • r: It will refresh the table if the showRefresh option is enabled.
    • +
    • t: It will toggle the table view if the showToggle option is enabled.
    • +
    • p: It will fires the pagination switch if the showPaginationSwitch is enabled.
    • +
    • left: It will go to prev page if the pagination is true.
    • +
    • right: It will go to next page if the pagination is true.
    • +
    +
  • +
  • +

    Default: false

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/mobile/index.html b/versions/1.23.5/docs/extensions/mobile/index.html new file mode 100644 index 0000000000..119781e25c --- /dev/null +++ b/versions/1.23.5/docs/extensions/mobile/index.html @@ -0,0 +1,528 @@ + + + + + + + + + + + + +Table Mobile · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Mobile +

+
+

Table Mobile extension of Bootstrap Table.

+
+ +

Usage

+ +
<script src="extensions/mobile/bootstrap-table-mobile.js"></script>
+ +

Example

+ +

Mobile

+ +

Options

+ +

checkOnInit

+ +
    +
  • +

    attribute: data-check-on-init

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to check the window size on init.

    +
  • +
  • +

    Default: true

    +
  • +
+ +

columnsHidden

+ +
    +
  • +

    attribute: data-columns-hidden

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set the columns fields in this array to hide those columns in the card view mode. Use this way in data-* configuration: ` data-columns-hidden=”[‘name’, ‘description’]” or this way in the JavaScript configuration: columnsHidden = [‘name’, ‘description’]`.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

minHeight

+ +
    +
  • +

    attribute: data-min-height

    +
  • +
  • +

    type: Integer

    +
  • +
  • +

    Detail:

    + +

    Set the minimum height when the table will change the view.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

minWidth

+ +
    +
  • +

    attribute: data-min-width

    +
  • +
  • +

    type: Integer

    +
  • +
  • +

    Detail:

    + +

    Set the minimum width when the table will change the view.

    +
  • +
  • +

    Default: 562

    +
  • +
+ +

mobileResponsive

+ +
    +
  • +

    attribute: data-mobile-responsive

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to change the view between the card and table view depending on the width and height given.

    +
  • +
  • +

    Default: false

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/multiple-sort/index.html b/versions/1.23.5/docs/extensions/multiple-sort/index.html new file mode 100644 index 0000000000..2d01b26108 --- /dev/null +++ b/versions/1.23.5/docs/extensions/multiple-sort/index.html @@ -0,0 +1,754 @@ + + + + + + + + + + + + +Table Multiple Sort · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Multiple Sort +

+
+

Table Multiple Sort extension of Bootstrap Table.

+
+ +

Usage

+ +
<script src="extensions/multiple-sort/bootstrap-table-multiple-sort.js"></script>
+ +

Example

+ +

Multiple Sort

+ +

Options

+ +

showMultiSort

+ +
    +
  • +

    attribute: data-show-multi-sort

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to allow the multiple sort.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

showMultiSortButton

+ +
    +
  • +

    attribute: data-show-multi-sort-button

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set false to hide multiple sort UI button.

    +
  • +
  • +

    Default: true

    +
  • +
+ +

multiSortStrictSort

+ +
    +
  • +

    attribute: data-multi-sort-strict-sort

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to enable strict sorting. This means that strings will be compared and ordered using toLowerCase.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

sortPriority

+ +
    +
  • +

    attribute: data-sort-priority

    +
  • +
  • +

    type: Object

    +
  • +
  • +

    Detail:

    + +

    Set one or multiple sort priority. Example: ‘[{“sortName”: “forks_count”,”sortOrder”:”desc”},{“sortName”:”stargazers_count”,”sortOrder”:”desc”}]’

    +
  • +
  • +

    Default:null

    +
  • +
+ +

Icons

+
    +
  • sort: glyphicon-sort
  • +
  • plus: glyphicon-plus
  • +
  • minus: glyphicon-minus
  • +
+ +

methods

+ +

multipleSort

+ +
    +
  • +

    parameters: none

    +
  • +
  • +

    Detail:

    + +

    Force multiple sort table (usable after manual data changes).

    +
  • +
+ +

multiSort

+ +
    +
  • +

    parameters: sortPriority

    +
  • +
  • +

    Detail:

    + +

    Set one or multiple sort priority

    + +

    Example:

    +
    [
    +{
    +"sortName": "forks_count",
    +"sortOrder": "desc"
    +},
    +{
    +"sortName": "stargazers_count",
    +"sortOrder": "asc"
    +}
    +]
    +
    +
  • +
+ +

Localizations

+ +

formatAddLevel

+ +
    +
  • +

    Detail:

    + +

    Text of the add level button

    +
  • +
  • +

    Default: function () { return "Add Level" }

    +
  • +
+ +

formatCancel

+ +
    +
  • +

    Detail:

    + +

    Text of the delete level button

    +
  • +
  • +

    Default: function () { return "Cancel" }

    +
  • +
+ +

formatColumn

+ +
    +
  • +

    Detail:

    + +

    Text of Column header

    +
  • +
  • +

    Default: function () { return "Column" }

    +
  • +
+ +

formatDeleteLevel

+ +
    +
  • +

    Detail:

    + +

    Text of the delete level button

    +
  • +
  • +

    Default: function () { return "Delete Level" }

    +
  • +
+ +

formatDuplicateAlertTitle

+ +
    +
  • +

    Detail:

    + +

    Title of the duplicate alert

    +
  • +
  • +

    Default: function () { return "Duplicate(s) detected!" }

    +
  • +
+ +

formatDuplicateAlertDescription

+ +
    +
  • +

    Detail:

    + +

    Text of the duplicate alert

    +
  • +
  • +

    Default: function () { return "Please remove or change any duplicate column." }

    +
  • +
+ +

formatMultipleSort

+ +
    +
  • +

    Detail:

    + +

    Title of the advanced search modal

    +
  • +
  • +

    Default: function () { return "Multiple Sort" }

    +
  • +
+ +

formatOrder

+ +
    +
  • +

    Detail:

    + +

    Text of the delete level button

    +
  • +
  • +

    Default: function () { return "Order" }

    +
  • +
+ +

formatSort

+ +
    +
  • +

    Detail:

    + +

    Text of the delete level button

    +
  • +
  • +

    Default: function () { return "Sort" }

    +
  • +
+ +

formatSortBy

+ +
    +
  • +

    Detail:

    + +

    Text of the delete level button

    +
  • +
  • +

    Default: function () { return "Sort by" }

    +
  • +
+ +

formatSortOrders

+ +
    +
  • +

    Detail:

    + +

    Text of the sort orders

    +
  • +
  • +

    Default:

    +
      +
    • asc : function () { return "Ascending" }
    • +
    • desc : function () { return "Descending" }
    • +
    +
  • +
+ +

formatThenBy

+ +
    +
  • +

    Detail:

    + +

    Text of the delete level button

    +
  • +
  • +

    Default: function () { return "Then by" }

    +
  • +
+ +

Events

+ +

onMultipleSort(multiple-sort.bs.table)

+ +
    +
  • Fires when sorting with one or multiple Sort Priority.
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/page-jump-to/index.html b/versions/1.23.5/docs/extensions/page-jump-to/index.html new file mode 100644 index 0000000000..3a9cfa6f4f --- /dev/null +++ b/versions/1.23.5/docs/extensions/page-jump-to/index.html @@ -0,0 +1,487 @@ + + + + + + + + + + + + +Table Page Jump To · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Page Jump To +

+
+

Table Page Jump To the extension of Bootstrap Table.

+
+ +

Usage

+ +
<link rel="stylesheet" href="extensions/page-jump-to/bootstrap-table-jump-to.css"></style>
+<script src="extensions/page-jump-to/bootstrap-table-jump-to.js"></script>
+ +

Example

+ +

Page Jump To

+ +

Options

+ +

showJumpTo

+ +
    +
  • +

    attribute: data-show-jump-to

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to enable show ‘jump to page’. Can be defined via data-show-jump-to HTML attributes.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

showJumpToByPages

+ +
    +
  • +

    attribute: data-show-jump-to-by-pages

    +
  • +
  • +

    type: Number

    +
  • +
  • +

    Detail:

    + +

    Show ‘jump to page’ only if the total page is greater than or equal to the set value.

    +
  • +
  • +

    Default: 0

    +
  • +
+ +

Localizations

+ +

formatJumpTo

+ +
    +
  • +

    Parameter: undefined

    +
  • +
  • +

    Default: function () { return "GO" }

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/pipeline/index.html b/versions/1.23.5/docs/extensions/pipeline/index.html new file mode 100644 index 0000000000..cbaad9d409 --- /dev/null +++ b/versions/1.23.5/docs/extensions/pipeline/index.html @@ -0,0 +1,515 @@ + + + + + + + + + + + + +Table Pipeline · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Pipeline +

+
+

Table Pipeline extension of Bootstrap Table.

+
+ +

This plugin enables client-side data caching for server-side requests which will +eliminate the need to issue a new request every page change. This will allow +for a performance balance for a large data set between returning all data at once +(client-side paging) and a new server-side request (server-side paging).

+ +

There are two new options:

+
    +
  • usePipeline: enables this feature
  • +
  • pipelineSize: the size of each cache window
  • +
+ +

The size of the pipeline must be evenly divisible by the current page size. This is +assured by rounding up to the nearest evenly divisible value. For example, if +the pipeline size is 4990 and the current page size is 25, then the pipeline size will +be dynamically set to 5000.

+ +

The cache windows are computed based on the pipeline size and the total number of rows +returned by the server-side query. For example, with pipeline size 500 and total rows +1300, the cache windows will be:

+ +

[{‘lower’: 0, ‘upper’: 499}, {‘lower’: 500, ‘upper’: 999}, {‘lower’: 1000, ‘upper’: 1499}]

+ +

Using the limit (i.e. the pipelineSize) and offset parameters, the server-side request +MUST return only the data in the requested cache window AND the total number of rows. +To wit, the server-side code must use the offset and limit parameters to prepare the response +data.

+ +

On a page change, the new offset is checked if it is within the current cache window. If so, +the requested page data is returned from the cached data set. Otherwise, a new server-side +request will be issued for the new cache window.

+ +

The current cached data is only invalidated on these events:

+ +
    +
  • sorting
  • +
  • searching
  • +
  • page size change
  • +
  • page change moves into a new cache window
  • +
+ +

There are two new events:

+
    +
  • cached-data-hit.bs.table: issued when cached data is used on a page change
  • +
  • cached-data-reset.bs.table: issued when the cached data is invalidated and the new server-side request is issued
  • +
+ +

Usage

+ +
<script src="extensions/pipeline/bootstrap-table-pipeline.js"></script>
+ +

Usage

+ +

Example

+ +

Pipeline

+ +

Options

+ +

pipelineSize

+ +
    +
  • type: Number
  • +
  • description: Size of each cache window. Must be greater than 0.
  • +
  • default: 1000
  • +
+ +

usePipeline

+ +
    +
  • type: Boolean
  • +
  • description: Set true to enable pipelining
  • +
  • default: false
  • +
+ +

Events

+ +

onCachedDataHit(cached-data-hit.bs.table)

+ +
    +
  • Fires when paging can use the locally cached data.
  • +
+ +

onCachedDataReset(cached-data-reset.bs.table)

+ +
    +
  • Fires when the locally cached data needs to be reset (i.e. on sorting, searching, page size change or page out of the current cache window).
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/print/index.html b/versions/1.23.5/docs/extensions/print/index.html new file mode 100644 index 0000000000..fb89f5d948 --- /dev/null +++ b/versions/1.23.5/docs/extensions/print/index.html @@ -0,0 +1,687 @@ + + + + + + + + + + + + +Table Print · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Print +

+
+

Table Print extension of Bootstrap Table.

+
+ +

Adds a button to the toolbar to print the table in a predefined configurable format.

+ +

Usage

+ +
<script src="extensions/print/bootstrap-table-print.js"></script>
+ +

Example

+ +

Print

+ +

Options

+ +

showPrint

+ +
    +
  • +

    attribute: data-show-print

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to show the Print button on the toolbar.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

printAsFilteredAndSortedOnUI

+ +
    +
  • +

    attribute: data-print-as-filtered-and-sorted-on-ui

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to print table as sorted and filtered on UI. If true is set, explicit predefined print options for filtering and sorting (printFilter, printSortOrder, printSortColumn). They will be applied to data already filtered and sorted by UI controls. For printing data as filtered and sorted on UI - do not set these three options: printFilter, printSortOrder, printSortColumn.

    +
  • +
  • +

    Default: true

    +
  • +
+ +

printPageBuilder

+ +
    +
  • +

    attribute: data-print-page-builder

    +
  • +
  • +

    type: Function

    +
  • +
  • +

    Detail:

    + +

    Receive HTML <table> element as a string parameter, returns HTML string for printing. This option is used for styling and adding a header or footer.

    +
  • +
  • +

    Default:

    +
  • +
+ +
printPageBuilder: function(table, styles) {
+  return `
+    <html>
+    <head>
+    ${styles}
+    <style type="text/css" media="print">
+    @page {
+      size: auto;
+      margin: 25px 0 25px 0;
+    }
+    </style>
+    <style type="text/css" media="all">
+    table {
+      border-collapse: collapse;
+      font-size: 12px;
+    }
+    table, th, td {
+      border: 1px solid grey;
+    }
+    th, td {
+      text-align: center;
+      vertical-align: middle;
+    }
+    p {
+      font-weight: bold;
+      margin-left:20px;
+    }
+    table {
+      width: 94%;
+      margin-left: 3%;
+      margin-right: 3%;
+    }
+    div.bs-table-print {
+      text-align: center;
+    }
+    </style>
+    </head>
+    <title>Print Table</title>
+    <body>
+    <p>Printed on: ${new Date} </p>
+    <div class="bs-table-print">${table}</div>
+    </body>
+    </html>
+  `
+}
+ +

printSortColumn

+ +
    +
  • +

    attribute: data-print-sort-column

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set column field name to sort by for the printed table.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

printSortOrder

+ +
    +
  • +

    attribute: data-print-sort-order

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Valid values: ‘asc’, ‘desc’. Relevant only if printSortColumn is set.

    +
  • +
  • +

    Default: 'asc'

    +
  • +
+ +

printStyles

+ +
    +
  • +

    attribute: data-print-styles

    +
  • +
  • +

    type: Array

    +
  • +
  • +

    Detail:

    + +

    Add styles to the printed page, such as custom icons.

    +
  • +
  • +

    Default: []

    +
  • +
+ +

Icons

+ +
    +
  • print: 'fa-print'
  • +
+ +

Column options

+ +

printFilter

+ +
    +
  • +

    attribute: data-print-filter

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set the value to filter the printed data by this column.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

printFormatter

+ +
    +
  • +

    attribute: data-print-formatter

    +
  • +
  • +

    type: Function

    +
  • +
  • +

    Detail:

    + +

    A custom function(value, row, index) - returns a string. Formats the cell values for this column in the printed table. Function behavior is similar to the ‘formatter’ column option.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

printIgnore

+ +
    +
  • +

    attribute: data-print-ignore

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to hide this column on the printed page.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

Localizations

+ +

formatPrint

+ +
    +
  • +

    type: Function

    +
  • +
  • +

    Default: function () { return "Print" }

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/reorder-columns/index.html b/versions/1.23.5/docs/extensions/reorder-columns/index.html new file mode 100644 index 0000000000..d1a282272c --- /dev/null +++ b/versions/1.23.5/docs/extensions/reorder-columns/index.html @@ -0,0 +1,529 @@ + + + + + + + + + + + + +Table Reorder Columns · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Reorder Columns +

+
+

Table Reorder Columns extension of Bootstrap Table.

+
+ +

Dependence:

+ + +

Usage

+ +
<link rel="stylesheet" href="dragtable.css">
+<script src="jquery-ui.js"></script>
+<script src="jquery.dragtable.js"></script>
+<script src="extensions/reorder-columns/bootstrap-table-reorder-columns.js"></script>
+ +

Example

+ +

Reorder Columns

+ +

Options

+ +

reorderableColumns

+ +
    +
  • +

    attribute: data-reorderable-columns

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to allow the reorder feature.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

dragaccept

+ +
    +
  • +

    attribute: data-dragaccept

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Allow to drag only the rows that have the CSS class as an attribute.

    +
  • +
  • +

    Default: null

    +
  • +
+ +

maxMovingRows

+ +
    +
  • +

    attribute: data-max-moving-rows

    +
  • +
  • +

    type: Integer

    +
  • +
  • +

    Detail:

    + +

    Moving only the header. Recommended for very large tables (cells > 1000)

    +
  • +
  • +

    Default: 10

    +
  • +
+ +

Events

+ +

onReorderColumn(reorder-column.bs.table)

+ +

Fired when the column was dropped, receive as a parameter the new header fields order.

+ +

Methods

+ +

orderColumns

+ +
    +
  • +

    parameters: object e.g. {name: 0, price: 1}

    +
  • +
  • +

    Detail:

    + +

    Reorders the columns by the given object. +The Object key has to be the field and the value is the column index (starts with 0).

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/reorder-rows/index.html b/versions/1.23.5/docs/extensions/reorder-rows/index.html new file mode 100644 index 0000000000..6a306fb554 --- /dev/null +++ b/versions/1.23.5/docs/extensions/reorder-rows/index.html @@ -0,0 +1,660 @@ + + + + + + + + + + + + +Table Reorder Rows · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Reorder Rows +

+
+

Table Reorder Rows extension of Bootstrap Table.

+
+ +

Dependence: tablednd v0.9

+ +

if you want you can include the bootstrap-table-reorder-rows.css file to use the default dragClass.

+ +

Usage

+ +
<link rel="stylesheet" href="extensions/reorder-rows/bootstrap-table-reorder-rows.css">
+<script src=".../jquery.tablednd.js"></script>
+<script src="extensions/reorder-rows/bootstrap-table-reorder-rows.js"></script>
+ +

Example

+ +

Reorder Rows

+ +

Options

+ +

reorderableRows

+ +
    +
  • +

    attribute: data-reorderable-rows

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to allow the reorder feature.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

onAllowDrop

+ +
    +
  • +

    attribute: data-on-allow-drop

    +
  • +
  • +

    type: function

    +
  • +
  • +

    Detail:

    + +

    Pass a function that will be called as a row over another row. If the function returns true, allow dropping on that row, otherwise not. The function takes 4 parameters:

    +
      +
    • the dragged-row data
    • +
    • the data of the row under the cursor
    • +
    • the dragged row
    • +
    • the row under the cursor
    • +
    + +

    It returns a boolean: true allows the drop, false doesn’t allow it.

    +
  • +
  • +

    Default: null

    +
  • +
+ +

onDragStop

+ +
    +
  • +

    attribute: data-on-drag-stop

    +
  • +
  • +

    type: function

    +
  • +
  • +

    Detail:

    + +

    Pass a function that will be called when the user stops dragging regardless of if the rows have been rearranged. The function takes 3 parameters: the table, the row data and the row which the user was dragging.

    +
  • +
  • +

    Default: null

    +
  • +
+ +

onDragStyle

+ +
    +
  • +

    attribute: data-on-drag-style

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    This is the style that is assigned to the row during drag. There are limitations to the styles that can be associated with a row (such as you can’t assign a border well you can, but it won’t be displayed).

    +
  • +
  • +

    Default: null

    +
  • +
+ +

onDragClass

+ +
    +
  • +

    attribute: data-on-drag-class

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    This class is added for the duration of the drag and then removed when the row is dropped. It is more flexible than using onDragStyle since it can be inherited by the row cells and other content.

    +
  • +
  • +

    Default: reorder-rows-on-drag-class

    +
  • +
+ +

onDropStyle

+ +
    +
  • +

    attribute: data-on-drop-style

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    This is the style that is assigned to the row when it is dropped. As for onDragStyle, there are limitations to what you can do. Also, this replaces the original style, so again consider using onDragClass which is simply added and then removed on drop.

    +
  • +
  • +

    Default: null

    +
  • +
+ +

onReorderRowsDrag

+ +
    +
  • +

    attribute: data-on-reorder-rows-drag

    +
  • +
  • +

    type: Function

    +
  • +
  • +

    Detail:

    + +

    Pass a function that will be called when the user starts dragging. The function takes 1 parameter: the row which the user has started to drag.

    +
  • +
  • +

    Default: empty function

    +
  • +
+ +

onReorderRowsDrop

+ +
    +
  • +

    attribute: data-on-reorder-rows-drop

    +
  • +
  • +

    type: Function

    +
  • +
  • +

    Detail:

    + +

    Pass a function that will be called when the row is dropped. The function takes 1 parameter: the row that was dropped.

    +
  • +
  • +

    Default: empty function

    +
  • +
+ +

dragHandle

+ +
    +
  • +

    attribute: data-drag-handle

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    This is the cursor element.

    + +

    Note: This option is mainly used to adapt to the TableDnD plugin. Under no special circumstances, please do not modify the default value.

    +
  • +
  • +

    Default: >tbody>tr>td:not(.bs-checkbox)

    +
  • +
+ +

useRowAttrFunc

+ +
    +
  • +

    attribute: data-use-row-attr-func

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    This function must be used if your tr elements won’t have the id attribute. If your tr elements don’t have the id attribute this plugin doesn’t fire the onDrop event.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

Events

+ +

onReorderRow(reorder-row.bs.table)

+ +

Fired when the row was dropped, receives two parameters:

+
    +
  • The new table data
  • +
  • The dropped row
  • +
  • The row of the old position
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/resizable/index.html b/versions/1.23.5/docs/extensions/resizable/index.html new file mode 100644 index 0000000000..97bf1943f5 --- /dev/null +++ b/versions/1.23.5/docs/extensions/resizable/index.html @@ -0,0 +1,457 @@ + + + + + + + + + + + + +Table Resizable · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Resizable +

+
+

Table Resizable extension of Bootstrap Table.

+
+ +

Dependence: jquery-resizable-columns v0.2.3

+ +

Usage

+ +
<script src="extensions/resizable/bootstrap-table-resizable.js"></script>
+ +

Example

+ +

Resizable

+ +

Options

+ +

resizable

+ +
    +
  • +

    attribute: data-resizable

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to allow the resize in each column.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

Known issues

+ +
    +
  • This plugin does not work when the height is set.
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/sticky-header/index.html b/versions/1.23.5/docs/extensions/sticky-header/index.html new file mode 100644 index 0000000000..680c87e478 --- /dev/null +++ b/versions/1.23.5/docs/extensions/sticky-header/index.html @@ -0,0 +1,511 @@ + + + + + + + + + + + + +Table Sticky Header · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Sticky Header +

+
+

Table Sticky Header extension of Bootstrap Table.

+
+ +

This is an extension that provides a sticky header for the table when scrolling.

+ +

Usage

+ +
<link rel="stylesheet" href="extensions/sticky-header/bootstrap-table-sticky-header.css">
+<script src="extensions/sticky-header/bootstrap-table-sticky-header.js"></script>
+ +

Example

+ +

Sticky Header

+ +

Options

+ + + +
    +
  • +

    attribute: data-sticky-header

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to use a sticky header.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

stickyHeaderOffsetLeft

+ +
    +
  • +

    attribute: data-sticky-header-offset-left

    +
  • +
  • +

    type: Number

    +
  • +
  • +

    Detail:

    + +

    Set the left offset of the sticky header container. If the body padding left is 60px, this value would be 60.

    +
  • +
  • +

    Default: 0

    +
  • +
+ +

stickyHeaderOffsetRight

+ +
    +
  • +

    attribute: data-sticky-header-offset-right

    +
  • +
  • +

    type: Number

    +
  • +
  • +

    Detail:

    + +

    Set the right offset of the sticky header container. If the body padding right is 60px, this value would be 60.

    +
  • +
  • +

    Default: 0

    +
  • +
+ +

stickyHeaderOffsetY

+ +
    +
  • +

    attribute: data-sticky-header-offset-y

    +
  • +
  • +

    type: Number

    +
  • +
  • +

    Detail:

    + +

    Set the Y offset from the top of the window to pin the sticky header. If there is a fixed navigation bar with a height of 60px, this value would be 60.

    +
  • +
  • +

    Default: 0

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/toolbar/index.html b/versions/1.23.5/docs/extensions/toolbar/index.html new file mode 100644 index 0000000000..c4802fd526 --- /dev/null +++ b/versions/1.23.5/docs/extensions/toolbar/index.html @@ -0,0 +1,555 @@ + + + + + + + + + + + + +Table Toolbar · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Toolbar +

+
+

Table Toolbar extension of Bootstrap Table.

+
+ +

Usage

+ +
<script src="extensions/toolbar/bootstrap-table-toolbar.js"></script>
+ +

Example

+ +

Advanced Toolbar

+ +

Options

+ +

advancedSearch

+ +
    +
  • +

    attribute: data-advanced-search

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to allow the advanced search.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

actionForm

+ +
    +
  • +

    attribute: data-action-form

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set the action of the form (pop-up).

    +
  • +
  • +

    Default: ''

    +
  • +
+ +

idForm

+ +
    +
  • +

    attribute: data-id-form

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Must be set to know the id form.

    +
  • +
  • +

    Default: advancedSearch

    +
  • +
+ +

idTable

+ +
    +
  • +

    attribute: data-id-table

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set the id of the table to create the pop-up form. Required.

    +
  • +
  • +

    Default: ''

    +
  • +
+ +

Events

+ +

onColumnAdvancedSearch(column-advanced-search.bs.table)

+ +
    +
  • Fired when we are searching into the advanced search form.
  • +
+ +

Localizations

+ +

formatAdvancedCloseButton

+ +
    +
  • +

    Detail:

    + +

    Text of the close button

    +
  • +
  • +

    Default: function () { return "Close" }

    +
  • +
+ +

formatAdvancedSearch

+ +
    +
  • +

    Detail:

    + +

    Title of the advanced search modal

    +
  • +
  • +

    Default: function () { return "Advanced search" }

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/extensions/treegrid/index.html b/versions/1.23.5/docs/extensions/treegrid/index.html new file mode 100644 index 0000000000..398fbba62d --- /dev/null +++ b/versions/1.23.5/docs/extensions/treegrid/index.html @@ -0,0 +1,530 @@ + + + + + + + + + + + + +Table Treegrid · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Table Treegrid +

+
+

Table Treegrid extension of Bootstrap Table.

+
+ +

Dependence: jquery-treegrid v0.3.0

+ +

Usage

+ +
<script src="extensions/treegrid/bootstrap-table-treegrid.js"></script>
+ +

Example

+ +

Treegrid

+ +

Options

+ +

treeEnable

+ +
    +
  • +

    attribute: data-tree-enable

    +
  • +
  • +

    type: Boolean

    +
  • +
  • +

    Detail:

    + +

    Set true to enable the tree grid.

    +
  • +
  • +

    Default: false

    +
  • +
+ +

idField

+ +
    +
  • +

    attribute: data-id-field

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Overwrite the default idField to 'id'.

    +
  • +
  • +

    Default: 'id'

    +
  • +
+ +

parentIdField

+ +
    +
  • +

    attribute: data-parent-id-field

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set the parent id field.

    +
  • +
  • +

    Default: 'pid'

    +
  • +
+ +

treeShowField

+ +
    +
  • +

    attribute: data-tree-show-field

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set the treeShowField will auto enable the tree grid.

    +
  • +
  • +

    Default: ''

    +
  • +
+ +

rootParentId

+ +
    +
  • +

    attribute: data-root-parent-id

    +
  • +
  • +

    type: String

    +
  • +
  • +

    Detail:

    + +

    Set the root parent id.

    +
  • +
  • +

    Default: null

    +
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/faq/index.html b/versions/1.23.5/docs/faq/index.html new file mode 100644 index 0000000000..af5cd053ff --- /dev/null +++ b/versions/1.23.5/docs/faq/index.html @@ -0,0 +1,459 @@ + + + + + + + + + + + + +FAQ · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + +
+
+ + View on GitHub + +

+ FAQ +

+
+

Frequently Asked Questions.

+
+ +

When resizing the window, the table header does not adjust automatically, how to solve it?

+ +

When you set the height of the bootstrap table, the fixed header feature is automatically enabled, that is what causes the problem, you need to listen to the resize event of the window and use the resetView method to solve this problem, code example:

+ +
$(function () {
+  $('#tableId').bootstrapTable() // init via javascript
+
+  $(window).resize(function () {
+    $('#tableId').bootstrapTable('resetView')
+  })
+})
+
+ +
+ +

How to better merge cells?

+ +

For merged cells, when you do refresh, next page or switch columns to show, the merge cells will be unmerged. We can listen the events(on load success, on column switch, on page change and on search) to solve this problem, code example:

+ +
$table.on('load-success.bs.table column-switch.bs.table page-change.bs.table search.bs.table', function () {
+  $table.bootstrapTable('mergeCells', {...})
+})
+
+ +
+ +

Is event parameter put in the wrong order?

+ +

When you use like this:

+ +
$('#eventsTable').on('click-row.bs.table', function (event, row, $element) {
+
+})
+
+ +

the first parameter is always event: https://live.bootstrap-table.com/code/wenzhixin/46

+ +

and use onClickRow event:

+ +
onClickRow: function (row, $element) {
+
+}
+
+ +
+ +

How can I support the development of bootstrap-table?

+ +

All your ideas and feedback are very appreciated! Please feel free to open issues on GitHub or send me an email.

+ +

I’m also grateful for your donations: https://opencollective.com/bootstrap-table.

+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/getting-started/browsers-devices/index.html b/versions/1.23.5/docs/getting-started/browsers-devices/index.html new file mode 100644 index 0000000000..2ae09f3b75 --- /dev/null +++ b/versions/1.23.5/docs/getting-started/browsers-devices/index.html @@ -0,0 +1,438 @@ + + + + + + + + + + + + +Browsers and devices · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Browsers and devices +

+
+

Learn about the browsers and devices, from modern to old, that are supported by Bootstrap Table, including known quirks and bugs for each.

+
+ +

Supported browsers

+ +

Bootstrap Table supports the latest, stable releases of all major browsers and platforms. On Windows, we support Internet Explorer 10-11 / Microsoft Edge.

+ +

Alternative browsers which use the latest version of WebKit, Blink, or Gecko, whether directly or via the platform’s web view API, are not explicitly supported. However, Bootstrap Table should (in most cases) display and function correctly in these browsers. More specific support information is provided below.

+ +

You can find our supported range of browsers and their versions in our .browserslistrc file:

+ +
# https://github.com/browserslist/browserslist#readme
+
+>= 1%
+last 1 major version
+not dead
+Chrome >= 45
+Firefox >= 38
+Edge >= 12
+Explorer >= 10
+iOS >= 9
+Safari >= 9
+Android >= 4.4
+Opera >= 30
+
+ +

Because Bootstrap Table is designed for Bootstrap, we will try to be consistent with Bootstrap in browsers and devices compatibility. You can check out the browsers-devices of Bootstrap for more detail.

+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/getting-started/build-tools/index.html b/versions/1.23.5/docs/getting-started/build-tools/index.html new file mode 100644 index 0000000000..54ce75a990 --- /dev/null +++ b/versions/1.23.5/docs/getting-started/build-tools/index.html @@ -0,0 +1,479 @@ + + + + + + + + + + + + +Build tools · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Build tools +

+
+

Learn how to use Bootstrap Table’s included npm scripts to build our documentation, compile source code, and more.

+
+ +

Tooling setup

+ +

Bootstrap Table uses NPM scripts for its build system. Our package.json includes convenient methods for working with the framework, including linting code, compiling code, and more.

+ +

To use our build system and run our documentation locally, you’ll need a copy of Bootstrap Table’s source files and Node. Follow these steps, and you should be ready to rock:

+ +
    +
  1. Download and install Node.js, which we use to manage our dependencies.
  2. +
  3. Navigate to the root /bootstrap-table directory and run npm install to install our local dependencies listed in package.json.
  4. +
  5. Install Ruby, install Bundler with gem install bundler, and finally run bundle install. It will install all Ruby dependencies, such as Jekyll and plugins. +
      +
    • Windows users: Read this guide to get Jekyll up and running without problems.
    • +
    +
  6. +
+ +

When completed, you’ll be able to run the various commands provided from the command line.

+ +

Using NPM scripts

+ +

Our package.json includes the following commands and tasks:

+ + + + + + + + + + + + + + + + + + + + + + +
TaskDescription
npm run buildnpm run build creates the /dist directory with compiled files.
npm run lintLints CSS and JavaScript for /src directory.
npm run docsBuilds and lints CSS and JavaScript for docs. You can then run the documentation locally via npm run docs-serve.
+ +

Run npm run to see all the npm scripts.

+ +

Local documentation

+ +

Running our documentation locally requires the use of Jekyll, a decently flexible static site generator that provides us: basic includes, Markdown-based files, templates, and more. Here’s how to get it started:

+ +
    +
  1. Run through the tooling setup above to install Jekyll (the site builder) and other Ruby dependencies with bundle install.
  2. +
  3. From the root /bootstrap-table directory, run npm run docs-serve in the command line.
  4. +
  5. Open http://localhost:9001 in your browser, and voilà.
  6. +
+ +

Learn more about using Jekyll by reading its documentation.

+ +

Troubleshooting

+ +

If you encounter installing dependencies, uninstall all previous dependency versions (global and local). Then, rerun npm install.

+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/getting-started/contents/index.html b/versions/1.23.5/docs/getting-started/contents/index.html new file mode 100644 index 0000000000..a9f2d75c4d --- /dev/null +++ b/versions/1.23.5/docs/getting-started/contents/index.html @@ -0,0 +1,443 @@ + + + + + + + + + + + + +Contents · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Contents +

+
+

The Bootstrap Table source code download includes the precompiled CSS, JavaScript, locales, extensions and provides both compiled and minified variations, along with documentation.

+
+ +

Precompiled Bootstrap Table

+ +

More specifically, it includes the following and more:

+ +
bootstrap-table/
+└── dist/
+    ├── extensions/
+    ├── locale/
+    ├── bootstrap-table-locale-all.js
+    ├── bootstrap-table-locale-all.min.js
+    ├── bootstrap-table.css
+    ├── bootstrap-table.min.css
+    ├── bootstrap-table.js
+    └── bootstrap-table.min.js
+ +

The dist/ folder includes everything compiled and minified with src/. For ease of use, we also compile all locale files into one file bootstrap-table-locale-all.js.

+ +

Source Code

+ +
bootstrap-table/
+├── site/
+└── src/
+    ├── extensions/
+    ├── locale/
+    ├── bootstrap-table.css
+    └── bootstrap-table.js
+ +

The src/, locale/, and extensions/ are the source code for our CSS, JS. The site/ folder includes the source code for our documentation. Beyond that, any other included file supports packages, license information, and development.

+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/getting-started/download/index.html b/versions/1.23.5/docs/getting-started/download/index.html new file mode 100644 index 0000000000..5a6ae5ec7e --- /dev/null +++ b/versions/1.23.5/docs/getting-started/download/index.html @@ -0,0 +1,458 @@ + + + + + + + + + + + + +Download · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Download +

+
+

Download Bootstrap Table to get the compiled CSS and JavaScript, source code, or include it with your favorite package managers like npm, bowser, and more.

+
+ +

Source code

+ +

Source CSS, JavaScript, locales, and extensions, along with our docs.

+ +

Download source

+ +

Clone or fork via GitHub

+ +

Via GitHub

+ +

UNPKG

+ +

The folks over at UNPKG graciously provide CDN support for CSS and JavaScript of Bootstrap table. Just use these links.

+ +
<!-- Latest compiled and minified CSS -->
+<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.css">
+
+<!-- Latest compiled and minified JavaScript -->
+<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+<!-- Latest compiled and minified Locales -->
+<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/locale/bootstrap-table-zh-CN.min.js"></script>
+ +

Package managers

+ +

NPM

+ +

Install and manage Bootstrap table’s CSS, JavaScript, locales, and extensions using npm.

+ +
npm install bootstrap-table
+ +

bower

+ +

Install and manage Bootstrap table’s CSS, JavaScript, locales, and extensions using bower.

+ +
bower install bootstrap-table
+ + +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/getting-started/introduction/index.html b/versions/1.23.5/docs/getting-started/introduction/index.html new file mode 100644 index 0000000000..912965a63a --- /dev/null +++ b/versions/1.23.5/docs/getting-started/introduction/index.html @@ -0,0 +1,508 @@ + + + + + + + + + + + + +Introduction · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Introduction +

+
+

An overview of Bootstrap Table, how to download and use, basic templates, and more.

+
+ +

Quick Start

+ +

Looking to quickly add Bootstrap Table to your Bootstrap v5 project? Use CDN, provided for free by the folks at UNPKG. Using a package manager or need to download the source files? Head to the downloads page.

+ +

CSS

+ +

Copy-paste the stylesheet <link> into your <head> before all other stylesheets to load our CSS.

+ +
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.css">
+ +

JS

+ +

Place the following <script>s near the end of your pages, right before the closing </body> tag, to enable them. jQuery must come first, then Bootstrap.js, and then our JavaScript plugins.

+ +
<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+ +

Starter template

+ +

Be sure to have your pages set up with the latest design and development standards. That means using an HTML5 doctype and a viewport meta tag for proper responsive behaviors.

+ +

For Bootstrap v5, we use Bootstrap Icons as the default icons, so we need to import the Bootstrap Icons link.

+ +

Put it all together, and your pages should look like this:

+ +
<!doctype html>
+<html lang="en">
+  <head>
+    <!-- Required meta tags -->
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <title>Hello, Bootstrap Table!</title>
+
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.css">
+  </head>
+  <body>
+    <table data-toggle="table">
+      <thead>
+        <tr>
+          <th>Item ID</th>
+          <th>Item Name</th>
+          <th>Item Price</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td>1</td>
+          <td>Item 1</td>
+          <td>$1</td>
+        </tr>
+        <tr>
+          <td>2</td>
+          <td>Item 2</td>
+          <td>$2</td>
+        </tr>
+      </tbody>
+    </table>
+
+    <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+  </body>
+</html>
+ +

HTML5 doctype

+ +

Bootstrap Table requires the use of the HTML5 doctype. Without it, you’ll see some funky incomplete styling, but including it shouldn’t cause any considerable hiccups.

+ +
<!doctype html>
+<html lang="en">
+  ...
+</html>
+ +

Community

+ +

Stay up to date on the development of Bootstrap Table and reach out to the community with these helpful resources.

+ + + +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/getting-started/usage/index.html b/versions/1.23.5/docs/getting-started/usage/index.html new file mode 100644 index 0000000000..f2b8776638 --- /dev/null +++ b/versions/1.23.5/docs/getting-started/usage/index.html @@ -0,0 +1,531 @@ + + + + + + + + + + + + +Usage · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Usage +

+
+

The Bootstrap Table plugin displays data in a tabular format, via data attributes or JavaScript.

+
+ +

Via data attributes

+ +
<table data-toggle="table">
+  <thead>
+    <tr>
+      <th>Item ID</th>
+      <th>Item Name</th>
+      <th>Item Price</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>1</td>
+      <td>Item 1</td>
+      <td>$1</td>
+    </tr>
+    <tr>
+      <td>2</td>
+      <td>Item 2</td>
+      <td>$2</td>
+    </tr>
+  </tbody>
+</table>
+ +

We can also use remote URL data by setting data-url="data1.json" on a normal table.

+ +
<table
+  data-toggle="table"
+  data-url="data1.json">
+  <thead>
+    <tr>
+      <th data-field="id">Item ID</th>
+      <th data-field="name">Item Name</th>
+      <th data-field="price">Item Price</th>
+    </tr>
+  </thead>
+</table>
+ +

You can also add pagination, search, and sorting to a table like the following table.

+ +
<table
+  data-toggle="table"
+  data-url="data1.json"
+  data-pagination="true"
+  data-search="true">
+  <thead>
+    <tr>
+      <th data-sortable="true" data-field="id">Item ID</th>
+      <th data-field="name">Item Name</th>
+      <th data-field="price">Item Price</th>
+    </tr>
+  </thead>
+</table>
+ +

Via JavaScript

+ +

Call a bootstrap table with id table via JavaScript.

+ +
<table id="table"></table>
+ +
$('#table').bootstrapTable({
+  columns: [{
+    field: 'id',
+    title: 'Item ID'
+  }, {
+    field: 'name',
+    title: 'Item Name'
+  }, {
+    field: 'price',
+    title: 'Item Price'
+  }],
+  data: [{
+    id: 1,
+    name: 'Item 1',
+    price: '$1'
+  }, {
+    id: 2,
+    name: 'Item 2',
+    price: '$2'
+  }]
+})
+ +

We can also use remote URL data by setting url: 'data1.json'.

+ +
$('#table').bootstrapTable({
+  url: 'data1.json',
+  columns: [{
+    field: 'id',
+    title: 'Item ID'
+  }, {
+    field: 'name',
+    title: 'Item Name'
+  }, {
+    field: 'price',
+    title: 'Item Price'
+  }]
+})
+ +

You can also add pagination, search, and sorting to a table like the following table.

+ +
$('#table').bootstrapTable({
+  url: 'data1.json',
+  pagination: true,
+  search: true,
+  columns: [{
+    field: 'id',
+    title: 'Item ID'
+  }, {
+    field: 'name',
+    title: 'Item Name'
+  }, {
+    field: 'price',
+    title: 'Item Price'
+  }]
+})
+ + +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/index.html b/versions/1.23.5/docs/index.html new file mode 100644 index 0000000000..25349b64ef --- /dev/null +++ b/versions/1.23.5/docs/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/docs/online-editor/index.html b/versions/1.23.5/docs/online-editor/index.html new file mode 100644 index 0000000000..f9bd4a30f3 --- /dev/null +++ b/versions/1.23.5/docs/online-editor/index.html @@ -0,0 +1,518 @@ + + + + + + + + + + + + +Online Editor · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Online Editor +

+
+

Online Editor Explanation.

+
+ +

This page explains how to use our Online Editor.

+ +

The Online Editor should be used for each issue and pull request!

+ +

+ +

How to log in

+ +

The login is quite easy, just press the Sign in with GitHub button on the top right and login via GitHub.

+ +

Base functionality and page structure

+ +

Our online editor was designed to create easy examples/demos for the bootstrap-table.

+ +

The page is structured as follows:

+ +

Top Navbar

+ +

We have 5 buttons:

+ +
    +
  • Run: The Run button shows the current version of your example.
  • +
  • Save: The Save button saves your example. After you pressed save, the URL will be changed e.g. https://live.bootstrap-table.com/code/<username>/<ID>.
  • +
  • Libraries: This button will open a configuration page. On this page you can configure the environment of the example: +
      +
    • Bootstrap Table source: This option defines which source of the version (CDN or from GitHub as source) should be used. If you choose From GitHub src you can set a branch that will be used for the example. For Issues, you normally always use From Released CDN.
    • +
    • Release CDN version: Here you can choose the version of the bootstrap-table to create an example for older bootstrap-table versions.
    • +
    • Theme: Here you can choose between our supported themes e.g. to show an issue with a certain theme.
    • +
    • Extensions: If you explain to use an extension, you can select it here easily. This means you don’t have to include it yourself on the example!
    • +
    +
  • +
  • Load Examples: This option opens a page, here you can load existing examples (Its a “mirror” of our examples page).
  • +
  • Links: The last button just holds some links e.g. to our website, GitHub page, etc.
  • +
+ +

Left Side

+ +

You can write your examples. Including HTML, CSS and JavaScript (css and javascript needs a <style></style> and/or <script></script> tag!

+ +

The basic template is:

+
<!-- Includes custom css and js files -->
+<link rel="stylesheet" href="https://example.com/custom.css">
+<script src="https://example.com/custom.js"></script>
+
+<!-- Define custom style -->
+<style>
+</style>
+
+<!-- No need to write <html> and <body> tags -->
+<table id="table">
+</table>
+
+<script>
+  $(function () {
+    $('#table').bootstrapTable()
+  })
+</script>
+
+ +

Note: You need to put the initialization function in $(function () {}) to ensure that jquery and bootstrap-table have been loaded.

+ +

Right Side

+ +

You can see your running example (after pressing on the Run button).

+ +

You can also click the Result (Fullscreen) to toggle the fullscreen of the running example.

+ +

Workflow for Issues

+ +

Each issue should contain an example (created on the Online Editor) of the problem.

+ +
    +
  1. Open the online editor.
  2. +
  3. Go to the Libraries page and configure the environment of the example. +
      +
    • Version
    • +
    • Theme
    • +
    • Extensions
    • +
    +
  4. +
  5. Write down your example (or copy it from your local project).
  6. +
  7. Check if you can reproduce your issue on the example.
  8. +
  9. Save the example (press on the Save button) and copy the URL.
  10. +
  11. Open an issue with the URL to the example.
  12. +
+ +

(Maybe you also can use our Load Examples button to load an existing example, instead of point 2 and 3).

+ +

Workflow for Pull requests

+ +

The workflow for PR’s is quite similar to the workflow for Issues.

+ +

The only difference is that you have to choose your branch (The editor will use your code to create the example). For that, you have to open the Libraries page, select From GitHub src on the Bootstrap Table source option and write your branch name in the GitHub src branch input. +The syntax for the branch name is <username>:<branch>. You also can copy that string from the pull request page. +

+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/vuejs/browser/index.html b/versions/1.23.5/docs/vuejs/browser/index.html new file mode 100644 index 0000000000..76aa56cd1e --- /dev/null +++ b/versions/1.23.5/docs/vuejs/browser/index.html @@ -0,0 +1,622 @@ + + + + + + + + + + + + +Browser · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Browser +

+
+

Learn how to use Bootstrap Table Vue Component in your project using the browser.

+
+ +

VueJS JavaScript

+ +

In addition to the files that Quick Start mentions, you also need to include our vue component file.

+ +
<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table-vue.umd.js"></script>
+ +

Usage

+ +
<div id="app">
+  <bootstrap-table :columns="columns" :data="data" :options="options"></bootstrap-table>
+</div>
+
+<script>
+  const { createApp, ref } = Vue
+  const app = createApp({
+    setup () {
+      const columns = ref([
+        {
+          field: 'state',
+          checkbox: true
+        },
+        {
+          title: 'Item ID',
+          field: 'id'
+        },
+        {
+          field: 'name',
+          title: 'Item Name'
+        },
+        {
+          field: 'price',
+          title: 'Item Price'
+        },
+        {
+          field: 'action',
+          title: 'Actions',
+          align: 'center',
+          formatter () {
+            return '<a href="javascript:" class="like"><i class="fa fa-star"></i></a>'
+          },
+          events: {
+            'click .like' (e, value, row) {
+              alert(JSON.stringify(row))
+            }
+          }
+        }
+      ])
+      const data = ref([
+        {
+          id: 0,
+          name: 'Item 0',
+          price: '$0'
+        },
+        {
+          id: 1,
+          name: 'Item 1',
+          price: '$1'
+        },
+        {
+          id: 2,
+          name: 'Item 2',
+          price: '$2'
+        },
+        {
+          id: 3,
+          name: 'Item 3',
+          price: '$3'
+        },
+        {
+          id: 4,
+          name: 'Item 4',
+          price: '$4'
+        },
+        {
+          id: 5,
+          name: 'Item 5',
+          price: '$5'
+        }
+      ])
+      const options = ref({
+        search: true,
+        showColumns: true
+      })
+
+      return {
+        columns,
+        data,
+        options
+      }
+    }
+  })
+
+  app.component('BootstrapTable', BootstrapTable)
+  app.mount('#app')
+</script>
+ +

Starter template

+ +
<!doctype html>
+<html lang="en">
+  <head>
+    <!-- Required meta tags -->
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <title>Hello, Bootstrap Table!</title>
+
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.css">
+  </head>
+  <body>
+    <div id="app">
+      <bootstrap-table :columns="columns" :data="data" :options="options"></bootstrap-table>
+    </div>
+
+    <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table-vue.umd.js"></script>
+    <script>
+      const { createApp, ref } = Vue
+      const app = createApp({
+        setup () {
+          const columns = ref([
+            {
+              field: 'state',
+              checkbox: true
+            },
+            {
+              title: 'Item ID',
+              field: 'id'
+            },
+            {
+              field: 'name',
+              title: 'Item Name'
+            },
+            {
+              field: 'price',
+              title: 'Item Price'
+            },
+            {
+              field: 'action',
+              title: 'Actions',
+              align: 'center',
+              formatter () {
+                return '<a href="javascript:" class="like"><i class="fa fa-star"></i></a>'
+              },
+              events: {
+                'click .like' (e, value, row) {
+                  alert(JSON.stringify(row))
+                }
+              }
+            }
+          ])
+          const data = ref([
+            {
+              id: 0,
+              name: 'Item 0',
+              price: '$0'
+            },
+            {
+              id: 1,
+              name: 'Item 1',
+              price: '$1'
+            },
+            {
+              id: 2,
+              name: 'Item 2',
+              price: '$2'
+            },
+            {
+              id: 3,
+              name: 'Item 3',
+              price: '$3'
+            },
+            {
+              id: 4,
+              name: 'Item 4',
+              price: '$4'
+            },
+            {
+              id: 5,
+              name: 'Item 5',
+              price: '$5'
+            }
+          ])
+          const options = ref({
+            search: true,
+            showColumns: true
+          })
+
+          return {
+            columns,
+            data,
+            options
+          }
+        }
+      })
+
+      app.component('BootstrapTable', BootstrapTable)
+      app.mount('#app')
+    </script>
+  </body>
+</html>
+ + +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/vuejs/component/index.html b/versions/1.23.5/docs/vuejs/component/index.html new file mode 100644 index 0000000000..6540d6954d --- /dev/null +++ b/versions/1.23.5/docs/vuejs/component/index.html @@ -0,0 +1,498 @@ + + + + + + + + + + + + +Component · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Component +

+
+

The API of Bootstrap Table Vue Component.

+
+ +

Usage Example

+ +
<BootstrapTable
+  ref="table"
+  :columns="columns"
+  :data="data"
+  :options="options"
+  @on-post-body="onPostBody"
+/>
+ +

Props

+ +

columns

+ +
    +
  • +

    Type: Object

    +
  • +
  • +

    Detail:

    + +

    The column options of Bootstrap Table. This prop is required.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

data

+ +
    +
  • +

    Type: Array | Object

    +
  • +
  • +

    Detail:

    + +

    The data to be loaded.

    +
  • +
  • +

    Default: undefined

    +
  • +
+ +

options

+ +
    +
  • +

    Type: Object

    +
  • +
  • +

    Detail:

    + +

    The table options of Bootstrap Table.

    +
  • +
  • +

    Default: {}

    +
  • +
+ +

Events

+ +

The calling method syntax: @on-event="onEvent".

+ +

All events (without onAll) are defined in Events API.

+ +

Note: you need to convert event name to lowercase + hyphen format, for example: onClickRow should be on-click-row.

+ +

Methods

+ +

The calling method syntax: this.$refs.table.methodName(parameter).

+ +

Example: this.$refs.table.getOptions().

+ +

All methods are defined in Methods API.

+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/vuejs/introduction/index.html b/versions/1.23.5/docs/vuejs/introduction/index.html new file mode 100644 index 0000000000..c545dbe508 --- /dev/null +++ b/versions/1.23.5/docs/vuejs/introduction/index.html @@ -0,0 +1,457 @@ + + + + + + + + + + + + +Introduction · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Introduction +

+
+

An overview of Bootstrap Table Vue Component, how to install and what’s includes vue files.

+
+ +

We have a Bootstrap Table Component for Vue.js 3.0+, and it should be able to work with the full API, the full extensions and the full CSS frameworks.

+ +

Installation

+ +

Dependencies

+ + + +

NPM

+ +

Install and manage Bootstrap table’s CSS, JavaScript, locales, and extensions using npm.

+ +
npm install bootstrap-table
+ +

UNPKG

+ +

The folks over at UNPKG graciously provide CDN support for CSS and JavaScript of Bootstrap table. Just use these links.

+ +
https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5
+ +

Build Files

+ +

dist/ folder includes the following vue component files:

+ +
bootstrap-table/
+└── dist/
+    ├── bootstrap-table-vue.js
+    └── bootstrap-table-vue.umd.js
+ +
    +
  • bootstrap-table-vue.js: ES module builds are intended for use with modern bundlers like webpack or vitejs.
  • +
  • bootstrap-table-vue.umd.js UMD builds can be used directly in the browser via a <script> tag.
  • +
+ +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/docs/vuejs/webpack/index.html b/versions/1.23.5/docs/vuejs/webpack/index.html new file mode 100644 index 0000000000..886e9b5f40 --- /dev/null +++ b/versions/1.23.5/docs/vuejs/webpack/index.html @@ -0,0 +1,585 @@ + + + + + + + + + + + + +Webpack · Bootstrap Table + + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+ + + + + + +
+
+ + View on GitHub + +

+ Webpack +

+
+

Learn how to use Bootstrap Table Vue Component in your project using webpack.

+
+ +

Importing JavaScript

+ +

Import Bootstrap Table’s JavaScript by adding this line to your app’s entry point (usually index.js or app.js):

+ +
import 'bootstrap-table'
+ +

Of course, you can also import themes, locales or extensions you need:

+ +
// import theme
+import 'bootstrap-table/dist/themes/materialize/bootstrap-table-materialize.min.js'
+
+// import locale
+import 'bootstrap-table/dist/locale/bootstrap-table-zh-CN.min.js'
+
+// import extension and dependencies
+import 'tableexport.jquery.plugin'
+import 'bootstrap-table/dist/extensions/export/bootstrap-table-export.min.js'
+ +

By default, Bootstrap Table is dependent on jQuery, Bootstrap and Popper, these are defined as peerDependencies, this means that you will have to make sure to add both of them to your package.json using npm install --save jquery bootstrap popper.js.

+ +

Importing CSS

+ +

Import Bootstrap Table’s CSS by adding this line to your app’s entry point:

+ +
import 'bootstrap-table/dist/bootstrap-table.min.css'
+ +

Of course, you can also import themes or extensions you need:

+ +
// import theme
+import 'bootstrap-table/dist/themes/materialize/bootstrap-table-materialize.min.css'
+
+// import extension
+import 'bootstrap-table/dist/extensions/fixed-columns/bootstrap-table-fixed-columns.min.css'
+ +

Usage

+ +
<template>
+  <BootstrapTable
+    :columns="columns"
+    :data="data"
+    :options="options"
+  />
+</template>
+
+<script>
+import BootstrapTable from 'bootstrap-table/dist/bootstrap-table-vue.js'
+
+export default {
+  components: {
+    BootstrapTable
+  },
+  data () {
+    return {
+      columns: [
+        {
+          title: 'Item ID',
+          field: 'id'
+        },
+        {
+          field: 'name',
+          title: 'Item Name'
+        },
+        {
+          field: 'price',
+          title: 'Item Price'
+        }
+      ],
+      data: [
+        {
+          id: 1,
+          name: 'Item 1',
+          price: '$1'
+        }
+      ],
+      options: {
+        search: true,
+        showColumns: true
+      }
+    }
+  }
+}
+</script>
+ +

Starter template

+ +

There is an vue-starter example in bootstrap-table-example project.

+ +

plugins/jquery.js

+ +
import jQuery from 'jquery'
+window.jQuery = jQuery
+ +

plugins/table.js

+ +
import 'bootstrap/dist/css/bootstrap.min.css'
+import 'bootstrap-table/dist/bootstrap-table.min.css'
+
+import './jquery.js'
+import Vue from 'vue'
+import 'bootstrap'
+import 'bootstrap-table/dist/bootstrap-table.js'
+import BootstrapTable from 'bootstrap-table/dist/bootstrap-table-vue.esm.js'
+
+Vue.component('BootstrapTable', BootstrapTable)
+ +

main.js

+ +
import './plugins/table.js'
+ +

View.vue

+ +
<template>
+  <BootstrapTable :columns="columns" :data="data" :options="options"></BootstrapTable>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      columns: [
+        {
+          title: 'Item ID',
+          field: 'id'
+        },
+        {
+          field: 'name',
+          title: 'Item Name'
+        }, {
+          field: 'price',
+          title: 'Item Price'
+        }
+      ],
+      data: [
+        {
+          id: 1,
+          name: 'Item 1',
+          price: '$1'
+        },
+        {
+          id: 2,
+          name: 'Item 2',
+          price: '$2'
+        },
+        {
+          id: 3,
+          name: 'Item 3',
+          price: '$3'
+        },
+        {
+          id: 4,
+          name: 'Item 4',
+          price: '$4'
+        },
+        {
+          id: 5,
+          name: 'Item 5',
+          price: '$5'
+        }
+      ],
+      options: {
+        search: true,
+        showColumns: true
+      }
+    }
+  }
+}
+</script>
+ + +
+
+
+ + + + + + + + + + + + + + diff --git a/versions/1.23.5/documentation/index.html b/versions/1.23.5/documentation/index.html new file mode 100644 index 0000000000..548e5ede6a --- /dev/null +++ b/versions/1.23.5/documentation/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/es/documentation/index.html b/versions/1.23.5/es/documentation/index.html new file mode 100644 index 0000000000..548e5ede6a --- /dev/null +++ b/versions/1.23.5/es/documentation/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/es/faq/index.html b/versions/1.23.5/es/faq/index.html new file mode 100644 index 0000000000..dac708a7bd --- /dev/null +++ b/versions/1.23.5/es/faq/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/es/home/index.html b/versions/1.23.5/es/home/index.html new file mode 100644 index 0000000000..861f24f72f --- /dev/null +++ b/versions/1.23.5/es/home/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/es/index.html b/versions/1.23.5/es/index.html new file mode 100644 index 0000000000..861f24f72f --- /dev/null +++ b/versions/1.23.5/es/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/es/online-editor/index.html b/versions/1.23.5/es/online-editor/index.html new file mode 100644 index 0000000000..f8eac7251a --- /dev/null +++ b/versions/1.23.5/es/online-editor/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/faq/index.html b/versions/1.23.5/faq/index.html new file mode 100644 index 0000000000..dac708a7bd --- /dev/null +++ b/versions/1.23.5/faq/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/favicon.png b/versions/1.23.5/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..360551a5a5dd12e579d132f896461ba092cc7e58 GIT binary patch literal 61067 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 Ixa|1ozt0>44FCWD literal 0 HcmV?d00001 diff --git a/versions/1.23.5/getting-started/index.html b/versions/1.23.5/getting-started/index.html new file mode 100644 index 0000000000..25349b64ef --- /dev/null +++ b/versions/1.23.5/getting-started/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+
Click here if you are not redirected. + diff --git a/versions/1.23.5/home/index.html b/versions/1.23.5/home/index.html new file mode 100644 index 0000000000..861f24f72f --- /dev/null +++ b/versions/1.23.5/home/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/index.html b/versions/1.23.5/index.html new file mode 100644 index 0000000000..e1f8ea76c8 --- /dev/null +++ b/versions/1.23.5/index.html @@ -0,0 +1,352 @@ + + + + + + + + + + + + +Bootstrap Table · An extended table to the integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation) + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+
+
+
+ +
+
+

+ Bootstrap Table +

+

+ An extended table to the integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation) +

+ +

+ Currently1.23.5 +

+
+ +
+
+
+
+ +
+
+ +

+Installation

+

Include Bootstrap Table source CSS and JavaScript files via npm or yarn.

+ +
npm install bootstrap-table
+yarn add bootstrap-table
+ +
+ + Read installation docs + +
+ +
+ +

+CDN

+

When you only need to include Bootstrap Table’s compiled CSS or JS, use UNPKG.

+ +
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.css">
+<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+ +
+ + Explore the docs + +
+ +
+ +

+Examples

+

+ The examples of bootstrap table. +

+ +
+ + Browse Examples + +
+ + + +
+
+

Support the Team

+ +
+ Through contributions, donations, and sponsorship, you allow bootstrap-table to thrive. +
+
+ + +
+ + + + + +
+
+
+

Subscribe our News

+
+ +
+ +
+
+ + + +
+ + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + diff --git a/versions/1.23.5/news/index.html b/versions/1.23.5/news/index.html new file mode 100644 index 0000000000..3bf542c79e --- /dev/null +++ b/versions/1.23.5/news/index.html @@ -0,0 +1,1260 @@ + + + + + + + + + + + + +News · Bootstrap Table + + + + + + + + + + + + + + + + + Skip to main content + + + + + + + +
+
+

News

+

News and announcements for all things Bootstrap Table, including new releases.

+
+
+ +
+

Bootstrap Table 1.23.5

+ +

+ +

Bootstrap Table 1.23.4

+ +

+ +

Bootstrap Table 1.23.3

+ +

+ +

Bootstrap Table 1.23.2

+ +

+ +

Bootstrap Table 1.23.1

+ +

+ +

Bootstrap Table 1.23.0

+ +

+ +

Core

+ +
    +
  • New: Add support for vue3 instead of vue2.
  • +
  • Update: Fixed getData with formatted data bug when a column is missing.
  • +
  • Update: Fixed toggleColumn exception when the field does not exist.
  • +
  • Update: Fixed vue component init twice when options and columns both changed.
  • +
+ +

Extensions

+ +
    +
  • New(addrbar): Added addrCustomParams option for custom parameters.
  • +
  • New(filter-control): Added filterControlSearchClear option to stop clearing the filters when using showSearchButton option.
  • +
  • Update(filter-control): Fixed error with clear filters button when not enabled cookie extension.
  • +
  • Update(filter-control): Fixed bug with enabled cookie extension using localStorage.
  • +
  • Update(multiple-sort): Fixed not trigger event bug when using server-side pagination.
  • +
+ +

Bootstrap Table 1.22.6

+ +

+ +

Extensions

+ +
    +
  • Update(cookie): Fixed cookie does not work bug with pagination ALL list.
  • +
  • Update(editable): Fixed the formatter function does not include the field parameter bug.
  • +
  • Update(toolbar): Fixed toolbar display bug when using an HTML title.
  • +
  • Update(toolbar): Fixed toolbar does not update bug when column visible updated.
  • +
  • Update(toolbar): Fixed toolbar does not update bug when the locale is changed.
  • +
+ +

Bootstrap Table 1.22.5

+ +

+ +

Core

+ +
    +
  • New: Added sl-SI locales.
  • +
  • New: Added support for HTML to the updateColumnTitle method.
  • +
  • Update: Fixed the getRowByUniqueId bug when uniqueId is of mixed data formats.
  • +
  • Update: Fixed not triggering sort event bug using server-side pagination.
  • +
  • Update: Fixed custom iconPrefix and icons bugs.
  • +
  • Update: Fixed virtual scroll cannot work bug in modal.
  • +
+ +

Extensions

+ +
    +
  • Update(multiple-sort): Fixed the duplicated ID bug in the multiple-sort extension.
  • +
+ +

Bootstrap Table 1.22.4

+ +

+ +

Core

+ +
    +
  • New: Added paginationLoadMore option.
  • +
  • Update: Fixed change visibility of multiple headers with the same index.
  • +
  • Update: Fixed footer height bug when setting table-sm.
  • +
  • Update: Fixed the locale not changed bug using the refreshOptions method.
  • +
  • Update: Fixed custom iconPrefix and icons bugs.
  • +
  • Update: Updated vi-VN, zh-CN and zh-TW locales.
  • +
+ +

Extensions

+ +
    +
  • New(copy-rows): Added copyRowsHandler option to handle the copy rows data.
  • +
  • New(print): Added printStyles option.
  • +
  • Update(export): Updated the trigger timing for export-started.
  • +
  • Update(multiple-sort): Fixed the missing parameters error of the sorter function.
  • +
  • Update(pipeline): Fixed loading message not display bug.
  • +
+ +

Bootstrap Table 1.22.3

+ +

+ +

Core

+ +
    +
  • New: Added fixedScroll option.
  • +
  • New: Added support for setting icons automatically by iconsPrefix.
  • +
  • Update: Fixed search bug when the field has . character.
  • +
  • Update: Updated tr-TR, es-ES, pt-BR and pt-PT locales.
  • +
+ +

Extensions

+ +
    +
  • New(addrbar): Fixed addrbar bug when using sortReset option.
  • +
  • Update(jump-to): Fixed page jump to bug when using both pagination display.
  • +
  • Update(print): Fixed print bug when field is not set.
  • +
+ +

Bootstrap Table 1.22.2

+ +

+ +

Core

+ +
    +
  • New: Added footerStyle column option.
  • +
  • Update: Fixed empty style in header and footer bug.
  • +
  • Update: Fixed the trigger order of sort event.
  • +
  • Update: Updated ar-SA locale.
  • +
+ +

Extensions

+ +
    +
  • New(cookie): Added cookie support for custom view extension.
  • +
  • Update(cookie): Fixed cookie bug when using cardView option.
  • +
  • Update(cookie): Fixed cookie bug with column switchable.
  • +
  • Update(editable): Fixed export-saved event error when exportDataType is all.
  • +
  • Update(filter-control): Fixed searchAccentNeutralise option not work.
  • +
  • Update(filter-control): Fixed filterOrderBy not work bug for select.
  • +
  • Update(group-by): Fixed group by bug when using singleSelect option.
  • +
  • Update(reorder-rows): Fixed reorder bug when using pagination.
  • +
+ +

Documentation

+ +
    +
  • Update: Improved the parameter of updateCellByUniqueId method.
  • +
  • Update: Improved the print docs.
  • +
+ +

Bootstrap Table 1.22.1

+ +

+ +

Core

+ +
    +
  • Update: Fixed maximum call stack size exceeded error.
  • +
  • Update: Updated ca-ES locale.
  • +
+ +

Bootstrap Table 1.22.0

+ +

+ +

Core

+ +
    +
  • New: Added sortBy method.
  • +
  • New: Added switchableLabel column option.
  • +
  • New: Added support for class attribute in toolbar buttons.
  • +
  • Update: Removed title from columns button.
  • +
+ +

Extensions

+ +
    +
  • Update(addrbar): Fixed clear search bug when clicking clearSearch button.
  • +
  • Update(filter-control): Fixed pagination server side not working bug.
  • +
+ +

Bootstrap Table 1.21.4

+ +

+ +

Core

+ +
    +
  • New: Added searchable table option to enable sending searchable (columns) parameters.
  • +
  • Update: Fixed Maximum call stack size exceeded error.
  • +
  • Update: Fixed getData bug with hidden rows.
  • +
  • Update: Added support for select form to the searchSelector option.
  • +
+ +

Extensions

+ +
    +
  • Update(filter-control): Fixed inputs losing their content when using nested attributes.
  • +
  • Update(reorder-rows): Fixed reorder row bug when side-pagination is server.
  • +
+ +

Bootstrap Table 1.21.3

+ +

+ +

Core

+ +
    +
  • New: Added escapeTitle table option.
  • +
  • New: Added Aria Label to the search input for screen readers.
  • +
  • New: Persist data attributes for the header(th).
  • +
  • Update: Fixed wrong condition for searching with server-side pagination.
  • +
  • Update: Fixed overwriting the filterOptions after rebuild.
  • +
  • Update: Fixed apostrophe issue when table via html.
  • +
  • Update: Updated extend util instead of $.extend.
  • +
  • Update: Updated Constructor.EVENTS to events.
  • +
  • Update: Updated packages to the latest version.
  • +
+ +

Extensions

+ +
    +
  • Update(cookie): Fixed issue with hidden and radio/checkbox columns.
  • +
  • Update(export): Fixed exportTypes option not working bug.
  • +
  • Update(filter-control): Fixed selector scope issues with multiple tables.
  • +
  • Update(filter-control): Fixed filtering values issue of select with html value.
  • +
  • Update(reorder-columns): Fixed same internal function name with reorder-rows.
  • +
  • Update(treegrid): Fixed treegrid not working when id is text.
  • +
+ +

Bootstrap Table 1.21.2

+ +

+ +

Core

+ +
    +
  • New: Added sortResetPage option to reset the page number when sorting.
  • +
  • Update: Fixed overwrite default option bug.
  • +
  • Update: Updated es-ES, es-CR locale.
  • +
  • Update: Improved scss style and lint.
  • +
  • Update: Used scss vars for sorting background image URLs.
  • +
+ +

Extensions

+ +
    +
  • New(custom-view): Added onToggleCustomView event.
  • +
  • Update(cookie): Fixed cookie name compare bug on using cookiesEnabled option.
  • +
  • Update(custom-view): Fixed showCustomView option cannot work.
  • +
  • Update(filter-control): Fixed bug while using a select filter and set searchFormatter to false.
  • +
  • Update(filter-control): Fixed missing class when specifying iconSize.
  • +
  • Update(reorder-rows): Updated default value to reorder-rows-on-drag-class of onDragClass option.
  • +
+ +

Bootstrap Table 1.21.1

+ +

+ +

Core

+ +
    +
  • Update: Improved updateCell to update one HTML cell only.
  • +
  • Update: Updated fr-FR locale.
  • +
  • Update: Added missing locales for aria-label.
  • +
+ +

Extensions

+ +
    +
  • Update(export): Added missing locales for aria-label.
  • +
+ +

Bootstrap Table 1.21.0

+ +

+ +

Core

+ +
    +
  • New: Added sortEmptyLast option to allow sorting empty data.
  • +
  • Update: Fixed bug on nested search with null child.
  • +
  • Update: Fixed detail view with filter click error.
  • +
  • Update: Fixed header does not center correctly for the sortable column.
  • +
  • Update: Fixed regexpCompare bug when filtering columns.
  • +
  • Update: Fixed showToggle title display error.
  • +
  • Update: Fixed remove and removeByUniqueId using object param bug.
  • +
  • Update: Fixed searchHighlight bug while using searchAccentNeutralise.
  • +
  • Update: Fixed missing sort for customSearch option.
  • +
  • Update: Removed duplicated escaping of the column value.
  • +
  • Update: Updated uk-UA locale.
  • +
+ +

Extensions

+ +
    +
  • New(cookie): : Added hiddenColumns cookie to prevent issues with new added columns.
  • +
  • New(editable): Added field param to noEditFormatter option.
  • +
  • New(export): Added onExportStarted event.
  • +
  • New(filter-control): Added accent normalization check.
  • +
  • New(filter-control): Added filterControlMultipleSearch and filterControlMultipleSearchDelimiter options.
  • +
  • Update(custom-by): Fixed the custom view attributes.
  • +
  • Update(group-by): Fixed not handle complex objects bug.
  • +
  • Update(filter-control): Fixed select values not clear bug after search.
  • +
  • Update(filter-control): Fixed the select sorting error.
  • +
  • Update(filter-control): Fixed wrong selector for caching values with multiple tables.
  • +
  • Update(filter-control): Fixed the filterDefault option bug as filter if multiple filters exists.
  • +
  • Update(filter-control): Fixed filter control special char.
  • +
  • Update(filter-control): Updated default value to false of filterStrictSearch.
  • +
  • Update(filter-control): Supported not visible columns when using filterControlContainer option.
  • +
  • Update(multiple-sort): Fixed showMultiSortButton option bug.
  • +
  • Update(print): Fixed not handle complex objects bug.
  • +
  • Update(print): Removed switched-off columns from printed table.
  • +
+ +

Bootstrap Table 1.20.2

+ +

+ +

Core

+ +
    +
  • Update: Fixed small memory leak.
  • +
  • Update: Fixed the detail view bug with the td instead of icon.
  • +
+ +

Extensions

+ +
    +
  • Update(export): Fixed XSS vulnerability bug by onCellHtmlData.
  • +
  • Update(export): Fixed export footer bug without setting height.
  • +
  • Update(filter-control): Fixed the comparison of dates when using the datepicker.
  • +
+ +

Bootstrap Table 1.20.1

+ +

+ +

Core

+ +
    +
  • Update: Fixed toggle column bug with complex headers.
  • +
  • Update: Fixed icons option cannot work bug when it’s a string.
  • +
  • Update: Updated TypeScript definitions.
  • +
+ +

Extensions

+ +
    +
  • Update(cookie): Fixed cookie extension error with multiple-sort.
  • +
  • Update(export): Fixed the exportOptions option cannot support the data attribute.
  • +
  • Update(reorder-rows): Fixed reorder-rows cannot work because of missing default functions.
  • +
+ +

Bootstrap Table 1.20.0

+ +

+ +

Core

+ +
    +
  • New: Used bootstrap5 as the default theme.
  • +
  • New: Added column-switch-all event of toggle all columns.
  • +
  • New: Added hi-IN and lb-LU locales.
  • +
  • Update: Fixed the toolbar cannot refresh search bug.
  • +
  • Update: Fixed the card view align style bug.
  • +
  • Update: Fixed custom search filter bug if the value is Object.
  • +
  • Update: Fixed table border displays bug when setting height.
  • +
  • Update: Fixed error when the column events are undefined.
  • +
  • Update: Fixed escape column option doesn’t override table option bug.
  • +
  • Update: Fixed toggle all columns error when column switchable is false.
  • +
  • Update: Fixed check if the column is visible on card view.
  • +
  • Update: Fixed hide loading bug when canceling the request.
  • +
  • Update: Fixed default value of clickToSelect column option.
  • +
  • Update: Fixed onVirtualScroll not define default method.
  • +
  • Update: Updated cs-CZ, ko-KR, nl-NL, nl-BE, bg-BG, fr-LU locales.
  • +
+ +

Extensions

+ +
    +
  • New(filter-control): New version of filter-control with new features.
  • +
  • New(reorder-rows):: Added onAllowDrop and onDragStop options.
  • +
  • Update(cookie): Fixed sortName and sortOrder bug with cookie.
  • +
  • Update(cookie): Fixed the toggle column bug with the cookie.
  • +
  • Update(export): Fixed selector error if only one export type is defined.
  • +
  • Update(filter-control): Fixed new input class form-select of bootstrap 5.
  • +
  • Update(multiple-sort): Fixed the modal cannot close after sorting.
  • +
  • Update(print): Fixed missing print button for bootstrap 5.
  • +
  • Update(print): Fixed printPageBuilder option cannot define in html attribute.
  • +
  • Update(toolbar): Fixed toolbar extension modal bug with bootstrap 5.
  • +
+ +

Bootstrap Table 1.19.1

+ +

+ +

Core

+ +
    +
  • Update: Fixed the CVE security problem.
  • +
  • Update: Fixed cannot search for special characters when using searchHighlight.
  • +
+ +

Extensions

+ +
    +
  • Update(auto-refresh): Updated the showAutoRefresh option as default.
  • +
  • Update(export): Fixed export with only one export type bug.
  • +
  • Update(filter-control): Fixed filter-control cannot work bug.
  • +
  • Update(filter-control): Prevent duplicated elements for filter-control.
  • +
+ +

Bootstrap Table 1.19.0

+ +

+ +

Core

+ +
    +
  • New: Added onlyCurrentPage param for checkBy/uncheckBy methods.
  • +
  • New: Used bootstrap icons as default icons for bootstrap v5.
  • +
  • New: Added regexSearch option which allows to filter the table using regex.
  • +
  • New: Added support for allow importing stylesheets.
  • +
  • New: Added toggle-pagination event.
  • +
  • New: Added virtual-scroll event.
  • +
  • Update: Fixed vue component cannot work.
  • +
  • Update: Fixed infinite loop error with wrong server-side pagination metadata.
  • +
  • Update: Improved the behavior of ajax abort.
  • +
  • Update: Fixed click bug when paginationLoop is false.
  • +
  • Update: Fixed the highlighting bug when using radio/checkboxes.
  • +
  • Update: Fixed width bug caused by loading css.
  • +
  • Update: Removed the input-group-append class for bootstrap v5.
  • +
  • Update: Fixed duplicate definition id bug.
  • +
  • Update: Fixed the comparison of search inputs.
  • +
  • Update: Fixed broken page-list selector.
  • +
  • Update: Fixed overwrite custom locale function bug.
  • +
  • Update: Fixed bug with server side pagination and the page size all.
  • +
  • Update: Fixed all checkbox not auto check after pagination changed.
  • +
  • Update: Updated the es-MX locate.
  • +
+ +

Extensions

+ +
    +
  • New(cookie): Added Multiple Sort order stored in cookie extension.
  • +
  • New(cookie): Added Card view state stored in cookie extension.
  • +
  • New(copy): Added ignoreCopy column option to prevent copying the column data.
  • +
  • New(copy): Added rawCopy column option to copy the raw value instead of the formatted value.
  • +
  • Update(cookie): Fixed switchable column bug with the cookie extension.
  • +
  • Update(export): Fixed the export dropdown cannot be closed bug.
  • +
  • Update(filter-control): Updated filterMultipleSelectOptions to filterControlMultipleSelectOptions option.
  • +
  • Update(filter-control): Fixed bug with cookie deletion of none filter cookies.
  • +
  • Update(filter-control): Fixed bug when using the load method.
  • +
  • Update(group-by): Fixed overwriting the column classes bug on group collapsed rows.
  • +
  • Update(multiple-sort): Fixed hide/show column error with no sortPriority defined.
  • +
  • Update(page-jump-to): Fixed jump-to display bug in bootstrap v3.
  • +
  • Update(print): Fixed print formatter bug.
  • +
  • Update(reorder-rows): Fixed reorder-rows not work property.
  • +
  • Update(reorder-rows): Fixed the drag selector to prevent a checkbox bug on mobile.
  • +
  • Update(resizable): Fixed the reinitialization after the table changed.
  • +
  • Update(sticky-header): Fixed sticky-header not work property with group header.
  • +
  • Update(treegrid): Fixed bug of treegrid from html.
  • +
+ +

Bootstrap Table 1.18.3

+ +

+ +

Core

+ +
    +
  • Update: Fixed negative number bug when searching with comparison.
  • +
  • Update: Fixed non-conform HTML-Standard problems.
  • +
  • Update: Fixed td width bug using card view.
  • +
  • Update: Fixed exact match problem when searching term with accent.
  • +
  • Update: Update pt-PT and fa-IR locales.
  • +
+ +

Extensions

+ +
    +
  • New(page-jump-to): Added showJumpToByPages option.
  • +
  • Update(auth-refresh): Fixed auto refresh not clear interval bug.
  • +
  • Update(multiple-sort): Fixed multiple-sort cannot support iconSize bug.
  • +
  • Update(sticky-header): Fixed stickyHeaderOffsetY option cannot work.
  • +
  • Update(sticky-header): Updated the stickyHeader offset options to number.
  • +
+ +

Bootstrap Table 1.18.2

+ +

+ +

Core

+ +
    +
  • Update: Fixed bootstrap5 cannot work bug.
  • +
  • Update: Fixed checkbox display bug when using formatter.
  • +
  • Update: Fixed search highlight bug.
  • +
  • Update: Updated ru-RU and de-DE locales.
  • +
+ +

Extensions

+ +
    +
  • New(filter-control): Added support for flat JSON.
  • +
  • Update(cookie): Fixed not deleted cookie bug when the sort was reset.
  • +
  • Update(export): Not export the detail view icon column.
  • +
  • Update(filter-control): Fixed not working when using filterControlContainer.
  • +
  • Update(multiple-sort): Fixed multiple-sort cannot work bug.
  • +
  • Update(resizable): Fixed resizable cannot work in modal.
  • +
+ +

Bootstrap Table 1.18.1

+ +

+ +

Core

+ +
    +
  • New(locale): Added short locales based on ISO Language.
  • +
  • Update: Updated sk-SK, fr-FR, de-DE, and es-* locales.
  • +
  • Update: Fixed toggleCheck, getSelections and remove bug.
  • +
  • Update: Fixed buttons option bug using in data attribute.
  • +
  • Update: Fixed custom icons option bug.
  • +
  • Update: Fixed cellStyle column option not work in card view.
  • +
  • Update: Fixed getSelection bug when using search.
  • +
  • Update: Fixed pageList option with all display bug using smartDisplay.
  • +
  • Update: Fixed search highlight cannot work bug when data field is number.
  • +
  • Update: Fixed updateColumnTitle is undo bug after pagination.
  • +
  • Update: Fixed multipleSelectRow option bug.
  • +
  • Update: Fixed icon-size option bug with pagination.
  • +
+ +

Extensions

+ +
    +
  • New(page-jump-to): Added min, max and enter support for jump input.
  • +
  • Update(export): Fixed export cannot work with materialize and foundation themes.
  • +
  • Update(filter-control): Updated filterDatepickerOptions to support datepicker option.
  • +
  • Update(filter-control): Fixed select bug when using & in the value.
  • +
  • Update(fixed-columns): Fixed toggleView display bug.
  • +
  • Update(group-by): Fixed not collapse detail view expanded row bug.
  • +
  • Update(group-by): Fixed display error using formatter column option.
  • +
  • Update(group-by): Fixed groupByFormatter option bug using in data attribute.
  • +
  • Update(multiple-sort): Fixed cannot work bug using in server sidePagination.
  • +
  • Update(page-jump-to): Fixed page jump input and button bug with icon-size option.
  • +
  • Update(print): Fixed print with rowspan or colspan.
  • +
  • Update(reorder-columns): Fixed reorder column when a column is removed or added.
  • +
+ +

Bootstrap Table 1.18.0

+ +

+ +

Core

+ +
    +
  • New(option): Added buttons to add custom buttons to the button bar.
  • +
  • New(option): Added footerField to support server side pagination.
  • +
  • New(option): Added new parameter value to footerFormatter.
  • +
  • New(option): Added searchHighlight and searchHighlightFormatter.
  • +
  • New(option): Added searchSelector to custom the search input.
  • +
  • New(event): Added BootstrapTable object as last parameter to all event.
  • +
  • New(css): Added CSS transitions for loading style.
  • +
  • New: Added support for style attribute of tr or td.
  • +
  • New: Added ability to use colspan in the footer.
  • +
  • Update: Updated search input type from text to search.
  • +
  • Update: Fixed normalize not string bug when using searchAccentNeutralise.
  • +
  • Update: Fixed complex group header bug.
  • +
  • Update: Fixed resize and scroll event bug with multiple tables.
  • +
  • Update: Fixed getScrollPosition bug when using group-by extension.
  • +
  • Update: Fixed updateRow with customSearch and sortReset bug.
  • +
  • Update: Fixed colspan and mergeCell bug when using detailFormatter.
  • +
  • Update: Fixed init bug when using onPostBody.
  • +
  • Update: Fixed sort bug when the field is set to 0.
  • +
  • Update: Fixed showFooter display bug after resize table width.
  • +
  • Update: Fixed not update selected rows bug when using checkAll/uncheckAll.
  • +
  • Update: Fixed checked property bug using formatter when the field has a value.
  • +
  • Update: Fixed default data shared bug with multiple tables.
  • +
  • Remove(method): Removed getAllSelections method.
  • +
+ +

Extensions

+ +
    +
  • New(addrbar): Added support for client side pagination.
  • +
  • New(cookie): Added cookieSameSite option to prevent breaking changes.
  • +
  • New(group-by): Added groupByToggle and groupByShowToggleIcon options.
  • +
  • New(group-by): Added groupByCollapsedGroups option to allow collapse groups.
  • +
  • Update(cookie): Fixed cookie size is too big bug when saving columns.
  • +
  • Update(cookie): Fixed checkbox column disappears bug.
  • +
  • Update(export): Fixed cannot export all data bug with pagination.
  • +
  • Update(group-by): Fixed scrollTo not working properly bug.
  • +
  • Update(multiple-sort): Fixed cannot work bug.
  • +
  • Update(sticky-header): Fixed vertical scroll cannot work bug.
  • +
+ +

Bootstrap Table 1.17.1

+ +

+ +

Core

+ +
    +
  • New: Added bootstrap-table theme without any framework.
  • +
  • New: Added support for Bootstrap v5.
  • +
  • New: Added $index field for remove method.
  • +
  • New: Added on-all event for vue component.
  • +
  • New: Added bg-BG locale.
  • +
  • New: Added loadingFontSize option.
  • +
  • New: Added loadingTemplate option.
  • +
  • New: Added detailView support for cardView.
  • +
  • New: Added the searchable columns to the query params for server side.
  • +
  • New: Added collapseRowByUniqueId and expandRowByUniqueId methods.
  • +
  • New: Added detailViewAlign option for the detail view icon.
  • +
  • New: Added tr class support for thead.
  • +
  • New: Added formatted parameter for getData method to get formatted data.
  • +
  • New: Added paginationParts option instead of onlyInfoPagination.
  • +
  • New: Added sortReset option to reset sort on third click.
  • +
  • New: Added support for auto merge the table body cells.
  • +
  • Update: Fixed updateByUniqueId method cannot update multiple rows bug.
  • +
  • Update: Fixed insertRow not write to source data array bug.
  • +
  • Update: Fixed events bug with detailViewIcon option.
  • +
  • Update: Fixed server side pagination sort bug.
  • +
  • Update: Fixed the page-change event before init server.
  • +
  • Update: Fixed no records found colspan error.
  • +
  • Update: Fixed the page-change event before init server.
  • +
  • Update: Fixed font-size of the loading text.
  • +
  • Update: Fixed table border bug when table is hidden.
  • +
  • Update: Fixed showRow method show all hidden rows bug.
  • +
  • Update: Fixed columnsSearch non-unique id warning.
  • +
  • Remove: Removed the onlyInfoPagination option.
  • +
  • Remove: Removed accent neutralise extension and moved it to core.
  • +
+ +

Extensions

+ +
    +
  • New(cookie): Added support for toggle all columns options.
  • +
  • New(custom-view): Added custom-view extension.
  • +
  • New(editable): Added alwaysUseFormatter option.
  • +
  • New(export): Added forceHide column option.
  • +
  • New(filter-control): Added filterOrderBy column option support order by server.
  • +
  • New(filter-control): Added radio support for filterControlContainer.
  • +
  • New(filter-control): Added support for array filter.
  • +
  • New(filter-control): Added filterControlVisible option and toggleFilterControl method.
  • +
  • New(filter-control): Added showFilterControlSwitch option.
  • +
  • New(fixed-columns): Added support for sticky-header.
  • +
  • New(pipeline): Added pipeline extension.
  • +
  • New(print): Added support for print footer and merge cells.
  • +
  • Update(accent-neutralise): Fixed comparison with arrays.
  • +
  • Update(cookie): Updated cookie columns to always visible when switchable is false.
  • +
  • Update(cookie): Fixed cookie value from existing options bug.
  • +
  • Update(copy-rows): Fixed copy rows bug with fixed-column.
  • +
  • Update(editable): Fixed not handle quotation marks bug.
  • +
  • Update(editable): Updated noeditFormatter to noEditFormatter.
  • +
  • Update(export): Fixed export error with maintainMetaData and clientSidePagination.
  • +
  • Update(filter-control): Fixed not work with height option.
  • +
  • Update(filter-control): Fixed not work in multiple tables.
  • +
  • Update(filter-control): Fixed ignore default search text bug.
  • +
  • Update(filter-control): Fixed not work with html formatter.
  • +
  • Update(filter-control): Fixed reset filterBy method bug.
  • +
  • Update(filter-control): Fixed issue with a custom filter control container.
  • +
  • Update(filter-control): Fixed filter control disappear after column switched.
  • +
  • Update(fixed-columns): Fixed loading message not hide bug.
  • +
  • Update(group-by): Fixed params error of checkAll/uncheckAll.
  • +
  • Update(multiple-sort): Fixed not working with multiple level field bug.
  • +
  • Update(reorder-columns): Fixed cannot work bug.
  • +
  • Update(reorder-rows): Fixed this context of onPostBody error.
  • +
  • Update(treegrid): Fixed treegrid destroy bug.
  • +
+ +

Bootstrap Table 1.16.0

+ +

+ +

Core

+ +
    +
  • New: Added buttonsOrder option.
  • +
  • New: Added headerStyle option.
  • +
  • New: Added showColumnsSearch option.
  • +
  • New: Added serverSort option.
  • +
  • New: Added unfiltered parameter for getData method.
  • +
  • Update: Updated event name to lowercase hyphen format for vue component.
  • +
  • Update: Updated es-AR locale.
  • +
  • Update: Updated the default classes of semantic theme.
  • +
  • Update: Improved the resize problem with multiple tables.
  • +
  • Update: Fixed checkAll event bug with sortable checkbox field.
  • +
  • Update: Fixed checkbox and not-found td style errors.
  • +
  • Update: Fixed customSearch return empty array bug.
  • +
  • Update: Fixed column checkboxes not being disabled when using toggleAll.
  • +
  • Update: Fixed flat not polyfilled error in vue cli3.
  • +
  • Update: Fixed height and border not aligned bug.
  • +
  • Update: Fixed jqXHR undefined error using custom ajax.
  • +
  • Update: Fixed pageSize set to all bug with filter.
  • +
  • Update: Fixed refreshOptions bug with radio and checkbox.
  • +
  • Update: Fixed removeAll bug in the last page when sidePagination is server.
  • +
  • Update: Fixed search not always trigger in IE11 bug.
  • +
  • Update: Fixed search width escape bug.
  • +
  • Update: Fixed showColumns cannot work of foundation theme.
  • +
  • Update: Fixed showFullscreen bug when setting height.
  • +
  • Update: Fixed sort cannot work after searching.
  • +
  • Update: Fixed sortable style error when using table-sm.
  • +
  • Update: Fixed sortStable not work bug.
  • +
  • Update: Fixed triggerSearch not work bug.
  • +
  • Update: Supported build cross all platforms.
  • +
  • Remove: Removed resetWidth method and use resetView instead.
  • +
+ +

Extensions

+ +
    +
  • New(cookie): Added new options to get/set/delete the values by a custom function.
  • +
  • New(cookie): Added save re-order and resize support.
  • +
  • New(filter-control): Added filterControlContainer option.
  • +
  • New(filter-control): Added filterCustomSearch option.
  • +
  • New(filter-control): Added object and function support in filterData column option.
  • +
  • New(filter-control): Added support for using sticky-header extension.
  • +
  • New(filter-control): Added support comparisons search(<, >, <=, =<, >=, =>).
  • +
  • New(fixed-columns): Added all themes support.
  • +
  • New(fixed-columns): Added fixedRightNumber option.
  • +
  • New(fixed-columns): Added support for using filter-control extension.
  • +
  • New(group-by): Add Array support for groupByField option.
  • +
  • New(group-by): Added customSort option support.
  • +
  • New(multiple-sort): Added custom sorter support.
  • +
  • New(multiple-sort): Added multiSortStrictSort option.
  • +
  • New(multiple-sort): Added multiSort method.
  • +
  • New(print): Added printFormatter data-attribute support.
  • +
  • New(reorder-columns): Added orderColumns method.
  • +
  • New(reorder-rows): Added search and cardView supported.
  • +
  • New(sticky-header): Added support for all themes.
  • +
  • New(toolbar): Added support for all themes.
  • +
  • New(reorder-rows): Added search and cardView support.
  • +
  • Update(cookie): Fixed cookie localeStorage not work bug with filter-control.
  • +
  • Update(cookie): Fixed minimumCountColumns not working bug.
  • +
  • Update(cookie): Improved cookiesEnabled to support ‘ in data-attribute.
  • +
  • Update(editable): Fixed formatter bug if the column was edited.
  • +
  • Update(filter-control): Fixed hideUnusedSelectOptions not work bug.
  • +
  • Update(filter-control): Fixed filter not work bug with undefined.
  • +
  • Update(filter-control): Fixed missing parameter of resetSearch and filterDataType.
  • +
  • Update(filter-control): Fixed search with filter-control search bug.
  • +
  • Update(filter-control): Fixed the value of select display error using editable.
  • +
  • Update(fixed-columns): Fixed checkbox bug with fixed columns.
  • +
  • Update(fixed-columns): Updated default value to 0 of fixedNumber option.
  • +
  • Update(group-by): Improved number type support.
  • +
  • Update(group-by): Fixed new table using modal bug.
  • +
  • Update(group-by): Fixed scrollTo method using group-by.
  • +
  • Update(mobile): Fixed input keyboard bug.
  • +
  • Update(multiple-sort): Fixed not destroy bug.
  • +
  • Update(multiple-sort): Fixed sort not work with boolean bug.
  • +
  • Update(print): Improved to use undefinedText option.
  • +
  • Update(print): Fixed IE11 not work bug.
  • +
  • Update(reorder-columns): Fixed detail view column reorder bug.
  • +
  • Update(resizable): Fixed columns resizing not work bug.
  • +
  • Update(resizable): Fixed not work via JavaScript.
  • +
  • Update(sticky-header): Fixed not work bug with fullscreen.
  • +
  • Update(treegrid): Fixed virtualScroll option bug.
  • +
  • Remove: Removed natural-sorting extension.
  • +
+ +

Bootstrap Table 1.15.5

+ +

+ +
    +
  • New: Added jqXHR for responseHandler option and onLoadSuccess event.
  • +
  • New: Added stickyHeaderOffsetLeft and stickyHeaderOffsetRight for sticky-header.
  • +
  • New: Added Serbian RS cyrillic and latin locales.
  • +
  • Update: Improved export button when there is only one type.
  • +
  • Update: Fixed column events click error with detailView.
  • +
  • Update: Fixed bug for searchOnEnterKey and showSearchButton are true.
  • +
  • Update: Fixed onScrollBody event and added parameter.
  • +
  • Update: Fixed search input size bug with iconSize option.
  • +
  • Update: Fixed filter control select cannot work more than one table.
  • +
  • Update: Fixed virtual scroll to top error when using append method.
  • +
  • Update: Fixed events cannot work on virtual scroll.
  • +
  • Update: Fixed bottom border bug with height option.
  • +
  • Update: Fixed min version throw cannot convert object to primitive value error.
  • +
+ +

Bootstrap Table 1.15.4

+ +

+ +
    +
  • New: Added query to queryParams option.
  • +
  • New: Added filter parameter of customSearch option.
  • +
  • Update: Fixed search bug in hidden columns.
  • +
  • Update: Fixed table zoom width calculating bug.
  • +
  • Update: Fixed events of column formatted by nested table.
  • +
  • Update: Fixed checkbox style display bug.
  • +
  • Update: Fixed stack overflow error of checkBy method.
  • +
  • Update: Fixed showSearchButton and showSearchClearButton style bug.
  • +
  • Update: Fixed filter-control select null value handle error.
  • +
  • Update: Fixed showSearchClearButton bug in filter-control extension.
  • +
  • Update: Fixed print button appears twice bug.
  • +
+ +

Bootstrap Table 1.15.3

+ +

+ +
    +
  • New: Added nl-BE, fr-CH and fr-LU locale.
  • +
  • Update: Updated nl-NL, pt-BR, fr-BE, fr-FR, nl-BE and nl-NL locale.
  • +
  • Update: Fixed treegrid duplicate rows bug.
  • +
  • Update: Fixed updateCellByUniqueId method bug on a filtered table.
  • +
  • Update: Fixed colspan group header display bug.
  • +
  • Update: Fixed table footer display bug in some case.
  • +
  • Update: Fixed getOptions bug.
  • +
  • Update: Fixed detailView bug when hiding columns.
  • +
  • Update: Fixed IE minify bug.
  • +
  • Update: Fixed full screen scrolling bug.
  • +
+ +

Bootstrap Table 1.15.2

+ +

+ +

Core

+ +
    +
  • New: Added virtualScroll and virtualScrollItemHeight options to support large data.
  • +
  • New: Added vue component support.
  • +
  • New: Added support comparisons search(<, >, <=, =<, >=, =>).
  • +
  • New: Added detailViewByClick table option and detailFormatter column option.
  • +
  • New: Added showExtendedPagination and totalNotFilteredField table options.
  • +
  • New: Added widthUnit option to allow any unit.
  • +
  • New: Added multipleSelectRow option to support ctrl and shift select.
  • +
  • New: Added onPostFooter(post-footer.bs.table) event.
  • +
  • New: Added detailViewIcon and toggleDetailView method to hide the show/hide icons.
  • +
  • New: Added showSearchButton and showSearchClearButton options to improve the search.
  • +
  • New: Added showButtonIcons and showButtonText options to improve the icons display.
  • +
  • New: Added visibleSearch option search only on displayed/visible columns.
  • +
  • New: Added showColumnsToggleAll option to toggle all columns.
  • +
  • New: Added cellStyle to support checkbox field.
  • +
  • New: Added checkbox and radio auto checked from html support.
  • +
  • New: Added screen reader support for pagination.
  • +
  • New: Added travis lint src and check docs scripts.
  • +
  • New: Added webpack support and user rollup to build the src.
  • +
  • New: Added a version number property.
  • +
  • New: Improved filterBy method with or condition and custom filter algorithm.
  • +
  • New: Improved showColumn and hideColumn methods with array of fields.
  • +
  • New: Improved scrollTo method to allow rows units.
  • +
  • Update: Rewrote all code to ES6.
  • +
  • Update: Improved pageList options to support localization.
  • +
  • Update: Improved the totalRows option.
  • +
  • Update: Improved table footer.
  • +
  • Update: Improved getSelections and getAllSelections methods.
  • +
  • Update: Improved css frameworks themes.
  • +
  • Update: Updated parameters of the getData method.
  • +
  • Update: Updated parameters of the (un)checkAll events to rowsAfter, rowsBefore.
  • +
  • Update: Updated parameters of the updateRow method to support replace.
  • +
  • Update: Updated page number to 1 while making a server side sort.
  • +
  • Update: Renamed table maintainSelected option to maintainMetaData.
  • +
  • Update: Renamed method refreshColumnTitle to updateColumnTitle.
  • +
  • Update: Fixed card view value to be aligned incorrectly bug.
  • +
  • Update: Fixed smartDisplay option pagination bug.
  • +
  • Update: Fixed data-* attribute is an object bug.
  • +
  • Update: Fixed page separators click bug.
  • +
  • Update: Fixed scrolling bug in IE11.
  • +
  • Update: Fixed initHeader error caused by toggleColumn.
  • +
  • Update: Fixed search input trigger multiple times bug.
  • +
  • Update: Fix Pagination/totalRows not updated on hideRow.
  • +
  • Update: Fixed columns title error.
  • +
+ +

Extensions

+ +
    +
  • New(editable): Added onExportSaved event.
  • +
  • New(export): Added forceExport column option force export columns with hidden.
  • +
  • New(export): Added function support of fileName option.
  • +
  • New(filter-control): Added filterDataCollector to control the filter select options.
  • +
  • New(filter-control): Added filterOrderBy and filterDefault column options.
  • +
  • New(multiple-sort): Added bootstrap v4 theme support.
  • +
  • New(print): Added RTL dir support.
  • +
  • Remove: Removed group-by, multi-column-toggle, multiple-search, multiple-selection-row, select2-filter and tree-column extensions.
  • +
  • Update(cookie): Fixed cookie search cannot work bug.
  • +
  • Update(editable): Updated parameters of onEditableSave to field, row, rowIndex, oldValue, $el.
  • +
  • Update(editable): Fixed editable rerender bug after saving data.
  • +
  • Update(export): Updated to only export table header.
  • +
  • Update(export): Fixed bug with the footer extensions while sorting.
  • +
  • Update(filter-control): Added ability to handle boolean.
  • +
  • Update(filter-control): Fixed DatePicker of filter-control does not work bug.
  • +
  • Update(filter-control): Fixed clear filterControl with Cookie bug.
  • +
  • Update(filter-control): Fixed loading screen with filter control.
  • +
  • Update(filter-control): Fixed overwriting the searchText bug.
  • +
  • Update(filter-control): Fixed filtering does not work json sub-object.
  • +
  • Update(filter-control): Fixed select filter with formatter.
  • +
  • Update(multiple-sort): Fixed multiple-sort does not work with data-query-params bug.
  • +
  • Update(page-jump-to): Fixed click bug when paginationVAlign is ‘both’.
  • +
  • Update(reorder-columns): Fixed reorder columns cannot work bug.
  • +
  • Update(reorder-columns): Fix search and columns bug after reorder columns.
  • +
  • Update(treegrid): Fixed treegrid cannot work bug.
  • +
+ +

Bootstrap Table 1.14.2

+ +

+ +
    +
  • New(fixed-columns extension): Added new version fixed-columns extension.
  • +
  • New(js): Updated the style of loading message.
  • +
  • Update(js): Updated refresh event params.
  • +
  • Update(locale): Updated all locale translation with English as default.
  • +
  • Update(export extension): Fixed export all rows to pdf bug.
  • +
  • Update(export extension): Disabled export button when exportDataType is ‘selected’ and selection empty.
  • +
  • Update(addrbar extension): Fixed addrbar extension remove hash from url bug.
  • +
+ +

Bootstrap Table 1.14.1

+ +

+ +
    +
  • New(css): Added CSS Frameworks supported.
  • +
  • New(css): Added Semantic UI theme.
  • +
  • New(css): Added Bulma theme.
  • +
  • New(css): Added Materialize theme.
  • +
  • New(css): Added Foundation theme.
  • +
  • New(js): Added data attribute support for ignoreClickToSelectOn option.
  • +
  • Update(js): Fixed detailView find td elements bug.
  • +
  • Update(js): Fixed showColumns close dropdown bug when item label clicking.
  • +
  • Update(js): Fixed reset width error after toggleFullscreen.
  • +
  • Update(js): Fixed cardView click event bug.
  • +
+ +

Bootstrap Table 1.13.5

+ +

+ +
    +
  • New(auto-refresh extension): Rewrote auto-refresh extension to ES6.
  • +
  • Update(js): Fixed showFullscreen cannot work bug.
  • +
  • Update(js): Redefined customSearch option.
  • +
  • Update(js): Fixed show footer cannot work bug.
  • +
  • Update(js): Updated the parameter of footerStyle.
  • +
  • Update(js): Added classes supported for footerStyle.
  • +
  • Update(js): Fixed IE11 transform bug.
  • +
  • Update(js): Removed beginning and end whitespace from td.
  • +
  • Update(export extension): Fixed export selected bug.
  • +
+ +

Bootstrap Table 1.13.4

+ +

+ +
    +
  • New(sticky-header extension): Rewrote sticky-header extension to ES6.
  • +
  • New(sticky-header extension): Added to support bootstrap v4 and theadClasses option.
  • +
  • New(auto-refresh extension): Icons update to font-awesome 5.
  • +
  • New(examples): Added examples Algolia search.
  • +
  • Update(js): Fixed theadClasses is not set when a thead exists.
  • +
  • Update(js): Fixed table resize after mergeCell the first row.
  • +
  • Update(cookie extension): Fixed cookie extension broken bug.
  • +
  • Update(cookie extension): Fixed cookie extension unicode encode bug.
  • +
  • Update(package): Added sass devDependencies.
  • +
+ +

Bootstrap Table 1.13.3

+ +

+ +
    +
  • New(js): Supported full table classes of bootstrap v4.
  • +
  • New(css): Updated bootstrap-table.css to scss.
  • +
  • New(accent-neutralise extension): Updated accent-neutralise extension to ES6.
  • +
  • New(addrbar extension): Updated addrbar extension to ES6 and supported attribute option.
  • +
  • New(group-by-v2 extension): New groupByFormatter option.
  • +
  • New(pipeline extension): New pipeline extension bootstrap-table-pipeline.
  • +
  • Remove(js): Removed striped option and use classes instead.
  • +
  • Update(js): Fixed locale option bug.
  • +
  • Update(js): Fixed sortClass option bug.
  • +
  • Update(js): Fixed sortStable option cannot work bug.
  • +
  • Update(js): Improved built-in sort function and customSort logic.
  • +
  • Update(js): Fixed horizontal scrollbar bug.
  • +
  • Update(cookie extension): Improved cookie extension code.
  • +
+ +

Bootstrap Table 1.13.2

+ +

+ +
    +
  • New(js): Added paginationSuccessivelySize, paginationPagesBySide and paginationUseIntermediate pagination options.
  • +
  • New(cookie extension): Updated cookie extension to ES6.
  • +
  • New(cookie extension): Saved filterBy method.
  • +
  • New(filter-control extension): Added placeholder as a empty option to the select controls.
  • +
  • New(filter-control extension): Added clearFilterControl method in order to clear all filter controls.
  • +
  • New(docs) Added algolia search.
  • +
  • Update(js): Fixed sort column shows hidden rows in server side pagination bug.
  • +
  • Update(js): Fixed scrollTo bug.
  • +
  • Update(css): Fixed no-bordered problem of bootstrap v4.
  • +
  • Update(filter-control extension): Added bootstrap v4 icon support.
  • +
+ +

New Website for Bootstrap v4

+ +

+ +

Bootstrap has released the latest version v4.2.1. Since Bootstrap Table has been mainly used for Bootstrap v3, We have rebuilt the official documentation of Bootstrap Table while upgrading the code to Bootstrap v4.

+ +

Bootstrap Table Website is a fork of Bootstrap.

+ +

What’s new

+ +

Here are the highlights of what’s new and updated in new website.

+ +
    +
  • New: More detailed documentation.
  • +
  • New: Added Extensions documentation.
  • +
  • New: Supported for searching documentation.
  • +
  • New: Added News Menu.
  • +
  • New: Added New Examples for Bootstrap v4 instead v3.
  • +
  • Update: Used new API display style instead table.
  • +
  • Remove: Removed Translation Documentations.
  • +
+ +

Bootstrap Table 1.13.1

+ +

+ +
    +
  • New(js): Added theadClasses option to support bootstrap v4.
  • +
  • New(js): Updated the default icons to font-awesome 5.
  • +
  • New(locale): Updated all locales to ES6.
  • +
  • New(editable extension): Updated bootstrap-table-editable to ES6.
  • +
  • New(filter-control extension): Updated bootstrap-table-filter-control to ES6.
  • +
  • New(treegrid extension): Added rootParentId option.
  • +
  • Update(js): Fixed getHiddenRows method bug.
  • +
  • Update(js): Fixed getOptions method to remove data property.
  • +
  • Update(js): Fixed no matches display error.
  • +
  • Update(js): Fixed eslint warning and error.
  • +
  • Update(locale): Improved es-ES locale.
  • +
  • Update(filter-control extension): Fixed multiple choice bug.
  • +
  • Update(filter-control extension): Fixed select all rows and keyup event error.
  • +
  • Update(export extension): Fixed export in cardView display error.
  • +
+ +

Bootstrap Table 1.13.0

+ +

+ +
    +
  • New(js): Updated bootstrap-table to ES6.
  • +
  • New(locale): Added fi-FI.js locale.
  • +
  • New(build): Used babel instead of grunt.
  • +
  • New(filter-control): Added created-controls.bs.table event to filter-control.
  • +
  • New(export extension): Updated export extension to ES6.
  • +
  • New(export extension): Added export extension support bootstrap v4.
  • +
  • New(export extension): Added exportTable method.
  • +
  • New(toolbar extension): Updated toolbar extension to ES6.
  • +
  • New(toolbar extension): Added toolbar extension supports bootstrap v4.
  • +
  • New(toolbar extension): Added server sidePagination support
  • +
  • New(resizable extension): Released new resizable extension version 2.0.0.
  • +
  • New(editable extension): Allowed different x-editable configuration per table row.
  • +
  • New(addrbar extension): Added addrbar extension.
  • +
  • Update(js): Improved check/uncheck methods
  • +
  • Update(js): Fixed cookie with pageNumber and searchText bug.
  • +
  • Update(js): Fix selections bugs.
  • +
  • Update(js): Added customSearch support data attribute.
  • +
  • Update(js): Fixed can’t search data with formatter.
  • +
  • Update(js): Fixed getRowByUniqueId error when row unique id is undefined.
  • +
  • Update(js): Fixed older bootstrap version bug.
  • +
  • Update(css): Removed toolbar line-height.
  • +
  • Update(css): Limited fullscreen CSS rule scope.
  • +
  • Update(editable extension): Fixed editable formatter bug.
  • +
  • Update(extension): Fixed bug with export extension together.
  • +
  • Update(extension): Removed click-edit-row and flat-json extensions.
  • +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/versions/1.23.5/online-editor/index.html b/versions/1.23.5/online-editor/index.html new file mode 100644 index 0000000000..f8eac7251a --- /dev/null +++ b/versions/1.23.5/online-editor/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/redirects.json b/versions/1.23.5/redirects.json new file mode 100644 index 0000000000..60615c93ac --- /dev/null +++ b/versions/1.23.5/redirects.json @@ -0,0 +1 @@ +{"/faq/":"https://bootstrap-table.com/docs/faq/","/zh-cn/faq/":"https://bootstrap-table.com/docs/faq/","/es/faq/":"https://bootstrap-table.com/docs/faq/","/zh-cn/":"https://bootstrap-table.com/","/es/":"https://bootstrap-table.com/","/home/":"https://bootstrap-table.com/","/zh-cn/home/":"https://bootstrap-table.com/","/es/home/":"https://bootstrap-table.com/","/docs/":"https://bootstrap-table.com/docs/getting-started/introduction/","/getting-started/":"https://bootstrap-table.com/docs/getting-started/introduction/","/themes/bootstrap4":"https://bootstrap-table.com/docs/getting-started/introduction/","/vuejs/":"https://bootstrap-table.com/docs/vuejs/introduction/","/online-editor/":"https://bootstrap-table.com/docs/online-editor/","/zh-cn/online-editor/":"https://bootstrap-table.com/docs/online-editor/","/es/online-editor/":"https://bootstrap-table.com/docs/online-editor/","/docs/about/":"https://bootstrap-table.com/docs/about/overview/","/docs/api/":"https://bootstrap-table.com/docs/api/table-options/","/documentation/":"https://bootstrap-table.com/docs/api/table-options/","/zh-cn/documentation/":"https://bootstrap-table.com/docs/api/table-options/","/es/documentation/":"https://bootstrap-table.com/docs/api/table-options/"} \ No newline at end of file diff --git a/versions/1.23.5/robots.txt b/versions/1.23.5/robots.txt new file mode 100644 index 0000000000..91a2c09700 --- /dev/null +++ b/versions/1.23.5/robots.txt @@ -0,0 +1,6 @@ +# www.robotstxt.org/ + +# Allow crawling of all content +User-agent: * +Disallow: +Sitemap: https://bootstrap-table.com/sitemap.xml diff --git a/versions/1.23.5/sitemap.xml b/versions/1.23.5/sitemap.xml new file mode 100644 index 0000000000..8c7d86c034 --- /dev/null +++ b/versions/1.23.5/sitemap.xml @@ -0,0 +1,168 @@ + + + +https://bootstrap-table.com/docs/extensions/addrbar/ + + +https://bootstrap-table.com/docs/extensions/auto-refresh/ + + +https://bootstrap-table.com/themes/bootstrap-table/ + + +https://bootstrap-table.com/themes/bootstrap3/ + + +https://bootstrap-table.com/themes/bootstrap4/ + + +https://bootstrap-table.com/docs/vuejs/browser/ + + +https://bootstrap-table.com/docs/getting-started/browsers-devices/ + + +https://bootstrap-table.com/docs/getting-started/build-tools/ + + +https://bootstrap-table.com/themes/bulma/ + + +https://bootstrap-table.com/docs/api/column-options/ + + +https://bootstrap-table.com/docs/vuejs/component/ + + +https://bootstrap-table.com/docs/getting-started/contents/ + + +https://bootstrap-table.com/docs/extensions/cookie/ + + +https://bootstrap-table.com/docs/extensions/copy-rows/ + + +https://bootstrap-table.com/docs/extensions/custom-view/ + + +https://bootstrap-table.com/docs/extensions/defer-url/ + + +https://bootstrap-table.com/docs/getting-started/download/ + + +https://bootstrap-table.com/docs/extensions/editable/ + + +https://bootstrap-table.com/docs/api/events/ + + +https://bootstrap-table.com/docs/extensions/export/ + + +https://bootstrap-table.com/docs/faq/ + + +https://bootstrap-table.com/docs/extensions/filter-control/ + + +https://bootstrap-table.com/docs/extensions/fixed-columns/ + + +https://bootstrap-table.com/themes/foundation/ + + +https://bootstrap-table.com/docs/extensions/group-by-v2/ + + +https://bootstrap-table.com/docs/extensions/i18n-enhance/ + + +https://bootstrap-table.com/ + + +https://bootstrap-table.com/themes/ + + +https://bootstrap-table.com/docs/getting-started/introduction/ + + +https://bootstrap-table.com/docs/vuejs/introduction/ + + +https://bootstrap-table.com/docs/extensions/key-events/ + + +https://bootstrap-table.com/docs/about/license/ + + +https://bootstrap-table.com/docs/api/localizations/ + + +https://bootstrap-table.com/themes/materialize/ + + +https://bootstrap-table.com/docs/api/methods/ + + +https://bootstrap-table.com/docs/extensions/mobile/ + + +https://bootstrap-table.com/docs/extensions/multiple-sort/ + + +https://bootstrap-table.com/news/ + + +https://bootstrap-table.com/docs/online-editor/ + + +https://bootstrap-table.com/docs/about/overview/ + + +https://bootstrap-table.com/docs/extensions/page-jump-to/ + + +https://bootstrap-table.com/docs/extensions/pipeline/ + + +https://bootstrap-table.com/docs/extensions/print/ + + +https://bootstrap-table.com/docs/extensions/reorder-columns/ + + +https://bootstrap-table.com/docs/extensions/reorder-rows/ + + +https://bootstrap-table.com/docs/extensions/resizable/ + + +https://bootstrap-table.com/themes/semantic/ + + +https://bootstrap-table.com/docs/extensions/sticky-header/ + + +https://bootstrap-table.com/docs/api/table-options/ + + +https://bootstrap-table.com/docs/about/team/ + + +https://bootstrap-table.com/docs/extensions/toolbar/ + + +https://bootstrap-table.com/docs/about/translations/ + + +https://bootstrap-table.com/docs/extensions/treegrid/ + + +https://bootstrap-table.com/docs/getting-started/usage/ + + +https://bootstrap-table.com/docs/vuejs/webpack/ + + diff --git a/versions/1.23.5/themes/bootstrap-table/index.html b/versions/1.23.5/themes/bootstrap-table/index.html new file mode 100644 index 0000000000..7bf2331785 --- /dev/null +++ b/versions/1.23.5/themes/bootstrap-table/index.html @@ -0,0 +1,264 @@ + + + + + + + + + + + + +Bootstrap Table · Bootstrap Table + + + + + + + + + + + + + + + + + Skip to main content + + + + + + + +
+
+

Bootstrap Table

+

A getting started of add Bootstrap Table theme, how to download and use, basic templates, and more.

+
+ +
+

Quick start

+ +

Looking to quickly add Bootstrap Table theme to your project? Use CDN, provided for free by the folks at UNPKG. Using a package manager or need to download the source files? Head to the downloads page.

+ +

CSS

+ +

Copy-paste the stylesheet <link> into your <head> before all other stylesheets to load our CSS.

+ +
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/bootstrap-table/bootstrap-table.min.css">
+ +

JS

+ +

Place the following <script>s near the end of your pages, right before the closing </body> tag, to enable them. jQuery must come first, then our JavaScript plugins.

+ +
<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/bootstrap-table/bootstrap-table.min.js"></script>
+ +

Starter template

+ +

Be sure to have your pages set up with the latest design and development standards. That means using an HTML5 doctype and including a viewport meta tag for proper responsive behaviors.

+ +

Put it all together and your pages should look like this:

+ +
<!doctype html>
+<html lang="en">
+  <head>
+    <!-- Required meta tags -->
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/bootstrap-table/bootstrap-table.min.css">
+
+    <title>Hello, Bootstrap Table!</title>
+  </head>
+  <body>
+    <table data-toggle="table">
+      <thead>
+        <tr>
+          <th>Item ID</th>
+          <th>Item Name</th>
+          <th>Item Price</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td>1</td>
+          <td>Item 1</td>
+          <td>$1</td>
+        </tr>
+        <tr>
+          <td>2</td>
+          <td>Item 2</td>
+          <td>$2</td>
+        </tr>
+      </tbody>
+    </table>
+
+    <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/bootstrap-table/bootstrap-table.min.js"></script>
+  </body>
+</html>
+ +

HTML5 doctype

+ +

Bootstrap Table requires the use of the HTML5 doctype. Without it, you’ll see some funky incomplete styling, but including it shouldn’t cause any considerable hiccups.

+ +
<!doctype html>
+<html lang="en">
+  ...
+</html>
+ +

Community

+ +

Stay up to date on the development of Bootstrap Table and reach out to the community with these helpful resources.

+ + + +
+ + + + + + + + + + + + + + + + + +
+ + + diff --git a/versions/1.23.5/themes/bootstrap3/index.html b/versions/1.23.5/themes/bootstrap3/index.html new file mode 100644 index 0000000000..ddf22c87c7 --- /dev/null +++ b/versions/1.23.5/themes/bootstrap3/index.html @@ -0,0 +1,264 @@ + + + + + + + + + + + + +Bootstrap v3 · Bootstrap Table + + + + + + + + + + + + + + + + + Skip to main content + + + + + + + +
+
+

Bootstrap v3

+

A getting started of add Bootstrap Table to Bootstrap v3, how to download and use, basic templates, and more.

+
+ +
+

Quick start

+ +

Looking to quickly add Bootstrap Table to your Bootstrap v3 project? Use CDN, provided for free by the folks at UNPKG. Using a package manager or need to download the source files? Head to the downloads page.

+ +

CSS

+ +

Copy-paste the stylesheet <link> into your <head> before all other stylesheets to load our CSS.

+ +
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.css">
+ +

JS

+ +

Place the following <script>s near the end of your pages, right before the closing </body> tag, to enable them. jQuery must come first, then Bootstrap.js, and then our JavaScript plugins.

+ +
<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+ +

Starter template

+ +

Be sure to have your pages set up with the latest design and development standards. That means using an HTML5 doctype and including a viewport meta tag for proper responsive behaviors.

+ +

Put it all together and your pages should look like this:

+ +
<!doctype html>
+<html lang="en">
+  <head>
+    <!-- Required meta tags -->
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.4.1/dist/css/bootstrap.min.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.css">
+
+    <title>Hello, Bootstrap Table!</title>
+  </head>
+  <body>
+    <table data-toggle="table">
+      <thead>
+        <tr>
+          <th>Item ID</th>
+          <th>Item Name</th>
+          <th>Item Price</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td>1</td>
+          <td>Item 1</td>
+          <td>$1</td>
+        </tr>
+        <tr>
+          <td>2</td>
+          <td>Item 2</td>
+          <td>$2</td>
+        </tr>
+      </tbody>
+    </table>
+
+    <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.4.1/dist/js/bootstrap.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+  </body>
+</html>
+ +

HTML5 doctype

+ +

Bootstrap Table requires the use of the HTML5 doctype. Without it, you’ll see some funky incomplete styling, but including it shouldn’t cause any considerable hiccups.

+ +
<!doctype html>
+<html lang="en">
+  ...
+</html>
+ +

Community

+ +

Stay up to date on the development of Bootstrap Table and reach out to the community with these helpful resources.

+ + + +
+ + + + + + + + + + + + + + + + + +
+ + + diff --git a/versions/1.23.5/themes/bootstrap4.html b/versions/1.23.5/themes/bootstrap4.html new file mode 100644 index 0000000000..25349b64ef --- /dev/null +++ b/versions/1.23.5/themes/bootstrap4.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/themes/bootstrap4/index.html b/versions/1.23.5/themes/bootstrap4/index.html new file mode 100644 index 0000000000..e07ad28c2e --- /dev/null +++ b/versions/1.23.5/themes/bootstrap4/index.html @@ -0,0 +1,266 @@ + + + + + + + + + + + + +Bootstrap v4 · Bootstrap Table + + + + + + + + + + + + + + + + + Skip to main content + + + + + + + +
+
+

Bootstrap v4

+

A getting started of add Bootstrap Table to Bootstrap v4, how to download and use, basic templates, and more.

+
+ +
+

Quick start

+ +

Looking to quickly add Bootstrap Table to your Bootstrap v4 project? Use CDN, provided for free by the folks at UNPKG. Using a package manager or need to download the source files? Head to the downloads page.

+ +

CSS

+ +

Copy-paste the stylesheet <link> into your <head> before all other stylesheets to load our CSS.

+ +
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.css">
+ +

JS

+ +

Place the following <script>s near the end of your pages, right before the closing </body> tag, to enable them. jQuery must come first, then Bootstrap.js, and then our JavaScript plugins.

+ +
<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+ +

Starter template

+ +

Be sure to have your pages set up with the latest design and development standards. That means using an HTML5 doctype and including a viewport meta tag for proper responsive behaviors.

+ +

Put it all together and your pages should look like this:

+ +
<!doctype html>
+<html lang="en">
+  <head>
+    <!-- Required meta tags -->
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.2/css/all.min.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.css">
+
+    <title>Hello, Bootstrap Table!</title>
+  </head>
+  <body>
+    <table data-toggle="table">
+      <thead>
+        <tr>
+          <th>Item ID</th>
+          <th>Item Name</th>
+          <th>Item Price</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td>1</td>
+          <td>Item 1</td>
+          <td>$1</td>
+        </tr>
+        <tr>
+          <td>2</td>
+          <td>Item 2</td>
+          <td>$2</td>
+        </tr>
+      </tbody>
+    </table>
+
+    <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+  </body>
+</html>
+ +

HTML5 doctype

+ +

Bootstrap Table requires the use of the HTML5 doctype. Without it, you’ll see some funky incomplete styling, but including it shouldn’t cause any considerable hiccups.

+ +
<!doctype html>
+<html lang="en">
+  ...
+</html>
+ +

Community

+ +

Stay up to date on the development of Bootstrap Table and reach out to the community with these helpful resources.

+ + + +
+ + + + + + + + + + + + + + + + + +
+ + + diff --git a/versions/1.23.5/themes/bulma/index.html b/versions/1.23.5/themes/bulma/index.html new file mode 100644 index 0000000000..d11b277744 --- /dev/null +++ b/versions/1.23.5/themes/bulma/index.html @@ -0,0 +1,268 @@ + + + + + + + + + + + + +Bulma · Bootstrap Table + + + + + + + + + + + + + + + + + Skip to main content + + + + + + + +
+
+

Bulma

+

A getting started of add Bootstrap Table to Bulma, how to download and use, basic templates, and more.

+
+ +
+

Quick start

+ +

Looking to quickly add Bootstrap Table to your Bulma project? Use CDN, provided for free by the folks at UNPKG. Using a package manager or need to download the source files? Head to the downloads page.

+ +

CSS

+ +

Copy-paste the stylesheet <link> into your <head> before all other stylesheets to load our CSS.

+ +
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/bulma/bootstrap-table-bulma.min.css">
+ +

JS

+ +

Place the following <script>s near the end of your pages, right before the closing </body> tag, to enable them. jQuery must come first, then our JavaScript plugins.

+ +
<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/bulma/bootstrap-table-bulma.min.js"></script>
+ +

Starter template

+ +

Be sure to have your pages set up with the latest design and development standards. That means using an HTML5 doctype and including a viewport meta tag for proper responsive behaviors.

+ +

For Bulma, we use Font Awesome as the default icons, so need to import Font Awesome link.

+ +

Put it all together and your pages should look like this:

+ +
<!doctype html>
+<html lang="en">
+  <head>
+    <!-- Required meta tags -->
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.0/css/bulma.min.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.2/css/all.min.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/bulma/bootstrap-table-bulma.min.css">
+
+    <title>Hello, Bootstrap Table!</title>
+  </head>
+  <body>
+    <table data-toggle="table">
+      <thead>
+        <tr>
+          <th>Item ID</th>
+          <th>Item Name</th>
+          <th>Item Price</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td>1</td>
+          <td>Item 1</td>
+          <td>$1</td>
+        </tr>
+        <tr>
+          <td>2</td>
+          <td>Item 2</td>
+          <td>$2</td>
+        </tr>
+      </tbody>
+    </table>
+
+    <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/bulma/bootstrap-table-bulma.min.js"></script>
+  </body>
+</html>
+ +

HTML5 doctype

+ +

Bootstrap Table requires the use of the HTML5 doctype. Without it, you’ll see some funky incomplete styling, but including it shouldn’t cause any considerable hiccups.

+ +
<!doctype html>
+<html lang="en">
+  ...
+</html>
+ +

Community

+ +

Stay up to date on the development of Bootstrap Table and reach out to the community with these helpful resources.

+ + + +
+ + + + + + + + + + + + + + + + + +
+ + + diff --git a/versions/1.23.5/themes/foundation/index.html b/versions/1.23.5/themes/foundation/index.html new file mode 100644 index 0000000000..efcc0c403f --- /dev/null +++ b/versions/1.23.5/themes/foundation/index.html @@ -0,0 +1,269 @@ + + + + + + + + + + + + +Foundation · Bootstrap Table + + + + + + + + + + + + + + + + + Skip to main content + + + + + + + +
+
+

Foundation

+

A getting started of add Bootstrap Table to Foundation, how to download and use, basic templates, and more.

+
+ +
+

Quick start

+ +

Looking to quickly add Bootstrap Table to your Foundation project? Use CDN, provided for free by the folks at UNPKG. Using a package manager or need to download the source files? Head to the downloads page.

+ +

CSS

+ +

Copy-paste the stylesheet <link> into your <head> before all other stylesheets to load our CSS.

+ +
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/foundation/bootstrap-table-foundation.min.css">
+ +

JS

+ +

Place the following <script>s near the end of your pages, right before the closing </body> tag, to enable them. jQuery must come first, then our JavaScript plugins.

+ +
<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/foundation/bootstrap-table-foundation.min.js"></script>
+ +

Starter template

+ +

Be sure to have your pages set up with the latest design and development standards. That means using an HTML5 doctype and including a viewport meta tag for proper responsive behaviors.

+ +

For Foundation, we use Font Awesome as the default icons, so need to import Font Awesome link.

+ +

Put it all together and your pages should look like this:

+ +
<!doctype html>
+<html lang="en">
+  <head>
+    <!-- Required meta tags -->
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/foundation-sites@6.8.1/dist/css/foundation.min.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.2/css/all.min.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/foundation/bootstrap-table-foundation.min.css">
+
+    <title>Hello, Bootstrap Table!</title>
+  </head>
+  <body>
+    <table data-toggle="table">
+      <thead>
+        <tr>
+          <th>Item ID</th>
+          <th>Item Name</th>
+          <th>Item Price</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td>1</td>
+          <td>Item 1</td>
+          <td>$1</td>
+        </tr>
+        <tr>
+          <td>2</td>
+          <td>Item 2</td>
+          <td>$2</td>
+        </tr>
+      </tbody>
+    </table>
+
+    <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/foundation-sites@6.8.1/dist/js/foundation.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/foundation/bootstrap-table-foundation.min.js"></script>
+  </body>
+</html>
+ +

HTML5 doctype

+ +

Bootstrap Table requires the use of the HTML5 doctype. Without it, you’ll see some funky incomplete styling, but including it shouldn’t cause any considerable hiccups.

+ +
<!doctype html>
+<html lang="en">
+  ...
+</html>
+ +

Community

+ +

Stay up to date on the development of Bootstrap Table and reach out to the community with these helpful resources.

+ + + +
+ + + + + + + + + + + + + + + + + +
+ + + diff --git a/versions/1.23.5/themes/index.html b/versions/1.23.5/themes/index.html new file mode 100644 index 0000000000..3ac820bdca --- /dev/null +++ b/versions/1.23.5/themes/index.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + +Themes and Templates · Bootstrap Table + + + + + + + + + + + + + + + + + Skip to main content + + + + + + + +
+
+

Themes and Templates

+

Bootstrap Table can help you to build UI Kits, Templates and Dashboards. You can see how developers and designers are using Bootstrap Table in production and real world web applications.

+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + +
+ + + diff --git a/versions/1.23.5/themes/materialize/index.html b/versions/1.23.5/themes/materialize/index.html new file mode 100644 index 0000000000..e62d63ed72 --- /dev/null +++ b/versions/1.23.5/themes/materialize/index.html @@ -0,0 +1,269 @@ + + + + + + + + + + + + +Materialize · Bootstrap Table + + + + + + + + + + + + + + + + + Skip to main content + + + + + + + +
+
+

Materialize

+

A getting started of add Bootstrap Table to Materialize, how to download and use, basic templates, and more.

+
+ +
+

Quick start

+ +

Looking to quickly add Bootstrap Table to your Materialize project? Use CDN, provided for free by the folks at UNPKG. Using a package manager or need to download the source files? Head to the downloads page.

+ +

CSS

+ +

Copy-paste the stylesheet <link> into your <head> before all other stylesheets to load our CSS.

+ +
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/materialize/bootstrap-table-materialize.min.css">
+ +

JS

+ +

Place the following <script>s near the end of your pages, right before the closing </body> tag, to enable them. jQuery must come first, then our JavaScript plugins.

+ +
<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/materialize/bootstrap-table-materialize.min.js"></script>
+ +

Starter template

+ +

Be sure to have your pages set up with the latest design and development standards. That means using an HTML5 doctype and including a viewport meta tag for proper responsive behaviors.

+ +

For Materialize, we use Material Design Icons as the default icons, so need to import Material Icons link.

+ +

Put it all together and your pages should look like this:

+ +
<!doctype html>
+<html lang="en">
+  <head>
+    <!-- Required meta tags -->
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/materialize-css@1.0.0/dist/css/materialize.min.css">
+    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/materialize/bootstrap-table-materialize.min.css">
+
+    <title>Hello, Bootstrap Table!</title>
+  </head>
+  <body>
+    <table data-toggle="table">
+      <thead>
+        <tr>
+          <th>Item ID</th>
+          <th>Item Name</th>
+          <th>Item Price</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td>1</td>
+          <td>Item 1</td>
+          <td>$1</td>
+        </tr>
+        <tr>
+          <td>2</td>
+          <td>Item 2</td>
+          <td>$2</td>
+        </tr>
+      </tbody>
+    </table>
+
+    <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/materialize-css@1.0.0/dist/js/materialize.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/materialize/bootstrap-table-materialize.min.js"></script>
+  </body>
+</html>
+ +

HTML5 doctype

+ +

Bootstrap Table requires the use of the HTML5 doctype. Without it, you’ll see some funky incomplete styling, but including it shouldn’t cause any considerable hiccups.

+ +
<!doctype html>
+<html lang="en">
+  ...
+</html>
+ +

Community

+ +

Stay up to date on the development of Bootstrap Table and reach out to the community with these helpful resources.

+ + + +
+ + + + + + + + + + + + + + + + + +
+ + + diff --git a/versions/1.23.5/themes/semantic/index.html b/versions/1.23.5/themes/semantic/index.html new file mode 100644 index 0000000000..6937389a79 --- /dev/null +++ b/versions/1.23.5/themes/semantic/index.html @@ -0,0 +1,269 @@ + + + + + + + + + + + + +Semantic UI · Bootstrap Table + + + + + + + + + + + + + + + + + Skip to main content + + + + + + + +
+
+

Semantic UI

+

A getting started of add Bootstrap Table to Semantic UI, how to download and use, basic templates, and more.

+
+ +
+

Quick start

+ +

Looking to quickly add Bootstrap Table to your Semantic UI project? Use CDN, provided for free by the folks at UNPKG. Using a package manager or need to download the source files? Head to the downloads page.

+ +

CSS

+ +

Copy-paste the stylesheet <link> into your <head> before all other stylesheets to load our CSS.

+ +
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/semantic/bootstrap-table-semantic.min.css">
+ +

JS

+ +

Place the following <script>s near the end of your pages, right before the closing </body> tag, to enable them. jQuery must come first, then Semantic.js, and then our JavaScript plugins.

+ +
<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+<script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/semantic/bootstrap-table-semantic.min.js"></script>
+ +

Starter template

+ +

Be sure to have your pages set up with the latest design and development standards. That means using an HTML5 doctype and including a viewport meta tag for proper responsive behaviors.

+ +

For Semantic UI, we use Font Awesome as the default icons, so need to import Font Awesome link.

+ +

Put it all together and your pages should look like this:

+ +
<!doctype html>
+<html lang="en">
+  <head>
+    <!-- Required meta tags -->
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.5.0/dist/semantic.min.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.2/css/all.min.css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/semantic/bootstrap-table-semantic.min.css">
+
+    <title>Hello, Bootstrap Table!</title>
+  </head>
+  <body>
+    <table data-toggle="table">
+      <thead>
+        <tr>
+          <th>Item ID</th>
+          <th>Item Name</th>
+          <th>Item Price</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td>1</td>
+          <td>Item 1</td>
+          <td>$1</td>
+        </tr>
+        <tr>
+          <td>2</td>
+          <td>Item 2</td>
+          <td>$2</td>
+        </tr>
+      </tbody>
+    </table>
+
+    <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.5.0/dist/semantic.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/bootstrap-table.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap-table@1.23.5/dist/themes/semantic/bootstrap-table-semantic.min.js"></script>
+  </body>
+</html>
+ +

HTML5 doctype

+ +

Bootstrap Table requires the use of the HTML5 doctype. Without it, you’ll see some funky incomplete styling, but including it shouldn’t cause any considerable hiccups.

+ +
<!doctype html>
+<html lang="en">
+  ...
+</html>
+ +

Community

+ +

Stay up to date on the development of Bootstrap Table and reach out to the community with these helpful resources.

+ + + +
+ + + + + + + + + + + + + + + + + +
+ + + diff --git a/versions/1.23.5/vuejs/index.html b/versions/1.23.5/vuejs/index.html new file mode 100644 index 0000000000..ac452b7431 --- /dev/null +++ b/versions/1.23.5/vuejs/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/zh-cn/documentation/index.html b/versions/1.23.5/zh-cn/documentation/index.html new file mode 100644 index 0000000000..548e5ede6a --- /dev/null +++ b/versions/1.23.5/zh-cn/documentation/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/zh-cn/faq/index.html b/versions/1.23.5/zh-cn/faq/index.html new file mode 100644 index 0000000000..dac708a7bd --- /dev/null +++ b/versions/1.23.5/zh-cn/faq/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/zh-cn/home/index.html b/versions/1.23.5/zh-cn/home/index.html new file mode 100644 index 0000000000..861f24f72f --- /dev/null +++ b/versions/1.23.5/zh-cn/home/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/zh-cn/index.html b/versions/1.23.5/zh-cn/index.html new file mode 100644 index 0000000000..861f24f72f --- /dev/null +++ b/versions/1.23.5/zh-cn/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions/1.23.5/zh-cn/online-editor/index.html b/versions/1.23.5/zh-cn/online-editor/index.html new file mode 100644 index 0000000000..f8eac7251a --- /dev/null +++ b/versions/1.23.5/zh-cn/online-editor/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. +

*(i{j?UCjE6sdcc5B*NUtjoBjEDdM;N%jl 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 b{zLrxpNYAM=;c`cCeI`MyD7NgX8eBuC9du< literal 0 HcmV?d00001 diff --git a/versions/1.23.5/assets/images/materialize.jpg b/versions/1.23.5/assets/images/materialize.jpg new file mode 100644 index 0000000000000000000000000000000000000000..76cf86dcc6a7952ab9d460c09f2ad80bdc6435d6 GIT binary patch literal 9728 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 MXq4{)&K(l|5AT9|GXMYp literal 0 HcmV?d00001 diff --git a/versions/1.23.5/assets/images/pager-dashboard.jpg b/versions/1.23.5/assets/images/pager-dashboard.jpg new file mode 100644 index 0000000000000000000000000000000000000000..536b3e248e84a69d5ccf66768190fb112212d8a2 GIT binary patch literal 15653 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 literal 0 HcmV?d00001 diff --git a/versions/1.23.5/assets/images/semantic.jpg b/versions/1.23.5/assets/images/semantic.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9348b5cbbc91c559c73906d05d874f9773ac4658 GIT binary patch literal 8301 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Ȱ+jrF399|pteZhSweTlTkO2MSPT2SpnR z%A&x*ivC~_Oml87*1&SeZ4%PVA#a;ZKzDfQH`?^M6)ofpL%TF$j%`gdu9vM}mSP?T zH*OyuqFj7%H_{*&_90yqzdXrog|9YsUD-2#7XW=L=9c?5f8${ME(J$F-~xN|Cv1z$ zkIPHww--CZ9+ynTZ2XAK{zZDBGwnE>C2VGo7p~Ywi%j}y*O6k}=6Q`aeun20$}f|5 zrjn{QYuTP1ft?ncKAYX{eRiswmiPN77&6S&yA*qQ^sBj-bJtHiv#$4E(xl{hw^%IL zyHOQtapul`zfvCJh0_tNN-fr>d)~f3cRKh+TrEBL ztD?;4W5q~;J`$J6_ex8T_g0?`o&Efj^wO{yr;PBGow#<*+XtZ%pRA?xN|YkZ^Za+2 z^EP`1cvLfQT!^aE_#JwNbA2OQ;EbPFRIld6uIrNyh&R1k8UbWNVRfV7=PD&VlEre% z-`I=hPVG&K(&;7-xbs%G3etPNKGzfpR5QbW7ZljJH}OyYd$!f-3=pL$>j|Xj=#wYk zoF(=x|7)x>KY4@p3TqU!oM?b0>ZaNx(LxMTWyC~!8?z4Km-{ENZAfboru(v~W@X*p zp?-VFu55aUh_wX?WsMT3&<=-$pmVk+USZSYo^$G|Fu~CBk5rdtrgo^1GJaSgN#B{f=SkG!=^Ip*a_ZZp7HnO&> z8JR09zjcXy{NTaIzq-Em(MrfHht$Vr99$_NDrgzd*7v64aVXjFOF*v3$(jdC?WV@= zm1*_j;qr_2GMp^cd*V2?Sq;K+h&{&Fxts|D4Tr4{rTV;+(?s7tdw#8o�L;T_{(l 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 literal 0 HcmV?d00001 diff --git a/versions/1.23.5/assets/js/docs.min.js b/versions/1.23.5/assets/js/docs.min.js new file mode 100644 index 0000000000..8c9d07e604 --- /dev/null +++ b/versions/1.23.5/assets/js/docs.min.js @@ -0,0 +1,22 @@ +!function(t,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(t.AnchorJS=e(),t.anchors=new t.AnchorJS)}(this,function(){"use strict";return function(t){function h(t){t.icon=t.hasOwnProperty("icon")?t.icon:"",t.visible=t.hasOwnProperty("visible")?t.visible:"hover",t.placement=t.hasOwnProperty("placement")?t.placement:"right",t.ariaLabel=t.hasOwnProperty("ariaLabel")?t.ariaLabel:"Anchor",t.class=t.hasOwnProperty("class")?t.class:"",t.truncate=t.hasOwnProperty("truncate")?Math.floor(t.truncate):64}function d(t){var e;if("string"==typeof t||t instanceof String)e=[].slice.call(document.querySelectorAll(t));else{if(!(Array.isArray(t)||t instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(t)}return e}this.options=t||{},this.elements=[],h(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(t){var e,n,o,i,r,A,a,l,c,s,u,f=[];if(h(this.options),"touch"===(u=this.options.visible)&&(u=this.isTouchDevice()?"always":"hover"),t||(t="h2, h3, h4, h5, h6"),0===(e=d(t)).length)return this;for(function(){if(null===document.head.querySelector("style.anchorjs")){var t,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(t=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,t),e.sheet.insertRule(" .anchorjs-link { opacity: 0; text-decoration: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus { opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after { content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face { font-family: "anchorjs-icons"; src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}}(),n=document.querySelectorAll("[id]"),o=[].map.call(n,function(t){return t.id}),r=0;r\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(t){var e=t.firstChild&&-1<(" "+t.firstChild.className+" ").indexOf(" anchorjs-link "),n=t.lastChild&&-1<(" "+t.lastChild.className+" ").indexOf(" anchorjs-link ");return e||n||!1}}}); +/*! + * clipboard.js v2.0.4 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function i(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,i),e.l=!0,e.exports}return i.m=n,i.c=o,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)i.d(n,o,function(t){return e[t]}.bind(null,o));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=0)}([function(t,e,n){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=function(){function o(t,e){for(var n=0;n + * Licensed under MIT (https://github.com/Johann-S/bs-custom-file-input/blob/master/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.bsCustomFileInput=e()}(this,function(){"use strict";var f={CUSTOMFILE:'.custom-file input[type="file"]',CUSTOMFILELABEL:".custom-file-label",FORM:"form",INPUT:"input"},o=function(t){if(0 h2, .bd-content > h3, .bd-content > h4, .bd-content > h5");i(".bd-content").children("h2, h3, h4, h5").wrapInner('');bsCustomFileInput.init()})})(jQuery);(function(){"use strict";function t(){var t=/MSIE ([0-9.]+)/.exec(window.navigator.userAgent);if(t===null){return null}var e=parseInt(t[1],10);var n=Math.floor(e);return n}function e(){var t=new Function("/*@cc_on return @_jscript_version; @*/")();if(typeof t==="undefined"){return 11}if(t<9){return 8}return t}var n=window.navigator.userAgent;if(n.indexOf("Opera")>-1||n.indexOf("Presto")>-1){return}var o=t();if(o===null){return}var i=e();if(o!==i){window.alert("WARNING: You appear to be using IE"+i+" in IE"+o+" emulation mode.\nIE emulation modes can behave significantly differently from ACTUAL older versions of IE.\nPLEASE DON'T FILE BOOTSTRAP BUGS based on testing in IE emulation modes!")}})();(function(){"use strict";if(!window.docsearch){return}var t=document.getElementById("search-input");var e=t.getAttribute("data-docs-version");function o(){var t=window.location;var e=t.origin;if(!e){var n=t.port?":"+t.port:"";e=t.protocol+"//"+t.hostname+n}return e}window.docsearch({appId:"FXDJ517Z8G",apiKey:"9b89c4a7048370f4809b0bc77b2564ac",indexName:"bootstrap-table",inputSelector:"#search-input",transformData:function(t){return t.map(function(t){var e=o();var n=/^https?:\/\/bootstrap\-table\.wenzhixin\.net\.cn/;t.url=e.match(n)?t.url:t.url.replace(n,"");if(t.anchor==="content"){t.url=t.url.replace(/#content$/,"");t.anchor=null}return t})},debug:false})})(); diff --git a/versions/1.23.5/assets/js/supports.js b/versions/1.23.5/assets/js/supports.js new file mode 100644 index 0000000000..97d951bef5 --- /dev/null +++ b/versions/1.23.5/assets/js/supports.js @@ -0,0 +1,34 @@ +$(function () { + $.getJSON('https://examples.wenzhixin.net.cn/opencollective/supports.json', function (res) { + var ranks = [ + { + title: 'Gold', + minimum: 200 + }, + { + title: 'Bronze', + minimum: 20, + maximum: 200 + }, + { + title: 'Backer', + maximum: 20 + } + ] + + ranks.forEach(function (rank) { + rank.supports = res.filter(function (row) { + return row.totalDonations >= (rank.minimum || 0) && + row.totalDonations < (rank.maximum || Number.MAX_VALUE) + }) + }) + + new window.Vue({ + el: '#supports', + data: { + ranks: ranks + } + }) + $('#supports').show() + }) +}) diff --git a/versions/1.23.5/assets/js/themes/assets/themes-CVLjNXsq.css b/versions/1.23.5/assets/js/themes/assets/themes-CVLjNXsq.css new file mode 100644 index 0000000000..8397a2e0ab --- /dev/null +++ b/versions/1.23.5/assets/js/themes/assets/themes-CVLjNXsq.css @@ -0,0 +1 @@ +ul.categories-list[data-v-7baa4dc0]{list-style-type:none;margin-top:-88px;z-index:9999;padding:20px 15px;position:relative;border:0;z-index:1;background-color:#5d4a8e;border-radius:8px;box-shadow:0 13px 27px -5px #32325d40,0 8px 16px -8px #0000004d,0 -6px 16px -6px #00000006;width:100%}ul.categories-list>li[data-v-7baa4dc0]{float:left;display:block;padding:3px 0}ul.categories-list>li>a[data-v-7baa4dc0]{display:block;text-align:center;padding:12px;font-weight:600;border-radius:30px;font-size:12px;margin-left:0;margin-right:10px;text-decoration:none;color:#fff;text-transform:uppercase;transition:background .2s}ul.categories-list>li>a[data-v-7baa4dc0]:hover,ul.categories-list>li.active>a[data-v-7baa4dc0]{color:#6d4eba;background:#fff}a[data-v-e7b55c40]{text-decoration:none}.title[data-v-e7b55c40]{font-size:28px;font-weight:300;margin:7px 0 20px;font-weight:400;color:#777}.free[data-v-e7b55c40]{color:#777;font-size:15px}.card[data-v-e7b55c40]{border-radius:8px;position:relative;margin-bottom:60px;border:0}.card .thumbnail[data-v-e7b55c40]{border:0 none;padding:0;margin:0;min-height:250px;position:relative;background:transparent}.card-small .thumbnail[data-v-e7b55c40]{min-height:200px}.card .thumbnail img[data-v-e7b55c40]{width:100%;height:100%}.card .thumbnail>img[data-v-e7b55c40]{border-radius:8px;box-shadow:0 25px 20px -21px #00000091}.card .details[data-v-e7b55c40]{top:0;display:block;height:60px;padding:10px 15px 0;position:absolute;width:100%;border-radius:8px 8px 0 0}.card .header[data-v-e7b55c40],.card .main[data-v-e7b55c40],.card .footer[data-v-e7b55c40]{display:block}.card .time[data-v-e7b55c40]{color:#777;font-size:15px;margin-top:2px;text-transform:uppercase}.card .time.premium-product[data-v-e7b55c40]{color:#444;font-size:19px;margin:1px}.card .numbers[data-v-e7b55c40]{color:#fff;float:right;margin-top:6px;text-shadow:0 2px 3px rgba(0,0,0,.34)}.card .numbers .downloads[data-v-e7b55c40],.card .numbers .comments-icon[data-v-e7b55c40]{margin-left:6px;font-size:15px;font-weight:500}.card .numbers .fa[data-v-e7b55c40]{font-size:18px}.card .description[data-v-e7b55c40]{color:#fff;margin-top:40px;height:125px;font-size:18px;opacity:.7}.card a:hover .description[data-v-e7b55c40]{opacity:1}.card .actions .btn[data-v-e7b55c40]{margin-left:5px;margin-right:5px;top:50%;position:relative;transform:translateY(-50%);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%)}.card .actions .btn-round[data-v-e7b55c40]:not(.btn-radius){font-size:18px;padding:14px;line-height:1;display:inline-block;width:48px;height:48px}.btn-neutral.btn-fill[data-v-e7b55c40]{color:#666!important;background-color:#fff;opacity:1;filter:alpha(opacity=100)}.btn-round[data-v-e7b55c40]{border-width:1px;border-radius:30px!important;opacity:.79;padding:9px 18px}.card .thumb-cover[data-v-e7b55c40]{padding:15px 20px;height:100%;top:0;position:absolute;opacity:0;display:block;width:100%;background-color:#000000bf;z-index:3;content:"";left:0;border-radius:8px}.card .actions[data-v-e7b55c40]{position:absolute;z-index:3;top:50%;left:0;text-align:center;width:100%;height:0;opacity:0;transition:all .5s ease;-webkit-transition:all .5s ease;-moz-transition:all .5s ease}.card:hover .thumb-cover[data-v-e7b55c40],.card:hover .actions[data-v-e7b55c40]{opacity:1}.card-small .actions[data-v-e7b55c40]{height:55px;font-size:14px}.card:hover .actions[data-v-e7b55c40]{opacity:1}.card .title[data-v-e7b55c40]{margin-top:45px;min-height:115px}.card a .title h3[data-v-e7b55c40]{color:#fff;font-size:24px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.57)}.card .user[data-v-e7b55c40]{font-weight:400;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.23);line-height:20px;display:block}.card .user .name[data-v-e7b55c40]{line-height:35px;margin-left:10px;font-size:16px;float:left}.card .user .user-photo[data-v-e7b55c40]{width:35px;height:35px;border:2px solid #FFFFFF;border-radius:50%;overflow:hidden;float:left}.card .user-photo img[data-v-e7b55c40]{width:33px}.card-info[data-v-e7b55c40]{padding:15px;border-radius:0 0 12px 12px}.card-info [class^=circle-][data-v-e7b55c40]{float:left;margin-right:5px}.card-info a[data-v-e7b55c40]:not(.btn){color:#434343}.card-info a[data-v-e7b55c40]:not(.btn):hover{color:#232323}.card-info .actions a[data-v-e7b55c40]{color:#777}.card-info .actions a[data-v-e7b55c40]:hover{color:#555}.card-info .actions .blue-text[data-v-e7b55c40]{color:#0bf}.card-info .actions .blue-text[data-v-e7b55c40]:hover{color:#3883c4}.card-info h3[data-v-e7b55c40]{margin-top:10px;margin-bottom:5px;font-size:18px}.card-small .card-info h3[data-v-e7b55c40]{font-size:18px}.card-info p[data-v-e7b55c40]{font-size:14px;margin:0;color:#666;min-height:50px}.card-info .label[data-v-e7b55c40]{background:transparent;border:1px solid;border-radius:14px;padding:5px 10px;font-size:10px;text-transform:uppercase;position:relative;top:-4px}.card-info .label.label-danger[data-v-e7b55c40]{background:transparent}.card-info .label .fa[data-v-e7b55c40]{font-size:12px}@media (max-width: 800px){.card.card-bundle .thumbnail[data-v-e7b55c40]{min-height:150px}.card.card-bundle .details .framework-logo[data-v-e7b55c40]{padding-top:20px}.card.card-bundle .details .framework-logo img[data-v-e7b55c40]{width:40px;height:40px}.card.card-bundle .details .framework-logo img.default[data-v-e7b55c40],.card.card-bundle .details .framework-logo img.material[data-v-e7b55c40]{width:30px;height:30px}.card.card-bundle .details .framework-logo p[data-v-e7b55c40]{padding-top:5px;font-size:20px}}@media (max-width: 1100px){.card.card-bundle .details .bundle-details[data-v-e7b55c40]{padding:10px}.card.card-bundle .details .bundle-details i[data-v-e7b55c40],.card.card-bundle .details .bundle-details span[data-v-e7b55c40]{font-size:20px}}@media (min-width: 801px) and (max-width: 1100px){.card.card-bundle .details .framework-logo[data-v-e7b55c40]{padding-top:25px}.card.card-bundle .details .framework-logo img[data-v-e7b55c40]{width:50px;height:50px}.card.card-bundle .details .framework-logo img.default[data-v-e7b55c40],.card.card-bundle .details .framework-logo img.material[data-v-e7b55c40]{width:40px;height:40px}}.card.card-bundle .details[data-v-e7b55c40]{text-align:center;height:auto;color:#fff;height:100%}.card.card-bundle .details .bundle-details[data-v-e7b55c40]{position:absolute;width:100%;top:auto;left:0;right:0;bottom:0;padding:24px;margin-right:auto;margin-left:auto}.card.card-bundle .details .bundle-details i[data-v-e7b55c40]{font-size:30px}.card.card-bundle .details .bundle-details span[data-v-e7b55c40]{display:block;font-size:35px;font-weight:300}.card.card-bundle .details .bundle-details p[data-v-e7b55c40]{font-size:12px;font-weight:500}.card.card-bundle .details .framework-logo[data-v-e7b55c40]{position:absolute;width:100%;padding-bottom:5px;padding-top:40px;left:0;right:0;top:0;margin-right:auto;margin-left:auto}.card.card-bundle .details .framework-logo img[data-v-e7b55c40]{width:70px;height:70px;border-radius:50%}.card.card-bundle .details .framework-logo img.default[data-v-e7b55c40],.card.card-bundle .details .framework-logo img.material[data-v-e7b55c40]{width:50px;height:50px;margin-left:10px;margin-top:10px;margin-bottom:10px}.card.card-bundle .details .framework-logo p[data-v-e7b55c40]{padding-top:20px;font-size:30px;font-weight:400}.card.card-bundle .mask[data-v-e7b55c40]{display:block;position:absolute;width:100%;height:100%;left:0;top:0;opacity:.8;border-radius:8px}.card .authors-container[data-v-e7b55c40]{width:38px}.card .authors-container[data-collaborators="2"][data-v-e7b55c40]{width:60px}.card .authors-container[data-collaborators="3"][data-v-e7b55c40]{width:80px}.card .authors-container[data-collaborators="4"][data-v-e7b55c40]{width:100px}.card .authors-container .author[data-v-e7b55c40]:nth-child(2){margin-left:-14px}.card .authors-container .author[data-v-e7b55c40]:nth-child(3){margin-left:-14px}.card .authors-container .author[data-v-e7b55c40]:nth-child(4){margin-left:-14px}.card .authors-container[data-v-e7b55c40]{display:inline-block}.card .authors-container>.author>.account-photo[data-v-e7b55c40]{width:36px;height:36px}.card .author>.account-photo.account-product-owner[data-v-e7b55c40]{border-color:#ff9500}.bs-tooltip-top .arrow:before{border-top-color:#fae5a8}.tooltip-inner{background:#fae5a8;color:#724729} diff --git a/versions/1.23.5/assets/js/themes/assets/themes-C_IVHFtD.js b/versions/1.23.5/assets/js/themes/assets/themes-C_IVHFtD.js new file mode 100644 index 0000000000..72a583d814 --- /dev/null +++ b/versions/1.23.5/assets/js/themes/assets/themes-C_IVHFtD.js @@ -0,0 +1,17 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function s(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(r){if(r.ep)return;r.ep=!0;const o=s(r);fetch(r.href,o)}})();/** +* @vue/shared v3.4.31 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function xs(e,t){const s=new Set(e.split(","));return n=>s.has(n)}const D={},Je=[],le=()=>{},Lr=()=>!1,Ht=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),vs=e=>e.startsWith("onUpdate:"),G=Object.assign,ws=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},jr=Object.prototype.hasOwnProperty,P=(e,t)=>jr.call(e,t),C=Array.isArray,Ge=e=>$t(e)==="[object Map]",Cn=e=>$t(e)==="[object Set]",I=e=>typeof e=="function",W=e=>typeof e=="string",Le=e=>typeof e=="symbol",B=e=>e!==null&&typeof e=="object",Fn=e=>(B(e)||I(e))&&I(e.then)&&I(e.catch),On=Object.prototype.toString,$t=e=>On.call(e),Nr=e=>$t(e).slice(8,-1),In=e=>$t(e)==="[object Object]",Es=e=>W(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ot=xs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Dt=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},Hr=/-(\w)/g,ke=Dt(e=>e.replace(Hr,(t,s)=>s?s.toUpperCase():"")),$r=/\B([A-Z])/g,Ze=Dt(e=>e.replace($r,"-$1").toLowerCase()),Sn=Dt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Zt=Dt(e=>e?`on${Sn(e)}`:""),Me=(e,t)=>!Object.is(e,t),Qt=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},Dr=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Js;const Rn=()=>Js||(Js=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ts(e){if(C(e)){const t={};for(let s=0;s{if(s){const n=s.split(Br);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Ut(e){let t="";if(W(e))t=e;else if(C(e))for(let s=0;s!!(e&&e.__v_isRef===!0),ze=e=>W(e)?e:e==null?"":C(e)||B(e)&&(e.toString===On||!I(e.toString))?Ln(e)?ze(e.value):JSON.stringify(e,jn,2):String(e),jn=(e,t)=>Ln(t)?jn(e,t.value):Ge(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,r],o)=>(s[es(n,o)+" =>"]=r,s),{})}:Cn(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>es(s))}:Le(t)?es(t):B(t)&&!C(t)&&!In(t)?String(t):t,es=(e,t="")=>{var s;return Le(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/** +* @vue/reactivity v3.4.31 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let ue;class zr{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=ue,!t&&ue&&(this.index=(ue.scopes||(ue.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const s=ue;try{return ue=this,t()}finally{ue=s}}}on(){ue=this}off(){ue=this.parent}stop(t){if(this._active){let s,n;for(s=0,n=this.effects.length;s=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),Ne()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Pe,s=Ke;try{return Pe=!0,Ke=this,this._runnings++,Gs(this),this.fn()}finally{Ys(this),this._runnings--,Ke=s,Pe=t}}stop(){this.active&&(Gs(this),Ys(this),this.onStop&&this.onStop(),this.active=!1)}}function Yr(e){return e.value}function Gs(e){e._trackId++,e._depsLength=0}function Ys(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const s=new Map;return s.cleanup=e,s.computed=t,s},us=new WeakMap,We=Symbol(""),as=Symbol("");function te(e,t,s){if(Pe&&Ke){let n=us.get(e);n||us.set(e,n=new Map);let r=n.get(s);r||n.set(s,r=Un(()=>n.delete(s))),$n(Ke,r)}}function Te(e,t,s,n,r,o){const i=us.get(e);if(!i)return;let c=[];if(t==="clear")c=[...i.values()];else if(s==="length"&&C(e)){const u=Number(n);i.forEach((d,h)=>{(h==="length"||!Le(h)&&h>=u)&&c.push(d)})}else switch(s!==void 0&&c.push(i.get(s)),t){case"add":C(e)?Es(s)&&c.push(i.get("length")):(c.push(i.get(We)),Ge(e)&&c.push(i.get(as)));break;case"delete":C(e)||(c.push(i.get(We)),Ge(e)&&c.push(i.get(as)));break;case"set":Ge(e)&&c.push(i.get(We));break}Cs();for(const u of c)u&&Dn(u,4);Fs()}const kr=xs("__proto__,__v_isRef,__isVue"),Bn=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Le)),ks=Xr();function Xr(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...s){const n=L(this);for(let o=0,i=this.length;o{e[t]=function(...s){je(),Cs();const n=L(this)[t].apply(this,s);return Fs(),Ne(),n}}),e}function Zr(e){Le(e)||(e=String(e));const t=L(this);return te(t,"has",e),t.hasOwnProperty(e)}class Vn{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){const r=this._isReadonly,o=this._isShallow;if(s==="__v_isReactive")return!r;if(s==="__v_isReadonly")return r;if(s==="__v_isShallow")return o;if(s==="__v_raw")return n===(r?o?ao:zn:o?qn:Wn).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const i=C(t);if(!r){if(i&&P(ks,s))return Reflect.get(ks,s,n);if(s==="hasOwnProperty")return Zr}const c=Reflect.get(t,s,n);return(Le(s)?Bn.has(s):kr(s))||(r||te(t,"get",s),o)?c:se(c)?i&&Es(s)?c:c.value:B(c)?r?Jn(c):Ss(c):c}}class Kn extends Vn{constructor(t=!1){super(!1,t)}set(t,s,n,r){let o=t[s];if(!this._isShallow){const u=ut(o);if(!Rt(n)&&!ut(n)&&(o=L(o),n=L(n)),!C(t)&&se(o)&&!se(n))return u?!1:(o.value=n,!0)}const i=C(t)&&Es(s)?Number(s)e,Bt=e=>Reflect.getPrototypeOf(e);function vt(e,t,s=!1,n=!1){e=e.__v_raw;const r=L(e),o=L(t);s||(Me(t,o)&&te(r,"get",t),te(r,"get",o));const{has:i}=Bt(r),c=n?Os:s?Rs:at;if(i.call(r,t))return c(e.get(t));if(i.call(r,o))return c(e.get(o));e!==r&&e.get(t)}function wt(e,t=!1){const s=this.__v_raw,n=L(s),r=L(e);return t||(Me(e,r)&&te(n,"has",e),te(n,"has",r)),e===r?s.has(e):s.has(e)||s.has(r)}function Et(e,t=!1){return e=e.__v_raw,!t&&te(L(e),"iterate",We),Reflect.get(e,"size",e)}function Xs(e){e=L(e);const t=L(this);return Bt(t).has.call(t,e)||(t.add(e),Te(t,"add",e,e)),this}function Zs(e,t){t=L(t);const s=L(this),{has:n,get:r}=Bt(s);let o=n.call(s,e);o||(e=L(e),o=n.call(s,e));const i=r.call(s,e);return s.set(e,t),o?Me(t,i)&&Te(s,"set",e,t):Te(s,"add",e,t),this}function Qs(e){const t=L(this),{has:s,get:n}=Bt(t);let r=s.call(t,e);r||(e=L(e),r=s.call(t,e)),n&&n.call(t,e);const o=t.delete(e);return r&&Te(t,"delete",e,void 0),o}function en(){const e=L(this),t=e.size!==0,s=e.clear();return t&&Te(e,"clear",void 0,void 0),s}function Tt(e,t){return function(n,r){const o=this,i=o.__v_raw,c=L(i),u=t?Os:e?Rs:at;return!e&&te(c,"iterate",We),i.forEach((d,h)=>n.call(r,u(d),u(h),o))}}function At(e,t,s){return function(...n){const r=this.__v_raw,o=L(r),i=Ge(o),c=e==="entries"||e===Symbol.iterator&&i,u=e==="keys"&&i,d=r[e](...n),h=s?Os:t?Rs:at;return!t&&te(o,"iterate",u?as:We),{next(){const{value:x,done:E}=d.next();return E?{value:x,done:E}:{value:c?[h(x[0]),h(x[1])]:h(x),done:E}},[Symbol.iterator](){return this}}}}function Fe(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function no(){const e={get(o){return vt(this,o)},get size(){return Et(this)},has:wt,add:Xs,set:Zs,delete:Qs,clear:en,forEach:Tt(!1,!1)},t={get(o){return vt(this,o,!1,!0)},get size(){return Et(this)},has:wt,add:Xs,set:Zs,delete:Qs,clear:en,forEach:Tt(!1,!0)},s={get(o){return vt(this,o,!0)},get size(){return Et(this,!0)},has(o){return wt.call(this,o,!0)},add:Fe("add"),set:Fe("set"),delete:Fe("delete"),clear:Fe("clear"),forEach:Tt(!0,!1)},n={get(o){return vt(this,o,!0,!0)},get size(){return Et(this,!0)},has(o){return wt.call(this,o,!0)},add:Fe("add"),set:Fe("set"),delete:Fe("delete"),clear:Fe("clear"),forEach:Tt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=At(o,!1,!1),s[o]=At(o,!0,!1),t[o]=At(o,!1,!0),n[o]=At(o,!0,!0)}),[e,s,t,n]}const[ro,oo,io,lo]=no();function Is(e,t){const s=t?e?lo:io:e?oo:ro;return(n,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?n:Reflect.get(P(s,r)&&r in n?s:n,r,o)}const co={get:Is(!1,!1)},fo={get:Is(!1,!0)},uo={get:Is(!0,!1)};const Wn=new WeakMap,qn=new WeakMap,zn=new WeakMap,ao=new WeakMap;function ho(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function po(e){return e.__v_skip||!Object.isExtensible(e)?0:ho(Nr(e))}function Ss(e){return ut(e)?e:Ps(e,!1,eo,co,Wn)}function mo(e){return Ps(e,!1,so,fo,qn)}function Jn(e){return Ps(e,!0,to,uo,zn)}function Ps(e,t,s,n,r){if(!B(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const i=po(e);if(i===0)return e;const c=new Proxy(e,i===2?n:s);return r.set(e,c),c}function it(e){return ut(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function ut(e){return!!(e&&e.__v_isReadonly)}function Rt(e){return!!(e&&e.__v_isShallow)}function Gn(e){return e?!!e.__v_raw:!1}function L(e){const t=e&&e.__v_raw;return t?L(t):e}function go(e){return Object.isExtensible(e)&&Pn(e,"__v_skip",!0),e}const at=e=>B(e)?Ss(e):e,Rs=e=>B(e)?Jn(e):e;class Yn{constructor(t,s,n,r){this.getter=t,this._setter=s,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new As(()=>t(this._value),()=>Ft(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=n}get value(){const t=L(this);return(!t._cacheable||t.effect.dirty)&&Me(t._value,t._value=t.effect.run())&&Ft(t,4),kn(t),t.effect._dirtyLevel>=2&&Ft(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function _o(e,t,s=!1){let n,r;const o=I(e);return o?(n=e,r=le):(n=e.get,r=e.set),new Yn(n,r,o||!r,s)}function kn(e){var t;Pe&&Ke&&(e=L(e),$n(Ke,(t=e.dep)!=null?t:e.dep=Un(()=>e.dep=void 0,e instanceof Yn?e:void 0)))}function Ft(e,t=4,s,n){e=L(e);const r=e.dep;r&&Dn(r,t)}function se(e){return!!(e&&e.__v_isRef===!0)}function Xn(e){return bo(e,!1)}function bo(e,t){return se(e)?e:new yo(e,t)}class yo{constructor(t,s){this.__v_isShallow=s,this.dep=void 0,this.__v_isRef=!0,this._rawValue=s?t:L(t),this._value=s?t:at(t)}get value(){return kn(this),this._value}set value(t){const s=this.__v_isShallow||Rt(t)||ut(t);t=s?t:L(t),Me(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=s?t:at(t),Ft(this,4))}}function ds(e){return se(e)?e.value:e}const xo={get:(e,t,s)=>ds(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const r=e[t];return se(r)&&!se(s)?(r.value=s,!0):Reflect.set(e,t,s,n)}};function Zn(e){return it(e)?e:new Proxy(e,xo)}/** +* @vue/runtime-core v3.4.31 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Re(e,t,s,n){try{return n?e(...n):e()}catch(r){Vt(r,t,s)}}function de(e,t,s,n){if(I(e)){const r=Re(e,t,s,n);return r&&Fn(r)&&r.catch(o=>{Vt(o,t,s)}),r}if(C(e)){const r=[];for(let o=0;o>>1,r=k[n],o=ht(r);obe&&k.splice(t,1)}function Ao(e){C(e)?Ye.push(...e):(!Oe||!Oe.includes(e,e.allowRecurse?Ve+1:Ve))&&Ye.push(e),er()}function tn(e,t,s=dt?be+1:0){for(;sht(s)-ht(n));if(Ye.length=0,Oe){Oe.push(...t);return}for(Oe=t,Ve=0;Vee.id==null?1/0:e.id,Co=(e,t)=>{const s=ht(e)-ht(t);if(s===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return s};function sr(e){hs=!1,dt=!0,k.sort(Co);try{for(be=0;beW(O)?O.trim():O)),x&&(r=s.map(Dr))}let c,u=n[c=Zt(t)]||n[c=Zt(ke(t))];!u&&o&&(u=n[c=Zt(Ze(t))]),u&&de(u,e,6,r);const d=n[c+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,de(d,e,6,r)}}function nr(e,t,s=!1){const n=t.emitsCache,r=n.get(e);if(r!==void 0)return r;const o=e.emits;let i={},c=!1;if(!I(e)){const u=d=>{const h=nr(d,t,!0);h&&(c=!0,G(i,h))};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!o&&!c?(B(e)&&n.set(e,null),null):(C(o)?o.forEach(u=>i[u]=null):G(i,o),B(e)&&n.set(e,i),i)}function Kt(e,t){return!e||!Ht(t)?!1:(t=t.slice(2).replace(/Once$/,""),P(e,t[0].toLowerCase()+t.slice(1))||P(e,Ze(t))||P(e,t))}let ce=null,Wt=null;function Mt(e){const t=ce;return ce=e,Wt=e&&e.type.__scopeId||null,t}function rr(e){Wt=e}function or(){Wt=null}function Oo(e,t=ce,s){if(!t||e._n)return e;const n=(...r)=>{n._d&&hn(-1);const o=Mt(t);let i;try{i=e(...r)}finally{Mt(o),n._d&&hn(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function ts(e){const{type:t,vnode:s,proxy:n,withProxy:r,propsOptions:[o],slots:i,attrs:c,emit:u,render:d,renderCache:h,props:x,data:E,setupState:O,ctx:V,inheritAttrs:j}=e,ne=Mt(e);let q,Y;try{if(s.shapeFlag&4){const z=r||n,oe=z;q=_e(d.call(oe,z,h,x,O,E,V)),Y=c}else{const z=t;q=_e(z.length>1?z(x,{attrs:c,slots:i,emit:u}):z(x,null)),Y=t.props?c:Io(c)}}catch(z){ft.length=0,Vt(z,e,1),q=Ae(pt)}let N=q;if(Y&&j!==!1){const z=Object.keys(Y),{shapeFlag:oe}=N;z.length&&oe&7&&(o&&z.some(vs)&&(Y=So(Y,o)),N=Xe(N,Y,!1,!0))}return s.dirs&&(N=Xe(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(s.dirs):s.dirs),s.transition&&(N.transition=s.transition),q=N,Mt(ne),q}const Io=e=>{let t;for(const s in e)(s==="class"||s==="style"||Ht(s))&&((t||(t={}))[s]=e[s]);return t},So=(e,t)=>{const s={};for(const n in e)(!vs(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function Po(e,t,s){const{props:n,children:r,component:o}=e,{props:i,children:c,patchFlag:u}=t,d=o.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&u>=0){if(u&1024)return!0;if(u&16)return n?sn(n,i,d):!!i;if(u&8){const h=t.dynamicProps;for(let x=0;xe.__isSuspense;function jo(e,t){t&&t.pendingBranch?C(e)?t.effects.push(...e):t.effects.push(e):Ao(e)}function qt(e,t,s=Q,n=!1){if(s){const r=s[e]||(s[e]=[]),o=t.__weh||(t.__weh=(...i)=>{je();const c=gt(s),u=de(t,s,e,i);return c(),Ne(),u});return n?r.unshift(o):r.push(o),o}}const Ce=e=>(t,s=Q)=>{(!Jt||e==="sp")&&qt(e,(...n)=>t(...n),s)},No=Ce("bm"),Ho=Ce("m"),$o=Ce("bu"),Do=Ce("u"),Uo=Ce("bum"),ir=Ce("um"),Bo=Ce("sp"),Vo=Ce("rtg"),Ko=Ce("rtc");function Wo(e,t=Q){qt("ec",e,t)}function qo(e,t){if(ce===null)return e;const s=Gt(ce),n=e.dirs||(e.dirs=[]);for(let r=0;rt(i,c,void 0,o));else{const i=Object.keys(e);r=new Array(i.length);for(let c=0,u=i.length;c!!e.type.__asyncLoader,ps=e=>e?Cr(e)?Gt(e):ps(e.parent):null,lt=G(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ps(e.parent),$root:e=>ps(e.root),$emit:e=>e.emit,$options:e=>Ns(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Ls(e.update)}),$nextTick:e=>e.n||(e.n=wo.bind(e.proxy)),$watch:e=>di.bind(e)}),ss=(e,t)=>e!==D&&!e.__isScriptSetup&&P(e,t),zo={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:r,props:o,accessCache:i,type:c,appContext:u}=e;let d;if(t[0]!=="$"){const O=i[t];if(O!==void 0)switch(O){case 1:return n[t];case 2:return r[t];case 4:return s[t];case 3:return o[t]}else{if(ss(n,t))return i[t]=1,n[t];if(r!==D&&P(r,t))return i[t]=2,r[t];if((d=e.propsOptions[0])&&P(d,t))return i[t]=3,o[t];if(s!==D&&P(s,t))return i[t]=4,s[t];ms&&(i[t]=0)}}const h=lt[t];let x,E;if(h)return t==="$attrs"&&te(e.attrs,"get",""),h(e);if((x=c.__cssModules)&&(x=x[t]))return x;if(s!==D&&P(s,t))return i[t]=4,s[t];if(E=u.config.globalProperties,P(E,t))return E[t]},set({_:e},t,s){const{data:n,setupState:r,ctx:o}=e;return ss(r,t)?(r[t]=s,!0):n!==D&&P(n,t)?(n[t]=s,!0):P(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:r,propsOptions:o}},i){let c;return!!s[i]||e!==D&&P(e,i)||ss(t,i)||(c=o[0])&&P(c,i)||P(n,i)||P(lt,i)||P(r.config.globalProperties,i)},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:P(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function nn(e){return C(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let ms=!0;function Jo(e){const t=Ns(e),s=e.proxy,n=e.ctx;ms=!1,t.beforeCreate&&rn(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:c,provide:u,inject:d,created:h,beforeMount:x,mounted:E,beforeUpdate:O,updated:V,activated:j,deactivated:ne,beforeDestroy:q,beforeUnmount:Y,destroyed:N,unmounted:z,render:oe,renderTracked:R,renderTriggered:ve,errorCaptured:he,serverPrefetch:Yt,expose:He,inheritAttrs:Qe,components:_t,directives:bt,filters:kt}=t;if(d&&Go(d,n,null),i)for(const U in i){const H=i[U];I(H)&&(n[U]=H.bind(s))}if(r){const U=r.call(s,s);B(U)&&(e.data=Ss(U))}if(ms=!0,o)for(const U in o){const H=o[U],$e=I(H)?H.bind(s,s):I(H.get)?H.get.bind(s,s):le,yt=!I(H)&&I(H.set)?H.set.bind(s):le,De=Pi({get:$e,set:yt});Object.defineProperty(n,U,{enumerable:!0,configurable:!0,get:()=>De.value,set:pe=>De.value=pe})}if(c)for(const U in c)lr(c[U],n,s,U);if(u){const U=I(u)?u.call(s):u;Reflect.ownKeys(U).forEach(H=>{ei(H,U[H])})}h&&rn(h,e,"c");function X(U,H){C(H)?H.forEach($e=>U($e.bind(s))):H&&U(H.bind(s))}if(X(No,x),X(Ho,E),X($o,O),X(Do,V),X(hi,j),X(pi,ne),X(Wo,he),X(Ko,R),X(Vo,ve),X(Uo,Y),X(ir,z),X(Bo,Yt),C(He))if(He.length){const U=e.exposed||(e.exposed={});He.forEach(H=>{Object.defineProperty(U,H,{get:()=>s[H],set:$e=>s[H]=$e})})}else e.exposed||(e.exposed={});oe&&e.render===le&&(e.render=oe),Qe!=null&&(e.inheritAttrs=Qe),_t&&(e.components=_t),bt&&(e.directives=bt)}function Go(e,t,s=le){C(e)&&(e=gs(e));for(const n in e){const r=e[n];let o;B(r)?"default"in r?o=It(r.from||n,r.default,!0):o=It(r.from||n):o=It(r),se(o)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[n]=o}}function rn(e,t,s){de(C(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function lr(e,t,s,n){const r=n.includes(".")?xr(s,n):()=>s[n];if(W(e)){const o=t[e];I(o)&&rs(r,o)}else if(I(e))rs(r,e.bind(s));else if(B(e))if(C(e))e.forEach(o=>lr(o,t,s,n));else{const o=I(e.handler)?e.handler.bind(s):t[e.handler];I(o)&&rs(r,o,e)}}function Ns(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,c=o.get(t);let u;return c?u=c:!r.length&&!s&&!n?u=t:(u={},r.length&&r.forEach(d=>Lt(u,d,i,!0)),Lt(u,t,i)),B(t)&&o.set(t,u),u}function Lt(e,t,s,n=!1){const{mixins:r,extends:o}=t;o&&Lt(e,o,s,!0),r&&r.forEach(i=>Lt(e,i,s,!0));for(const i in t)if(!(n&&i==="expose")){const c=Yo[i]||s&&s[i];e[i]=c?c(e[i],t[i]):t[i]}return e}const Yo={data:on,props:ln,emits:ln,methods:rt,computed:rt,beforeCreate:Z,created:Z,beforeMount:Z,mounted:Z,beforeUpdate:Z,updated:Z,beforeDestroy:Z,beforeUnmount:Z,destroyed:Z,unmounted:Z,activated:Z,deactivated:Z,errorCaptured:Z,serverPrefetch:Z,components:rt,directives:rt,watch:Xo,provide:on,inject:ko};function on(e,t){return t?e?function(){return G(I(e)?e.call(this,this):e,I(t)?t.call(this,this):t)}:t:e}function ko(e,t){return rt(gs(e),gs(t))}function gs(e){if(C(e)){const t={};for(let s=0;s1)return s&&I(t)?t.call(n&&n.proxy):t}}const fr={},ur=()=>Object.create(fr),ar=e=>Object.getPrototypeOf(e)===fr;function ti(e,t,s,n=!1){const r={},o=ur();e.propsDefaults=Object.create(null),dr(e,t,r,o);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);s?e.props=n?r:mo(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function si(e,t,s,n){const{props:r,attrs:o,vnode:{patchFlag:i}}=e,c=L(r),[u]=e.propsOptions;let d=!1;if((n||i>0)&&!(i&16)){if(i&8){const h=e.vnode.dynamicProps;for(let x=0;x{u=!0;const[E,O]=hr(x,t,!0);G(i,E),O&&c.push(...O)};!s&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!o&&!u)return B(e)&&n.set(e,Je),Je;if(C(o))for(let h=0;h-1,O[1]=j<0||V-1||P(O,"default"))&&c.push(x)}}}const d=[i,c];return B(e)&&n.set(e,d),d}function cn(e){return e[0]!=="$"&&!ot(e)}function fn(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function un(e,t){return fn(e)===fn(t)}function an(e,t){return C(t)?t.findIndex(s=>un(s,e)):I(t)&&un(t,e)?0:-1}const pr=e=>e[0]==="_"||e==="$stable",Hs=e=>C(e)?e.map(_e):[_e(e)],ni=(e,t,s)=>{if(t._n)return t;const n=Oo((...r)=>Hs(t(...r)),s);return n._c=!1,n},mr=(e,t,s)=>{const n=e._ctx;for(const r in e){if(pr(r))continue;const o=e[r];if(I(o))t[r]=ni(r,o,n);else if(o!=null){const i=Hs(o);t[r]=()=>i}}},gr=(e,t)=>{const s=Hs(t);e.slots.default=()=>s},ri=(e,t)=>{const s=e.slots=ur();if(e.vnode.shapeFlag&32){const n=t._;n?(G(s,t),Pn(s,"_",n,!0)):mr(t,s)}else t&&gr(e,t)},oi=(e,t,s)=>{const{vnode:n,slots:r}=e;let o=!0,i=D;if(n.shapeFlag&32){const c=t._;c?s&&c===1?o=!1:(G(r,t),!s&&c===1&&delete r._):(o=!t.$stable,mr(t,r)),i=t}else t&&(gr(e,t),i={default:1});if(o)for(const c in r)!pr(c)&&i[c]==null&&delete r[c]};function bs(e,t,s,n,r=!1){if(C(e)){e.forEach((E,O)=>bs(E,t&&(C(t)?t[O]:t),s,n,r));return}if(Ot(n)&&!r)return;const o=n.shapeFlag&4?Gt(n.component):n.el,i=r?null:o,{i:c,r:u}=e,d=t&&t.r,h=c.refs===D?c.refs={}:c.refs,x=c.setupState;if(d!=null&&d!==u&&(W(d)?(h[d]=null,P(x,d)&&(x[d]=null)):se(d)&&(d.value=null)),I(u))Re(u,c,12,[i,h]);else{const E=W(u),O=se(u);if(E||O){const V=()=>{if(e.f){const j=E?P(x,u)?x[u]:h[u]:u.value;r?C(j)&&ws(j,o):C(j)?j.includes(o)||j.push(o):E?(h[u]=[o],P(x,u)&&(x[u]=h[u])):(u.value=[o],e.k&&(h[e.k]=u.value))}else E?(h[u]=i,P(x,u)&&(x[u]=i)):O&&(u.value=i,e.k&&(h[e.k]=i))};i?(V.id=-1,ee(V,s)):V()}}}const ee=jo;function ii(e){return li(e)}function li(e,t){const s=Rn();s.__VUE__=!0;const{insert:n,remove:r,patchProp:o,createElement:i,createText:c,createComment:u,setText:d,setElementText:h,parentNode:x,nextSibling:E,setScopeId:O=le,insertStaticContent:V}=e,j=(l,f,a,p=null,m=null,b=null,v=void 0,_=null,y=!!f.dynamicChildren)=>{if(l===f)return;l&&!st(l,f)&&(p=xt(l),pe(l,m,b,!0),l=null),f.patchFlag===-2&&(y=!1,f.dynamicChildren=null);const{type:g,ref:w,shapeFlag:A}=f;switch(g){case zt:ne(l,f,a,p);break;case pt:q(l,f,a,p);break;case os:l==null&&Y(f,a,p,v);break;case ie:_t(l,f,a,p,m,b,v,_,y);break;default:A&1?oe(l,f,a,p,m,b,v,_,y):A&6?bt(l,f,a,p,m,b,v,_,y):(A&64||A&128)&&g.process(l,f,a,p,m,b,v,_,y,et)}w!=null&&m&&bs(w,l&&l.ref,b,f||l,!f)},ne=(l,f,a,p)=>{if(l==null)n(f.el=c(f.children),a,p);else{const m=f.el=l.el;f.children!==l.children&&d(m,f.children)}},q=(l,f,a,p)=>{l==null?n(f.el=u(f.children||""),a,p):f.el=l.el},Y=(l,f,a,p)=>{[l.el,l.anchor]=V(l.children,f,a,p,l.el,l.anchor)},N=({el:l,anchor:f},a,p)=>{let m;for(;l&&l!==f;)m=E(l),n(l,a,p),l=m;n(f,a,p)},z=({el:l,anchor:f})=>{let a;for(;l&&l!==f;)a=E(l),r(l),l=a;r(f)},oe=(l,f,a,p,m,b,v,_,y)=>{f.type==="svg"?v="svg":f.type==="math"&&(v="mathml"),l==null?R(f,a,p,m,b,v,_,y):Yt(l,f,m,b,v,_,y)},R=(l,f,a,p,m,b,v,_)=>{let y,g;const{props:w,shapeFlag:A,transition:T,dirs:F}=l;if(y=l.el=i(l.type,b,w&&w.is,w),A&8?h(y,l.children):A&16&&he(l.children,y,null,p,m,ns(l,b),v,_),F&&Ue(l,null,p,"created"),ve(y,l,l.scopeId,v,p),w){for(const $ in w)$!=="value"&&!ot($)&&o(y,$,null,w[$],b,l.children,p,m,we);"value"in w&&o(y,"value",null,w.value,b),(g=w.onVnodeBeforeMount)&&ge(g,p,l)}F&&Ue(l,null,p,"beforeMount");const S=ci(m,T);S&&T.beforeEnter(y),n(y,f,a),((g=w&&w.onVnodeMounted)||S||F)&&ee(()=>{g&&ge(g,p,l),S&&T.enter(y),F&&Ue(l,null,p,"mounted")},m)},ve=(l,f,a,p,m)=>{if(a&&O(l,a),p)for(let b=0;b{for(let g=y;g{const _=f.el=l.el;let{patchFlag:y,dynamicChildren:g,dirs:w}=f;y|=l.patchFlag&16;const A=l.props||D,T=f.props||D;let F;if(a&&Be(a,!1),(F=T.onVnodeBeforeUpdate)&&ge(F,a,f,l),w&&Ue(f,l,a,"beforeUpdate"),a&&Be(a,!0),g?He(l.dynamicChildren,g,_,a,p,ns(f,m),b):v||H(l,f,_,null,a,p,ns(f,m),b,!1),y>0){if(y&16)Qe(_,f,A,T,a,p,m);else if(y&2&&A.class!==T.class&&o(_,"class",null,T.class,m),y&4&&o(_,"style",A.style,T.style,m),y&8){const S=f.dynamicProps;for(let $=0;${F&&ge(F,a,f,l),w&&Ue(f,l,a,"updated")},p)},He=(l,f,a,p,m,b,v)=>{for(let _=0;_{if(a!==p){if(a!==D)for(const _ in a)!ot(_)&&!(_ in p)&&o(l,_,a[_],null,v,f.children,m,b,we);for(const _ in p){if(ot(_))continue;const y=p[_],g=a[_];y!==g&&_!=="value"&&o(l,_,g,y,v,f.children,m,b,we)}"value"in p&&o(l,"value",a.value,p.value,v)}},_t=(l,f,a,p,m,b,v,_,y)=>{const g=f.el=l?l.el:c(""),w=f.anchor=l?l.anchor:c("");let{patchFlag:A,dynamicChildren:T,slotScopeIds:F}=f;F&&(_=_?_.concat(F):F),l==null?(n(g,a,p),n(w,a,p),he(f.children||[],a,w,m,b,v,_,y)):A>0&&A&64&&T&&l.dynamicChildren?(He(l.dynamicChildren,T,a,m,b,v,_),(f.key!=null||m&&f===m.subTree)&&_r(l,f,!0)):H(l,f,a,w,m,b,v,_,y)},bt=(l,f,a,p,m,b,v,_,y)=>{f.slotScopeIds=_,l==null?f.shapeFlag&512?m.ctx.activate(f,a,p,v,y):kt(f,a,p,m,b,v,y):Ds(l,f,y)},kt=(l,f,a,p,m,b,v)=>{const _=l.component=Ai(l,p,m);if(vr(l)&&(_.ctx.renderer=et),Ci(_),_.asyncDep){if(m&&m.registerDep(_,X,v),!l.el){const y=_.subTree=Ae(pt);q(null,y,f,a)}}else X(_,l,f,a,m,b,v)},Ds=(l,f,a)=>{const p=f.component=l.component;if(Po(l,f,a))if(p.asyncDep&&!p.asyncResolved){U(p,f,a);return}else p.next=f,To(p.update),p.effect.dirty=!0,p.update();else f.el=l.el,p.vnode=f},X=(l,f,a,p,m,b,v)=>{const _=()=>{if(l.isMounted){let{next:w,bu:A,u:T,parent:F,vnode:S}=l;{const qe=br(l);if(qe){w&&(w.el=S.el,U(l,w,v)),qe.asyncDep.then(()=>{l.isUnmounted||_()});return}}let $=w,M;Be(l,!1),w?(w.el=S.el,U(l,w,v)):w=S,A&&Qt(A),(M=w.props&&w.props.onVnodeBeforeUpdate)&&ge(M,F,w,S),Be(l,!0);const J=ts(l),fe=l.subTree;l.subTree=J,j(fe,J,x(fe.el),xt(fe),l,m,b),w.el=J.el,$===null&&Ro(l,J.el),T&&ee(T,m),(M=w.props&&w.props.onVnodeUpdated)&&ee(()=>ge(M,F,w,S),m)}else{let w;const{el:A,props:T}=f,{bm:F,m:S,parent:$}=l,M=Ot(f);if(Be(l,!1),F&&Qt(F),!M&&(w=T&&T.onVnodeBeforeMount)&&ge(w,$,f),Be(l,!0),A&&Ks){const J=()=>{l.subTree=ts(l),Ks(A,l.subTree,l,m,null)};M?f.type.__asyncLoader().then(()=>!l.isUnmounted&&J()):J()}else{const J=l.subTree=ts(l);j(null,J,a,p,l,m,b),f.el=J.el}if(S&&ee(S,m),!M&&(w=T&&T.onVnodeMounted)){const J=f;ee(()=>ge(w,$,J),m)}(f.shapeFlag&256||$&&Ot($.vnode)&&$.vnode.shapeFlag&256)&&l.a&&ee(l.a,m),l.isMounted=!0,f=a=p=null}},y=l.effect=new As(_,le,()=>Ls(g),l.scope),g=l.update=()=>{y.dirty&&y.run()};g.id=l.uid,Be(l,!0),g()},U=(l,f,a)=>{f.component=l;const p=l.vnode.props;l.vnode=f,l.next=null,si(l,f.props,p,a),oi(l,f.children,a),je(),tn(l),Ne()},H=(l,f,a,p,m,b,v,_,y=!1)=>{const g=l&&l.children,w=l?l.shapeFlag:0,A=f.children,{patchFlag:T,shapeFlag:F}=f;if(T>0){if(T&128){yt(g,A,a,p,m,b,v,_,y);return}else if(T&256){$e(g,A,a,p,m,b,v,_,y);return}}F&8?(w&16&&we(g,m,b),A!==g&&h(a,A)):w&16?F&16?yt(g,A,a,p,m,b,v,_,y):we(g,m,b,!0):(w&8&&h(a,""),F&16&&he(A,a,p,m,b,v,_,y))},$e=(l,f,a,p,m,b,v,_,y)=>{l=l||Je,f=f||Je;const g=l.length,w=f.length,A=Math.min(g,w);let T;for(T=0;Tw?we(l,m,b,!0,!1,A):he(f,a,p,m,b,v,_,y,A)},yt=(l,f,a,p,m,b,v,_,y)=>{let g=0;const w=f.length;let A=l.length-1,T=w-1;for(;g<=A&&g<=T;){const F=l[g],S=f[g]=y?Ie(f[g]):_e(f[g]);if(st(F,S))j(F,S,a,null,m,b,v,_,y);else break;g++}for(;g<=A&&g<=T;){const F=l[A],S=f[T]=y?Ie(f[T]):_e(f[T]);if(st(F,S))j(F,S,a,null,m,b,v,_,y);else break;A--,T--}if(g>A){if(g<=T){const F=T+1,S=FT)for(;g<=A;)pe(l[g],m,b,!0),g++;else{const F=g,S=g,$=new Map;for(g=S;g<=T;g++){const re=f[g]=y?Ie(f[g]):_e(f[g]);re.key!=null&&$.set(re.key,g)}let M,J=0;const fe=T-S+1;let qe=!1,Ws=0;const tt=new Array(fe);for(g=0;g=fe){pe(re,m,b,!0);continue}let me;if(re.key!=null)me=$.get(re.key);else for(M=S;M<=T;M++)if(tt[M-S]===0&&st(re,f[M])){me=M;break}me===void 0?pe(re,m,b,!0):(tt[me-S]=g+1,me>=Ws?Ws=me:qe=!0,j(re,f[me],a,null,m,b,v,_,y),J++)}const qs=qe?fi(tt):Je;for(M=qs.length-1,g=fe-1;g>=0;g--){const re=S+g,me=f[re],zs=re+1{const{el:b,type:v,transition:_,children:y,shapeFlag:g}=l;if(g&6){De(l.component.subTree,f,a,p);return}if(g&128){l.suspense.move(f,a,p);return}if(g&64){v.move(l,f,a,et);return}if(v===ie){n(b,f,a);for(let A=0;A_.enter(b),m);else{const{leave:A,delayLeave:T,afterLeave:F}=_,S=()=>n(b,f,a),$=()=>{A(b,()=>{S(),F&&F()})};T?T(b,S,$):$()}else n(b,f,a)},pe=(l,f,a,p=!1,m=!1)=>{const{type:b,props:v,ref:_,children:y,dynamicChildren:g,shapeFlag:w,patchFlag:A,dirs:T,memoIndex:F}=l;if(A===-2&&(m=!1),_!=null&&bs(_,null,a,l,!0),F!=null&&(f.renderCache[F]=void 0),w&256){f.ctx.deactivate(l);return}const S=w&1&&T,$=!Ot(l);let M;if($&&(M=v&&v.onVnodeBeforeUnmount)&&ge(M,f,l),w&6)Mr(l.component,a,p);else{if(w&128){l.suspense.unmount(a,p);return}S&&Ue(l,null,f,"beforeUnmount"),w&64?l.type.remove(l,f,a,et,p):g&&(b!==ie||A>0&&A&64)?we(g,f,a,!1,!0):(b===ie&&A&384||!m&&w&16)&&we(y,f,a),p&&Us(l)}($&&(M=v&&v.onVnodeUnmounted)||S)&&ee(()=>{M&&ge(M,f,l),S&&Ue(l,null,f,"unmounted")},a)},Us=l=>{const{type:f,el:a,anchor:p,transition:m}=l;if(f===ie){Rr(a,p);return}if(f===os){z(l);return}const b=()=>{r(a),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(l.shapeFlag&1&&m&&!m.persisted){const{leave:v,delayLeave:_}=m,y=()=>v(a,b);_?_(l.el,b,y):y()}else b()},Rr=(l,f)=>{let a;for(;l!==f;)a=E(l),r(l),l=a;r(f)},Mr=(l,f,a)=>{const{bum:p,scope:m,update:b,subTree:v,um:_,m:y,a:g}=l;dn(y),dn(g),p&&Qt(p),m.stop(),b&&(b.active=!1,pe(v,l,f,a)),_&&ee(_,f),ee(()=>{l.isUnmounted=!0},f),f&&f.pendingBranch&&!f.isUnmounted&&l.asyncDep&&!l.asyncResolved&&l.suspenseId===f.pendingId&&(f.deps--,f.deps===0&&f.resolve())},we=(l,f,a,p=!1,m=!1,b=0)=>{for(let v=b;vl.shapeFlag&6?xt(l.component.subTree):l.shapeFlag&128?l.suspense.next():E(l.anchor||l.el);let Xt=!1;const Bs=(l,f,a)=>{l==null?f._vnode&&pe(f._vnode,null,null,!0):j(f._vnode||null,l,f,null,null,null,a),Xt||(Xt=!0,tn(),tr(),Xt=!1),f._vnode=l},et={p:j,um:pe,m:De,r:Us,mt:kt,mc:he,pc:H,pbc:He,n:xt,o:e};let Vs,Ks;return{render:Bs,hydrate:Vs,createApp:Qo(Bs,Vs)}}function ns({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function Be({effect:e,update:t},s){e.allowRecurse=t.allowRecurse=s}function ci(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function _r(e,t,s=!1){const n=e.children,r=t.children;if(C(n)&&C(r))for(let o=0;o>1,e[s[c]]0&&(t[n]=s[o-1]),s[o]=n)}}for(o=s.length,i=s[o-1];o-- >0;)s[o]=i,i=t[i];return s}function br(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:br(t)}function dn(e){if(e)for(let t=0;tIt(ui),Ct={};function rs(e,t,s){return yr(e,t,s)}function yr(e,t,{immediate:s,deep:n,flush:r,once:o,onTrack:i,onTrigger:c}=D){if(t&&o){const R=t;t=(...ve)=>{R(...ve),oe()}}const u=Q,d=R=>n===!0?R:Se(R,n===!1?1:void 0);let h,x=!1,E=!1;if(se(e)?(h=()=>e.value,x=Rt(e)):it(e)?(h=()=>d(e),x=!0):C(e)?(E=!0,x=e.some(R=>it(R)||Rt(R)),h=()=>e.map(R=>{if(se(R))return R.value;if(it(R))return d(R);if(I(R))return Re(R,u,2)})):I(e)?t?h=()=>Re(e,u,2):h=()=>(O&&O(),de(e,u,3,[V])):h=le,t&&n){const R=h;h=()=>Se(R())}let O,V=R=>{O=N.onStop=()=>{Re(R,u,4),O=N.onStop=void 0}},j;if(Jt)if(V=le,t?s&&de(t,u,3,[h(),E?[]:void 0,V]):h(),r==="sync"){const R=ai();j=R.__watcherHandles||(R.__watcherHandles=[])}else return le;let ne=E?new Array(e.length).fill(Ct):Ct;const q=()=>{if(!(!N.active||!N.dirty))if(t){const R=N.run();(n||x||(E?R.some((ve,he)=>Me(ve,ne[he])):Me(R,ne)))&&(O&&O(),de(t,u,3,[R,ne===Ct?void 0:E&&ne[0]===Ct?[]:ne,V]),ne=R)}else N.run()};q.allowRecurse=!!t;let Y;r==="sync"?Y=q:r==="post"?Y=()=>ee(q,u&&u.suspense):(q.pre=!0,u&&(q.id=u.uid),Y=()=>Ls(q));const N=new As(h,le,Y),z=Gr(),oe=()=>{N.stop(),z&&ws(z.effects,N)};return t?s?q():ne=N.run():r==="post"?ee(N.run.bind(N),u&&u.suspense):N.run(),j&&j.push(oe),oe}function di(e,t,s){const n=this.proxy,r=W(e)?e.includes(".")?xr(n,e):()=>n[e]:e.bind(n,n);let o;I(t)?o=t:(o=t.handler,s=t);const i=gt(this),c=yr(r,o.bind(n),s);return i(),c}function xr(e,t){const s=t.split(".");return()=>{let n=e;for(let r=0;r{Se(n,t,s)});else if(In(e)){for(const n in e)Se(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Se(e[n],t,s)}return e}const vr=e=>e.type.__isKeepAlive;function hi(e,t){wr(e,"a",t)}function pi(e,t){wr(e,"da",t)}function wr(e,t,s=Q){const n=e.__wdc||(e.__wdc=()=>{let r=s;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(qt(t,n,s),s){let r=s.parent;for(;r&&r.parent;)vr(r.parent.vnode)&&mi(n,t,s,r),r=r.parent}}function mi(e,t,s,n){const r=qt(t,e,n,!0);ir(()=>{ws(n[t],r)},s)}function Er(e,t){e.shapeFlag&6&&e.component?Er(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}const gi=e=>e.__isTeleport,ie=Symbol.for("v-fgt"),zt=Symbol.for("v-txt"),pt=Symbol.for("v-cmt"),os=Symbol.for("v-stc"),ft=[];let ae=null;function ye(e=!1){ft.push(ae=e?null:[])}function _i(){ft.pop(),ae=ft[ft.length-1]||null}let mt=1;function hn(e){mt+=e}function bi(e){return e.dynamicChildren=mt>0?ae||Je:null,_i(),mt>0&&ae&&ae.push(e),e}function xe(e,t,s,n,r,o){return bi(K(e,t,s,n,r,o,!0))}function yi(e){return e?e.__v_isVNode===!0:!1}function st(e,t){return e.type===t.type&&e.key===t.key}const Tr=({key:e})=>e??null,St=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?W(e)||se(e)||I(e)?{i:ce,r:e,k:t,f:!!s}:e:null);function K(e,t=null,s=null,n=0,r=null,o=e===ie?0:1,i=!1,c=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Tr(t),ref:t&&St(t),scopeId:Wt,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:n,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ce};return c?($s(u,s),o&128&&e.normalize(u)):s&&(u.shapeFlag|=W(s)?8:16),mt>0&&!i&&ae&&(u.patchFlag>0||o&6)&&u.patchFlag!==32&&ae.push(u),u}const Ae=xi;function xi(e,t=null,s=null,n=0,r=null,o=!1){if((!e||e===Mo)&&(e=pt),yi(e)){const c=Xe(e,t,!0);return s&&$s(c,s),mt>0&&!o&&ae&&(c.shapeFlag&6?ae[ae.indexOf(e)]=c:ae.push(c)),c.patchFlag=-2,c}if(Si(e)&&(e=e.__vccOpts),t){t=vi(t);let{class:c,style:u}=t;c&&!W(c)&&(t.class=Ut(c)),B(u)&&(Gn(u)&&!C(u)&&(u=G({},u)),t.style=Ts(u))}const i=W(e)?1:Lo(e)?128:gi(e)?64:B(e)?4:I(e)?2:0;return K(e,t,s,n,r,i,o,!0)}function vi(e){return e?Gn(e)||ar(e)?G({},e):e:null}function Xe(e,t,s=!1,n=!1){const{props:r,ref:o,patchFlag:i,children:c,transition:u}=e,d=t?wi(r||{},t):r,h={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&Tr(d),ref:t&&t.ref?s&&o?C(o)?o.concat(St(t)):[o,St(t)]:St(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:c,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ie?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Xe(e.ssContent),ssFallback:e.ssFallback&&Xe(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return u&&n&&Er(h,u.clone(h)),h}function Ar(e=" ",t=0){return Ae(zt,null,e,t)}function _e(e){return e==null||typeof e=="boolean"?Ae(pt):C(e)?Ae(ie,null,e.slice()):typeof e=="object"?Ie(e):Ae(zt,null,String(e))}function Ie(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Xe(e)}function $s(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(C(t))s=16;else if(typeof t=="object")if(n&65){const r=t.default;r&&(r._c&&(r._d=!1),$s(e,r()),r._c&&(r._d=!0));return}else{s=32;const r=t._;!r&&!ar(t)?t._ctx=ce:r===3&&ce&&(ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else I(t)?(t={default:t,_ctx:ce},s=32):(t=String(t),n&64?(s=16,t=[Ar(t)]):s=8);e.children=t,e.shapeFlag|=s}function wi(...e){const t={};for(let s=0;s{let r;return(r=e[s])||(r=e[s]=[]),r.push(n),o=>{r.length>1?r.forEach(i=>i(o)):r[0](o)}};jt=t("__VUE_INSTANCE_SETTERS__",s=>Q=s),ys=t("__VUE_SSR_SETTERS__",s=>Jt=s)}const gt=e=>{const t=Q;return jt(e),e.scope.on(),()=>{e.scope.off(),jt(t)}},pn=()=>{Q&&Q.scope.off(),jt(null)};function Cr(e){return e.vnode.shapeFlag&4}let Jt=!1;function Ci(e,t=!1){t&&ys(t);const{props:s,children:n}=e.vnode,r=Cr(e);ti(e,s,r,t),ri(e,n);const o=r?Fi(e,t):void 0;return t&&ys(!1),o}function Fi(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,zo);const{setup:n}=s;if(n){const r=e.setupContext=n.length>1?Ii(e):null,o=gt(e);je();const i=Re(n,e,0,[e.props,r]);if(Ne(),o(),Fn(i)){if(i.then(pn,pn),t)return i.then(c=>{mn(e,c,t)}).catch(c=>{Vt(c,e,0)});e.asyncDep=i}else mn(e,i,t)}else Fr(e,t)}function mn(e,t,s){I(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:B(t)&&(e.setupState=Zn(t)),Fr(e,s)}let gn;function Fr(e,t,s){const n=e.type;if(!e.render){if(!t&&gn&&!n.render){const r=n.template||Ns(e).template;if(r){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:c,compilerOptions:u}=n,d=G(G({isCustomElement:o,delimiters:c},i),u);n.render=gn(r,d)}}e.render=n.render||le}{const r=gt(e);je();try{Jo(e)}finally{Ne(),r()}}}const Oi={get(e,t){return te(e,"get",""),e[t]}};function Ii(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Oi),slots:e.slots,emit:e.emit,expose:t}}function Gt(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Zn(go(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in lt)return lt[s](e)},has(t,s){return s in t||s in lt}})):e.proxy}function Si(e){return I(e)&&"__vccOpts"in e}const Pi=(e,t)=>_o(e,t,Jt),Ri="3.4.31";/** +* @vue/runtime-dom v3.4.31 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const Mi="http://www.w3.org/2000/svg",Li="http://www.w3.org/1998/Math/MathML",Ee=typeof document<"u"?document:null,_n=Ee&&Ee.createElement("template"),ji={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const r=t==="svg"?Ee.createElementNS(Mi,e):t==="mathml"?Ee.createElementNS(Li,e):s?Ee.createElement(e,{is:s}):Ee.createElement(e);return e==="select"&&n&&n.multiple!=null&&r.setAttribute("multiple",n.multiple),r},createText:e=>Ee.createTextNode(e),createComment:e=>Ee.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ee.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,r,o){const i=s?s.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),s),!(r===o||!(r=r.nextSibling)););else{_n.innerHTML=n==="svg"?`${e}`:n==="mathml"?`${e}`:e;const c=_n.content;if(n==="svg"||n==="mathml"){const u=c.firstChild;for(;u.firstChild;)c.appendChild(u.firstChild);c.removeChild(u)}t.insertBefore(c,s)}return[i?i.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Ni=Symbol("_vtc");function Hi(e,t,s){const n=e[Ni];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Nt=Symbol("_vod"),Or=Symbol("_vsh"),$i={beforeMount(e,{value:t},{transition:s}){e[Nt]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):nt(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:n}){!t!=!s&&(n?t?(n.beforeEnter(e),nt(e,!0),n.enter(e)):n.leave(e,()=>{nt(e,!1)}):nt(e,t))},beforeUnmount(e,{value:t}){nt(e,t)}};function nt(e,t){e.style.display=t?e[Nt]:"none",e[Or]=!t}const Di=Symbol(""),Ui=/(^|;)\s*display\s*:/;function Bi(e,t,s){const n=e.style,r=W(s);let o=!1;if(s&&!r){if(t)if(W(t))for(const i of t.split(";")){const c=i.slice(0,i.indexOf(":")).trim();s[c]==null&&Pt(n,c,"")}else for(const i in t)s[i]==null&&Pt(n,i,"");for(const i in s)i==="display"&&(o=!0),Pt(n,i,s[i])}else if(r){if(t!==s){const i=n[Di];i&&(s+=";"+i),n.cssText=s,o=Ui.test(s)}}else t&&e.removeAttribute("style");Nt in e&&(e[Nt]=o?n.display:"",e[Or]&&(n.display="none"))}const bn=/\s*!important$/;function Pt(e,t,s){if(C(s))s.forEach(n=>Pt(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=Vi(e,t);bn.test(s)?e.setProperty(Ze(n),s.replace(bn,""),"important"):e[n]=s}}const yn=["Webkit","Moz","ms"],is={};function Vi(e,t){const s=is[t];if(s)return s;let n=ke(t);if(n!=="filter"&&n in e)return is[t]=n;n=Sn(n);for(let r=0;rls||(Gi.then(()=>ls=0),ls=Date.now());function ki(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;de(Xi(n,s.value),t,5,[n])};return s.value=e,s.attached=Yi(),s}function Xi(e,t){if(C(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(n=>r=>!r._stopped&&n&&n(r))}else return t}const Tn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Zi=(e,t,s,n,r,o,i,c,u)=>{const d=r==="svg";t==="class"?Hi(e,n,d):t==="style"?Bi(e,s,n):Ht(t)?vs(t)||zi(e,t,s,n,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Qi(e,t,n,d))?(Ki(e,t,n,o,i,c,u),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&vn(e,t,n,d,i,t!=="value")):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),vn(e,t,n,d))};function Qi(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Tn(t)&&I(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Tn(t)&&W(s)?!1:t in e}const el=G({patchProp:Zi},ji);let An;function tl(){return An||(An=ii(el))}const sl=(...e)=>{const t=tl().createApp(...e),{mount:s}=t;return t.mount=n=>{const r=rl(n);if(!r)return;const o=t._component;!I(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.innerHTML="";const i=s(r,!1,nl(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t};function nl(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function rl(e){return W(e)?document.querySelector(e):e}const Ir=(e,t)=>{const s=e.__vccOpts||e;for(const[n,r]of t)s[n]=r;return s},ol=e=>(rr("data-v-7baa4dc0"),e=e(),or(),e),il={class:"categories-list"},ll=["onClick"],cl={href:"javascript:"},fl=ol(()=>K("div",{class:"clearfix"},null,-1)),ul={__name:"Categories",props:{categories:{type:Object,required:!0}},emits:["active"],setup(e,{emit:t}){const s=t,n=Xn("all"),r=o=>{n.value=o,s("active",o)};return(o,i)=>(ye(),xe("ul",il,[(ye(!0),xe(ie,null,js(e.categories,(c,u)=>(ye(),xe("li",{key:u,class:Ut({active:n.value===u}),onClick:d=>r(u)},[K("a",cl,[K("span",null,ze(c),1)])],10,ll))),128)),fl]))}},al=Ir(ul,[["__scopeId","data-v-7baa4dc0"]]),Sr=e=>(rr("data-v-e7b55c40"),e=e(),or(),e),dl={ref:"el",class:"row"},hl={class:"col-md-12"},pl={class:"landing-title"},ml={class:"title"},gl={class:"card card-small"},_l={class:"thumbnail"},bl=["src"],yl=["href"],xl={class:"actions"},vl=["href"],wl=Sr(()=>K("i",{class:"fa fa-align-left"},null,-1)),El=[wl],Tl=["href"],Al=Sr(()=>K("i",{class:"fa fa-laptop"},null,-1)),Cl=[Al],Fl={class:"card-info"},Ol=["href"],Il={key:0,class:"time pull-right premium-product"},Sl={key:1,class:"time pull-right free"},Pl={__name:"List",props:{title:{type:String,required:!0},themes:{type:Array,required:!0}},setup(e){return(t,s)=>(ye(),xe("div",dl,[K("div",hl,[K("div",pl,[K("h2",ml,ze(e.title),1)])]),(ye(!0),xe(ie,null,js(e.themes,(n,r)=>(ye(),xe("div",{key:r,class:"col-xs-12 col-sm-6 col-md-4 col-lg-4"},[K("div",gl,[K("div",_l,[K("img",{src:n.img,alt:"No Image"},null,8,bl),K("a",{href:n.url,target:"_blank",class:"thumb-cover"},null,8,yl),K("b",xl,[K("a",{href:n.url,target:"_blank",class:"btn btn-neutral btn-round btn-fill",title:"More Details"},El,8,vl),K("a",{href:n.demo,class:"btn btn-neutral btn-fill btn-round",target:"_blank",title:"Live Preview"},Cl,8,Tl)])]),K("div",Fl,[K("a",{href:n.url,target:"_blank"},[K("h3",null,[Ar(ze(n.name)+" ",1),n.price?(ye(),xe("div",Il,ze(n.price),1)):(ye(),xe("div",Sl," FREE "))]),K("p",null,ze(n.desc),1)],8,Ol)])])]))),128))],512))}},Rl=Ir(Pl,[["__scopeId","data-v-e7b55c40"]]),Ml={__name:"App",setup(e){const t=Xn("all"),s={all:"All Themes",admin:"Admin & Dashboards",css:"CSS Frameworks",vue:"Vuejs",others:"Others"},n={admin:[{name:"Light Bootstrap Dashboard Pro",desc:"Responsive Bootstrap 4 Admin Template.",img:"/assets/images/light-bootstrap.jpg",url:"https://secure.2checkout.com/affiliate.php?ACCOUNT=CREATIV&AFFILIATE=117417&PATH=https%3A%2F%2Fwww.creative-tim.com%2Fproduct%2Flight-bootstrap-dashboard-pro%3FAFFILIATE%3D117417",demo:"https://secure.2checkout.com/affiliate.php?ACCOUNT=CREATIV&AFFILIATE=117417&PATH=https%3A%2F%2Fdemos.creative-tim.com%2Flight-bootstrap-dashboard-pro%2Fexamples%2Ftables%2Fbootstrap-table.html%3FAFFILIATE%3D117417",price:"$39"},{name:"Paper Dashboard Pro",desc:"Premium Bootstrap Admin Template.",img:"/assets/images/pager-dashboard.jpg",url:"https://secure.2checkout.com/affiliate.php?ACCOUNT=CREATIV&AFFILIATE=117417&PATH=https%3A%2F%2Fwww.creative-tim.com%2Fproduct%2Fpaper-dashboard-pro%3FAFFILIATE%3D117417",demo:"https://secure.2checkout.com/affiliate.php?ACCOUNT=CREATIV&AFFILIATE=117417&PATH=https%3A%2F%2Fdemos.creative-tim.com%2Fpaper-dashboard-pro%2Fexamples%2Ftables%2Fbootstrap-table.html%3FAFFILIATE%3D117417",price:"$39"},{name:"Ubold",desc:"Admin & Dashboard Template.",img:"https://themeforest.img.customer.envatousercontent.com/files/273195428/01_ubold.__large_preview.jpg?auto=compress%2Cformat&q=80&fit=crop&crop=top&max-h=8000&max-w=590&s=a1318683a895fcf026cecd3e0b74d97b",url:"https://1.envato.market/5EnJ2",demo:"https://1.envato.market/kEWdL",price:"$29"},{name:"Metronic",desc:"Bootstrap 4, Angular 8, React Admin Dashboard Theme.",img:"https://themeforest.img.customer.envatousercontent.com/files/276839308/plyushka.__large_preview.jpg?auto=compress%2Cformat&q=80&fit=crop&crop=top&max-h=8000&max-w=590&s=b7f0504d8697450845aa1d2f71a8c80b",url:"https://1.envato.market/KmzbN",demo:"https://1.envato.market/7qMPg",price:"$35"},{name:"Pages",desc:"Admin Dashboard Template with Angular 6, Bootstrap 4 & HTML.",img:"https://themeforest.img.customer.envatousercontent.com/files/253934566/preview.__large_preview.png?auto=compress%2Cformat&q=80&fit=crop&crop=top&max-h=8000&max-w=590&s=bcc481514196e409152ae30e8668f0eb",url:"https://1.envato.market/LB26M",demo:"https://1.envato.market/q9yMY",price:"$24"}],css:[{name:"Bootstrap v5",desc:"The most popular HTML, CSS, and JavaScript framework.",img:"/assets/images/bootstrap5.jpg",url:"/docs/getting-started/introduction/",demo:"https://examples.bootstrap-table.com/index.html?bootstrap5",price:""},{name:"Bootstrap v4",desc:"The most popular HTML, CSS, and JavaScript framework.",img:"/assets/images/bootstrap4.jpg",url:"/themes/bootstrap4/",demo:"https://examples.bootstrap-table.com/",price:""},{name:"Bootstrap v3",desc:"The most popular HTML, CSS, and JavaScript framework.",img:"/assets/images/bootstrap3.jpg",url:"/themes/bootstrap3/",demo:"https://examples.bootstrap-table.com/index.html?bootstrap3",price:""},{name:"Bootstrap Table",desc:"Our custom theme of Bootstrap Table.",img:"/assets/images/bootstrap-table.jpg",url:"/themes/bootstrap-table/",demo:"https://examples.bootstrap-table.com/index.html?bootstrap-table",price:""},{name:"Semantic UI",desc:"UI component framework based around useful principles from natural language.",img:"/assets/images/semantic.jpg",url:"/themes/semantic/",demo:"https://examples.bootstrap-table.com/index.html?semantic",price:""},{name:"Bulma",desc:"Modern CSS framework based on Flexbox.",img:"/assets/images/bulma.jpg",url:"/themes/bulma/",demo:"https://examples.bootstrap-table.com/index.html?bulma",price:""},{name:"Materialize",desc:"A modern responsive front-end framework based on Material Design.",img:"/assets/images/materialize.jpg",url:"/themes/materialize/",demo:"https://examples.bootstrap-table.com/index.html?materialize",price:""},{name:"Foundation",desc:"The most advanced responsive front-end framework in the world.",img:"/assets/images/foundation.jpg",url:"/themes/foundation/",demo:"https://examples.bootstrap-table.com/index.html?foundation",price:""}],vue:[{name:"Element Table",desc:"An extended table to integration with bootstrap-table and element-ui.",img:"/assets/images/element-table.jpg",url:"https://element.bootstrap-table.com/",demo:"https://element.bootstrap-table.com/",price:""}],others:[{name:"Fresh Bootstrap Table",desc:"Fresh Bootstrap Table Template.",img:"/assets/images/fresh-table.jpg",url:"https://secure.2checkout.com/affiliate.php?ACCOUNT=CREATIV&AFFILIATE=117417&PATH=https%3A%2F%2Fwww.creative-tim.com%2Fproduct%2Ffresh-bootstrap-table%3FAFFILIATE%3D117417",demo:"https://wenzhixin.github.io/fresh-bootstrap-table/compact-table.html",price:""}]};return(r,o)=>(ye(),xe("div",null,[Ae(ds(al),{categories:s,onActive:o[0]||(o[0]=i=>t.value=i)}),(ye(),xe(ie,null,js(n,(i,c)=>qo(Ae(ds(Rl),{key:c,title:s[c],themes:i},null,8,["title","themes"]),[[$i,t.value==="all"||t.value===c]])),64))]))}},Pr=sl(Ml);Pr.__VUE_PROD_DEVTOOLS__=!1;Pr.mount("#app"); diff --git a/versions/1.23.5/docs/about/index.html b/versions/1.23.5/docs/about/index.html new file mode 100644 index 0000000000..f75f312529 --- /dev/null +++ b/versions/1.23.5/docs/about/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +