resolve conflits

This commit is contained in:
jantunesmessias 2025-02-20 08:52:59 -03:00
parent c0061eabe0
commit d03b3fbdfe
8 changed files with 228 additions and 217 deletions

View File

@ -67,75 +67,114 @@ class _DetailsComponentWidgetState extends State<DetailsComponentWidget> {
// CachedNetworkImage.evictFromCache(widget.imagePath ?? ''); // CachedNetworkImage.evictFromCache(widget.imagePath ?? '');
final double limitedBodyFontSize = final double limitedBodyFontSize =
LimitedFontSizeUtil.getBodyFontSize(context); LimitedFontSizeUtil.getBodyFontSize(context);
return Container( return Material(
constraints: BoxConstraints( type: MaterialType.transparency,
maxWidth: MediaQuery.of(context).size.width, child: Container(
maxHeight: MediaQuery.of(context).size.height, constraints: BoxConstraints(
), maxWidth: MediaQuery.of(context).size.width,
decoration: BoxDecoration( maxHeight: MediaQuery.of(context).size.height,
color: FlutterFlowTheme.of(context).primaryBackground, ),
borderRadius: const BorderRadius.all(Radius.circular(25.0)), decoration: BoxDecoration(
), color: FlutterFlowTheme.of(context).primaryBackground,
child: SingleChildScrollView( borderRadius: const BorderRadius.all(Radius.circular(25.0)),
child: Column( ),
mainAxisSize: MainAxisSize.max, child: SingleChildScrollView(
mainAxisAlignment: MainAxisAlignment.start, child: Column(
children: [ mainAxisSize: MainAxisSize.max,
SizedBox(height: MediaQuery.of(context).size.height * 0.02), mainAxisAlignment: MainAxisAlignment.start,
if (widget.imagePath != null && widget.imagePath != '') children: [
Container( SizedBox(height: MediaQuery.of(context).size.height * 0.02),
width: MediaQuery.of(context).size.width * 0.3, if (widget.imagePath != null && widget.imagePath != '')
height: MediaQuery.of(context).size.width * 0.3, Container(
clipBehavior: Clip.antiAlias, width: MediaQuery.of(context).size.width * 0.3,
decoration: const BoxDecoration( height: MediaQuery.of(context).size.width * 0.3,
shape: BoxShape.circle, clipBehavior: Clip.antiAlias,
decoration: const BoxDecoration(
shape: BoxShape.circle,
),
child: CachedNetworkImage(
fadeInDuration: const Duration(milliseconds: 100),
fadeOutDuration: const Duration(milliseconds: 100),
imageUrl: widget.imagePath!,
fit: BoxFit.cover,
useOldImageOnUrlChange: true,
),
), ),
child: CachedNetworkImage( if (widget.icon != null && widget.icon != '')
fadeInDuration: const Duration(milliseconds: 100), Container(
fadeOutDuration: const Duration(milliseconds: 100), width: MediaQuery.of(context).size.width * 0.3,
imageUrl: widget.imagePath!, height: MediaQuery.of(context).size.width * 0.3,
fit: BoxFit.cover, clipBehavior: Clip.antiAlias,
useOldImageOnUrlChange: true, decoration: const BoxDecoration(
shape: BoxShape.circle,
),
child: widget.icon!,
), ),
), SizedBox(height: MediaQuery.of(context).size.height * 0.03),
if (widget.icon != null && widget.icon != '') Row(
Container( children: statusLinkedHashMap.expand((linkedHashMap) {
width: MediaQuery.of(context).size.width * 0.3, return linkedHashMap.entries
height: MediaQuery.of(context).size.width * 0.3, .map((MapEntry<String, Color> item) {
clipBehavior: Clip.antiAlias, return Expanded(
decoration: const BoxDecoration( child: Padding(
shape: BoxShape.circle, padding: EdgeInsets.symmetric(
), horizontal: MediaQuery.of(context).size.width * 0.05,
child: widget.icon!, ),
), child: TextFormField(
SizedBox(height: MediaQuery.of(context).size.height * 0.03), autofocus: false,
Row( canRequestFocus: false,
children: statusLinkedHashMap.expand((linkedHashMap) { readOnly: true,
return linkedHashMap.entries initialValue: item.key,
.map((MapEntry<String, Color> item) { obscureText: false,
return Expanded( decoration: InputDecoration(
child: Padding( isDense: true,
padding: EdgeInsets.symmetric( enabledBorder: OutlineInputBorder(
horizontal: MediaQuery.of(context).size.width * 0.05, borderRadius: BorderRadius.circular(10.0),
), borderSide: BorderSide(
child: TextFormField( color: item.value,
autofocus: false, ),
canRequestFocus: false, ),
readOnly: true, filled: true,
initialValue: item.key, fillColor: item.value,
obscureText: false, // labelText: item.key,
decoration: InputDecoration( labelStyle: FlutterFlowTheme.of(context)
isDense: true, .labelMedium
enabledBorder: OutlineInputBorder( .override(
borderRadius: BorderRadius.circular(10.0), fontFamily: FlutterFlowTheme.of(context)
borderSide: BorderSide( .labelMediumFamily,
color: item.value, fontWeight: FontWeight.bold,
color: FlutterFlowTheme.of(context).info,
letterSpacing: 0.0,
useGoogleFonts:
GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context)
.labelMediumFamily,
),
fontSize: limitedBodyFontSize,
),
hintStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily: FlutterFlowTheme.of(context)
.labelMediumFamily,
color: FlutterFlowTheme.of(context).info,
letterSpacing: 0.0,
useGoogleFonts:
GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context)
.labelMediumFamily,
),
fontSize: limitedBodyFontSize,
),
focusedBorder: InputBorder.none,
errorBorder: InputBorder.none,
focusedErrorBorder: InputBorder.none,
suffixIcon: Icon(
Icons.info,
color: FlutterFlowTheme.of(context).info,
), ),
), ),
filled: true, style: FlutterFlowTheme.of(context)
fillColor: item.value,
// labelText: item.key,
labelStyle: FlutterFlowTheme.of(context)
.labelMedium .labelMedium
.override( .override(
fontFamily: FlutterFlowTheme.of(context) fontFamily: FlutterFlowTheme.of(context)
@ -149,150 +188,117 @@ class _DetailsComponentWidgetState extends State<DetailsComponentWidget> {
), ),
fontSize: limitedBodyFontSize, fontSize: limitedBodyFontSize,
), ),
hintStyle: FlutterFlowTheme.of(context) textAlign: TextAlign.center,
.labelMedium maxLines: null,
.override( keyboardType: TextInputType.name,
fontFamily: FlutterFlowTheme.of(context) validator: _model.textController1Validator
.labelMediumFamily, .asValidator(context),
color: FlutterFlowTheme.of(context).info,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context)
.labelMediumFamily,
),
fontSize: limitedBodyFontSize,
),
focusedBorder: InputBorder.none,
errorBorder: InputBorder.none,
focusedErrorBorder: InputBorder.none,
suffixIcon: Icon(
Icons.info,
color: FlutterFlowTheme.of(context).info,
),
), ),
style: FlutterFlowTheme.of(context) ),
.labelMedium );
.override( }).toList();
fontFamily: FlutterFlowTheme.of(context) }).toList(),
.labelMediumFamily, ),
fontWeight: FontWeight.bold, SizedBox(height: MediaQuery.of(context).size.height * 0.03),
color: FlutterFlowTheme.of(context).info, ListView.builder(
letterSpacing: 0.0, shrinkWrap: true,
useGoogleFonts: GoogleFonts.asMap().containsKey( itemCount: labelsLinkedHashMap.length,
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (context, index) {
String key = labelsLinkedHashMap.keys.elementAt(index);
String value = labelsLinkedHashMap[key]!;
// return Text('key: $key, value: $value');
return TextFormField(
readOnly: true,
initialValue: value,
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily:
FlutterFlowTheme.of(context).bodyMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).bodyMediumFamily,
),
fontSize: limitedBodyFontSize,
),
decoration: InputDecoration(
labelText: key,
filled: true,
fillColor: FlutterFlowTheme.of(context).primaryBackground,
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground, // Change border color here
),
),
labelStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily, FlutterFlowTheme.of(context).labelMediumFamily,
), color: FlutterFlowTheme.of(context).primaryText,
fontSize: limitedBodyFontSize, letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily,
), ),
textAlign: TextAlign.center, ),
maxLines: null, hintStyle: FlutterFlowTheme.of(context)
keyboardType: TextInputType.name, .labelMedium
validator: _model.textController1Validator .override(
.asValidator(context), fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily,
),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground, // Change border color here
),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground, // Change border color here
),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground, // Change border color here
),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground, // Change border color here
),
), ),
), ),
); );
}).toList(); },
}).toList(),
),
SizedBox(height: MediaQuery.of(context).size.height * 0.03),
ListView.builder(
shrinkWrap: true,
itemCount: labelsLinkedHashMap.length,
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (context, index) {
String key = labelsLinkedHashMap.keys.elementAt(index);
String value = labelsLinkedHashMap[key]!;
// return Text('key: $key, value: $value');
return TextFormField(
readOnly: true,
initialValue: value,
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily:
FlutterFlowTheme.of(context).bodyMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).bodyMediumFamily,
),
fontSize: limitedBodyFontSize,
),
decoration: InputDecoration(
labelText: key,
filled: true,
fillColor: FlutterFlowTheme.of(context).primaryBackground,
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground, // Change border color here
),
),
labelStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily,
),
),
hintStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily,
),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground, // Change border color here
),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground, // Change border color here
),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground, // Change border color here
),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground, // Change border color here
),
),
),
);
},
),
SizedBox(height: MediaQuery.of(context).size.height * 0.02),
if (widget.buttons!.isNotEmpty || widget.buttons != null)
OverflowBar(
overflowAlignment: OverflowBarAlignment.center,
alignment: MainAxisAlignment.center,
overflowSpacing: 2,
spacing: 2,
// mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: widget.buttons!,
), ),
SizedBox(height: MediaQuery.of(context).size.height * 0.02), SizedBox(height: MediaQuery.of(context).size.height * 0.02),
], if (widget.buttons!.isNotEmpty || widget.buttons != null)
OverflowBar(
overflowAlignment: OverflowBarAlignment.center,
alignment: MainAxisAlignment.center,
overflowSpacing: 2,
spacing: 2,
// mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: widget.buttons!,
),
SizedBox(height: MediaQuery.of(context).size.height * 0.02),
],
),
), ),
), ),
); );

