Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,74 @@
## 3.0.0-beta.6

- `Moment`:
- `moment(DateTime)`: changed to construct moment object from ISO 8601 string instead of `dateTime.toJSDeep` conversion.

- dom_tools: ^3.0.0-beta.15
- dom_builder: ^3.0.0-beta.8
- build_web_compilers: ^4.4.6

## 3.0.0-beta.5

- `BSDateRangePicker`:
- `_jsQueryCallback`: change parameters to `JSArray args` to avoid a bug passing a JS string to a JSObject in a Dart function.

- bones_ui: ^3.0.0-beta.19
- dom_tools: ^3.0.0-beta.13
- dom_builder: ^3.0.0-beta.7
- web_utils: ^1.0.19

- build_runner: ^2.10.4
- build_web_compilers: ^4.4.3
- test: ^1.28.0

- Removed dev dependency `sass_builder`.

## 3.0.0-beta.4

- `BSDateRangePicker`:
- `_configureDatePicker`:
- Fix `JQuery.$(_textElement).call()`, pass fallback as `_jsQueryCallback.toJS`, avoiding `jsify` issues.

- bones_ui: ^3.0.0-beta.7
- swiss_knife: ^3.3.3
- dom_tools: ^3.0.0-beta.12
- dom_builder: ^3.0.0-beta.4
- web: ^1.1.1
- web_utils: ^1.0.16

- build_runner: ^2.10.0
- build_web_compilers: ^4.3.0
- sass_builder: ^2.4.0
- test: ^1.26.3

## 3.0.0-beta.3

- bones_ui: ^3.0.0-beta.5
- swiss_knife: ^3.3.0
- dom_tools: ^3.0.0-beta.5
- intl_messages: ^3.0.0-beta.1
- web_utils: ^1.0.9

## 3.0.0-beta.2

- Using `JSDate` from `js_interop_utils: ^1.0.6`.

- bones_ui: ^3.0.0-beta.4
- web_utils: ^1.0.8

## 3.0.0-beta.1

- Migrate `dart:html` (deprecated) to package `web`.

- sdk: '>=3.6.0 <4.0.0'

- bones_ui: ^3.0.0-beta.2
- amdjs: ^3.0.0-beta.2
- dom_tools: ^3.0.0-beta.4
- dom_builder: ^3.0.0-beta.2
- web: ^1.1.0
- web_utils: ^1.0.6

## 2.3.1

- sdk: '>=3.5.0 <4.0.0'
Expand Down
7 changes: 2 additions & 5 deletions example/main.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
// ignore: deprecated_member_use
import 'dart:html';

import 'package:bones_ui/bones_ui_kit.dart';
import 'package:bones_ui_bootstrap/bones_ui_bootstrap.dart';

