solidus_api_v2 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.rspec +2 -0
- data/CHANGELOG.md +38 -0
- data/Gemfile +13 -0
- data/LICENSE +26 -0
- data/README.md +98 -0
- data/Rakefile +37 -0
- data/app/controllers/concerns/spree/api/v2/renderable.rb +51 -0
- data/app/controllers/spree/api/v2/base_controller.rb +31 -0
- data/app/controllers/spree/api/v2/children_controller.rb +29 -0
- data/app/controllers/spree/api/v2/countries_controller.rb +21 -0
- data/app/controllers/spree/api/v2/images_controller.rb +29 -0
- data/app/controllers/spree/api/v2/line_items_controller.rb +36 -0
- data/app/controllers/spree/api/v2/option_types_controller.rb +31 -0
- data/app/controllers/spree/api/v2/option_values_controller.rb +29 -0
- data/app/controllers/spree/api/v2/orders_controller.rb +11 -0
- data/app/controllers/spree/api/v2/prices_controller.rb +27 -0
- data/app/controllers/spree/api/v2/products_controller.rb +37 -0
- data/app/controllers/spree/api/v2/states_controller.rb +29 -0
- data/app/controllers/spree/api/v2/taxonomies_controller.rb +21 -0
- data/app/controllers/spree/api/v2/taxons_controller.rb +40 -0
- data/app/controllers/spree/api/v2/variants_controller.rb +35 -0
- data/app/models/spree/base_decorator.rb +5 -0
- data/app/models/spree/image_decorator.rb +3 -0
- data/app/models/spree/price_decorator.rb +3 -0
- data/app/models/spree/state_decorator.rb +3 -0
- data/app/serializers/spree/address_serializer.rb +9 -0
- data/app/serializers/spree/base_serializer.rb +13 -0
- data/app/serializers/spree/country_serializer.rb +7 -0
- data/app/serializers/spree/error_serializer.rb +52 -0
- data/app/serializers/spree/image_serializer.rb +13 -0
- data/app/serializers/spree/line_item_serializer.rb +13 -0
- data/app/serializers/spree/option_type_serializer.rb +8 -0
- data/app/serializers/spree/option_value_serializer.rb +8 -0
- data/app/serializers/spree/order_serializer.rb +21 -0
- data/app/serializers/spree/price_serializer.rb +7 -0
- data/app/serializers/spree/product_serializer.rb +12 -0
- data/app/serializers/spree/role_serializer.rb +5 -0
- data/app/serializers/spree/state_serializer.rb +7 -0
- data/app/serializers/spree/store_serializer.rb +6 -0
- data/app/serializers/spree/taxon_serializer.rb +16 -0
- data/app/serializers/spree/taxonomy_serializer.rb +7 -0
- data/app/serializers/spree/user_serializer.rb +5 -0
- data/app/serializers/spree/variant_serializer.rb +12 -0
- data/bin/rails +7 -0
- data/circle.yml +13 -0
- data/config/locales/en.yml +25 -0
- data/config/routes.rb +53 -0
- data/docs/.nojekyll +0 -0
- data/docs/Dockerfile +12 -0
- data/docs/Gemfile +13 -0
- data/docs/README.md +12 -0
- data/docs/Rakefile +9 -0
- data/docs/config.rb +39 -0
- data/docs/font-selection.json +148 -0
- data/docs/source/fonts/slate.eot +0 -0
- data/docs/source/fonts/slate.svg +14 -0
- data/docs/source/fonts/slate.ttf +0 -0
- data/docs/source/fonts/slate.woff +0 -0
- data/docs/source/fonts/slate.woff2 +0 -0
- data/docs/source/images/logo.png +0 -0
- data/docs/source/images/navbar.png +0 -0
- data/docs/source/includes/_authentication.md +61 -0
- data/docs/source/includes/_countries.md +133 -0
- data/docs/source/includes/_errors.md +17 -0
- data/docs/source/includes/_filtering.md +11 -0
- data/docs/source/includes/_images.md +201 -0
- data/docs/source/includes/_line_items.md +137 -0
- data/docs/source/includes/_option_types.md +267 -0
- data/docs/source/includes/_option_values.md +227 -0
- data/docs/source/includes/_orders.md +75 -0
- data/docs/source/includes/_pagination.md +10 -0
- data/docs/source/includes/_prices.md +188 -0
- data/docs/source/includes/_products.md +403 -0
- data/docs/source/includes/_states.md +96 -0
- data/docs/source/includes/_taxonomies.md +325 -0
- data/docs/source/includes/_taxons.md +414 -0
- data/docs/source/includes/_variants.md +430 -0
- data/docs/source/index.md +53 -0
- data/docs/source/javascripts/all.js +4 -0
- data/docs/source/javascripts/all_nosearch.js +3 -0
- data/docs/source/javascripts/app/_lang.js +162 -0
- data/docs/source/javascripts/app/_search.js +74 -0
- data/docs/source/javascripts/app/_toc.js +55 -0
- data/docs/source/javascripts/lib/_energize.js +169 -0
- data/docs/source/javascripts/lib/_imagesloaded.min.js +7 -0
- data/docs/source/javascripts/lib/_jquery.highlight.js +108 -0
- data/docs/source/javascripts/lib/_jquery.tocify.js +1042 -0
- data/docs/source/javascripts/lib/_jquery_ui.js +566 -0
- data/docs/source/javascripts/lib/_lunr.js +1910 -0
- data/docs/source/layouts/layout.erb +102 -0
- data/docs/source/stylesheets/_icon-font.scss +38 -0
- data/docs/source/stylesheets/_normalize.css +427 -0
- data/docs/source/stylesheets/_syntax.scss.erb +27 -0
- data/docs/source/stylesheets/_variables.scss +109 -0
- data/docs/source/stylesheets/print.css.scss +142 -0
- data/docs/source/stylesheets/screen.css.scss +622 -0
- data/lib/solidus_api_v2.rb +5 -0
- data/lib/spree_api_v2/engine.rb +21 -0
- data/lib/spree_api_v2.rb +4 -0
- data/solidus_api_v2.gemspec +36 -0
- data/spec/controllers/spree/api/v2/children_controller_spec.rb +28 -0
- data/spec/controllers/spree/api/v2/countries_controller_spec.rb +25 -0
- data/spec/controllers/spree/api/v2/images_controller_spec.rb +93 -0
- data/spec/controllers/spree/api/v2/line_items_controller_spec.rb +86 -0
- data/spec/controllers/spree/api/v2/option_types_controller_spec.rb +73 -0
- data/spec/controllers/spree/api/v2/option_values_controller_spec.rb +88 -0
- data/spec/controllers/spree/api/v2/orders_controller_spec.rb +15 -0
- data/spec/controllers/spree/api/v2/prices_controller_spec.rb +55 -0
- data/spec/controllers/spree/api/v2/products_controller_spec.rb +95 -0
- data/spec/controllers/spree/api/v2/states_controller_spec.rb +42 -0
- data/spec/controllers/spree/api/v2/taxonomies_controller_spec.rb +31 -0
- data/spec/controllers/spree/api/v2/taxons_controller_spec.rb +54 -0
- data/spec/controllers/spree/api/v2/variants_controller_spec.rb +108 -0
- data/spec/models/spree/base_decorator_spec.rb +9 -0
- data/spec/models/spree/price_decorator_spec.rb +3 -0
- data/spec/serializers/spree/address_serializer_spec.rb +35 -0
- data/spec/serializers/spree/country_serializer_spec.rb +27 -0
- data/spec/serializers/spree/error_serializer_spec.rb +116 -0
- data/spec/serializers/spree/image_serializer_spec.rb +30 -0
- data/spec/serializers/spree/line_item_serializer_spec.rb +40 -0
- data/spec/serializers/spree/option_type_serializer_spec.rb +27 -0
- data/spec/serializers/spree/option_value_serializer_spec.rb +29 -0
- data/spec/serializers/spree/order_serializer_spec.rb +69 -0
- data/spec/serializers/spree/price_serializer_spec.rb +28 -0
- data/spec/serializers/spree/product_serializer_spec.rb +47 -0
- data/spec/serializers/spree/role_serializer_spec.rb +17 -0
- data/spec/serializers/spree/state_serializer_spec.rb +25 -0
- data/spec/serializers/spree/store_serializer_spec.rb +25 -0
- data/spec/serializers/spree/taxon_serializer_spec.rb +44 -0
- data/spec/serializers/spree/taxonomy_serializer_spec.rb +27 -0
- data/spec/serializers/spree/user_serializer_spec.rb +17 -0
- data/spec/serializers/spree/variant_serializer_spec.rb +55 -0
- data/spec/spec_helper.rb +51 -0
- data/spec/support/shoulda_matchers.rb +6 -0
- data/spree_api_v2.gemspec +36 -0
- metadata +437 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
module Spree
|
2
|
+
module Api
|
3
|
+
module V2
|
4
|
+
class VariantsController < Spree::Api::V2::BaseController
|
5
|
+
skip_before_action :authenticate_user
|
6
|
+
|
7
|
+
def index
|
8
|
+
render_collection variants.includes(:default_price, :prices, :option_values, :product, :images)
|
9
|
+
end
|
10
|
+
|
11
|
+
def show
|
12
|
+
if params[:price_id]
|
13
|
+
render_instance Spree::Price.find(params[:price_id]).variant
|
14
|
+
elsif params[:image_id]
|
15
|
+
render_instance Spree::Image.variants.find(params[:image_id]).viewable
|
16
|
+
else
|
17
|
+
render_instance variants.find(params[:id])
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def variants
|
24
|
+
if params[:product_id]
|
25
|
+
Spree::Product.find(params[:product_id]).variants_including_master
|
26
|
+
elsif params[:option_value_id]
|
27
|
+
Spree::OptionValue.find(params[:option_value_id]).variants
|
28
|
+
else
|
29
|
+
Spree::Variant
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Spree
|
2
|
+
class BaseSerializer < ActiveModel::Serializer
|
3
|
+
def image_links(object)
|
4
|
+
{
|
5
|
+
original: object.url(:original),
|
6
|
+
mini: object.url(:mini),
|
7
|
+
small: object.url(:small),
|
8
|
+
product: object.url(:product),
|
9
|
+
large: object.url(:large)
|
10
|
+
}
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Spree
|
2
|
+
class ErrorSerializer
|
3
|
+
attr_accessor :resource, :options
|
4
|
+
|
5
|
+
def initialize(resource, options = {})
|
6
|
+
@resource = resource
|
7
|
+
@options = options
|
8
|
+
end
|
9
|
+
|
10
|
+
def as_json
|
11
|
+
{ errors: error_messages }.to_json
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def resource_error_objects(messages)
|
17
|
+
messages.map do |title, detail|
|
18
|
+
if title.is_a?(Hash) && title[:title]
|
19
|
+
error_object title[:title], title[:detail]
|
20
|
+
else
|
21
|
+
pointer = "data/attributes/#{title.to_s.split('.').join('/')}"
|
22
|
+
error_object title.to_s.gsub('.', ' '), detail.to_sentence, pointer: pointer
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def error_messages
|
28
|
+
case resource
|
29
|
+
when Symbol
|
30
|
+
title_translation = Spree.t("api.errors.#{resource}.title")
|
31
|
+
detail_translation = Spree.t("api.errors.#{resource}.detail")
|
32
|
+
[error_object(title_translation, detail_translation)]
|
33
|
+
when Array
|
34
|
+
resource.map do |errors|
|
35
|
+
resource_error_objects errors
|
36
|
+
end.flatten
|
37
|
+
else
|
38
|
+
resource_error_objects resource.errors.messages
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def error_object(title, detail, pointer: '')
|
43
|
+
error = {
|
44
|
+
detail: detail.gsub("\n", ' ').strip,
|
45
|
+
meta: options,
|
46
|
+
title: title.to_s.titleize
|
47
|
+
}
|
48
|
+
|
49
|
+
pointer.present? ? error.merge(pointer: pointer) : error
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Spree
|
2
|
+
class LineItemSerializer < Spree::BaseSerializer
|
3
|
+
attributes :id, :quantity, :variant_id, :order_id, :currency, :cost_price,
|
4
|
+
:adjustment_total, :additional_tax_total, :price
|
5
|
+
|
6
|
+
%w(amount total).each do |money_method|
|
7
|
+
attributes money_method, "display_#{money_method}"
|
8
|
+
end
|
9
|
+
|
10
|
+
belongs_to :order
|
11
|
+
belongs_to :variant
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Spree
|
2
|
+
class OrderSerializer < Spree::BaseSerializer
|
3
|
+
attributes :email, :number, :state, :completed_at, :shipment_state,
|
4
|
+
:payment_state, :special_instructions, :currency, :channel,
|
5
|
+
:item_count, :approved_at, :confirmation_delivered,
|
6
|
+
:considered_risky, :canceled_at, :payment_total, :total,
|
7
|
+
:display_total
|
8
|
+
|
9
|
+
%w(
|
10
|
+
item adjustment shipment promo additional_tax included_tax
|
11
|
+
).each do |money_method|
|
12
|
+
attributes "#{money_method}_total", "display_#{money_method}_total"
|
13
|
+
end
|
14
|
+
|
15
|
+
has_one :user
|
16
|
+
has_one :bill_address
|
17
|
+
has_one :ship_address
|
18
|
+
|
19
|
+
has_many :line_items
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Spree
|
2
|
+
class ProductSerializer < Spree::BaseSerializer
|
3
|
+
attributes :name, :description, :slug, :meta_description, :meta_keywords
|
4
|
+
|
5
|
+
has_one :master
|
6
|
+
|
7
|
+
has_many :variants
|
8
|
+
has_many :taxons
|
9
|
+
has_many :option_types
|
10
|
+
has_many :images
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Spree
|
2
|
+
class TaxonSerializer < Spree::BaseSerializer
|
3
|
+
attributes :name, :permalink, :position, :description, :meta_title, :links,
|
4
|
+
:meta_description, :meta_keywords, :depth
|
5
|
+
|
6
|
+
belongs_to :taxonomy
|
7
|
+
belongs_to :parent, serializer: TaxonSerializer
|
8
|
+
has_many :children, serializer: TaxonSerializer
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def links
|
13
|
+
image_links object.icon
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Spree
|
2
|
+
class VariantSerializer < Spree::BaseSerializer
|
3
|
+
attributes :sku, :weight, :height, :width, :depth, :is_master, :position,
|
4
|
+
:name, :price, :display_price
|
5
|
+
|
6
|
+
has_many :prices
|
7
|
+
has_many :option_values
|
8
|
+
has_many :images
|
9
|
+
|
10
|
+
belongs_to :product
|
11
|
+
end
|
12
|
+
end
|
data/bin/rails
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
2
|
+
|
3
|
+
ENGINE_ROOT = File.expand_path('../..', __FILE__)
|
4
|
+
ENGINE_PATH = File.expand_path('../../lib/spree_api_v2/engine', __FILE__)
|
5
|
+
|
6
|
+
require 'rails/all'
|
7
|
+
require 'rails/engine/commands'
|
data/circle.yml
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
en:
|
2
|
+
spree:
|
3
|
+
api:
|
4
|
+
errors:
|
5
|
+
invalid_token:
|
6
|
+
detail: 'Your token is invalid, please use a different one.'
|
7
|
+
title: Invalid Token
|
8
|
+
order_complete:
|
9
|
+
detail: This order has been completed.
|
10
|
+
title: Order Complete
|
11
|
+
product_out_of_stock:
|
12
|
+
title: Product is out of Stock
|
13
|
+
detail: >
|
14
|
+
This product is out of stock for the selected quantity.
|
15
|
+
record_not_found:
|
16
|
+
title: Record Not Found
|
17
|
+
detail: >
|
18
|
+
One of the records that you were looking for could not be found.
|
19
|
+
Please check to see if the record exists or if you're permitted to
|
20
|
+
read it.
|
21
|
+
quantity_too_high:
|
22
|
+
title: Quantity is too High
|
23
|
+
detail: >
|
24
|
+
The quantity that you have submitted is astronomically high, please
|
25
|
+
tone it down a bit.
|
data/config/routes.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
Spree::Core::Engine.routes.draw do
|
2
|
+
namespace :api, defaults: { format: :json } do
|
3
|
+
namespace :v2 do
|
4
|
+
resources :countries, only: [:index, :show] do
|
5
|
+
resources :states, only: [:index, :show]
|
6
|
+
end
|
7
|
+
|
8
|
+
resources :images, only: [:index, :show] do
|
9
|
+
resource :product, :variant, only: :show
|
10
|
+
end
|
11
|
+
|
12
|
+
resources :line_items, only: :create
|
13
|
+
|
14
|
+
resources :option_types, only: [:index, :show] do
|
15
|
+
resources :option_values, :products, only: [:index, :show]
|
16
|
+
end
|
17
|
+
|
18
|
+
resources :option_values, only: [:index, :show] do
|
19
|
+
resource :option_type, only: :show
|
20
|
+
resources :variants, only: [:index, :show]
|
21
|
+
end
|
22
|
+
|
23
|
+
resources :orders, only: :show
|
24
|
+
|
25
|
+
resources :prices, only: [:index, :show] do
|
26
|
+
resource :variant, :product, only: :show
|
27
|
+
end
|
28
|
+
|
29
|
+
resources :products, only: [:index, :show] do
|
30
|
+
resources :option_types, :variants, :images, only: [:index, :show]
|
31
|
+
end
|
32
|
+
|
33
|
+
resources :states, only: [:index, :show] do
|
34
|
+
resource :country, only: :show
|
35
|
+
end
|
36
|
+
|
37
|
+
resources :taxonomies, only: [:index, :show] do
|
38
|
+
resources :taxons, only: [:index, :show]
|
39
|
+
end
|
40
|
+
|
41
|
+
resources :taxons, only: [:index, :show] do
|
42
|
+
resources :children, :products, only: [:index, :show]
|
43
|
+
resource :parent, only: :show, controller: 'taxons'
|
44
|
+
resource :taxonomy, only: :show
|
45
|
+
end
|
46
|
+
|
47
|
+
resources :variants, only: [:index, :show] do
|
48
|
+
resources :prices, :option_values, :images, only: [:index, :show]
|
49
|
+
resource :product, only: :show
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
data/docs/.nojekyll
ADDED
File without changes
|
data/docs/Dockerfile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
FROM ubuntu:trusty
|
2
|
+
|
3
|
+
RUN apt-get update
|
4
|
+
RUN apt-get install -yq ruby ruby-dev build-essential git
|
5
|
+
RUN gem install --no-ri --no-rdoc bundler
|
6
|
+
ADD Gemfile /app/Gemfile
|
7
|
+
ADD Gemfile.lock /app/Gemfile.lock
|
8
|
+
RUN cd /app; bundle install
|
9
|
+
ADD . /app
|
10
|
+
EXPOSE 4567
|
11
|
+
WORKDIR /app
|
12
|
+
CMD ["bundle", "exec", "middleman", "server"]
|
data/docs/Gemfile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
ruby '2.2.3'
|
3
|
+
|
4
|
+
# Middleman
|
5
|
+
gem 'middleman', '~>3.3.10'
|
6
|
+
gem 'middleman-gh-pages', '~> 0.0.3'
|
7
|
+
gem 'middleman-syntax', '~> 2.0.0'
|
8
|
+
gem 'middleman-autoprefixer', '~> 2.4.4'
|
9
|
+
gem 'rouge', '~> 1.9.0'
|
10
|
+
gem 'redcarpet', '~> 3.3.2'
|
11
|
+
|
12
|
+
gem 'rake', '~> 10.4.2'
|
13
|
+
gem 'therubyracer', '~> 0.12.2', platforms: :ruby
|
data/docs/README.md
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# Documentation for the Spree API V2
|
2
|
+
|
3
|
+
The documentation is hand written and forked from [Slate](https://github.com/tripit/slate).
|
4
|
+
Please update these docs when you make a contribution.
|
5
|
+
|
6
|
+
## Setup
|
7
|
+
|
8
|
+
```shell
|
9
|
+
cd docs
|
10
|
+
bundle
|
11
|
+
middleman server
|
12
|
+
```
|
data/docs/Rakefile
ADDED
data/docs/config.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
PROJECT_ROOT = File.expand_path '.'
|
2
|
+
BUILD_DIR = File.expand_path './../build'
|
3
|
+
|
4
|
+
# Markdown
|
5
|
+
set :markdown_engine, :redcarpet
|
6
|
+
set :markdown,
|
7
|
+
fenced_code_blocks: true,
|
8
|
+
smartypants: true,
|
9
|
+
disable_indented_code_blocks: true,
|
10
|
+
prettify: true,
|
11
|
+
tables: true,
|
12
|
+
with_toc_data: true,
|
13
|
+
no_intra_emphasis: true
|
14
|
+
|
15
|
+
# Assets
|
16
|
+
set :css_dir, 'stylesheets'
|
17
|
+
set :js_dir, 'javascripts'
|
18
|
+
set :images_dir, 'images'
|
19
|
+
set :fonts_dir, 'fonts'
|
20
|
+
|
21
|
+
# Activate the syntax highlighter
|
22
|
+
activate :syntax
|
23
|
+
|
24
|
+
activate :autoprefixer do |config|
|
25
|
+
config.browsers = ['last 2 version', 'Firefox ESR']
|
26
|
+
config.cascade = false
|
27
|
+
config.inline = true
|
28
|
+
end
|
29
|
+
|
30
|
+
# Github pages require relative links
|
31
|
+
activate :relative_assets
|
32
|
+
set :relative_links, true
|
33
|
+
|
34
|
+
# Build Configuration
|
35
|
+
set :build_dir, BUILD_DIR
|
36
|
+
configure :build do
|
37
|
+
activate :minify_css
|
38
|
+
activate :minify_javascript
|
39
|
+
end
|
@@ -0,0 +1,148 @@
|
|
1
|
+
{
|
2
|
+
"IcoMoonType": "selection",
|
3
|
+
"icons": [
|
4
|
+
{
|
5
|
+
"icon": {
|
6
|
+
"paths": [
|
7
|
+
"M438.857 73.143q119.429 0 220.286 58.857t159.714 159.714 58.857 220.286-58.857 220.286-159.714 159.714-220.286 58.857-220.286-58.857-159.714-159.714-58.857-220.286 58.857-220.286 159.714-159.714 220.286-58.857zM512 785.714v-108.571q0-8-5.143-13.429t-12.571-5.429h-109.714q-7.429 0-13.143 5.714t-5.714 13.143v108.571q0 7.429 5.714 13.143t13.143 5.714h109.714q7.429 0 12.571-5.429t5.143-13.429zM510.857 589.143l10.286-354.857q0-6.857-5.714-10.286-5.714-4.571-13.714-4.571h-125.714q-8 0-13.714 4.571-5.714 3.429-5.714 10.286l9.714 354.857q0 5.714 5.714 10t13.714 4.286h105.714q8 0 13.429-4.286t6-10z"
|
8
|
+
],
|
9
|
+
"attrs": [],
|
10
|
+
"isMulticolor": false,
|
11
|
+
"tags": [
|
12
|
+
"exclamation-circle"
|
13
|
+
],
|
14
|
+
"defaultCode": 61546,
|
15
|
+
"grid": 14
|
16
|
+
},
|
17
|
+
"attrs": [],
|
18
|
+
"properties": {
|
19
|
+
"id": 100,
|
20
|
+
"order": 4,
|
21
|
+
"prevSize": 28,
|
22
|
+
"code": 58880,
|
23
|
+
"name": "exclamation-sign",
|
24
|
+
"ligatures": ""
|
25
|
+
},
|
26
|
+
"setIdx": 0,
|
27
|
+
"iconIdx": 0
|
28
|
+
},
|
29
|
+
{
|
30
|
+
"icon": {
|
31
|
+
"paths": [
|
32
|
+
"M585.143 786.286v-91.429q0-8-5.143-13.143t-13.143-5.143h-54.857v-292.571q0-8-5.143-13.143t-13.143-5.143h-182.857q-8 0-13.143 5.143t-5.143 13.143v91.429q0 8 5.143 13.143t13.143 5.143h54.857v182.857h-54.857q-8 0-13.143 5.143t-5.143 13.143v91.429q0 8 5.143 13.143t13.143 5.143h256q8 0 13.143-5.143t5.143-13.143zM512 274.286v-91.429q0-8-5.143-13.143t-13.143-5.143h-109.714q-8 0-13.143 5.143t-5.143 13.143v91.429q0 8 5.143 13.143t13.143 5.143h109.714q8 0 13.143-5.143t5.143-13.143zM877.714 512q0 119.429-58.857 220.286t-159.714 159.714-220.286 58.857-220.286-58.857-159.714-159.714-58.857-220.286 58.857-220.286 159.714-159.714 220.286-58.857 220.286 58.857 159.714 159.714 58.857 220.286z"
|
33
|
+
],
|
34
|
+
"attrs": [],
|
35
|
+
"isMulticolor": false,
|
36
|
+
"tags": [
|
37
|
+
"info-circle"
|
38
|
+
],
|
39
|
+
"defaultCode": 61530,
|
40
|
+
"grid": 14
|
41
|
+
},
|
42
|
+
"attrs": [],
|
43
|
+
"properties": {
|
44
|
+
"id": 85,
|
45
|
+
"order": 3,
|
46
|
+
"name": "info-sign",
|
47
|
+
"prevSize": 28,
|
48
|
+
"code": 58882
|
49
|
+
},
|
50
|
+
"setIdx": 0,
|
51
|
+
"iconIdx": 2
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"icon": {
|
55
|
+
"paths": [
|
56
|
+
"M733.714 419.429q0-16-10.286-26.286l-52-51.429q-10.857-10.857-25.714-10.857t-25.714 10.857l-233.143 232.571-129.143-129.143q-10.857-10.857-25.714-10.857t-25.714 10.857l-52 51.429q-10.286 10.286-10.286 26.286 0 15.429 10.286 25.714l206.857 206.857q10.857 10.857 25.714 10.857 15.429 0 26.286-10.857l310.286-310.286q10.286-10.286 10.286-25.714zM877.714 512q0 119.429-58.857 220.286t-159.714 159.714-220.286 58.857-220.286-58.857-159.714-159.714-58.857-220.286 58.857-220.286 159.714-159.714 220.286-58.857 220.286 58.857 159.714 159.714 58.857 220.286z"
|
57
|
+
],
|
58
|
+
"attrs": [],
|
59
|
+
"isMulticolor": false,
|
60
|
+
"tags": [
|
61
|
+
"check-circle"
|
62
|
+
],
|
63
|
+
"defaultCode": 61528,
|
64
|
+
"grid": 14
|
65
|
+
},
|
66
|
+
"attrs": [],
|
67
|
+
"properties": {
|
68
|
+
"id": 83,
|
69
|
+
"order": 9,
|
70
|
+
"prevSize": 28,
|
71
|
+
"code": 58886,
|
72
|
+
"name": "ok-sign"
|
73
|
+
},
|
74
|
+
"setIdx": 0,
|
75
|
+
"iconIdx": 6
|
76
|
+
},
|
77
|
+
{
|
78
|
+
"icon": {
|
79
|
+
"paths": [
|
80
|
+
"M658.286 475.429q0-105.714-75.143-180.857t-180.857-75.143-180.857 75.143-75.143 180.857 75.143 180.857 180.857 75.143 180.857-75.143 75.143-180.857zM950.857 950.857q0 29.714-21.714 51.429t-51.429 21.714q-30.857 0-51.429-21.714l-196-195.429q-102.286 70.857-228 70.857-81.714 0-156.286-31.714t-128.571-85.714-85.714-128.571-31.714-156.286 31.714-156.286 85.714-128.571 128.571-85.714 156.286-31.714 156.286 31.714 128.571 85.714 85.714 128.571 31.714 156.286q0 125.714-70.857 228l196 196q21.143 21.143 21.143 51.429z"
|
81
|
+
],
|
82
|
+
"width": 951,
|
83
|
+
"attrs": [],
|
84
|
+
"isMulticolor": false,
|
85
|
+
"tags": [
|
86
|
+
"search"
|
87
|
+
],
|
88
|
+
"defaultCode": 61442,
|
89
|
+
"grid": 14
|
90
|
+
},
|
91
|
+
"attrs": [],
|
92
|
+
"properties": {
|
93
|
+
"id": 2,
|
94
|
+
"order": 1,
|
95
|
+
"prevSize": 28,
|
96
|
+
"code": 58887,
|
97
|
+
"name": "icon-search"
|
98
|
+
},
|
99
|
+
"setIdx": 0,
|
100
|
+
"iconIdx": 7
|
101
|
+
}
|
102
|
+
],
|
103
|
+
"height": 1024,
|
104
|
+
"metadata": {
|
105
|
+
"name": "slate",
|
106
|
+
"license": "SIL OFL 1.1"
|
107
|
+
},
|
108
|
+
"preferences": {
|
109
|
+
"showGlyphs": true,
|
110
|
+
"showQuickUse": true,
|
111
|
+
"showQuickUse2": true,
|
112
|
+
"showSVGs": true,
|
113
|
+
"fontPref": {
|
114
|
+
"prefix": "icon-",
|
115
|
+
"metadata": {
|
116
|
+
"fontFamily": "slate",
|
117
|
+
"majorVersion": 1,
|
118
|
+
"minorVersion": 0,
|
119
|
+
"description": "Based on FontAwesome",
|
120
|
+
"license": "SIL OFL 1.1"
|
121
|
+
},
|
122
|
+
"metrics": {
|
123
|
+
"emSize": 1024,
|
124
|
+
"baseline": 6.25,
|
125
|
+
"whitespace": 50
|
126
|
+
},
|
127
|
+
"resetPoint": 58880,
|
128
|
+
"showSelector": false,
|
129
|
+
"selector": "class",
|
130
|
+
"classSelector": ".icon",
|
131
|
+
"showMetrics": false,
|
132
|
+
"showMetadata": true,
|
133
|
+
"showVersion": true,
|
134
|
+
"ie7": false
|
135
|
+
},
|
136
|
+
"imagePref": {
|
137
|
+
"prefix": "icon-",
|
138
|
+
"png": true,
|
139
|
+
"useClassSelector": true,
|
140
|
+
"color": 4473924,
|
141
|
+
"bgColor": 16777215
|
142
|
+
},
|
143
|
+
"historySize": 100,
|
144
|
+
"showCodes": true,
|
145
|
+
"gridSize": 16,
|
146
|
+
"showLiga": false
|
147
|
+
}
|
148
|
+
}
|
Binary file
|