@fleetbase/storefront-engine 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,7 +21,7 @@
21
21
  {{else}}
22
22
  <div class="w-32">
23
23
  <img src={{@options.category.icon_url}} alt={{@options.category.name}} class="w-full rounded-md" />
24
- <FileUpload @name="icons" @accept="image/*" @onFileAdded={{fn @options.uploadIcon}} as |queue|>
24
+ <FileUpload @name="icons" @accept="image/*" @onFileAdded={{@options.uploadIcon}} as |queue|>
25
25
  <a tabindex={{0}} class="flex items-center px-0 mt-2 text-xs no-underline truncate btn btn-sm btn-default">
26
26
  {{#if queue.files.length}}
27
27
  <Spinner class="mr-1" />
@@ -8,7 +8,7 @@
8
8
  <Image src={{@options.category.icon_url}} @fallbackSrc={{config "defaultValues.categoryImage"}} alt={{@options.category.name}} height="80" width="80" class="h-20 w-20 rounded-md" />
9
9
  </div>
10
10
  <div class="flex-1">
11
- <FileUpload @name="photos" @accept="image/*" @onFileAdded={{fn @options.uploadNewPhoto}} as |queue|>
11
+ <FileUpload @name="photos" @accept="image/*" @onFileAdded={{@options.uploadNewPhoto}} as |queue|>
12
12
  <a tabindex={{0}} class="flex items-center px-0 mt-2 text-xs no-underline truncate btn btn-sm btn-default">
13
13
  {{#if queue.files.length}}
14
14
  <Spinner class="mr-1" />
@@ -7,7 +7,7 @@
7
7
  </div>
8
8
  </div>
9
9
  {{else}}
10
- <FileDropzone @name="spreadsheets" @multiple={{true}} @onFileAdded={{fn @options.queueFile}} @accept={{join ","
10
+ <FileDropzone @name="spreadsheets" @multiple={{true}} @onFileAdded={{@options.queueFile}} @accept={{join ","
11
11
  @options.acceptedFileTypes}} class="min-h-56 dropzone w-full rounded px-4 py-8 min-h text-gray-900 dark:text-white text-center flex flex-col items-center justify-center border-2 border-dashed border-gray-200 dark:border-indigo-500" as |dropzone queue|>
12
12
  {{#if dropzone.active}}
13
13
  {{#if dropzone.valid}}
@@ -30,8 +30,8 @@
30
30
  <p class="text-base font-semibold my-5">Drag and drop spreadsheet files onto this dropzone</p>
31
31
  {{/if}}
32
32
 
33
- <FileUpload @name="spreadsheets" @for="spreadsheets" @accept={{join "," @options.acceptedFileTypes}} @multiple={{true}} @onFileAdded={{fn @options.queueFile}}>
34
- <a tabindex=0 class="btn btn-magic cursor-pointer ml-1 hover:text-white">or select spreadsheets to
33
+ <FileUpload @name="spreadsheets" @for="spreadsheets" @accept={{join "," @options.acceptedFileTypes}} @multiple={{true}} @onFileAdded={{@options.queueFile}}>
34
+ <a tabindex="0" class="btn btn-magic cursor-pointer ml-1 hover:text-white">or select spreadsheets to
35
35
  upload.</a>
36
36
  </FileUpload>
37
37
  </div>
@@ -2,7 +2,6 @@ import Component from '@glimmer/component';
2
2
  import { tracked } from '@glimmer/tracking';
3
3
  import { inject as service } from '@ember/service';
4
4
  import { action } from '@ember/object';
5
- import { alias } from '@ember/object/computed';
6
5
 
7
6
  export default class ModalsManageAddonsComponent extends Component {
8
7
  @service store;
@@ -1,7 +1,7 @@
1
1
  {{#if @activeStore}}
2
2
  <DropdownButton @renderInPlace={{true}} @size="xs" @type="primary" @icon="store" @iconSize="sm" @text={{@activeStore.name}} @buttonClass={{concat "w-full " @buttonClass}} @buttonWrapperClass={{concat "w-full " @buttonWrapperClass}} @wrapperClass={{@wrapperClass}} as |dd|>
3
- <div class="next-dd-menu py-1">
4
- <div class="px-1 overflow-y-scroll" {{set-height "300px"}}>
3
+ <div role="menu" class="next-dd-menu py-1">
4
+ <div role="group" class="px-1 overflow-y-scroll" {{set-height "300px"}}>
5
5
  {{#each @stores as |store|}}
6
6
  <a href="javascript:;" class="next-dd-item" role="menuitem" {{on "click" (dropdown-fn dd this.onSwitchStore store)}}>
7
7
  {{or store.name "-"}}
@@ -10,8 +10,8 @@
10
10
  </div>
11
11
  <div class="px-1">
12
12
  <div class="next-dd-menu-seperator"></div>
13
- <div class="px-1">
14
- <a href="javascript:;" class="next-dd-item" {{on "click" (dropdown-fn dd this.onCreateStore)}}>
13
+ <div role="group" class="px-1">
14
+ <a href="javascript:;" class="next-dd-item" role="menuitem" {{on "click" (dropdown-fn dd this.onCreateStore)}}>
15
15
  Create a new storefront
16
16
  </a>
17
17
  </div>
@@ -1,7 +1,6 @@
1
1
  import Controller from '@ember/controller';
2
2
  import { inject as service } from '@ember/service';
3
3
  import { tracked } from '@glimmer/tracking';
4
- import { action } from '@ember/object';
5
4
  import { isBlank } from '@ember/utils';
6
5
  import { timeout } from 'ember-concurrency';
7
6
  import { task } from 'ember-concurrency-decorators';
@@ -1,7 +1,6 @@
1
- import Controller, { inject as controller } from '@ember/controller';
1
+ import Controller from '@ember/controller';
2
2
  import { inject as service } from '@ember/service';
3
3
  import { tracked } from '@glimmer/tracking';
4
- import { action } from '@ember/object';
5
4
  import { isBlank } from '@ember/utils';
6
5
  import { timeout } from 'ember-concurrency';
7
6
  import { task } from 'ember-concurrency-decorators';
@@ -2,7 +2,6 @@ import ProductsIndexCategoryNewController from './new';
2
2
  import { tracked } from '@glimmer/tracking';
3
3
  import { alias } from '@ember/object/computed';
4
4
  import { action } from '@ember/object';
5
- import { isArray } from '@ember/array';
6
5
 
7
6
  export default class ProductsIndexCategoryEditController extends ProductsIndexCategoryNewController {
8
7
  @alias('model') product;
@@ -3,7 +3,6 @@ import { tracked } from '@glimmer/tracking';
3
3
  import { isArray } from '@ember/array';
4
4
  import { action } from '@ember/object';
5
5
  import { alias } from '@ember/object/computed';
6
- import { isEmpty } from '@ember/utils';
7
6
  import { underscore } from '@ember/string';
8
7
  import { inject as service } from '@ember/service';
9
8
 
@@ -1,7 +1,7 @@
1
1
  import Controller from '@ember/controller';
2
2
  import { tracked } from '@glimmer/tracking';
3
3
  import { inject as service } from '@ember/service';
4
- import { action, computed } from '@ember/object';
4
+ import { action } from '@ember/object';
5
5
  import { dasherize } from '@ember/string';
6
6
  import { isBlank } from '@ember/utils';
7
7
  import { timeout } from 'ember-concurrency';
@@ -140,7 +140,7 @@ export default class ProductsIndexCategoryController extends Controller {
140
140
  confirm: (modal) => {
141
141
  modal.startLoading();
142
142
 
143
- return category.save().then((category) => {
143
+ return category.save().then(() => {
144
144
  this.notifications.success('Category changes saved.');
145
145
  });
146
146
  },
@@ -2,7 +2,6 @@ import Controller from '@ember/controller';
2
2
  import { inject as service } from '@ember/service';
3
3
  import { tracked } from '@glimmer/tracking';
4
4
  import { action } from '@ember/object';
5
- import { equal } from '@ember/object/computed';
6
5
  import { isBlank } from '@ember/utils';
7
6
  import { timeout } from 'ember-concurrency';
8
7
  import { task } from 'ember-concurrency-decorators';
@@ -4,8 +4,6 @@ import { inject as service } from '@ember/service';
4
4
  import { action } from '@ember/object';
5
5
  import { alias } from '@ember/object/computed';
6
6
  import { dasherize } from '@ember/string';
7
- import { timeout } from 'ember-concurrency';
8
- import { task } from 'ember-concurrency-decorators';
9
7
 
10
8
  export default class ProductsIndexController extends Controller {
11
9
  @service store;
@@ -59,7 +57,7 @@ export default class ProductsIndexController extends Controller {
59
57
  company_uuid: this.currentUser.companyId,
60
58
  owner_uuid: this.currentUser.getOption('activeStorefront'),
61
59
  owner_type: 'storefront:store',
62
- for: 'storefront_product'
60
+ for: 'storefront_product',
63
61
  });
64
62
 
65
63
  this.modalsManager.show('modals/create-product-category', {
@@ -90,7 +88,7 @@ export default class ProductsIndexController extends Controller {
90
88
  confirm: (modal) => {
91
89
  modal.startLoading();
92
90
 
93
- return category.save().then((category) => {
91
+ return category.save().then(() => {
94
92
  this.notifications.success('New product category created.');
95
93
  return this.hostRouter.refresh();
96
94
  });
@@ -1,5 +1,4 @@
1
1
  import Controller from '@ember/controller';
2
- import { tracked } from '@glimmer/tracking';
3
2
  import { inject as service } from '@ember/service';
4
3
  import { alias } from '@ember/object/computed';
5
4
  import { action, set } from '@ember/object';
@@ -1,5 +1,4 @@
1
1
  import Controller from '@ember/controller';
2
- import { tracked } from '@glimmer/tracking';
3
2
  import { inject as service } from '@ember/service';
4
3
  import { alias } from '@ember/object/computed';
5
4
  import { action } from '@ember/object';
@@ -1,4 +1,5 @@
1
1
  import Model, { attr, hasMany } from '@ember-data/model';
2
+ import { format, formatDistanceToNow } from 'date-fns';
2
3
 
3
4
  export default class ProductStoreLocationModel extends Model {
4
5
  /** @ids */
@@ -24,18 +25,18 @@ export default class ProductStoreLocationModel extends Model {
24
25
 
25
26
  /** @computed */
26
27
  get updatedAgo() {
27
- return moment(this.updated_at).fromNow();
28
+ return formatDistanceToNow(this.updated_at);
28
29
  }
29
30
 
30
31
  get updatedAt() {
31
- return moment(this.updated_at).format('DD MMM YYYY');
32
+ return format(this.updated_at, 'PPP');
32
33
  }
33
34
 
34
35
  get createdAgo() {
35
- return moment(this.created_at).fromNow();
36
+ return formatDistanceToNow(this.created_at);
36
37
  }
37
38
 
38
39
  get createdAt() {
39
- return moment(this.created_at).format('DD MMM YYYY');
40
+ return format(this.created_at, 'PPP p');
40
41
  }
41
42
  }
@@ -1,4 +1,5 @@
1
1
  import Model, { attr, hasMany } from '@ember-data/model';
2
+ import { format, formatDistanceToNow } from 'date-fns';
2
3
 
3
4
  export default class ProductVariantModel extends Model {
4
5
  /** @ids */
@@ -27,18 +28,18 @@ export default class ProductVariantModel extends Model {
27
28
 
28
29
  /** @computed */
29
30
  get updatedAgo() {
30
- return moment(this.updated_at).fromNow();
31
+ return formatDistanceToNow(this.updated_at);
31
32
  }
32
33
 
33
34
  get updatedAt() {
34
- return moment(this.updated_at).format('DD MMM YYYY');
35
+ return format(this.updated_at, 'PPP');
35
36
  }
36
37
 
37
38
  get createdAgo() {
38
- return moment(this.created_at).fromNow();
39
+ return formatDistanceToNow(this.created_at);
39
40
  }
40
41
 
41
42
  get createdAt() {
42
- return moment(this.created_at).format('DD MMM YYYY');
43
+ return format(this.created_at, 'PPP p');
43
44
  }
44
45
  }
@@ -1,8 +1,7 @@
1
1
  import Model, { attr, belongsTo, hasMany } from '@ember-data/model';
2
2
  import { tracked } from '@glimmer/tracking';
3
3
  import { getOwner } from '@ember/application';
4
- import { set, setProperties } from '@ember/object';
5
- import { isArray } from '@ember/array';
4
+ import { setProperties } from '@ember/object';
6
5
  import { isEmpty } from '@ember/utils';
7
6
  import { underscore } from '@ember/string';
8
7
  import { format, formatDistanceToNow } from 'date-fns';
@@ -7,9 +7,4 @@ export default class NetworksIndexNetworkIndexRoute extends Route {
7
7
  model() {
8
8
  return this.modelFor('networks.index.network');
9
9
  }
10
-
11
- afterModel(model) {
12
- // model.loadNotificationChannels();
13
- // model.loadPaymentGateways();
14
- }
15
10
  }
@@ -6,7 +6,7 @@ export default class ProductsIndexRoute extends Route {
6
6
  @service store;
7
7
  @service currentUser;
8
8
 
9
- @action willTransition(transition) {
9
+ @action willTransition() {
10
10
  this.controller.category = null;
11
11
  }
12
12
 
@@ -1,7 +1,6 @@
1
1
  import Service from '@ember/service';
2
2
  import Evented from '@ember/object/evented';
3
3
  import { inject as service } from '@ember/service';
4
- import socketClusterClient from 'socketcluster';
5
4
 
6
5
  export default class StorefrontService extends Service.extend(Evented) {
7
6
  @service store;
@@ -130,14 +130,14 @@
130
130
  </div>
131
131
  <div>
132
132
  <DropdownButton @size="xs" @icon="cog" @iconPrefix="fas" @textClass="block truncate" as |dd|>
133
- <div class="next-dd-menu" aria-orientation="vertical" aria-labelledby="user-menu">
133
+ <div role="menu" class="next-dd-menu" aria-orientation="vertical" aria-labelledby="user-menu">
134
134
  <div class="px-1">
135
135
  <div class="next-dd-title">
136
136
  Store Options
137
137
  </div>
138
138
  </div>
139
139
  <div class="next-dd-menu-seperator"></div>
140
- <div class="px-1">
140
+ <div role="group" class="px-1">
141
141
  {{!-- <a href="javascript:;" class="next-dd-item" role="menuitem">
142
142
  <FaIcon @icon="receipt" class="mr-2" />
143
143
  <span>View orders via network</span>
@@ -18,14 +18,14 @@
18
18
  </div>
19
19
  <div>
20
20
  <DropdownButton @renderInPlace={{true}} @size="xs" @icon="cog" @iconPrefix="fas" @textClass="block truncate text-gray-700 dark:text-gray-100" as |dd|>
21
- <div class="next-dd-menu" aria-orientation="vertical" aria-labelledby="user-menu">
21
+ <div role="menu" class="next-dd-menu" aria-orientation="vertical" aria-labelledby="user-menu">
22
22
  <div class="px-1">
23
23
  <div class="next-dd-title">
24
24
  Network Options
25
25
  </div>
26
26
  </div>
27
27
  <div class="next-dd-menu-seperator"></div>
28
- <div class="px-1">
28
+ <div role="group" class="px-1">
29
29
  <a href="javascript:;" class="next-dd-item" role="menuitem" {{on "click" (dropdown-fn dd this.manageNetwork network)}}>
30
30
  <div class="w-7">
31
31
  <FaIcon @icon="network-wired" class="mr-2" />
@@ -196,7 +196,7 @@
196
196
  {{#if dropzone.supported}}
197
197
  <p class="text-base font-semibold my-5">Drag and drop image and video files onto this dropzone</p>
198
198
  {{/if}}
199
- <FileUpload @name="files" @for="files" @accept={{join "," this.acceptedFileTypes}} @multiple={{true}} @onFileAdded={{fn this.queueFile}}>
199
+ <FileUpload @name="files" @for="files" @accept={{join "," this.acceptedFileTypes}} @multiple={{true}} @onFileAdded={{this.queueFile}}>
200
200
  <a tabindex={{0}} class="btn btn-magic cursor-pointer ml-1">or select files to upload.</a>
201
201
  </FileUpload>
202
202
  </div>
@@ -6,7 +6,7 @@
6
6
  </Layout::Section::Header>
7
7
 
8
8
  <Layout::Section::Body class="section-content flex flex-col lg:flex-row">
9
- <AsideItemScroller @title="Product Categories" @resource="category" @items={{@model}} @titleKey="name" @onCreate={{this.createNewProductCategory}} @onInit={{this.setAsideScroller}} @customTopItemComponent="aside-item-scroller/item" @customTopItemText="All Products" @customTopItemOnClick={{this.viewAllProducts}} @customTopItemClass="border-t border-gray-200 dark:border-gray-700" as |category dd|>
9
+ <AsideItemScroller @title="Product Categories" @resource="category" @items={{@model}} @titleKey="name" @onCreate={{this.createNewProductCategory}} @onInit={{this.setAsideScroller}} @customTopItemComponent="aside-item-scroller/item" @customTopItemText="All Products" @customTopItemOnClick={{this.viewAllProducts}} @customTopItemClass="border-t border-gray-200 dark:border-gray-700" as |category|>
10
10
  <a href="javascript:;" class="aside-item-link cursor-pointer flex w-full md:px-6 md:py-5" {{on "click" (fn this.switchCategory category)}}>
11
11
  <div class="flex items-center justify-between">
12
12
  <div>
@@ -84,7 +84,7 @@
84
84
  </div>
85
85
  </div>
86
86
  {{else}}
87
- <FileDropzone @name="files" @multiple={{true}} @onFileAdded={{fn this.queueFile}} @accept={{join "," this.acceptedFileTypes}} class="dropzone file-dropzone" as |dropzone queue|>
87
+ <FileDropzone @name="files" @multiple={{true}} @onFileAdded={{this.queueFile}} @accept={{join "," this.acceptedFileTypes}} class="dropzone file-dropzone" as |dropzone queue|>
88
88
  {{#if dropzone.active}}
89
89
  {{#if dropzone.valid}}
90
90
  Drop to upload
@@ -107,7 +107,7 @@
107
107
  {{#if dropzone.supported}}
108
108
  <p class="text-base font-semibold my-5">Drag and drop image and video files onto this dropzone</p>
109
109
  {{/if}}
110
- <FileUpload @name="files" @for="files" @accept={{join "," this.acceptedFileTypes}} @multiple={{true}} @onFileAdded={{fn this.queueFile}}>
110
+ <FileUpload @name="files" @for="files" @accept={{join "," this.acceptedFileTypes}} @multiple={{true}} @onFileAdded={{this.queueFile}}>
111
111
  <a tabindex={{0}} class="btn btn-magic cursor-pointer ml-1">or select files to upload.</a>
112
112
  </FileUpload>
113
113
  </div>
package/index.js CHANGED
@@ -8,14 +8,6 @@ module.exports = buildEngine({
8
8
  enabled: true,
9
9
  },
10
10
  _concatStyles: () => {},
11
- included: function (app) {
12
- this._super.included.apply(this, arguments);
13
-
14
- // socketcluster
15
- this.import('node_modules/socketcluster-client/socketcluster-client.min.js', {
16
- using: [{ transformation: 'es6', as: 'socketcluster' }],
17
- });
18
- },
19
11
  isDevelopingAddon() {
20
12
  return true;
21
13
  },
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@fleetbase/storefront-engine",
3
3
  "extension": "Storefront",
4
4
  "icon": "store",
5
- "version": "0.0.3",
5
+ "version": "0.0.4",
6
6
  "priority": 1,
7
7
  "description": "Fleetbase Storefront extension provides a headless commerce module for launching e-commerce stores, on-demand apps, or marketplaces.",
8
8
  "keywords": [
@@ -37,11 +37,12 @@
37
37
  "test:ember-compatibility": "ember try:each"
38
38
  },
39
39
  "dependencies": {
40
- "@fleetbase/ember-core": "^0.0.1",
41
- "@fleetbase/ember-ui": "^0.0.3",
42
- "@fleetbase/fleetops-data": "^0.0.1",
40
+ "@fleetbase/ember-core": "^0.0.2",
41
+ "@fleetbase/ember-ui": "^0.0.4",
42
+ "@fleetbase/fleetops-data": "^0.0.2",
43
43
  "@fortawesome/ember-fontawesome": "^0.4.1",
44
- "@fortawesome/free-solid-svg-icons": "^6.2.0",
44
+ "@fortawesome/fontawesome-svg-core": "^6.4.0",
45
+ "@fortawesome/free-solid-svg-icons": "^6.4.0",
45
46
  "ember-cli-babel": "^7.26.11",
46
47
  "ember-cli-es6-transform": "^1.0.0",
47
48
  "ember-cli-htmlbars": "^6.1.0",