From 692ebfdf4c66c6af1bd50b38c2521a38097ebc5d Mon Sep 17 00:00:00 2001 From: Helmut Hackbarth Date: Mon, 31 Jul 2023 11:42:24 +0200 Subject: [PATCH] New release v3.0.0 --- .../Preview/T3sGridPreviewRenderer.php | 274 - Classes/Updates/GridUpdateWizard.php | 447 -- Classes/ViewHelpers/FlexformViewHelper.php | 212 +- Configuration/FlexForms/FourColumns.xml | 3467 ++++++----- Configuration/FlexForms/RowColumns.xml | 917 +-- Configuration/FlexForms/SixColumns.xml | 5125 ++++++++--------- Configuration/FlexForms/ThreeColumns.xml | 2707 +++++---- Configuration/FlexForms/TwoColumns.xml | 1888 +++--- Configuration/Icons.php | 9 + Configuration/Services.yaml | 2 - Configuration/TCA/Overrides/tt_content.php | 28 +- .../{TSConfig/Page.tsconfig => page.tsconfig} | 6 + .../Partials/PageLayout/Grid/Column.html | 25 + .../PageLayout/Grid/ColumnHeader.html | 39 + .../Preview/Partials/PageLayout/Record.html | 27 + .../Backend/Preview/Templates/Container.html | 6 + .../Backend/Preview/Templates/Grid.html | 47 + Resources/Private/Icons/Extension.svg | 3 +- .../Templates/Container/FourColumns.html | 2 +- .../Templates/Container/RowColumns.html | 19 +- .../Templates/Container/SixColumns.html | 2 +- .../Templates/Container/ThreeColumns.html | 2 +- .../Templates/Container/TwoColumns.html | 5 +- composer.json | 4 +- ext_emconf.php | 6 +- ext_localconf.php | 20 - ext_tables.sql | 1 - 27 files changed, 7237 insertions(+), 8053 deletions(-) delete mode 100644 Classes/Backend/Preview/T3sGridPreviewRenderer.php delete mode 100644 Classes/Updates/GridUpdateWizard.php create mode 100644 Configuration/Icons.php rename Configuration/{TSConfig/Page.tsconfig => page.tsconfig} (98%) create mode 100644 Resources/Private/Backend/Preview/Partials/PageLayout/Grid/Column.html create mode 100644 Resources/Private/Backend/Preview/Partials/PageLayout/Grid/ColumnHeader.html create mode 100644 Resources/Private/Backend/Preview/Partials/PageLayout/Record.html create mode 100644 Resources/Private/Backend/Preview/Templates/Container.html create mode 100644 Resources/Private/Backend/Preview/Templates/Grid.html diff --git a/Classes/Backend/Preview/T3sGridPreviewRenderer.php b/Classes/Backend/Preview/T3sGridPreviewRenderer.php deleted file mode 100644 index 90d7ce4..0000000 --- a/Classes/Backend/Preview/T3sGridPreviewRenderer.php +++ /dev/null @@ -1,274 +0,0 @@ -tcaRegistry = $tcaRegistry; - $this->containerFactory = $containerFactory; - $this->containerColumnConfigurationService = $containerColumnConfigurationService; - $this->containerService = $containerService; - } - - - /** - * Dedicated method for rendering preview header HTML for - * the page module only. Receives $item which is an instance of - * GridColumnItem which has a getter method to return the record. - * - * @param GridColumnItem - */ - public function renderPageModulePreviewHeader(GridColumnItem $item): string - { - $record = $item->getRecord(); - $itemLabels = $item->getContext()->getItemLabels(); - $outHeader = ''; - - $flexformService = GeneralUtility::makeInstance(FlexFormService::class); - $flexconf = $flexformService->convertFlexFormContentToArray($record['tx_t3sbootstrap_grid_flexform']); - - if ($record['header']) { - $infoArr = []; - $this->getProcessedValue($item, 'header_position,header_layout,header_link', $infoArr); - $hiddenHeaderNote = ''; - // If header layout is set to 'hidden', display an accordant note: - if ($record['header_layout'] == 100) { - $hiddenHeaderNote = ' [' . htmlspecialchars($this->getLanguageService() - ->sL('LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:header_layout.I.6')) . ']'; - } - $outHeader = $record['date'] - ? htmlspecialchars($itemLabels['date'] . ' ' . BackendUtility::date($record['date'])) . '
' - : ''; - $outHeader .= '' . $this->linkEditContent($this->renderText($record['header']), $record) - . $hiddenHeaderNote . '
'; - } - - if ($record['subheader']) { - $outHeader .= parent::linkEditContent(parent::renderText($record['subheader']), $record) . '
'; - } - - $info = ''; - $contentTypeLabels = $item->getContext()->getContentTypeLabels(); - $contentType = $contentTypeLabels[$record['CType']]; - - switch ($record['CType']) { - case 'tabs_tab': - $info = '
'.$contentType.'
'; - break; - case 'collapsible_accordion': - $info = '
'.$contentType.'
'; - break; - default: - $info = '
'.$contentType.'
'; - } - - return $info.$outHeader; - } - - - public function renderPageModulePreviewContent(GridColumnItem $item): string - { - $typo3Version = new Typo3Version(); - - $content = parent::renderPageModulePreviewContent($item); - $context = $item->getContext(); - $record = $item->getRecord(); - $grid = GeneralUtility::makeInstance(Grid::class, $context); - try { - $container = $this->containerFactory->buildContainer((int)$record['uid']); - } catch (Exception $e) { - // not a container - return $content; - } - - $flexformService = GeneralUtility::makeInstance(FlexFormService::class); - $flexconf = $flexformService->convertFlexFormContentToArray($record['tx_t3sbootstrap_grid_flexform']); - $out = ''; - - if ($record['CType'] == 'two_columns' || $record['CType'] == 'three_columns' || $record['CType'] == 'four_columns' - || $record['CType'] == 'six_columns' || $record['CType'] == 'row_columns') { - - if ($record['CType'] != 'row_columns') { - if ( $flexconf['equalWidth'] ) { - $out .= '
- Equal Width'; - } - } - if ( $flexconf['horizontalGutters'] != 'gx-4' ) { - $out .= '
- Horizontal gutters: '.$flexconf['horizontalGutters']; - } - if ( $flexconf['verticalGutters'] != 'gy-4') { - $out .= '
- Vertical gutters: '.$flexconf['verticalGutters']; - } - - if ($record['CType'] == 'row_columns') { - if ($flexconf['xs_rowclass']) { - $out .= '
- row-cols-*: '.$flexconf['xs_rowclass']; - } - if ($flexconf['sm_rowclass']) { - $out .= '
- row-cols-sm: '.$flexconf['sm_rowclass']; - } - if ($flexconf['md_rowclass']) { - $out .= '
- row-cols-md: '.$flexconf['md_rowclass']; - } - if ($flexconf['lg_rowclass']) { - $out .= '
- row-cols-lg: '.$flexconf['lg_rowclass']; - } - if ($flexconf['xl_rowclass']) { - $out .= '
- row-cols-xl: '.$flexconf['xl_rowclass']; - } - if ($flexconf['xxl_rowclass']) { - $out .= '
- row-cols-xxl: '.$flexconf['xxl_rowclass']; - } - } - } - - $flexconfOut = ''; - if ($out) - $flexconfOut .= parent::linkEditContent('
'.substr($out, 6).'
', $record); - - $containerGrid = $this->tcaRegistry->getGrid($record['CType']); - - foreach ($containerGrid as $row => $cols) { - $rowObject = GeneralUtility::makeInstance(GridRow::class, $context); - foreach ($cols as $col) { - $newContentElementAtTopTarget = $this->containerService->getNewContentElementAtTopTargetInColumn($container, $col['colPos']); - - if ($this->containerColumnConfigurationService->isMaxitemsReached($container, $col['colPos'])) { - $columnObject = GeneralUtility::makeInstance(ContainerGridColumn::class, $context, $col, $container, $newContentElementAtTopTarget, false); - } else { - $columnObject = GeneralUtility::makeInstance(ContainerGridColumn::class, $context, $col, $container, $newContentElementAtTopTarget); - } - - $rowObject->addColumn($columnObject); - if (isset($col['colPos'])) { - $records = $container->getChildrenByColPos($col['colPos']); - foreach ($records as $contentRecord) { - $columnItem = GeneralUtility::makeInstance(ContainerGridColumnItem::class, $context, $columnObject, $contentRecord, $container); - $columnObject->addItem($columnItem); - } - } - } - $grid->addRow($rowObject); - } - - $gridTemplate = $this->tcaRegistry->getGridTemplate($record['CType']); - - $view = GeneralUtility::makeInstance(StandaloneView::class); - $view->setPartialRootPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:container/Resources/Private/Partials/']); - $view->setTemplatePathAndFilename($gridTemplate); - - $view->assign('hideRestrictedColumns', (bool)(BackendUtility::getPagesTSconfig($context->getPageId())['mod.']['web_layout.']['hideRestrictedCols'] ?? false)); - $view->assign('newContentTitle', $this->getLanguageService()->getLL('newContentElement')); - $view->assign('newContentTitleShort', $this->getLanguageService()->getLL('content')); - $view->assign('allowEditContent', $this->getBackendUser()->check('tables_modify', 'tt_content')); - $view->assign('containerGrid', $grid); - $view->assign('defaultRecordDirectory', $this->hasDefaultDirectory() ? 'RecordDefault' : 'Record'); - - $rendered = $view->render(); - - $typo3Version = new Typo3Version(); - $show = $typo3Version->getMajorVersion() == 10 ? 'in' : 'show'; - - $newContent = '

