mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-10 05:00:21 +02:00
* Bulma components, fixes in stubs
This commit is contained in:
parent
ba8d995dab
commit
77c1d9b1f2
@ -1,2 +1,2 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
exec ../../../../tools/lazres ../pas2jsc_images.res tsqldbrestconnection.png thtmlelementactionlist.png tsqldbrestdataset.png tbootstrapmodal*.png tbootstraptoastwidget*.png ttemplateloader*.png tlocaljsondataset*.png tdbbootstraptablewidget*.png tdblooptemplatewidget*.png tdbselectwidget*.png
|
exec ../../../../tools/lazres ../pas2jsc_images.res tsqldbrestconnection.png thtmlelementactionlist.png tsqldbrestdataset.png tbootstrapmodal*.png tbootstraptoastwidget*.png ttemplateloader*.png tlocaljsondataset*.png tdbbootstraptablewidget*.png tdblooptemplatewidget*.png tdbselectwidget*.png tbulma*.png
|
||||||
|
BIN
components/pas2js/components/images/tbulmamodal.png
Normal file
BIN
components/pas2js/components/images/tbulmamodal.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 366 B |
BIN
components/pas2js/components/images/tbulmamodal_150.png
Normal file
BIN
components/pas2js/components/images/tbulmamodal_150.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 517 B |
BIN
components/pas2js/components/images/tbulmamodal_200.png
Normal file
BIN
components/pas2js/components/images/tbulmamodal_200.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 489 B |
BIN
components/pas2js/components/images/tbulmatoastwidget.png
Normal file
BIN
components/pas2js/components/images/tbulmatoastwidget.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 591 B |
BIN
components/pas2js/components/images/tbulmatoastwidget_150.png
Normal file
BIN
components/pas2js/components/images/tbulmatoastwidget_150.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 887 B |
BIN
components/pas2js/components/images/tbulmatoastwidget_200.png
Normal file
BIN
components/pas2js/components/images/tbulmatoastwidget_200.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
Binary file not shown.
@ -112,6 +112,11 @@
|
|||||||
</Item>
|
</Item>
|
||||||
<Item>
|
<Item>
|
||||||
<Filename Value="stubs/stub.htmlwidgets.pp"/>
|
<Filename Value="stubs/stub.htmlwidgets.pp"/>
|
||||||
|
<UnitName Value="stub.htmlwidgets"/>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<Filename Value="stubs/stub.bulmawidgets.pas"/>
|
||||||
|
<UnitName Value="stub.bulmawidgets"/>
|
||||||
</Item>
|
</Item>
|
||||||
</Files>
|
</Files>
|
||||||
<RequiredPkgs>
|
<RequiredPkgs>
|
||||||
|
@ -14,7 +14,7 @@ uses
|
|||||||
stub.web, stub.bootstrapwidgets, frmpas2jsedithtml, p2jselementactions,
|
stub.web, stub.bootstrapwidgets, frmpas2jsedithtml, p2jselementactions,
|
||||||
Stub.Data.HTMLActions, frmselecthtmlactions, stub.jsondataset,
|
Stub.Data.HTMLActions, frmselecthtmlactions, stub.jsondataset,
|
||||||
stub.bootstraptablewidget, stub.dbwebwidget, stub.dbhtmlwidgets,
|
stub.bootstraptablewidget, stub.dbwebwidget, stub.dbhtmlwidgets,
|
||||||
stub.htmlwidgets, LazarusPackageIntf;
|
stub.htmlwidgets, stub.bulmawidgets, LazarusPackageIntf;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ interface
|
|||||||
uses
|
uses
|
||||||
Classes, SysUtils, ProjectIntf, PropEdits, ComponentEditors, fpjsondataset, dbpropedits,
|
Classes, SysUtils, ProjectIntf, PropEdits, ComponentEditors, fpjsondataset, dbpropedits,
|
||||||
db, stub.htmlfragment, stub.htmlactions, stub.data.htmlactions, stub.restdataset,
|
db, stub.htmlfragment, stub.htmlactions, stub.data.htmlactions, stub.restdataset,
|
||||||
stub.webwidget, stub.bootstrapwidgets, stub.bootstraptablewidget,
|
stub.webwidget, stub.bootstrapwidgets, stub.bootstraptablewidget, stub.bulmawidgets,
|
||||||
stub.templateloader, stub.jsondataset, stub.dbwebwidget, stub.dbhtmlwidgets;
|
stub.templateloader, stub.jsondataset, stub.dbwebwidget, stub.dbhtmlwidgets;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
@ -237,6 +237,13 @@ Type
|
|||||||
Procedure RequiredUnits(Units: TStrings); override;
|
Procedure RequiredUnits(Units: TStrings); override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TBulmaWidgetRequirements }
|
||||||
|
|
||||||
|
TBulmaWidgetRequirements = Class(TComponentRequirements)
|
||||||
|
public
|
||||||
|
Procedure RequiredUnits(Units: TStrings); override;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TLogBridge }
|
{ TLogBridge }
|
||||||
|
|
||||||
TLogBridge = Class(TObject)
|
TLogBridge = Class(TObject)
|
||||||
@ -279,6 +286,8 @@ begin
|
|||||||
RegisterComponentRequirements(TDBHTMLButtonElementAction,TDBElementActionRequirements);
|
RegisterComponentRequirements(TDBHTMLButtonElementAction,TDBElementActionRequirements);
|
||||||
RegisterComponentRequirements(TBootstrapModal,THTMLBootstrapWidgetRequirements);
|
RegisterComponentRequirements(TBootstrapModal,THTMLBootstrapWidgetRequirements);
|
||||||
RegisterComponentRequirements(TBootstrapToastWidget,THTMLBootstrapWidgetRequirements);
|
RegisterComponentRequirements(TBootstrapToastWidget,THTMLBootstrapWidgetRequirements);
|
||||||
|
RegisterComponentRequirements(TBulmaModal,TBulmaWidgetRequirements);
|
||||||
|
RegisterComponentRequirements(TBulmaToastWidget,TBulmaWidgetRequirements);
|
||||||
RegisterComponentRequirements(TTemplateLoader,TRTLTemplateLoaderRequirements);
|
RegisterComponentRequirements(TTemplateLoader,TRTLTemplateLoaderRequirements);
|
||||||
RegisterComponentRequirements(TLocalJSONDataset,TJSONDatasetRequirements);
|
RegisterComponentRequirements(TLocalJSONDataset,TJSONDatasetRequirements);
|
||||||
RegisterComponentRequirements(TDBBootstrapTableWidget,TDBBootstrapTableWidgetRequirements);
|
RegisterComponentRequirements(TDBBootstrapTableWidget,TDBBootstrapTableWidgetRequirements);
|
||||||
@ -321,6 +330,13 @@ begin
|
|||||||
RegisterPropertyEditor(TypeInfo(string),TBSTableColumn, 'FieldName', TBSColumnFieldProperty);
|
RegisterPropertyEditor(TypeInfo(string),TBSTableColumn, 'FieldName', TBSColumnFieldProperty);
|
||||||
RegisterPropertyEditor(TypeInfo(string),TBSTableColumn, 'WidthUnits', TWidthUnitsProperty);
|
RegisterPropertyEditor(TypeInfo(string),TBSTableColumn, 'WidthUnits', TWidthUnitsProperty);
|
||||||
RegisterPropertyEditor(TypeInfo(string),TBSTableColumn, 'ButtonURLTarget', TTargetProperty);
|
RegisterPropertyEditor(TypeInfo(string),TBSTableColumn, 'ButtonURLTarget', TTargetProperty);
|
||||||
|
//
|
||||||
|
RegisterPropertyEditor(TypeInfo(String),TBulmaModal,'ParentID',TElementIDPropertyEditor);
|
||||||
|
RegisterPropertyEditor(TypeInfo(String),TBulmaModal,'ElementID',TElementIDPropertyEditor);
|
||||||
|
RegisterPropertyEditor(TypeInfo(String),TBulmaModal,'Template',TTemplatePropertyEditor);
|
||||||
|
RegisterPropertyEditor(TypeInfo(String),TBulmaToastWidget,'Header',TTemplatePropertyEditor);
|
||||||
|
RegisterPropertyEditor(TypeInfo(String),TBulmaToastWidget,'Body',TTemplatePropertyEditor);
|
||||||
|
|
||||||
// Maybe make a THTMLFragmentString = type string
|
// Maybe make a THTMLFragmentString = type string
|
||||||
// Same for ElementID/ParentID : TDOMIDString = type string
|
// Same for ElementID/ParentID : TDOMIDString = type string
|
||||||
RegisterPropertyEditor(TypeInfo(String),TCustomLoopTemplateWidget,'HeaderTemplate',THTMLFragmentPropertyEditor);
|
RegisterPropertyEditor(TypeInfo(String),TCustomLoopTemplateWidget,'HeaderTemplate',THTMLFragmentPropertyEditor);
|
||||||
@ -366,6 +382,7 @@ procedure register;
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
RegisterComponents('Pas2js',[THTMLElementActionList,TBootstrapModal,TBootstrapToastWidget,TTemplateLoader]);
|
RegisterComponents('Pas2js',[THTMLElementActionList,TBootstrapModal,TBootstrapToastWidget,TTemplateLoader]);
|
||||||
|
RegisterComponents('Pas2js Bulma',[TBulmaModal,TBulmaToastWidget]);
|
||||||
RegisterComponents('Pas2js Data Access',[TSQLDBRestConnection,TSQLDBRestDataset,TLocalJSONDataset]);
|
RegisterComponents('Pas2js Data Access',[TSQLDBRestConnection,TSQLDBRestDataset,TLocalJSONDataset]);
|
||||||
RegisterComponents('Pas2js Data Controls',[TDBBootstrapTableWidget,TDBLoopTemplateWidget,TDBSelectWidget]);
|
RegisterComponents('Pas2js Data Controls',[TDBBootstrapTableWidget,TDBLoopTemplateWidget,TDBSelectWidget]);
|
||||||
RegisterClasses([TJSONDateField, TJSONTimeField, TJSONDateTimeField]);
|
RegisterClasses([TJSONDateField, TJSONTimeField, TJSONDateTimeField]);
|
||||||
@ -378,6 +395,13 @@ begin
|
|||||||
RegisterRESTHandling;
|
RegisterRESTHandling;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TBulmaWidgetRequirements }
|
||||||
|
|
||||||
|
procedure TBulmaWidgetRequirements.RequiredUnits(Units: TStrings);
|
||||||
|
begin
|
||||||
|
Units.text:='bulmawidgets';
|
||||||
|
end;
|
||||||
|
|
||||||
{ TSelectFieldProperty }
|
{ TSelectFieldProperty }
|
||||||
|
|
||||||
procedure TDBSelectFieldProperty.FillValues(const Values: TStringList);
|
procedure TDBSelectFieldProperty.FillValues(const Values: TStringList);
|
||||||
|
@ -545,7 +545,6 @@ function TDataTablesFieldMap.GetValueByName(S: String): JSValue;
|
|||||||
begin
|
begin
|
||||||
if S<>'' then;
|
if S<>'' then;
|
||||||
Result:='';
|
Result:='';
|
||||||
//
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
490
components/pas2js/components/stubs/stub.bulmawidgets.pas
Normal file
490
components/pas2js/components/stubs/stub.bulmawidgets.pas
Normal file
@ -0,0 +1,490 @@
|
|||||||
|
unit stub.bulmawidgets;
|
||||||
|
|
||||||
|
{$mode objfpc}
|
||||||
|
{$h+}
|
||||||
|
{ $modeswitch externalclass}
|
||||||
|
|
||||||
|
Interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Stub.web,
|
||||||
|
SysUtils,
|
||||||
|
Classes,
|
||||||
|
stub.templateloader,
|
||||||
|
stub.webwidget;
|
||||||
|
|
||||||
|
Const
|
||||||
|
DefaultClose = 'DefaultCloseClicks';
|
||||||
|
|
||||||
|
Type
|
||||||
|
|
||||||
|
{ TBulmaModal }
|
||||||
|
TOnModalHideEvent = Procedure (Sender : TObject; CloseEl : TJSHTMLElement; Values : TStrings) of object;
|
||||||
|
|
||||||
|
TModalItemKind = (mikValue,mikClose);
|
||||||
|
|
||||||
|
{ TModalReferenceItem }
|
||||||
|
|
||||||
|
TModalReferenceItem = Class(TReferenceItem)
|
||||||
|
private
|
||||||
|
FInitialValue: String;
|
||||||
|
FKind: TModalItemKind;
|
||||||
|
Protected
|
||||||
|
Public
|
||||||
|
Procedure Assign(Source : TPersistent); override;
|
||||||
|
Published
|
||||||
|
Property Kind : TModalItemKind Read FKind Write FKind;
|
||||||
|
Property InitialValue : String Read FInitialValue Write FInitialValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TModalReferences }
|
||||||
|
|
||||||
|
TModalReferences = Class(TWebWidgetReferences)
|
||||||
|
private
|
||||||
|
function GetMR(aIndex : Integer): TModalReferenceItem;
|
||||||
|
procedure SetMR(aIndex : Integer; AValue: TModalReferenceItem);
|
||||||
|
Public
|
||||||
|
Property ModalRefs[aIndex : Integer] : TModalReferenceItem Read GetMR Write SetMR; default;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TBulmaModal = Class(TCustomWebWidget)
|
||||||
|
private
|
||||||
|
FBackDrop: Boolean;
|
||||||
|
FFocus: Boolean;
|
||||||
|
FKeyBoard: Boolean;
|
||||||
|
FOnHide: TOnModalHideEvent;
|
||||||
|
FShowOnRender: Boolean;
|
||||||
|
FTemplate: String;
|
||||||
|
FTemplateLoader: TCustomTemplateLoader;
|
||||||
|
FTemplateName: String;
|
||||||
|
FRemoveOnHide: Boolean;
|
||||||
|
FOKButtonName: String;
|
||||||
|
FCancelButtonName: String;
|
||||||
|
FCloseButtonName: String;
|
||||||
|
FOnRender: TNotifyEvent;
|
||||||
|
FOnShow: TNotifyEvent;
|
||||||
|
function GetModalReferences: TModalReferences;
|
||||||
|
procedure SetModalReferences(AValue: TModalReferences);
|
||||||
|
procedure SetTemplateLoader(AValue: TCustomTemplateLoader);
|
||||||
|
protected
|
||||||
|
function CreateReferences: TWebWidgetReferences; override;
|
||||||
|
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
||||||
|
Public
|
||||||
|
Constructor Create(aOwner : TComponent); override;
|
||||||
|
Destructor Destroy; override;
|
||||||
|
Published
|
||||||
|
Property ParentID;
|
||||||
|
Property ElementID;
|
||||||
|
Property Styles;
|
||||||
|
Property StyleRefresh;
|
||||||
|
Property References : TModalReferences Read GetModalReferences Write SetModalReferences;
|
||||||
|
Property ShowOnRender: Boolean Read FShowOnRender Write FShowOnrender default False;
|
||||||
|
Property RemoveOnHide : Boolean Read FRemoveOnHide Write FRemoveOnHide default True;
|
||||||
|
Property BackDrop : Boolean Read FBackDrop Write FBackDrop default false;
|
||||||
|
Property KeyBoard : Boolean Read FKeyBoard Write FKeyBoard default false;
|
||||||
|
Property Focus : Boolean Read FFocus Write FFocus default false;
|
||||||
|
Property OKButtonName : String Read FOKButtonName write FOKButtonName;
|
||||||
|
Property CancelButtonName : String Read FCancelButtonName Write FCancelButtonName;
|
||||||
|
Property CloseButtonName : String Read FCloseButtonName Write FCloseButtonName;
|
||||||
|
// Template gets precedence over templatename;
|
||||||
|
Property Template : String Read FTemplate Write FTemplate;
|
||||||
|
Property TemplateName : String Read FTemplateName Write FTemplateName;
|
||||||
|
Property TemplateLoader : TCustomTemplateLoader Read FTemplateLoader Write SetTemplateLoader;
|
||||||
|
Property OnHide : TOnModalHideEvent Read FOnHide Write FOnHide;
|
||||||
|
Property OnRender : TNotifyEvent Read FOnRender Write FOnRender;
|
||||||
|
Property OnShow : TNotifyEvent Read FOnShow Write FOnShow;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TSimpleToastWidget }
|
||||||
|
TContextual = (cNone,
|
||||||
|
cPrimary,cLink,cInfo,cSuccess,cWarning,cDanger,
|
||||||
|
cWhite,cLight,cDark,cBlack,cText,cGhost);
|
||||||
|
TToastPosition = (tpDefault,
|
||||||
|
tpTopRight,tpTopLeft,tpTopCenter,
|
||||||
|
tpBottomRight,tpBottomLeft,tpBottomCenter,
|
||||||
|
tpCenter);
|
||||||
|
|
||||||
|
// Single toast message
|
||||||
|
|
||||||
|
TBaseBulmaToastWidget = Class(TCustomWebWidget)
|
||||||
|
private
|
||||||
|
FAnimate: Boolean;
|
||||||
|
FAutoHide: Boolean;
|
||||||
|
FBody: String;
|
||||||
|
FBoolean: Boolean;
|
||||||
|
FContextual: TContextual;
|
||||||
|
FHeader: String;
|
||||||
|
FHeaderImage: String;
|
||||||
|
FHideDelay: Integer;
|
||||||
|
FMinWidth: Integer;
|
||||||
|
FSingle: Boolean;
|
||||||
|
FPosition: TToastPosition;
|
||||||
|
procedure SetAnimate(AValue: Boolean);
|
||||||
|
procedure SetAutoHide(AValue: Boolean);
|
||||||
|
procedure SetBody(AValue: String);
|
||||||
|
procedure SetBoolean(AValue: Boolean);
|
||||||
|
procedure SetContextual(AValue: TContextual);
|
||||||
|
procedure SetHeader(AValue: String);
|
||||||
|
procedure SetHeaderImage(AValue: String);
|
||||||
|
procedure SetHideDelay(AValue: Integer);
|
||||||
|
procedure SetMinWidth(AValue: Integer);
|
||||||
|
Protected
|
||||||
|
FElement : TJSHTMLElement;
|
||||||
|
function BodyHTML: String; virtual;
|
||||||
|
function HeaderHTML: String; virtual;
|
||||||
|
Public
|
||||||
|
Constructor Create(aOwner : TComponent); override;
|
||||||
|
Procedure Refresh;
|
||||||
|
procedure Hide;
|
||||||
|
Protected
|
||||||
|
Property Header : String Read FHeader Write SetHeader;
|
||||||
|
Property Body : String Read FBody Write SetBody;
|
||||||
|
Property HeaderImage : String Read FHeaderImage Write SetHeaderImage;
|
||||||
|
Property CloseButton : Boolean Read FBoolean Write SetBoolean;
|
||||||
|
Property Contextual : TContextual Read FContextual write SetContextual;
|
||||||
|
Property HideDelay : Integer Read FHideDelay Write SetHideDelay default 2000;
|
||||||
|
Property AutoHide : Boolean Read FAutoHide Write SetAutoHide default True;
|
||||||
|
Property Animate : Boolean Read FAnimate Write SetAnimate default False;
|
||||||
|
Property MinWidth : Integer Read FMinWidth Write SetMinWidth default 200;
|
||||||
|
Property Single : Boolean Read FSingle Write FSingle;
|
||||||
|
Property Position : TToastPosition Read FPosition Write FPosition default tpTopRight;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TBulmaToastWidget = class(TBaseBulmaToastWidget)
|
||||||
|
Property ParentID;
|
||||||
|
Property ElementID;
|
||||||
|
Property Header;
|
||||||
|
Property Body;
|
||||||
|
Property HeaderImage;
|
||||||
|
Property CloseButton;
|
||||||
|
Property Contextual;
|
||||||
|
Property HideDelay;
|
||||||
|
Property AutoHide;
|
||||||
|
Property Animate;
|
||||||
|
Property MinWidth;
|
||||||
|
Property Single;
|
||||||
|
Property Position;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Encapsulates the global tag where the toasts are shown.
|
||||||
|
|
||||||
|
{ TToastManager }
|
||||||
|
|
||||||
|
TToastManager = Class(TComponent)
|
||||||
|
Private
|
||||||
|
class var
|
||||||
|
_instance : TToastManager;
|
||||||
|
_ToastID : NativeInt;
|
||||||
|
Private
|
||||||
|
FAnimate: Boolean;
|
||||||
|
FAutoHide: Boolean;
|
||||||
|
FHideDelay: Integer;
|
||||||
|
FMinheight: Integer;
|
||||||
|
FMinWidth: Integer;
|
||||||
|
FMultiToast: Boolean;
|
||||||
|
FToastIcon: String;
|
||||||
|
FParentID: String;
|
||||||
|
FToastPosition: TToastPosition;
|
||||||
|
procedure SetMinHeight(AValue: Integer);
|
||||||
|
procedure SetMultiToast(AValue: Boolean);
|
||||||
|
procedure SetParentID(const Value: String);
|
||||||
|
class function CreateElement(aTag : String; aID: String = ''): TJSHTMLElement; static;
|
||||||
|
Public
|
||||||
|
Constructor Create(aOwner : TComponent); override;
|
||||||
|
class function Instance : TToastManager;
|
||||||
|
Class Function getToastID : String;
|
||||||
|
Procedure clear;
|
||||||
|
function ShowToast(const aHeader, aBody: String; aContext: TContextual=cNone; Closable: Boolean=True; aDelay : Integer = 0): TBaseBulmaToastWidget;
|
||||||
|
Published
|
||||||
|
Property ParentID : String Read FParentID Write SetParentID;
|
||||||
|
Property MultiToast : Boolean Read FMultiToast Write SetMultiToast;
|
||||||
|
Property MinHeight : Integer Read FMinheight Write SetMinHeight default 250;
|
||||||
|
Property ToastHideDelay : Integer Read FHideDelay Write FHideDelay default 2000;
|
||||||
|
Property ToastAutoHide : Boolean Read FAutoHide Write FAutoHide default True;
|
||||||
|
Property ToastAnimate : Boolean Read FAnimate Write FAnimate default False;
|
||||||
|
Property ToastMinWidth : Integer Read FMinWidth Write FMinWidth default 200;
|
||||||
|
Property ToastIcon : String Read FToastIcon Write FToastIcon;
|
||||||
|
Property ToastPosition : TToastPosition Read FToastPosition Write FToastPosition;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Const
|
||||||
|
ContextualNames : Array[TContextual] of string
|
||||||
|
= ('','primary','link','info','success','warning','danger',
|
||||||
|
'white','light','dark','black','text','ghost');
|
||||||
|
ToastPositionNames : Array[TToastPosition] of string =
|
||||||
|
('top-right','top-right','top-left','top-center',
|
||||||
|
'bottom-right','bottom-left','bottom-center',
|
||||||
|
'center');
|
||||||
|
|
||||||
|
Function Toasts : TToastManager;
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
|
||||||
|
{ TModalReferenceItem }
|
||||||
|
|
||||||
|
procedure TModalReferenceItem.Assign(Source: TPersistent);
|
||||||
|
|
||||||
|
Var
|
||||||
|
MRI : TModalReferenceItem absolute Source;
|
||||||
|
|
||||||
|
begin
|
||||||
|
if Source is TModalReferenceItem then
|
||||||
|
begin
|
||||||
|
Self.Kind:=MRI.Kind;
|
||||||
|
Self.InitialValue:=MRI.InitialValue;
|
||||||
|
end;
|
||||||
|
inherited Assign(Source);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ TModalReferences }
|
||||||
|
|
||||||
|
function TModalReferences.GetMR(aIndex : Integer): TModalReferenceItem;
|
||||||
|
begin
|
||||||
|
Result:=TModalReferenceItem(Items[aIndex])
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TModalReferences.SetMR(aIndex : Integer; AValue: TModalReferenceItem);
|
||||||
|
begin
|
||||||
|
Items[aIndex]:=aValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ TBulmaModal }
|
||||||
|
|
||||||
|
|
||||||
|
procedure TBulmaModal.SetModalReferences(AValue: TModalReferences);
|
||||||
|
begin
|
||||||
|
References.Assign(aValue);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBulmaModal.SetTemplateLoader(AValue: TCustomTemplateLoader);
|
||||||
|
begin
|
||||||
|
if FTemplateLoader=AValue then Exit;
|
||||||
|
if assigned(FTemplateLoader) then
|
||||||
|
FTemplateLoader.RemoveFreeNotification(Self);
|
||||||
|
FTemplateLoader:=AValue;
|
||||||
|
if assigned(FTemplateLoader) then
|
||||||
|
FTemplateLoader.FreeNotification(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function TBulmaModal.CreateReferences: TWebWidgetReferences;
|
||||||
|
begin
|
||||||
|
Result:=TModalReferences.Create(Self,TModalReferenceItem);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBulmaModal.Notification(AComponent: TComponent; Operation: TOperation
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
inherited Notification(AComponent, Operation);
|
||||||
|
if (Operation=opRemove) and (aComponent=TemplateLoader) then
|
||||||
|
FTemplateLoader:=Nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
destructor TBulmaModal.Destroy;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
constructor TBulmaModal.Create(aOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
FRemoveOnHide:=True;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function TBulmaModal.GetModalReferences: TModalReferences;
|
||||||
|
begin
|
||||||
|
Result:=TModalReferences(Inherited References);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ TBulmaToast }
|
||||||
|
|
||||||
|
function Toasts: TToastManager;
|
||||||
|
begin
|
||||||
|
Result:=TToastManager.Instance;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TToastManager }
|
||||||
|
|
||||||
|
class function TToastManager.Instance: TToastManager;
|
||||||
|
begin
|
||||||
|
if _instance=Nil then
|
||||||
|
_instance:=TToastManager.Create(Nil);
|
||||||
|
Result:=_instance;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TToastManager.SetMinHeight(AValue: Integer);
|
||||||
|
begin
|
||||||
|
if FMinheight=AValue then Exit;
|
||||||
|
FMinheight:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TToastManager.SetMultiToast(AValue: Boolean);
|
||||||
|
begin
|
||||||
|
if FMultiToast=AValue then Exit;
|
||||||
|
FMultiToast:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TToastManager.SetParentID(const Value: String);
|
||||||
|
begin
|
||||||
|
FParentID:=Value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class function TToastManager.getToastID: String;
|
||||||
|
begin
|
||||||
|
Inc(_ToastID);
|
||||||
|
Result:='toast-'+intToStr(_ToastID);
|
||||||
|
end;
|
||||||
|
|
||||||
|
Class Function TToastManager.CreateElement(aTag : String; aID : String = '') : TJSHTMLElement;
|
||||||
|
|
||||||
|
begin
|
||||||
|
Result:=nil;
|
||||||
|
if aTag='' then;
|
||||||
|
if aID='' then;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TToastManager.clear;
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TToastManager.Create(aOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited Create(aOwner);
|
||||||
|
FMinHeight:=250;
|
||||||
|
FMinWidth:=200;
|
||||||
|
FMultiToast:=True;
|
||||||
|
FHideDelay:=2000;
|
||||||
|
FAutoHide:=True;
|
||||||
|
FAnimate:=False;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TToastManager.ShowToast(const aHeader, aBody: String; aContext : TContextual = cNone; Closable: Boolean = True; aDelay : Integer = 0): TBaseBulmaToastWidget;
|
||||||
|
|
||||||
|
|
||||||
|
begin
|
||||||
|
if aHeader=aBody then;
|
||||||
|
if aContext<>cnone then;
|
||||||
|
if closable then;
|
||||||
|
if aDelay=0 then;
|
||||||
|
Result:=Nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TBaseBulmaToastWidget }
|
||||||
|
|
||||||
|
|
||||||
|
procedure TBaseBulmaToastWidget.SetBody(AValue: String);
|
||||||
|
begin
|
||||||
|
if FBody=AValue then Exit;
|
||||||
|
FBody:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseBulmaToastWidget.SetAnimate(AValue: Boolean);
|
||||||
|
begin
|
||||||
|
if FAnimate=AValue then Exit;
|
||||||
|
FAnimate:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseBulmaToastWidget.SetAutoHide(AValue: Boolean);
|
||||||
|
begin
|
||||||
|
if FAutoHide=AValue then Exit;
|
||||||
|
FAutoHide:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseBulmaToastWidget.SetBoolean(AValue: Boolean);
|
||||||
|
begin
|
||||||
|
if FBoolean=AValue then Exit;
|
||||||
|
FBoolean:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseBulmaToastWidget.SetContextual(AValue: TContextual);
|
||||||
|
begin
|
||||||
|
if FContextual=AValue then Exit;
|
||||||
|
FContextual:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseBulmaToastWidget.SetHeader(AValue: String);
|
||||||
|
begin
|
||||||
|
if FHeader=AValue then Exit;
|
||||||
|
FHeader:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseBulmaToastWidget.SetHeaderImage(AValue: String);
|
||||||
|
begin
|
||||||
|
if FHeaderImage=AValue then Exit;
|
||||||
|
FHeaderImage:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseBulmaToastWidget.SetHideDelay(AValue: Integer);
|
||||||
|
begin
|
||||||
|
if FHideDelay=AValue then Exit;
|
||||||
|
FHideDelay:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseBulmaToastWidget.SetMinWidth(AValue: Integer);
|
||||||
|
begin
|
||||||
|
if FMinWidth=AValue then Exit;
|
||||||
|
FMinWidth:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function TBaseBulmaToastWidget.HeaderHTML: String;
|
||||||
|
|
||||||
|
Var
|
||||||
|
S : String;
|
||||||
|
|
||||||
|
begin
|
||||||
|
Result:='';
|
||||||
|
if (Header='') and (HeaderImage='') then
|
||||||
|
exit;
|
||||||
|
S:=ContextualNames[Contextual];
|
||||||
|
if S<>'' then
|
||||||
|
S:=' is-'+S;
|
||||||
|
Result:='<p class="title is-6 is-small">';
|
||||||
|
if HeaderImage<>'' then
|
||||||
|
Result:=Result+'<img src="'+HeaderImage+'" class="icon is-small">';
|
||||||
|
Result:=Result+Header;
|
||||||
|
Result:=Result+'</p>'
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function TBaseBulmaToastWidget.BodyHTML: String;
|
||||||
|
|
||||||
|
begin
|
||||||
|
Result:='<div class="message-body is-light">';
|
||||||
|
Result:=Result+HeaderHTML;
|
||||||
|
Result:=Result+'<p>'+Body+'</p>';
|
||||||
|
Result:=Result+'</div>';
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
constructor TBaseBulmaToastWidget.Create(aOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited Create(aOwner);
|
||||||
|
FMinWidth:=200;
|
||||||
|
FAutoHide:=True;
|
||||||
|
FHideDelay:=2000;
|
||||||
|
FPosition:=tpTopRight;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseBulmaToastWidget.Hide;
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TBaseBulmaToastWidget.Refresh;
|
||||||
|
|
||||||
|
Begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
@ -20,7 +20,7 @@ unit stub.htmlwidgets;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, stub.webwidget, stub.js, stub.web;
|
Classes, SysUtils, stub.webwidget, stub.web;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
TTextMode = (tmText,tmHTML);
|
TTextMode = (tmText,tmHTML);
|
||||||
|
@ -5,7 +5,7 @@ unit stub.jsondataset;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, db, fpjsondataset;
|
Classes, SysUtils, fpjsondataset;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
{ TCustomLocalJSONDataset }
|
{ TCustomLocalJSONDataset }
|
||||||
|
Loading…
Reference in New Issue
Block a user