View File

@ -79,6 +79,9 @@ class FreAccessWSGlobal extends Api {
static UpdateVehicle updateVehicle = UpdateVehicle(); static UpdateVehicle updateVehicle = UpdateVehicle();
static DeleteVehicle deleteVehicle = DeleteVehicle(); static DeleteVehicle deleteVehicle = DeleteVehicle();
static CancelDeleteVehicle cancelDelete = CancelDeleteVehicle(); static CancelDeleteVehicle cancelDelete = CancelDeleteVehicle();
static GetPDF getPDF = GetPDF();
static GetCategories getCategories = GetCategories();
static GetDocuments getDocuments = GetDocuments();
} }
class CancelDeleteVehicle { class CancelDeleteVehicle {
@ -88,7 +91,7 @@ class CancelDeleteVehicle {
required final String model, required final String model,
required final String color, required final String color,
}) async { }) async {
final String baseUrl = PhpGroup.getBaseUrl(); final String baseUrl = FreAccessWSGlobal.getBaseUrl();
final String devUUID = final String devUUID =
(await StorageHelper().get(ProfileStorageKey.devUUID.key)) ?? ''; (await StorageHelper().get(ProfileStorageKey.devUUID.key)) ?? '';
final String userUUID = final String userUUID =
@ -130,7 +133,7 @@ class DeleteVehicle {
required final String model, required final String model,
required final String color, required final String color,
}) async { }) async {
final String baseUrl = PhpGroup.getBaseUrl(); final String baseUrl = FreAccessWSGlobal.getBaseUrl();
final String devUUID = final String devUUID =
(await StorageHelper().get(ProfileStorageKey.devUUID.key)) ?? ''; (await StorageHelper().get(ProfileStorageKey.devUUID.key)) ?? '';
final String userUUID = final String userUUID =
@ -173,7 +176,7 @@ class RegisterVehicle {
final String? color, final String? color,
final String? model, final String? model,
}) async { }) async {
final String baseUrl = PhpGroup.getBaseUrl(); final String baseUrl = FreAccessWSGlobal.getBaseUrl();
final String devUUID = final String devUUID =
(await StorageHelper().get(ProfileStorageKey.devUUID.key)) ?? ''; (await StorageHelper().get(ProfileStorageKey.devUUID.key)) ?? '';
@ -217,7 +220,7 @@ class UpdateVehicle {
final String? color, final String? color,
final String? model, final String? model,
}) async { }) async {
final String baseUrl = PhpGroup.getBaseUrl(); final String baseUrl = FreAccessWSGlobal.getBaseUrl();
final String devUUID = final String devUUID =
(await StorageHelper().get(ProfileStorageKey.devUUID.key)) ?? ''; (await StorageHelper().get(ProfileStorageKey.devUUID.key)) ?? '';
final String userUUID = final String userUUID =

View File

@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'dart:developer';
import 'package:app_links/app_links.dart'; import 'package:app_links/app_links.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hub/features/storage/index.dart'; import 'package:hub/features/storage/index.dart';

View File

@ -1,3 +1,5 @@
import 'dart:developer';
import 'package:app_tracking_transparency/app_tracking_transparency.dart'; import 'package:app_tracking_transparency/app_tracking_transparency.dart';
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart';

View File

@ -10,7 +10,7 @@ class VehicleHistoryScreen extends StatefulWidget {
class _VehicleHistoryScreenState extends State<VehicleHistoryScreen> class _VehicleHistoryScreenState extends State<VehicleHistoryScreen>
with Pageable { with Pageable {
final apiCall = PhpGroup.getVehiclesByProperty; final apiCall = FreAccessWSGlobal.getVehiclesByProperty;
int totalOwnerVehicles = 0; int totalOwnerVehicles = 0;
final PagingController<int, dynamic> _pagingController = final PagingController<int, dynamic> _pagingController =
PagingController<int, dynamic>(firstPageKey: 1); PagingController<int, dynamic>(firstPageKey: 1);

View File

@ -7,8 +7,8 @@ import 'package:hub/features/backend/index.dart';
import 'package:hub/features/storage/index.dart'; import 'package:hub/features/storage/index.dart';
import 'package:hub/flutter_flow/index.dart'; import 'package:hub/flutter_flow/index.dart';
import 'package:hub/pages/vehicles_on_the_property/vehicles_on_the_property.dart'; import 'package:hub/pages/vehicles_on_the_property/vehicles_on_the_property.dart';
import 'package:hub/shared/extensions/index.dart'; import 'package:hub/shared/extensions.dart';
import 'package:hub/shared/utils/index.dart'; import 'package:hub/shared/utils.dart';
/// [VehicleModel] is a class that contains the business logic of the vehicle page. /// [VehicleModel] is a class that contains the business logic of the vehicle page.
class VehicleModel extends FlutterFlowModel<VehiclePage> class VehicleModel extends FlutterFlowModel<VehiclePage>
@ -196,7 +196,7 @@ mixin class _BaseVehiclePage {
/// [_VehicleRegisterScreenModel] is a mixin that contains the business logic of the vehicle register page. /// [_VehicleRegisterScreenModel] is a mixin that contains the business logic of the vehicle register page.
mixin _VehicleRegisterScreenModel on _BaseVehiclePage { mixin _VehicleRegisterScreenModel on _BaseVehiclePage {
Future<void> registerVehicle() async { Future<void> registerVehicle() async {
final response = await PhpGroup.registerVehicle.call( final response = await FreAccessWSGlobal.registerVehicle.call(
licensePlate: textFieldControllerLicensePlate!.text, licensePlate: textFieldControllerLicensePlate!.text,
color: textFieldControllerColor!.text, color: textFieldControllerColor!.text,
model: textFieldControllerModel!.text, model: textFieldControllerModel!.text,
@ -218,7 +218,7 @@ mixin _VehicleRegisterScreenModel on _BaseVehiclePage {
/// [_VehicleUpdateScreenModel] is a mixin that contains the business logic of the vehicle update page. /// [_VehicleUpdateScreenModel] is a mixin that contains the business logic of the vehicle update page.
mixin _VehicleUpdateScreenModel on _BaseVehiclePage { mixin _VehicleUpdateScreenModel on _BaseVehiclePage {
Future<void> updateVehicle() async { Future<void> updateVehicle() async {
final response = await PhpGroup.updateVehicle.call( final response = await FreAccessWSGlobal.updateVehicle.call(
licensePlate: textFieldControllerLicensePlate!.text, licensePlate: textFieldControllerLicensePlate!.text,
color: textFieldControllerColor!.text, color: textFieldControllerColor!.text,
model: textFieldControllerModel!.text, model: textFieldControllerModel!.text,
@ -403,7 +403,7 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage {
Future<bool> processDeleteRequest(dynamic item) async { Future<bool> processDeleteRequest(dynamic item) async {
log('processDeleteRequest -> item[$item]'); log('processDeleteRequest -> item[$item]');
bool result = await PhpGroup.deleteVehicle bool result = await FreAccessWSGlobal.deleteVehicle
.call( .call(
vehicleId: item['vehicleId'], vehicleId: item['vehicleId'],
licensePlate: item['licensePlate'], licensePlate: item['licensePlate'],
@ -493,7 +493,7 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage {
} }
Future<ApiCallResponse> processCancelDeleteRequest(dynamic item) async { Future<ApiCallResponse> processCancelDeleteRequest(dynamic item) async {
return await PhpGroup.deleteVehicle.call( return await FreAccessWSGlobal.deleteVehicle.call(
vehicleId: item['vehicleId'], vehicleId: item['vehicleId'],
licensePlate: item['licensePlate'], licensePlate: item['licensePlate'],
model: item['model'], model: item['model'],
@ -502,7 +502,7 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage {
} }
Future<ApiCallResponse> processCancelUpdateRequest(dynamic item) async { Future<ApiCallResponse> processCancelUpdateRequest(dynamic item) async {
return await PhpGroup.deleteVehicle.call( return await FreAccessWSGlobal.deleteVehicle.call(
vehicleId: item['vehicleId'], vehicleId: item['vehicleId'],
licensePlate: item['licensePlate'], licensePlate: item['licensePlate'],
model: item['model'], model: item['model'],
@ -511,7 +511,7 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage {
} }
Future<ApiCallResponse> processCancelCreateRequest(dynamic item) async { Future<ApiCallResponse> processCancelCreateRequest(dynamic item) async {
return await PhpGroup.cancelDelete.call( return await FreAccessWSGlobal.cancelDelete.call(
vehicleId: item['vehicleId'], vehicleId: item['vehicleId'],
licensePlate: item['licensePlate'], licensePlate: item['licensePlate'],
model: item['model'], model: item['model'],

View File

@ -13,7 +13,7 @@ import 'package:hub/features/backend/index.dart';
import 'package:hub/features/module/index.dart'; import 'package:hub/features/module/index.dart';
import 'package:hub/flutter_flow/index.dart'; import 'package:hub/flutter_flow/index.dart';
import 'package:hub/pages/vehicles_on_the_property/vehicle_model.dart'; import 'package:hub/pages/vehicles_on_the_property/vehicle_model.dart';
import 'package:hub/shared/extensions/index.dart'; import 'package:hub/shared/extensions.dart';
import 'package:hub/shared/mixins/pageable_mixin.dart'; import 'package:hub/shared/mixins/pageable_mixin.dart';
import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/dialog_util.dart';
import 'package:hub/shared/utils/license_util.dart'; import 'package:hub/shared/utils/license_util.dart';

View File

@ -3,7 +3,6 @@ name: hub
description: . # Descrição do projeto (adicione mais detalhes se necessário) description: . # Descrição do projeto (adicione mais detalhes se necessário)
publish_to: "none" # Destino de publicação publish_to: "none" # Destino de publicação
publish_to: "none"
version: 1.4.0+27 version: 1.4.0+27