mirror of
https://github.com/Iconica-Development/flutter_timetable.git
synced 2025-05-18 19:43:43 +02:00
feat: create melos package for flutter_timetable
This commit is contained in:
parent
93b25c7db6
commit
651ed33cfc
26 changed files with 159 additions and 41 deletions
23
.github/dependabot.yml
vendored
Normal file
23
.github/dependabot.yml
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
version: 2
|
||||
|
||||
updates:
|
||||
# - package-ecosystem: "pub"
|
||||
# directory: "/packages/flutter_timetable"
|
||||
# schedule:
|
||||
# interval: "weekly"
|
||||
|
||||
- package-ecosystem: "pub"
|
||||
directory: "/packages/flutter_timetable_interface"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
|
||||
- package-ecosystem: "pub"
|
||||
directory: "/packages/flutter_timetable_firebase"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
|
||||
- package-ecosystem: "pub"
|
||||
directory: "/packages/flutter_timetable_view"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
|
6
.github/workflows/flutter.yml
vendored
6
.github/workflows/flutter.yml
vendored
|
@ -1,4 +1,4 @@
|
|||
name: Iconica Standard Component CI Workflow
|
||||
name: Iconica Standard Melos CI Workflow
|
||||
# Workflow Caller version: 1.0.0
|
||||
|
||||
on:
|
||||
|
@ -7,6 +7,8 @@ on:
|
|||
|
||||
jobs:
|
||||
call-global-iconica-workflow:
|
||||
uses: Iconica-Development/.github/.github/workflows/component-ci.yml@master
|
||||
uses: Iconica-Development/.github/.github/workflows/melos-ci.yml@master
|
||||
secrets: inherit
|
||||
permissions: write-all
|
||||
with:
|
||||
subfolder: '.' # add optional subfolder to run workflow in
|
16
.gitignore
vendored
16
.gitignore
vendored
|
@ -23,16 +23,18 @@ migrate_working_dir/
|
|||
|
||||
# Flutter/Dart/Pub related
|
||||
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
|
||||
/pubspec.lock
|
||||
pubspec.lock
|
||||
**/doc/api/
|
||||
.dart_tool/
|
||||
.packages
|
||||
build/
|
||||
.metadata
|
||||
|
||||
example/android/
|
||||
example/ios/
|
||||
example/web/
|
||||
example/linux/
|
||||
example/macos/
|
||||
example/windows/
|
||||
android/
|
||||
ios/
|
||||
web/
|
||||
linux/
|
||||
macos/
|
||||
windows/
|
||||
|
||||
pubspec_overrides.yaml
|
||||
|
|
|
@ -30,3 +30,7 @@
|
|||
## [1.4.0] - 13 November 2023
|
||||
|
||||
* Add the option for sorting the blocks by their id.
|
||||
|
||||
## [2.0.0] - 03 December 2023
|
||||
|
||||
* Create Melos variant of the component where there are multiple packages in the same repository.
|
||||
|
|
2
LICENSE
2
LICENSE
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2022 Iconica, All rights reserved.
|
||||
Copyright (c) 2023 Iconica, All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
|
|
38
melos.yaml
Normal file
38
melos.yaml
Normal file
|
@ -0,0 +1,38 @@
|
|||
name: flutter_timetable
|
||||
|
||||
packages:
|
||||
- packages/**
|
||||
|
||||
command:
|
||||
version:
|
||||
branch: master
|
||||
|
||||
scripts:
|
||||
lint:all:
|
||||
run: dart run melos run analyze && dart run melos run format-check
|
||||
description: Run all static analysis checks.
|
||||
|
||||
get:
|
||||
run: |
|
||||
melos exec -c 1 -- "flutter pub get"
|
||||
melos exec --scope="*example*" -c 1 -- "flutter pub get"
|
||||
|
||||
upgrade:
|
||||
run: melos exec -c 1 -- "flutter pub upgrade"
|
||||
|
||||
create:
|
||||
run: melos exec --scope="*example*" -c 1 -- "flutter create ."
|
||||
|
||||
analyze:
|
||||
run: |
|
||||
dart run melos exec -c 1 -- \
|
||||
flutter analyze --fatal-infos
|
||||
description: Run `flutter analyze` for all packages.
|
||||
|
||||
format:
|
||||
run: dart run melos exec dart format .
|
||||
description: Run `dart format` for all packages.
|
||||
|
||||
format-check:
|
||||
run: dart run melos exec dart format . --set-exit-if-changed
|
||||
description: Run `dart format` checks for all packages.
|
|
@ -0,0 +1,4 @@
|
|||
include: package:flutter_lints/flutter.yaml
|
||||
|
||||
# Additional information about this file can be found at
|
||||
# https://dart.dev/guides/language/analysis-options
|
|
@ -0,0 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2023 Iconica
|
||||
//
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
library flutter_timetable_interface;
|
||||
|
||||
export 'src/model/time_block.dart';
|
22
packages/flutter_timetable_interface/pubspec.yaml
Normal file
22
packages/flutter_timetable_interface/pubspec.yaml
Normal file
|
@ -0,0 +1,22 @@
|
|||
# SPDX-FileCopyrightText: 2023 Iconica
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
name: flutter_timetable_interface
|
||||
description: A new Flutter package project.
|
||||
version: 2.0.0
|
||||
repository: https://github.com/Iconica-Development/flutter_timetable
|
||||
publish_to: none
|
||||
|
||||
environment:
|
||||
sdk: ">=3.1.0 <4.0.0"
|
||||
flutter: ">=1.17.0"
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
|
||||
dev_dependencies:
|
||||
flutter_lints: ^2.0.0
|
||||
|
||||
flutter:
|
|
@ -3,7 +3,8 @@
|
|||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_timetable/timetable.dart';
|
||||
import 'package:flutter_timetable_interface/flutter_timetable_interface.dart';
|
||||
import 'package:flutter_timetable_view/flutter_timetable_view.dart';
|
||||
|
||||
void main() {
|
||||
runApp(const MaterialApp(home: TimetableDemo()));
|
|
@ -13,8 +13,10 @@ dependencies:
|
|||
sdk: flutter
|
||||
|
||||
cupertino_icons: ^1.0.2
|
||||
flutter_timetable:
|
||||
flutter_timetable_view:
|
||||
path: ../
|
||||
flutter_timetable_interface:
|
||||
path: ../../flutter_timetable_interface
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
|
@ -5,7 +5,6 @@
|
|||
library timetable;
|
||||
|
||||
export 'src/models/table_theme.dart';
|
||||
export 'src/models/time_block.dart';
|
||||
export 'src/timetable.dart';
|
||||
export 'src/widgets/block.dart';
|
||||
export 'src/widgets/table.dart';
|
|
@ -3,7 +3,7 @@
|
|||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_timetable/src/models/time_block.dart';
|
||||
import 'package:flutter_timetable_interface/flutter_timetable_interface.dart';
|
||||
|
||||
/// Combine blocks that have the same id and the same time.
|
||||
List<TimeBlock> combineBlocksWithId(List<TimeBlock> blocks) {
|
|
@ -6,11 +6,12 @@ import 'dart:math';
|
|||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
import 'package:flutter_timetable/src/block_service.dart';
|
||||
import 'package:flutter_timetable/src/models/table_theme.dart';
|
||||
import 'package:flutter_timetable/src/models/time_block.dart';
|
||||
import 'package:flutter_timetable/src/widgets/block.dart';
|
||||
import 'package:flutter_timetable/src/widgets/table.dart' as table;
|
||||
import 'package:flutter_timetable_interface/flutter_timetable_interface.dart';
|
||||
import 'package:flutter_timetable_view/src/block_service.dart';
|
||||
import 'package:flutter_timetable_view/src/models/table_theme.dart';
|
||||
import 'package:flutter_timetable_view/src/widgets/block.dart';
|
||||
|
||||
import 'package:flutter_timetable_view/src/widgets/table.dart' as table;
|
||||
|
||||
class Timetable extends StatefulWidget {
|
||||
/// [Timetable] widget that displays a timetable with [TimeBlock]s.
|
||||
|
@ -360,7 +361,7 @@ class _TimetableState extends State<Timetable> {
|
|||
widget.theme.timeStyle ?? Theme.of(context).textTheme.bodyLarge,
|
||||
),
|
||||
maxLines: 1,
|
||||
textScaleFactor: MediaQuery.of(context).textScaleFactor,
|
||||
textScaler: MediaQuery.textScalerOf(context),
|
||||
textDirection: TextDirection.ltr,
|
||||
)..layout())
|
||||
.size;
|
|
@ -3,7 +3,7 @@
|
|||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_timetable/src/models/table_theme.dart';
|
||||
import 'package:flutter_timetable_view/src/models/table_theme.dart';
|
||||
|
||||
class Table extends StatelessWidget {
|
||||
/// The [Table] to draw an overview of timerange with corresponding hour lines
|
26
packages/flutter_timetable_view/pubspec.yaml
Normal file
26
packages/flutter_timetable_view/pubspec.yaml
Normal file
|
@ -0,0 +1,26 @@
|
|||
name: flutter_timetable_view
|
||||
description: Flutter package to create a Timetable Widget that display blocks of widgets inside a timetable.
|
||||
version: 2.0.0
|
||||
repository: https://github.com/Iconica-Development/flutter_timetable
|
||||
|
||||
publish_to: none
|
||||
|
||||
environment:
|
||||
sdk: ">=3.2.0 <4.0.0"
|
||||
flutter: ">=1.17.0"
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
flutter_timetable_interface:
|
||||
git:
|
||||
url: https://github.com/Iconica-Development/flutter_timetable
|
||||
ref: 2.0.0
|
||||
path: packages/flutter_timetable_interface
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
flutter_lints: ^2.0.0
|
||||
|
||||
flutter:
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:flutter_timetable/src/block_service.dart';
|
||||
import 'package:flutter_timetable/timetable.dart';
|
||||
import 'package:flutter_timetable_interface/flutter_timetable_interface.dart';
|
||||
import 'package:flutter_timetable_view/src/block_service.dart';
|
||||
|
||||
void main() {
|
||||
group('test combineBlocksWithId', () {
|
19
pubspec.yaml
19
pubspec.yaml
|
@ -1,19 +1,6 @@
|
|||
name: flutter_timetable
|
||||
description: Flutter package to create a Timetable Widget that display blocks of widgets inside a timetable.
|
||||
version: 1.4.0
|
||||
repository: https://github.com/Iconica-Development/timetable
|
||||
name: flutter_timetable_workspace
|
||||
|
||||
environment:
|
||||
sdk: ">=3.0.0 <4.0.0"
|
||||
flutter: ">=1.17.0"
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
|
||||
sdk: '>=3.1.0 <4.0.0'
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
flutter_lints: ^2.0.0
|
||||
|
||||
flutter:
|
||||
melos: ^3.0.1
|
||||
|
|
Loading…
Reference in a new issue