- -

'.$rendered.'
'; - - return $flexconfOut.$newContent; - } - - - /** - * Dedicated method for wrapping a preview header and body HTML. - * - * @param string $previewHeader - * @param string $previewContent - */ - public function wrapPageModulePreview($previewHeader, $previewContent, GridColumnItem $item): string - { - $content = '' - . $previewHeader . $previewContent . ''; - if ($item->isDisabled()) { - return '' . $content . ''; - } - - return $content; - } - - - /** - * Check TYPO3 version to see whether the default record templates - * are located in RecordDefault/ instead of Record/. - * See: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69769 - */ - protected function hasDefaultDirectory(): bool - { - $typo3Version = new Typo3Version(); - - if ($typo3Version->getMajorVersion() === 10) { - return version_compare((new Typo3Version())->getVersion(), '10.4.17', '>'); - } - - if ($typo3Version->getMajorVersion() === 11) { - return version_compare((new Typo3Version())->getVersion(), '11.3.0', '>'); - } - - return false; - } - -} diff --git a/Classes/Updates/GridUpdateWizard.php b/Classes/Updates/GridUpdateWizard.php deleted file mode 100644 index c83f8cd..0000000 --- a/Classes/Updates/GridUpdateWizard.php +++ /dev/null @@ -1,447 +0,0 @@ -upgradeColumns(); - - return true; - } - - /** - * Upgrade all grid columns - */ - protected function upgradeColumns(): void - { - - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('tt_content'); - $queryBuilder->getRestrictions()->removeAll() - ->add(GeneralUtility::makeInstance(DeletedRestriction::class)); - $allGridelements = $queryBuilder - ->select('*') - ->from('tt_content') - ->where( - $queryBuilder->expr()->eq('CType', $queryBuilder->createNamedParameter('gridelements_pi1')) - ) - ->execute() - ->fetchAll(); - - if (!empty($allGridelements) && is_array($allGridelements)) { - - foreach ($allGridelements as $container) { - - $newCType = $container['tx_gridelements_backend_layout']; - $containerId = (int)$container['uid']; - $parentContainerId = (int)$container['tx_gridelements_container'] ?: 0; - $containerColPos = $container['colPos']; - - $queryBuilder = $connectionPool->getQueryBuilderForTable('tt_content'); - $queryBuilder->getRestrictions()->removeAll() - ->add(GeneralUtility::makeInstance(DeletedRestriction::class)); - - $statement = $queryBuilder - ->select('tx_gridelements_backend_layout') - ->from('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($parentContainerId, \PDO::PARAM_INT)) - ) - ->execute() - ->fetch(); - - switch ($statement['tx_gridelements_backend_layout']) { - case 'two_columns': - $containerColPos = $container['tx_gridelements_columns'] === 0 ? 221 : 222; - break; - case 'three_columns': - if ($container['tx_gridelements_columns'] === 0) { - $containerColPos = 231; - } elseif ($container['tx_gridelements_columns'] === 1) { - $containerColPos = 232; - } else { - $containerColPos = 233; - } - break; - case 'four_columns': - if ($container['tx_gridelements_columns'] === 0) { - $containerColPos = 241; - } elseif ($container['tx_gridelements_columns'] === 1) { - $containerColPos = 242; - } elseif ($container['tx_gridelements_columns'] === 2) { - $containerColPos = 243; - } else { - $containerColPos = 244; - } - break; - case 'six_columns': - if ($container['tx_gridelements_columns'] === 0) { - $containerColPos = 261; - } elseif ($container['tx_gridelements_columns'] === 1) { - $containerColPos = 262; - } elseif ($container['tx_gridelements_columns'] === 2) { - $containerColPos = 263; - } elseif ($container['tx_gridelements_columns'] === 3) { - $containerColPos = 264; - } elseif ($container['tx_gridelements_columns'] === 4) { - $containerColPos = 265; - } else { - $containerColPos = 266; - } - break; - case 'card_wrapper': - $containerColPos = 270; - break; - case 'button_group': - $containerColPos = 271; - break; - case 'autoLayout_row': - $containerColPos = 272; - break; - case 'background_wrapper': - $containerColPos = 273; - break; - case 'parallax_wrapper': - $containerColPos = 274; - break; - case 'container': - $containerColPos = 275; - break; - case 'carousel_container': - $containerColPos = 276; - break; - case 'collapsible_container': - $containerColPos = 277; - break; - case 'collapsible_accordion': - $containerColPos = 278; - break; - case 'modal': - $containerColPos = 279; - break; - case 'tabs_container': - $containerColPos = 280; - break; - case 'tabs_tab': - $containerColPos = 281; - break; - case 'listGroup_wrapper': - $containerColPos = 282; - break; - default: - $containerColPos = $container['colPos']; - } - - $queryBuilder = $connectionPool->getQueryBuilderForTable('tt_content'); - $queryBuilder->getRestrictions()->removeAll() - ->add(GeneralUtility::makeInstance(DeletedRestriction::class)); - - $children = $queryBuilder - ->select('*') - ->from('tt_content') - ->where( - $queryBuilder->expr()->eq('tx_gridelements_container', $queryBuilder->createNamedParameter($containerId, \PDO::PARAM_INT)), - $queryBuilder->expr()->neq('CType', $queryBuilder->createNamedParameter('gridelements_pi1')) - ) - ->execute()->fetchAll(); - - if (!empty($children) && is_array($children)) { - - foreach ($children as $child) { - - if ($newCType == 'two_columns') { - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)) - ) - ->set('colPos', 221) - ->set('tx_container_parent', $containerId) - ->execute(); - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(1, \PDO::PARAM_INT)) - ) - ->set('colPos', 222) - ->set('tx_container_parent', $containerId) - ->execute(); - - } elseif ($newCType == 'three_columns') { - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)) - ) - ->set('colPos', 231) - ->set('tx_container_parent', $containerId) - ->execute(); - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(1, \PDO::PARAM_INT)) - ) - ->set('colPos', 232) - ->set('tx_container_parent', $containerId) - ->execute(); - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(2, \PDO::PARAM_INT)) - ) - ->set('colPos', 233) - ->set('tx_container_parent', $containerId) - ->execute(); - - } elseif ($newCType == 'four_columns') { - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)) - ) - ->set('colPos', 241) - ->set('tx_container_parent', $containerId) - ->execute(); - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(1, \PDO::PARAM_INT)) - ) - ->set('colPos', 242) - ->set('tx_container_parent', $containerId) - ->execute(); - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(2, \PDO::PARAM_INT)) - ) - ->set('colPos', 243) - ->set('tx_container_parent', $containerId) - ->execute(); - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(3, \PDO::PARAM_INT)) - ) - ->set('colPos', 244) - ->set('tx_container_parent', $containerId) - ->execute(); - - } elseif ($newCType == 'six_columns') { - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)) - ) - ->set('colPos', 261) - ->set('tx_container_parent', $containerId) - ->execute(); - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(1, \PDO::PARAM_INT)) - ) - ->set('colPos', 262) - ->set('tx_container_parent', $containerId) - ->execute(); - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(2, \PDO::PARAM_INT)) - ) - ->set('colPos', 263) - ->set('tx_container_parent', $containerId) - ->execute(); - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(3, \PDO::PARAM_INT)) - ) - ->set('colPos', 264) - ->set('tx_container_parent', $containerId) - ->execute(); - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(4, \PDO::PARAM_INT)) - ) - ->set('colPos', 265) - ->set('tx_container_parent', $containerId) - ->execute(); - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(5, \PDO::PARAM_INT)) - ) - ->set('colPos', 266) - ->set('tx_container_parent', $containerId) - ->execute(); - - } else { - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($child['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('tx_gridelements_columns', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)) - ) - ->set('colPos', $containerColPos) - ->set('tx_container_parent', $containerId) - ->execute(); - - } - } - } - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($containerId, \PDO::PARAM_INT)) - ) - ->set('CType', $newCType) - ->set('colPos', $containerColPos) - ->set('tx_container_parent', $parentContainerId) - ->execute(); - } - } - } - - /** - * Is an update necessary? - * - * Is used to determine whether a wizard needs to be run. - * Check if data for migration exists. - */ - public function updateNecessary(): bool - { - $updateNeeded = false; - // Check if the database table even exists - if ( $this->checkIfWizardIsRequired() ) { - $updateNeeded = true; - } - return $updateNeeded; - } - - - /** - * Returns an array of class names of prerequisite classes - * - * This way a wizard can define dependencies like "database up-to-date" or - * "reference index updated" - * - * @return string[] - */ - public function getPrerequisites(): array - { - return ''; - } - - /** - * Check if there are record within database table with an empty "gridelements_pi1" field. - * - * @throws \InvalidArgumentException - */ - protected function checkIfWizardIsRequired(): bool - { - $require = false; - - $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tt_content'); - $rows = $queryBuilder - ->select('*') - ->from('tt_content') - ->where($queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter(1, \PDO::PARAM_INT))) - ->execute() - ->fetchAll(); - - if ($rows[0]['gridelements_pi1'] ?? '') { - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('tt_content'); - $numberOfEntries = $queryBuilder - ->count('uid') - ->from('tt_content') - ->where($queryBuilder->expr()->isNotNull('gridelements_pi1')) - ->execute() - ->fetchColumn(); - - $require = $numberOfEntries ? true : false; - } - - return (bool)$require; - } - -} diff --git a/Classes/ViewHelpers/FlexformViewHelper.php b/Classes/ViewHelpers/FlexformViewHelper.php index 57718f8..23da2e3 100644 --- a/Classes/ViewHelpers/FlexformViewHelper.php +++ b/Classes/ViewHelpers/FlexformViewHelper.php @@ -25,6 +25,7 @@ public function initializeArguments() { parent::initializeArguments(); $this->registerArgument('flexform', 'string', 'Flexform field'); + $this->registerArgument('cType', 'string', 'CType', false); } public static function renderStatic( @@ -36,134 +37,167 @@ public static function renderStatic( $flexFormService = GeneralUtility::makeInstance(FlexFormService::class); $flexconf = $flexFormService->convertFlexFormContentToArray($arguments['flexform']); - $rowClass = []; + $classes = []; $extraClass = []; - $isColsClass = FALSE; $extraClass['extraClass_one'] = ''; $extraClass['extraClass_two'] = ''; $extraClass['extraClass_three'] = ''; $extraClass['extraClass_four'] = ''; $extraClass['extraClass_five'] = ''; $extraClass['extraClass_six'] = ''; + $classes['extraClassCols'] = ''; + $classes['rowClass'] = ''; + + if ( !empty($arguments['cType']) && $arguments['cType'] == 'row_columns' ) { + // row_columns + if ( !empty($flexconf['cols_extraClass']) ) { + foreach (explode(',',$flexconf['cols_extraClass']) as $key=>$cec ) { + $colsClass[$key] = ' '.trim($cec); + } + $classes['extraClassCols'] = $colsClass; + } - if ( $flexconf['equalWidth'] ) { - $colOne = 'col'; - $colTwo = 'col'; - $colThree = 'col'; - $colFour = 'col'; - $colFive = 'col'; - $colSix = 'col'; + $keyArr = []; + $rowClass = []; foreach (array_reverse($flexconf) as $key=>$grid) { - if ( substr($key,-10) === 'extraClass' ) { - $extraClass[$key] = $grid; - } - if ($grid) { - if ( substr($key,-8) === 'rowclass' ) { - $rowClass[$key] = $grid; + if (!empty($grid)) { + + $keyArr = explode('_', $key); + + if ( !empty($keyArr[1]) ) { + + if ( $keyArr[1] == 'rowclass' ) { + if (str_starts_with($key, 'xxl_')) { + $rowClass[5] = '-'.$grid; + } elseif (str_starts_with($key, 'xl_')) { + $rowClass[4] = '-'.$grid; + } elseif (str_starts_with($key, 'lg_')) { + $rowClass[3] = '-'.$grid; + } elseif (str_starts_with($key, 'md_')) { + $rowClass[2] = '-'.$grid; + } elseif (str_starts_with($key, 'sm_')) { + $rowClass[1] = '-'.$grid; + }elseif (str_starts_with($key, 'xs_')) { + $rowClass[0] = '-'.$grid; + } + } } } } + $classes['rowClass'] = $rowClass; + } else { - $colOne = ''; - $colTwo = ''; - $colThree = ''; - $colFour = ''; - $colFive = ''; - $colSix = ''; - foreach (array_reverse($flexconf) as $key=>$grid) { - if ( strpos($key, 'extraClass' ) === 0 ) { - $extraClass[$key] = $grid; - } + if ( !empty($flexconf['equalWidth']) ) { + + $colOne = 'col'; + $colTwo = 'col'; + $colThree = 'col'; + $colFour = 'col'; + $colFive = 'col'; + $colSix = 'col'; - if ($grid) { - if ( substr($key,-8) === 'rowclass' ) { - $rowClass[$key] = $grid; + foreach (array_reverse($flexconf) as $key=>$grid) { + + if ($grid) { + + if (str_starts_with($key, 'extraClass_')) { + $extraClass[$key] = trim($grid); + } } } - if ( !GeneralUtility::inList('extraClass_one,extraClass_two,extraClass_three,extraClass_four,extraClass_five,extraClass_six,equalWidth,noGutters,horizontalGutters,verticalGutters', $key) ) { - if ($grid) { - if ( substr($key, 0, 2) == 'xs' ) { - if ( substr($key, -3) == 'one' ) { - $colOne .= ' col-'.$grid; - } - if ( substr($key, -3) == 'two' ) { - $colTwo .= ' col-'.$grid; - } - if ( substr($key, -5) == 'three' ) { - $colThree .= ' col-'.$grid; - } - if ( substr($key, -4) == 'four' ) { - $colFour .= ' col-'.$grid; - } - if ( substr($key, -4) == 'five' ) { - $colFive .= ' col-'.$grid; - } - if ( substr($key, -3) == 'six' ) { - $colSix .= ' col-'.$grid; - } + } else { + + $colOne = ''; + $colTwo = ''; + $colThree = ''; + $colFour = ''; + $colFive = ''; + $colSix = ''; + + + foreach (array_reverse($flexconf) as $key=>$grid) { + + if (!empty($grid)) { + + if (str_starts_with($key, 'extraClass_')) { + $extraClass[$key] = trim($grid); + } elseif ( $key === 'containerWrapper' || $key === 'row_extraClass' || $key === 'verticalGutters' || $key === 'horizontalGutters' ) { + // do nothing } else { - if ( substr($key, -3) == 'one' ) { - $colOne .= ' col-'.substr($key, 0, -4).'-'.$grid; - } - if ( substr($key, -3) == 'two' ) { - $colTwo .= ' col-'.substr($key, 0, -4).'-'.$grid; - } - if ( substr($key, -5) == 'three' ) { - $colThree .= ' col-'.substr($key, 0, -6).'-'.$grid; - } - if ( substr($key, -4) == 'four' ) { - $colFour .= ' col-'.substr($key, 0, -5).'-'.$grid; - } - if ( substr($key, -4) == 'five' ) { - $colFive .= ' col-'.substr($key, 0, -5).'-'.$grid; - } - if ( substr($key, -3) == 'six' ) { - $colSix .= ' col-'.substr($key, 0, -4).'-'.$grid; + if ( substr($key, 0, 2) == 'xs' ) { + if ( substr($key, -3) == 'one' ) { + $colOne .= ' col-'.$grid; + } + if ( substr($key, -3) == 'two' ) { + $colTwo .= ' col-'.$grid; + } + if ( substr($key, -5) == 'three' ) { + $colThree .= ' col-'.$grid; + } + if ( substr($key, -4) == 'four' ) { + $colFour .= ' col-'.$grid; + } + if ( substr($key, -4) == 'five' ) { + $colFive .= ' col-'.$grid; + } + if ( substr($key, -3) == 'six' ) { + $colSix .= ' col-'.$grid; + } + } else { + if ( substr($key, -3) == 'one' ) { + $colOne .= ' col-'.substr($key, 0, -4).'-'.$grid; + } + if ( substr($key, -3) == 'two' ) { + $colTwo .= ' col-'.substr($key, 0, -4).'-'.$grid; + } + if ( substr($key, -5) == 'three' ) { + $colThree .= ' col-'.substr($key, 0, -6).'-'.$grid; + } + if ( substr($key, -4) == 'four' ) { + $colFour .= ' col-'.substr($key, 0, -5).'-'.$grid; + } + if ( substr($key, -4) == 'five' ) { + $colFive .= ' col-'.substr($key, 0, -5).'-'.$grid; + } + if ( substr($key, -3) == 'six' ) { + $colSix .= ' col-'.substr($key, 0, -4).'-'.$grid; + } } } } } } - } - if ($flexconf['cols_extraClass'] ?? '') { - $isColsClass = TRUE; - foreach (explode(',',$flexconf['cols_extraClass']) as $key=>$cec ) { - $colsClass[$key] = ' '.trim($cec); - } - } + $classes['columnOne'] = trim($colOne.' '.$extraClass['extraClass_one']); + $classes['columnTwo'] = trim($colTwo.' '.$extraClass['extraClass_two']); + $classes['columnThree'] = trim($colThree.' '.$extraClass['extraClass_three']); + $classes['columnFour'] = trim($colFour.' '.$extraClass['extraClass_four']); + $classes['columnFive'] = trim($colFive.' '.$extraClass['extraClass_five']); + $classes['columnSix'] = trim($colSix.' '.$extraClass['extraClass_six']); + - $horizontalGutters = (trim($flexconf['horizontalGutters']) == 'gx-4') ? '' : trim($flexconf['horizontalGutters']); - $verticalGutters = (trim($flexconf['verticalGutters']) == 'gy-4') ? '' : trim($flexconf['verticalGutters']); + } + $horizontalGutters = !empty($flexconf['horizontalGutters']) && $flexconf['horizontalGutters'] == 'gx-4' ? '' : trim($flexconf['horizontalGutters']); + $verticalGutters = !empty($flexconf['verticalGutters']) && $flexconf['verticalGutters'] == 'gy-4' ? '' : trim($flexconf['verticalGutters']); $extraContainerClass = ''; - if ( $verticalGutters ) { + if ( $verticalGutters !== 'gy-0' ) { $extraContainerClass = ' overflow-hidden'; } - $containerWrapper = $flexconf['containerWrapper'] ? $flexconf['containerWrapper'] : ''; - if (!$containerWrapper) { + $containerWrapper = !empty($flexconf['containerWrapper']) ? $flexconf['containerWrapper'] : ''; + if ( empty($containerWrapper) ) { $extraContainerClass = trim($extraContainerClass); } - if ($isColsClass) { - $classes['extraClassCols'] = $colsClass; - } - $classes['rowClass'] = ' '.implode(' ',$rowClass); $classes['gutters'] = ' '.$horizontalGutters.' '.$verticalGutters; - $classes['extraClassRow'] = ' '.trim($flexconf['row_extraClass']); + $classes['extraClassRow'] = !empty($flexconf['row_extraClass']) ? ' '.trim($flexconf['row_extraClass']) : ''; $classes['containerClass'] = $containerWrapper.$extraContainerClass; - $classes['columnOne'] = trim($colOne.' '.$extraClass['extraClass_one']); - $classes['columnTwo'] = trim($colTwo.' '.$extraClass['extraClass_two']); - $classes['columnThree'] = trim($colThree.' '.$extraClass['extraClass_three']); - $classes['columnFour'] = trim($colFour.' '.$extraClass['extraClass_four']); - $classes['columnFive'] = trim($colFive.' '.$extraClass['extraClass_five']); - $classes['columnSix'] = trim($colSix.' '.$extraClass['extraClass_six']); return $classes; } diff --git a/Configuration/FlexForms/FourColumns.xml b/Configuration/FlexForms/FourColumns.xml index 5ac123e..4aac80b 100644 --- a/Configuration/FlexForms/FourColumns.xml +++ b/Configuration/FlexForms/FourColumns.xml @@ -2,1898 +2,1799 @@ - - Settings - + Settings + array - - - reload - - check - 0 - - + + reload + + check + 0 + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters - - select - selectSingle - - - gx-0 (no gutters) - gx-0 - - - gx-1 - gx-1 - - - gx-2 - gx-2 - - - gx-3 - gx-3 - - - gx-4 (default) - gx-4 - - - gx-5 - gx-5 - - - gx-4 - - + + INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#horizontal-gutters + + select + selectSingle + + + gx-0 (no gutters) + gx-0 + + + gx-1 + gx-1 + + + gx-2 + gx-2 + + + gx-3 + gx-3 + + + gx-4 (default) + gx-4 + + + gx-5 + gx-5 + + + gx-4 + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters - - select - selectSingle - - - gy-0 (no gutters) - gy-0 - - - gy-1 - gy-1 - - - gy-2 - gy-2 - - - gy-3 - gy-3 - - - gy-4 (default) - gy-4 - - - gy-5 - gy-5 - - - gy-4 - - + + INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#vertical-gutters + + select + selectSingle + + + gy-0 (no gutters) + gy-0 + + + gy-1 + gy-1 + + + gy-2 + gy-2 + + + gy-3 + gy-3 + + + gy-4 (default) + gy-4 + + + gy-5 + gy-5 + + + gy-0 + - - - - input - 50 - - + + + input + 50 + - - - - select - selectSingle - - - no container - - - - container - container - - - container-sm - container-sm - - - container-md - container-md - - - container-lg - container-lg - - - container-xl - container-xl - - - container-xxl - container-xxl - - - container-fluid - container-fluid - - - - - + + + select + selectSingle + + + no container + + + + container + container + + + container-sm + container-sm + + + container-md + container-md + + + container-lg + container-lg + + + container-xl + container-xl + + + container-xxl + container-xxl + + + container-fluid + container-fluid + + + + - - Extra Class - + Extra Class array - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - Col-xxl-* - + Col-xxl-* + array - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-xl-* - + Col-xl-* + array - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-lg-* - + Col-lg-* + array - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-md-* - + Col-md-* + array - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 3 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 3 + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 3 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 3 + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 3 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 3 + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 3 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 3 + - - Col-sm-* - + Col-sm-* + array - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-* - + Col-* + array - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + diff --git a/Configuration/FlexForms/RowColumns.xml b/Configuration/FlexForms/RowColumns.xml index d64f0bf..e48a4f9 100644 --- a/Configuration/FlexForms/RowColumns.xml +++ b/Configuration/FlexForms/RowColumns.xml @@ -2,467 +2,580 @@ - - Settings - + Settings array - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters - - select - selectSingle - - - gx-0 (no gutters) - gx-0 - - - gx-1 - gx-1 - - - gx-2 - gx-2 - - - gx-3 - gx-3 - - - gx-4 (default) - gx-4 - - - gx-5 - gx-5 - - - gx-4 - - + + INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#horizontal-gutters + + select + selectSingle + + + gx-0 (no gutters) + gx-0 + + + gx-1 + gx-1 + + + gx-2 + gx-2 + + + gx-3 + gx-3 + + + gx-4 (default) + gx-4 + + + gx-5 + gx-5 + + + gx-4 + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters - - select - selectSingle - - - gy-0 (no gutters) - gy-0 - - - gy-1 - gy-1 - - - gy-2 - gy-2 - - - gy-3 - gy-3 - - - gy-4 (default) - gy-4 - - - gy-5 - gy-5 - - - gy-4 - - + + INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#vertical-gutters + + select + selectSingle + + + gy-0 (no gutters) + gy-0 + + + gy-1 + gy-1 + + + gy-2 + gy-2 + + + gy-3 + gy-3 + + + gy-4 (default) + gy-4 + + + gy-5 + gy-5 + + + gy-0 + - - - - input - 50 - - + + e.g.: 'row-cols-4' or 'row-cols-1 row-cols-sm-2 row-cols-md-4' | info: https://getbootstrap.com/docs/5.3/layout/grid/#row-columns + + input + 50 + - - - Comma separated list for each column - e.g.: bg-success p-5, bg-secondary text-white p-5 - - input - 50 - - + + Comma separated list for each column - e.g.: bg-success p-5, bg-secondary text-white p-5 + + input + 50 + - - - - select - selectSingle - - - no container - - - - container - container - - - container-sm - container-sm - - - container-md - container-md - - - container-lg - container-lg - - - container-xl - container-xl - - - container-xxl - container-xxl - - - container-fluid - container-fluid - - - - - + + + select + selectSingle + + + no container + + + + container + container + + + container-sm + container-sm + + + container-md + container-md + + + container-lg + container-lg + + + container-xl + container-xl + + + container-xxl + container-xxl + + + container-fluid + container-fluid + + + + - - row-cols-xxl-* - + row-cols-xxl-* - - - INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns - - select - selectSingle - - - none - - - - Row columns 1 - row-cols-xxl-1 - - - Row columns 2 - row-cols-xxl-2 - - - Row columns 3 - row-cols-xxl-3 - - - Row columns 4 - row-cols-xxl-4 - - - Row columns 5 - row-cols-xxl-5 - - - Row columns 6 - row-cols-xxl-6 - - - Row columns auto - row-cols-xxl-auto - - - - - + + INFO: https://getbootstrap.com/docs/5.3/layout/grid/#row-columns + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - row-cols-xl-* - + row-cols-xl-* - - - INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns - - select - selectSingle - - - none - - - - Row columns 1 - row-cols-xl-1 - - - Row columns 2 - row-cols-xl-2 - - - Row columns 3 - row-cols-xl-3 - - - Row columns 4 - row-cols-xl-4 - - - Row columns 5 - row-cols-xl-5 - - - Row columns 6 - row-cols-xl-6 - - - Row columns auto - row-cols-xl-auto - - - - - + + INFO: https://getbootstrap.com/docs/5.3/layout/grid/#row-columns + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - row-cols-lg-* - + row-cols-lg-* - - - INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns - - select - selectSingle - - - none - - - - Row columns 1 - row-cols-lg-1 - - - Row columns 2 - row-cols-lg-2 - - - Row columns 3 - row-cols-lg-3 - - - Row columns 4 - row-cols-lg-4 - - - Row columns 5 - row-cols-lg-5 - - - Row columns 6 - row-cols-lg-6 - - - Row columns auto - row-cols-lg-auto - - - - - + + INFO: https://getbootstrap.com/docs/5.3/layout/grid/#row-columns + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - row-cols-md-* - + row-cols-md-* - - - INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns - - select - selectSingle - - - none - - - - Row columns 1 - row-cols-md-1 - - - Row columns 2 - row-cols-md-2 - - - Row columns 3 - row-cols-md-3 - - - Row columns 4 - row-cols-md-4 - - - Row columns 5 - row-cols-md-5 - - - Row columns 6 - row-cols-md-6 - - - Row columns auto - row-cols-md-auto - - - row-cols-md-3 - - + + INFO: https://getbootstrap.com/docs/5.3/layout/grid/#row-columns + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - row-cols-sm-* - + row-cols-sm-* - - - INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns - - select - selectSingle - - - none - - - - Row columns 1 - row-cols-sm-1 - - - Row columns 2 - row-cols-sm-2 - - - Row columns 3 - row-cols-sm-3 - - - Row columns 4 - row-cols-sm-4 - - - Row columns 5 - row-cols-sm-5 - - - Row columns 6 - row-cols-sm-6 - - - Row columns auto - row-cols-sm-auto - - - - - + + INFO: https://getbootstrap.com/docs/5.3/layout/grid/#row-columns + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - row-cols-* - + row-cols-* - - - INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns - - select - selectSingle - - - Row columns 1 - row-cols-1 - - - Row columns 2 - row-cols-2 - - - Row columns 3 - row-cols-3 - - - Row columns 4 - row-cols-4 - - - Row columns 5 - row-cols-5 - - - Row columns 6 - row-cols-6 - - - Row columns auto - row-cols-auto - - - row-cols-1 - - + + INFO: https://getbootstrap.com/docs/5.3/layout/grid/#row-columns + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + diff --git a/Configuration/FlexForms/SixColumns.xml b/Configuration/FlexForms/SixColumns.xml index 1a06e70..574a773 100644 --- a/Configuration/FlexForms/SixColumns.xml +++ b/Configuration/FlexForms/SixColumns.xml @@ -2,2786 +2,2639 @@ - - Settings - + Settings array - - - reload - - check - 0 - - + + reload + + check + 0 + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters - - select - selectSingle - - - gx-0 (no gutters) - gx-0 - - - gx-1 - gx-1 - - - gx-2 - gx-2 - - - gx-3 - gx-3 - - - gx-4 (default) - gx-4 - - - gx-5 - gx-5 - - - gx-4 - - + + INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#horizontal-gutters + + select + selectSingle + + + gx-0 (no gutters) + gx-0 + + + gx-1 + gx-1 + + + gx-2 + gx-2 + + + gx-3 + gx-3 + + + gx-4 (default) + gx-4 + + + gx-5 + gx-5 + + + gx-4 + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters - - select - selectSingle - - - gy-0 (no gutters) - gy-0 - - - gy-1 - gy-1 - - - gy-2 - gy-2 - - - gy-3 - gy-3 - - - gy-4 (default) - gy-4 - - - gy-5 - gy-5 - - - gy-4 - - + + INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#vertical-gutters + + select + selectSingle + + + gy-0 (no gutters) + gy-0 + + + gy-1 + gy-1 + + + gy-2 + gy-2 + + + gy-3 + gy-3 + + + gy-4 (default) + gy-4 + + + gy-5 + gy-5 + + + gy-0 + - - - - input - 50 - - + + + input + 50 + - - - - select - selectSingle - - - no container - - - - container - container - - - container-sm - container-sm - - - container-md - container-md - - - container-lg - container-lg - - - container-xl - container-xl - - - container-xxl - container-xxl - - - container-fluid - container-fluid - - - - - + + + select + selectSingle + + + no container + + + + container + container + + + container-sm + container-sm + + + container-md + container-md + + + container-lg + container-lg + + + container-xl + container-xl + + + container-xxl + container-xxl + + + container-fluid + container-fluid + + + + - - Extra Class - + Extra Class - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - + Col-xxl-* array - - Col-xxl-* - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + + Col-xl-* array - - Col-xl-* - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + + Col-lg-* array - - Col-lg-* - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + + Col-md-* array - - Col-md-* - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 2 - - + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 2 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 2 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 2 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 2 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 2 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 2 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 2 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 2 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 2 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 2 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 2 + + Col-sm-* array - - Col-sm-* - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + + Col-* array - - Col-* - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + diff --git a/Configuration/FlexForms/ThreeColumns.xml b/Configuration/FlexForms/ThreeColumns.xml index 4a343cc..cc097d7 100644 --- a/Configuration/FlexForms/ThreeColumns.xml +++ b/Configuration/FlexForms/ThreeColumns.xml @@ -2,1494 +2,1415 @@ - - Settings - + Settings + array - - - reload - - check - 0 - - + + reload + + check + 0 + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters - - select - selectSingle - - - gx-0 (no gutters) - gx-0 - - - gx-1 - gx-1 - - - gx-2 - gx-2 - - - gx-3 - gx-3 - - - gx-4 (default) - gx-4 - - - gx-5 - gx-5 - - - gx-4 - - + + INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#horizontal-gutters + + select + selectSingle + + + gx-0 (no gutters) + gx-0 + + + gx-1 + gx-1 + + + gx-2 + gx-2 + + + gx-3 + gx-3 + + + gx-4 (default) + gx-4 + + + gx-5 + gx-5 + + + gx-4 + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters - - select - selectSingle - - - gy-0 (no gutters) - gy-0 - - - gy-1 - gy-1 - - - gy-2 - gy-2 - - - gy-3 - gy-3 - - - gy-4 (default) - gy-4 - - - gy-5 - gy-5 - - - gy-4 - - + + INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#vertical-gutters + + select + selectSingle + + + gy-0 (no gutters) + gy-0 + + + gy-1 + gy-1 + + + gy-2 + gy-2 + + + gy-3 + gy-3 + + + gy-4 (default) + gy-4 + + + gy-5 + gy-5 + + + gy-0 + - - - - input - 50 - - + + + input + 50 + - - - - select - selectSingle - - - no container - - - - container - container - - - container-sm - container-sm - - - container-md - container-md - - - container-lg - container-lg - - - container-xl - container-xl - - - container-xxl - container-xxl - - - container-fluid - container-fluid - - - - - + + + select + selectSingle + + + no container + + + + container + container + + + container-sm + container-sm + + + container-md + container-md + + + container-lg + container-lg + + + container-xl + container-xl + + + container-xxl + container-xxl + + + container-fluid + container-fluid + + + + - - Extra Class - + Extra Class array - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - Col-xl-* - + Col-xxl-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-xl-* - + Col-xl-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-lg-* - + Col-lg-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-md-* - + Col-md-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 4 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 4 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 4 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 4 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 4 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 4 + - - Col-sm-* - + Col-sm-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-* - + Col-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + diff --git a/Configuration/FlexForms/TwoColumns.xml b/Configuration/FlexForms/TwoColumns.xml index 74cfe33..99569ce 100644 --- a/Configuration/FlexForms/TwoColumns.xml +++ b/Configuration/FlexForms/TwoColumns.xml @@ -2,1066 +2,1000 @@ - - Settings - + Settings array - - - reload - - check - 0 - - + + reload + + check + 0 + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters - - select - selectSingle - - - gx-0 (no gutters) - gx-0 - - - gx-1 - gx-1 - - - gx-2 - gx-2 - - - gx-3 - gx-3 - - - gx-4 (default) - gx-4 - - - gx-5 - gx-5 - - - gx-4 - - + + INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#horizontal-gutters + + select + selectSingle + + + gx-0 (no gutters) + gx-0 + + + gx-1 + gx-1 + + + gx-2 + gx-2 + + + gx-3 + gx-3 + + + gx-4 (default) + gx-4 + + + gx-5 + gx-5 + + + gx-4 + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters - - select - selectSingle - - - gy-0 (no gutters) - gy-0 - - - gy-1 - gy-1 - - - gy-2 - gy-2 - - - gy-3 - gy-3 - - - gy-4 (default) - gy-4 - - - gy-5 - gy-5 - - - gy-4 - - + + INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#vertical-gutters + + select + selectSingle + + + gy-0 (no gutters) + gy-0 + + + gy-1 + gy-1 + + + gy-2 + gy-2 + + + gy-3 + gy-3 + + + gy-4 (default) + gy-4 + + + gy-5 + gy-5 + + + gy-0 + - - - - input - 50 - - + + + input + 50 + - - - - select - selectSingle + + + select + selectSingle + + + no container + + + + container + container + + + container-sm + container-sm + + + container-md + container-md + + + container-lg + container-lg + + + container-xl + container-xl + + + container-xxl + container-xxl + + + container-fluid + container-fluid + + + + + + + + + + + Extra Class + + + + + input + + + + + + input + + + + + + + + Col-xxl-* + + + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle - no container + 0 - container - container + 1 + 1 - container-sm - container-sm + 2 + 2 - container-md - container-md + 3 + 3 - container-lg - container-lg + 4 + 4 - container-xl - container-xl + 5 + 5 - container-xxl - container-xxl + 6 + 6 - container-fluid - container-fluid + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto - - - - - - - - - - Extra Class - - - - - - - input - - - - - - - - input - - - - - - - - - - Col-xxl-* - - - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-xl-* - + Col-xl-* - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-lg-* - + Col-lg-* - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-md-* - + Col-md-* - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 6 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 6 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 6 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 6 + - - Col-sm-* - + Col-sm-* - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-* - + Col-* - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + diff --git a/Configuration/Icons.php b/Configuration/Icons.php new file mode 100644 index 0000000..83337c8 --- /dev/null +++ b/Configuration/Icons.php @@ -0,0 +1,9 @@ + [ + 'provider' => \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class, + 'source' => 'EXT:t3sbootstrap_grid/Resources/Public/Icons/Extension.svg', + ], + +]; \ No newline at end of file diff --git a/Configuration/Services.yaml b/Configuration/Services.yaml index 3e45bf1..7ffa2f8 100644 --- a/Configuration/Services.yaml +++ b/Configuration/Services.yaml @@ -7,5 +7,3 @@ services: T3S\T3sbootstrapGrid\: resource: '../Classes/*' - T3S\T3sbootstrapGrid\Backend\Preview\T3sGridPreviewRenderer: - public: true diff --git a/Configuration/TCA/Overrides/tt_content.php b/Configuration/TCA/Overrides/tt_content.php index 5b7cddf..952e2a2 100644 --- a/Configuration/TCA/Overrides/tt_content.php +++ b/Configuration/TCA/Overrides/tt_content.php @@ -3,7 +3,6 @@ use \TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use \B13\Container\Tca\Registry; use \B13\Container\Tca\ContainerConfiguration; -use T3S\T3sbootstrapGrid\Backend\Preview\T3sGridPreviewRenderer; defined('TYPO3') or die(); @@ -30,6 +29,10 @@ ->setIcon('EXT:container/Resources/Public/Icons/container-2col.svg') ->setGroup('T3S Bootstrap Grid') ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Partials/') ); $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem'] = ' --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, @@ -68,6 +71,10 @@ ->setIcon('EXT:container/Resources/Public/Icons/container-3col.svg') ->setGroup('T3S Bootstrap Grid') ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Partials/') ); $GLOBALS['TCA']['tt_content']['types']['three_columns']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; @@ -90,6 +97,10 @@ ->setIcon('EXT:container/Resources/Public/Icons/container-4col.svg') ->setGroup('T3S Bootstrap Grid') ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Partials/') ); $GLOBALS['TCA']['tt_content']['types']['four_columns']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; @@ -114,6 +125,10 @@ ->setIcon('EXT:container/Resources/Public/Icons/container-4col.svg') ->setGroup('T3S Bootstrap Grid') ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Partials/') ); $GLOBALS['TCA']['tt_content']['types']['six_columns']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; @@ -133,6 +148,10 @@ ->setIcon('EXT:container/Resources/Public/Icons/container-4col.svg') ->setGroup('T3S Bootstrap Grid') ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap_grid/Resources/Private/Backend/Preview/Partials/') ); $GLOBALS['TCA']['tt_content']['types']['row_columns']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; @@ -175,10 +194,3 @@ 'showitem' => 'tx_t3sbootstrap_grid_flexform', ]; -/*************** - * Show preview of tt_content elements in page module - */ -$containers = ['two_columns', 'three_columns', 'four_columns', 'six_columns', 'row_columns']; -foreach ($containers as $container) { - $GLOBALS['TCA']['tt_content']['types'][trim($container)]['previewRenderer'] = T3sGridPreviewRenderer::class; -} diff --git a/Configuration/TSConfig/Page.tsconfig b/Configuration/page.tsconfig similarity index 98% rename from Configuration/TSConfig/Page.tsconfig rename to Configuration/page.tsconfig index cb53d5e..3f8a28c 100644 --- a/Configuration/TSConfig/Page.tsconfig +++ b/Configuration/page.tsconfig @@ -5,6 +5,11 @@ mod.wizards { newContentElement { wizardItems { t3sbsgrid { + + +iconIdentifier = bootstrapgridlogo + + header = T3SB Grid elements { twocolumns { @@ -44,3 +49,4 @@ mod.wizards { } } } + diff --git a/Resources/Private/Backend/Preview/Partials/PageLayout/Grid/Column.html b/Resources/Private/Backend/Preview/Partials/PageLayout/Grid/Column.html new file mode 100644 index 0000000..415b12a --- /dev/null +++ b/Resources/Private/Backend/Preview/Partials/PageLayout/Grid/Column.html @@ -0,0 +1,25 @@ + + Styling requires the colpos to be set to the string 'unused'. To preserve type safety in the + controller, the string is only used in the template by setting the below "colpos" variable. + + + + + +
+ + + +
+
+ {column.afterSectionMarkup} + diff --git a/Resources/Private/Backend/Preview/Partials/PageLayout/Grid/ColumnHeader.html b/Resources/Private/Backend/Preview/Partials/PageLayout/Grid/ColumnHeader.html new file mode 100644 index 0000000..8b890a8 --- /dev/null +++ b/Resources/Private/Backend/Preview/Partials/PageLayout/Grid/ColumnHeader.html @@ -0,0 +1,39 @@ +
+ + +
+ + + +
+ + Content + + {column.title} + +
+ + + + + {column.titleUnassigned} + + + {column.titleInaccessible} + +
+
+{column.beforeSectionMarkup} + +
+
+ + + +
+
+
+
diff --git a/Resources/Private/Backend/Preview/Partials/PageLayout/Record.html b/Resources/Private/Backend/Preview/Partials/PageLayout/Record.html new file mode 100644 index 0000000..83365bd --- /dev/null +++ b/Resources/Private/Backend/Preview/Partials/PageLayout/Record.html @@ -0,0 +1,27 @@ +{f:if(condition: '{item.disabled} && {item.context.drawingConfiguration.showHidden} == 0', then: 'display: none;') -> f:variable(name: 'style')} +
+
+ + + + +
+ +
+
+ + + +
+ +
+ + + +
+
+
+
diff --git a/Resources/Private/Backend/Preview/Templates/Container.html b/Resources/Private/Backend/Preview/Templates/Container.html new file mode 100644 index 0000000..9e87bce --- /dev/null +++ b/Resources/Private/Backend/Preview/Templates/Container.html @@ -0,0 +1,6 @@ + +{tx_container_grid} + diff --git a/Resources/Private/Backend/Preview/Templates/Grid.html b/Resources/Private/Backend/Preview/Templates/Grid.html new file mode 100644 index 0000000..bc7f2dc --- /dev/null +++ b/Resources/Private/Backend/Preview/Templates/Grid.html @@ -0,0 +1,47 @@ + + +
+
Settings:
+ + + +{t3s:flexform(flexform: '{tx_t3sbootstrap_grid_flexform}')} + + +
+
+ + + + + + + + + + +
+ +
+
+ + +
+ + + +
+
+
+ +
+
+
+ + + diff --git a/Resources/Private/Icons/Extension.svg b/Resources/Private/Icons/Extension.svg index c0c9569..4850634 100644 --- a/Resources/Private/Icons/Extension.svg +++ b/Resources/Private/Icons/Extension.svg @@ -1,8 +1,7 @@ - - + diff --git a/Resources/Private/Templates/Container/FourColumns.html b/Resources/Private/Templates/Container/FourColumns.html index 9f2cd62..edf97a9 100644 --- a/Resources/Private/Templates/Container/FourColumns.html +++ b/Resources/Private/Templates/Container/FourColumns.html @@ -15,7 +15,7 @@ -
+
diff --git a/Resources/Private/Templates/Container/RowColumns.html b/Resources/Private/Templates/Container/RowColumns.html index 37ca5db..c10ac8d 100644 --- a/Resources/Private/Templates/Container/RowColumns.html +++ b/Resources/Private/Templates/Container/RowColumns.html @@ -1,6 +1,6 @@ - {t3s:flexform(flexform: '{data.tx_t3sbootstrap_grid_flexform}')} + {t3s:flexform(flexform: '{data.tx_t3sbootstrap_grid_flexform}', cType: '{data.CType}')}
@@ -15,19 +15,18 @@ -
+
- - -
- {child.renderedContent -> f:format.raw()} -
-
-
-
+ + +
+ {child.renderedContent -> f:format.raw()} +
+
+
diff --git a/Resources/Private/Templates/Container/SixColumns.html b/Resources/Private/Templates/Container/SixColumns.html index 451ed33..89d8e99 100644 --- a/Resources/Private/Templates/Container/SixColumns.html +++ b/Resources/Private/Templates/Container/SixColumns.html @@ -15,7 +15,7 @@ -
+
diff --git a/Resources/Private/Templates/Container/ThreeColumns.html b/Resources/Private/Templates/Container/ThreeColumns.html index a3d7d60..1e945d9 100644 --- a/Resources/Private/Templates/Container/ThreeColumns.html +++ b/Resources/Private/Templates/Container/ThreeColumns.html @@ -15,7 +15,7 @@ -
+
diff --git a/Resources/Private/Templates/Container/TwoColumns.html b/Resources/Private/Templates/Container/TwoColumns.html index e9215ed..bb4a6fa 100644 --- a/Resources/Private/Templates/Container/TwoColumns.html +++ b/Resources/Private/Templates/Container/TwoColumns.html @@ -1,6 +1,9 @@ + {t3s:flexform(flexform: '{data.tx_t3sbootstrap_grid_flexform}')} + +
@@ -15,7 +18,7 @@ -
+
diff --git a/composer.json b/composer.json index 9320bc1..7f94c7f 100644 --- a/composer.json +++ b/composer.json @@ -11,8 +11,8 @@ } ], "require": { - "typo3/cms-core": "^10.4 || ^11", - "b13/container": "^2.0.5" + "typo3/cms-core": "^12", + "b13/container": "^2.2.3" }, "autoload": { "psr-4": { diff --git a/ext_emconf.php b/ext_emconf.php index daedbd6..0daa54d 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -18,11 +18,11 @@ 'author_email' => 'typo3@t3solution.de', 'state' => 'stable', - 'version' => '2.0.2', + 'version' => '3.0.0', 'constraints' => [ 'depends' => [ - 'typo3' => '10.4.4-11.99.99', - 'container' => '2.0.5-2.99.99' + 'typo3' => '12.4.2-12.4.99', + 'container' => '2.2.3-2.99.99' ], 'conflicts' => [ 't3sbootstrap' => '*', diff --git a/ext_localconf.php b/ext_localconf.php index 3aaefc4..8650905 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -1,24 +1,4 @@