Expand Down Expand Up @@ -49,10 +46,10 @@ class MyPage extends UIComponent {
' ...',
'<hr>',
'<b>BSDateRangePicker</b>: &nbsp;',
BSDateRangePicker(content!),
BSDateRangePicker(null),
'<hr>',
'<b>BSAccordion</b>: <br>',
BSAccordion(content!, [
BSAccordion(null, [
AccordionItem('A Title', 'A text'),
AccordionItem('B Title', 'B text'),
AccordionItem('C Title', 'C text'),
Expand Down
2 changes: 1 addition & 1 deletion lib/components/daterangepicker/daterangepicker.js
Original file line number Diff line number Diff line change
Expand Up @@ -1131,7 +1131,7 @@

//if a new date range was selected, invoke the user callback function
if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate))
this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel);
this.callback([this.startDate.clone(), this.endDate.clone(), this.chosenLabel]);

//if picker is attached to a text input, update it
this.updateElement();
Expand Down
56 changes: 30 additions & 26 deletions lib/src/bones_ui_bootstrap_base.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
// ignore: deprecated_member_use
import 'dart:js';
import 'dart:js_interop_unsafe';

import 'package:amdjs/amdjs.dart';
import 'package:bones_ui/bones_ui.dart';
Expand Down Expand Up @@ -142,12 +141,12 @@ class JQuery {
}

/// Does JQuery [query]
static JQuery $(dynamic query) {
var o = context.callMethod(r'$', [query]);
static JQuery $(Object? query) {
var o = globalContext.callMethod<JSObject?>(r'$'.toJS, query.toJSDeep);
return JQuery(o);
}

final JsObject? _o;
final JSObject? _o;

JQuery(this._o);

Expand All @@ -156,15 +155,16 @@ class JQuery {
/// [method] The method to call.
/// [args] Arguments to the method.
dynamic call(String method, [List? args]) {
return _o!.callMethod(method, args);
var arguments = args?.map((e) => (e as Object?).toJSDeep).toList();
return _o!.callMethodVarArgs<JSAny?>(method.toJS, arguments).dartify();
}

/// Opens a new Window.
///
/// - [name] of the Window.
/// - [html] the Window HTML.
/// - [print] if `true` will print the window.
static JsObject openWindow({String? name, String? html, bool print = false}) {
static JSObject openWindow({String? name, String? html, bool print = false}) {
var openParams = <dynamic>[];

if (name != null) {
Expand All @@ -174,18 +174,19 @@ class JQuery {
openParams.add(name);
}

var w = context.callMethod('open', openParams) as JsObject;
var w = globalContext.callMethodVarArgs<JSObject?>('open'.toJS,
openParams.map((e) => (e as Object?).toJSDeep).toList()) as JSObject;

if (html != null && html.isNotEmpty) {
var doc = w['document'] as JsObject;
var body = doc['body'] as JsObject;
var o = context.callMethod(r'$', [body]) as JsObject;
o.callMethod('html', [html]);
var doc = w['document'] as JSObject;
var body = doc['body'] as JSObject;
var o = globalContext.callMethod(r'$'.toJS, body) as JSObject;
o.callMethod<JSAny?>('html'.toJS, html.toJS);
}

if (print) {
w.callMethod('focus');
w.callMethod('print');
w.callMethod<JSAny?>('focus'.toJS);
w.callMethod<JSAny?>('print'.toJS);
}

return w;
Expand Down Expand Up @@ -215,7 +216,7 @@ class Moment {
static bool get isSuccessfullyLoaded =>
_load.isLoaded && _load.loadSuccessful!;

static JsFunction? _moment;
static JSFunction? _moment;

/// Loads Moment JS library.
static Future<bool> load() {
Expand All @@ -228,7 +229,7 @@ class Moment {
var okJS = await AMDJS.require('moment',
jsFullPath: jsFullPath, globalJSVariableName: 'moment');

_moment = context['moment'] as JsFunction?;
_moment = globalContext['moment'] as JSFunction?;

var okMoment = _moment != null;

Expand All @@ -245,29 +246,32 @@ class Moment {

locale = locale.replaceFirst('_', '-');

_moment!.callMethod('locale', [locale]);
_moment!.callMethod<JSAny?>('locale'.toJS, locale.toJS);
return true;
}

/// Parses a [DateTime] to a moment object.
static JsObject moment(DateTime dateTime) {
return JsObject(_moment!, [dateTime]);
static JSObject moment(DateTime dateTime) {
var dateStr = dateTime.toIso8601String();
return _moment!.callAsConstructor<JSObject>(dateStr.toJS);
}

/// Formats [dateTime] to [format].
static String? format(DateTime dateTime, format) {
return moment(dateTime).callMethod('format', format);
static String? format(DateTime dateTime, Object format) {
return moment(dateTime)
.callMethod<JSString?>('format'.toJS, format.toJSDeep)
?.toDart;
}

static String? jsObjectFormat(JsObject moment, format) {
return moment.callMethod('format', [format]);
static String? jsObjectFormat(JSObject moment, Object format) {
return moment.callMethod<JSString>('format'.toJS, format.toJSDeep).toDart;
}

static int? jsObjectToMillisecondsSinceEpoch(JsObject moment) {
return moment.callMethod('valueOf');
static int? jsObjectToMillisecondsSinceEpoch(JSObject moment) {
return moment.callMethod<JSNumber?>('valueOf'.toJS)?.toDartInt;
}

static DateTime jsObjectToDateTime(JsObject moment) {
static DateTime jsObjectToDateTime(JSObject moment) {
var time = jsObjectToMillisecondsSinceEpoch(moment)!;
return DateTime.fromMillisecondsSinceEpoch(time);
}
Expand Down
8 changes: 3 additions & 5 deletions lib/src/bones_ui_bootstrap_icons.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
// ignore: deprecated_member_use
import 'dart:html';

import 'package:dom_tools/dom_tools.dart';
import 'package:swiss_knife/swiss_knife.dart';
import 'package:web/web.dart';

import 'bones_ui_bootstrap_base.dart';

Expand Down Expand Up @@ -393,7 +391,7 @@ building-x.svg currency-rupee.svg filetype-key.svg motherboard-fill.svg sign-tur
}

/// Returns an [Element] of a SVG icon with [name].
static Element svgIconElement(String name,
static HTMLElement svgIconElement(String name,
{String? title,
int? width,
int? height,
Expand All @@ -405,7 +403,7 @@ building-x.svg currency-rupee.svg filetype-key.svg motherboard-fill.svg sign-tur
height: height,
classes: classes,
style: style);
return createHTML(iconHTML);
return createHTML(html: iconHTML);
}

static final ResourceContentCache _resourceContentCache =
Expand Down
Loading