mirror of https://github.com/ColorlibHQ/AdminLTE
				
				
				
			enhance ExpandableTable for table tree (#2907)
* enhance ExpandableTable for table tree * remove unused rotate class * fix html validator error/warningspull/2911/head
							parent
							
								
									c9603ef5aa
								
							
						
					
					
						commit
						01e00cd43d
					
				| 
						 | 
				
			
			@ -29,8 +29,8 @@ const SELECTOR_ARIA_ATTR = 'aria-expanded'
 | 
			
		|||
  * ====================================================
 | 
			
		||||
  */
 | 
			
		||||
class ExpandableTable {
 | 
			
		||||
  constructor(element, config) {
 | 
			
		||||
    this._config = config
 | 
			
		||||
  constructor(element, options) {
 | 
			
		||||
    this._options = options
 | 
			
		||||
    this._element = element
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -72,16 +72,17 @@ class ExpandableTable {
 | 
			
		|||
 | 
			
		||||
  // Static
 | 
			
		||||
 | 
			
		||||
  static _jQueryInterface(config) {
 | 
			
		||||
  static _jQueryInterface(operation) {
 | 
			
		||||
    return this.each(function () {
 | 
			
		||||
      let data = $(this).data(DATA_KEY)
 | 
			
		||||
 | 
			
		||||
      if (!data) {
 | 
			
		||||
        data = new ExpandableTable($(this))
 | 
			
		||||
        $(this).data(DATA_KEY, data)
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (config === 'init' || config === 'toggleRow') {
 | 
			
		||||
        data[config]()
 | 
			
		||||
      if (typeof operation === 'string' && operation.match(/init|toggleRow/)) {
 | 
			
		||||
        data[operation]()
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,11 +79,27 @@
 | 
			
		|||
 | 
			
		||||
[data-widget="expandable-table"] {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
 | 
			
		||||
  i {
 | 
			
		||||
    transition: transform $transition-speed linear;
 | 
			
		||||
  }
 | 
			
		||||
  &[aria-expanded="true"] {
 | 
			
		||||
    td > i {
 | 
			
		||||
      // stylelint-disable selector-max-attribute
 | 
			
		||||
      &[class*="right"] {
 | 
			
		||||
        transform: rotate(90deg);
 | 
			
		||||
      }
 | 
			
		||||
      &[class*="left"] {
 | 
			
		||||
        transform: rotate(-90deg);
 | 
			
		||||
      }
 | 
			
		||||
      // stylelint-enable selector-max-attribute
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.expandable-body {
 | 
			
		||||
  td {
 | 
			
		||||
    padding: 0;
 | 
			
		||||
  > td {
 | 
			
		||||
    padding: 0 !important;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
 | 
			
		||||
    > div,
 | 
			
		||||
| 
						 | 
				
			
			@ -91,4 +107,16 @@
 | 
			
		|||
      padding: $table-cell-padding;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .table {
 | 
			
		||||
    width: calc(100% - #{$table-cell-padding});
 | 
			
		||||
    margin: 0 0 0 $table-cell-padding;
 | 
			
		||||
 | 
			
		||||
    tr:first-child {
 | 
			
		||||
      td,
 | 
			
		||||
      th {
 | 
			
		||||
        border-top: none;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1313,7 +1313,94 @@
 | 
			
		|||
            <!-- /.card -->
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <!--  -->
 | 
			
		||||
        <!-- /.row -->
 | 
			
		||||
        <div class="row">
 | 
			
		||||
          <div class="col-12">
 | 
			
		||||
            <div class="card">
 | 
			
		||||
              <div class="card-header">
 | 
			
		||||
                <h3 class="card-title">Expandable Table Tree</h3>
 | 
			
		||||
              </div>
 | 
			
		||||
              <!-- ./card-header -->
 | 
			
		||||
              <div class="card-body p-0">
 | 
			
		||||
                <table class="table table-hover">
 | 
			
		||||
                  <tbody>
 | 
			
		||||
                    <tr>
 | 
			
		||||
                      <td class="border-0">183</td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
                    <tr data-widget="expandable-table" aria-expanded="true">
 | 
			
		||||
                      <td>
 | 
			
		||||
                        <i class="fas fa-caret-right fa-fw"></i>
 | 
			
		||||
                        219
 | 
			
		||||
                      </td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
                    <tr class="expandable-body">
 | 
			
		||||
                      <td>
 | 
			
		||||
                        <div class="p-0">
 | 
			
		||||
                          <table class="table table-hover">
 | 
			
		||||
                            <tbody>
 | 
			
		||||
                              <tr data-widget="expandable-table" aria-expanded="false">
 | 
			
		||||
                                <td>
 | 
			
		||||
                                  <i class="fas fa-caret-right fa-fw"></i>
 | 
			
		||||
                                  219-1
 | 
			
		||||
                                </td>
 | 
			
		||||
                              </tr>
 | 
			
		||||
                              <tr class="expandable-body">
 | 
			
		||||
                                <td>
 | 
			
		||||
                                  <div class="p-0">
 | 
			
		||||
                                    <table class="table table-hover">
 | 
			
		||||
                                      <tbody>
 | 
			
		||||
                                        <tr>
 | 
			
		||||
                                          <td>219-1-1</td>
 | 
			
		||||
                                        </tr>
 | 
			
		||||
                                        <tr>
 | 
			
		||||
                                          <td>219-1-2</td>
 | 
			
		||||
                                        </tr>
 | 
			
		||||
                                        <tr>
 | 
			
		||||
                                          <td>219-1-3</td>
 | 
			
		||||
                                        </tr>
 | 
			
		||||
                                      </tbody>
 | 
			
		||||
                                    </table>
 | 
			
		||||
                                  </div>
 | 
			
		||||
                                </td>
 | 
			
		||||
                              </tr>
 | 
			
		||||
                              <tr>
 | 
			
		||||
                                <td>219-2</td>
 | 
			
		||||
                              </tr>
 | 
			
		||||
                              <tr>
 | 
			
		||||
                                <td>219-3</td>
 | 
			
		||||
                              </tr>
 | 
			
		||||
                            </tbody>
 | 
			
		||||
                          </table>
 | 
			
		||||
                        </div>
 | 
			
		||||
                      </td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
                    <tr>
 | 
			
		||||
                      <td>657</td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
                    <tr>
 | 
			
		||||
                      <td>175</td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
                    <tr>
 | 
			
		||||
                      <td>134</td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
                    <tr>
 | 
			
		||||
                      <td>494</td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
                    <tr>
 | 
			
		||||
                      <td>832</td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
                    <tr>
 | 
			
		||||
                      <td>982</td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
                  </tbody>
 | 
			
		||||
                </table>
 | 
			
		||||
              </div>
 | 
			
		||||
              <!-- /.card-body -->
 | 
			
		||||
            </div>
 | 
			
		||||
            <!-- /.card -->
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <!-- /.row -->
 | 
			
		||||
      </div><!-- /.container-fluid -->
 | 
			
		||||
    </section>
 | 
			
		||||
    <!-- /.content -->
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue