Sfoglia il codice sorgente

Merge pull request #2518 from weseek/imprv/add-bootstrap-grid-class

add class
Yuki Takei 5 anni fa
parent
commit
dc31bb50bf
1 ha cambiato i file con 32 aggiunte e 0 eliminazioni
  1. 32 0
      src/client/js/models/BootstrapGrid.js

+ 32 - 0
src/client/js/models/BootstrapGrid.js

@@ -0,0 +1,32 @@
+export default class BootstrapGrid {
+
+  constructor(colsRatios, responsiveSize) {
+    this.colsRatios = BootstrapGrid.validateColsRatios(colsRatios);
+    this.responsiveSize = BootstrapGrid.validateResponsiveSize(responsiveSize);
+  }
+
+  static ResponsiveSize = {
+    XS_SIZE: 'xs', SM_SIZE: 'sm', MD_SIZE: 'md',
+  }
+
+  static validateColsRatios(colsRatios) {
+
+    if (colsRatios.length < 2 || colsRatios.length > 4) {
+      throw new Error('Incorrect array length of cols ratios');
+    }
+    const ratiosTotal = colsRatios.reduce((total, ratio) => { return total + ratio }, 0);
+    if (ratiosTotal !== 12) {
+      throw new Error('Incorrect cols ratios value');
+    }
+
+    return colsRatios;
+  }
+
+  static validateResponsiveSize(responsiveSize) {
+    if (responsiveSize === this.ResponsiveSize.XS_SIZE || responsiveSize === this.ResponsiveSize.SM_SIZE || responsiveSize === this.ResponsiveSize.MD_SIZE) {
+      return responsiveSize;
+    }
+    throw new Error('Incorrect responsive size');
+  }
+
+}