From 30b1b24a18ad00c5246f69bffa076ca0e14fad06 Mon Sep 17 00:00:00 2001 From: Mulia Arifandi Nasution Date: Fri, 19 Aug 2016 17:03:49 +0700 Subject: [PATCH 1/4] First commit --- placeholder | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 placeholder diff --git a/placeholder b/placeholder new file mode 100644 index 0000000..e69de29 From dc09f62a2155974cd2c8df95a51aac0c1c6fb80b Mon Sep 17 00:00:00 2001 From: Mulia Arifandi Nasution Date: Fri, 19 Aug 2016 17:03:53 +0700 Subject: [PATCH 2/4] Site updated: 2016-08-19 17:03:49 --- 2014/03/22/vuejs-010-release/index.html | 202 + 2014/07/29/vue-next/index.html | 185 + 2014/11/09/vue-011-release/index.html | 173 + 2014/12/08/011-component/index.html | 185 + 2015/06/11/012-release/index.html | 196 + 2015/10/26/1.0.0-release/index.html | 200 + 2015/10/28/why-no-template-url/index.html | 177 + 2015/12/28/vue-cli/index.html | 190 + 2016/02/06/common-gotchas/index.html | 186 + 2016/03/14/march-update/index.html | 182 + 2016/04/27/announcing-2.0/index.html | 192 + CNAME | 1 + api/index.html | 1712 +++ archives/2014/03/index.html | 307 + archives/2014/07/index.html | 307 + archives/2014/11/index.html | 307 + archives/2014/12/index.html | 307 + archives/2014/index.html | 307 + archives/2015/06/index.html | 307 + archives/2015/10/index.html | 307 + archives/2015/12/index.html | 307 + archives/2015/index.html | 307 + archives/2016/02/index.html | 307 + archives/2016/03/index.html | 307 + archives/2016/04/index.html | 307 + archives/2016/index.html | 307 + archives/index.html | 307 + archives/page/2/index.html | 307 + atom.xml | 431 + blog/index.html | 195 + css/benchmark.css | 39 + css/index.css | 771 ++ css/page.css | 835 ++ examples/commits.html | 195 + examples/elastic-header.html | 192 + examples/firebase.html | 195 + examples/grid-component.html | 195 + examples/hackernews.html | 199 + examples/index.html | 195 + examples/modal.html | 195 + examples/select2.html | 195 + examples/svg.html | 195 + examples/todomvc.html | 199 + examples/tree-view.html | 195 + guide/application.html | 291 + guide/class-and-style.html | 273 + guide/comparison.html | 292 + guide/components.html | 573 + guide/computed.html | 287 + guide/conditional.html | 264 + guide/custom-directive.html | 338 + guide/custom-filter.html | 279 + guide/events.html | 323 + guide/forms.html | 426 + guide/index.html | 360 + guide/installation.html | 264 + guide/instance.html | 270 + guide/join.html | 262 + guide/list.html | 381 + guide/mixins.html | 256 + guide/overview.html | 311 + guide/plugins.html | 279 + guide/reactivity.html | 281 + guide/syntax.html | 314 + guide/transitions.html | 475 + images/chaitin.png | Bin 0 -> 7098 bytes images/check.png | Bin 0 -> 363 bytes images/components.png | Bin 0 -> 16239 bytes images/data.png | Bin 0 -> 100519 bytes images/down.png | Bin 0 -> 1503 bytes images/feed.png | Bin 0 -> 1434 bytes images/hn.png | Bin 0 -> 277740 bytes images/htmlburger.png | Bin 0 -> 28899 bytes images/icons.png | Bin 0 -> 7829 bytes images/itunescn.png | Bin 0 -> 4913 bytes images/jsfiddle.png | Bin 0 -> 7561 bytes images/juejin.png | Bin 0 -> 14806 bytes images/laravel.png | Bin 0 -> 15194 bytes images/lifecycle.png | Bin 0 -> 116787 bytes images/logo.png | Bin 0 -> 11460 bytes images/menu.png | Bin 0 -> 193 bytes images/mvvm.png | Bin 0 -> 43685 bytes images/patreon.png | Bin 0 -> 5626 bytes images/paypal.png | Bin 0 -> 1704 bytes images/search.png | Bin 0 -> 2023 bytes images/someline.png | Bin 0 -> 10459 bytes images/state.png | Bin 0 -> 35653 bytes images/strikingly.png | Bin 0 -> 9863 bytes images/vue-component-with-pre-processors.png | Bin 0 -> 121770 bytes images/vue-component.png | Bin 0 -> 127196 bytes index.html | 272 + js/common.js | 209 + js/smooth-scroll.min.js | 2 + js/vue.js | 10073 +++++++++++++++++ js/vue.min.js | 9 + page/2/index.html | 307 + perf/index.html | 114 + placeholder | 0 support-vuejs/index.html | 110 + 99 files changed, 30702 insertions(+) create mode 100644 2014/03/22/vuejs-010-release/index.html create mode 100644 2014/07/29/vue-next/index.html create mode 100644 2014/11/09/vue-011-release/index.html create mode 100644 2014/12/08/011-component/index.html create mode 100644 2015/06/11/012-release/index.html create mode 100644 2015/10/26/1.0.0-release/index.html create mode 100644 2015/10/28/why-no-template-url/index.html create mode 100644 2015/12/28/vue-cli/index.html create mode 100644 2016/02/06/common-gotchas/index.html create mode 100644 2016/03/14/march-update/index.html create mode 100644 2016/04/27/announcing-2.0/index.html create mode 100644 CNAME create mode 100644 api/index.html create mode 100644 archives/2014/03/index.html create mode 100644 archives/2014/07/index.html create mode 100644 archives/2014/11/index.html create mode 100644 archives/2014/12/index.html create mode 100644 archives/2014/index.html create mode 100644 archives/2015/06/index.html create mode 100644 archives/2015/10/index.html create mode 100644 archives/2015/12/index.html create mode 100644 archives/2015/index.html create mode 100644 archives/2016/02/index.html create mode 100644 archives/2016/03/index.html create mode 100644 archives/2016/04/index.html create mode 100644 archives/2016/index.html create mode 100644 archives/index.html create mode 100644 archives/page/2/index.html create mode 100644 atom.xml create mode 100644 blog/index.html create mode 100644 css/benchmark.css create mode 100644 css/index.css create mode 100644 css/page.css create mode 100644 examples/commits.html create mode 100644 examples/elastic-header.html create mode 100644 examples/firebase.html create mode 100644 examples/grid-component.html create mode 100644 examples/hackernews.html create mode 100644 examples/index.html create mode 100644 examples/modal.html create mode 100644 examples/select2.html create mode 100644 examples/svg.html create mode 100644 examples/todomvc.html create mode 100644 examples/tree-view.html create mode 100644 guide/application.html create mode 100644 guide/class-and-style.html create mode 100644 guide/comparison.html create mode 100644 guide/components.html create mode 100644 guide/computed.html create mode 100644 guide/conditional.html create mode 100644 guide/custom-directive.html create mode 100644 guide/custom-filter.html create mode 100644 guide/events.html create mode 100644 guide/forms.html create mode 100644 guide/index.html create mode 100644 guide/installation.html create mode 100644 guide/instance.html create mode 100644 guide/join.html create mode 100644 guide/list.html create mode 100644 guide/mixins.html create mode 100644 guide/overview.html create mode 100644 guide/plugins.html create mode 100644 guide/reactivity.html create mode 100644 guide/syntax.html create mode 100644 guide/transitions.html create mode 100644 images/chaitin.png create mode 100644 images/check.png create mode 100644 images/components.png create mode 100644 images/data.png create mode 100644 images/down.png create mode 100644 images/feed.png create mode 100644 images/hn.png create mode 100644 images/htmlburger.png create mode 100644 images/icons.png create mode 100644 images/itunescn.png create mode 100644 images/jsfiddle.png create mode 100644 images/juejin.png create mode 100644 images/laravel.png create mode 100644 images/lifecycle.png create mode 100644 images/logo.png create mode 100644 images/menu.png create mode 100644 images/mvvm.png create mode 100644 images/patreon.png create mode 100644 images/paypal.png create mode 100644 images/search.png create mode 100644 images/someline.png create mode 100644 images/state.png create mode 100644 images/strikingly.png create mode 100644 images/vue-component-with-pre-processors.png create mode 100644 images/vue-component.png create mode 100644 index.html create mode 100644 js/common.js create mode 100644 js/smooth-scroll.min.js create mode 100644 js/vue.js create mode 100644 js/vue.min.js create mode 100644 page/2/index.html create mode 100644 perf/index.html delete mode 100644 placeholder create mode 100644 support-vuejs/index.html diff --git a/2014/03/22/vuejs-010-release/index.html b/2014/03/22/vuejs-010-release/index.html new file mode 100644 index 0000000..4f73aaa --- /dev/null +++ b/2014/03/22/vuejs-010-release/index.html @@ -0,0 +1,202 @@ + + + + + Vue.js 0.10 is here! - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

Vue.js 0.10 is here!

+

Mar 22, 2014

+

Vue.js 0.10.0 (Blade Runner) has been released! This release comes with many useful additions based on the suggestions from the users, notably interpolation in literal directives, dynamic components with the new v-view directive, array filters, and the option to configure interpolation delimiters. Internally, the codebase has received many refactoring and improvements which makes Vue.js even faster.

+ +

See the Installation page for the latest builds.

+

New

    +
  • Literal directives can now contain interpolation tags. These tags will be evaluated only once at compile time. An example usage is conditionally decide which component to instantiate with v-component="{{type}}". Doc.
  • +
  • Attributes listed in the paramAttributes option now accept mustache interpolations too. They will also only be evaluated once.
  • +
  • v-repeat now accepts an argument which will be used as the identifier for the wrapped object. This allows more explicit property access in repeaters. Doc.
  • +
  • Added v-view directive which binds to a string value and dynamically instantiate different components using that string as the component ID. Doc.
  • +
  • Added filterBy and orderBy filters for v-repeat. Doc.
  • +
  • Custom filters that access properties on its this context will be considered computed filters. Doc.
  • +
  • You can now access the event in v-on handler expressions as $event. Example: <a v-on="click:handle('hello', $event)">Hello</a>
  • +
  • Interpolation delimiters can now be customized via the delimiters global config option. Example: Vue.config({ delimiters: ["[", "]"] }) will change the matched interpolation tags to [[ ]] for text bindings and [[[ ]]] for html bindings.
  • +
+

Changed

    +
  • {{>yield}} syntax has been deprecated. A Web Components spec compatible content insertion mechanism using <content> elements has been introduced. Doc.
  • +
  • To use a component as a custom element, the component ID must now contain a hyphen (-). This is consistent with the current custom element spec draft.
  • +
  • v-repeat Arrays’ augmented methods have been renamed from set to $set(index, value) and remove to $remove(index | value). The prefix better differentiates them from native methods. The replace method has been removed.
  • +
  • When iterating over an Object with v-repeat, the object no longer gets a $repeater array. Instead, the object is now augmented with two methods: $add(key, value) and $delete(key), which will trigger corresponding view updates.
  • +
  • v-if now creates and destroys a child ViewModel instance when the binding value changes, instead of simply removing/inserting the DOM node. In addition, it can no longer be used with v-repeat. Use v-show or the new built-in array filters instead.
  • +
  • v-with can no longer be used alone. It now must be used with either v-component or v-view. v-component can also be used as an empty directive just to create a child VM using the default Vue constructor.
  • +
  • Production build now strips all warnings and debug logs. To leverage debug: true, use the development version. The development version now has more detailed warning messages.
  • +
+

Fixed

    +
  • event.stopPropagation() and event.preventDefault() inside v-on handlers now work as expected.
  • +
  • parent option now works properly when used in Vue.extend
  • +
  • Mustache bindings inside <textarea> are now properly interpolated before being set as value.
  • +
+

Internal

    +
  • v-component, v-with and v-if have been re-written for a cleaner compile flow.
  • +
  • v-repeat has been re-written to use refined diff algorithm which triggers minimum DOM manipulations when the array is set to a different instance containing overlapping elements. This makes it efficient to pipe an Array through filters.
  • +
  • template option now directly clones native <template>‘s content when available.
  • +
  • Overall performance improvements for both initialization and rendering.
  • +
+ +
+ + +
+ + + + + + + + + diff --git a/2014/07/29/vue-next/index.html b/2014/07/29/vue-next/index.html new file mode 100644 index 0000000..dcab710 --- /dev/null +++ b/2014/07/29/vue-next/index.html @@ -0,0 +1,185 @@ + + + + + Vue.js 0.10.6, and what's next - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

Vue.js 0.10.6, and what's next

+

Jul 29, 2014

+

0.10.6

Vue.js 0.10.6 has been released! This is another small bug-fix release and will be the last maintainance version before the next major release.

+ +
    +
  • fix v-style error when value is falsy or a number. ( thanks to @dmfilipenko )
  • +
  • fix the built-in currency filter error when value is a string ( thanks to @dmfilipenko )
  • +
  • fix Vue.require for building with Component v1.0+ ( thanks to @kewah )
  • +
  • Allow template nodes to be passed as a template option ( thanks to @jordangarcia )
  • +
  • vm.$destroy() now accepts an optional argument noRemove. When passed in as true it will leave the vm’s DOM node intact after the vm is destroyed.
  • +
+

Vue-next

Some of you might have noticed there is a next branch in the repo. And yes, I am re-writing Vue.js from scratch. There are two main reasons:

+
    +
  • Fix some issues that are caused by design flaws in the current version. Because these changes affect the design of some core modules, it is actually easier to rewrite than to apply on the current codebase.
  • +
  • Improve general code quality (in particular, compiler.js as of now is a big pile of mess, and comments are not consistent across the codebase.)
  • +
+

Take note that the next branch is still in very early stage. The internals will change a lot, and when it comes out it will break current applications. Despite that I will try to keep the API changes to a minimum. Major differences with current 0.10 branch are documented in changes.md. The list is obviously incomplete and subject to change, some of them are simply ideas, but it at least gives you a taste of what to expect, and I’d appreicate your feedback on any of the topics.

+

Share your thoughts at vuejs/Discussion.

+ +
+ + +
+ + + + + + + + + diff --git a/2014/11/09/vue-011-release/index.html b/2014/11/09/vue-011-release/index.html new file mode 100644 index 0000000..96cc065 --- /dev/null +++ b/2014/11/09/vue-011-release/index.html @@ -0,0 +1,173 @@ + + + + + Vue.js 0.11 released! - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

Vue.js 0.11 released!

+

Nov 9, 2014

+

After the long wait, Vue.js 0.11 Cowboy Bebop is finally here! Thanks to everyone who tried out the release candidate versions and provided feedback / bug reports along the way.

+ +

The 0.11 release introduced many new features and also a fair number of breaking changes, so please carefully read through the 0.11 Change List before upgrading. Aside from the API changes, 0.11 also ships with better code quality and test coverage, and is considerably more robust in almost every aspect.

+

This documentation site has been fully upgraded to match the new 0.11 API. For the now legacy 0.10.6 version, you can still find documentations for it at legacy.vuejs.org.

+ +
+ + +
+ + + + + + + + + diff --git a/2014/12/08/011-component/index.html b/2014/12/08/011-component/index.html new file mode 100644 index 0000000..21efc28 --- /dev/null +++ b/2014/12/08/011-component/index.html @@ -0,0 +1,185 @@ + + + + + 0.11 Component Tips - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

0.11 Component Tips

+

Dec 8, 2014

+

Note: this post contains information for the outdated 0.11 version. Please refer to the 0.12 release notes for the changes in the API.

+ +

The release of 0.11 introduced many changes, but the most important one is how the new component scope works. Previously in 0.10.x, components have inherited scope by default. That means in a child component template you can reference parent scope properties. This often leads to tightly-coupled components, where a child component assumes knowledge of what properties are present in the parent scope. It is also possible to accidentally refer to a parent scope property in a child component.

+ +

Isolated Scope and Data Passing

Starting in 0.11, all child components have isolated scope by default, and the recommended way to control component data access is via Explicit Data Passing using v-with or paramAttributes.

+

paramAttributes enables us to write Web Component style templates:

+
Vue.component('my-component', {
paramAttributes: ['params'],
compiled: function () {
console.log(this.params) // passed from parent
}
})
+
<my-component params="{{params}}"></my-component>
+

Where Does It Belong?

Previously in 0.10, all directives on a component’s container element are compiled in the child component’s scope. Because it inherited parent scope, this worked in most situations. Starting in 0.11.1, we want to provide a cleaner separation between component scopes. The rule of thumbs is: if something appears in the parent template, it will be compiled in parent scope; if it appears in child template, it will be compiled in child scope. For example:

+
<!-- parent template -->
<div v-component="child" v-on="click:onParentClick">
<p>{{parentMessage}}</p>
</div>
+
<!-- child template, with replace: true -->
<div v-on="click:onChildClick">
<h1>{{childMessage}}</h1>
<content></content>
</div>
+

Everything in the parent template will be compiled in the parent’s scope, including the content that’s going to be inserted into the child component.

+

The only exception to the rule is v-with (and paramAttributes which compiles down to v-with), which works in both places - so you don’t need to worry about it too much.

+

Cleaner Event Communication

Previously the standard way for a child component to communicate to its parent is via dispatching events. However, with this approach, the event listeners on the parent component are not guaranteed to be listening on the desired child component only. It’s also possible to trigger undesired listners further up the chain if we do not cancel the event.

+

The most common use case is for a parent to react to the events from a specific, direct child component. So in 0.11.4, a new directive v-events has been introduced to enable exactly this behavior.

+

0.11.4 has already been released, go try it out!

+ +
+ + +
+ + + + + + + + + diff --git a/2015/06/11/012-release/index.html b/2015/06/11/012-release/index.html new file mode 100644 index 0000000..3bb08bb --- /dev/null +++ b/2015/06/11/012-release/index.html @@ -0,0 +1,196 @@ + + + + + Vue.js 0.12 released! - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

Vue.js 0.12 released!

+

Jun 11, 2015

+

I’m really excited to announce that Vue.js 0.12: Dragon Ball is finally here! Thanks to everyone who tried out the beta/rc versions and provided feedback / bug reports along the way.

+

There’s a lot to cover in this release, and we will talk about a few highlights below. However, it is still recommended to carefully go through the Full Release Note and updated docs if you are upgrading from 0.11. You can report bugs on GitHub, send questions to vuejs/Discussion, or join us in the Gitter chat channel.

+ +

More Consistent Component Syntax

Previously in 0.11 you have two ways to use a Vue.js component: using the v-component directive, or using custom elements. There are also two ways to pass data down to child components: using the v-with directive, or using the paramAttributes option. Although both custom elements and param attributes get compiled down to directives eventually, it is confusing and redundant to have two sets of syntax for the same functionality.

+

In addition, it should be noted that the component system is a first-class concept in Vue.js, even more important than directives. It defines how we encapsulate our higher-level view logic and compose our application. In the meanwhile, having a clear and declarative way to pass data into child components is also very important. Components and param attributes really deserve their own dedicated syntax to differentiate from other directives.

+

As a result, v-component and v-with have been deprecated in 0.12. paramAttributes has also been renamed to props, which is shorter and cleaner. From now on, most Vue.js components will look like this:

+
<my-component prop="{{parentData}}"></my-component>
+

There are also additional props-related improvements such as explicit one-time or one-way props, expression as props, methods as prop callbacks and more. You can find out more details in the 0.12 release notes linked above and the updated Component System section of the guide.

+

Filter Arguments Improvements

In 0.11, filters always receive their arguments as plain strings. An argument can be enclosed in quotes to include whitespace, but the quotes are not automatically stripped when passed into the filter function. Some users were also confused about how to retrive a dynamic value on the vm instead of a plain string.

+

In 0.12, the filter argument syntax now follows a simple rule: if an argument is enclosed in quotes, it will be passed in as a plain string; otherwise, it will be evaluated against the current vm as a dynamic value.

+

This means the usage of some existing filters will have to change:

+
<a v-on="keyup: onKeyUp | key 'enter'"></a>
{{ items.length | pluralize 'item' }}
+

But it would make custom filters that rely on dynamic values much easier to write:

+
{{ msg | concat otherMsg }}
+

Here the first argument to the concat filter will be the value of this.otherMsg.

+

Asynchronous Components

It is common practice to bundle all the JavaScript into one file when building large single page applications. But when the file becomes too large, we may want to defer loading parts of our application for a faster initial load. However, this does pose some constraints on how the application architecture should be designed. It could be very tricky to figure out how to properly split up your JavaScript bundles.

+

Well, with Vue.js we can already build our applications as decoupled components. If we can lazily load a dynamic component only when it is needed, wouldn’t it be awesome? As a matter of fact, in 0.12 this would be trivially easy with the new Asynchronous Component feature.

+

In 0.12, you can define a component as a factory function that asynchronously resolves a component definition (can be just a plain options object). Vue.js will only trigger the factory function when the component actually needs to be rendered, and will cache the result for future re-renders:

+
Vue.component('async-example', function (resolve, reject) {
setTimeout(function () {
resolve({
template: '<div>I am async!</div>'
})
}, 1000)
})
+

It is up to you to decide how to load the component from the server, e.g. $.getScript() or require.js; but the recommended usage is to pair it up with Webpack’s Code Splitting feature:

+
Vue.component('async-webpack-example', function (resolve, reject) {
// In Webpack AMD like syntax indicates a code split point
require(['./my-async-component'], resolve)
})
+

That’s all you need to do. You can use the component just like before, without even thinking about it being async. Webpack will automatically split your final JavaScript into separate bundles with correct dependencies, and automatically load a bundle via Ajax when it is required. You can check out a fully functional example here.

+

Improved Transition System

Vue.js’ transition system is really easy to use, but in the past it has the limitation that you cannot mix CSS and JavaScript-based transitions together. In 0.12 that is no longer the case! The improved transition system now allows you to add JavaScript hooks to a CSS-based transition for additional control. The amount of hooks exposed have also been expanded to give you finer-grained control at every stage of the transition.

+

v-repeat now also ships with built-in support for staggering transitions. It is as simple as adding stagger="100" to your repeated element. It is also possible to define separate staggering for enter and leaving, or even dynamically calculate the staggering delay in a JavaScript hook.

+

For full details on the new transition system, check out the updated guide.

+

Performance Tuning

Vue.js’ precise dependency tracking makes it the one of the most efficient view layer for small hot updates, but there’s always room for improvement. In 0.12, internal instance creation and compilation refactors have improved first-render performance for large lists by up to 40%. With proper track-by usage, re-rendering with large, brand new dataset is also comparable to, or even faster than other Virtual-DOM based frameworks.

+

One More Thing…

With 0.12 out of the door, more efforts will now be spent on the official vue-router, a dedicated routing library for Vue.js with nested view matching, full transition support, and asynchronous data hooks. I have expressed that Vue.js core intends to stay as a no-frills, drop-in view layer library, and that will not change. The vue-router will be shipped separately and is totally optional, however you can expect it to work seamlessly with Vue.js core when you need it.

+ +
+ + +
+ + + + + + + + + diff --git a/2015/10/26/1.0.0-release/index.html b/2015/10/26/1.0.0-release/index.html new file mode 100644 index 0000000..3aa7386 --- /dev/null +++ b/2015/10/26/1.0.0-release/index.html @@ -0,0 +1,200 @@ + + + + + Vue.js 1.0.0 Released - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

Vue.js 1.0.0 Released

+

Oct 26, 2015

+
+

Hi HN! If you are not familiar with Vue.js, you might want to read this blog post for a higher level overview.

+
+

After 300+ commits, 8 alphas, 4 betas and 2 release candidates, today I am very proud to announce the release of Vue.js 1.0.0 Evangelion! Many thanks to all those who participated in the API re-design process - it would not have been possible without all the input from the community.

+ +

Improved Template Syntax

The 1.0 template syntax resolves a lot of subtle consistency issues and makes Vue templates more concise and more readable in general. The most notable new feature is the shorthand syntax for v-on and v-bind:

+
<!-- short for v-bind:href -->
<a :href="someURL"></a>
<!-- short for v-on:click -->
<button @click="onClick"></button>
+

When used on a child component, v-on listens for custom events and v-bind can be used to bind props. The shorthands using child components very succinct:

+
<item-list
:items="items"
@ready="onItemsReady"
@update="onItemsUpdate">
</item-list>
+

API Cleanup

The overall goal for Vue.js 1.0 is to make it suitable for larger projects. This is why there are many API deprecations. Except for ones that are barely used, the most common reason for a deprecation is that the feature leads to patterns that damages maintainability. Specifically, we are deprecating features that make it hard to maintain and refactor a component in isolation without affecting the rest of the project.

+

For example, the default asset resolution in 0.12 has implicit fallbacks to parents in the component tree. This makes the assets available to a component non-deterministic and subject how it is used at runtime. In 1.0, all assets are now resolved in strict mode and there are no longer implicit fallbacks to parent. The inherit option is also removed, because it too often leads to tightly coupled components that are hard to refactor.

+

Faster Initial Rendering

1.0 replaces the old v-repeat directive with v-for. In addition to providing the same functionality and more intuitive scoping, v-for provides up to 100% initial render performance boost when rendering large lists and tables!

+

More Powerful Tooling

There are also exciting things going on outside of Vue.js core - vue-loader and vueify have received major upgrades including:

+
    +
  • Hot component reloading. When a *.vue component is edited, all of its active instances are hot swapped without reloading the page. This means when making small changes, e.g. tweaking the styles or the template, your app doesn’t need to fully reload; the state of the app the swapped component can be preserved, drastically improving the development experience.

    +
  • +
  • Scoped CSS. By simply adding a scoped attribute to your *.vue component style tags, the component’s template and final generated CSS are magically re-written to ensure a component’s styles are only applied to its own elements. Most importantly, the styles specified in a parent component does not leak down to child components nested within it.

    +
  • +
  • ES2015 by default. JavaScript is evolving. You can write much cleaner and expressive code using the latest syntax. vue-loader and vueify now transpiles the JavaScript in your *.vue components out of the box, without the need for extra setup. Write future JavaScript today!

    +
  • +
+

Combined with vue-router, Vue.js is now more than a library - it provides a solid foundation for building complex SPAs.

+

What’s Next?

As what 1.0.0 usually suggests, the core API will stay stable for the foreseeable future and the library is ready for production use. Future development will focus on:

+
    +
  1. Improving vue-router and make it production ready.

    +
  2. +
  3. Streamlining the developer experience, e.g. a better devtool and a CLI for scaffolding Vue.js projects and components.

    +
  4. +
  5. Providing more learning resources such as tutorials and examples.

    +
  6. +
+ +
+ + +
+ + + + + + + + + diff --git a/2015/10/28/why-no-template-url/index.html b/2015/10/28/why-no-template-url/index.html new file mode 100644 index 0000000..c5d3fce --- /dev/null +++ b/2015/10/28/why-no-template-url/index.html @@ -0,0 +1,177 @@ + + + + + Why Vue.js doesn't support templateURL - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

Why Vue.js doesn't support templateURL

+

Oct 28, 2015

+

A very common question from new Vue users, especially those who used Angular before, is “can I have templateURL?”. I have answered this so many times and I figure it’s better to write something about it.

+ +

In Angular, templateURL or ng-include allows the user to dynamically load a remote template file at runtime. This seems pretty convenient as a built-in feature, but let’s rethink what problem it solves.

+

First, it allows us to write our template in a separate HTML file. This gives us proper syntax highlighting in editors, which is probably why many prefer to do so. But is splitting your JavaScript code and the template really the best way? For a Vue.js component, its template and its JavaScript is tightly coupled by nature - it’s in fact much simpler if things are just in the same file. The context switching of jumping back and forth between two files actually makes the development experience much worse. Conceptually, components are the basic building block of a Vue.js app, not templates. Every Vue.js template is coupled to an accompanying JavaScript context - there’s no point in splitting them further apart.

+

Second, because templateURL loads the template via Ajax at runtime, you don’t need a build step in order to split up your files. This is convenient during development, but comes at a serious cost when you want to deploy it to production. Before HTTP/2 is universally supported, the number of HTTP requests is still probably the most critical factor in your app’s initial load performance. Now imagine you use templateURL for every component in your app - the browser needs to perform dozens of HTTP requests before even being able to display anything! In case you don’t know, most browsers limit the number of parallel requests it can perform to a single server. When you exceed that limit, your app’s initial rendering will suffer for every extra round trip the browser has to wait for. Sure, there are build tools that can help you pre-register all those templates in $templateCache - but that shows us a build step is, in fact, inevitable for any serious frontend development.

+

So, without templateURL, how do we deal with the development experience problem? Writing templates as inline JavaScript strings is terrible, faking templates with <script type="x/template"> also feels like a hack. Well, maybe it’s time to up the game a bit and use a proper module bundler like Webpack or Browserify. It might seem daunting if you’ve never dealt with them before, but trust me it’s worth it to take the leap. Proper modularization is a necessity if you want to build anything large and maintainable. More importantly, you get to write your Vue components in a single file, with proper syntax highlighting and the extra benefits of custom pre-processors, hot-reloading, ES2015 by default, autoprefixing and scoped CSS, which makes the development experience 10 times better.

+

Finally, Vue does allow you to lazy load your components, and with Webpack it is trivially easy. Although this is only a concern when your initial bundle is so large that you are better off splitting it apart.

+

Think in components, not templates.

+ +
+ + +
+ + + + + + + + + diff --git a/2015/12/28/vue-cli/index.html b/2015/12/28/vue-cli/index.html new file mode 100644 index 0000000..1375d76 --- /dev/null +++ b/2015/12/28/vue-cli/index.html @@ -0,0 +1,190 @@ + + + + + Announcing vue-cli - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

Announcing vue-cli

+

Dec 28, 2015

+

Recently there has been a lot of discussion around the tooling hurdle when you start a React project. Luckily for Vue.js, all you need to do to start with a quick prototype is including it from a CDN via a <script> tag, so we’ve got that part covered. However, that’s not how you’d build a real world application. In real world applications we inevitably need a certain amount of tooling to give us modularization, transpilers, pre-processors, hot-reload, linting and testing. These tools are necessary for the long-term maintainability and productivity of large projects, but the initial setup can be a big pain. This is why we are announcing vue-cli, a simple CLI tool to help you quickly scaffold Vue.js projects with opinionated, battery-included build setups.

+ +

Just The Scaffolding

The usage looks like this:

+
npm install -g vue-cli
vue init webpack my-project
# answer prompts
cd my-project
npm install
npm run dev # tada!
+

All the CLI does is pulling down templates from the vuejs-templates organization on GitHub. Dependencies are handled via NPM, and build tasks are simply NPM scripts.

+

Official Templates

The purpose of official Vue project templates is providing opinionated, battery-included development tooling setups so that users can get started with actual app code as fast as possible. However, these templates are un-opinionated in terms of how you structure your app code and what libraries you use in addition to Vue.js.

+

All official project templates are repos in the vuejs-templates organization. When a new template is added to the organization, you will be able to run vue init <template-name> <project-name> to use that template. You can also run vue list to see all available official templates.

+

Current available templates include:

+
    +
  • browserify - A full-featured Browserify + vueify setup with hot-reload, linting & unit testing.

    +
  • +
  • browserify-simple - A simple Browserify + vueify setup for quick prototyping.

    +
  • +
  • webpack - A full-featured Webpack + vue-loader setup with hot reload, linting, testing & css extraction.

    +
  • +
  • webpack-simple - A simple Webpack + vue-loader setup for quick prototyping.

    +
  • +
+

Bring Your Own Setup

If you are not happy with the official templates, you can fork these templates, modify them to fit your specific needs (or even create your own from scratch), and use them via vue-cli too, because vue-cli can work directly on GitHub repos:

+
vue init username/repo my-project
+

Vue Components Everywhere

There are different templates for different purposes: simple setups for quick prototyping, and full-featured setups for ambitious applications. A common feature among these templates though, is that they all support *.vue single file components. This means any third party Vue components written as valid *.vue files can be shared among projects using these setups, and simply be distributed over NPM - let’s create more reusable components!

+ +
+ + +
+ + + + + + + + + diff --git a/2016/02/06/common-gotchas/index.html b/2016/02/06/common-gotchas/index.html new file mode 100644 index 0000000..e8f3e3a --- /dev/null +++ b/2016/02/06/common-gotchas/index.html @@ -0,0 +1,186 @@ + + + + + Common Beginner Gotchas - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

Common Beginner Gotchas

+

Feb 6, 2016

+

There are few types of questions that we frequently see from users who are new to Vue.js. Although they are all mentioned somewhere in the guide, they are easy to miss and can be hard to find when you do get bitten by the gotchas. Therefore we are aggregating them in this post and hopefully it can save you some time!

+ +

Why isn’t the DOM updating?

Most of the time, when you change a Vue instance’s data, the view updates. But there are two edge cases:

+
    +
  1. When you are adding a new property that wasn’t present when the data was observed. Due to the limitation of ES5 and to ensure consistent behavior across browsers, Vue.js cannot detect property addition/deletions. The best practice is to always declare properties that need to be reactive upfront. In cases where you absolutely need to add or delete properties at runtime, use the global Vue.set or Vue.delete methods.

    +
  2. +
  3. When you modify an Array by directly setting an index (e.g. arr[0] = val) or modifying its length property. Similarly, Vue.js cannot pickup these changes. Always modify arrays by using an Array instance method, or replacing it entirely. Vue provides a convenience method arr.$set(index, value) which is just syntax sugar for arr.splice(index, 1, value).

    +
  4. +
+

Further reading: Reactivity in Depth and Array Change Detection.

+

When is the DOM updated?

Vue.js uses an asynchronous queue to batch DOM updates. This means when you modify some data, the DOM updates do not happen instantly: they are applied asynchronously when the queue is flushed. So how do you know when the DOM has been updated? Use Vue.nextTick right after you modify the data. The callback function you pass to it will be called once the queue has been flushed.

+

Further reading: Async Update Queue.

+

Why does data need to be a function?

In the basic examples, we declare the data directly as a plain object. This is because we are creating only a single instance with new Vue(). However, when defining a component, data must be declared as a function that returns the initial data object. Why? Because there will be many instances created using the same definition. If we still use a plain object for data, that same object will be shared by reference across all instance created! By providing a data function, every time a new instance is created, we can simply call it to return a fresh copy of the initial data.

+

Further reading: Component Option Caveats.

+

HTML case insensitivity

All Vue.js templates are valid, parsable HTML markup, and Vue.js relies on spec-compliant parsers to process its templates. However, as specified in the standard, HTML is case-insensitive when matching tag and attribute names. This means camelCase attributes like :myProp="123" will be matched as :myprop="123". As a rule of thumb, you should use camelCase in JavaScript and kebab-case in templates. For example a prop defined in JavaScript as myProp should be bound in templates as :my-prop.

+

Further reading: camelCase vs. kebab-case.

+

We are also discussing the possibility of eliminating this inconsistency by resolving props and components in a case-insensitive manner. Join the conversation here.

+ +
+ + +
+ + + + + + + + + diff --git a/2016/03/14/march-update/index.html b/2016/03/14/march-update/index.html new file mode 100644 index 0000000..717d865 --- /dev/null +++ b/2016/03/14/march-update/index.html @@ -0,0 +1,182 @@ + + + + + March 2016 Update - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

March 2016 Update

+

Mar 14, 2016

+

Growing Community

Vue’s growth in the past year has been nothing short of amazing. As of today we are at over 15,000 stars on GitHub, over 500k downloads from npm, and over 2,000 users in the Gitter channel. What’s more exciting though, is that the community successfully organized the first London Vue.js Meetup and the first Paris Vue.js Meetup! A big shoutout to the awesome organizers: Jack, James and Eduardo.

+ +

If you are interested in connecting with Vue.js users near you and share your experiences in using Vue.js, joining a local Meetup is a great idea - even better, maybe you can organize one :)

+

Cool Things Being Built

More and more amazing things are being built with Vue. There are products like PageKit, Laravel Spark (coming soon) and Statamic, sleek apps like Koel and Gokotta, UI components like VueStrap and Vue-MDL, and smooth, interactive experiences like YouTube Adblitz and even the Facebook NewsFeed Marketing Site!

+

There are many other great projects - too many to be listed here - but you can check them all out in awesome-vue. If you’ve built great things with Vue, you should also add them to the list!

+

A New Vision For the Project

Some of you may have noticed that the development on the Vue.js core repo has slowed down lately - in the meanwhile, a lot of efforts went into other sub projects, namely Vuex, vue-devtools and the official Webpack project boilerplate. The next step is a new release for vue-router, and better documentation/examples demonstrating how Vue.js core, Vuex and vue-router work together in a large single page application.

+

All this adds together towards a new vision for the Vue.js project: a progressive framework that can adapt to different complexity levels. Vue.js core will remain “just the view layer” - you can still drop it on whatever existing page to replace jQuery, but the Vue.js project also includes other pieces like vue-router, Vuex, vue-loader/vueify and vue-cli that works together as a more complete, opinionated framework for single page applications. More on this in a later post.

+

Vue.js needs your help!

Open source is awesome, and I’m proud that Vue.js is helping people build real products all over the world. However, as the scope of the project grows, pushing new features while maintaining everything becomes a very demanding job. The good news is you can help!

+

Looking for collaborators

There are already users who frequently helps out in various ways, but this is an invitation to make things official. I’m looking for contributors to join the “team”, which is currently mostly just me. If that sounds interesting to you, take a look at the application here.

+

Looking for sponsors

Another way to help making Vue development sustainable is providing direct financial support. The more financial support I receive, the more time I get to spend on making Vue even better.

+

If you run a business and is using Vue in a revenue-generating product, it would make business sense to sponsor Vue development: it ensures the project that your product relies on stays healthy and actively maintained. It can also help your exposure in the Vue community and makes it easier to attract Vue developers.

+

If you are an individual user and have enjoyed the productivity of using Vue, consider donating as a sign of appreciation - like buying me coffee once in a while :)

+

In either case, you can provide recurring funding through Vue’s Patreon campaign, or provide one-time donations via PayPal. There are many ideas for Vue that I have lined up but haven’t had the time to embark on, and I would love to be able to work on them full time - I hope you can help me make that happen!

+ +
+ + +
+ + + + + + + + + diff --git a/2016/04/27/announcing-2.0/index.html b/2016/04/27/announcing-2.0/index.html new file mode 100644 index 0000000..a658cab --- /dev/null +++ b/2016/04/27/announcing-2.0/index.html @@ -0,0 +1,192 @@ + + + + + Announcing Vue.js 2.0 - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

Announcing Vue.js 2.0

+

Apr 27, 2016

+

Today I am thrilled to announce the first public preview of Vue.js 2.0, which brings along many exciting improvements and new features. Let’s take a peek at what’s in store!

+ +

Even Leaner, Even Faster

Vue.js has always focused on staying light and fast, but 2.0 pushes it even further. The rendering layer is now based on a lightweight virtual-DOM implementation (based on Snabbdom) that improves initial rendering speed and memory consumption by up to 2~4x in most scenarios (check out these benchmarks). The template-to-virtual-DOM compiler and the runtime can be separated, so you can pre-compile templates and ship your app with only the runtime, which is less than 12kb min+gzip (as a reference, React 15 is 44kb min+gzip). The compiler also works in the browser, which means you can still drop in one script tag and start hacking, just like before. Even with the compiler included, the build is sitting at 17kb min+gzip, still lighter than the current 1.0 build.

+

Not Your Average Virtual-DOM

Now, just virtual-DOM sounds boring because there are so many implementations out there - but this one is different. Combined with Vue’s reactivity system, it provides optimized re-rendering out of the box without you having to do anything. Each component keeps track of its reactive dependencies during its render, so the system knows precisely when to re-render, and which components to re-render. No need for shouldComponentUpdate or immutable data structures - it just works.

+

In addition, Vue 2.0 applies some advanced optimizations during the template-to-virtual-DOM compilation phase:

+
    +
  1. It detects static class names and attributes so that they are never diffed after the initial render.

    +
  2. +
  3. It detects the maximum static sub trees (sub trees with no dynamic bindings) and hoist them out of the render function. So on each re-render, it directly reuses the exact same virtual nodes and skips the diffing.

    +
  4. +
+

These advanced optimizations can usually only be achieved via Babel plugins when using JSX, but with Vue 2.0 you can get them even using the in-browser compiler.

+

The new rendering system also allows you to disable reactive conversions by simply freezing your data and manually force updates, essentially giving you full control over the re-rendering process.

+

With these techniques combined, Vue 2.0 ensures blazing fast performance in every possible scenario while requiring minimal optimization efforts from the developer.

+

Templates, JSX, or Hyperscript?

Developers tend to have strong opinions on templates vs. JSX. On the one hand, templates are closer to HTML - they map better to the semantic structure of your app and make it much easier to think visually about the design, layout and styling. On the other hand, templates are limited to the DSL while the programmatic nature of JSX/hyperscript provides the full expressive power of a turing-complete language.

+

Being a designer/developer hybrid, I prefer writing most of my interfaces in templates, but in certain cases I do miss the flexibility of JSX/hyperscript. An example would be writing a component that programmatically handles its children, something not feasible with just the template-based slot mechanism.

+

Well, why not have both? In Vue 2.0, you can keep using the familiar template syntax, or drop down to the virtual-DOM layer whenever you feel constrained by the template DSL. Instead of the template option, just replace it with a render function. You can even embed render functions in your templates using the special <render> tag! The best of both worlds, in the same framework.

+

Streaming Server-side Rendering

With the migration to virtual-DOM, Vue 2.0 naturally supports server-side rendering with client-side hydration. One pain point of current mainstream server rendering implementations, such as React’s, is that the rendering is synchronous so it can block the server’s event loop if the app is complex. Synchronous server-side rendering may even adversely affect time-to-content on the client. Vue 2.0 provides built-in streaming server-side rendering, so that you can render your component, get a readable stream back and directly pipe it to the HTTP response. This ensures your server is responsive, and gets the rendered content to your users faster.

+

Unlocking More Possibilities

With the new architecture, there are even more possibilities to explore - for example, rendering to native interfaces on mobile. Currently, we are exploring a port of Vue.js 2.0 that uses weex as a native rendering backend, a project maintained by engineers at Alibaba Group, the biggest tech enterprise of China. It is also technically feasible to adapt Vue 2.0’s virtual-DOM to run inside ReactNative. We are excited to see how it goes!

+

Compatibility and What to Expect Next

Vue.js 2.0 is still in pre-alpha, but you can checkout the source code here. Despite being a full rewrite, the API is largely compatible with 1.0 with the exception of some intentional deprecations. Check out the same official examples written in 2.0 - you will see that not much has changed!

+

The feature deprecations are part of our continued effort to provide the simplest API possible for maximum developer productivity. You can check out a 1.0 vs. 2.0 feature comparison here. This does mean that it will take some effort to migrate an existing app if you happen to use some of these deprecated features heavily, but we will provide detailed upgrade guides in the future.

+

There is still much work left to be done. We will be releasing the first alpha once we reach satisfactory test coverage, and we are aiming for beta by end of May / early June. In addition to more tests, we also need to update the supporting libraries (vue-router, Vuex, vue-loader, vueify…). Currently only Vuex works with 2.0 out of the box, but we will make sure that everything works smoothly together when 2.0 ships.

+

We are also not forgetting about 1.x! 1.1 will be released alongside 2.0 beta, with an LTS period of 6-month critical bug fixes and 9-month security updates. It will also ship with optional deprecation warnings to get you prepared for upgrading to 2.0. Stay tuned!

+ +
+ + +
+ + + + + + + + + diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..dc676d3 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +docs.vuejs.id diff --git a/api/index.html b/api/index.html new file mode 100644 index 0000000..1ed0582 --- /dev/null +++ b/api/index.html @@ -0,0 +1,1712 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

+

Global Config

Vue.config is an object containing Vue’s global configurations. You can modify its properties listed below before bootstrapping your application:

+

debug

    +
  • Type: Boolean

    +
  • +
  • Default: false

    +
  • +
  • Usage:

    +
    Vue.config.debug = true
    +

    When in debug mode, Vue will:

    +
      +
    1. Print stack traces for all warnings.

      +
    2. +
    3. Make all anchor nodes visible in the DOM as Comment nodes. This makes it easier to inspect the structure of the rendered result.

      +
    4. +
    +

    Debug mode is only available in development build.

    + +
  • +
+

delimiters

    +
  • Type: Array<String>

    +
  • +
  • Default: ["{{", "}}"]

    +
  • +
  • Usage:

    +
    // ES6 template string style
    Vue.config.delimiters = ['${', '}']
    +

    Change the plain text interpolation delimiters.

    +
  • +
+

unsafeDelimiters

    +
  • Type: Array<String>

    +
  • +
  • Default: ["{{{", "}}}"]

    +
  • +
  • Usage:

    +
    // make it look more dangerous
    Vue.config.unsafeDelimiters = ['{!!', '!!}']
    +

    Change the raw HTML interpolation delimiters.

    +
  • +
+

silent

    +
  • Type: Boolean

    +
  • +
  • Default: false

    +
  • +
  • Usage:

    +
    Vue.config.silent = true
    +

    Suppress all Vue.js logs and warnings.

    +
  • +
+

async

    +
  • Type: Boolean

    +
  • +
  • Default: true

    +
  • +
  • Usage:

    +
    Vue.config.async = false
    +

    When async mode is off, Vue will perform all DOM updates synchronously upon detecting data change. This may help with debugging in some scenarios, but could also cause degraded performance and affect the order in which watcher callbacks are called. async: false is not recommended in production.

    +
  • +
+

devtools

    +
  • Type: Boolean

    +
  • +
  • Default: true (false in production builds)

    +
  • +
  • Usage:

    +
    // make sure to set this synchronously immediately after loading Vue
    Vue.config.devtools = true
    +

    Configure whether to allow vue-devtools inspection. This option’s default value is true in development builds and false in production builds. You can set it to true to enable inspection for production builds.

    +
  • +
+

Global API

Vue.extend( options )

+ +
    +
  • Arguments:

    +
      +
    • {Object} options
    • +
    +
  • +
  • Usage:

    +

    Create a “subclass” of the base Vue constructor. The argument should be an object containing component options.

    +

    The special cases to note here are el and data options - they must be functions when used with Vue.extend().

    +
    <div id="mount-point"></div>
    +
    // create reusable constructor
    var Profile = Vue.extend({
    template: '<p>{{firstName}} {{lastName}} aka {{alias}}</p>'
    })
    // create an instance of Profile
    var profile = new Profile({
    data: {
    firstName: 'Walter',
    lastName: 'White',
    alias: 'Heisenberg'
    }
    })
    // mount it on an element
    profile.$mount('#mount-point')
    +

    Will result in:

    +
    <p>Walter White aka Heisenberg</p>
    +
  • +
  • See also: Components

    +
  • +
+

Vue.nextTick( callback )

+ +
    +
  • Arguments:

    +
      +
    • {Function} callback
    • +
    +
  • +
  • Usage:

    +

    Defer the callback to be executed after the next DOM update cycle. Use it immediately after you’ve changed some data to wait for the DOM update.

    +
    // modify data
    vm.msg = 'Hello'
    // DOM not updated yet
    Vue.nextTick(function () {
    // DOM updated
    })
    +
  • +
  • See also: Async Update Queue

    +
  • +
+

Vue.set( object, key, value )

+ +
    +
  • Arguments:

    +
      +
    • {Object} object
    • +
    • {String} key
    • +
    • {*} value
    • +
    +
  • +
  • Returns: the set value.

    +
  • +
  • Usage:

    +

    Set a property on an object. If the object is reactive, ensure the property is created as a reactive property and trigger view updates. This is primarily used to get around the limitation that Vue cannot detect property additions.

    +
  • +
  • See also: Reactivity in Depth

    +
  • +
+

Vue.delete( object, key )

+ +
    +
  • Arguments:

    +
      +
    • {Object} object
    • +
    • {String} key
    • +
    +
  • +
  • Usage:

    +

    Delete a property on an object. If the object is reactive, ensure the deletion triggers view updates. This is primarily used to get around the limitation that Vue cannot detect property deletions, but you should rarely need to use it.

    +
  • +
  • See also: Reactivity in Depth

    +
  • +
+

Vue.directive( id, [definition] )

+ +
    +
  • Arguments:

    +
      +
    • {String} id
    • +
    • {Function | Object} [definition]
    • +
    +
  • +
  • Usage:

    +

    Register or retrieve a global directive.

    +
    // register
    Vue.directive('my-directive', {
    bind: function () {},
    update: function () {},
    unbind: function () {}
    })
    // register (simple function directive)
    Vue.directive('my-directive', function () {
    // this will be called as `update`
    })
    // getter, return the directive definition if registered
    var myDirective = Vue.directive('my-directive')
    +
  • +
  • See also: Custom Directives

    +
  • +
+

Vue.elementDirective( id, [definition] )

+ +
    +
  • Arguments:

    +
      +
    • {String} id
    • +
    • {Object} [definition]
    • +
    +
  • +
  • Usage:

    +

    Register or retrieve a global element directive.

    +
    // register
    Vue.elementDirective('my-element', {
    bind: function () {},
    // element directives do not use `update`
    unbind: function () {}
    })
    // getter, return the directive definition if registered
    var myDirective = Vue.elementDirective('my-element')
    +
  • +
  • See also: Element Directives

    +
  • +
+

Vue.filter( id, [definition] )

+ +
    +
  • Arguments:

    +
      +
    • {String} id
    • +
    • {Function | Object} [definition]
    • +
    +
  • +
  • Usage:

    +

    Register or retrieve a global filter.

    +
    // register
    Vue.filter('my-filter', function (value) {
    // return processed value
    })
    // two way filter
    Vue.filter('my-filter', {
    read: function () {},
    write: function () {}
    })
    // getter, return the filter if registered
    var myFilter = Vue.filter('my-filter')
    +
  • +
  • See also: Custom Filter

    +
  • +
+

Vue.component( id, [definition] )

+ +
    +
  • Arguments:

    +
      +
    • {String} id
    • +
    • {Function | Object} [definition]
    • +
    +
  • +
  • Usage:

    +

    Register or retrieve a global component.

    +
    // register an extended constructor
    Vue.component('my-component', Vue.extend({ /* ... */ }))
    // register an options object (automatically call Vue.extend)
    Vue.component('my-component', { /* ... */ })
    // retrieve a registered component (always return constructor)
    var MyComponent = Vue.component('my-component')
    +
  • +
  • See also: Components.

    +
  • +
+

Vue.transition( id, [hooks] )

+ +
    +
  • Arguments:

    +
      +
    • {String} id
    • +
    • {Object} [hooks]
    • +
    +
  • +
  • Usage:

    +

    Register or retrieve a global transition hooks object.

    +
    // register
    Vue.transition('fade', {
    enter: function () {},
    leave: function () {}
    })
    // retrieve registered hooks
    var fadeTransition = Vue.transition('fade')
    +
  • +
  • See also: Transitions.

    +
  • +
+

Vue.partial( id, [partial] )

+ +
    +
  • Arguments:

    +
      +
    • {String} id
    • +
    • {String} [partial]
    • +
    +
  • +
  • Usage:

    +

    Register or retrieve a global template partial string.

    +
    // register
    Vue.partial('my-partial', '<div>Hi</div>')
    // retrieve registered partial
    var myPartial = Vue.partial('my-partial')
    +
  • +
  • See also: Special Elements - <partial>.

    +
  • +
+

Vue.use( plugin, [options] )

+ +
    +
  • Arguments:

    +
      +
    • {Object | Function} plugin
    • +
    • {Object} [options]
    • +
    +
  • +
  • Usage:

    +

    Install a Vue.js plugin. If the plugin is an Object, it must expose an install method. If it is a function itself, it will be treated as the install method. The install method will be called with Vue as the argument.

    +
  • +
  • See also: Plugins.

    +
  • +
+

Vue.mixin( mixin )

+ +
    +
  • Arguments:

    +
      +
    • {Object} mixin
    • +
    +
  • +
  • Usage:

    +

    Apply a mixin globally, which affects every Vue instance created afterwards. This can be used by plugin authors to inject custom behavior into components. Not recommended in application code.

    +
  • +
  • See also: Global Mixins

    +
  • +
+

Options / Data

data

    +
  • Type: Object | Function

    +
  • +
  • Restriction: Only accepts Function when used in a component definition.

    +
  • +
  • Details:

    +

    The data object for the Vue instance. Vue.js will recursively convert its properties into getter/setters to make it “reactive”. The object must be plain: native objects, existing getter/setters and prototype properties are ignored. It is not recommended to observe complex objects.

    +

    Once the instance is created, the original data object can be accessed as vm.$data. The Vue instance also proxies all the properties found on the data object.

    +

    Properties that start with _ or $ will not be proxied on the Vue instance because they may conflict with Vue’s internal properties and API methods. You will have to access them as vm.$data._property.

    +

    When defining a component, data must be declared as a function that returns the initial data object, because there will be many instances created using the same definition. If we still use a plain object for data, that same object will be shared by reference across all instance created! By providing a data function, every time a new instance is created, we can simply call it to return a fresh copy of the initial data.

    +

    If required, a deep clone of the original object can be obtained by passing vm.$data through JSON.parse(JSON.stringify(...)).

    +
  • +
  • Example:

    +
    var data = { a: 1 }
    // direct instance creation
    var vm = new Vue({
    data: data
    })
    vm.a // -> 1
    vm.$data === data // -> true
    // must use function when in Vue.extend()
    var Component = Vue.extend({
    data: function () {
    return { a: 1 }
    }
    })
    +
  • +
  • See also: Reactivity in Depth.

    +
  • +
+

props

    +
  • Type: Array | Object

    +
  • +
  • Details:

    +

    A list/hash of attributes that are exposed to accept data from the parent component. It has a simple Array-based syntax and an alternative Object-based syntax that allows advanced configurations such as type checking, custom validation and default values.

    +
  • +
  • Example:

    +
    // simple syntax
    Vue.component('props-demo-simple', {
    props: ['size', 'myMessage']
    })
    // object syntax with validation
    Vue.component('props-demo-advanced', {
    props: {
    // just type check
    size: Number,
    // type check plus other validations
    name: {
    type: String,
    required: true,
    // warn if not two way bound
    twoWay: true
    }
    }
    })
    +
  • +
  • See also: Props

    +
  • +
+

propsData

+

1.0.22+

+
+
    +
  • Type: Object

    +
  • +
  • Restriction: only respected in instance creation via new.

    +
  • +
  • Details:

    +

    Pass props to an instance during its creation. This is primarily intended to make unit testing easier.

    +
  • +
  • Example:

    +
    var Comp = Vue.extend({
    props: ['msg'],
    template: '<div>{{ msg }}</div>'
    })
    var vm = new Comp({
    propsData: {
    msg: 'hello'
    }
    })
    +
  • +
+

computed

    +
  • Type: Object

    +
  • +
  • Details:

    +

    Computed properties to be mixed into the Vue instance. All getters and setters have their this context automatically bound to the Vue instance.

    +
  • +
  • Example:

    +
    var vm = new Vue({
    data: { a: 1 },
    computed: {
    // get only, just need a function
    aDouble: function () {
    return this.a * 2
    },
    // both get and set
    aPlus: {
    get: function () {
    return this.a + 1
    },
    set: function (v) {
    this.a = v - 1
    }
    }
    }
    })
    vm.aPlus // -> 2
    vm.aPlus = 3
    vm.a // -> 2
    vm.aDouble // -> 4
    +
  • +
  • See also:

    + +
  • +
+

methods

    +
  • Type: Object

    +
  • +
  • Details:

    +

    Methods to be mixed into the Vue instance. You can access these methods directly on the VM instance, or use them in directive expressions. All methods will have their this context automatically bound to the Vue instance.

    +
  • +
  • Example:

    +
    var vm = new Vue({
    data: { a: 1 },
    methods: {
    plus: function () {
    this.a++
    }
    }
    })
    vm.plus()
    vm.a // 2
    +
  • +
  • See also: Methods and Event Handling

    +
  • +
+

watch

    +
  • Type: Object

    +
  • +
  • Details:

    +

    An object where keys are expressions to watch and values are the corresponding callbacks. The value can also be a string of a method name, or an Object that contains additional options. The Vue instance will call $watch() for each entry in the object at instantiation.

    +
  • +
  • Example:

    +
    var vm = new Vue({
    data: {
    a: 1
    },
    watch: {
    'a': function (val, oldVal) {
    console.log('new: %s, old: %s', val, oldVal)
    },
    // string method name
    'b': 'someMethod',
    // deep watcher
    'c': {
    handler: function (val, oldVal) { /* ... */ },
    deep: true
    }
    }
    })
    vm.a = 2 // -> new: 2, old: 1
    +
  • +
  • See also: Instance Methods - vm.$watch

    +
  • +
+

Options / DOM

el

    +
  • Type: String | HTMLElement | Function

    +
  • +
  • Restriction: only accepts type Function when used in a component definition.

    +
  • +
  • Details:

    +

    Provide the Vue instance an existing DOM element to mount on. It can be a CSS selector string, an actual HTMLElement, or a function that returns an HTMLElement. Note that the provided element merely serves as a mounting point; it will be replaced if a template is also provided, unless replace is set to false. The resolved element will be accessible as vm.$el.

    +

    When used in Vue.extend, a function must be provided so each instance gets a separately created element.

    +

    If this option is available at instantiation, the instance will immediately enter compilation; otherwise, the user will have to explicitly call vm.$mount() to manually start the compilation.

    +
  • +
  • See also: Lifecycle Diagram

    +
  • +
+

template

    +
  • Type: String

    +
  • +
  • Details:

    +

    A string template to be used as the markup for the Vue instance. By default, the template will replace the mounted element. When the replace option is set to false, the template will be inserted into the mounted element instead. In both cases, any existing markup inside the mounted element will be ignored, unless content distribution slots are present in the template.

    +

    If the string starts with # it will be used as a querySelector and use the selected element’s innerHTML as the template string. This allows the use of the common <script type="x-template"> trick to include templates.

    +

    Note that under certain situations, for example when the template contains more than one top-level element, or contains only plain text, the instance will become a fragment instance - i.e. one that manages a list of nodes rather than a single node. Non flow-control directives on the mount point for fragment instances are ignored.

    +
  • +
  • See also:

    + +
  • +
+

replace

    +
  • Type: Boolean

    +
  • +
  • Default: true

    +
  • +
  • Restriction: only respected if the template option is also present.

    +
  • +
  • Details:

    +

    Determines whether to replace the element being mounted on with the template. If set to false, the template will overwrite the element’s inner content without replacing the element itself. If set to true, the template will overwrite the element and merge the element’s attributes with the attributes of the component’s root node.

    +
  • +
  • Example:

    +
    <div id="replace" class="foo"></div>
    +
    new Vue({
    el: '#replace',
    template: '<p class="bar">replaced</p>'
    })
    +

    Will result in:

    +
    <p class="foo bar" id="replace">replaced</p>
    +

    In comparison, when replace is set to false:

    +
    <div id="insert" class="foo"></div>
    +
    new Vue({
    el: '#insert',
    replace: false,
    template: '<p class="bar">inserted</p>'
    })
    +

    Will result in:

    +
    <div id="insert" class="foo">
    <p class="bar">inserted</p>
    </div>
    +
  • +
+

Options / Lifecycle Hooks

init

    +
  • Type: Function

    +
  • +
  • Details:

    +

    Called synchronously after the instance has just been initialized, before data observation and event / watcher setup.

    +
  • +
  • See also: Lifecycle Diagram

    +
  • +
+

created

    +
  • Type: Function

    +
  • +
  • Details:

    +

    Called synchronously after the instance is created. At this stage, the instance has finished processing the options which means the following have been set up: data observation, computed properties, methods, watch/event callbacks. However, DOM compilation has not been started, and the $el property will not be available yet.

    +
  • +
  • See also: Lifecycle Diagram

    +
  • +
+

beforeCompile

    +
  • Type: Function

    +
  • +
  • Details:

    +

    Called right before the compilation starts.

    +
  • +
  • See also: Lifecycle Diagram

    +
  • +
+

compiled

    +
  • Type: Function

    +
  • +
  • Details:

    +

    Called after the compilation is finished. At this stage all directives have been linked so data changes will trigger DOM updates. However, $el is not guaranteed to have been inserted into the document yet.

    +
  • +
  • See also: Lifecycle Diagram

    +
  • +
+

ready

    +
  • Type: Function

    +
  • +
  • Details:

    +

    Called after compilation and the $el is inserted into the document for the first time, i.e. right after the first attached hook. Note this insertion must be executed via Vue (with methods like vm.$appendTo() or as a result of a directive update) to trigger the ready hook.

    +
  • +
  • See also: Lifecycle Diagram

    +
  • +
+

attached

    +
  • Type: Function

    +
  • +
  • Details:

    +

    Called when vm.$el is attached to DOM by a directive or a VM instance method such as $appendTo(). Direct manipulation of vm.$el will not trigger this hook.

    +
  • +
+

detached

    +
  • Type: Function

    +
  • +
  • Details:

    +

    Called when vm.$el is removed from the DOM by a directive or a VM instance method. Direct manipulation of vm.$el will not trigger this hook.

    +
  • +
+

beforeDestroy

    +
  • Type: Function

    +
  • +
  • Details:

    +

    Called right before a Vue instance is destroyed. At this stage the instance is still fully functional.

    +
  • +
  • See also: Lifecycle Diagram

    +
  • +
+

destroyed

    +
  • Type: Function

    +
  • +
  • Details:

    +

    Called after a Vue instance has been destroyed. When this hook is called, all bindings and directives of the Vue instance have been unbound and all child Vue instances have also been destroyed.

    +

    Note if there is a leaving transition, the destroyed hook is called after the transition has finished.

    +
  • +
  • See also: Lifecycle Diagram

    +
  • +
+

Options / Assets

directives

+

elementDirectives

+

filters

+

components

    +
  • Type: Object

    +
  • +
  • Details:

    +

    A hash of components to be made available to the Vue instance.

    +
  • +
  • See also:

    + +
  • +
+

transitions

    +
  • Type: Object

    +
  • +
  • Details:

    +

    A hash of transitions to be made available to the Vue instance.

    +
  • +
  • See also:

    + +
  • +
+

partials

    +
  • Type: Object

    +
  • +
  • Details:

    +

    A hash of partial strings to be made available to the Vue instance.

    +
  • +
  • See also:

    + +
  • +
+

Options / Misc

parent

    +
  • Type: Vue instance

    +
  • +
  • Details:

    +

    Specify the parent instance for the instance to be created. Establishes a parent-child relationship between the two. The parent will be accessible as this.$parent for the child, and the child will be pushed into the parent’s $children array.

    +
  • +
  • See also: Parent-Child Communication

    +
  • +
+

events

    +
  • Type: Object

    +
  • +
  • Details:

    +

    An object where keys are events to listen for and values are the corresponding callbacks. Note these are Vue events rather than DOM events. The value can also be a string of a method name. The Vue instance will call $on() for each entry in the object at instantiation.

    +
  • +
  • Example:

    +
    var vm = new Vue({
    events: {
    'hook:created': function () {
    console.log('created!')
    },
    greeting: function (msg) {
    console.log(msg)
    },
    // can also use a string for methods
    bye: 'sayGoodbye'
    },
    methods: {
    sayGoodbye: function () {
    console.log('goodbye!')
    }
    }
    }) // -> created!
    vm.$emit('greeting', 'hi!') // -> hi!
    vm.$emit('bye') // -> goodbye!
    +
  • +
  • See also:

    + +
  • +
+

mixins

    +
  • Type: Array

    +
  • +
  • Details:

    +

    The mixins option accepts an array of mixin objects. These mixin objects can contain instance options just like normal instance objects, and they will be merged against the eventual options using the same option merging logic in Vue.extend(). e.g. If your mixin contains a created hook and the component itself also has one, both functions will be called.

    +

    Mixin hooks are called in the order they are provided, and called before the component’s own hooks.

    +
  • +
  • Example:

    +
    var mixin = {
    created: function () { console.log(1) }
    }
    var vm = new Vue({
    created: function () { console.log(2) },
    mixins: [mixin]
    })
    // -> 1
    // -> 2
    +
  • +
  • See also: Mixins

    +
  • +
+

name

    +
  • Type: String

    +
  • +
  • Restriction: only respected when used in Vue.extend().

    +
  • +
  • Details:

    +

    Allow the component to recursively invoke itself in its template. Note that when a component is registered globally with Vue.component(), the global ID is automatically set as its name.

    +

    Another benefit of specifying a name option is console inspection. When inspecting an extended Vue component in the console, the default constructor name is VueComponent, which isn’t very informative. By passing in an optional name option to Vue.extend(), you will get a better inspection output so that you know which component you are looking at. The string will be camelized and used as the component’s constructor name.

    +
  • +
  • Example:

    +
    var Ctor = Vue.extend({
    name: 'stack-overflow',
    template:
    '<div>' +
    // recursively invoke self
    '<stack-overflow></stack-overflow>' +
    '</div>'
    })
    // this will actually result in a max stack size exceeded
    // error, but let's assume it works...
    var vm = new Ctor()
    console.log(vm) // -> StackOverflow {$el: null, ...}
    +
  • +
+

extends

+

1.0.22+

+
+
    +
  • Type: Object | Function

    +
  • +
  • Details:

    +

    Allows declaratively extending another component (could be either a plain options object or a constructor) without having to use Vue.extend. This is primarily intended to make it easier to extend between single file components.

    +

    This is similar to mixins, the difference being that the component’s own options takes higher priority than the source component being extended.

    +
  • +
  • Example:

    +
    var CompA = { ... }
    // extend CompA without having to call Vue.extend on either
    var CompB = {
    extends: CompA,
    ...
    }
    +
  • +
+

Instance Properties

vm.$data

    +
  • Type: Object

    +
  • +
  • Details:

    +

    The data object that the Vue instance is observing. You can swap it with a new object. The Vue instance proxies access to the properties on its data object.

    +
  • +
+

vm.$el

    +
  • Type: HTMLElement

    +
  • +
  • Read only

    +
  • +
  • Details:

    +

    The DOM element that the Vue instance is managing. Note that for Fragment Instances, vm.$el will return an anchor node that indicates the starting position of the fragment.

    +
  • +
+

vm.$options

    +
  • Type: Object

    +
  • +
  • Read only

    +
  • +
  • Details:

    +

    The instantiation options used for the current Vue instance. This is useful when you want to include custom properties in the options:

    +
    new Vue({
    customOption: 'foo',
    created: function () {
    console.log(this.$options.customOption) // -> 'foo'
    }
    })
    +
  • +
+

vm.$parent

    +
  • Type: Vue instance

    +
  • +
  • Read only

    +
  • +
  • Details:

    +

    The parent instance, if the current instance has one.

    +
  • +
+

vm.$root

    +
  • Type: Vue instance

    +
  • +
  • Read only

    +
  • +
  • Details:

    +

    The root Vue instance of the current component tree. If the current instance has no parents this value will be itself.

    +
  • +
+

vm.$children

    +
  • Type: Array<Vue instance>

    +
  • +
  • Read only

    +
  • +
  • Details:

    +

    The direct child components of the current instance.

    +
  • +
+

vm.$refs

    +
  • Type: Object

    +
  • +
  • Read only

    +
  • +
  • Details:

    +

    An object that holds child components that have v-ref registered.

    +
  • +
  • See also:

    + +
  • +
+

vm.$els

    +
  • Type: Object

    +
  • +
  • Read only

    +
  • +
  • Details:

    +

    An object that holds DOM elements that have v-el registered.

    +
  • +
  • See also: v-el.

    +
  • +
+

Instance Methods / Data

vm.$watch( expOrFn, callback, [options] )

+ +
    +
  • Arguments:

    +
      +
    • {String | Function} expOrFn
    • +
    • {Function} callback
    • +
    • {Object} [options]
        +
      • {Boolean} deep
      • +
      • {Boolean} immediate
      • +
      +
    • +
    +
  • +
  • Returns: {Function} unwatch

    +
  • +
  • Usage:

    +

    Watch an expression or a computed function on the Vue instance for changes. The callback gets called with the new value and the old value. The expression can be a single keypath or any valid binding expressions.

    +
  • +
+

Note: when mutating (rather than replacing) an Object or an Array, the old value will be the same as new value because they reference the same Object/Array. Vue doesn’t keep a copy of the pre-mutate value.

+ +
    +
  • Example:

    +
    // keypath
    vm.$watch('a.b.c', function (newVal, oldVal) {
    // do something
    })
    // expression
    vm.$watch('a + b', function (newVal, oldVal) {
    // do something
    })
    // function
    vm.$watch(
    function () {
    return this.a + this.b
    },
    function (newVal, oldVal) {
    // do something
    }
    )
    +

    vm.$watch returns an unwatch function that stops firing the callback:

    +
    var unwatch = vm.$watch('a', cb)
    // later, teardown the watcher
    unwatch()
    +
  • +
  • Option: deep

    +

    To also detect nested value changes inside Objects, you need to pass in deep: true in the options argument. Note that you don’t need to do so to listen for Array mutations.

    +
    vm.$watch('someObject', callback, {
    deep: true
    })
    vm.someObject.nestedValue = 123
    // callback is fired
    +
  • +
  • Option: immediate

    +

    Passing in immediate: true in the option will trigger the callback immediately with the current value of the expression:

    +
    vm.$watch('a', callback, {
    immediate: true
    })
    // callback is fired immediately with current value of `a`
    +
  • +
+

vm.$get( expression )

+ +
    +
  • Arguments:

    +
      +
    • {String} expression
    • +
    +
  • +
  • Usage:

    +

    Retrieve a value from the Vue instance given an expression. Expressions that throw errors will be suppressed and return undefined.

    +
  • +
  • Example:

    +
    var vm = new Vue({
    data: {
    a: {
    b: 1
    }
    }
    })
    vm.$get('a.b') // -> 1
    vm.$get('a.b + 1') // -> 2
    +
  • +
+

vm.$set( keypath, value )

+ +
    +
  • Arguments:

    +
      +
    • {String} keypath
    • +
    • {*} value
    • +
    +
  • +
  • Usage:

    +

    Set a data value on the Vue instance given a valid keypath. In most cases you should prefer setting properties using plain object syntax, e.g. vm.a.b = 123. This method is only needed in two scenarios:

    +
      +
    1. When you have a keypath string and want to dynamically set the value using that keypath.

      +
    2. +
    3. When you want to set a property that doesn’t exist.

      +
    4. +
    +

    If the path doesn’t exist it will be recursively created and made reactive. If a new root-level reactive property is created due to a $set call, the Vue instance will be forced into a “digest cycle”, during which all its watchers are re-evaluated.

    +
  • +
  • Example:

    +
    var vm = new Vue({
    data: {
    a: {
    b: 1
    }
    }
    })
    // set an existing path
    vm.$set('a.b', 2)
    vm.a.b // -> 2
    // set a non-existent path, will force digest
    vm.$set('c', 3)
    vm.c // -> 3
    +
  • +
  • See also: Reactivity in Depth

    +
  • +
+

vm.$delete( key )

+ +
    +
  • Arguments:

    +
      +
    • {String} key
    • +
    +
  • +
  • Usage:

    +

    Delete a root level property on the Vue instance (and also its $data). Forces a digest cycle. Not recommended.

    +
  • +
+

vm.$eval( expression )

+ +
    +
  • Arguments:

    +
      +
    • {String} expression
    • +
    +
  • +
  • Usage:

    +

    Evaluate a valid binding expression on the current instance. The expression can also contain filters.

    +
  • +
  • Example:

    +
    // assuming vm.msg = 'hello'
    vm.$eval('msg | uppercase') // -> 'HELLO'
    +
  • +
+

vm.$interpolate( templateString )

+ +
    +
  • Arguments:

    +
      +
    • {String} templateString
    • +
    +
  • +
  • Usage:

    +

    Evaluate a piece of template string containing mustache interpolations. Note that this method simply performs string interpolation; attribute directives are ignored.

    +
  • +
  • Example:

    +
    // assuming vm.msg = 'hello'
    vm.$interpolate('{{msg}} world!') // -> 'hello world!'
    +
  • +
+

vm.$log( [keypath] )

+ +
    +
  • Arguments:

    +
      +
    • {String} [keypath]
    • +
    +
  • +
  • Usage:

    +

    Log the current instance data as a plain object, which is more inspection-friendly than a bunch of getter/setters. Also accepts an optional key.

    +
    vm.$log() // logs entire ViewModel data
    vm.$log('item') // logs vm.item
    +
  • +
+

Instance Methods / Events

vm.$on( event, callback )

+ +
    +
  • Arguments:

    +
      +
    • {String} event
    • +
    • {Function} callback
    • +
    +
  • +
  • Usage:

    +

    Listen for a custom event on the current vm. Events can be triggered by vm.$emit, vm.$dispatch or vm.$broadcast. The callback will receive all the additional arguments passed into these event-triggering methods.

    +
  • +
  • Example:

    +
    vm.$on('test', function (msg) {
    console.log(msg)
    })
    vm.$emit('test', 'hi')
    // -> "hi"
    +
  • +
+

vm.$once( event, callback )

+ +
    +
  • Arguments:

    +
      +
    • {String} event
    • +
    • {Function} callback
    • +
    +
  • +
  • Usage:

    +

    Listen for a custom event, but only once. The listener will be removed once it triggers for the first time.

    +
  • +
+

vm.$off( [event, callback] )

+ +
    +
  • Arguments:

    +
      +
    • {String} [event]
    • +
    • {Function} [callback]
    • +
    +
  • +
  • Usage:

    +

    Remove event listener(s).

    +
      +
    • If no arguments are provided, remove all event listeners;

      +
    • +
    • If only the event is provided, remove all listeners for that event;

      +
    • +
    • If both event and callback are given, remove the listener for that specific callback only.

      +
    • +
    +
  • +
+

vm.$emit( event, […args] )

+ +
    +
  • Arguments:

    +
      +
    • {String} event
    • +
    • [...args]
    • +
    +

    Trigger an event on the current instance. Any additional arguments will be passed into the listener’s callback function.

    +
  • +
+

vm.$dispatch( event, […args] )

+ +
    +
  • Arguments:

    +
      +
    • {String} event
    • +
    • [...args]
    • +
    +
  • +
  • Usage:

    +

    Dispatch an event, first triggering it on the instance itself, and then propagates upward along the parent chain. The propagation stops when it triggers a parent event listener, unless that listener returns true. Any additional arguments will be passed into the listener’s callback function.

    +
  • +
  • Example:

    +
    // create a parent chain
    var parent = new Vue()
    var child1 = new Vue({ parent: parent })
    var child2 = new Vue({ parent: child1 })
    parent.$on('test', function () {
    console.log('parent notified')
    })
    child1.$on('test', function () {
    console.log('child1 notified')
    })
    child2.$on('test', function () {
    console.log('child2 notified')
    })
    child2.$dispatch('test')
    // -> "child2 notified"
    // -> "child1 notified"
    // parent is NOT notified, because child1 didn't return
    // true in its callback
    +
  • +
  • See also: Parent-Child Communication

    +
  • +
+

vm.$broadcast( event, […args] )

+ +
    +
  • Arguments:

    +
      +
    • {String} event
    • +
    • [...args]
    • +
    +
  • +
  • Usage:

    +

    Broadcast an event that propagates downward to all descendants of the current instance. Since the descendants expand into multiple sub-trees, the event propagation will follow many different “paths”. The propagation for each path will stop when a listener callback is fired along that path, unless the callback returns true.

    +
  • +
  • Example:

    +
    var parent = new Vue()
    // child1 and child2 are siblings
    var child1 = new Vue({ parent: parent })
    var child2 = new Vue({ parent: parent })
    // child3 is nested under child2
    var child3 = new Vue({ parent: child2 })
    child1.$on('test', function () {
    console.log('child1 notified')
    })
    child2.$on('test', function () {
    console.log('child2 notified')
    })
    child3.$on('test', function () {
    console.log('child3 notified')
    })
    parent.$broadcast('test')
    // -> "child1 notified"
    // -> "child2 notified"
    // child3 is NOT notified, because child2 didn't return
    // true in its callback
    +
  • +
+

Instance Methods / DOM

vm.$appendTo( elementOrSelector, [callback] )

+ +
    +
  • Arguments:

    +
      +
    • {Element | String} elementOrSelector
    • +
    • {Function} [callback]
    • +
    +
  • +
  • Returns: vm - the instance itself

    +
  • +
  • Usage:

    +

    Append the Vue instance’s DOM element or fragment to target element. The target can be either an element or a querySelector string. This method will trigger transitions if present. The callback is fired after the transition has completed (or immediately if no transition has been triggered).

    +
  • +
+

vm.$before( elementOrSelector, [callback] )

+ +
    +
  • Arguments:

    +
      +
    • {Element | String} elementOrSelector
    • +
    • {Function} [callback]
    • +
    +
  • +
  • Returns: vm - the instance itself

    +
  • +
  • Usage:

    +

    Insert the Vue instance’s DOM element or fragment before target element. The target can be either an element or a querySelector string. This method will trigger transitions if present. The callback is fired after the transition has completed (or immediately if no transition has been triggered).

    +
  • +
+

vm.$after( elementOrSelector, [callback] )

+ +
    +
  • Arguments:

    +
      +
    • {Element | String} elementOrSelector
    • +
    • {Function} [callback]
    • +
    +
  • +
  • Returns: vm - the instance itself

    +
  • +
  • Usage:

    +

    Insert the Vue instance’s DOM element or fragment after target element. The target can be either an element or a querySelector string. This method will trigger transitions if present. The callback is fired after the transition has completed (or immediately if no transition has been triggered).

    +
  • +
+

vm.$remove( [callback] )

+ +
    +
  • Arguments:

    +
      +
    • {Function} [callback]
    • +
    +
  • +
  • Returns: vm - the instance itself

    +
  • +
  • Usage:

    +

    Remove the Vue instance’s DOM element or fragment from the DOM. This method will trigger transitions if present. The callback is fired after the transition has completed (or immediately if no transition has been triggered).

    +
  • +
+

vm.$nextTick( callback )

+ +
    +
  • Arguments:

    +
      +
    • {Function} [callback]
    • +
    +
  • +
  • Usage:

    +

    Defer the callback to be executed after the next DOM update cycle. Use it immediately after you’ve changed some data to wait for the DOM update. This is the same as the global Vue.nextTick, except that the callback’s this context is automatically bound to the instance calling this method.

    +
  • +
  • Example:

    +
    new Vue({
    // ...
    methods: {
    // ...
    example: function () {
    // modify data
    this.message = 'changed'
    // DOM is not updated yet
    this.$nextTick(function () {
    // DOM is now updated
    // `this` is bound to the current instance
    this.doSomethingElse()
    })
    }
    }
    })
    +
  • +
  • See also:

    + +
  • +
+

Instance Methods / Lifecycle

vm.$mount( [elementOrSelector] )

+ +
    +
  • Arguments:

    +
      +
    • {Element | String} [elementOrSelector]
    • +
    +
  • +
  • Returns: vm - the instance itself

    +
  • +
  • Usage:

    +

    If a Vue instance didn’t receive the el option at instantiation, it will be in “unmounted” state, without an associated DOM element or fragment. vm.$mount() can be used to manually start the mounting/compilation of an unmounted Vue instance.

    +

    If no argument is provided, the template will be created as an out-of-document fragment, and you will have to use other DOM instance methods to insert it into the document yourself. If replace option is set to false, then an empty <div> will be automatically created as the wrapper element.

    +

    Calling $mount() on an already mounted instance will have no effect. The method returns the instance itself so you can chain other instance methods after it.

    +
  • +
  • Example:

    +
    var MyComponent = Vue.extend({
    template: '<div>Hello!</div>'
    })
    // create and mount to #app (will replace #app)
    new MyComponent().$mount('#app')
    // the above is the same as:
    new MyComponent({ el: '#app' })
    // or, compile off-document and append afterwards:
    new MyComponent().$mount().$appendTo('#container')
    +
  • +
  • See also: Lifecycle Diagram

    +
  • +
+

vm.$destroy( [remove] )

+ +
    +
  • Arguments:

    +
      +
    • {Boolean} [remove] - default: false
    • +
    +
  • +
  • Usage:

    +

    Completely destroy a vm. Clean up its connections with other existing vms, unbind all its directives, turn off all event listeners and, if the remove argument is true, remove its associated DOM element or fragment from the DOM.

    +

    Triggers the beforeDestroy and destroyed hooks.

    +
  • +
  • See also: Lifecycle Diagram

    +
  • +
+

Directives

v-text

    +
  • Expects: String

    +
  • +
  • Details:

    +

    Updates the element’s textContent.

    +

    Internally, {{ Mustache }} interpolations are also compiled as a v-text directive on a textNode. The directive form requires a wrapper element, but offers slightly better performance and avoids FOUC (Flash of Uncompiled Content).

    +
  • +
  • Example:

    +
    <span v-text="msg"></span>
    <!-- same as -->
    <span>{{msg}}</span>
    +
  • +
+

v-html

    +
  • Expects: String

    +
  • +
  • Details:

    +

    Updates the element’s innerHTML. The contents are inserted as plain HTML - data bindings are ignored. If you need to reuse template pieces, you should use partials.

    +

    Internally, {{{ Mustache }}} interpolations are also compiled as a v-html directive using anchor nodes. The directive form requires a wrapper element, but offers slightly better performance and avoids FOUC (Flash of Uncompiled Content).

    +

    Dynamically rendering arbitrary HTML on your website can be very dangerous because it can easily lead to XSS attacks. Only use v-html on trusted content and never on user-provided content.

    +
  • +
  • Example:

    +
    <div v-html="html"></div>
    <!-- same as -->
    <div>{{{html}}}</div>
    +
  • +
+

v-if

    +
  • Expects: *

    +
  • +
  • Usage:

    +

    Conditionally render the element based on the truthy-ness of the expression value. The element and its contained data bindings / components are destroyed and re-constructed during toggles. If the element is a <template> element, its content will be extracted as the conditional block.

    +
  • +
  • See also: Conditional Rendering

    +
  • +
+

v-show

    +
  • Expects: *

    +
  • +
  • Usage:

    +

    Toggle’s the element’s display CSS property based on the truthy-ness of the expression value. Triggers transitions if present.

    +
  • +
  • See also: Conditional Rendering - v-show

    +
  • +
+

v-else

+

v-for

    +
  • Expects: Array | Object | Number | String

    +
  • +
  • Param Attributes:

    + +
  • +
  • Usage:

    +

    Render the element or template block multiple times based on the source data. The directive’s value must use the special syntax alias (in|of) expression to provide an alias for the current element being iterated on:

    +
    <div v-for="item in items">
    {{ item.text }}
    </div>
    +

    Note using of as the delimiter is only supported in 1.0.17+.

    +

    Alternatively, you can also specify an alias for the index (or the key if used on an Object):

    +
    <div v-for="(index, item) in items"></div>
    <div v-for="(key, val) in object"></div>
    +

    The detailed usage for v-for is explained in the guide section linked below.

    +
  • +
  • See also: List Rendering.

    +
  • +
+

v-on

    +
  • Shorthand: @

    +
  • +
  • Expects: Function | Inline Statement

    +
  • +
  • Argument: event (required)

    +
  • +
  • Modifiers:

    +
      +
    • .stop - call event.stopPropagation().
    • +
    • .prevent - call event.preventDefault().
    • +
    • .capture - add event listener in capture mode.
    • +
    • .self - only trigger handler if event was dispatched from this element.
    • +
    • .{keyCode | keyAlias} - only trigger handler on certain keys.
    • +
    +
  • +
  • Usage:

    +

    Attaches an event listener to the element. The event type is denoted by the argument. The expression can either be a method name or an inline statement, or simply omitted when there are modifiers present.

    +

    When used on a normal element, it listens to native DOM events only. When used on a custom element component, it also listens to custom events emitted on that child component.

    +

    When listening to native DOM events, the method receives the native event as the only argument. If using inline statement, the statement has access to the special $event property: v-on:click="handle('ok', $event)".

    +

    1.0.11+ When listening the custom events, inline statements have access to the special $arguments property, which is an array of the additional arguments passed to the child components’ $emit call.

    +
  • +
  • Example:

    +
    <!-- method handler -->
    <button v-on:click="doThis"></button>
    <!-- inline statement -->
    <button v-on:click="doThat('hello', $event)"></button>
    <!-- shorthand -->
    <button @click="doThis"></button>
    <!-- stop propagation -->
    <button @click.stop="doThis"></button>
    <!-- prevent default -->
    <button @click.prevent="doThis"></button>
    <!-- prevent default without expression -->
    <form @submit.prevent></form>
    <!-- chain modifiers -->
    <button @click.stop.prevent="doThis"></button>
    <!-- key modifier using keyAlias -->
    <input @keyup.enter="onEnter">
    <!-- key modifier using keyCode -->
    <input @keyup.13="onEnter">
    +

    Listening to custom events on a child component (the handler is called when “my-event” is emitted on the child):

    +
    <my-component @my-event="handleThis"></my-component>
    <!-- inline statement -->
    <my-component @my-event="handleThis(123, $arguments)"></my-component>
    +
  • +
  • See also: Methods and Event Handling

    +
  • +
+

v-bind

    +
  • Shorthand: :

    +
  • +
  • Expects: * (with argument) | Object (without argument)

    +
  • +
  • Argument: attrOrProp (optional)

    +
  • +
  • Modifiers:

    +
      +
    • .sync - make the binding two-way. Only respected for prop bindings.
    • +
    • .once - make the binding one-time. Only respected for prop bindings.
    • +
    • .camel - convert the attribute name to camelCase when setting it. Only respected for normal attributes. Used for binding camelCase SVG attributes.
    • +
    +
  • +
  • Usage:

    +

    Dynamically bind one or more attributes, or a component prop to an expression.

    +

    When used to bind the class or style attribute, it supports additional value types such as Array or Objects. See linked guide section below for more details.

    +

    When used for prop binding, the prop must be properly declared in the child component. Prop bindings can specify a different binding type using one of the modifiers.

    +

    When used without an argument, can be used to bind an object containing attribute name-value pairs. Note in this mode class and style does not support Array or Objects.

    +
  • +
  • Example:

    +
    <!-- bind an attribute -->
    <img v-bind:src="imageSrc">
    <!-- shorthand -->
    <img :src="imageSrc">
    <!-- class binding -->
    <div :class="{ red: isRed }"></div>
    <div :class="[classA, classB]"></div>
    <div :class="[classA, { classB: isB, classC: isC }]">
    <!-- style binding -->
    <div :style="{ fontSize: size + 'px' }"></div>
    <div :style="[styleObjectA, styleObjectB]"></div>
    <!-- binding an object of attributes -->
    <div v-bind="{ id: someProp, 'other-attr': otherProp }"></div>
    <!-- prop binding. "prop" must be declared in my-component. -->
    <my-component :prop="someThing"></my-component>
    <!-- two-way prop binding -->
    <my-component :prop.sync="someThing"></my-component>
    <!-- one-time prop binding -->
    <my-component :prop.once="someThing"></my-component>
    +
  • +
  • See also:

    + +
  • +
+

v-model

    +
  • Expects: varies based on input type

    +
  • +
  • Limited to:

    +
      +
    • <input>
    • +
    • <select>
    • +
    • <textarea>
    • +
    +
  • +
  • Param Attributes:

    + +
  • +
  • Usage:

    +

    Create a two-way binding on a form input element. For detailed usage, see guide section linked below.

    +
  • +
  • See also: Form Input Bindings

    +
  • +
+

v-ref

    +
  • Does not expect expression

    +
  • +
  • Limited to: child components

    +
  • +
  • Argument: id (required)

    +
  • +
  • Usage:

    +

    Register a reference to a child component on its parent for direct access. Does not expect an expression. Must provide an argument as the id to register with. The component instance will be accessible on its parent’s $refs object.

    +

    When used on a component together with v-for, the registered value will be an Array containing all the child component instances corresponding to the Array they are bound to. If the data source for v-for is an Object, the registered value will be an Object containing key-instance pairs mirroring the source Object.

    +
  • +
  • Note:

    +

    Because HTML is case-insensitive, camelCase usage like v-ref:someRef will be converted to all lowercase. You can use v-ref:some-ref which properly sets this.$refs.someRef.

    +
  • +
  • Example:

    +
    <comp v-ref:child></comp>
    <comp v-ref:some-child></comp>
    +
    // access from parent:
    this.$refs.child
    this.$refs.someChild
    +

    With v-for:

    +
    <comp v-ref:list v-for="item in list"></comp>
    +
    // this will be an array in parent
    this.$refs.list
    +
  • +
  • See also: Child Component Refs

    +
  • +
+

v-el

    +
  • Does not expect expression

    +
  • +
  • Argument: id (required)

    +
  • +
  • Usage:

    +

    Register a reference to a DOM element on its owner Vue instance’s $els object for easier access.

    +
  • +
  • Note:

    +

    Because HTML is case-insensitive, camelCase usage like v-el:someEl will be converted to all lowercase. You can use v-el:some-el which properly sets this.$els.someEl.

    +
  • +
  • Example:

    +
    <span v-el:msg>hello</span>
    <span v-el:other-msg>world</span>
    +
    this.$els.msg.textContent // -> "hello"
    this.$els.otherMsg.textContent // -> "world"
    +
  • +
+

v-pre

    +
  • Does not expect expression

    +
  • +
  • Usage

    +

    Skip compilation for this element and all its children. You can use this for displaying raw mustache tags. Skipping large numbers of nodes with no directives on them can also speed up compilation.

    +
  • +
  • Example:

    +
    <span v-pre>{{ this will not be compiled }}</span>
    +
  • +
+

v-cloak

    +
  • Does not expect expression

    +
  • +
  • Usage:

    +

    This directive will remain on the element until the associated Vue instance finishes compilation. Combined with CSS rules such as [v-cloak] { display: none }, this directive can be used to hide un-compiled mustache bindings until the Vue instance is ready.

    +
  • +
  • Example:

    +
    [v-cloak] {
    display: none;
    }
    +
    <div v-cloak>
    {{ message }}
    </div>
    +

    The <div> will not be visible until the compilation is done.

    +
  • +
+

Special Elements

component

    +
  • Attributes:

    +
      +
    • is
    • +
    +
  • +
  • Param Attributes:

    + +
  • +
  • Usage:

    +

    Alternative syntax for invoking components. Primarily used for dynamic components with the is attribute:

    +
    <!-- a dynamic component controlled by -->
    <!-- the `componentId` property on the vm -->
    <component :is="componentId"></component>
    +
  • +
  • See also: Dynamic Components

    +
  • +
+

slot

    +
  • Attributes:

    +
      +
    • name
    • +
    +
  • +
  • Usage:

    +

    <slot> elements serve as content distribution outlets in component templates. The slot element itself will be replaced.

    +

    A slot with the name attribute is called a named slot. A named slot will distribute content with a slot attribute that matches its name.

    +

    For detailed usage, see the guide section linked below.

    +
  • +
  • See also: Content Distribution with Slots

    +
  • +
+

partial

    +
  • Attributes:

    +
      +
    • name
    • +
    +
  • +
  • Usage:

    +

    <partial> elements serve as outlets for registered template partials. Partial contents are also compiled by Vue when inserted. The <partial> element itself will be replaced. It requires a name attribute which will be used to resolve the partial’s content.

    +
  • +
  • Example:

    +
    // registering a partial
    Vue.partial('my-partial', '<p>This is a partial! {{msg}}</p>')
    +
    <!-- a static partial -->
    <partial name="my-partial"></partial>
    <!-- a dynamic partial -->
    <!-- renders partial with id === vm.partialId -->
    <partial v-bind:name="partialId"></partial>
    <!-- dynamic partial using v-bind shorthand -->
    <partial :name="partialId"></partial>
    +
  • +
+

Filters

capitalize

    +
  • Example:

    +
    {{ msg | capitalize }}
    +

    ‘abc’ => ‘Abc’

    +
  • +
+

uppercase

    +
  • Example:

    +
    {{ msg | uppercase }}
    +

    ‘abc’ => ‘ABC’

    +
  • +
+

lowercase

    +
  • Example:

    +
    {{ msg | lowercase }}
    +

    ‘ABC’ => ‘abc’

    +
  • +
+

currency

    +
  • Arguments:

    +
      +
    • {String} [symbol] - default: '$'
    • +
    • 1.0.22+ {Number} [decimal places] - default: 2
    • +
    +
  • +
  • Example:

    +
    {{ amount | currency }}
    +

    12345 => $12,345.00

    +

    Use a different symbol:

    +
    {{ amount | currency '£' }}
    +

    12345 => £12,345.00

    +

    Some currencies have 3 or 4 decimal places, while some others have none, for example Japanese Yen (¥) or Vietnamese Dong (₫):

    +
    {{ amount | currency '₫' 0 }}
    +

    12345 => ₫12,345

    +
  • +
+

pluralize

    +
  • Arguments:

    +
      +
    • {String} single, [double, triple, ...]
    • +
    +
  • +
  • Usage:

    +

    Pluralizes the argument based on the filtered value. When there is exactly one argument, plural forms simply add an “s” at the end. When there are more than one argument, the arguments will be used as array of strings corresponding to the single, double, triple … forms of the word to be pluralized. When the number to be pluralized exceeds the length of the arguments, it will use the last entry in the array.

    +
  • +
  • Example:

    +
    {{count}} {{count | pluralize 'item'}}
    +

    1 => ‘1 item’
    2 => ‘2 items’

    +
    {{date}}{{date | pluralize 'st' 'nd' 'rd' 'th'}}
    +

    Will result in:

    +

    1 => ‘1st’
    2 => ‘2nd’
    3 => ‘3rd’
    4 => ‘4th’
    5 => ‘5th’

    +
  • +
+

json

    +
  • Arguments:

    +
      +
    • {Number} [indent] - default: 2
    • +
    +
  • +
  • Usage:

    +

    Output the result of calling JSON.stringify() on the value instead of outputting the toString() value (e.g. [object Object]).

    +
  • +
  • Example:

    +

    Print an object with 4-space indent:

    +
    <pre>{{ nestedObject | json 4 }}</pre>
    +
  • +
+

debounce

    +
  • Limited to: directives that expect Function values, e.g. v-on

    +
  • +
  • Arguments:

    +
      +
    • {Number} [wait] - default: 300
    • +
    +
  • +
  • Usage:

    +

    Wrap the handler to debounce it for x milliseconds, where x is the argument. Default wait time is 300ms. A debounced handler will be delayed until at least x ms has passed after the call moment; if the handler is called again before the delay period, the delay period is reset to x ms.

    +
  • +
  • Example:

    +
    <input @keyup="onKeyup | debounce 500">
    +
  • +
+

limitBy

    +
  • Limited to: directives that expect Array values, e.g. v-for

    +
  • +
  • Arguments:

    +
      +
    • {Number} limit
    • +
    • {Number} [offset]
    • +
    +
  • +
  • Usage:

    +

    Limit the array to the first N items, as specified by the argument. An optional second argument can be provided to set a starting offset.

    +
    <!-- only display first 10 items -->
    <div v-for="item in items | limitBy 10"></div>
    <!-- display items 5 to 15 -->
    <div v-for="item in items | limitBy 10 5"></div>
    +
  • +
+

filterBy

    +
  • Limited to: directives that expect Array values, e.g. v-for

    +
  • +
  • Arguments:

    +
      +
    • {String | Function} targetStringOrFunction
    • +
    • "in" (optional delimiter)
    • +
    • {String} [...searchKeys]
    • +
    +
  • +
  • Usage:

    +

    Return a filtered version of the source Array. The first argument can either be a string or a function.

    +

    When the first argument is a string, it will be used as the target string to search for in each element of the Array:

    +
    <div v-for="item in items | filterBy 'hello'">
    +

    In the above example, only items that contain the target string "hello" will be displayed.

    +

    If the item is an object, the filter will recursively search every nested property of the object for the target string. To narrow down the search scope, additional search keys can be specified:

    +
    <div v-for="user in users | filterBy 'Jack' in 'name'">
    +

    In the above example, the filter will only search for "Jack" in the name field of each user object. It is a good idea to always limit the search scope for better performance.

    +

    The examples above are using static arguments - we can, of course, use dynamic arguments as target string or search keys. Combined with v-model we can easily implement type-ahead filtering:

    +
    <div id="filter-by-example">
    <input v-model="name">
    <ul>
    <li v-for="user in users | filterBy name in 'name'">
    {{ user.name }}
    </li>
    </ul>
    </div>
    +
    new Vue({
    el: '#filter-by-example',
    data: {
    name: '',
    users: [
    { name: 'Bruce' },
    { name: 'Chuck' },
    { name: 'Jackie' }
    ]
    }
    })
    + +
    + +
      +
    • + {{ user.name }} +
    • +
    +
    + + +
  • +
  • Additional Examples:

    +

    Multiple search keys:

    +
    <li v-for="user in users | filterBy searchText in 'name' 'phone'"></li>
    +

    Multiple search keys with a dynamic Array argument:

    +
    <!-- fields = ['fieldA', 'fieldB'] -->
    <div v-for="user in users | filterBy searchText in fields">
    +

    Use a custom filter function:

    +
    <div v-for="user in users | filterBy myCustomFilterFunction">
    +
  • +
+

orderBy

    +
  • Limited to: directives that expect Array values, e.g. v-for

    +
  • +
  • Arguments:

    +
      +
    • {String | Array<String> | Function} ...sortKeys
    • +
    • {String} [order] - default: 1
    • +
    +
  • +
  • Usage:

    +

    Return a sorted version of the source Array. You can pass any number of Strings to sort on keys. You can also pass an array containing the sorting keys or a Function if you want to use your own sorting strategy instead. The optional order argument specifies whether the result should be in ascending (order >= 0) or descending (order < 0) order.

    +

    For arrays of primitive values, simply omit sortKeys and provide the order, e.g. orderBy 1.

    +
  • +
  • Example:

    +

    Sort users by name:

    +
    <ul>
    <li v-for="user in users | orderBy 'name'">
    {{ user.name }}
    </li>
    </ul>
    +

    In descending order:

    +
    <ul>
    <li v-for="user in users | orderBy 'name' -1">
    {{ user.name }}
    </li>
    </ul>
    +

    Sort primitive values:

    +
    <ul>
    <li v-for="n in numbers | orderBy true">
    {{ n }}
    </li>
    </ul>
    +

    Dynamic sort order:

    +
    <div id="orderby-example">
    <button @click="order = order * -1">Reverse Sort Order</button>
    <ul>
    <li v-for="user in users | orderBy 'name' order">
    {{ user.name }}
    </li>
    </ul>
    </div>
    +
    new Vue({
    el: '#orderby-example',
    data: {
    order: 1,
    users: [{ name: 'Bruce' }, { name: 'Chuck' }, { name: 'Jackie' }]
    }
    })
    +

    Sort using two keys:

    +
    <ul>
    <li v-for="user in users | orderBy 'lastName' 'firstName'">
    {{ user.lastName }} {{ user.firstName }}
    </li>
    </ul>
    + +
    + +
      +
    • + {{ user.name }} +
    • +
    +
    + + +

    Sort using a Function:

    +
    <div id="orderby-compare-example" class="demo">
    <button @click="order = order * -1">Reverse Sort Order</button>
    <ul>
    <li v-for="user in users | orderBy ageByTen order">
    {{ user.name }} - {{ user.age }}
    </li>
    </ul>
    </div>
    +
    new Vue({
    el: '#orderby-compare-example',
    data: {
    order: 1,
    users: [
    {
    name: 'Jackie',
    age: 62
    },
    {
    name: 'Chuck',
    age: 76
    },
    {
    name: 'Bruce',
    age: 61
    }
    ]
    },
    methods: {
    ageByTen: function (a, b) {
    return Math.floor(a.age / 10) - Math.floor(b.age / 10)
    }
    }
    })
    + +
    + +
      +
    • + {{ user.name }} - {{ user.age }} +
    • +
    +
    + + +
  • +
+

Array Extension Methods

Vue.js extends Array.prototype with two additional methods that makes it easier to perform some common Array operations while ensuring reactive updates are properly triggered.

+

array.$set(index, value)

    +
  • Arguments

    +
      +
    • {Number} index
    • +
    • {*} value
    • +
    +
  • +
  • Usage

    +

    Set an element in the array to a value by index and trigger view updates.

    +
    vm.animals.$set(0, { name: 'Aardvark' })
    +
  • +
  • See also: Array Detection Caveats

    +
  • +
+

array.$remove(reference)

    +
  • Arguments

    +
      +
    • {Reference} reference
    • +
    +
  • +
  • Usage

    +

    Remove an element from an array by reference and trigger view updates. This is a sugar method for first searching for the element in the array, and then if found, calling array.splice(index, 1).

    +
    var aardvark = vm.animals[0]
    vm.animals.$remove(aardvark)
    +
  • +
  • See also: Mutation Methods

    +
  • +
+ + + +
+ + +
+ + + + + + + + + diff --git a/archives/2014/03/index.html b/archives/2014/03/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2014/03/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/2014/07/index.html b/archives/2014/07/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2014/07/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/2014/11/index.html b/archives/2014/11/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2014/11/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/2014/12/index.html b/archives/2014/12/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2014/12/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/2014/index.html b/archives/2014/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2014/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/2015/06/index.html b/archives/2015/06/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2015/06/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/2015/10/index.html b/archives/2015/10/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2015/10/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/2015/12/index.html b/archives/2015/12/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2015/12/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/2015/index.html b/archives/2015/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2015/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/2016/02/index.html b/archives/2016/02/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2016/02/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/2016/03/index.html b/archives/2016/03/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2016/03/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/2016/04/index.html b/archives/2016/04/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2016/04/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/2016/index.html b/archives/2016/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/2016/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/index.html b/archives/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/archives/page/2/index.html b/archives/page/2/index.html new file mode 100644 index 0000000..b0ba569 --- /dev/null +++ b/archives/page/2/index.html @@ -0,0 +1,307 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + +
+ + + + + + + + + diff --git a/atom.xml b/atom.xml new file mode 100644 index 0000000..b9d2b59 --- /dev/null +++ b/atom.xml @@ -0,0 +1,431 @@ + + + Vue.js Indonesia - Documentation + + + + + 2016-08-19T05:12:47.000Z + http://docs.vuejs.id/ + + + Evan You + + + + Hexo + + + Announcing Vue.js 2.0 + + http://docs.vuejs.id/2016/04/27/announcing-2.0/ + 2016-04-27T06:33:00.000Z + 2016-08-19T05:12:47.000Z + + Today I am thrilled to announce the first public preview of Vue.js 2.0, which brings along many exciting improvements and new features. Let’s take a peek at what’s in store!

+ +

Even Leaner, Even Faster

Vue.js has always focused on staying light and fast, but 2.0 pushes it even further. The rendering layer is now based on a lightweight virtual-DOM implementation (based on Snabbdom) that improves initial rendering speed and memory consumption by up to 2~4x in most scenarios (check out these benchmarks). The template-to-virtual-DOM compiler and the runtime can be separated, so you can pre-compile templates and ship your app with only the runtime, which is less than 12kb min+gzip (as a reference, React 15 is 44kb min+gzip). The compiler also works in the browser, which means you can still drop in one script tag and start hacking, just like before. Even with the compiler included, the build is sitting at 17kb min+gzip, still lighter than the current 1.0 build.

+

Not Your Average Virtual-DOM

Now, just virtual-DOM sounds boring because there are so many implementations out there - but this one is different. Combined with Vue’s reactivity system, it provides optimized re-rendering out of the box without you having to do anything. Each component keeps track of its reactive dependencies during its render, so the system knows precisely when to re-render, and which components to re-render. No need for shouldComponentUpdate or immutable data structures - it just works.

+

In addition, Vue 2.0 applies some advanced optimizations during the template-to-virtual-DOM compilation phase:

+
    +
  1. It detects static class names and attributes so that they are never diffed after the initial render.

    +
  2. +
  3. It detects the maximum static sub trees (sub trees with no dynamic bindings) and hoist them out of the render function. So on each re-render, it directly reuses the exact same virtual nodes and skips the diffing.

    +
  4. +
+

These advanced optimizations can usually only be achieved via Babel plugins when using JSX, but with Vue 2.0 you can get them even using the in-browser compiler.

+

The new rendering system also allows you to disable reactive conversions by simply freezing your data and manually force updates, essentially giving you full control over the re-rendering process.

+

With these techniques combined, Vue 2.0 ensures blazing fast performance in every possible scenario while requiring minimal optimization efforts from the developer.

+

Templates, JSX, or Hyperscript?

Developers tend to have strong opinions on templates vs. JSX. On the one hand, templates are closer to HTML - they map better to the semantic structure of your app and make it much easier to think visually about the design, layout and styling. On the other hand, templates are limited to the DSL while the programmatic nature of JSX/hyperscript provides the full expressive power of a turing-complete language.

+

Being a designer/developer hybrid, I prefer writing most of my interfaces in templates, but in certain cases I do miss the flexibility of JSX/hyperscript. An example would be writing a component that programmatically handles its children, something not feasible with just the template-based slot mechanism.

+

Well, why not have both? In Vue 2.0, you can keep using the familiar template syntax, or drop down to the virtual-DOM layer whenever you feel constrained by the template DSL. Instead of the template option, just replace it with a render function. You can even embed render functions in your templates using the special <render> tag! The best of both worlds, in the same framework.

+

Streaming Server-side Rendering

With the migration to virtual-DOM, Vue 2.0 naturally supports server-side rendering with client-side hydration. One pain point of current mainstream server rendering implementations, such as React’s, is that the rendering is synchronous so it can block the server’s event loop if the app is complex. Synchronous server-side rendering may even adversely affect time-to-content on the client. Vue 2.0 provides built-in streaming server-side rendering, so that you can render your component, get a readable stream back and directly pipe it to the HTTP response. This ensures your server is responsive, and gets the rendered content to your users faster.

+

Unlocking More Possibilities

With the new architecture, there are even more possibilities to explore - for example, rendering to native interfaces on mobile. Currently, we are exploring a port of Vue.js 2.0 that uses weex as a native rendering backend, a project maintained by engineers at Alibaba Group, the biggest tech enterprise of China. It is also technically feasible to adapt Vue 2.0’s virtual-DOM to run inside ReactNative. We are excited to see how it goes!

+

Compatibility and What to Expect Next

Vue.js 2.0 is still in pre-alpha, but you can checkout the source code here. Despite being a full rewrite, the API is largely compatible with 1.0 with the exception of some intentional deprecations. Check out the same official examples written in 2.0 - you will see that not much has changed!

+

The feature deprecations are part of our continued effort to provide the simplest API possible for maximum developer productivity. You can check out a 1.0 vs. 2.0 feature comparison here. This does mean that it will take some effort to migrate an existing app if you happen to use some of these deprecated features heavily, but we will provide detailed upgrade guides in the future.

+

There is still much work left to be done. We will be releasing the first alpha once we reach satisfactory test coverage, and we are aiming for beta by end of May / early June. In addition to more tests, we also need to update the supporting libraries (vue-router, Vuex, vue-loader, vueify…). Currently only Vuex works with 2.0 out of the box, but we will make sure that everything works smoothly together when 2.0 ships.

+

We are also not forgetting about 1.x! 1.1 will be released alongside 2.0 beta, with an LTS period of 6-month critical bug fixes and 9-month security updates. It will also ship with optional deprecation warnings to get you prepared for upgrading to 2.0. Stay tuned!

+]]>
+ + + + <p>Today I am thrilled to announce the first public preview of Vue.js 2.0, which brings along many exciting improvements and new features. Let’s take a peek at what’s in store!</p> + + + + +
+ + + March 2016 Update + + http://docs.vuejs.id/2016/03/14/march-update/ + 2016-03-14T11:45:00.000Z + 2016-08-19T05:12:47.000Z + + Growing Community

Vue’s growth in the past year has been nothing short of amazing. As of today we are at over 15,000 stars on GitHub, over 500k downloads from npm, and over 2,000 users in the Gitter channel. What’s more exciting though, is that the community successfully organized the first London Vue.js Meetup and the first Paris Vue.js Meetup! A big shoutout to the awesome organizers: Jack, James and Eduardo.

+ +

If you are interested in connecting with Vue.js users near you and share your experiences in using Vue.js, joining a local Meetup is a great idea - even better, maybe you can organize one :)

+

Cool Things Being Built

More and more amazing things are being built with Vue. There are products like PageKit, Laravel Spark (coming soon) and Statamic, sleek apps like Koel and Gokotta, UI components like VueStrap and Vue-MDL, and smooth, interactive experiences like YouTube Adblitz and even the Facebook NewsFeed Marketing Site!

+

There are many other great projects - too many to be listed here - but you can check them all out in awesome-vue. If you’ve built great things with Vue, you should also add them to the list!

+

A New Vision For the Project

Some of you may have noticed that the development on the Vue.js core repo has slowed down lately - in the meanwhile, a lot of efforts went into other sub projects, namely Vuex, vue-devtools and the official Webpack project boilerplate. The next step is a new release for vue-router, and better documentation/examples demonstrating how Vue.js core, Vuex and vue-router work together in a large single page application.

+

All this adds together towards a new vision for the Vue.js project: a progressive framework that can adapt to different complexity levels. Vue.js core will remain “just the view layer” - you can still drop it on whatever existing page to replace jQuery, but the Vue.js project also includes other pieces like vue-router, Vuex, vue-loader/vueify and vue-cli that works together as a more complete, opinionated framework for single page applications. More on this in a later post.

+

Vue.js needs your help!

Open source is awesome, and I’m proud that Vue.js is helping people build real products all over the world. However, as the scope of the project grows, pushing new features while maintaining everything becomes a very demanding job. The good news is you can help!

+

Looking for collaborators

There are already users who frequently helps out in various ways, but this is an invitation to make things official. I’m looking for contributors to join the “team”, which is currently mostly just me. If that sounds interesting to you, take a look at the application here.

+

Looking for sponsors

Another way to help making Vue development sustainable is providing direct financial support. The more financial support I receive, the more time I get to spend on making Vue even better.

+

If you run a business and is using Vue in a revenue-generating product, it would make business sense to sponsor Vue development: it ensures the project that your product relies on stays healthy and actively maintained. It can also help your exposure in the Vue community and makes it easier to attract Vue developers.

+

If you are an individual user and have enjoyed the productivity of using Vue, consider donating as a sign of appreciation - like buying me coffee once in a while :)

+

In either case, you can provide recurring funding through Vue’s Patreon campaign, or provide one-time donations via PayPal. There are many ideas for Vue that I have lined up but haven’t had the time to embark on, and I would love to be able to work on them full time - I hope you can help me make that happen!

+]]>
+ + + + <h2 id="Growing-Community"><a href="#Growing-Community" class="headerlink" title="Growing Community"></a>Growing Community</h2><p>Vue’s growth in the past year has been nothing short of amazing. As of today we are at over 15,000 stars on GitHub, over 500k downloads from npm, and over 2,000 users in the Gitter channel. What’s more exciting though, is that the community successfully organized the first <a href="http://www.meetup.com/London-Vue-js-Meetup/">London Vue.js Meetup</a> and the first <a href="http://www.meetup.com/Vuejs-Paris/?scroll=true">Paris Vue.js Meetup</a>! A big shoutout to the awesome organizers: <a href="https://twitter.com/JackBarham">Jack</a>, <a href="https://twitter.com/onejamesbrowne/">James</a> and <a href="https://twitter.com/posva/">Eduardo</a>.</p> + + + + +
+ + + Common Beginner Gotchas + + http://docs.vuejs.id/2016/02/06/common-gotchas/ + 2016-02-06T03:00:00.000Z + 2016-08-19T05:12:47.000Z + + There are few types of questions that we frequently see from users who are new to Vue.js. Although they are all mentioned somewhere in the guide, they are easy to miss and can be hard to find when you do get bitten by the gotchas. Therefore we are aggregating them in this post and hopefully it can save you some time!

+ +

Why isn’t the DOM updating?

Most of the time, when you change a Vue instance’s data, the view updates. But there are two edge cases:

+
    +
  1. When you are adding a new property that wasn’t present when the data was observed. Due to the limitation of ES5 and to ensure consistent behavior across browsers, Vue.js cannot detect property addition/deletions. The best practice is to always declare properties that need to be reactive upfront. In cases where you absolutely need to add or delete properties at runtime, use the global Vue.set or Vue.delete methods.

    +
  2. +
  3. When you modify an Array by directly setting an index (e.g. arr[0] = val) or modifying its length property. Similarly, Vue.js cannot pickup these changes. Always modify arrays by using an Array instance method, or replacing it entirely. Vue provides a convenience method arr.$set(index, value) which is just syntax sugar for arr.splice(index, 1, value).

    +
  4. +
+

Further reading: Reactivity in Depth and Array Change Detection.

+

When is the DOM updated?

Vue.js uses an asynchronous queue to batch DOM updates. This means when you modify some data, the DOM updates do not happen instantly: they are applied asynchronously when the queue is flushed. So how do you know when the DOM has been updated? Use Vue.nextTick right after you modify the data. The callback function you pass to it will be called once the queue has been flushed.

+

Further reading: Async Update Queue.

+

Why does data need to be a function?

In the basic examples, we declare the data directly as a plain object. This is because we are creating only a single instance with new Vue(). However, when defining a component, data must be declared as a function that returns the initial data object. Why? Because there will be many instances created using the same definition. If we still use a plain object for data, that same object will be shared by reference across all instance created! By providing a data function, every time a new instance is created, we can simply call it to return a fresh copy of the initial data.

+

Further reading: Component Option Caveats.

+

HTML case insensitivity

All Vue.js templates are valid, parsable HTML markup, and Vue.js relies on spec-compliant parsers to process its templates. However, as specified in the standard, HTML is case-insensitive when matching tag and attribute names. This means camelCase attributes like :myProp="123" will be matched as :myprop="123". As a rule of thumb, you should use camelCase in JavaScript and kebab-case in templates. For example a prop defined in JavaScript as myProp should be bound in templates as :my-prop.

+

Further reading: camelCase vs. kebab-case.

+

We are also discussing the possibility of eliminating this inconsistency by resolving props and components in a case-insensitive manner. Join the conversation here.

+]]>
+ + + + <p>There are few types of questions that we frequently see from users who are new to Vue.js. Although they are all mentioned somewhere in the guide, they are easy to miss and can be hard to find when you do get bitten by the gotchas. Therefore we are aggregating them in this post and hopefully it can save you some time!</p> + + + + +
+ + + Announcing vue-cli + + http://docs.vuejs.id/2015/12/28/vue-cli/ + 2015-12-27T17:00:00.000Z + 2016-08-19T05:12:47.000Z + + Recently there has been a lot of discussion around the tooling hurdle when you start a React project. Luckily for Vue.js, all you need to do to start with a quick prototype is including it from a CDN via a <script> tag, so we’ve got that part covered. However, that’s not how you’d build a real world application. In real world applications we inevitably need a certain amount of tooling to give us modularization, transpilers, pre-processors, hot-reload, linting and testing. These tools are necessary for the long-term maintainability and productivity of large projects, but the initial setup can be a big pain. This is why we are announcing vue-cli, a simple CLI tool to help you quickly scaffold Vue.js projects with opinionated, battery-included build setups.

+ +

Just The Scaffolding

The usage looks like this:

+
npm install -g vue-cli
vue init webpack my-project
# answer prompts
cd my-project
npm install
npm run dev # tada!
+

All the CLI does is pulling down templates from the vuejs-templates organization on GitHub. Dependencies are handled via NPM, and build tasks are simply NPM scripts.

+

Official Templates

The purpose of official Vue project templates is providing opinionated, battery-included development tooling setups so that users can get started with actual app code as fast as possible. However, these templates are un-opinionated in terms of how you structure your app code and what libraries you use in addition to Vue.js.

+

All official project templates are repos in the vuejs-templates organization. When a new template is added to the organization, you will be able to run vue init <template-name> <project-name> to use that template. You can also run vue list to see all available official templates.

+

Current available templates include:

+
    +
  • browserify - A full-featured Browserify + vueify setup with hot-reload, linting & unit testing.

    +
  • +
  • browserify-simple - A simple Browserify + vueify setup for quick prototyping.

    +
  • +
  • webpack - A full-featured Webpack + vue-loader setup with hot reload, linting, testing & css extraction.

    +
  • +
  • webpack-simple - A simple Webpack + vue-loader setup for quick prototyping.

    +
  • +
+

Bring Your Own Setup

If you are not happy with the official templates, you can fork these templates, modify them to fit your specific needs (or even create your own from scratch), and use them via vue-cli too, because vue-cli can work directly on GitHub repos:

+
vue init username/repo my-project
+

Vue Components Everywhere

There are different templates for different purposes: simple setups for quick prototyping, and full-featured setups for ambitious applications. A common feature among these templates though, is that they all support *.vue single file components. This means any third party Vue components written as valid *.vue files can be shared among projects using these setups, and simply be distributed over NPM - let’s create more reusable components!

+]]>
+ + + + <p>Recently there has been a lot of <a href="https://medium.com/@ericclemmons/javascript-fatigue-48d4011b6fc4#.chg95e5p6">discussion around the tooling hurdle</a> when you start a React project. Luckily for Vue.js, all you need to do to start with a quick prototype is including it from a CDN via a <code>&lt;script&gt;</code> tag, so we’ve got that part covered. However, that’s not how you’d build a real world application. In real world applications we inevitably need a certain amount of tooling to give us modularization, transpilers, pre-processors, hot-reload, linting and testing. These tools are necessary for the long-term maintainability and productivity of large projects, but the initial setup can be a big pain. This is why we are announcing <a href="https://github.com/vuejs/vue-cli">vue-cli</a>, a simple CLI tool to help you quickly scaffold Vue.js projects with opinionated, battery-included build setups.</p> + + + + +
+ + + Why Vue.js doesn't support templateURL + + http://docs.vuejs.id/2015/10/28/why-no-template-url/ + 2015-10-28T03:56:00.000Z + 2016-08-19T05:12:47.000Z + + A very common question from new Vue users, especially those who used Angular before, is “can I have templateURL?”. I have answered this so many times and I figure it’s better to write something about it.

+ +

In Angular, templateURL or ng-include allows the user to dynamically load a remote template file at runtime. This seems pretty convenient as a built-in feature, but let’s rethink what problem it solves.

+

First, it allows us to write our template in a separate HTML file. This gives us proper syntax highlighting in editors, which is probably why many prefer to do so. But is splitting your JavaScript code and the template really the best way? For a Vue.js component, its template and its JavaScript is tightly coupled by nature - it’s in fact much simpler if things are just in the same file. The context switching of jumping back and forth between two files actually makes the development experience much worse. Conceptually, components are the basic building block of a Vue.js app, not templates. Every Vue.js template is coupled to an accompanying JavaScript context - there’s no point in splitting them further apart.

+

Second, because templateURL loads the template via Ajax at runtime, you don’t need a build step in order to split up your files. This is convenient during development, but comes at a serious cost when you want to deploy it to production. Before HTTP/2 is universally supported, the number of HTTP requests is still probably the most critical factor in your app’s initial load performance. Now imagine you use templateURL for every component in your app - the browser needs to perform dozens of HTTP requests before even being able to display anything! In case you don’t know, most browsers limit the number of parallel requests it can perform to a single server. When you exceed that limit, your app’s initial rendering will suffer for every extra round trip the browser has to wait for. Sure, there are build tools that can help you pre-register all those templates in $templateCache - but that shows us a build step is, in fact, inevitable for any serious frontend development.

+

So, without templateURL, how do we deal with the development experience problem? Writing templates as inline JavaScript strings is terrible, faking templates with <script type="x/template"> also feels like a hack. Well, maybe it’s time to up the game a bit and use a proper module bundler like Webpack or Browserify. It might seem daunting if you’ve never dealt with them before, but trust me it’s worth it to take the leap. Proper modularization is a necessity if you want to build anything large and maintainable. More importantly, you get to write your Vue components in a single file, with proper syntax highlighting and the extra benefits of custom pre-processors, hot-reloading, ES2015 by default, autoprefixing and scoped CSS, which makes the development experience 10 times better.

+

Finally, Vue does allow you to lazy load your components, and with Webpack it is trivially easy. Although this is only a concern when your initial bundle is so large that you are better off splitting it apart.

+

Think in components, not templates.

+]]>
+ + + + <p>A very common question from new Vue users, especially those who used Angular before, is “can I have <code>templateURL</code>?”. I have answered this so many times and I figure it’s better to write something about it.</p> + + + + +
+ + + Vue.js 1.0.0 Released + + http://docs.vuejs.id/2015/10/26/1.0.0-release/ + 2015-10-26T03:00:00.000Z + 2016-08-19T05:12:47.000Z + + +

Hi HN! If you are not familiar with Vue.js, you might want to read this blog post for a higher level overview.

+ +

After 300+ commits, 8 alphas, 4 betas and 2 release candidates, today I am very proud to announce the release of Vue.js 1.0.0 Evangelion! Many thanks to all those who participated in the API re-design process - it would not have been possible without all the input from the community.

+ +

Improved Template Syntax

The 1.0 template syntax resolves a lot of subtle consistency issues and makes Vue templates more concise and more readable in general. The most notable new feature is the shorthand syntax for v-on and v-bind:

+
<!-- short for v-bind:href -->
<a :href="someURL"></a>
<!-- short for v-on:click -->
<button @click="onClick"></button>
+

When used on a child component, v-on listens for custom events and v-bind can be used to bind props. The shorthands using child components very succinct:

+
<item-list
:items="items"
@ready="onItemsReady"
@update="onItemsUpdate">
</item-list>
+

API Cleanup

The overall goal for Vue.js 1.0 is to make it suitable for larger projects. This is why there are many API deprecations. Except for ones that are barely used, the most common reason for a deprecation is that the feature leads to patterns that damages maintainability. Specifically, we are deprecating features that make it hard to maintain and refactor a component in isolation without affecting the rest of the project.

+

For example, the default asset resolution in 0.12 has implicit fallbacks to parents in the component tree. This makes the assets available to a component non-deterministic and subject how it is used at runtime. In 1.0, all assets are now resolved in strict mode and there are no longer implicit fallbacks to parent. The inherit option is also removed, because it too often leads to tightly coupled components that are hard to refactor.

+

Faster Initial Rendering

1.0 replaces the old v-repeat directive with v-for. In addition to providing the same functionality and more intuitive scoping, v-for provides up to 100% initial render performance boost when rendering large lists and tables!

+

More Powerful Tooling

There are also exciting things going on outside of Vue.js core - vue-loader and vueify have received major upgrades including:

+
    +
  • Hot component reloading. When a *.vue component is edited, all of its active instances are hot swapped without reloading the page. This means when making small changes, e.g. tweaking the styles or the template, your app doesn’t need to fully reload; the state of the app the swapped component can be preserved, drastically improving the development experience.

    +
  • +
  • Scoped CSS. By simply adding a scoped attribute to your *.vue component style tags, the component’s template and final generated CSS are magically re-written to ensure a component’s styles are only applied to its own elements. Most importantly, the styles specified in a parent component does not leak down to child components nested within it.

    +
  • +
  • ES2015 by default. JavaScript is evolving. You can write much cleaner and expressive code using the latest syntax. vue-loader and vueify now transpiles the JavaScript in your *.vue components out of the box, without the need for extra setup. Write future JavaScript today!

    +
  • +
+

Combined with vue-router, Vue.js is now more than a library - it provides a solid foundation for building complex SPAs.

+

What’s Next?

As what 1.0.0 usually suggests, the core API will stay stable for the foreseeable future and the library is ready for production use. Future development will focus on:

+
    +
  1. Improving vue-router and make it production ready.

    +
  2. +
  3. Streamlining the developer experience, e.g. a better devtool and a CLI for scaffolding Vue.js projects and components.

    +
  4. +
  5. Providing more learning resources such as tutorials and examples.

    +
  6. +
+]]>
+ + + + <blockquote> +<p>Hi HN! If you are not familiar with Vue.js, you might want to read this <a href="http://blog.evanyou.me/2015/10/25/vuejs-re-introduction/">blog post</a> for a higher level overview.</p> +</blockquote> +<p>After 300+ commits, 8 alphas, 4 betas and 2 release candidates, today I am very proud to announce the release of <a href="https://github.com/vuejs/vue/releases/tag/1.0.0">Vue.js 1.0.0 Evangelion</a>! Many thanks to all those who participated in the API re-design process - it would not have been possible without all the input from the community.</p> + + + + +
+ + + Vue.js 0.12 released! + + http://docs.vuejs.id/2015/06/11/012-release/ + 2015-06-11T10:37:30.000Z + 2016-08-19T05:12:47.000Z + + I’m really excited to announce that Vue.js 0.12: Dragon Ball is finally here! Thanks to everyone who tried out the beta/rc versions and provided feedback / bug reports along the way.

+

There’s a lot to cover in this release, and we will talk about a few highlights below. However, it is still recommended to carefully go through the Full Release Note and updated docs if you are upgrading from 0.11. You can report bugs on GitHub, send questions to vuejs/Discussion, or join us in the Gitter chat channel.

+ +

More Consistent Component Syntax

Previously in 0.11 you have two ways to use a Vue.js component: using the v-component directive, or using custom elements. There are also two ways to pass data down to child components: using the v-with directive, or using the paramAttributes option. Although both custom elements and param attributes get compiled down to directives eventually, it is confusing and redundant to have two sets of syntax for the same functionality.

+

In addition, it should be noted that the component system is a first-class concept in Vue.js, even more important than directives. It defines how we encapsulate our higher-level view logic and compose our application. In the meanwhile, having a clear and declarative way to pass data into child components is also very important. Components and param attributes really deserve their own dedicated syntax to differentiate from other directives.

+

As a result, v-component and v-with have been deprecated in 0.12. paramAttributes has also been renamed to props, which is shorter and cleaner. From now on, most Vue.js components will look like this:

+
<my-component prop="{{parentData}}"></my-component>
+

There are also additional props-related improvements such as explicit one-time or one-way props, expression as props, methods as prop callbacks and more. You can find out more details in the 0.12 release notes linked above and the updated Component System section of the guide.

+

Filter Arguments Improvements

In 0.11, filters always receive their arguments as plain strings. An argument can be enclosed in quotes to include whitespace, but the quotes are not automatically stripped when passed into the filter function. Some users were also confused about how to retrive a dynamic value on the vm instead of a plain string.

+

In 0.12, the filter argument syntax now follows a simple rule: if an argument is enclosed in quotes, it will be passed in as a plain string; otherwise, it will be evaluated against the current vm as a dynamic value.

+

This means the usage of some existing filters will have to change:

+
<a v-on="keyup: onKeyUp | key 'enter'"></a>
{{ items.length | pluralize 'item' }}
+

But it would make custom filters that rely on dynamic values much easier to write:

+
{{ msg | concat otherMsg }}
+

Here the first argument to the concat filter will be the value of this.otherMsg.

+

Asynchronous Components

It is common practice to bundle all the JavaScript into one file when building large single page applications. But when the file becomes too large, we may want to defer loading parts of our application for a faster initial load. However, this does pose some constraints on how the application architecture should be designed. It could be very tricky to figure out how to properly split up your JavaScript bundles.

+

Well, with Vue.js we can already build our applications as decoupled components. If we can lazily load a dynamic component only when it is needed, wouldn’t it be awesome? As a matter of fact, in 0.12 this would be trivially easy with the new Asynchronous Component feature.

+

In 0.12, you can define a component as a factory function that asynchronously resolves a component definition (can be just a plain options object). Vue.js will only trigger the factory function when the component actually needs to be rendered, and will cache the result for future re-renders:

+
Vue.component('async-example', function (resolve, reject) {
setTimeout(function () {
resolve({
template: '<div>I am async!</div>'
})
}, 1000)
})
+

It is up to you to decide how to load the component from the server, e.g. $.getScript() or require.js; but the recommended usage is to pair it up with Webpack’s Code Splitting feature:

+
Vue.component('async-webpack-example', function (resolve, reject) {
// In Webpack AMD like syntax indicates a code split point
require(['./my-async-component'], resolve)
})
+

That’s all you need to do. You can use the component just like before, without even thinking about it being async. Webpack will automatically split your final JavaScript into separate bundles with correct dependencies, and automatically load a bundle via Ajax when it is required. You can check out a fully functional example here.

+

Improved Transition System

Vue.js’ transition system is really easy to use, but in the past it has the limitation that you cannot mix CSS and JavaScript-based transitions together. In 0.12 that is no longer the case! The improved transition system now allows you to add JavaScript hooks to a CSS-based transition for additional control. The amount of hooks exposed have also been expanded to give you finer-grained control at every stage of the transition.

+

v-repeat now also ships with built-in support for staggering transitions. It is as simple as adding stagger="100" to your repeated element. It is also possible to define separate staggering for enter and leaving, or even dynamically calculate the staggering delay in a JavaScript hook.

+

For full details on the new transition system, check out the updated guide.

+

Performance Tuning

Vue.js’ precise dependency tracking makes it the one of the most efficient view layer for small hot updates, but there’s always room for improvement. In 0.12, internal instance creation and compilation refactors have improved first-render performance for large lists by up to 40%. With proper track-by usage, re-rendering with large, brand new dataset is also comparable to, or even faster than other Virtual-DOM based frameworks.

+

One More Thing…

With 0.12 out of the door, more efforts will now be spent on the official vue-router, a dedicated routing library for Vue.js with nested view matching, full transition support, and asynchronous data hooks. I have expressed that Vue.js core intends to stay as a no-frills, drop-in view layer library, and that will not change. The vue-router will be shipped separately and is totally optional, however you can expect it to work seamlessly with Vue.js core when you need it.

+]]>
+ + + + <p>I’m really excited to announce that <a href="https://github.com/yyx990803/vue/releases/tag/0.12.0">Vue.js 0.12: Dragon Ball</a> is finally here! Thanks to everyone who tried out the beta/rc versions and provided feedback / bug reports along the way.</p> +<p>There’s a lot to cover in this release, and we will talk about a few highlights below. However, it is still recommended to carefully go through the <a href="https://github.com/yyx990803/vue/releases/tag/0.12.0">Full Release Note</a> and updated docs if you are upgrading from 0.11. You can report bugs on GitHub, send questions to <a href="https://github.com/vuejs/Discussion/issues">vuejs/Discussion</a>, or join us in the <a href="https://gitter.im/yyx990803/vue">Gitter chat channel</a>.</p> + + + + +
+ + + 0.11 Component Tips + + http://docs.vuejs.id/2014/12/08/011-component/ + 2014-12-08T08:02:14.000Z + 2016-08-19T05:12:47.000Z + + Note: this post contains information for the outdated 0.11 version. Please refer to the 0.12 release notes for the changes in the API.

+ +

The release of 0.11 introduced many changes, but the most important one is how the new component scope works. Previously in 0.10.x, components have inherited scope by default. That means in a child component template you can reference parent scope properties. This often leads to tightly-coupled components, where a child component assumes knowledge of what properties are present in the parent scope. It is also possible to accidentally refer to a parent scope property in a child component.

+ +

Isolated Scope and Data Passing

Starting in 0.11, all child components have isolated scope by default, and the recommended way to control component data access is via Explicit Data Passing using v-with or paramAttributes.

+

paramAttributes enables us to write Web Component style templates:

+
Vue.component('my-component', {
paramAttributes: ['params'],
compiled: function () {
console.log(this.params) // passed from parent
}
})
+
<my-component params="{{params}}"></my-component>
+

Where Does It Belong?

Previously in 0.10, all directives on a component’s container element are compiled in the child component’s scope. Because it inherited parent scope, this worked in most situations. Starting in 0.11.1, we want to provide a cleaner separation between component scopes. The rule of thumbs is: if something appears in the parent template, it will be compiled in parent scope; if it appears in child template, it will be compiled in child scope. For example:

+
<!-- parent template -->
<div v-component="child" v-on="click:onParentClick">
<p>{{parentMessage}}</p>
</div>
+
<!-- child template, with replace: true -->
<div v-on="click:onChildClick">
<h1>{{childMessage}}</h1>
<content></content>
</div>
+

Everything in the parent template will be compiled in the parent’s scope, including the content that’s going to be inserted into the child component.

+

The only exception to the rule is v-with (and paramAttributes which compiles down to v-with), which works in both places - so you don’t need to worry about it too much.

+

Cleaner Event Communication

Previously the standard way for a child component to communicate to its parent is via dispatching events. However, with this approach, the event listeners on the parent component are not guaranteed to be listening on the desired child component only. It’s also possible to trigger undesired listners further up the chain if we do not cancel the event.

+

The most common use case is for a parent to react to the events from a specific, direct child component. So in 0.11.4, a new directive v-events has been introduced to enable exactly this behavior.

+

0.11.4 has already been released, go try it out!

+]]>
+ + + + <p class="tip">Note: this post contains information for the outdated 0.11 version. Please refer to the <a href="https://github.com/yyx990803/vue/releases">0.12 release notes</a> for the changes in the API.</p> + +<p>The release of 0.11 introduced <a href="https://github.com/yyx990803/vue/blob/master/changes.md">many changes</a>, but the most important one is how the new component scope works. Previously in 0.10.x, components have inherited scope by default. That means in a child component template you can reference parent scope properties. This often leads to tightly-coupled components, where a child component assumes knowledge of what properties are present in the parent scope. It is also possible to accidentally refer to a parent scope property in a child component.</p> + + + + +
+ + + Vue.js 0.11 released! + + http://docs.vuejs.id/2014/11/09/vue-011-release/ + 2014-11-09T02:23:40.000Z + 2016-08-19T05:12:47.000Z + + After the long wait, Vue.js 0.11 Cowboy Bebop is finally here! Thanks to everyone who tried out the release candidate versions and provided feedback / bug reports along the way.

+ +

The 0.11 release introduced many new features and also a fair number of breaking changes, so please carefully read through the 0.11 Change List before upgrading. Aside from the API changes, 0.11 also ships with better code quality and test coverage, and is considerably more robust in almost every aspect.

+

This documentation site has been fully upgraded to match the new 0.11 API. For the now legacy 0.10.6 version, you can still find documentations for it at legacy.vuejs.org.

+]]>
+ + + + <p>After the long wait, <a href="https://github.com/yyx990803/vue/releases/tag/0.11.0">Vue.js 0.11 <strong>Cowboy Bebop</strong></a> is finally here! Thanks to everyone who tried out the release candidate versions and provided feedback / bug reports along the way.</p> + + + + +
+ + + Vue.js 0.10.6, and what's next + + http://docs.vuejs.id/2014/07/29/vue-next/ + 2014-07-28T17:04:55.000Z + 2016-08-19T05:12:47.000Z + + 0.10.6

Vue.js 0.10.6 has been released! This is another small bug-fix release and will be the last maintainance version before the next major release.

+ +
    +
  • fix v-style error when value is falsy or a number. ( thanks to @dmfilipenko )
  • +
  • fix the built-in currency filter error when value is a string ( thanks to @dmfilipenko )
  • +
  • fix Vue.require for building with Component v1.0+ ( thanks to @kewah )
  • +
  • Allow template nodes to be passed as a template option ( thanks to @jordangarcia )
  • +
  • vm.$destroy() now accepts an optional argument noRemove. When passed in as true it will leave the vm’s DOM node intact after the vm is destroyed.
  • +
+

Vue-next

Some of you might have noticed there is a next branch in the repo. And yes, I am re-writing Vue.js from scratch. There are two main reasons:

+
    +
  • Fix some issues that are caused by design flaws in the current version. Because these changes affect the design of some core modules, it is actually easier to rewrite than to apply on the current codebase.
  • +
  • Improve general code quality (in particular, compiler.js as of now is a big pile of mess, and comments are not consistent across the codebase.)
  • +
+

Take note that the next branch is still in very early stage. The internals will change a lot, and when it comes out it will break current applications. Despite that I will try to keep the API changes to a minimum. Major differences with current 0.10 branch are documented in changes.md. The list is obviously incomplete and subject to change, some of them are simply ideas, but it at least gives you a taste of what to expect, and I’d appreicate your feedback on any of the topics.

+

Share your thoughts at vuejs/Discussion.

+]]>
+ + + + <h2 id="0-10-6"><a href="#0-10-6" class="headerlink" title="0.10.6"></a>0.10.6</h2><p>Vue.js 0.10.6 has been released! This is another small bug-fix release and will be the last maintainance version before the next major release.</p> + + + + +
+ + + Vue.js 0.10 is here! + + http://docs.vuejs.id/2014/03/22/vuejs-010-release/ + 2014-03-22T12:00:13.000Z + 2016-08-19T05:12:47.000Z + + Vue.js 0.10.0 (Blade Runner) has been released! This release comes with many useful additions based on the suggestions from the users, notably interpolation in literal directives, dynamic components with the new v-view directive, array filters, and the option to configure interpolation delimiters. Internally, the codebase has received many refactoring and improvements which makes Vue.js even faster.

+ +

See the Installation page for the latest builds.

+

New

    +
  • Literal directives can now contain interpolation tags. These tags will be evaluated only once at compile time. An example usage is conditionally decide which component to instantiate with v-component="{{type}}". Doc.
  • +
  • Attributes listed in the paramAttributes option now accept mustache interpolations too. They will also only be evaluated once.
  • +
  • v-repeat now accepts an argument which will be used as the identifier for the wrapped object. This allows more explicit property access in repeaters. Doc.
  • +
  • Added v-view directive which binds to a string value and dynamically instantiate different components using that string as the component ID. Doc.
  • +
  • Added filterBy and orderBy filters for v-repeat. Doc.
  • +
  • Custom filters that access properties on its this context will be considered computed filters. Doc.
  • +
  • You can now access the event in v-on handler expressions as $event. Example: <a v-on="click:handle('hello', $event)">Hello</a>
  • +
  • Interpolation delimiters can now be customized via the delimiters global config option. Example: Vue.config({ delimiters: ["[", "]"] }) will change the matched interpolation tags to [[ ]] for text bindings and [[[ ]]] for html bindings.
  • +
+

Changed

    +
  • {{>yield}} syntax has been deprecated. A Web Components spec compatible content insertion mechanism using <content> elements has been introduced. Doc.
  • +
  • To use a component as a custom element, the component ID must now contain a hyphen (-). This is consistent with the current custom element spec draft.
  • +
  • v-repeat Arrays’ augmented methods have been renamed from set to $set(index, value) and remove to $remove(index | value). The prefix better differentiates them from native methods. The replace method has been removed.
  • +
  • When iterating over an Object with v-repeat, the object no longer gets a $repeater array. Instead, the object is now augmented with two methods: $add(key, value) and $delete(key), which will trigger corresponding view updates.
  • +
  • v-if now creates and destroys a child ViewModel instance when the binding value changes, instead of simply removing/inserting the DOM node. In addition, it can no longer be used with v-repeat. Use v-show or the new built-in array filters instead.
  • +
  • v-with can no longer be used alone. It now must be used with either v-component or v-view. v-component can also be used as an empty directive just to create a child VM using the default Vue constructor.
  • +
  • Production build now strips all warnings and debug logs. To leverage debug: true, use the development version. The development version now has more detailed warning messages.
  • +
+

Fixed

    +
  • event.stopPropagation() and event.preventDefault() inside v-on handlers now work as expected.
  • +
  • parent option now works properly when used in Vue.extend
  • +
  • Mustache bindings inside <textarea> are now properly interpolated before being set as value.
  • +
+

Internal

    +
  • v-component, v-with and v-if have been re-written for a cleaner compile flow.
  • +
  • v-repeat has been re-written to use refined diff algorithm which triggers minimum DOM manipulations when the array is set to a different instance containing overlapping elements. This makes it efficient to pipe an Array through filters.
  • +
  • template option now directly clones native <template>‘s content when available.
  • +
  • Overall performance improvements for both initialization and rendering.
  • +
+]]>
+ + + + <p>Vue.js 0.10.0 (Blade Runner) has been released! This release comes with many useful additions based on the suggestions from the users, notably interpolation in literal directives, dynamic components with the new <code>v-view</code> directive, array filters, and the option to configure interpolation delimiters. Internally, the codebase has received many refactoring and improvements which makes Vue.js <a href="http://vuejs.org/perf/">even faster</a>.</p> + + + + +
+ +
diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 0000000..2b3b3e0 --- /dev/null +++ b/blog/index.html @@ -0,0 +1,195 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+

The Vue.js Blog

+

+ + + +

+ +
+

Announcing Vue.js 2.0

+

Apr 27, 2016

+

Today I am thrilled to announce the first public preview of Vue.js 2.0, which brings along many exciting improvements and new features. Let’s take a peek at what’s in store!

+ ... continue reading +
+ +
+

March 2016 Update

+

Mar 14, 2016

+

Growing Community

Vue’s growth in the past year has been nothing short of amazing. As of today we are at over 15,000 stars on GitHub, over 500k downloads from npm, and over 2,000 users in the Gitter channel. What’s more exciting though, is that the community successfully organized the first London Vue.js Meetup and the first Paris Vue.js Meetup! A big shoutout to the awesome organizers: Jack, James and Eduardo.

+ ... continue reading +
+ +
+

Common Beginner Gotchas

+

Feb 6, 2016

+

There are few types of questions that we frequently see from users who are new to Vue.js. Although they are all mentioned somewhere in the guide, they are easy to miss and can be hard to find when you do get bitten by the gotchas. Therefore we are aggregating them in this post and hopefully it can save you some time!

+ ... continue reading +
+ +
+

Announcing vue-cli

+

Dec 28, 2015

+

Recently there has been a lot of discussion around the tooling hurdle when you start a React project. Luckily for Vue.js, all you need to do to start with a quick prototype is including it from a CDN via a <script> tag, so we’ve got that part covered. However, that’s not how you’d build a real world application. In real world applications we inevitably need a certain amount of tooling to give us modularization, transpilers, pre-processors, hot-reload, linting and testing. These tools are necessary for the long-term maintainability and productivity of large projects, but the initial setup can be a big pain. This is why we are announcing vue-cli, a simple CLI tool to help you quickly scaffold Vue.js projects with opinionated, battery-included build setups.

+ ... continue reading +
+ +
+

Why Vue.js doesn't support templateURL

+

Oct 28, 2015

+

A very common question from new Vue users, especially those who used Angular before, is “can I have templateURL?”. I have answered this so many times and I figure it’s better to write something about it.

+ ... continue reading +
+ +
+

Vue.js 1.0.0 Released

+

Oct 26, 2015

+
+

Hi HN! If you are not familiar with Vue.js, you might want to read this blog post for a higher level overview.

+
+

After 300+ commits, 8 alphas, 4 betas and 2 release candidates, today I am very proud to announce the release of Vue.js 1.0.0 Evangelion! Many thanks to all those who participated in the API re-design process - it would not have been possible without all the input from the community.

+ ... continue reading +
+ +
+

Vue.js 0.12 released!

+

Jun 11, 2015

+

I’m really excited to announce that Vue.js 0.12: Dragon Ball is finally here! Thanks to everyone who tried out the beta/rc versions and provided feedback / bug reports along the way.

+

There’s a lot to cover in this release, and we will talk about a few highlights below. However, it is still recommended to carefully go through the Full Release Note and updated docs if you are upgrading from 0.11. You can report bugs on GitHub, send questions to vuejs/Discussion, or join us in the Gitter chat channel.

+ ... continue reading +
+ +
+

0.11 Component Tips

+

Dec 8, 2014

+

Note: this post contains information for the outdated 0.11 version. Please refer to the 0.12 release notes for the changes in the API.

+ +

The release of 0.11 introduced many changes, but the most important one is how the new component scope works. Previously in 0.10.x, components have inherited scope by default. That means in a child component template you can reference parent scope properties. This often leads to tightly-coupled components, where a child component assumes knowledge of what properties are present in the parent scope. It is also possible to accidentally refer to a parent scope property in a child component.

+ ... continue reading +
+ +
+

Vue.js 0.11 released!

+

Nov 9, 2014

+

After the long wait, Vue.js 0.11 Cowboy Bebop is finally here! Thanks to everyone who tried out the release candidate versions and provided feedback / bug reports along the way.

+ ... continue reading +
+ +
+

Vue.js 0.10.6, and what's next

+

Jul 29, 2014

+

0.10.6

Vue.js 0.10.6 has been released! This is another small bug-fix release and will be the last maintainance version before the next major release.

+ ... continue reading +
+ +
+

Vue.js 0.10 is here!

+

Mar 22, 2014

+

Vue.js 0.10.0 (Blade Runner) has been released! This release comes with many useful additions based on the suggestions from the users, notably interpolation in literal directives, dynamic components with the new v-view directive, array filters, and the option to configure interpolation delimiters. Internally, the codebase has received many refactoring and improvements which makes Vue.js even faster.

+ ... continue reading +
+ +
+ + +
+ + + + + + + + + diff --git a/css/benchmark.css b/css/benchmark.css new file mode 100644 index 0000000..07c3552 --- /dev/null +++ b/css/benchmark.css @@ -0,0 +1,39 @@ +#benchmark-results { + margin-bottom: 2em; +} +#benchmark-results ul { + list-style-type: none; + padding: 0; + margin-left: 0; +} +#benchmark-results .framework, +#benchmark-results .time, +#benchmark-results .bar, +#benchmark-results .inner { + display: inline-block; +} +#benchmark-results .framework { + width: 4.2em; + margin-right: 1em; + font-weight: 600; +} +#benchmark-results .time { + width: 4.2em; + margin-right: 1em; +} +#benchmark-results .bar { + width: 60%; +} +#benchmark-results .bar.min .inner { + background-color: #e74c3c; +} +#benchmark-results .inner { + height: 3px; + vertical-align: middle; + background-color: #3498db; +} +@media screen and (max-width: 600px) { + #benchmark-results .bar { + width: 45%; + } +} diff --git a/css/index.css b/css/index.css new file mode 100644 index 0000000..baee249 --- /dev/null +++ b/css/index.css @@ -0,0 +1,771 @@ +.gutter pre { + color: #999; +} +pre { + color: #525252; +} +pre .function .keyword, +pre .constant { + color: #0092db; +} +pre .keyword, +pre .attribute { + color: #e96900; +} +pre .number, +pre .literal { + color: #ae81ff; +} +pre .tag, +pre .tag .title, +pre .change, +pre .winutils, +pre .flow, +pre .lisp .title, +pre .clojure .built_in, +pre .nginx .title, +pre .tex .special { + color: #2973b7; +} +pre .class .title { + color: #fff; +} +pre .symbol, +pre .symbol .string, +pre .value, +pre .regexp { + color: #42b983; +} +pre .title { + color: #a6e22e; +} +pre .tag .value, +pre .string, +pre .subst, +pre .haskell .type, +pre .preprocessor, +pre .ruby .class .parent, +pre .built_in, +pre .sql .aggregate, +pre .django .template_tag, +pre .django .variable, +pre .smalltalk .class, +pre .javadoc, +pre .django .filter .argument, +pre .smalltalk .localvars, +pre .smalltalk .array, +pre .attr_selector, +pre .pseudo, +pre .addition, +pre .stream, +pre .envvar, +pre .apache .tag, +pre .apache .cbracket, +pre .tex .command, +pre .prompt { + color: #42b983; +} +pre .comment, +pre .java .annotation, +pre .python .decorator, +pre .template_comment, +pre .pi, +pre .doctype, +pre .deletion, +pre .shebang, +pre .apache .sqbracket, +pre .tex .formula { + color: #b3b3b3; +} +pre .coffeescript .javascript, +pre .javascript .xml, +pre .tex .formula, +pre .xml .javascript, +pre .xml .vbscript, +pre .xml .css, +pre .xml .cdata { + opacity: 0.5; +} +body { + font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; + font-size: 15px; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + color: #34495e; + margin: 0; +} +a { + text-decoration: none; + color: #34495e; +} +img { + border: none; +} +h1, +h2, +h3, +h4, +strong { + font-weight: 600; + color: #2c3e50; +} +code, +pre { + font-family: 'Roboto Mono', Monaco, courier, monospace; + font-size: 0.8em; + background-color: #f8f8f8; + -webkit-font-smoothing: initial; + -moz-osx-font-smoothing: initial; +} +code { + color: #e96900; + padding: 3px 5px; + margin: 0 2px; + border-radius: 2px; + white-space: nowrap; +} +em { + color: #7f8c8d; +} +p { + word-spacing: 0.05em; +} +a.button { + display: inline-block; + font-weight: 700; + color: #fff; + background-color: #4fc08d; + transition: all 0.15s ease; + font-family: 'Roboto Mono', Monaco, courier, monospace; + border-bottom: 2px solid #3aa373; + padding: 12px 14px; + border-radius: 4px; +} +a.button:hover { + background-color: #5dc596; + -webkit-transform: scale(1.03); + transform: scale(1.03); +} +a.small-button { + display: inline-block; + font-weight: 700; + color: #fff; + background-color: #4fc08d; + transition: all 0.15s ease; + padding: 4px 8px 5px; + border-radius: 4px; + width: 140px; + margin: 0 5px; +} +a.small-button:hover { + background-color: #5dc596; + -webkit-transform: scale(1.03); + transform: scale(1.03); +} +.highlight { + overflow-x: auto; + position: relative; + padding: 0; + background-color: #f8f8f8; + padding: 0.8em 0.8em 0.4em; + line-height: 1.1em; + border-radius: 2px; +} +.highlight table, +.highlight tr, +.highlight td { + width: 100%; + border-collapse: collapse; + padding: 0; + margin: 0; +} +.highlight .gutter { + width: 1.5em; +} +.highlight .code pre { + padding: 1.2em 1.4em; + line-height: 1.5em; + margin: 0; +} +.highlight.html .code:after, +.highlight.js .code:after, +.highlight.bash .code:after, +.highlight.css .code:after { + position: absolute; + top: 0; + right: 0; + color: #ccc; + text-align: right; + font-size: 0.75em; + padding: 5px 10px 0; + line-height: 15px; + height: 15px; + font-weight: 600; +} +.highlight.html .code:after { + content: 'HTML'; +} +.highlight.js .code:after { + content: 'JS'; +} +.highlight.bash .code:after { + content: 'Shell'; +} +.highlight.css .code:after { + content: 'CSS'; +} +#main { + position: relative; + z-index: 1; + padding: 0 60px 30px; + overflow-x: hidden; +} +#ad { + width: 140px; + text-align: center; + position: fixed; + z-index: 99; + bottom: 10px; + right: 10px; + padding: 10px; + background-color: rgba(255,255,255,0.65); + border-radius: 3px; + font-size: 13px; +} +#ad a { + color: #7f8c8d; + font-weight: normal; +} +#ad span { + display: inline-block; + margin-bottom: 5px; +} +#ad img { + width: 125px; +} +#nav .nav-link { + cursor: pointer; +} +#nav .nav-dropdown-container .nav-link:hover { + border-bottom: none; +} +#nav .nav-dropdown-container:hover .nav-dropdown { + display: block; +} +#nav .nav-dropdown { + display: none; + position: absolute; + top: 100%; + left: 0; + background-color: #fff; + padding: 10px 0; + border: 1px solid #ddd; + border-bottom-color: #ccc; + text-align: left; + border-radius: 4px; +} +#nav .nav-dropdown li { + line-height: 1.8em; + margin: 0; + display: block; +} +#nav .nav-dropdown a { + color: #7f8c8d; + font-size: 0.9em; + display: block; + padding: 0 30px 0 20px; +} +#nav .nav-dropdown a:hover { + color: #42b983; +} +#nav .arrow { + display: inline-block; + vertical-align: middle; + margin-top: -1px; + margin-left: 6px; + margin-right: -14px; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid #ccc; +} +#donate { + height: 24px; +} +#donate .wrapper { + vertical-align: top; + height: 20px; + border: 1px solid #d4d4d4; + display: inline-block; + box-sizing: border-box; + line-height: 16px; + border-radius: 3px; + cursor: pointer; + background-image: linear-gradient(to bottom, #fcfcfc 0, #eee 100%); + position: relative; + width: 72px; +} +#donate .wrapper:hover { + border-color: #ccc; + background-image: linear-gradient(to bottom, #eee 0, #ddd 100%); +} +#donate .wrapper img { + width: 14px; + height: 14px; + position: absolute; + top: 2px; + left: 5px; +} +#donate .wrapper a { + font: 700 11px/14px 'Helvetica Neue', Helvetica, Arial, sans-serif; + color: #333; + text-shadow: 0 1px 0 #fff; + position: absolute; + top: 2px; + left: 24px; +} +html, +body { + height: 100%; +} +#nav, +#translations { + list-style-type: none; + text-align: center; + padding: 0; + margin: 0; +} +#nav li, +#translations li { + display: inline-block; + position: relative; + line-height: 40px; +} +#nav li:last-child .nav-link, +#translations li:last-child .nav-link { + margin-right: 0; +} +#translations { + position: fixed; + right: 1em; + bottom: 0.5em; +} +#translations .delimiter { + color: #7f8c8d; + margin: 0 5px; +} +#translations .nav-link { + margin: 0; +} +.nav-link { + color: #7f8c8d; + padding-bottom: 3px; + margin: 0 1.5em; +} +.nav-link:first-child { + margin-left: 0; +} +.nav-link:hover, +.nav-link.current { + border-bottom: 3px solid #42b983; +} +#logo { + display: block; + margin: 0 auto; + width: 200px; +} +#logo-wrap { + margin: 3.5em 0 4em; +} +#hero { + text-align: center; + height: 100%; + min-height: 720px; + position: relative; +} +#hero .inner { + z-index: 2; + height: 640px; + width: 100%; + position: absolute; + top: 50%; + margin-top: -340px; + left: 0; +} +#hero h1 { + font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; + font-weight: 300; + font-size: 4em; + margin: 0; +} +#hero .warning { + color: #7f8c8d; +} +#hero .desc { + max-width: 800px; + padding: 0 20px; + text-align: center; + margin: 1.5em auto; + color: #7f8c8d; +} +#hero .down { + position: absolute; + z-index: 1; + bottom: 0; + width: 100%; + left: 0; + padding: 1.5em 0; +} +#hero .down img { + width: 20px; +} +#hero a.button { + width: 280px; + margin: 0.5em; +} +#social { + text-align: center; + list-style-type: none; + margin: 0 auto; + padding: 0; + margin: 1.5em auto; +} +#social li { + display: inline-block; + margin: 0 5px; + vertical-align: middle; +} +#social li.last { + margin-left: -2px; +} +#example { + text-align: center; + padding: 20px; + max-width: 1200px; + margin: 0 auto 3em; +} +#example h2 { + margin-bottom: 1.5em; +} +#example code, +#example pre { + background-color: transparent; +} +#example figure.highlight { + margin: 0; + box-shadow: none; + background-color: transparent; +} +#example .sign { + display: inline-block; + height: 10em; + line-height: 9em; + padding: 0 0.5em; + font-weight: 600; + color: #7f8c8d; +} +#example .block { + text-align: left; + display: inline-block; + width: 28%; + height: 10em; + vertical-align: top; + background-color: #f9f9f9; + border-radius: 2px; + box-shadow: 0 1px 2px rgba(0,0,0,0.125); +} +#example #demo { + padding: 0 20px; + word-wrap: break-word; +} +#example #demo input { + font-size: 0.75em; + border: 1px solid #ccc; + padding: 4px 8px; + border-radius: 2px; + font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; +} +#example #demo input:focus { + outline: none; + border-color: #42b983; +} +#features { + padding: 3em 0; + text-align: center; + background-color: #f9f9f9; +} +#features .cool { + font-size: 1.8em; + text-align: center; + margin-top: 1em; + color: #7f8c8d; +} +#features .feats { + max-width: 1200px; + margin: 0 auto; +} +#features .feat { + box-sizing: border-box; + -moz-box-sizing: border-box; + display: inline-block; + text-align: left; + vertical-align: top; + width: 280px; + margin: 40px; +} +#features .feat h2 { + color: #34495e; + line-height: 40px; + margin-bottom: 0; +} +#features .feat p { + color: #7f8c8d; + padding-left: 52px; + margin: 0.4em 0; +} +#features .feat a { + color: #42b983; + font-weight: 600; +} +#features .icon { + display: inline-block; + vertical-align: middle; + position: relative; + top: -3px; + width: 40px; + height: 40px; + margin-right: 12px; + background: url("../images/icons.png"); + background-size: 240px 40px; +} +#features .icon.fast { + background-position: -40px 0; +} +#features .icon.compact { + background-position: -80px 0; +} +#features .icon.powerful { + background-position: -120px 0; +} +#features .icon.composable { + background-position: -160px 0; +} +#features .icon.module { + background-position: -200px 0; +} +#why { + padding: 4em 0; + background-color: #42b983; + color: #fff; +} +#why h2 { + margin-top: 0; + color: #fff; + font-size: 1.5em; + text-align: center; +} +#why ul { + line-height: 1.8em; + font-size: 1.15em; + width: 320px; + margin: 0 auto; + padding: 0; + list-style-type: none; +} +#why ul li:before { + content: ""; + display: inline-block; + width: 24px; + height: 24px; + background: url("../images/check.png") center center no-repeat; + background-size: 24px 24px; + margin-right: 10px; + position: relative; + top: 4px; +} +#footer { + text-align: center; + color: #fff; + padding: 4em 0; + background-color: #7f8c8d; +} +#footer .avatar { + width: 100px; + border-radius: 100%; + margin: 2.5em 0 1em; +} +#footer a { + color: #fff; + text-decoration: underline; +} +#footer a.start { + font-size: 1.2em; + text-decoration: none; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid #fff; + display: inline-block; + padding: 12px 20px; + border-radius: 25px; + transition: all 0.15s ease; + margin-bottom: 2em; +} +#footer a.start:hover { + background-color: #fff; + color: #7f8c8d; + -webkit-transform: scale(1.05); + -moz-transform: scale(1.05); + -ms-transform: scale(1.05); + transform: scale(1.05); +} +#footer p { + margin: 0.3em 0; +} +#main { + display: none; +} +#donate { + margin-left: -2px !important; +} +#sponsors { + padding-top: 20px; +} +#sponsors span, +#sponsors-mobile span { + color: #7f8c8d; + font-size: 0.85em; +} +#sponsors a, +#sponsors-mobile a, +#sponsors img, +#sponsors-mobile img { + position: relative; + width: 100px; + display: inline-block; + vertical-align: middle; +} +#sponsors a, +#sponsors-mobile a { + margin: 5px 10px 0; +} +#sponsors-mobile { + display: none; + text-align: center; + margin-bottom: 2em; + padding: 0 1em; +} +#sponsors-mobile a { + margin: 20px 10px 0; +} +@media screen and (max-width: 480px) { + body { + font-size: 14px; + } + #nav { + margin: 1.5em 1.2em 0; + } + #translations { + margin-bottom: 2em; + } + #logo { + width: 120px; + } + .nav-link { + font-size: 0.85em; + margin: 0 0.5em; + } + .divider { + font-size: 1.2em; + margin: 2.5em 1em; + } + #hero { + min-height: 560px; + } + #hero .inner { + height: 600px; + margin-top: -300px; + } + #hero h1 { + font-size: 2em; + font-weight: 400; + } + #hero .buttons { + max-width: 300px; + margin: 1em auto; + } + #hero a.button { + width: 260px; + font-size: 0.8em; + margin: 0.5em 0; + } + #hero a.small-button { + margin: 0.3em 0; + } + #hero .desc { + max-width: 300px; + } + #hero .warning, + #hero .desc { + font-size: 0.85em; + margin: 0.8em auto; + } + #hero .warning br, + #hero .desc br { + display: none; + } + #hero .down { + display: none; + } + #social { + max-width: 340px; + margin: 1.2em auto; + line-height: 1.8em; + } + .cool { + margin-top: 0; + } + #features .feat { + font-size: 14px; + margin: 0.8em 0; + width: 250px; + } + #why ul { + width: 280px; + font-size: 1.1em; + } + #why h2 { + font-size: 1.4em; + } +} +@media screen and (max-width: 960px) { + #features, + #hero { + font-size: 16px; + } + #sponsors { + display: none; + } + #sponsors-mobile { + display: block; + } + #example .block { + display: block; + width: auto; + height: auto; + } + #example #demo { + padding: 5px 20px 20px; + } + #example .sign { + display: block; + height: 1em; + line-height: 1em; + padding: 0.5em 0; + } + #translations { + position: relative; + right: 0; + bottom: 0; + } +} diff --git a/css/page.css b/css/page.css new file mode 100644 index 0000000..0b7b7c3 --- /dev/null +++ b/css/page.css @@ -0,0 +1,835 @@ +.gutter pre { + color: #999; +} +pre { + color: #525252; +} +pre .function .keyword, +pre .constant { + color: #0092db; +} +pre .keyword, +pre .attribute { + color: #e96900; +} +pre .number, +pre .literal { + color: #ae81ff; +} +pre .tag, +pre .tag .title, +pre .change, +pre .winutils, +pre .flow, +pre .lisp .title, +pre .clojure .built_in, +pre .nginx .title, +pre .tex .special { + color: #2973b7; +} +pre .class .title { + color: #fff; +} +pre .symbol, +pre .symbol .string, +pre .value, +pre .regexp { + color: #42b983; +} +pre .title { + color: #a6e22e; +} +pre .tag .value, +pre .string, +pre .subst, +pre .haskell .type, +pre .preprocessor, +pre .ruby .class .parent, +pre .built_in, +pre .sql .aggregate, +pre .django .template_tag, +pre .django .variable, +pre .smalltalk .class, +pre .javadoc, +pre .django .filter .argument, +pre .smalltalk .localvars, +pre .smalltalk .array, +pre .attr_selector, +pre .pseudo, +pre .addition, +pre .stream, +pre .envvar, +pre .apache .tag, +pre .apache .cbracket, +pre .tex .command, +pre .prompt { + color: #42b983; +} +pre .comment, +pre .java .annotation, +pre .python .decorator, +pre .template_comment, +pre .pi, +pre .doctype, +pre .deletion, +pre .shebang, +pre .apache .sqbracket, +pre .tex .formula { + color: #b3b3b3; +} +pre .coffeescript .javascript, +pre .javascript .xml, +pre .tex .formula, +pre .xml .javascript, +pre .xml .vbscript, +pre .xml .css, +pre .xml .cdata { + opacity: 0.5; +} +body { + font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; + font-size: 15px; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + color: #34495e; + margin: 0; +} +a { + text-decoration: none; + color: #34495e; +} +img { + border: none; +} +h1, +h2, +h3, +h4, +strong { + font-weight: 600; + color: #2c3e50; +} +code, +pre { + font-family: 'Roboto Mono', Monaco, courier, monospace; + font-size: 0.8em; + background-color: #f8f8f8; + -webkit-font-smoothing: initial; + -moz-osx-font-smoothing: initial; +} +code { + color: #e96900; + padding: 3px 5px; + margin: 0 2px; + border-radius: 2px; + white-space: nowrap; +} +em { + color: #7f8c8d; +} +p { + word-spacing: 0.05em; +} +a.button { + display: inline-block; + font-weight: 700; + color: #fff; + background-color: #4fc08d; + transition: all 0.15s ease; + font-family: 'Roboto Mono', Monaco, courier, monospace; + border-bottom: 2px solid #3aa373; + padding: 12px 14px; + border-radius: 4px; +} +a.button:hover { + background-color: #5dc596; + -webkit-transform: scale(1.03); + transform: scale(1.03); +} +a.small-button { + display: inline-block; + font-weight: 700; + color: #fff; + background-color: #4fc08d; + transition: all 0.15s ease; + padding: 4px 8px 5px; + border-radius: 4px; + width: 140px; + margin: 0 5px; +} +a.small-button:hover { + background-color: #5dc596; + -webkit-transform: scale(1.03); + transform: scale(1.03); +} +.highlight { + overflow-x: auto; + position: relative; + padding: 0; + background-color: #f8f8f8; + padding: 0.8em 0.8em 0.4em; + line-height: 1.1em; + border-radius: 2px; +} +.highlight table, +.highlight tr, +.highlight td { + width: 100%; + border-collapse: collapse; + padding: 0; + margin: 0; +} +.highlight .gutter { + width: 1.5em; +} +.highlight .code pre { + padding: 1.2em 1.4em; + line-height: 1.5em; + margin: 0; +} +.highlight.html .code:after, +.highlight.js .code:after, +.highlight.bash .code:after, +.highlight.css .code:after { + position: absolute; + top: 0; + right: 0; + color: #ccc; + text-align: right; + font-size: 0.75em; + padding: 5px 10px 0; + line-height: 15px; + height: 15px; + font-weight: 600; +} +.highlight.html .code:after { + content: 'HTML'; +} +.highlight.js .code:after { + content: 'JS'; +} +.highlight.bash .code:after { + content: 'Shell'; +} +.highlight.css .code:after { + content: 'CSS'; +} +#main { + position: relative; + z-index: 1; + padding: 0 60px 30px; + overflow-x: hidden; +} +#ad { + width: 140px; + text-align: center; + position: fixed; + z-index: 99; + bottom: 10px; + right: 10px; + padding: 10px; + background-color: rgba(255,255,255,0.65); + border-radius: 3px; + font-size: 13px; +} +#ad a { + color: #7f8c8d; + font-weight: normal; +} +#ad span { + display: inline-block; + margin-bottom: 5px; +} +#ad img { + width: 125px; +} +#nav .nav-link { + cursor: pointer; +} +#nav .nav-dropdown-container .nav-link:hover { + border-bottom: none; +} +#nav .nav-dropdown-container:hover .nav-dropdown { + display: block; +} +#nav .nav-dropdown { + display: none; + position: absolute; + top: 100%; + left: 0; + background-color: #fff; + padding: 10px 0; + border: 1px solid #ddd; + border-bottom-color: #ccc; + text-align: left; + border-radius: 4px; +} +#nav .nav-dropdown li { + line-height: 1.8em; + margin: 0; + display: block; +} +#nav .nav-dropdown a { + color: #7f8c8d; + font-size: 0.9em; + display: block; + padding: 0 30px 0 20px; +} +#nav .nav-dropdown a:hover { + color: #42b983; +} +#nav .arrow { + display: inline-block; + vertical-align: middle; + margin-top: -1px; + margin-left: 6px; + margin-right: -14px; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid #ccc; +} +#donate { + height: 24px; +} +#donate .wrapper { + vertical-align: top; + height: 20px; + border: 1px solid #d4d4d4; + display: inline-block; + box-sizing: border-box; + line-height: 16px; + border-radius: 3px; + cursor: pointer; + background-image: linear-gradient(to bottom, #fcfcfc 0, #eee 100%); + position: relative; + width: 72px; +} +#donate .wrapper:hover { + border-color: #ccc; + background-image: linear-gradient(to bottom, #eee 0, #ddd 100%); +} +#donate .wrapper img { + width: 14px; + height: 14px; + position: absolute; + top: 2px; + left: 5px; +} +#donate .wrapper a { + font: 700 11px/14px 'Helvetica Neue', Helvetica, Arial, sans-serif; + color: #333; + text-shadow: 0 1px 0 #fff; + position: absolute; + top: 2px; + left: 24px; +} +#demo, +.demo { + border: 1px solid #eee; + border-radius: 2px; + padding: 25px 35px; + margin-bottom: 40px; + font-size: 1.2em; + line-height: 1.5em; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +#demo h1, +.demo h1 { + margin: 0 0 0.5em; + font-size: 1.8em; +} +#demo ul, +.demo ul { + padding-left: 1.5em; + margin: 0; +} +#demo li, +.demo li { + cursor: pointer; + color: #34495e; + -ms-user-select: none; + -moz-user-select: none; + -webkit-user-select: none; +} +#demo li.done, +.demo li.done { + color: #7f8c8d; + text-decoration: line-through; +} +ul#demo li, +ul.demo li { + margin-left: 1.5em; +} +@media screen and (max-width: 720px) { + #demo, + .demo { + margin-left: 0; + } +} +.content.blog h1 { + margin: 0 0 0.5em; +} +.content.blog h2 { + margin: 0.8em 0; + padding-bottom: 0; + border-bottom: none; +} +.content.blog h2 a { + color: #2c3e50; +} +.content.blog h2 a:hover { + border-bottom: 2px solid #42b983; +} +.content.blog h4 { + color: #7f8c8d; + margin: 1.2em 0; +} +.content.blog figure, +.content.blog p { + margin-left: 0; +} +.content.blog .post { + padding: 1em 0 2em; + border-bottom: 1px solid #ddd; +} +@media screen and (max-width: 1400px) and (min-width: 720px) { + .content.blog.post { + margin: 0 0 0 280px; + } +} +.algolia-autocomplete { + line-height: normal; +} +.aa-dropdown-menu { + border-color: #999; + font-size: 0.9rem; +} +@media (min-width: 768px) { + .aa-dropdown-menu { + min-width: 515px; + } +} +.algolia-docsearch-suggestion { + border-color: #ddd; +} +.algolia-docsearch-suggestion--content { + color: #2c3e50; +} +.algolia-docsearch-suggestion--subcategory-column { + border-color: #ddd; +} +.algolia-docsearch-suggestion--category-header { + background: #42b983; +} +.algolia-docsearch-footer { + border-color: #ddd; +} +.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight { + background: rgba(255,255,255,0.6); +} +.algolia-docsearch-suggestion--highlight { + color: #2c815b; +} +.aa-cursor .algolia-docsearch-suggestion--content { + color: #2c3e50; +} +#header { + background-color: #fff; + box-shadow: 0 0 4px rgba(0,0,0,0.25); + padding: 25px 60px; + position: relative; + z-index: 2; +} +#nav { + list-style-type: none; + margin: 0; + padding: 0; + position: absolute; + right: 60px; + top: 25px; + height: 40px; + line-height: 40px; +} +#nav .break { + display: none; +} +#nav li { + display: inline-block; + position: relative; + margin: 0 0.6em; +} +.nav-link { + padding-bottom: 3px; +} +.nav-link:hover, +.nav-link.current { + border-bottom: 3px solid #42b983; +} +#search-query { + height: 30px; + line-height: 30px; + box-sizing: border-box; + padding: 0 15px 0 30px; + border: 1px solid #e3e3e3; + outline: none; + border-radius: 15px; + margin-right: 10px; + transition: border-color 0.2s ease; + background: #fff url("/images/search.png") 8px 5px no-repeat; + background-size: 20px; +} +#search-query:focus { + border-color: #42b983; +} +#logo { + display: inline-block; + font-size: 1.5em; + line-height: 40px; + color: #2c3e50; + font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; + font-weight: 500; +} +#logo img { + vertical-align: middle; + margin-right: 6px; + width: 40px; + height: 40px; +} +#mobile-bar { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 40px; + background-color: #fff; + z-index: 9; + display: none; + box-shadow: 0 0 4px rgba(0,0,0,0.25); +} +#mobile-bar .menu-button { + position: absolute; + width: 24px; + height: 24px; + top: 8px; + left: 12px; + background: url("../images/menu.png") center center no-repeat; + background-size: 24px; +} +#mobile-bar .logo { + position: absolute; + width: 30px; + height: 30px; + background: url("../images/logo.png") center center no-repeat; + top: 5px; + left: 50%; + margin-left: -15px; + background-size: 30px; +} +.sidebar { + position: absolute; + z-index: 10; + top: 0; + left: 60px; + bottom: 0; + padding: 2.2em 0; + width: 260px; + margin-right: 20px; + overflow-x: hidden; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: none; +} +.sidebar h2 { + margin-top: 0.2em; +} +.sidebar ul { + list-style-type: none; + margin: 0; + line-height: 1.8em; + padding-left: 1em; +} +.sidebar .version-select { + vertical-align: middle; + margin-left: 5px; +} +.sidebar .menu-root { + padding-left: 0; +} +.sidebar .menu-sub { + font-size: 0.85em; +} +.sidebar .sidebar-link { + color: #7f8c8d; +} +.sidebar .sidebar-link.current { + font-weight: 600; + color: #42b983; +} +.sidebar .sidebar-link.new:after { + content: "NEW"; + display: inline-block; + font-size: 10px; + font-weight: 600; + color: #fff; + background-color: #42b983; + line-height: 14px; + padding: 0 4px; + border-radius: 3px; + margin-left: 5px; + vertical-align: middle; + position: relative; + top: -1px; +} +.sidebar .sidebar-link:hover { + border-bottom: 2px solid #42b983; +} +.sidebar .section-link.active { + font-weight: bold; + color: #42b983; +} +.sidebar .main-menu { + margin-bottom: 20px; + display: none; + padding-left: 0; +} +.content { + padding: 2.2em 0; + max-width: 600px; + margin: 0 auto; +} +.content.api ul { + padding-left: 1.25em; + line-height: 1.4em; +} +.content.api ul ul, +.content.api ul p { + margin: 0.6em 0; +} +.content a.button { + font-size: 0.9em; + color: #fff; + margin: 0.2em 0; + width: 180px; + text-align: center; + padding: 12px 24px; + display: inline-block; + vertical-align: middle; +} +.content img { + max-width: 100%; +} +.content span.light { + color: #7f8c8d; +} +.content span.info { + font-size: 0.85em; + display: inline-block; + vertical-align: middle; + width: 280px; + margin-left: 20px; +} +.content h1 { + margin: 0 0 1em; +} +.content h2 { + margin: 2em 0 0.8em; + padding-bottom: 0.7em; + border-bottom: 1px solid #ddd; +} +.content h3 { + margin: 3em 0 1.2em; + position: relative; +} +.content h3:before { + content: "#"; + color: #42b983; + position: absolute; + left: -0.7em; + top: -2px; + font-size: 1.2em; + font-weight: bold; +} +.content figure, +.content p, +.content ul, +.content ol { + margin: 1.2em 0; +} +.content p, +.content ul, +.content ol { + line-height: 1.6em; +} +.content ul, +.content ol { + padding-left: 1.5em; +} +.content a { + color: #42b983; + font-weight: 600; +} +.content blockquote { + margin: 2em 0; + padding-left: 20px; + border-left: 4px solid #42b983; +} +.content blockquote p { + font-weight: 600; + margin-left: 0; +} +.content iframe { + margin: 1em 0; +} +.content p.tip { + padding: 12px 24px 12px 30px; + margin: 2em 0; + border-left: 4px solid #f66; + background-color: #f8f8f8; + position: relative; + border-bottom-right-radius: 2px; + border-top-right-radius: 2px; +} +.content p.tip:before { + position: absolute; + top: 14px; + left: -12px; + background-color: #f66; + color: #fff; + content: "!"; + width: 20px; + height: 20px; + border-radius: 100%; + text-align: center; + line-height: 20px; + font-weight: bold; + font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; + font-size: 14px; +} +.guide-links { + margin-top: 2em; + height: 1em; +} +.footer { + color: #7f8c8d; + margin-top: 2em; + padding-top: 2em; + border-top: 1px solid #e5e5e5; + font-size: 0.9em; +} +#main.fix-sidebar .sidebar { + position: fixed; +} +#donate { + margin-top: 15px; +} +@media screen and (max-width: 1300px) { + .content.with-sidebar { + margin-left: 290px; + } + #ad { + z-index: 8; + position: relative; + width: 140px; + height: 60px; + padding: 0; + bottom: 0; + right: 0; + margin: 0 0 15px -6px; + } + #ad .carbon-wrap, + #ad .carbon-img, + #ad .carbon-text, + #ad .carbon-poweredby { + display: inline-block; + vertical-align: top; + } + #ad .carbon-text { + width: 130px; + margin-left: 15px; + } + #ad .carbon-poweredby { + position: absolute; + bottom: 0; + left: 145px; + } +} +@media screen and (max-width: 720px) { + #ad { + width: 100%; + } + body { + -webkit-text-size-adjust: none; + font-size: 14px; + } + #header { + display: none; + } + #logo { + display: none; + } + .nav-link { + padding-bottom: 1px; + } + .nav-link:hover, + .nav-link.current { + border-bottom: 2px solid #42b983; + } + #search-query { + width: 200px; + margin-bottom: 10px; + } + #mobile-bar { + display: block; + } + #main { + padding: 2em 1.4em 0; + } + .highlight pre { + padding: 1.2em 1em; + } + .sidebar { + position: fixed; + background-color: #f9f9f9; + height: 100%; + top: 0; + left: 0; + padding: 60px 30px 20px; + box-shadow: 0 0 10px rgba(0,0,0,0.2); + box-sizing: border-box; + transition: all 0.4s cubic-bezier(0.4, 0, 0, 1); + -webkit-transform: translate(-280px, 0); + transform: translate(-280px, 0); + } + .sidebar .main-menu { + display: block; + } + .sidebar.open { + -webkit-transform: translate(0, 0); + transform: translate(0, 0); + } + .content.with-sidebar { + margin-left: 0; + } + .footer { + margin-left: 0; + text-align: center; + } +} +@media screen and (max-width: 560px) { + #downloads { + text-align: center; + margin-bottom: 25px; + } + #downloads .info { + margin-top: 5px; + margin-left: 0; + } + iframe { + margin: 0 !important; + } +} diff --git a/examples/commits.html b/examples/commits.html new file mode 100644 index 0000000..49e2e90 --- /dev/null +++ b/examples/commits.html @@ -0,0 +1,195 @@ + + + + + GitHub Commits - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

GitHub Commits Example

+
+

This example fetches latest Vue.js commits data from GitHub’s API and displays them as a list. You can switch between the master and dev branches.

+
+ + + + +
+ + +
+ + + + + + + + + diff --git a/examples/elastic-header.html b/examples/elastic-header.html new file mode 100644 index 0000000..4007e61 --- /dev/null +++ b/examples/elastic-header.html @@ -0,0 +1,192 @@ + + + + + Elastic Header - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Elastic Header Example

+ + + + +
+ + +
+ + + + + + + + + diff --git a/examples/firebase.html b/examples/firebase.html new file mode 100644 index 0000000..19e1199 --- /dev/null +++ b/examples/firebase.html @@ -0,0 +1,195 @@ + + + + + Firebase + Validation - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Firebase + Validation Example

+
+

This example uses Firebase as the data persistence backend and syncs between clients in real time (you can try opening it in multiple browser tabs). In addition, it performs instant validation using computed properties and triggers CSS transitions when adding/removing items.

+
+ + + + +
+ + +
+ + + + + + + + + diff --git a/examples/grid-component.html b/examples/grid-component.html new file mode 100644 index 0000000..7cd163e --- /dev/null +++ b/examples/grid-component.html @@ -0,0 +1,195 @@ + + + + + Grid Component - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Grid Component Example

+
+

This is an example of creating a reusable grid component and using it with external data.

+
+ + + + +
+ + +
+ + + + + + + + + diff --git a/examples/hackernews.html b/examples/hackernews.html new file mode 100644 index 0000000..bbf8ac3 --- /dev/null +++ b/examples/hackernews.html @@ -0,0 +1,199 @@ + + + + + HackerNews Clone - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

HackerNews Clone Example

+
+

This is a HackerNews clone built upon HN’s official Firebase API, and using Webpack + vue-loader for the build setup.

+
+


+ +
+

[Source]

+
+ + + +
+ + +
+ + + + + + + + + diff --git a/examples/index.html b/examples/index.html new file mode 100644 index 0000000..2643493 --- /dev/null +++ b/examples/index.html @@ -0,0 +1,195 @@ + + + + + Markdown Editor - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Markdown Editor Example

+
+

Dead simple Markdown editor.

+
+ + + + +
+ + +
+ + + + + + + + + diff --git a/examples/modal.html b/examples/modal.html new file mode 100644 index 0000000..5074816 --- /dev/null +++ b/examples/modal.html @@ -0,0 +1,195 @@ + + + + + Modal Component - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Modal Component Example

+
+

Features used: component, prop passing, content insertion, transitions.

+
+ + + + +
+ + +
+ + + + + + + + + diff --git a/examples/select2.html b/examples/select2.html new file mode 100644 index 0000000..051f8f5 --- /dev/null +++ b/examples/select2.html @@ -0,0 +1,195 @@ + + + + + Custom Directive - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Custom Directive Example

+
+

In this example we are integrating a 3rd party jQuery plugin (select2) by wrapping it inside a custom directive.

+
+ + + + +
+ + +
+ + + + + + + + + diff --git a/examples/svg.html b/examples/svg.html new file mode 100644 index 0000000..3a358a7 --- /dev/null +++ b/examples/svg.html @@ -0,0 +1,195 @@ + + + + + SVG Graph - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

SVG Graph Example

+
+

This example showcases a combination of custom component, computed property, two-way binding and SVG support.

+
+ + + + +
+ + +
+ + + + + + + + + diff --git a/examples/todomvc.html b/examples/todomvc.html new file mode 100644 index 0000000..cc0d9a8 --- /dev/null +++ b/examples/todomvc.html @@ -0,0 +1,199 @@ + + + + + TodoMVC - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

TodoMVC Example

+
+

This is a fully spec-compliant TodoMVC implementation in under 120 effective lines of JavaScript (excluding comments and blank lines).

+
+ + +
+

[Source]

+
+ + + +
+ + +
+ + + + + + + + + diff --git a/examples/tree-view.html b/examples/tree-view.html new file mode 100644 index 0000000..a060c68 --- /dev/null +++ b/examples/tree-view.html @@ -0,0 +1,195 @@ + + + + + Tree View - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Tree View Example

+
+

Example of a simple tree view implementation showcasing recursive usage of components.

+
+ + + + +
+ + +
+ + + + + + + + + diff --git a/guide/application.html b/guide/application.html new file mode 100644 index 0000000..f6813ad --- /dev/null +++ b/guide/application.html @@ -0,0 +1,291 @@ + + + + + Building Large-Scale Apps - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Building Large-Scale Apps

+
+

NEW: Get up and running with single file Vue components, hot-reload, lint-on-save and unit testing in minutes with vue-cli!

+
+

The Vue.js core library is designed to be focused and flexible - it’s just a view layer library that doesn’t enforce any application-level architecture. While this can be great for integrating with existing projects, it could be a challenge for those with less experience to build larger scale applications from scratch.

+

The Vue.js ecosystem provides a set of tools and libraries on how to build large SPAs with Vue. This part is where we start to get a bit “framework”-ish, but it’s really just an opinionated list of recommendations; you still get to pick what to use for each part of the stack.

+

Modularization

For large projects it’s necessary to utilize a modularized build system to better organize your code. The recommended approach of doing so is by writing your source code in CommonJS or ES6 modules and bundle them using Webpack or Browserify.

+

Webpack and Browserify are more than just module bundlers, though. They both provide source transform APIs that allow you to transform your source code with other pre-processors. For example, you can write your code with future ES2015/2016 syntax using babel-loader or babelify.

+

If you’ve never used them before, I highly recommend going through a few tutorials to get familiar with the concept of module bundlers, and start writing JavaScript using the latest ECMAScript features.

+

Single File Components

In a typical Vue.js project we will be dividing our interface into many small components, and it would be nice to have each component encapsulate its CSS styles, template and JavaScript definition in the same place. As mentioned above, when using Webpack or Browserify, with proper source transforms we can write our components like this:

+

+

If you are into pre-processors, you can even do this:

+

+

You can build these single-file Vue components with Webpack + vue-loader or Browserify + vueify. You can also play with it online at Webpackbin.com!

+

Which build tool to choose is largely dependent on your experience and needs. Webpack-based setup offers more powerful features such as code splitting, processing static assets as module dependencies and extracting component CSS into a separate file, but can be a bit more complex to configure. Browserify can be easier to setup in scenarios where you don’t need the advanced features that Webpack offers.

+

The fastest way to get up and running with a pre-configured build setup is using the official vue-cli. You can also find the official scaffold templates on GitHub:

+ +

Routing

For Single Page Applications, it is recommended to use the official vue-router library, which is currently in technical preview. For more details, please refer to vue-router’s documentation.

+

If you just need some very simple routing logic, you can also implement it by manually listening on hashchange and utilizing a dynamic component:

+

Example:

+
<div id="app">
<component :is="currentView"></component>
</div>
+
Vue.component('home', { /* ... */ })
Vue.component('page1', { /* ... */ })
var app = new Vue({
el: '#app',
data: {
currentView: 'home'
}
})
// Switching pages in your route handler:
app.currentView = 'page1'
+

With this mechanism it’s also very easy to leverage external routing libraries such as Page.js or Director.

+

Communication with Server

All Vue instances can have their raw $data directly serialized with JSON.stringify() with no additional effort. The community has contributed the vue-resource plugin, which provides an easy way to work with RESTful APIs. You can also use any Ajax library you like, e.g. $.ajax or SuperAgent. Vue.js also plays nicely with no-backend services such as Firebase, Parse and Hoodie.

+

State Management

In large applications, state management often becomes complex due to multiple pieces of state scattered across many components and the interactions between them. It is often overlooked that the source of truth in Vue.js applications is the raw data object - a Vue instance simply proxies access to it. Therefore, if you have a piece of state that should be shared by multiple instances, you should avoid duplicating it. Instead, share it by identity:

+
var sourceOfTruth = {}
var vmA = new Vue({
data: sourceOfTruth
})
var vmB = new Vue({
data: sourceOfTruth
})
+

Now whenever sourceOfTruth is mutated, both vmA and vmB will update their views automatically. Extending this idea further, we would arrive at the store pattern:

+
var store = {
state: {
message: 'Hello!'
},
actionA: function () {
this.state.message = 'action A triggered'
},
actionB: function () {
this.state.message = 'action B triggered'
}
}
var vmA = new Vue({
data: {
privateState: {},
sharedState: store.state
}
})
var vmB = new Vue({
data: {
privateState: {},
sharedState: store.state
}
})
+

Notice we are putting all actions that mutate the store’s state inside the store itself. This type of centralized state management makes it easier to understand what type of mutations could happen to the state, and how are they triggered. Each component can still own and manage its private state.

+

State Management

+

One thing to take note is that you should never replace the original state object in your actions - the components and the store need to share reference to the same object in order for the mutations to be observed.

+

If we enforce a convention where components are never allowed to directly mutate state that belongs to a store, but should instead dispatch events that notify the store to perform actions, we’ve essentially arrived at the Flux architecture. The benefit of this convention is we can record all state mutations happening to the store, and on top of that we can implement advanced debugging helpers such as mutation logs, snapshots, history re-rolls, etc.

+

The Flux architecture is commonly used in React applications, but it can be applied to Vue.js application as well. For example, Vuex is a Flux-inspired application architecture that is designed specifically for managing state inside large Vue.js applications. Redux, the most popular Flux implementation for React, is view-layer agnostic and can also easily work with Vue via some simple bindings.

+

Unit Testing

Anything compatible with a module-based build system works. A recommendation is using the Karma test runner. It has a lot of community plugins, including support for Webpack and Browserify. For detailed setup, please refer to each project’s respective documentation.

+

In terms of code structure for testing, the best practice is to export raw options / functions in your component modules. Consider this example:

+
// my-component.js
module.exports = {
template: '<span>{{msg}}</span>',
data: function () {
return {
msg: 'hello!'
}
},
created: function () {
console.log('my-component created!')
}
}
+

You can use that file in your entry module like this:

+
// main.js
var Vue = require('vue')
var app = new Vue({
el: '#app',
data: { /* ... */ },
components: {
'my-component': require('./my-component')
}
})
+

And you can test that module like this:

+
// Some Jasmine 2.0 tests
describe('my-component', function () {
// require source module
var myComponent = require('../src/my-component')
it('should have a created hook', function () {
expect(typeof myComponent.created).toBe('function')
})
it('should set correct default data', function () {
expect(typeof myComponent.data).toBe('function')
var defaultData = myComponent.data()
expect(defaultData.msg).toBe('hello!')
})
})
+

There are example Karma configurations for both Webpack and Browserify.

+

Since Vue.js directives perform updates asynchronously, when you are asserting DOM state after changing the data, you will have to do so in a Vue.nextTick callback.

+ +

Deploying for Production

The minified standalone build of Vue.js has already stripped out all the warnings for you for a smaller file size, but when you are using tools like Browserify or Webpack to build Vue.js applications, you will need some additional configuration to achieve this.

+

Webpack

Use Webpack’s DefinePlugin to indicate a production environment, so that warning blocks can be automatically dropped by UglifyJS during minification. Example config:

+
var webpack = require('webpack')
module.exports = {
// ...
plugins: [
// ...
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
})
]
}
+

Browserify

Just run your bundling command with NODE_ENV set to "production". Vue automatically applies envify transform to itself and makes warning blocks unreachable. For example:

+
NODE_ENV=production browserify -e main.js | uglifyjs -c -m > build.js
+

An App Example

The Vue.js Hackernews Clone is an example application that uses Webpack + vue-loader for code organization, vue-router for routing, and HackerNews’ official Firebase API as the backend. It’s by no means a big application, but it demonstrates the combined usage of the concepts discussed on this page.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/class-and-style.html b/guide/class-and-style.html new file mode 100644 index 0000000..c5b7242 --- /dev/null +++ b/guide/class-and-style.html @@ -0,0 +1,273 @@ + + + + + Class and Style Bindings - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Class and Style Bindings

+

A common need for data binding is manipulating an element’s class list and its inline styles. Since they are both attributes, we can use v-bind to handle them: we just need to calculate a final string with our expressions. However, meddling with string concatenation is annoying and error-prone. For this reason, Vue.js provides special enhancements when v-bind is used for class and style. In addition to Strings, the expressions can also evaluate to Objects or Arrays.

+

Binding HTML Classes

Although you can use mustache interpolations such as class="{{ className }}" to bind the class, it is not recommended to mix that style with v-bind:class. Use one or the other!

+ +

Object Syntax

We can pass an Object to v-bind:class to dynamically toggle classes. Note the v-bind:class directive can co-exist with the plain class attribute:

+
<div class="static" v-bind:class="{ 'class-a': isA, 'class-b': isB }"></div>
+
data: {
isA: true,
isB: false
}
+

Which will render:

+
<div class="static class-a"></div>
+

When isA and isB changes, the class list will be updated accordingly. For example, if isB becomes true, the class list will become "static class-a class-b".

+

And you can directly bind to an object in data as well:

+
<div v-bind:class="classObject"></div>
+
data: {
classObject: {
'class-a': true,
'class-b': false
}
}
+

This will render the same result. As you may have noticed, we can also bind to a computed property that returns an Object. This is a common and powerful pattern.

+

Array Syntax

We can pass an Array to v-bind:class to apply a list of classes:

+
<div v-bind:class="[classA, classB]">
+
data: {
classA: 'class-a',
classB: 'class-b'
}
+

Which will render:

+
<div class="class-a class-b"></div>
+

If you would like to also toggle a class in the list conditionally, you can do it with a ternary expression:

+
<div v-bind:class="[classA, isB ? classB : '']">
+

This will always apply classA, but will only apply classB when isB is true.

+

However, this can be a bit verbose if you have multiple conditional classes. In version 1.0.19+, it’s also possible to use the Object syntax inside Array syntax:

+
<div v-bind:class="[classA, { classB: isB, classC: isC }]">
+

Binding Inline Styles

Object Syntax

The Object syntax for v-bind:style is pretty straightforward - it looks almost like CSS, except it’s a JavaScript object. You can use either camelCase or kebab-case for the CSS property names:

+
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
+
data: {
activeColor: 'red',
fontSize: 30
}
+

It is often a good idea to bind to a style object directly so that the template is cleaner:

+
<div v-bind:style="styleObject"></div>
+
data: {
styleObject: {
color: 'red',
fontSize: '13px'
}
}
+

Again, the Object syntax is often used in conjunction with computed properties that return Objects.

+

Array Syntax

The Array syntax for v-bind:style allows you to apply multiple style objects to the same element:

+
<div v-bind:style="[styleObjectA, styleObjectB]">
+

Auto-prefixing

When you use a CSS property that requires vendor prefixes in v-bind:style, for example transform, Vue.js will automatically detect and add appropriate prefixes to the applied styles.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/comparison.html b/guide/comparison.html new file mode 100644 index 0000000..b7a0368 --- /dev/null +++ b/guide/comparison.html @@ -0,0 +1,292 @@ + + + + + Comparison with Other Frameworks - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Comparison with Other Frameworks

+

Angular

There are a few reasons to use Vue over Angular, although they might not apply for everyone:

+
    +
  • Vue.js is much simpler than Angular, both in terms of API and design. You can learn nearly everything about it quickly and become productive.

    +
  • +
  • Vue.js is a more flexible, less opinionated solution. That allows you to structure your app the way you want it to be, instead of being forced to do everything the Angular way. It’s only an interface layer so you can use it as a light feature in pages instead of a full blown SPA. It gives you bigger room to mix and match with other libraries, but you are also responsible for making more architectural decisions. For example, Vue.js’ core doesn’t come with routing or ajax functionalities by default, and usually assumes you are building the application using an external module bundler. This is probably the most important distinction.

    +
  • +
  • Angular uses two-way binding between scopes. While Vue also supports explicit two-way bindings, it defaults to a one-way, parent-to-child data flow between components. Using one-way binding makes the flow of data easier to reason about in large apps.

    +
  • +
  • Vue.js has a clearer separation between directives and components. Directives are meant to encapsulate DOM manipulations only, while Components stand for a self-contained unit that has its own view and data logic. In Angular there’s a lot of confusion between the two.

    +
  • +
  • Vue.js has better performance and is much, much easier to optimize, because it doesn’t use dirty checking. Angular gets slow when there are a lot of watchers, because every time anything in the scope changes, all these watchers need to be re-evaluated again. Also, the digest cycle may have to run multiple times to “stabilize” if some watcher triggers another update. Angular users often have to resort to esoteric techniques to get around the digest cycle, and in some situations there’s simply no way to optimize a scope with a large amount of watchers. Vue.js doesn’t suffer from this at all because it uses a transparent dependency-tracking observing system with async queueing - all changes trigger independently unless they have explicit dependency relationships. The only optimization hint you’ll ever need is the track-by param on v-for lists.

    +
  • +
+

Interestingly, there are quite some similarities in how Angular 2 and Vue are addressing these Angular 1 issues.

+

React

React and Vue.js do share a similarity in that they both provide reactive & composable View components. There are, of course, many differences as well.

+

First, the internal implementation is fundamentally different. React’s rendering leverages the Virtual DOM - an in-memory representation of what the actual DOM should look like. When the state changes, React does a full re-render of the Virtual DOM, diffs it, and then patches the real DOM.

+

The virtual-DOM approach provides a functional way to describe your view at any point of time, which is really nice. Because it doesn’t use observables and re-renders the entire app on every update, the view is by definition guaranteed to be in sync with the data. It also opens up possibilities to isomorphic JavaScript applications.

+

Instead of a Virtual DOM, Vue.js uses the actual DOM as the template and keeps references to actual nodes for data bindings. This limits Vue.js to environments where DOM is present. However, contrary to the common misconception that Virtual-DOM makes React faster than anything else, Vue.js actually out-performs React when it comes to hot updates, and requires almost no hand-tuned optimization. With React, you need to implement shouldComponentUpdate everywhere and use immutable data structures to achieve fully optimized re-renders.

+

API-wise, one issue with React (or JSX) is that the render function often involves a lot of logic, and ends up looking more like a piece of program (which in fact it is) rather than a visual representation of the interface. For some developers this is a bonus, but for designer/developer hybrids like me, having a template makes it much easier to think visually about the design and CSS. JSX mixed with JavaScript logic breaks that visual model I need to map the code to the design. In contrast, Vue.js pays the cost of a lightweight data-binding DSL so that we have a visually scannable template and with logic encapsulated into directives and filters.

+

Another issue with React is that because DOM updates are completely delegated to the Virtual DOM, it’s a bit tricky when you actually want to control the DOM yourself (although theoretically you can, you’d be essentially working against the library when you do that). For applications that need ad-hoc custom DOM manipulations, especially animations with complex timing requirements, this can become a pretty annoying restriction. On this front, Vue.js allows for more flexibility and there are multiple FWA/Awwwards winning sites built with Vue.js.

+

Some additional notes:

+
    +
  • The React team has very ambitious goals in making React a platform-agnostic UI development paradigm, while Vue is focused on providing a pragmatic solution for the web.

    +
  • +
  • React, due to its functional nature, plays very well with functional programming patterns. However it also introduces a higher learning barrier for junior developers and beginners. Vue is much easier to pick up and get productive with in this regard.

    +
  • +
  • For large applications, the React community has been doing a lot of innovation in terms of state management solutions, e.g. Flux/Redux. Vue itself doesn’t really address that problem (same for React core), but the state management patterns can be easily adopted for a similar architecture. Vue has its own state management solution called Vuex, and it’s also possible to use Redux with Vue.

    +
  • +
  • The trend in React development is pushing you to put everything in JavaScript, including your CSS. There has been many CSS-in-JS solutions out there but all more or less have its own problems. And most importantly, it deviates from the standard CSS authoring experience and makes it very awkward to leverage existing work in the CSS community. Vue’s single file components gives you component-encapsulated CSS while still allowing you to use your pre-processors of choice.

    +
  • +
+

Ember

Ember is a full-featured framework that is designed to be highly opinionated. It provides a lot of established conventions, and once you are familiar enough with them, it can make you very productive. However, it also means the learning curve is high and the flexibility suffers. It’s a trade-off when you try to pick between an opinionated framework and a library with a loosely coupled set of tools that work together. The latter gives you more freedom but also requires you to make more architectural decisions.

+

That said, it would probably make a better comparison between Vue.js core and Ember’s templating and object model layer:

+
    +
  • Vue provides unobtrusive reactivity on plain JavaScript objects, and fully automatic computed properties. In Ember you need to wrap everything in Ember Objects and manually declare dependencies for computed properties.

    +
  • +
  • Vue’s template syntax harnesses the full power of JavaScript expressions, while Handlebars’ expression and helper syntax is quite limited in comparison.

    +
  • +
  • Performance wise, Vue outperforms Ember by a fair margin, even after the latest Glimmer engine update in Ember 2.0. Vue automatically batches updates, while in Ember you need to manually manage run loops in performance-critical situations.

    +
  • +
+

Polymer

Polymer is yet another Google-sponsored project and in fact was a source of inspiration for Vue.js as well. Vue.js’ components can be loosely compared to Polymer’s custom elements, and both provide a very similar development style. The biggest difference is that Polymer is built upon the latest Web Components features, and requires non-trivial polyfills to work (with degraded performance) in browsers that don’t support those features natively. In contrast, Vue.js works without any dependencies down to IE9.

+

Also, in Polymer 1.0 the team has really made its data-binding system very limited in order to compensate for the performance. For example, the only expressions supported in Polymer templates are the boolean negation and single method calls. Its computed property implementation is also not very flexible.

+

Finally, when deploying to production, Polymer elements need to be bundled via a Polymer-specific tool called vulcanizer. In comparison, single file Vue components can leverage everything the Webpack ecosystem has to offer, and thus you can easily use ES6 and any CSS pre-processors you want in your Vue components.

+

Riot

Riot 2.0 provides a similar component-based development model (which is called a “tag” in Riot), with a minimal and beautifully designed API. I think Riot and Vue share a lot in design philosophies. However, despite being a bit heavier than Riot, Vue does offer some significant advantages over Riot:

+
    +
  • True conditional rendering (Riot renders all if branches and simply show/hide them)
  • +
  • A far-more powerful router (Riot’s routing API is just way too minimal)
  • +
  • More mature tooling support (see webpack + vue-loader)
  • +
  • Transition effect system (Riot has none)
  • +
  • Better performance. (Riot in fact uses dirty checking rather than a virtual-dom, and thus suffers from the same performance issues as Angular.)
  • +
+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/components.html b/guide/components.html new file mode 100644 index 0000000..8e60e18 --- /dev/null +++ b/guide/components.html @@ -0,0 +1,573 @@ + + + + + Components - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Components

+

What are Components?

Components are one of the most powerful features of Vue.js. They help you extend basic HTML elements to encapsulate reusable code. At a high level, Components are custom elements that Vue.js’ compiler would attach specified behavior to. In some cases, they may also appear as a native HTML element extended with the special is attribute.

+

Using Components

Registration

We’ve learned in the previous sections that we can create a component constructor using Vue.extend():

+
var MyComponent = Vue.extend({
// options...
})
+

To use this constructor as a component, you need to register it with Vue.component(tag, constructor):

+
// Globally register the component with tag: my-component
Vue.component('my-component', MyComponent)
+

Note that Vue.js does not enforce the W3C rules for custom tag-names (all-lowercase, must contain a hyphen) though following this convention is considered good practice.

+ +

Once registered, the component can now be used in a parent instance’s template as a custom element, <my-component>. Make sure the component is registered before you instantiate your root Vue instance. Here’s the full example:

+
<div id="example">
<my-component></my-component>
</div>
+
// define
var MyComponent = Vue.extend({
template: '<div>A custom component!</div>'
})
// register
Vue.component('my-component', MyComponent)
// create a root instance
new Vue({
el: '#example'
})
+

Which will render:

+
<div id="example">
<div>A custom component!</div>
</div>
+ +
+ +
+ + +

Note the component’s template replaces the custom element, which only serves as a mounting point. This behavior can be configured using the replace instance option.

+

Local Registration

You don’t have to register every component globally. You can make a component available only in the scope of another component by registering it with the components instance option:

+
var Child = Vue.extend({ /* ... */ })
var Parent = Vue.extend({
template: '...',
components: {
// <my-component> will only be available in Parent's template
'my-component': Child
}
})
+

The same encapsulation applies for other assets types such as directives, filters and transitions.

+

Registration Sugar

To make things easier, you can directly pass in the options object instead of an actual constructor to Vue.component() and the component option. Vue.js will automatically call Vue.extend() for you under the hood:

+
// extend and register in one step
Vue.component('my-component', {
template: '<div>A custom component!</div>'
})
// also works for local registration
var Parent = Vue.extend({
components: {
'my-component': {
template: '<div>A custom component!</div>'
}
}
})
+

Component Option Caveats

Most of the options that can be passed into the Vue constructor can be used in Vue.extend(), with two special cases: data and el. Imagine we simply pass an object as data to Vue.extend():

+
var data = { a: 1 }
var MyComponent = Vue.extend({
data: data
})
+

The problem with this is that the same data object will be shared across all instances of MyComponent! This is most likely not what we want, so we should use a function that returns a fresh object as the data option:

+
var MyComponent = Vue.extend({
data: function () {
return { a: 1 }
}
})
+

The el option also requires a function value when used in Vue.extend(), for exactly the same reason.

+

Template Parsing

Vue.js template engine is DOM-based and uses native parser that comes with the browser instead of providing a custom one. There are benefits to this approach when compared to string-based template engines, but there are also caveats. Templates have to be individually valid pieces of HTML. Some HTML elements have restrictions on what elements can appear inside them. Most common of these restrictions are:

+
    +
  • a can not contain other interactive elements (e.g. buttons and other links)
  • +
  • li should be a direct child of ul or ol, and both ul and ol can only contain li
  • +
  • option should be a direct child of select, and select can only contain option (and optgroup)
  • +
  • table can only contain thead, tbody, tfoot and tr, and these elements should be direct children of table
  • +
  • tr can only contain th and td, and these elements should be direct children of tr
  • +
+

In practice these restriction can cause unexpected behavior. Although in simple cases it might appear to work, you can not rely on custom elements being expanded before browser validation. E.g. <my-select><option>...</option></my-select> is not a valid template even if my-select component eventually expands to <select>...</select>.

+

Another consequence is that you can not use custom tags (including custom elements and special tags like <component>, <template> and <partial>) inside of ul, select, table and other elements with similar restrictions. Custom tags will be hoisted out and thus not render properly.

+

In case of a custom element you should use the is special attribute:

+
<table>
<tr is="my-component"></tr>
</table>
+

In case of a <template> inside of a <table> you should use <tbody>, as tables are allowed to have multiple tbody:

+
<table>
<tbody v-for="item in items">
<tr>Even row</tr>
<tr>Odd row</tr>
</tbody>
</table>
+

Props

Passing Data with Props

Every component instance has its own isolated scope. This means you cannot (and should not) directly reference parent data in a child component’s template. Data can be passed down to child components using props.

+

A “prop” is a field on a component’s data that is expected to be passed down from its parent component. A child component needs to explicitly declare the props it expects to receive using the props option:

+
Vue.component('child', {
// declare the props
props: ['msg'],
// the prop can be used inside templates, and will also
// be set as `this.msg`
template: '<span>{{ msg }}</span>'
})
+

Then, we can pass a plain string to it like so:

+
<child msg="hello!"></child>
+

Result:

+ +
+ +
+ + +

camelCase vs. kebab-case

HTML attributes are case-insensitive. When using camelCased prop names as attributes, you need to use their kebab-case (hyphen-delimited) equivalents:

+
Vue.component('child', {
// camelCase in JavaScript
props: ['myMessage'],
template: '<span>{{ myMessage }}</span>'
})
+
<!-- kebab-case in HTML -->
<child my-message="hello!"></child>
+

Dynamic Props

Similar to binding a normal attribute to an expression, we can also use v-bind for dynamically binding props to data on the parent. Whenever the data is updated in the parent, it will also flow down to the child:

+
<div>
<input v-model="parentMsg">
<br>
<child v-bind:my-message="parentMsg"></child>
</div>
+

It is often simpler to use the shorthand syntax for v-bind:

+
<child :my-message="parentMsg"></child>
+

Result:

+ +
+ +
+ +
+ + +

Literal vs. Dynamic

A common mistake beginners tend to make is attempting to pass down a number using the literal syntax:

+
<!-- this passes down a plain string "1" -->
<comp some-prop="1"></comp>
+

However, since this is a literal prop, its value is passed down as a plain string "1", instead of an actual number. If we want to pass down an actual JavaScript number, we need to use the dynamic syntax to make its value be evaluated as a JavaScript expression:

+
<!-- this passes down an actual number -->
<comp :some-prop="1"></comp>
+

Prop Binding Types

By default, all props form a one-way-down binding between the child property and the parent one: when the parent property updates, it will flow down to the child, but not the other way around. This default is meant to prevent child components from accidentally mutating the parent’s state, which can make your app’s data flow harder to reason about. However, it is also possible to explicitly enforce a two-way or a one-time binding with the .sync and .once binding type modifiers:

+

Compare the syntax:

+
<!-- default, one-way-down binding -->
<child :msg="parentMsg"></child>
<!-- explicit two-way binding -->
<child :msg.sync="parentMsg"></child>
<!-- explicit one-time binding -->
<child :msg.once="parentMsg"></child>
+

The two-way binding will sync the change of child’s msg property back to the parent’s parentMsg property. The one-time binding, once set up, will not sync future changes between the parent and the child.

+

Note that if the prop being passed down is an Object or an Array, it is passed by reference. Mutating the Object or Array itself inside the child will affect parent state, regardless of the binding type you are using.

+ +

Prop Validation

It is possible for a component to specify the requirements for the props it is receiving. This is useful when you are authoring a component that is intended to be used by others, as these prop validation requirements essentially constitute your component’s API, and ensure your users are using your component correctly. Instead of defining the props as an array of strings, you can use the object hash format that contain validation requirements:

+
Vue.component('example', {
props: {
// basic type check (`null` means accept any type)
propA: Number,
// multiple possible types (1.0.21+)
propM: [String, Number],
// a required string
propB: {
type: String,
required: true
},
// a number with default value
propC: {
type: Number,
default: 100
},
// object/array defaults should be returned from a
// factory function
propD: {
type: Object,
default: function () {
return { msg: 'hello' }
}
},
// indicate this prop expects a two-way binding. will
// raise a warning if binding type does not match.
propE: {
twoWay: true
},
// custom validator function
propF: {
validator: function (value) {
return value > 10
}
},
// coerce function (new in 1.0.12)
// cast the value before setting it on the component
propG: {
coerce: function (val) {
return val + '' // cast the value to string
}
},
propH: {
coerce: function (val) {
return JSON.parse(val) // cast the value to Object
}
}
}
})
+

The type can be one of the following native constructors:

+
    +
  • String
  • +
  • Number
  • +
  • Boolean
  • +
  • Function
  • +
  • Object
  • +
  • Array
  • +
+

In addition, type can also be a custom constructor function and the assertion will be made with an instanceof check.

+

When a prop validation fails, Vue will refuse to set the value on the child component, and throw a warning if using the development build.

+

Parent-Child Communication

Parent Chain

A child component holds access to its parent component as this.$parent. A root Vue instance will be available to all of its descendants as this.$root. Each parent component has an array, this.$children, which contains all its child components.

+

Although it’s possible to access any instance in the parent chain, you should avoid directly relying on parent data in a child component and prefer passing data down explicitly using props. In addition, it is a very bad idea to mutate parent state from a child component, because:

+
    +
  1. It makes the parent and child tightly coupled;

    +
  2. +
  3. It makes the parent state much harder to reason about when looking at it alone, because its state may be modified by any child! Ideally, only a component itself should be allowed to modify its own state.

    +
  4. +
+

Custom Events

All Vue instances implement a custom event interface that facilitates communication within a component tree. This event system is independent from the native DOM events and works differently.

+

Each Vue instance is an event emitter that can:

+
    +
  • Listen to events using $on();

    +
  • +
  • Trigger events on self using $emit();

    +
  • +
  • Dispatch an event that propagates upward along the parent chain using $dispatch();

    +
  • +
  • Broadcast an event that propagates downward to all descendants using $broadcast().

    +
  • +
+

Unlike DOM events, Vue events will automatically stop propagation after triggering callbacks for the first time along a propagation path, unless the callback explicitly returns true.

+ +

A simple example:

+
<!-- template for child -->
<template id="child-template">
<input v-model="msg">
<button v-on:click="notify">Dispatch Event</button>
</template>
<!-- template for parent -->
<div id="events-example">
<p>Messages: {{ messages | json }}</p>
<child></child>
</div>
+
// register child, which dispatches an event with
// the current message
Vue.component('child', {
template: '#child-template',
data: function () {
return { msg: 'hello' }
},
methods: {
notify: function () {
if (this.msg.trim()) {
this.$dispatch('child-msg', this.msg)
this.msg = ''
}
}
}
})
// bootstrap parent, which pushes message into an array
// when receiving the event
var parent = new Vue({
el: '#events-example',
data: {
messages: []
},
// the `events` option simply calls `$on` for you
// when the instance is created
events: {
'child-msg': function (msg) {
// `this` in event callbacks are automatically bound
// to the instance that registered it
this.messages.push(msg)
}
}
})
+ + + +
+

Messages: {{ messages | json }}

+ +
+ + +

v-on for Custom Events

The example above is pretty nice, but when we are looking at the parent’s code, it’s not so obvious where the "child-msg" event comes from. It would be better if we can declare the event handler in the template, right where the child component is used. To make this possible, v-on can be used to listen for custom events when used on a child component:

+
<child v-on:child-msg="handleIt"></child>
+

This makes things very clear: when the child triggers the "child-msg" event, the parent’s handleIt method will be called. Any code that affects the parent’s state will be inside the handleIt parent method; the child is only concerned with triggering the event.

+

Child Component Refs

Despite the existence of props and events, sometimes you might still need to directly access a child component in JavaScript. To achieve this you have to assign a reference ID to the child component using v-ref. For example:

+
<div id="parent">
<user-profile v-ref:profile></user-profile>
</div>
+
var parent = new Vue({ el: '#parent' })
// access child component instance
var child = parent.$refs.profile
+

When v-ref is used together with v-for, the ref you get will be an Array or an Object containing the child components mirroring the data source.

+

Content Distribution with Slots

When using components, it is often desired to compose them like this:

+
<app>
<app-header></app-header>
<app-footer></app-footer>
</app>
+

There are two things to note here:

+
    +
  1. The <app> component does not know what content may be present inside its mount target. It is decided by whatever parent component that is using <app>.

    +
  2. +
  3. The <app> component very likely has its own template.

    +
  4. +
+

To make the composition work, we need a way to interweave the parent “content” and the component’s own template. This is a process called content distribution (or “transclusion” if you are familiar with Angular). Vue.js implements a content distribution API that is modeled after the current Web Components spec draft, using the special <slot> element to serve as distribution outlets for the original content.

+

Compilation Scope

Before we dig into the API, let’s first clarify which scope the contents are compiled in. Imagine a template like this:

+
<child-component>
{{ msg }}
</child-component>
+

Should the msg be bound to the parent’s data or the child data? The answer is parent. A simple rule of thumb for component scope is:

+
+

Everything in the parent template is compiled in parent scope; everything in the child template is compiled in child scope.

+
+

A common mistake is trying to bind a directive to a child property/method in the parent template:

+
<!-- does NOT work -->
<child-component v-show="someChildProperty"></child-component>
+

Assuming someChildProperty is a property on the child component, the example above would not work as intended. The parent’s template should not be aware of the state of a child component.

+

If you need to bind child-scope directives on a component root node, you should do so in the child component’s own template:

+
Vue.component('child-component', {
// this does work, because we are in the right scope
template: '<div v-show="someChildProperty">Child</div>',
data: function () {
return {
someChildProperty: true
}
}
})
+

Similarly, distributed content will be compiled in the parent scope.

+

Single Slot

Parent content will be discarded unless the child component template contains at least one <slot> outlet. When there is only one slot with no attributes, the entire content fragment will be inserted at its position in the DOM, replacing the slot itself.

+

Anything originally inside the <slot> tags is considered fallback content. Fallback content is compiled in the child scope and will only be displayed if the hosting element is empty and has no content to be inserted.

+

Suppose we have a component with the following template:

+
<div>
<h1>This is my component!</h1>
<slot>
This will only be displayed if there is no content
to be distributed.
</slot>
</div>
+

Parent markup that uses the component:

+
<my-component>
<p>This is some original content</p>
<p>This is some more original content</p>
</my-component>
+

The rendered result will be:

+
<div>
<h1>This is my component!</h1>
<p>This is some original content</p>
<p>This is some more original content</p>
</div>
+

Named Slots

<slot> elements have a special attribute, name, which can be used to further customize how content should be distributed. You can have multiple slots with different names. A named slot will match any element that has a corresponding slot attribute in the content fragment.

+

There can still be one unnamed slot, which is the default slot that serves as a catch-all outlet for any unmatched content. If there is no default slot, unmatched content will be discarded.

+

For example, suppose we have a multi-insertion component with the following template:

+
<div>
<slot name="one"></slot>
<slot></slot>
<slot name="two"></slot>
</div>
+

Parent markup:

+
<multi-insertion>
<p slot="one">One</p>
<p slot="two">Two</p>
<p>Default A</p>
</multi-insertion>
+

The rendered result will be:

+
<div>
<p slot="one">One</p>
<p>Default A</p>
<p slot="two">Two</p>
</div>
+

The content distribution API is a very useful mechanism when designing components that are meant to be composed together.

+

Dynamic Components

You can use the same mount point and dynamically switch between multiple components by using the reserved <component> element and dynamically bind to its is attribute:

+
new Vue({
el: 'body',
data: {
currentView: 'home'
},
components: {
home: { /* ... */ },
posts: { /* ... */ },
archive: { /* ... */ }
}
})
+
<component :is="currentView">
<!-- component changes when vm.currentview changes! -->
</component>
+

keep-alive

If you want to keep the switched-out components alive so that you can preserve its state or avoid re-rendering, you can add a keep-alive directive param:

+
<component :is="currentView" keep-alive>
<!-- inactive components will be cached! -->
</component>
+

activate Hook

When switching components, the incoming component might need to perform some asynchronous operation before it should be swapped in. To control the timing of component swapping, implement the activate hook on the incoming component:

+
Vue.component('activate-example', {
activate: function (done) {
var self = this
loadDataAsync(function (data) {
self.someData = data
done()
})
}
})
+

Note the activate hook is only respected during dynamic component swapping or the initial render for static components - it does not affect manual insertions with instance methods.

+

transition-mode

The transition-mode param attribute allows you to specify how the transition between two dynamic components should be executed.

+

By default, the transitions for incoming and outgoing components happen simultaneously. This attribute allows you to configure two other modes:

+
    +
  • in-out: New component transitions in first, current component transitions out after incoming transition has finished.

    +
  • +
  • out-in: Current component transitions out first, new component transitions in after outgoing transition has finished.

    +
  • +
+

Example

+
<!-- fade out first, then fade in -->
<component
:is="view"
transition="fade"
transition-mode="out-in">
</component>
+
.fade-transition {
transition: opacity .3s ease;
}
.fade-enter, .fade-leave {
opacity: 0;
}
+ +
+ + + + +
+ + + +

Misc

Components and v-for

You can directly use v-for on the custom component, like any normal element:

+
<my-component v-for="item in items"></my-component>
+

However, this won’t pass any data to the component, because components have isolated scopes of their own. In order to pass the iterated data into the component, we should also use props:

+
<my-component
v-for="item in items"
:item="item"
:index="$index">
</my-component>
+

The reason for not automatically injecting item into the component is because that makes the component tightly coupled to how v-for works. Being explicit about where its data comes from makes the component reusable in other situations.

+

Authoring Reusable Components

When authoring components, it is good to keep in mind whether you intend to reuse this component somewhere else later. It is OK for one-off components to have some tight coupling with each other, but reusable components should define a clean public interface.

+

The API for a Vue.js component essentially comes in three parts - props, events and slots:

+
    +
  • Props allow the external environment to feed data to the component;

    +
  • +
  • Events allow the component to trigger actions in the external environment;

    +
  • +
  • Slots allow the external environment to insert content into the component’s view structure.

    +
  • +
+

With the dedicated shorthand syntax for v-bind and v-on, the intents can be clearly and succinctly conveyed in the template:

+
<my-component
:foo="baz"
:bar="qux"
@event-a="doThis"
@event-b="doThat">
<!-- content -->
<img slot="icon" src="...">
<p slot="main-text">Hello!</p>
</my-component>
+

Async Components

In large applications, we may need to divide the app into smaller chunks, and only load a component from the server when it is actually needed. To make that easier, Vue.js allows you to define your component as a factory function that asynchronously resolves your component definition. Vue.js will only trigger the factory function when the component actually needs to be rendered, and will cache the result for future re-renders. For example:

+
Vue.component('async-example', function (resolve, reject) {
setTimeout(function () {
resolve({
template: '<div>I am async!</div>'
})
}, 1000)
})
+

The factory function receives a resolve callback, which should be called when you have retrieved your component definition from the server. You can also call reject(reason) to indicate the load has failed. The setTimeout here is simply for demonstration; How to retrieve the component is entirely up to you. One recommended approach is to use async components together with Webpack’s code-splitting feature:

+
Vue.component('async-webpack-example', function (resolve) {
// this special require syntax will instruct webpack to
// automatically split your built code into bundles which
// are automatically loaded over ajax requests.
require(['./my-async-component'], resolve)
})
+

Assets Naming Convention

Some assets, such as components and directives, appear in templates in the form of HTML attributes or HTML custom tags. Since HTML attribute names and tag names are case-insensitive, we often need to name our assets using kebab-case instead of camelCase, which can be a bit inconvenient.

+

Vue.js actually supports naming your assets using camelCase or PascalCase, and automatically resolves them as kebab-case in templates (similar to the name conversion for props):

+
// in a component definition
components: {
// register using camelCase
myComponent: { /*... */ }
}
+
<!-- use dash case in templates -->
<my-component></my-component>
+

This works nicely with ES6 object literal shorthand:

+
// PascalCase
import TextBox from './components/text-box';
import DropdownMenu from './components/dropdown-menu';
export default {
components: {
// use in templates as <text-box> and <dropdown-menu>
TextBox,
DropdownMenu
}
}
+

Recursive Component

Components can recursively invoke itself in its own template, however, it can only do so when it has the name option:

+
var StackOverflow = Vue.extend({
name: 'stack-overflow',
template:
'<div>' +
// recursively invoke self
'<stack-overflow></stack-overflow>' +
'</div>'
})
+

A component like the above will result in a “max stack size exceeded” error, so make sure recursive invocation is conditional. When you register a component globally using Vue.component(), the global ID is automatically set as the component’s name option.

+

Fragment Instance

When you use the template option, the content of the template will replace the element the Vue instance is mounted on. It is therefore recommended to always have a single root-level, plain element in templates.

+

Instead of templates like this:

+
<div>root node 1</div>
<div>root node 2</div>
+

Prefer this:

+
<div>
I have a single root node!
<div>node 1</div>
<div>node 2</div>
</div>
+

There are multiple conditions that will turn a Vue instance into a fragment instance:

+
    +
  1. Template contains multiple top-level elements.
  2. +
  3. Template contains only plain text.
  4. +
  5. Template contains only another component (which can potentially be a fragment instance itself).
  6. +
  7. Template contains only an element directive, e.g. <partial> or vue-router’s <router-view>.
  8. +
  9. Template root node has a flow-control directive, e.g. v-if or v-for.
  10. +
+

The reason is that all of the above cause the instance to have an unknown number of top-level elements, so it has to manage its DOM content as a fragment. A fragment instance will still render the content correctly. However, it will not have a root node, and its $el will point to an “anchor node”, which is an empty Text node (or a Comment node in debug mode).

+

What’s more important though, is that non-flow-control directives, non-prop attributes and transitions on the component element will be ignored, because there is no root element to bind them to:

+
<!-- doesn't work due to no root element -->
<example v-show="ok" transition="fade"></example>
<!-- props work -->
<example :prop="someData"></example>
<!-- flow control works, but without transitions -->
<example v-if="ok"></example>
+

There are, of course, valid use cases for fragment instances, but it is in general a good idea to give your component template a single, plain root element. It ensures directives and attributes on the component element to be properly transferred, and also results in slightly better performance.

+

Inline Template

When the inline-template special attribute is present on a child component, the component will use its inner content as its template, rather than treating it as distributed content. This allows more flexible template-authoring.

+
<my-component inline-template>
<p>These are compiled as the component's own template</p>
<p>Not parent's transclusion content.</p>
</my-component>
+

However, inline-template makes the scope of your templates harder to reason about, and makes the component’s template compilation un-cachable. As a best practice, prefer defining templates inside the component using the template option.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/computed.html b/guide/computed.html new file mode 100644 index 0000000..2c55f76 --- /dev/null +++ b/guide/computed.html @@ -0,0 +1,287 @@ + + + + + Computed Properties - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Computed Properties

+ +

In-template expression memang sangat mudah untuk digunakan, tapi hanya dapat dipakai untuk operasi sederhana saja. Template dimaksudkan untuk membuat view Anda. Terlalu banyak logic di dalam template dapat membuatnya sesak / penuh kode, dan sulit untuk di-maintain. Inilah mengapa Vue.js membatasi binding expression hanya untuk satu expression saja. Untuk logic apapun yang memerlukan lebih dari satu expression, Anda diharuskan menggunakan computed property

+ +

Contoh Dasar

<div id="example">
a={{ a }}, b={{ b }}
</div>
+
var vm = new Vue({
el: '#example',
data: {
a: 1
},
computed: {
// a computed getter
b: function () {
// `this` points to the vm instance
return this.a + 1
}
}
})
+

Hasil:

+ +
+ a={{ a }}, b={{ b }} +
+ + + +

Di sini kita mendeklarasikan sebuah computed property b. Fungsi yang kami sediakan akan digunakan sebagai getter function untuk property vm.b:

+
console.log(vm.b) // -> 2
vm.a = 2
console.log(vm.b) // -> 3
+ +

Anda dapat membuka console dan bermain dengan contoh vm yang Anda buat sendiri. Value dari vm.b selalu bergantung pada value dari vm.a

+ +

Anda dapat melakukan data-bind untuk computed property di dalam template seperti property normal biasa. Vue.js tahu bahwa vm.b tergantung pada vm.a, jadi ia akan meng-update setap binding yang bergantung pada vm.b ketika value vm.a berubah. Dan bagian terbaiknya adalah kita membuat dependency relationship (ketergantungan yang saling berhubungan) ini secara deklaratif: computed getter function murni dan tanpa efek samping, yang mana hal tersebut membuatnya menjadi mudah digunakan.

+

Computed Property vs. $watch

+

Vue.js juga menyediakan method API yang bernama $watch yang mengizinkan Anda untuk mengamati perubahan data pada Vue instance. Ketika Anda memiliki beberapa data yang perlu berubah berdasarkan data yang lain, cobalah untuk menggunakan $watch - terutama jika Anda sebelumnya sudah terbiasa dengan AngularJS. Bagaimanapun, merupakan ide yang bagus untuk menggunakan computed property daripada menggunakan $watch callback yang impoeratif itu. Perhatikan contoh berikut:

+
<div id="demo">{{fullName}}</div>
+
var vm = new Vue({
el: '#demo',
data: {
firstName: 'Foo',
lastName: 'Bar',
fullName: 'Foo Bar'
}
})
vm.$watch('firstName', function (val) {
this.fullName = val + ' ' + this.lastName
})
vm.$watch('lastName', function (val) {
this.fullName = this.firstName + ' ' + val
})
+ +

Kode di atas adalah kode yang impoeratif dan repetitif. Bandingkan dengan versi computed property seperti di bawah ini:

+
var vm = new Vue({
el: '#demo',
data: {
firstName: 'Foo',
lastName: 'Bar'
},
computed: {
fullName: function () {
return this.firstName + ' ' + this.lastName
}
}
})
+ +

Lebih baik, bukan?

+

Computed Setter

+

Computed properties pada mulanya hanyalah sebuah getter (getter-only), akan tetapi Anda juga dapat menyediakan sebuah setter ketika membutuhkannya:

+
// ...
computed: {
fullName: {
// getter
get: function () {
return this.firstName + ' ' + this.lastName
},
// setter
set: function (newValue) {
var names = newValue.split(' ')
this.firstName = names[0]
this.lastName = names[names.length - 1]
}
}
}
// ...
+ +

Sekarang ketika Anda memanggil vm.fullName = 'John Doe', setter tersebut akan terpanggil dan vm.firstName dan vm.lastNamejuga akan ikut terbaharui.

+ +

Detil teknis dibalik cara kerja computed property didiskusikan halaman yang lain yang membahas tentang reactivity system (sistem reaktifitas).

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/conditional.html b/guide/conditional.html new file mode 100644 index 0000000..ea80821 --- /dev/null +++ b/guide/conditional.html @@ -0,0 +1,264 @@ + + + + + Conditional Rendering - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Conditional Rendering

+

v-if

In string templates, for example Handlebars, we would write a conditional block like this:

+
<!-- Handlebars template -->
{{#if ok}}
<h1>Yes</h1>
{{/if}}
+

In Vue.js, we use the v-if directive to achieve the same:

+
<h1 v-if="ok">Yes</h1>
+

It is also possible to add an “else” block with v-else:

+
<h1 v-if="ok">Yes</h1>
<h1 v-else>No</h1>
+

Template v-if

Because v-if is a directive, it has to be attached to a single element. But what if we want to toggle more than one element? In this case we can use v-if on a <template> element, which serves as an invisible wrapper. The final rendered result will not include the <template> element.

+
<template v-if="ok">
<h1>Title</h1>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</template>
+

v-show

Another option for conditionally displaying an element is the v-show directive. The usage is largely the same:

+
<h1 v-show="ok">Hello!</h1>
+

The difference is that an element with v-show will always be rendered and remain in the DOM; v-show simply toggles the display CSS property of the element.

+

Note that v-show doesn’t support the <template> syntax.

+

v-else

You can use the v-else directive to indicate an “else block” for v-if or v-show:

+
<div v-if="Math.random() > 0.5">
Sorry
</div>
<div v-else>
Not sorry
</div>
+

The v-else element must immediately follow the v-if or v-show element - otherwise it will not be recognized.

+

Component caveat

When used with components and v-show, v-else doesn’t get applied properly due to directives priorities. So instead of doing this:

+
<custom-component v-show="condition"></custom-component>
<p v-else>This could be a component too</p>
+

Replace the v-else with another v-show:

+
<custom-component v-show="condition"></custom-component>
<p v-show="!condition">This could be a component too</p>
+

It does work as intended with v-if.

+

v-if vs. v-show

When a v-if block is toggled, Vue.js will have to perform a partial compilation/teardown process, because the template content inside v-if can also contain data bindings or child components. v-if is “real” conditional rendering because it ensures that event listeners and child components inside the conditional block are properly destroyed and re-created during toggles.

+

v-if is also lazy: if the condition is false on initial render, it will not do anything - partial compilation won’t start until the condition becomes true for the first time (and the compilation is subsequently cached).

+

In comparison, v-show is much simpler - the element is always compiled and preserved, with just simple CSS-based toggling.

+

Generally speaking, v-if has higher toggle costs while v-show has higher initial render costs. So prefer v-show if you need to toggle something very often, and prefer v-if if the condition is unlikely to change at runtime.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/custom-directive.html b/guide/custom-directive.html new file mode 100644 index 0000000..bda3b6d --- /dev/null +++ b/guide/custom-directive.html @@ -0,0 +1,338 @@ + + + + + Custom Directives - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Custom Directives

+

Basics

In addition to the default set of directives shipped in core, Vue.js also allows you to register custom directives. Custom directives provide a mechanism for mapping data changes to arbitrary DOM behavior.

+

You can register a global custom directive with the Vue.directive(id, definition) method, passing in a directive id followed by a definition object. You can also register a local custom directive by including it in a component’s directives option.

+

Hook Functions

A definition object can provide several hook functions (all optional):

+
    +
  • bind: called only once, when the directive is first bound to the element.

    +
  • +
  • update: called for the first time immediately after bind with the initial value, then again whenever the binding value changes. The new value and the previous value are provided as the argument.

    +
  • +
  • unbind: called only once, when the directive is unbound from the element.

    +
  • +
+

Example

+
Vue.directive('my-directive', {
bind: function () {
// do preparation work
// e.g. add event listeners or expensive stuff
// that needs to be run only once
},
update: function (newValue, oldValue) {
// do something based on the updated value
// this will also be called for the initial value
},
unbind: function () {
// do clean up work
// e.g. remove event listeners added in bind()
}
})
+

Once registered, you can use it in Vue.js templates like this (remember to add the v- prefix):

+
<div v-my-directive="someValue"></div>
+

When you only need the update function, you can pass in a single function instead of the definition object:

+
Vue.directive('my-directive', function (value) {
// this function will be used as update()
})
+

Directive Instance Properties

All the hook functions will be copied into the actual directive object, which you can access inside these functions as their this context. The directive object exposes some useful properties:

+
    +
  • el: the element the directive is bound to.
  • +
  • vm: the context ViewModel that owns this directive.
  • +
  • expression: the expression of the binding, excluding arguments and filters.
  • +
  • arg: the argument, if present.
  • +
  • name: the name of the directive, without the prefix.
  • +
  • modifiers: an object containing modifiers, if any.
  • +
  • descriptor: an object that contains the parsing result of the entire directive.
  • +
  • params: an object containing param attributes. Explained below.
  • +
+

You should treat all these properties as read-only and never modify them. You can attach custom properties to the directive object too, but be careful not to accidentally overwrite existing internal ones.

+ +

An example of a custom directive using some of these properties:

+
<div id="demo" v-demo:hello.a.b="msg"></div>
+
Vue.directive('demo', {
bind: function () {
console.log('demo bound!')
},
update: function (value) {
this.el.innerHTML =
'name - ' + this.name + '<br>' +
'expression - ' + this.expression + '<br>' +
'argument - ' + this.arg + '<br>' +
'modifiers - ' + JSON.stringify(this.modifiers) + '<br>' +
'value - ' + value
}
})
var demo = new Vue({
el: '#demo',
data: {
msg: 'hello!'
}
})
+

Result

+

+ + +

Object Literals

If your directive needs multiple values, you can also pass in a JavaScript object literal. Remember, directives can take any valid JavaScript expression:

+
<div v-demo="{ color: 'white', text: 'hello!' }"></div>
+
Vue.directive('demo', function (value) {
console.log(value.color) // "white"
console.log(value.text) // "hello!"
})
+

Literal Modifier

When a directive is used with the literal modifier, its attribute value will be interpreted as a plain string and passed directly into the update method. The update method will also be called only once, because a plain string cannot be reactive.

+
<div v-demo.literal="foo bar baz">
+
Vue.directive('demo', function (value) {
console.log(value) // "foo bar baz"
})
+

Element Directives

In some cases, we may want our directive to be used in the form of a custom element rather than as an attribute. This is very similar to Angular’s notion of “E” mode directives. Element directives provide a lighter-weight alternative to full-blown components (which are explained earlier in the guide). You can register a custom element directive like so:

+
Vue.elementDirective('my-directive', {
// same API as normal directives
bind: function () {
// manipulate this.el...
}
})
+

Then, instead of:

+
<div v-my-directive></div>
+

We can write:

+
<my-directive></my-directive>
+

Element directives cannot accept arguments or expressions, but it can read the element’s attributes to determine its behavior.

+

A big difference from normal directives is that element directives are terminal, which means once Vue encounters an element directive, it will completely skip that element - only the element directive itself will be able to manipulate that element and its children.

+

Advanced Options

params

Custom directive can provide a params array, and the Vue compiler will automatically extract these attributes on the element that the directive is bound to. Example:

+
<div v-example a="hi"></div>
+
Vue.directive('example', {
params: ['a'],
bind: function () {
console.log(this.params.a) // -> "hi"
}
})
+

This API also supports dynamic attributes. The this.params[key] value is automatically kept up-to-date. In addition, you can specify a callback when the value has changed:

+
<div v-example v-bind:a="someValue"></div>
+
Vue.directive('example', {
params: ['a'],
paramWatchers: {
a: function (val, oldVal) {
console.log('a changed!')
}
}
})
+

Note that similar to props, directive params follow the same camelCase <=> kebab case mapping between JavaScript and HTML. For example, for a param used as disable-effect in the template, you need to access it as disableEffect in JavaScript.

+ +

deep

If your custom directive is expected to be used on an Object, and it needs to trigger update when a nested property inside the object changes, you need to pass in deep: true in your directive definition.

+
<div v-my-directive="obj"></div>
+
Vue.directive('my-directive', {
deep: true,
update: function (obj) {
// will be called when nested properties in `obj`
// changes.
}
})
+

twoWay

If your directive expects to write data back to the Vue instance, you need to pass in twoWay: true. This option allows the use of this.set(value) inside the directive:

+
Vue.directive('example', {
twoWay: true,
bind: function () {
this.handler = function () {
// set data back to the vm.
// If the directive is bound as v-example="a.b.c",
// this will attempt to set `vm.a.b.c` with the
// given value.
this.set(this.el.value)
}.bind(this)
this.el.addEventListener('input', this.handler)
},
unbind: function () {
this.el.removeEventListener('input', this.handler)
}
})
+

acceptStatement

Passing in acceptStatement:true enables your custom directive to accept inline statements like v-on does:

+
<div v-my-directive="a++"></div>
+
Vue.directive('my-directive', {
acceptStatement: true,
update: function (fn) {
// the passed in value is a function which when called,
// will execute the "a++" statement in the owner vm's
// scope.
}
})
+

Use this wisely though, because in general you want to avoid side-effects in your templates.

+

terminal

+

1.0.19+

+
+

Vue compiles templates by recursively walking the DOM tree. However when it encounters a terminal directive, it will stop walking that element’s children. The terminal directive takes over the job of compiling the element and its children. For example, v-if and v-for are both terminal directives.

+

Writing a custom terminal directive is an advanced topic and requires decent knowledge of Vue’s compilation pipeline, but it’s possible. You can specify a custom terminal directive by specifying terminal: true. You will also likely need to use Vue.FragmentFactory for partial compilation. Here’s an example of a custom terminal directive that compiles and “injects” its content template to another location on the page:

+
var FragmentFactory = Vue.FragmentFactory
var remove = Vue.util.remove
var createAnchor = Vue.util.createAnchor
Vue.directive('inject', {
terminal: true,
bind: function () {
var container = document.getElementById(this.arg)
this.anchor = createAnchor('v-inject')
container.appendChild(this.anchor)
remove(this.el)
var factory = new FragmentFactory(this.vm, this.el)
this.frag = factory.create(this._host, this._scope, this._frag)
this.frag.before(this.anchor)
},
unbind: function () {
this.frag.remove()
remove(this.anchor)
}
})
+
<div id="modal"></div>
...
<div v-inject:modal>
<h1>header</h1>
<p>body</p>
<p>footer</p>
</div>
+

If you want to write a custom terminal directive, it is recommend that you read through the source code of built-in terminal directives like v-if and v-for to get a better understanding of Vue internals.

+

priority

You can optionally provide a priority number for your directive. If no priority is specified, a default priority will be used - 1000 for normal directives and 2000 for terminal directives. A directive with a higher priority will be processed earlier than other directives on the same element. Directives with the same priority will be processed in the order they appear in the element’s attribute list, although that order is not guaranteed to be consistent in different browsers.

+

You can checkout the priorities for some built-in directives in the API reference. Additionally, flow control directives v-if and v-for always have the highest priority in the compilation process.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/custom-filter.html b/guide/custom-filter.html new file mode 100644 index 0000000..8423315 --- /dev/null +++ b/guide/custom-filter.html @@ -0,0 +1,279 @@ + + + + + Custom Filters - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Custom Filters

+

Basics

Similar to custom directives, you can register a custom filter with the global Vue.filter() method, passing in a filterID and a filter function. The filter function takes a value as the argument and returns the transformed value:

+
Vue.filter('reverse', function (value) {
return value.split('').reverse().join('')
})
+
<!-- 'abc' => 'cba' -->
<span v-text="message | reverse"></span>
+

The filter function also receives any inline arguments:

+
Vue.filter('wrap', function (value, begin, end) {
return begin + value + end
})
+
<!-- 'hello' => 'before hello after' -->
<span v-text="message | wrap 'before' 'after'"></span>
+

Two-way Filters

Up till now we have used filters to transform values coming from the model and before displaying them in the view. But it is also possible to define a filter that transforms the value before it is written back to the model from the view (input elements):

+
Vue.filter('currencyDisplay', {
// model -> view
// formats the value when updating the input element.
read: function(val) {
return '$'+val.toFixed(2)
},
// view -> model
// formats the value when writing to the data.
write: function(val, oldVal) {
var number = +val.replace(/[^\d.]/g, '')
return isNaN(number) ? 0 : parseFloat(number.toFixed(2))
}
})
+

Demo:

+ +
+ +

Model value: {{money}}

+
+ + +

Dynamic Arguments

If a filter argument is not enclosed by quotes, it will be evaluated dynamically in the current vm’s data context. In addition, the filter function is always invoked using the current vm as its this context. For example:

+
<input v-model="userInput">
<span>{{msg | concat userInput}}</span>
+
Vue.filter('concat', function (value, input) {
// here `input` === `this.userInput`
return value + input
})
+

For this simple example above, you can achieve the same result with just an expression, but for more complicated procedures that need more than one statement, you need to put them either in a computed property or a custom filter.

+

The built-in filterBy and orderBy filters are both filters that perform non-trivial work on the Array being passed in and relies on the current state of the owner Vue instance.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/events.html b/guide/events.html new file mode 100644 index 0000000..113ed5f --- /dev/null +++ b/guide/events.html @@ -0,0 +1,323 @@ + + + + + Methods and Event Handling - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Methods and Event Handling

+

Method Handler

We can use the v-on directive to listen to DOM events:

+
<div id="example">
<button v-on:click="greet">Greet</button>
</div>
+

We are binding a click event listener to a method named greet. Here’s how to define that method in our Vue instance:

+
var vm = new Vue({
el: '#example',
data: {
name: 'Vue.js'
},
// define methods under the `methods` object
methods: {
greet: function (event) {
// `this` inside methods point to the Vue instance
alert('Hello ' + this.name + '!')
// `event` is the native DOM event
alert(event.target.tagName)
}
}
})
// you can invoke methods in JavaScript too
vm.greet() // -> 'Hello Vue.js!'
+

Test it yourself:

+ +
+ +
+ + +

Inline Statement Handler

Instead of binding directly to a method name, we can also use an inline JavaScript statement:

+
<div id="example-2">
<button v-on:click="say('hi')">Say Hi</button>
<button v-on:click="say('what')">Say What</button>
</div>
+
new Vue({
el: '#example-2',
methods: {
say: function (msg) {
alert(msg)
}
}
})
+

Result:
+

+ + +
+ +

+

Similar to the restrictions on inline expressions, event handlers are restricted to one statement only.

+

Sometimes we also need to access the original DOM event in an inline statement handler. You can pass it into a method using the special $event variable:

+
<button v-on:click="say('hello!', $event)">Submit</button>
+
// ...
methods: {
say: function (msg, event) {
// now we have access to the native event
event.preventDefault()
}
}
+

Event Modifiers

It is a very common need to call event.preventDefault() or event.stopPropagation() inside event handlers. Although we can do this easily inside methods, it would be better if the methods can be purely about data logic rather than having to deal with DOM event details.

+

To address this problem, Vue.js provides two event modifiers for v-on: .prevent and .stop. Recall that modifiers are directive postfixes denoted by a dot:

+
<!-- the click event's propagation will be stopped -->
<a v-on:click.stop="doThis"></a>
<!-- the submit event will no longer reload the page -->
<form v-on:submit.prevent="onSubmit"></form>
<!-- modifiers can be chained -->
<a v-on:click.stop.prevent="doThat">
<!-- just the modifier -->
<form v-on:submit.prevent></form>
+

In 1.0.16, two additional modifiers have been introduced:

+
<!-- use capture mode when adding the event listener -->
<div v-on:click.capture="doThis">...</div>
<!-- only trigger handler if event.target is the element itself -->
<!-- i.e. not from a child element -->
<div v-on:click.self="doThat">...</div>
+

Key Modifiers

When listening for keyboard events, we often need to check for common key codes. Vue.js also allows adding key modifiers for v-on when listening for key events:

+
<!-- only call vm.submit() when the keyCode is 13 -->
<input v-on:keyup.13="submit">
+

Remembering all the keyCodes is a hassle, so Vue.js provides aliases for most commonly used keys:

+
<!-- same as above -->
<input v-on:keyup.enter="submit">
<!-- also works for shorthand -->
<input @keyup.enter="submit">
+

Here’s the full list of key modifier aliases:

+
    +
  • enter
  • +
  • tab
  • +
  • delete
  • +
  • esc
  • +
  • space
  • +
  • up
  • +
  • down
  • +
  • left
  • +
  • right
  • +
+

1.0.8+: Single letter key aliases are also supported.

+

1.0.17+: You can also define custom key modifier aliases:

+
// enable @keyup.f1
Vue.directive('on').keyCodes.f1 = 112
+

Why Listeners in HTML?

You might be concerned that this whole event listening approach violates the good old rules about “separation of concern”. Rest assured - since all Vue.js handler functions and expressions are strictly bound to the ViewModel that’s handling the current View, it won’t cause any maintenance difficulty. In fact, there are several benefits in using v-on:

+
    +
  1. It makes it easier to locate the handler function implementations within your JS code by simply skimming the HTML template.

    +
  2. +
  3. Since you don’t have to manually attach event listeners in JS, your ViewModel code can be pure logic and DOM-free. This makes it easier to test.

    +
  4. +
  5. When a ViewModel is destroyed, all event listeners are automatically removed. You don’t need to worry about cleaning it up yourself.

    +
  6. +
+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/forms.html b/guide/forms.html new file mode 100644 index 0000000..88f99f3 --- /dev/null +++ b/guide/forms.html @@ -0,0 +1,426 @@ + + + + + Form Input Bindings - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Form Input Bindings

+

Basics Usage

You can use the v-model directive to create two-way data bindings on form input and textarea elements. It automatically picks the correct way to update the element based on the input type. Although a bit magical, v-model is essentially syntax sugar for updating data on user input events, plus special care for some edge cases.

+

Text

<span>Message is: {{ message }}</span>
<br>
<input type="text" v-model="message" placeholder="edit me">
+ +
+ Message is: {{ message }}
+ +
+ + +

Multiline text

<span>Multiline message is:</span>
<p>{{ message }}</p>
<br>
<textarea v-model="message" placeholder="add multiple lines"></textarea>
+ +
+ Message is: +

{{ message }}


+ +
+ + +

Checkbox

Single checkbox, boolean value:

+
<input type="checkbox" id="checkbox" v-model="checked">
<label for="checkbox">{{ checked }}</label>
+ +
+ + +
+ + +

Mutiple checkboxes, bound to the same Array:

+
<input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
<label for="jack">Jack</label>
<input type="checkbox" id="john" value="John" v-model="checkedNames">
<label for="john">John</label>
<input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
<label for="mike">Mike</label>
<br>
<span>Checked names: {{ checkedNames | json }}</span>
+
new Vue({
el: '...',
data: {
checkedNames: []
}
})
+ +
+ + + + + + +
+ Checked names: {{ checkedNames | json }} +
+ + +

Radio

<input type="radio" id="one" value="One" v-model="picked">
<label for="one">One</label>
<br>
<input type="radio" id="two" value="Two" v-model="picked">
<label for="two">Two</label>
<br>
<span>Picked: {{ picked }}</span>
+ +
+ + +
+ + +
+ Picked: {{ picked }} +
+ + +

Select

Single select:

+
<select v-model="selected">
<option selected>A</option>
<option>B</option>
<option>C</option>
</select>
<span>Selected: {{ selected }}</span>
+ +
+ + Selected: {{ selected }} +
+ + +

Multiple select (bound to Array):

+
<select v-model="selected" multiple>
<option selected>A</option>
<option>B</option>
<option>C</option>
</select>
<br>
<span>Selected: {{ selected | json }}</span>
+ +
+ +
+ Selected: {{ selected | json }} +
+ + +

Dynamic options rendered with v-for:

+
<select v-model="selected">
<option v-for="option in options" v-bind:value="option.value">
{{ option.text }}
</option>
</select>
<span>Selected: {{ selected }}</span>
+
new Vue({
el: '...',
data: {
selected: 'A',
options: [
{ text: 'One', value: 'A' },
{ text: 'Two', value: 'B' },
{ text: 'Three', value: 'C' }
]
}
})
+ +
+ + Selected: {{ selected }} +
+ + +

Value Bindings

For radio, checkbox and select options, the v-model binding values are usually static strings (or booleans for checkbox):

+
<!-- `picked` is a string "a" when checked -->
<input type="radio" v-model="picked" value="a">
<!-- `toggle` is either true or false -->
<input type="checkbox" v-model="toggle">
<!-- `selected` is a string "abc" when selected -->
<select v-model="selected">
<option value="abc">ABC</option>
</select>
+

But sometimes we may want to bind the value to a dynamic property on the Vue instance. We can use v-bind to achieve that. In addition, using v-bind allows us to bind the input value to non-string values.

+

Checkbox

<input
type="checkbox"
v-model="toggle"
v-bind:true-value="a"
v-bind:false-value="b">
+
// when checked:
vm.toggle === vm.a
// when unchecked:
vm.toggle === vm.b
+

Radio

<input type="radio" v-model="pick" v-bind:value="a">
+
// when checked:
vm.pick === vm.a
+

Select Options

<select v-model="selected">
<!-- inline object literal -->
<option v-bind:value="{ number: 123 }">123</option>
</select>
+
// when selected:
typeof vm.selected // -> 'object'
vm.selected.number // -> 123
+

Param Attributes

lazy

By default, v-model syncs the input with the data after each input event. You can add a lazy attribute to change the behavior to sync after change events:

+
<!-- synced after "change" instead of "input" -->
<input v-model="msg" lazy>
+

number

If you want user input to be automatically persisted as numbers, you can add a number attribute to your v-model managed inputs:

+
<input v-model="age" number>
+

debounce

The debounce param allows you to set a minimum delay after each keystroke before the input’s value is synced to the model. This can be useful when you are performing expensive operations on each update, for example making an Ajax request for type-ahead autocompletion.

+
<input v-model="msg" debounce="500">
+ +
+ {{ msg }}
+ +
+ + +

Note that the debounce param does not debounce the user’s input events: it debounces the “write” operation to the underlying data. Therefore you should use vm.$watch() to react to data changes when using debounce. For debouncing real DOM events you should use the debounce filter.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/index.html b/guide/index.html new file mode 100644 index 0000000..30b2954 --- /dev/null +++ b/guide/index.html @@ -0,0 +1,360 @@ + + + + + Memulai - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Memulai

+ +

Mari kita mulai dengan tour ringkas penggunaan fitur data binding pada Vue.js. Jika anda lebih tertarik untuk ikhtisar yang lebih tinggi levelnya, cek postingan blog ini.

+ +

Cara termudah untuk mencoba Vue.js adalah melalui contoh Hello World pada JSFiddle. Silakan membuka tab baru dan ikuti sebagaimana yang telah kami contohkan.

+

Hello World

<div id="app">
{{ message }}
</div>
+
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})
+ +
+ {{ message }} +
+ + + +

Data Binding Dua Arah

<div id="app">
<p>{{ message }}</p>
<input v-model="message">
</div>
+
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})
+ +
+

{{ message }}

+ +
+ + +

Render sebuah List

<div id="app">
<ul>
<li v-for="todo in todos">
{{ todo.text }}
</li>
</ul>
</div>
+
new Vue({
el: '#app',
data: {
todos: [
{ text: 'Belajar JavaScript' },
{ text: 'Belajar Vue.js' },
{ text: 'Buat sesuatu yang mengagumkan' }
]
}
})
+ +
+
    +
  • + {{ todo.text }} +
  • +
+
+ + + +

Menangani Inputan dari Pengguna

<div id="app">
<p>{{ message }}</p>
<button v-on:click="reverseMessage">Balik Pesan</button>
</div>
+
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
},
methods: {
reverseMessage: function () {
this.message = this.message.split('').reverse().join('')
}
}
})
+ +
+

{{ message }}

+ +
+ + + +

Lakukan Secara Bersamaan

<div id="app">
<input v-model="newTodo" v-on:keyup.enter="addTodo">
<ul>
<li v-for="todo in todos">
<span>{{ todo.text }}</span>
<button v-on:click="removeTodo($index)">X</button>
</li>
</ul>
</div>
+
new Vue({
el: '#app',
data: {
newTodo: '',
todos: [
{ text: 'Add some todos' }
]
},
methods: {
addTodo: function () {
var text = this.newTodo.trim()
if (text) {
this.todos.push({ text: text })
this.newTodo = ''
}
},
removeTodo: function (index) {
this.todos.splice(index, 1)
}
}
})
+ +
+ +
    +
  • + {{ todo.text }} + +
  • +
+
+ + + +

Kami harap ini dapat memberikan Anda gambaran bagaimana Vue.js bekerja. Kami yakin anda juga memiliki banyak pertanyaan sekarang. Silakan baca terus, dan kami akan membahasnya di panduan berikutnya.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/installation.html b/guide/installation.html new file mode 100644 index 0000000..79516b0 --- /dev/null +++ b/guide/installation.html @@ -0,0 +1,264 @@ + + + + + Instalasi - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Instalasi

+

Catatan Kompatibilitas

+

Vue.js tidak mendukung IE8 dan di bawahnya, karena Vue.js memakai fitur ECMAScript 5 yang dapat berjalan di IE8. Akan tetapi, Vue.js mendukung semua browser yang dapat menjalankan ECMAScript 5.

+

Catatan Rilis

+

Detil catatan rilis untuk setiap versi tersedia di GitHub.

+

Standalone

+

Download dengan mudah dan cukup masukkan ke dalam tag <script>. Vue akan ter-register sebagai variabel global. Tips: jangan menggunakan versi minified (versi produksi) selama proses pengembangan aplikasi, karena anda tidak dapat melihat semua peringatan maupun pesan error jika terdapat kesalahan.

+

Versi Pengembangandengan full warnings dan debug mode

Versi ProduksiTanpa warning, 26.03kb min+gzip
+ +

CDN (Content Delivery Network)

+

Juga tersedia di npmcdn, yang secara otomatis tersedia versi terakhir ketika versi tersebut baru dirilis di npm. Anda juga dapat melihat-lihat sumber package npm di npmcdn.com/vue/.

+

CSP-compliant build

+

Beberapa environment, seperti Google Chrome Apps, memaksa Content Security Policy (CSP) dan tidak memperbolehkan penggunaan new Function() untuk meng-evaluasi expressions. Dalam kasus ini maka Anda harus menggunakan CSP-compliant build sebagai gantinya.

+

NPM

+

NPM adalah metode instalasi yang direkomendasikan ketika membangun sebuah aplikasi berskala besar menggunakan Vue.js. Ia berpasangan dengan baik dengan CommonJS module bundler seperti Webpack atau Browserify. Vue.js juga menyediakan accompanying tools untuk authoring Single File Components

+
# versi stabil terbaru
$ npm install vue
# versi stabil terbaru + CSP-compliant
$ npm install vue@csp
+

CLI (Command Line Interface)

+

Vue.js menyediakan sebuah CLI resmi untuk mempercepat pembangunan Single Page Applications. Hanya membutuhkan beberapa menit untuk memasang dan menjalankan dengan hot-reload, lint-on-save dan production-ready builds.

+
# install vue-cli
$ npm install -g vue-cli
# buat sebuah project menggunakan boilerplate "webpack"
$ vue init webpack my-project
# install dependencies dan siap dijalankan!
$ cd my-project
$ npm install
$ npm run dev
+

Dev Build

+

Penting: the CommonJS bundle distributed on NPM (vue.common.js) is only checked-in during releases on the master branch, so the file in the dev branch is the same as the stable release. Untuk menggunakan Vue dari source code terbaru di GitHub, Anda harus membuatnya sendiri!

+
git clone https://github.com/vuejs/vue.git node_modules/vue
cd node_modules/vue
npm install
npm run build
+

Bower

# versi stabil terbaru
$ bower install vue
+

AMD Module Loaders

+

Versi standalone download maupun versi yang terinstall melalui Bower adalah di-wrap dengan UMD, jadi dapat langsung digunakan sebagai modul AMD.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/instance.html b/guide/instance.html new file mode 100644 index 0000000..af20e8f --- /dev/null +++ b/guide/instance.html @@ -0,0 +1,270 @@ + + + + + The Vue Instance - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

The Vue Instance

+

#Konstruktor

+ +

Setiap aplikasi Vue.js dibootstrapp dengan membuat sebuah root Vue Instance dengan fungsi konstruktor Vue:

+
var vm = new Vue({
// options
})
+ +

Sebuah Vue instance secara esensial adalah ViewModel seperti yang didefinisikan di pola MVVM, jadi variabel bernama vm akan sering anda lihat sepanjang dokumentasi.

+ +

Ketika anda menginstant sebuah Vue instance, anda perlu melewatkan sebuah options object yang dapat menampung opsi untuk data, template, elemen untuk dikaitkan, metode, lifecycle callbacks, dll. Daftar lengkap opsi tersebut bisa dilihat di referensi API.

+ +

Konstruktor Vue dapat diperluas untuk membuat component constructors yang dapat digunakan ulang kembali dengan opsi yang telah didefinisikan sebelumnya:

+
var MyComponent = Vue.extend({
// extension options
})
// semua instance `MyComponent` dibuat oleh
// opsi yang telah didefinisikan sebelumnya
var myComponentInstance = new MyComponent()
+ +

Meskipun anda bisa membuat instance yang diperluas secara imperatif, dalam banyak kasus anda akan mendaftarkan sebuah konstruktor komponen sebagai custom element dan menyusunnya di template secara deklaratif. Kita akan membahas tentang sistem komponen secara detail nanti. Untuk sekarang, anda hanya perlu tahu bahwa semua komponen Vue.js pada dasarnya merupakan perluasan Vue instances.

+

Properti and Methods

+

Setiap Vue instance proxies semua properti yang ada di objek data:

var data = { a: 1 }
var vm = new Vue({
data: data
})
vm.a === data.a // -> true
// merubah setting properti juga mempengaruhi data asli
vm.a = 2
data.a // -> 2
// ... dan juga sebaliknya
data.a = 3
vm.a // -> 3

+ +

Perlu diperhatikan bahwa hanya proxied properties yang reaktif. Jika anda menyematkan sebuah properti baru ke instance setelah instance tersebut dibuat, instance tersebut tidak akan memicu apapun perubahan yang terjadi pada tampilan. Kita akan membahas tentang reactivity system secara detail nanti.

+ +

Sebagai tambahan untuk properti data, Vue instance mempunyai beberapa instance properti dan methods yang berguna. Properti dan methods ini diawali dengan $ untuk membedakan dari proxied data properties. Sebgai contoh:

+
var data = { a: 1 }
var vm = new Vue({
el: '#example',
data: data
})
vm.$data === data // -> true
vm.$el === document.getElementById('example') // -> true
// $watch adalah sebuah contoh instance method
vm.$watch('a', function (newVal, oldVal) {
// callback ini akan dipanggil ketika `vm.a` berubah
})
+ +

Silahkan lihat referensi API untuk mengetahui daftar lengkap instance properties dan methods.

+

Siklus Hidup Vue Instance

+

Setiap Vue instance melalui sebuah rangkaian langkah-langkah inisialisasi ketika dia dibuat - sebagai contoh, dia perlu untuk mempersiapkan observasi data, kompilasi template, dan membuat ikatan data yang diperlukan. Selama proses berlangsung, dia juga akan meminta beberapa lifecycle hooks, yang akan memberikan kita kesempatan untuk mengeksekusi custom logic. Sebagai contoh, created hook dipanggil setelah instance dibuat.

+
var vm = new Vue({
data: {
a: 1
},
created: function () {
// `this` menunjuk kepada vm instance
console.log('a is: ' + this.a)
}
})
// -> "a is: 1"
+ +

Ada juga hook/pengaitan lain yang akan dipanggil pada keadaan yang berbeda dari siklus hidup instance, sebagai contoh compiled, ready, dan destroyed. Semua siklus hidup hook/pengaitan dipanggil dengan this konteks yang menunjuk ke Vue instance yang memanggilnya. Beberapa pengguna mungkin bertanya-tanya dimana konsep “controller” berada di Vue.js, dan jawabannya adalah: tidak ada controller/pengendali di Vue.js. Custom logic anda untuk sebuah komponen akan dipisah di antara siklus hidup hook/pengaitan.

+

Diagram Siklus Hidup

+

Di bawah ini adalah sebuah diagram siklus hidup instance. Untuk sekarang anda tidak perlu memahaminya secara keseluruhan, tetapi diagram ini nantinya akan berguna suatu hari nanti.

+

Siklus Hidup

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/join.html b/guide/join.html new file mode 100644 index 0000000..86c1b22 --- /dev/null +++ b/guide/join.html @@ -0,0 +1,262 @@ + + + + + Join the Vue Community! - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Join the Vue Community!

+

Join the Vue.js Community!

The vibrant community around Vue.js is continually growing. Nevertheless, helpful hands are always welcome. In fact, a growing community is the best sign of a healthy OSS project worth putting any effort into, even if it is as the user of the software.

+

If you would like to also be a part of the Vue.js community, this page was meant to support your endeavors. Have a look at the resources listed below to get some orientation around the sailing ship of Vue.js and…

+

….welcome aboard!

+

Resources You Should Know About!

The Community

    +
  • The Forum - THE best place to ask questions and get answers about Vue.js and its components.
  • +
  • Gitter Channel - A place for devs to meet and chat. You can ask questions here, but the forum is the better platform, since the discussions are threaded.
  • +
  • Github - Report bugs or fork repositories to offer pull requests. Any contribution is greatly appreciated!
  • +
+

Third Party Contributions

+

Contributing to Vue

    +
  • The rules to contribute - As with any community, there has to be rules, in order to ensure everyone is doing the right things the right way.

    +
  • +
  • The Main Components of Vue

    +
      +
    • Vue - The core repository.
    • +
    • Vuex - A Flux-inspired Application Architecture for Vue.js.
    • +
    • Vue-router - A routing system for SPAs with Vue.js.
    • +
    • Vue-resource - A plugin, which provides services for making web requests and to handle responses using XMLHttpRequests or JSONP.
    • +
    +
  • +
+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/list.html b/guide/list.html new file mode 100644 index 0000000..47eb464 --- /dev/null +++ b/guide/list.html @@ -0,0 +1,381 @@ + + + + + List Rendering - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

List Rendering

+

v-for

We can use the v-for directive to render a list of items based on an Array. The v-for directive requires a special syntax in the form of item in items, where items is the source data Array and item is an alias for the Array element being iterated on:

+

Example:

+
<ul id="example-1">
<li v-for="item in items">
{{ item.message }}
</li>
</ul>
+
var example1 = new Vue({
el: '#example-1',
data: {
items: [
{ message: 'Foo' },
{ message: 'Bar' }
]
}
})
+

Result:

+ +
    +
  • + {{item.message}} +
  • +
+ + +

Inside v-for blocks we have full access to parent scope properties, plus a special variable $index which, as you probably have guessed, is the Array index for the current item:

+
<ul id="example-2">
<li v-for="item in items">
{{ parentMessage }} - {{ $index }} - {{ item.message }}
</li>
</ul>
+
var example2 = new Vue({
el: '#example-2',
data: {
parentMessage: 'Parent',
items: [
{ message: 'Foo' },
{ message: 'Bar' }
]
}
})
+

Result:

+ +
    +
  • + {{ parentMessage }} - {{ $index }} - {{ item.message }} +
  • +
+ + +

Alternatively, you can also specify an alias for the index (or the key if v-for is used on an Object):

+
<div v-for="(index, item) in items">
{{ index }} {{ item.message }}
</div>
+

Starting in 1.0.17 you can also use of as the delimiter instead of in, so that it is closer to JavaScript syntax for iterators:

+
<div v-for="item of items"></div>
+

Template v-for

Similar to template v-if, you can also use a <template> tag with v-for to render a block of multiple elements. For example:

+
<ul>
<template v-for="item in items">
<li>{{ item.msg }}</li>
<li class="divider"></li>
</template>
</ul>
+

Array Change Detection

Mutation Methods

Vue.js wraps an observed Array’s mutation methods so they will also trigger View updates. The wrapped methods are:

+
    +
  • push()
  • +
  • pop()
  • +
  • shift()
  • +
  • unshift()
  • +
  • splice()
  • +
  • sort()
  • +
  • reverse()
  • +
+

You can open the console and play with the previous examples’ items array by calling its mutation methods. For example: example1.items.push({ message: 'Baz' }).

+

Replacing an Array

Mutation methods, as the name suggests, mutate the original Array they are called on. In comparison, there are also non-mutating methods, e.g. filter(), concat() and slice(), which do not mutate the original Array but always return a new Array. When working with non-mutating methods, you can just replace the old Array with the new one:

+
example1.items = example1.items.filter(function (item) {
return item.message.match(/Foo/)
})
+

You might think this will cause Vue.js to throw away the existing DOM and re-render the entire list - luckily that is not the case. Vue.js implements some smart heuristics to maximize DOM element reuse, so replacing an array with another array containing overlapping objects is a very efficient operation.

+

track-by

In some cases, you might need to replace the Array with completely new objects - e.g. ones created from an API call. Since by default v-for determines the reusability of existing scopes and DOM elements by tracking the identity of its data object, this could cause the entire list to be re-rendered. However, if each of your data objects has a unique id property, then you can use a track-by special attribute to give Vue.js a hint so that it can reuse existing instances as much as possible.

+

For example, if your data looks like this:

+
{
items: [
{ _uid: '88f869d', ... },
{ _uid: '7496c10', ... }
]
}
+

Then you can give the hint like this:

+
<div v-for="item in items" track-by="_uid">
<!-- content -->
</div>
+

Later on, when you replace the items array and Vue.js encounters a new object with _uid: '88f869d', it knows it can reuse the existing scope and DOM elements associated with the same _uid.

+

track-by $index

If you don’t have a unique key to track by, you can also use track-by="$index", which will force v-for into in-place update mode: fragments are no longer moved around, they simply get flushed with the new value at the corresponding index. This mode can also handle duplicate values in the source array.

+

This can make Array replacement extremely efficient, but it comes at a trade-off. Because DOM nodes are no longer moved to reflect the change in order, temporary state like DOM input values and component private state can become out of sync. So, be careful when using track-by="$index" if the v-for block contains form input elements or child components.

+

Caveats

Due to limitations of JavaScript, Vue.js cannot detect the following changes to an Array:

+
    +
  1. When you directly set an item with the index, e.g. vm.items[0] = {};
  2. +
  3. When you modify the length of the Array, e.g. vm.items.length = 0.
  4. +
+

To deal with caveat (1), Vue.js augments observed Arrays with a $set() method:

+
// same as `example1.items[0] = ...` but triggers view update
example1.items.$set(0, { childMsg: 'Changed!'})
+

To deal with caveat (2), just replace items with an empty array instead.

+

In addition to $set(), Vue.js also augments Arrays with a convenience method $remove(), which searches for and removes an item from target Array by calling splice() internally. So instead of:

+
var index = this.items.indexOf(item)
if (index !== -1) {
this.items.splice(index, 1)
}
+

You can just do:

+
this.items.$remove(item)
+

Using Object.freeze()

When iterating over an array of objects frozen with Object.freeze(), you need to explicitly use a track-by key. A warning will be displayed in this scenario when Vue.js is unable to track objects automatically.

+

Object v-for

You can also use v-for to iterate through the properties of an Object. In addition to $index, each scope will have access to another special property $key.

+
<ul id="repeat-object" class="demo">
<li v-for="value in object">
{{ $key }} : {{ value }}
</li>
</ul>
+
new Vue({
el: '#repeat-object',
data: {
object: {
FirstName: 'John',
LastName: 'Doe',
Age: 30
}
}
})
+

Result:

+ +
    +
  • + {{ $key }} : {{ value }} +
  • +
+ + +

You can also provide an alias for the key:

+
<div v-for="(key, val) in object">
{{ key }} {{ val }}
</div>
+

When iterating over an Object, the order is based on the key enumeration order of Object.keys(), which is not guaranteed to be consistent in all JavaScript engine implementations.

+ +

Range v-for

v-for can also take an integer Number. In this case it will repeat the template that many times.

+
<div>
<span v-for="n in 10">{{ n }} </span>
</div>
+

Result:

+ +
+ {{ n }} +
+ + +

Displaying Filtered/Sorted Results

Sometimes we only need to display a filtered or sorted version of the Array without actually mutating or resetting the original data. There are two options to achieve this:

+
    +
  1. Create a computed property that returns the filtered or sorted Array;
  2. +
  3. Use the built-in filterBy and orderBy filters.
  4. +
+

A computed property would give you finer-grained control and more flexibility since it’s full JavaScript; but the filters can be more convenient for common use cases. For detailed usage of the Array filters, check out their documentation.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/mixins.html b/guide/mixins.html new file mode 100644 index 0000000..ff58dd9 --- /dev/null +++ b/guide/mixins.html @@ -0,0 +1,256 @@ + + + + + Mixins - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Mixins

+

Basics

Mixins are a flexible way to distribute reusable functionalities for Vue components. A mixin object can contain any component options. When a component uses a mixin, all options in the mixin will be “mixed” into the component’s own options.

+

Example:

+
// define a mixin object
var myMixin = {
created: function () {
this.hello()
},
methods: {
hello: function () {
console.log('hello from mixin!')
}
}
}
// define a component that uses this mixin
var Component = Vue.extend({
mixins: [myMixin]
})
var component = new Component() // -> "hello from mixin!"
+

Option Merging

When a mixin and the component itself contain overlapping options, they will be “merged” using appropriate strategies. For example, hook functions with the same name are merged into an array so that all of them will be called. In addition, mixin hooks will be called before the component’s own hooks:

+
var mixin = {
created: function () {
console.log('mixin hook called')
}
}
new Vue({
mixins: [mixin],
created: function () {
console.log('component hook called')
}
})
// -> "mixin hook called"
// -> "component hook called"
+

Options that expect object values, for example methods, components and directives, will be merged into the same object. The component’s options will take priority when there are conflicting keys in these objects:

+
var mixin = {
methods: {
foo: function () {
console.log('foo')
},
conflicting: function () {
console.log('from mixin')
}
}
}
var vm = new Vue({
mixins: [mixin],
methods: {
bar: function () {
console.log('bar')
},
conflicting: function () {
console.log('from self')
}
}
})
vm.foo() // -> "foo"
vm.bar() // -> "bar"
vm.conflicting() // -> "from self"
+

Note that the same merge strategies are used in Vue.extend().

+

Global Mixin

You can also apply a mixin globally. Use caution! Once you apply a mixin globally, it will affect every Vue instance created afterwards. When used properly, this can be used to inject processing logic for custom options:

+
// inject a handler for `myOption` custom option
Vue.mixin({
created: function () {
var myOption = this.$options.myOption
if (myOption) {
console.log(myOption)
}
}
})
new Vue({
myOption: 'hello!'
})
// -> "hello!"
+

Use global mixins sparsely and carefully, because it affects every single Vue instance created, including third party components. In most cases, you should only use it for custom option handling like demonstrated in the example above.

+ +

Custom Option Merge Strategies

When custom options are merged, they use the default strategy, which simply overwrites the existing value. If you want a custom option to be merged using custom logic, you need to attach a function to Vue.config.optionMergeStrategies:

+
Vue.config.optionMergeStrategies.myOption = function (toVal, fromVal) {
// return mergedVal
}
+

For most object-based options, you can simply use the same strategy used by methods:

+
var strategies = Vue.config.optionMergeStrategies
strategies.myOption = strategies.methods
+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/overview.html b/guide/overview.html new file mode 100644 index 0000000..b1bdf59 --- /dev/null +++ b/guide/overview.html @@ -0,0 +1,311 @@ + + + + + Selayang Pandang - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Selayang Pandang

+ +

Vue.js (baca /vjuː/, seperti pada view) adalah sebuah library (pustaka) yang digunakan untuk membangun sebuah halaman web yang interaktif. Tujuan dari Vue.js adalah untuk memberikan kelebihan dari reactive data binding dan composable view components dengan sebuah API (Application Programming Interface) yang sesimpel mungkin.

+ +

Vue.js sendiri bukanlah sebuah framework yang utuh, namun ia hanya fokus pada layer (lapisan) view. Karenanya sangat mudah untuk mengambil dan mengintegrasikannya dengan library lain maupun project lain yang sudah ada. Di sisi lain, ketika digunakan di dalam kombinasi dengan tool dan library yang tepat, Vue.js juga mampu digunakan untuk membuat Single-Page Application.

+ +

Jika Anda adalah seorang frontend developer berpengalaman dan ingin mengetahui perbandingan Vue.js dengan library/framework lainnya, silakan baca Perbandingan dengan Framework Lain; dan jika Anda lebih tertarik mengenai bagaimana pendekatan Vue.js pada larger-scale applications (aplikasi berskala besar), silakan baca halaman Membangun Aplikasi Berskala Besar.

+

Reactive Data Binding

+

Inti dari Vue.js adalah sistem reactive data-binding yang sangat memudahkan untuk menjaga data Anda dan DOM (Document Object Model) agar tetap tersinkronisasi. Ketika menggunakan jQuery untuk memanipulasi DOM secara manual, kode yang kita tulis seringkali imperatif, repetitif dan (cenderung) rentan error. Vue.js menggunakan konsep data-driven view. Dengan kata lain, dengan Vue.js kita dapat menggunakan sintaks khusus di dalam template HTML kita untuk mem-“bind” (mengikat) DOM dengan data pokok. Sekali binding (ikatan) dibuat, maka DOM akan tetap tersinkronisasi dengan data. Kapanpun Anda mengubah data tersebut, maka DOM juga ikut terupdate. Sebagai hasilnya, logic aplikasi kita sekarang dapat digunakan untuk memanipulasi data secara langsung, bukan lagi mengotak-atik update DOM. Hal ini membuat kode kita lebih mudah untuk ditulis, dibaca dan di-maintain (dirawat).

+

MVVM

+ +

Contoh yang paling sederhana

+
<!-- this is our View -->
<div id="example-1">
Hello {{ name }}!
</div>
+
// this is our Model
var exampleData = {
name: 'Vue.js'
}
// create a Vue instance, or, a "ViewModel"
// which links the View and the Model
var exampleVM = new Vue({
el: '#example-1',
data: exampleData
})
+ +

Hasilnya:
+

Hello {{ name }}!
+ +

+ +

Hal ini sangat mirip dengan ketika kita hanya me-render sebuah template, namun dibalik itu semua Vue.js melakukan banyak pekerjaan di balik layar. Data tersebut sekarang terhubung langsung dengan DOM, dan semuanya sekarang bersifat reactive. Bagaimana kita bisa tahu? Cukup buka browser developer console dan ubah exampleData.name dengan value yang kita inginkan. Dan Anda akan melihat contoh yang telah dirender di atas akan ikut terupdate.

+ +

Mohon dicatat bahwasannya kita tidak harus mengetik kode apapun untuk memanipulasi DOM: hanya template HTML, ditambah dengan bindings, adalah sebuah declarative mapping (pemetaan deklaratif / lawan dari imperatif) dari data, yang mana hanya dalam bentuk Object JavaScript. View kita kini sepenuhnya data-driven.

+ +

Mari kita lihat contoh ke-dua:

+
<div id="example-2">
<p v-if="greeting">Hello!</p>
</div>
+
var exampleVM2 = new Vue({
el: '#example-2',
data: {
greeting: true
}
})
+ +
+ Hello! +
+ + + +

Di sini kita menemui sesuatu yang baru. Attribute v-if yang saat ini Anda lihat disebut dengan Directive. Setiap directive diberi awalan v- untuk menunjukkan bahwasannya mereka adalah attribute khusus yang disediakan oleh Vue.js, dan seperti yang Anda tebak, attribute-attribute tersebut memiliki reactive behavior (tingkah laku) khusus untuk me-render DOM. Cobalah untuk mengubah exampleVM2.greeting menjadi false pada console. Anda pasti akan melihat tulisan “Hello!” menghilang.

+ +

Contoh ke-dua mendemonstrasikan bahwa kita tidak hanya dapat mem-bind teks yang ada pada DOM dengan data kita, namun kita juga dapat mem-bind structure (struktur) dari DOM terhadap data. Bahkan, Vue.js juga menyediakan sistem efek transisi yang powerful yang secara otomatis berlaku ketika sebuah elemen baru muncul atau terhapus dari tampilan oleh Vue.

+ +

Ada beberapa directive lainya, tiap directive mempunyai fungsi khusus yang berbeda. Sebagai contoh directive v-for digunakan untuk menampilkan item yang terdapat di dalam sebuah Array (larik), atau directive v-bind untuk mem-bind attribute HTML. Nanti, akan kita diskusikan sintaks data-binding lebih lanjut.

+

Component System

+

Component System adalah konsep penting lainnya yang ada di dalam Vue.js, karena dia adalah abstraction (abstraksi) yang mengizinkan kita untuk membangun large-scale applications yang tersusun dari komponen-komponen kecil, self-contained, dan reusable (dapat dipakai ulang). Jika kita berpikir tentang hal tersebut, hampir semua jenis application interface (antarmuka aplikasi) dapat di-abstraksikan menjadi sebuah pohon component:

+

Component Tree

+ +

Dalam kenyataanya, sebuah aplikasi skala besar yang dibangun dengan Vue.js akan membentuk sebuah a tree of components (pohon komponen-komponen). Kita akan berbicara lebih lanjut tentang komponen nanti, sementara itu berikut adalah (gambaran) penampakan komponen yang ada dalam sebuah template aplikasi:

+
<div id="app">
<app-nav></app-nav>
<app-view>
<app-sidebar></app-sidebar>
<app-content></app-content>
</app-view>
</div>
+ +

Anda mungkin memperhatikan bahwa components Vue.js sangat mirip dengan Custom Elements, yang mana bagian dari Web Components Spec. Nyatanya, sintaks component milik Vue.js lebih longgar dari spec tadi. Sebagai contoh, components Vue mengimplementasikan Slot API dan attribute spesial is. Meski demikian, berikut adalah beberapa kunci perbedaannya:

+ +
    +
  1. Web Components Spec masih dalam masa pengembangan, dan belum diimplementasikan pada setiap browser secara native. Sebagai perbandingan, components Vue.js tidak memerlukan polyfills apapun dan dapat bekerja secara konsisten pada semua browser yang didukung (IE9 ke atas). Jika diperlukan, components Vue.js juga dapat di-wrap (dibungkus) kedalam native custom element.

    +
  2. +
  3. Components Vue.js menyediakan fitur-fitur penting yang tidak tersedia pada custom elements biasa, terutama pada cross-component data flow (alur data antar komponen), custom event communication dan dynamic component switching dengan efek transisi.

    + +
  4. +
+ +

Component system (sistem komponen) adalah pondasi penting dalam membangun sebuah aplikasi berskala besar denga Vue.js. Sebagai tambahan, ekosistem Vue.js juga menyediakan advanced tooling (perkakas canggih) dan dukungan berbagai macam library-library yang dapat digunakan secara bersamaan untuk membuat Vue.js lebih mirip seperti “framework”.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/plugins.html b/guide/plugins.html new file mode 100644 index 0000000..456e098 --- /dev/null +++ b/guide/plugins.html @@ -0,0 +1,279 @@ + + + + + Plugins - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Plugins

+

Writing a Plugin

Plugins usually add global-level functionality to Vue. There is no strictly defined scope for a plugin - there are typically several types of plugins you can write:

+
    +
  1. Add some global methods or properties. e.g. vue-element

    +
  2. +
  3. Add one or more global assets: directives/filters/transitions etc. e.g. vue-touch

    +
  4. +
  5. Add some Vue instance methods by attaching them to Vue.prototype.

    +
  6. +
  7. A library that provides an API of its own, while at the same time injecting some combination of the above. e.g. vue-router

    +
  8. +
+

A Vue.js plugin should expose an install method. The method will be called with the Vue constructor as the first argument, along with possible options:

+
MyPlugin.install = function (Vue, options) {
// 1. add global method or property
Vue.myGlobalMethod = ...
// 2. add a global asset
Vue.directive('my-directive', {})
// 3. add an instance method
Vue.prototype.$myMethod = ...
}
+

Using a Plugin

Use plugins by calling the Vue.use() global method:

+
// calls `MyPlugin.install(Vue)`
Vue.use(MyPlugin)
+

You can optionally pass in some options:

+
Vue.use(MyPlugin, { someOption: true })
+

Some plugins such as vue-router automatically calls Vue.use() if Vue is available as a global variable. However in a module environment you always need to call Vue.use() explicitly:

+
// When using CommonJS via Browserify or Webpack
var Vue = require('vue')
var VueRouter = require('vue-router')
// Don't forget to call this
Vue.use(VueRouter)
+

Existing Plugins & Tools

    +
  • vue-router: The official router for Vue.js. Deeply integrated with Vue.js core to make building Single Page Applications a breeze.

    +
  • +
  • vue-resource: A plugin that provides services for making web requests and handle responses using a XMLHttpRequest or JSONP.

    +
  • +
  • vue-async-data: Async data loading plugin.

    +
  • +
  • vue-validator: A plugin for form validations.

    +
  • +
  • vue-devtools: A Chrome devtools extension for debugging Vue.js applications.

    +
  • +
  • vue-touch: Add touch-gesture directives using Hammer.js.

    +
  • +
  • vue-element: Register Custom Elements with Vue.js.

    +
  • +
  • vue-animated-list: A plugin for easily animating v-for rendered lists.

    +
  • +
  • List of User Contributed Tools

    +
  • +
+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/reactivity.html b/guide/reactivity.html new file mode 100644 index 0000000..923379b --- /dev/null +++ b/guide/reactivity.html @@ -0,0 +1,281 @@ + + + + + Reactivity in Depth - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Reactivity in Depth

+

We’ve covered most of the basics - now it’s time to take a deep dive! One of Vue.js’ most distinct features is the unobtrusive reactive system - models are just plain JavaScript objects, modify it and the view updates. It makes state management very simple and intuitive, but it’s also important to understand how it works to avoid some common gotchas. In this section, we are going to dig into some of the lower-level details of Vue.js’ reactivity system.

+

How Changes Are Tracked

When you pass a plain JavaScript object to a Vue instance as its data option, Vue.js will walk through all of its properties and convert them to getter/setters using Object.defineProperty. This is an ES5-only and un-shimmable feature, which is why Vue.js doesn’t support IE8 and below.

+

The getter/setters are invisible to the user, but under the hood they enable Vue.js to perform dependency-tracking and change-notification when properties are accessed or modified. One caveat is that browser consoles format getter/setters differently when converted data objects are logged, so make sure to use the vm.$log() instance method for more inspection-friendly output.

+

For every directive / data binding in the template, there will be a corresponding watcher object, which records any properties “touched” during its evaluation as dependencies. Later on when a dependency’s setter is called, it triggers the watcher to re-evaluate, and in turn causes its associated directive to perform DOM updates.

+

data

+

Change Detection Caveats

Due to the limitation of ES5, Vue.js cannot detect property addition or deletion. Since Vue.js performs the getter/setter conversion process during instance initialization, a property must be present in the data object in order for Vue.js to convert it and make it reactive. For example:

+
var data = { a: 1 }
var vm = new Vue({
data: data
})
// `vm.a` and `data.a` are now reactive
vm.b = 2
// `vm.b` is NOT reactive
data.b = 2
// `data.b` is NOT reactive
+

However, there are ways to add a property and make it reactive after an instance has been created.

+

For Vue instances, you can use the $set(path, value) instance method:

+
vm.$set('b', 2)
// `vm.b` and `data.b` are now reactive
+

For plain data objects, you can use the global Vue.set(object, key, value) method:

+
Vue.set(data, 'c', 3)
// `vm.c` and `data.c` are now reactive
+

Sometimes you may want to assign a number of properties on to an existing object, for example using Object.assign() or _.extend(). However, new properties added to the object will not trigger changes. In such cases, create a fresh object with properties from both the original object and the mixin object:

+
// instead of `Object.assign(this.someObject, { a: 1, b: 2 })`
this.someObject = Object.assign({}, this.someObject, { a: 1, b: 2 })
+

There are also a few Array-related caveats, which were discussed earlier in the list rendering section.

+

Initialize Your Data

Although Vue.js provides the API to dynamically add reactive properties on the fly, it is recommended to declare all reactive properties upfront in the data option.

+

Instead of this:

+
var vm = new Vue({
template: '<div>{{msg}}</div>'
})
// add `msg` later
vm.$set('msg', 'Hello!')
+

Prefer this:

+
var vm = new Vue({
data: {
// declare msg with an empty value
msg: ''
},
template: '<div>{{msg}}</div>'
})
// set `msg` later
vm.msg = 'Hello!'
+

There are two reasons behind this pattern:

+
    +
  1. The data object is like the schema for your component’s state. Declaring all reactive properties upfront makes the component code easier to understand and reason about.

    +
  2. +
  3. Adding a top level reactive property on a Vue instance will force all the watchers in its scope to re-evaluate, because it didn’t exist before and no watcher could have tracked it as a dependency. The performance is usually acceptable (essentially the same as Angular’s dirty checking), but can be avoided when you initialize the data properly.

    +
  4. +
+

Async Update Queue

By default, Vue.js performs DOM updates asynchronously. Whenever a data change is observed, Vue will open a queue and buffer all the data changes that happens in the same event loop. If the same watcher is triggered multiple times, it will be pushed into the queue only once. Then, in the next event loop “tick”, Vue flushes the queue and performs only the necessary DOM updates. Internally Vue uses MutationObserver if available for the asynchronous queuing and falls back to setTimeout(fn, 0).

+

For example, when you set vm.someData = 'new value', the DOM will not update immediately. It will update in the next “tick”, when the queue is flushed. Most of the time we don’t need to care about this, but it can be tricky when you want to do something that depends on the post-update DOM state. Although Vue.js generally encourages developers to think in a “data-driven” fashion and avoid touching the DOM directly, sometimes it might be necessary to get your hands dirty. In order to wait until Vue.js has finished updating the DOM after a data change, you can use Vue.nextTick(callback) immediately after the data is changed. The callback will be called after the DOM has been updated. For example:

+
<div id="example">{{msg}}</div>
+
var vm = new Vue({
el: '#example',
data: {
msg: '123'
}
})
vm.msg = 'new message' // change data
vm.$el.textContent === 'new message' // false
Vue.nextTick(function () {
vm.$el.textContent === 'new message' // true
})
+

There is also the vm.$nextTick() instance method, which is especially handy inside components, because it doesn’t need global Vue and its callback’s this context will be automatically bound to the current Vue instance:

+
Vue.component('example', {
template: '<span>{{msg}}</span>',
data: function () {
return {
msg: 'not updated'
}
},
methods: {
updateMessage: function () {
this.msg = 'updated'
console.log(this.$el.textContent) // => 'not updated'
this.$nextTick(function () {
console.log(this.$el.textContent) // => 'updated'
})
}
}
})
+

Inside Computed Properties

It should be noted that Vue.js computed properties are not simple getters. Each computed property keeps track of its own reactive dependencies. When a computed property is evaluated, Vue.js updates its dependency list and caches the result value. The cached value is only invalidated when one of the tracked dependencies have changed. Therefore, as long as the dependencies did not change, accessing the computed property will directly return the cached value instead of calling the getter.

+

Why do we need caching? Imagine we have an expensive computed property A, which requires looping through a huge Array and doing a lot of computations. Then, we may have other computed properties that in turn depend on A. Without caching, we would be calling A’s getter many more times than necessary!

+

Because of computed property caching, the getter function is not always called when you access a computed property. Consider the following example:

+
var vm = new Vue({
data: {
msg: 'hi'
},
computed: {
example: function () {
return Date.now() + this.msg
}
}
})
+

The computed property example has only one dependency: vm.msg. Date.now() is not a reactive dependency, because it has nothing to do with Vue’s data observation system. Therefore, when you programmatically access vm.example, you will find the timestamp to remain the same unless vm.msg triggers a re-evaluation.

+

In some use cases you may want to preserve the simple getter-like behavior, where every time you access vm.example it simply calls the getter again. You can do that by turning off caching for a specific computed property:

+
computed: {
example: {
cache: false,
get: function () {
return Date.now() + this.msg
}
}
}
+

Now, every time you access vm.example, the timestamp will be up-to-date. However, note this only affects programmatic access inside JavaScript; data-bindings are still dependency-driven. When you bind to a computed property in the template as {{example}}, the DOM will only be updated when a reactive dependency has changed.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/syntax.html b/guide/syntax.html new file mode 100644 index 0000000..ebb5050 --- /dev/null +++ b/guide/syntax.html @@ -0,0 +1,314 @@ + + + + + Sintaks Data Binding - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Sintaks Data Binding

+ +

Vue.js menggunakan implementasi template berbasis DOM (Document Object Model). Inilah yang menjadikan semua template Vue.js pada dasarnya valid, parsable HTML yang ditingkatkan dengan beberapa atribut spesial. Ingatlah, karena inilah yang membuat template pada Vue pada dasarnya berbeda dengan template berbasis string.

+ +

Interpolasi

+

Teks

+

Bentuk paling dasar dari data binding adalah interpolasi teks dengan menggunakan sintaks “Kumis” (kurung kurawal ganda):

+
<span>Message: {{ msg }}</span>
+ +

Tag kumis tersebut akan digantikan dengan value (nilai) dari property msg pada data object yang berhubungan. Ia juga akan diperbaharui ketika properti data object msg berubah.

+ +

Anda juga dapat melakukan one-time interpolations (interpolasi satu kali) dimana tidak akan diperbaharui ketika data berubah:

+
<span>Tulisan ini tidak akan berubah: {{* msg }}</span>
+

Raw HTML

+

Tanda kurung kurawal ganda meng-interpretasi data sebagai teks biasa, dan bukan tag HTML. Jika Anda ingin menghasilkan tag HTML, Anda membutuhkan tripel kurung kurawal.

+
<div>{{{ raw_html }}}</div>
+ +

Konten yang disisipkan sebagai HTML biasa - data binding mengabaikannya. Jika Anda membutuhkan potongan template yang dapat digunakan ulang, Anda dapat menggunakan partials.

+ +

Me-render HTML semaunya secara dinamis pada website dapat membahayakan, karena ia dapat dengan mudah menyebabkan serangan XSS. Hanya gunakan interpolasi HTML pada konten yang terpercaya, dan jangan pernah menggunakannya pada user-provided content (konten yang berasal dari pengguna).

+ + +

Atribut

+

Kurung kurawal juga dapat digunakan di dalam atribut HTML:

+
<div id="item-{{ id }}"></div>
+ +

Perlu dicatat jika interpolasi atribut tidak diperkenankan untuk digunakan pada directive Vue.js dan atribut khusus. Jangan panik, Vue.js akan memunculkan peringatan untuk Anda jika kurung kurawal dipakai pada tempat yang salah.

+

Binding Expressions

+

Teks yang kita masukkan kedalam kurung kurawal disebut dengan binding expressions. Pada Vue.js, sebuah binding expression terdiri dari expression JavaScript tunggal yang secara opsional diikuti oleh satu atau lebih filter.

+

JavaScript Expressions

+

Sejauh ini kita hanya mem-binding property key yang sederhana pada template kita. Namun Vue.js sebenarnya mendukung kekuatan penuh dari JavaScript expression di dalam data binding:

+
{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }}
{{ message.split('').reverse().join('') }}
+ +

Expressions tersebut akan dievaluasi di dalam data scope pada Vue instance. Namun perlu diingat, bahwa setiap binding hanya boleh terdapat satu expression tunggal, jadi contoh di bawah ini TIDAK dapat berjalan:

+
<!-- ini adalah sebuah statement, dan bukan sebuah expression: -->
{{ var a = 1 }}
<!-- flow control juga tidak dapat bekerja, gunakan ternary expressions -->
{{ if (ok) { return message } }}
+

Filters

+

Vue.js mengizinkan Anda untuk menambahkan “filter” opsional untuk mengubah hasil akhir dari sebuah expression. Fitler dilambangkan dengan simbol “pipe” (pipa).

+
{{ message | capitalize }}
+ +

Di sini kita “mem-pipa” value dari expression message melalui filter bawaan yang bernama capitalize, dimana sebenarnya filter tersebut hanyalah sebuah function pada JavaScript yang me-return value dengan huruf kapital. Vue.js menyediakan beberapa filter bawaan, dan kita akan membicarakannya serta bagaimana cara membuat filter kita sendiri nanti.

+ +

Perlu dicatat bahwa simbol “pipa” bukanlah bagian dari sintaks JavaScript, karena itu anda tidak dapat mencampurkan filter di dalam sebuah expression; Anda hanya dapat menambahkannya di akhir sebuah expression.

+ +

Filter juga dapat dirantai/disambungkan (chained):

+
{{ message | filterA | filterB }}
+

Filters can also take arguments:

+
{{ message | filterA 'arg1' arg2 }}
+ +

Function filter selalu menerima value expression sebagai argument pertama. Argument yang berada dalam tanda kutip dianggap sebagai string biasa, sementara itu argument tanpa tanda kutip dianggap sebagai expression. Di atas, terdapat string biasa 'arg1' yang akan di-passing ke dalam filter sebagai argument ke-dua, dan value dari expression arg2 akan di evaluasi dan di-pass ke dalam argument ke-tiga.

+

Directives

+

Directive adalah atribut khusus yang diawali dengan awalan v-. Value pada atribut directive diharapkan menjadi binding expressions, jadi aturan tentang expression JavaScript dan filter yang disebutkan di atas juga berlaku di sini. Tugas sebuah directive adalah untuk melakukan behavior (tingkah laku) spesial secara reaktif kepada DOM ketika sebuah value dari expression tersebut berubah. Mari kita lihat contoh yang sudah kita lihat pada halaman introduction.

+
<p v-if="greeting">Hello!</p>
+ +

Di sini, directive v-if akan me-remove/meng-insert elemen <p> berdasarkan value dari expression greeting.

+

Arguments

+

Beberapa directive dapat mengambil “argument”, yang ditandai dengan tanda titik dua (colon) setelah nama directive. Sebagai contoh, directive v-bind dapat digunakan untuk mengupdate sebuah atribut HTML secara reaktif.

+
<a v-bind:href="url"></a>
+ +

Contoh lainnya adalah directive v-on, dimana ia mendegarkan/memantau event (kejadian) yang terjadi pada DOM:

+
<a v-on:click="doSomething">
+ +

Di sini argumen tersebut adalah nama event yang ingin didengarkan (dipantau). Kita akan berbicara mengenai penanganan event (event handling) lebih rinci nanti.

+

Modifiers

+

Modifiers adalah postfixes spesial yang ditandai dengan sebuah tanda titik, dimana hal tersebut mengindikasikan jika sebuah directive harusnya dilambungkan/diloncatkan (bound) secara khusus. Sebagai contoh, modifier .literal memberitahu kepada directive untuk meng-interpretasi value atributnya sebagai sebuah string biasa (literal string) dan bukan sebagai expression:

+
<a v-bind:href.literal="/a/b/c"></a>
+ +

Tentu saja, ini nampaknya sangat tidak berarti karena kita dapat cukup mengetik href="/a/b/c" daripada menggunakan sebuah directive. Contoh di sini hanyalah untuk mendemonstrasikan sintaks. Kita akan lihat pemanfaatan modifier nanti.

+

Shorthands

+

Awalan v- menyediakan bantuan visual untuk mengidentifikasi atribut spesifik milik Vue.js pada template Anda. Ini sangat bermanfaat ketika Anda menggunakan Vue.js untuk memakai behavior (tingkah laku) dinamis kepada beberapa markup yang ada, akan tetapi terkadang terasa terlalu panjang terutama pada beberapa directive yang sering digunakan. Pada saat yang sama, kebutuhan akan awalan v- menjadi kurang begitu penting ketika Anda membangun sebuah SPA dimana Vue.js mengatur setiap template yang ada. Oleh karenanya, Vue.js menyediakan shorthands untuk dua directive yang paling sering dipakai, yakni v-bind dan v-on:

+

v-bind Shorthand

<!-- full syntax -->
<a v-bind:href="url"></a>
<!-- shorthand -->
<a :href="url"></a>
or
<!-- full syntax -->
<button v-bind:disabled="someDynamicCondition">Button</button>
<!-- shorthand -->
<button :disabled="someDynamicCondition">Button</button>
+

v-on Shorthand

<!-- full syntax -->
<a v-on:click="doSomething"></a>
<!-- shorthand -->
<a @click="doSomething"></a>
+ +

Mungkin terlihat sedikit berbeda jika dibandingkan dengan halaman HTML biasa, namun semua browser yang mendukung Vue.js dapat mem-parse kode tersebut dengan sempurna, dan kode tersebut tidak tampil pada layar browser. Shorthand tersebut memang bersifat opsional, tapi Anda akan menyukainya ketika Anda mempelajari lebih lanjut mengenai penggunaannya nanti.

+ + + + + +
+ + +
+ + + + + + + + + diff --git a/guide/transitions.html b/guide/transitions.html new file mode 100644 index 0000000..7988574 --- /dev/null +++ b/guide/transitions.html @@ -0,0 +1,475 @@ + + + + + Transitions - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + +
+ + +

Transitions

+

With Vue.js’ transition system you can apply automatic transition effects when elements are inserted into or removed from the DOM. Vue.js will automatically add/remove CSS classes at appropriate times to trigger CSS transitions or animations for you, and you can also provide JavaScript hook functions to perform custom DOM manipulations during the transition.

+

To apply transition effects, you need to use the special transition attribute on the target element:

+
<div v-if="show" transition="my-transition"></div>
+

The transition attribute can be used together with:

+
    +
  • v-if
  • +
  • v-show
  • +
  • v-for (triggered for insertion and removal only, for animating changes of order
    use vue-animated-list plugin)
  • +
  • Dynamic components (introduced in the next section)
  • +
  • On a component root node, and triggered via Vue instance DOM methods, e.g. vm.$appendTo(el).
  • +
+

When an element with transition is inserted or removed, Vue will:

+
    +
  1. Try to find a JavaScript transition hooks object registered either through Vue.transition(id, hooks) or passed in with the transitions option, using the id "my-transition". If it finds it, it will call the appropriate hooks at different stages of the transition.

    +
  2. +
  3. Automatically sniff whether the target element has CSS transitions or CSS animations applied, and add/remove the CSS classes at the appropriate times.

    +
  4. +
  5. If no JavaScript hooks are provided and no CSS transitions/animations are detected, the DOM operation (insertion/removal) is executed immediately on next frame.

    +
  6. +
+

CSS Transitions

Example

A typical CSS transition looks like this:

+
<div v-if="show" transition="expand">hello</div>
+

You also need to define CSS rules for .expand-transition, .expand-enter and .expand-leave classes:

+
/* always present */
.expand-transition {
transition: all .3s ease;
height: 30px;
padding: 10px;
background-color: #eee;
overflow: hidden;
}
/* .expand-enter defines the starting state for entering */
/* .expand-leave defines the ending state for leaving */
.expand-enter, .expand-leave {
height: 0;
padding: 0 10px;
opacity: 0;
}
+

You can achieve different transitions on the same element by using dynamic binding:

+
<div v-if="show" :transition="transitionName">hello</div>
+
new Vue({
el: '...',
data: {
show: false,
transitionName: 'fade'
}
})
+

In addition, you can provide JavaScript hooks:

+
Vue.transition('expand', {
beforeEnter: function (el) {
el.textContent = 'beforeEnter'
},
enter: function (el) {
el.textContent = 'enter'
},
afterEnter: function (el) {
el.textContent = 'afterEnter'
},
enterCancelled: function (el) {
// handle cancellation
},
beforeLeave: function (el) {
el.textContent = 'beforeLeave'
},
leave: function (el) {
el.textContent = 'leave'
},
afterLeave: function (el) {
el.textContent = 'afterLeave'
},
leaveCancelled: function (el) {
// handle cancellation
}
})
+ +
+
hello
+ +
+ + + + + +

Transition CSS Classes

The classes being added and toggled are based on the value of the transition attribute. In the case of transition="fade", three CSS classes are involved:

+
    +
  1. The class .fade-transition will be always present on the element.

    +
  2. +
  3. .fade-enter defines the starting state of an entering transition. It is applied for a single frame and then immediately removed.

    +
  4. +
  5. .fade-leave defines the ending state of a leaving transition. It is applied when the leaving transition starts and removed when the transition finishes.

    +
  6. +
+

If the transition attribute has no value, the classes will default to .v-transition, .v-enter and .v-leave.

+

Custom Transition Classes

+

New in 1.0.14

+
+

You can specify custom enterClass and leaveClass in the transition definition. These will override the conventional class names. Useful when you want to combine Vue’s transition system with an existing CSS animation library, e.g. Animate.css:

+
<div v-show="ok" class="animated" transition="bounce">Watch me bounce</div>
+
Vue.transition('bounce', {
enterClass: 'bounceInLeft',
leaveClass: 'bounceOutRight'
})
+

Declaring Transition Type

+

New in 1.0.14

+
+

Vue.js needs to attach event listeners in order to know when the transition has ended. It can either be transitionend or animationend, depending on the type of CSS rules applied. If you are only using one or the other, Vue.js can automatically detect the correct type. However, if in some cases you want to have both on the same element, for example having a CSS animation triggered by Vue, and also having a CSS transition effect on hover, you will have to explicitly declare the type you want Vue to care about:

+
Vue.transition('bounce', {
// Vue will now only care about `animationend` events
// for this transition
type: 'animation'
})
+

Transition Flow Details

When the show property changes, Vue.js will insert or remove the <div> element accordingly, and apply transition classes as specified below:

+
    +
  • When show becomes false, Vue.js will:

    +
      +
    1. Call beforeLeave hook;
    2. +
    3. Apply v-leave class to the element to trigger the transition;
    4. +
    5. Call leave hook;
    6. +
    7. Wait for the transition to finish; (listening to a transitionend event)
    8. +
    9. Remove the element from the DOM and remove v-leave class;
    10. +
    11. Call afterLeave hook.
    12. +
    +
  • +
  • When show becomes true, Vue.js will:

    +
      +
    1. Call beforeEnter hook;
    2. +
    3. Apply v-enter class to the element;
    4. +
    5. Insert it into the DOM;
    6. +
    7. Call enter hook;
    8. +
    9. Force a CSS layout so v-enter is actually applied, then remove the v-enter class to trigger a transition back to the element’s original state;
    10. +
    11. Wait for the transition to finish;
    12. +
    13. Call afterEnter hook.
    14. +
    +
  • +
+

In addition, if you remove an element when its enter transition is in progress, the enterCancelled hook will be called to give you the opportunity to clean up changes or timers created in enter. Vice-versa for leaving transitions.

+

All of the above hook functions are called with their this contexts set to the associated Vue instances. It follows the same rule of compilation scopes: a transition’s this context will point to the scope it is compiled in.

+

Finally, the enter and leave can optionally take a second callback argument. When you do so, you are indicating that you want to explicitly control when the transition should end, so instead of waiting for the CSS transitionend event, Vue.js will expect you to eventually call the callback to finish the transition. For example:

+
enter: function (el) {
// no second argument, transition end
// determined by CSS transitionend event
}
+

vs.

+
enter: function (el, done) {
// with the second argument, the transition
// will only end when `done` is called.
}
+

When multiple elements are being transitioned together, Vue.js batches them and only applies one forced layout.

+ +

CSS Animations

CSS animations are applied in the same way with CSS transitions, the difference being that v-enter is not removed immediately after the element is inserted, but on an animationend event.

+

Example: (omitting prefixed CSS rules here)

+
<span v-show="show" transition="bounce">Look at me!</span>
+
.bounce-transition {
display: inline-block; /* otherwise scale animation won't work */
}
.bounce-enter {
animation: bounce-in .5s;
}
.bounce-leave {
animation: bounce-out .5s;
}
@keyframes bounce-in {
0% {
transform: scale(0);
}
50% {
transform: scale(1.5);
}
100% {
transform: scale(1);
}
}
@keyframes bounce-out {
0% {
transform: scale(1);
}
50% {
transform: scale(1.5);
}
100% {
transform: scale(0);
}
}
+ +
+ Look at me! +
+ +
+ + + + + +

JavaScript Transitions

You can also use just the JavaScript hooks without defining any CSS rules. When using JavaScript only transitions, the done callbacks are required for the enter and leave hooks, otherwise they will be called synchronously and the transition will finish immediately.

+

It’s also a good idea to explicitly declare css: false for your JavaScript transitions so that Vue.js can skip the CSS detection. This also prevents cascaded CSS rules from accidentally interfering with the transition.

+

The following example registers a custom JavaScript transition using jQuery:

+
Vue.transition('fade', {
css: false,
enter: function (el, done) {
// element is already inserted into the DOM
// call done when animation finishes.
$(el)
.css('opacity', 0)
.animate({ opacity: 1 }, 1000, done)
},
enterCancelled: function (el) {
$(el).stop()
},
leave: function (el, done) {
// same as enter
$(el).animate({ opacity: 0 }, 1000, done)
},
leaveCancelled: function (el) {
$(el).stop()
}
})
+

Then you can use it with the transition attribute, same deal:

+
<p transition="fade"></p>
+

Staggering Transitions

It’s possible to create staggering transitions when using transition with v-for. You can do this either by adding a stagger, enter-stagger or leave-stagger attribute to your transitioned element:

+
<div v-for="item in list" transition="stagger" stagger="100"></div>
+

Or, you can provide a stagger, enterStagger or leaveStagger hook for finer-grained control:

+
Vue.transition('stagger', {
stagger: function (index) {
// increase delay by 50ms for each transitioned item,
// but limit max delay to 300ms
return Math.min(300, index * 50)
}
})
+

Example:

+ + + + + + +
+ + +
+ + + + + + + + + diff --git a/images/chaitin.png b/images/chaitin.png new file mode 100644 index 0000000000000000000000000000000000000000..44f7ae300cd49749b7502585740ab9bacd485046 GIT binary patch literal 7098 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 Ia4GhG03|8SKmY&$ literal 0 HcmV?d00001 diff --git a/images/check.png b/images/check.png new file mode 100644 index 0000000000000000000000000000000000000000..e5024472a2a23e2bc0dba3616a45af725d0ee701 GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=12eq zAA7nuhD02Gd)=F_$v~v_VUo|B85?BeOOnsMTi0QoVA;iO;nySbYu|R+jIPdRp?~}n z%q}@zy<0Z*H*bama~=PMS82Tq@3=o^ZMe30>E|0lOYGlJRm!Dr)-hSfD z?Qn+?wG?C$wW<_AyxmJ6P|!{gJx$_;8aeqL~i?wC2B|NN8Igy+fL zte&4gZtY00p9vPcDd)Acka7yjQh_U?=praSy^kY^{qAMZ_fFfE78`L zN4Na6<0k|HvE}$N)6)pVMiK(St01rmwCuzBI)Rt%II|15GgucK!NJcNal{Gh=&W$u z%fZ$8w6lX#kZ+x{9s;pp_tmo(a2G62>R_;5>JCsJ^*}ElFdBi-GYs@`z<4<06davh zuX^h%F)36fg{w~bN;U^AG%b8goZYS-3-)t96Kr`F6YPOG?4)F9pr9A10|a+^e~I<>|6`lLhG_&k_-LTiHK9lPv!jK@f8N#0>#yGaxYN#mulIi|*#B&h zkF&;UXMb#f9|jzpi!wBokB*6-vjYz6cNUBF{Bswr-LN>UzZ=#^!NdgKH3bU?%vEow z4IX1*p>y2ZALrnWaXxOUuLPv1U%l$2V|D~(cHqE4lYNH|A4H+d4r-%J4{Gl-->;=< zuB~}w|Gq!Rnqn~lUe4aQKgT-#J=XN!j)m00%LmMC>g;zF@9bpmhxJl`A6w_@zhBFd ze=F~gu}=SfEyn+LtOi(&26VXp;jsT~0vZIp{Y!Phhrg8H*&ArQA5iVQp9D=22wnPd z(<5gCyBNL1xNnQZF^)XT(LOgfC?=lg#qkQC@82rwjwgouzp}T+ofi7^##@uzgBi*i zH^+NVc{v_+pRCofaMwER#m@NDp`*XAn0$G|t4p01-2DQJ^(BN)cYXL^p=N*e;aidJ z&BD=M6^qoJjeRx$+7FJIg64c6)~OR<*4`&vaVw5E*X z%X1G8vPKw8*3?IqeqNuXZ04aSTdD0AO@I-&rF+MgBMNT9He{i+%-gIAo6mvpF+rpK zn;}zcwtuXFXxI%IjnRf^(D@qNc?;C}m-WtJpz~h1v$ZSe{ARtgEYx`eY?b4t^BXhm zU_-R#2R$ZDA=?W(B}(LR(}HEhT>~<7MIjUI-vJHW3lGeO)}bo~HD{Vb1G8zOU`<9| zZSt$kPRb~~zSgB(WhE%49FcYcmbqhPtf!9AA3{^(LwMD{Ae@Q{$zz8jZoXb`1&tT}Uy1;o7neVd|k7B20%eRXUM3Geol$01H5hk|thL zsdOcTQJUHO$`Z}cTM48*RB76Uz2)_X(&ok?34Z4Q)eOlDoQD(I09?`_2` zQ*>D4I`&@&dZ&{FixWBqI$zem2dRmBzTZd{gKo)w^E~u*`5Q`pKF#V1d)I31Oy`TW zq9(1$IWBr_$khxTwsjY54)NtaoT}%<*K3?eaw>6tAdy-*yPrc2PNlSY`pW|rAd?M)wWVSD$z?=3StNV*Nd}&TKo1>JEere1Mr2)jfS3 zleSWZq|id2fvPW)9Sb3AD~mSVG%2=yp9Z28))Kc3u1)C;Z8>N(YS5wK!NJasT+H4+ z@0Q1Aog0MptV?CFYmEG+7%Jkd2yFT_O3UW&^@+>4ALSuaB`UV1xF2Cy`9)fWWXzHW zV*_F%y!cBmqsmn*AMWYZa&3IbcoZr3DaR^JC!m5VNxmXWMw8giGm>Es;eA!xXFZ>G z*x!ZqQ91Fhx3C1sB!IgGNk#|%c*Z4eXf9h{Wq3**$Cb=-wK1a~l_wrZ)%G3CBzajs)B_CkrDb7Anpcxh;y?o_dI$ZVZT zzRi`OUEL-Au0K|nQkwJ^FBjTZUh{;uyWr~A&?5*@m32_BQKxqVP=G$ha4@PLN&_bH z%wi>4S1{mU57`#`IFxf1Ki}W~j3X?geG5H!!zb(f8__Tx(RGx+4m3?IBbPG}DSy64 z{)z11Q%~j1Iqf>>imQEu^0_ods|~uL5KF%@gN-^R##v-Gxo)6`Fw36oK=BxbtZ!T6 zCg}+gN+{-q7hk(a0C#ETfum2{?F)HM#|y81ea`5wy#9=%%ty2Q9`$vGdGUQmp>Y^StjesXeRf->IZ-Z`v$7hruWmoSJS4ev$Qtr2rKu*X`SJTu(O z>vK6S3~?-S+SXNmZHcA^Ikn`&c*cdopt%vA>&)+UN%LIQhF|^Mbu@%Lu zqz>dY+|xk!Nvydbvg2VDYTv`_{;)vJGUd>%-}c&!@B|d>$0^GtXFT;PxG7kHd^@zy z`P1FdlQ&Qzh_s{Yu4%HnNW;*f%SboWr0nSKlW98dwvm8_o-1m4qK9C1=Bv;rffj6& z#3)FpUbv-pxmZ)U5>Y@!C6gQW38}lN*p=eyj1fkWQo4B0L*6~wf;>jOY5F0D=$+EK zPFYr6=iR==^-z~$se2|r#b2zXFV$-8m_3}X7qri?)7G>M4EWIz$JoiY&x|RN?`U8Tcx7>_PaKIR`y}= zNrdx^|GMOL0N9*P?6ja!ndy97z5S4kYjgmE)2_T@5CcZ67G=Ifm!q zM@nU8-=LcVPY&a8oVjUZO0RS!;qAxmDwk|?9nDBp`7P-MUQa)Lzy{9LNZRHZQ1FwV z2)y!ofj%FL_Kxt-$f@tl5z*TNmIC~WHWdfXII`-|t6z)}7GJ-9P3raeutkCw#17l? zLohZI(PAo_h!hI5T$kQb>eli&+b-+biR6)Ff$ueYqQcu$+xDwJimD*=1-(eCKv+1@ zn3~znG%UB-hr8q(%YUHZ?$2lPetdn=K2I2o3>e#~ykgdpfJT_R)60qMrE5yoTX)tT zu5Rq>80h}wwtcNl@=D+%9OaxYiJw!FCl%{E^7+0Z{ZQ=@Q|&~lP?{`3TYzViD@_B@ zKJxANGZNtmj*%jW1)s6zM|!NS0gnrty(u9oCsTY{M^WTeZXugIKi--(SD%Za%_3wb zbglUkdMkZ9O9MR0gC2Ek?rEUB#~reL*2>71({$ZNJJ;yEZgCT;Cl$Z?rJgH#gc;w9=lb z!z+K-&#C!-MJ^|p*;mHiCAFDHGZ-FnTfhhv43_S#2HCJSg=vDPhdE8Xpy_3BFv`iDdN#4Moe#HaGgiN7TEw z2>E!yNUQU!R!yJZnHQF75%i9k)R?H^nyKNXE(v5{=4}y&x4jjs+JIb7_ z$!<m%@~06)`zyk^qR&s>zr$~@61|}`0>T2Ldee$nO-Y^{0i4N?!VX}=TtBnW z$t>3mM+FiDLSct&87HuPY^Sf8(57SSbDU`v4T()6)a>H5(_(&ky_Jg8jn^oC+_B}o zV@(W~^~fah*SYXWX~9!6u1Iq1(C6cWVcXybI?(g3_KM2bj?1r90<$97bEBilKC|EJ zLRF@HRHFCF3!ZwoQ$67bB|O{`jxCx+-c|S2C8;DEr*`PRRdSLj9pJ+*h)@Var%88; zqbg8VrP>#-yqis`?%X1T`vvl(VWqzxWSO6|&2x&ry|F!$N=5IaZW_iY#w1nOB=l>$ z@ar7!v8RMfYFuFyZ|r&iZ9&D$nyESg*Xw0>%N1A&mJ9<~cjE6B?Bj!N*>>UG2>eSUB->p;2!o_iXNs#V1EN~%Q1svNl4 zz2!Z?AFe0>MEjk5&4*xhF@N2GEFp4OjQJm5ub0~~Zp0;5#g@enefN&nYWD7bDG_}tZ zhgbDWoD%_y%yE2pUF=fJq~pWmmmPPSngZ4F;iJ2^BDL`%G*A0P<;*^~_iS?ZQHHEL zKBuJYjpP$KH>?@om9pS~tLi?CO>(Nd*q&k(Rc=O04vlZzumA^lxZK-u{we!iE#*Q$ z8slDh$+POlX7M6n5Cb%17}Bc>exEI=_+ZvQSnV^zcS5fZ_$%*ie422MW+WLSu+Zg^ z;~cU$B|F^|+gpZwU9BQjHZCB;qpjY$KYVC&imWdFdvb~Y=m=6<9q|tK%%vZFDhWWh zI$xd3niaFUf4GZex`ZoFK>ehojuO+x_tL!k$L$u0L?YYy>vM}B%>)&U%!Z0%aMWpM zU)(P}B%`#nL%O-|)e}0~37cx{foMgne&sRJZR_pE0%I>(?G|Tu|>1oZYRC z+B8_snVRd^xCz$!oxfC_V$8~pJ@vwGG3Lb3hP&Q*%+-U4X7*x5DZMZLRZ=u9fPu)CYgYmT;5b(l_3Z-x z{?M-|hpHQ27C>}x@s>I=vA4K-NE<(ElOdEXP$4Lx`mycx#i2S`BM7yQRRTEATbO8f zePNZ6T}%eM8nh=y_WDy57w#83rLo$&{=w*UfeKy1)a#|W4g6c3B8BA}&%eHK+mIDL z1wRw6ILa{hYf;yy-}dGY*C)G*saO^qyOk1nnI_aP@P0-=GnCJi!I!|?jFMie60y!4zbY1nZS0}Aj!i1L=GZqMtHF= z1Z%L?o@CT)2We{9)@@H@K`83edc52*nF&0Tnst>+Q+k@Le(*PAYen8^oATM;xI2Aj z$_Ah?(J;1zj#{l0Gj6ua&gTPZRobq{%={(;TO^T|D4#)`^gxRdDMnaqj+wnRs%=1* z&bD0LX3TM7}c`X%5bINaJt>gWhat#luCGd;9xYD zV^WfgCLIp>@hn+Y1jhquOs0v@HX^fRG@VhWl5v2Ne_}ILXjiR{-tyR!&OGP(U#1ep zD$Tg@hX;&GKQC8Zf%v)eo*yoneQ> zmF1w6p;Y!!t)8Xh`Mq(qAkLp%4vIom&RUU*j!f8RlqmG~=px9p~5BraNS8?TinGCW5XOQsi?VXyK*gwl7 z3ZqiNqh1QZrsv8#_utHT#?{M_i@gdpn%!b0HPr141E=i`TxG^Q*M}btUGn)692bOeD-hp%UTB#pFn02fZ-VFD zek{Kano|{M_5s?SCAHWLvg}itA7G&J@?T^TZ8(uw`KU227?`4z>4|Gs1WlVclrr7W zN?GNE+lRi)k9G5!&FjyzP-q`F1Y||_h--2QNZPTisB$BH_z=(W>C1r5=aIzlU>N^C z2?T3{1-tX#c=&o}#n$Ljhd&6NAJ%Au^G4`Herj+4`gYkp_vBk(JI*v$Y|&#rv$Y09UPIsA3x z^!?2j2&4V%fk zvqvDHb9D26vV9|}S+BoiGw9p}d#&c}p9rgM?%?U3B~|bsZW%y;o*8df|C(+b7ZlYj z{X`BR4Ps0kEZB&jGFjNIYRu0bdy<$3(qthHet1a6J-*D>u_&qxc-Svbk4wlRGJ!in zAY?s3b|~@a`g`DKO>WXJjV|7!ut!qo`aMYC*`cL|Nl@DQrTs&c=WD0>(&Y@hHXx>@ zNjiMsi>zHs54r^r6~`b0Y99GKxe<|h9@?{lpZ!C?{;j`9LhoPl8y<%?>OSai1j9=+ z?+A+*(R>W*f8cgW8TkJ?WI`6Ax*?NOK+^VghmAm7g^m3Gq;g@Nt?$VhM0}f`U^wQ+ zbIw=iwN53Y4KQNZsbA|Wx|fqLqHXS08daXP)*vd#vjrxNaVTI%0suOUG3#;SufRNw z0oXJLLMtHzEm{F*JO=s&PyE z&+ZfO!Zt&o1Ah%Othe_3^))PQ^PiI!@WUY}3IZ*FP!TN1Y!Ew5|D5a!>?2GetZ@Ut zvQApxLi{N$WIPv+eY}3CkaRiJ)n0dakHmyi2 z7S@7<0~6 z*c*iH4rG=s{^Fe|Z`k+Pn!sA*S?5t7^aCi72*3G~BVEi(-4kfW~%h!1XY+xI^oTp9-mR_N93 z;*c5pN4HiA@p|&$SApRf0tiM%R*WUr%R`kcCY{_$Jenx?PV<`uV@dX7y#`fv)i`;b zV+?ov{K05It7G9r*}23}0VG+=tINqZvmRE8W+NogkURZ>XALUS@Sf5_5&?a+%rnFU z^gte#IANRa8K%BYv2XCAmzUv)AhhpXni)D#Bn&_&{ACuDIIYRMr;wyKc`$M4pOr8-k{O6XWjf;W!@h9)(Vo0*%NyPnOn4ate59Hh~)tj zZJ~=yko>Dk?K}xZJz<-oI?GeFuYp_tfGW5G7nXk^?pMJ6*Gxvr1-~rF z*BfL4lKL)@fsxM&Obs+11YvM}deF#rn!?Us|B!?f9?mDWzrL7c@lZQgiF;G|Xu<{6 zardr*tDPT&4KJ6<&Mdw#T)E0(H<1leK`2_&ZGM0>{`-r(W&jA14tls9!_@~gC_;GCIlin8Yw){ zo|99o;b>bT;9+(v)>jxAqx`MX%>t09IQ?`_?SS#KHAx~U(sz&r))UyZ$NQ96_hMx$ ze4`uOeIKe{d9O{*;~mp8*9YQ^Wc4|Wd=M_*Q?tdN`xfsjTqD#bLLm)Y0!}k~5FfO( zCCetKF|pFm*RLq593`mDJFUOi)biRagcy*?sH4j-&(VW`-Kxqp z9}wGp@+EuNX6B9t%uy~aPvkTO2kRAWF`6@*S0i_ZGRBCETv}dVUmp+Mz_Dl(^P}L+Lxbi_x-Fw64&ACx;2M%kn`<@!9fOn<-3YuP-`|FN-xfut3GDlRzCV`5qWKqO#WDu*jtjj zcWJVSuCD(>#PKZ`f2q?#_I1lG-H0{y5Z7wMiH4)badXp zu^sz9Lw;rKD0?yrJCkq6=O7gwRX#kR<+89<#gW0}HZs4{x`fF~AHI0^En(m12vp>| zG`w13?*+<1F9E^B+$oXkX8nQkAggX#osnNdai$2=ROZeEy8a+$`(~blfGU^uFKK(# z={(3t0hG}zHhFc%Vr%Bb!Oq1$$ZdYjv7I%INdwgulm5LnS zo4ipei=ivZlesfrPB4d7Lg!NH^LK*Goj?-x%x(zjG1T$wYeJ1-FKjy zFFlh6SX>Zm61mkGvUTm5)_3M~epHKjSwEc}MA(QVs z0pBFP2uPm&A>VHwHGda^vV1CT^;wd#Tlu@0Py)x{sky&Uttvh0ZFdp2Nn?26kjn+y zE?yr7LT*oUEpf(RP;{_5!i-Oyz8$S@p1O@m2~;)XOVM2&Bv67{T))!6NxEoQjl`|n9jVLkv9Q_v^NL9YC5plt8pc3PDa6mE} zxM{cF0ylF(2{$|V$1+3{wPxA0uVBiis|3XjK~9mujZUuE|5Ag@u75VM@Dnvc%0rYV zFq2Jn*r}|rNz~!6u@Bc$6cxA=qiAe8s>DmHNmANr37gelGZZfMs@LjlQ)&FgH1rYx zuphf77g(S6<~RZ7O0_qk^F?l!)GJVS{e`~k%F=Q>)nG8=zI)3{#O0`5ks9y*OU6D? zCADCSle&ZM+_;f41G&cqiANrQ6JZN|@mr9Y)Jy>gIx>@$5*rNIcD+rs6>D{TbxJrM6hpza zmnv}(!NyBagfRE80cT@mZ=kv!b?WjfXG7lOSvT^n9C7}XuGG)JlkPmeI8elu>MbXR z;6Z)h2-zwcDRSbT>hBY@_^HzXV#-|JBJ@)NPbSmsRpOsmY^MIh6bCxg>41wF9(Z-m z-=xT^`<_>4-m}3`1C@{`B35S^pp;0Jqj<`PFmms4bsdj->)mwh`Cw1YQAL;Q*}f0- z{gBWb)!gD}zEAG)1G~zCp9hLsZUB9~fi5-%>WbXdJ**ov`#m%nTXyA@!48eG`O{|B zvAr=?2JELAa-I8|^v<{oz7e8E2vnd*N_ZY&+_gf1*C?9S2tsSQF4j>G@ZPicJC(&J zF5c*0$^kQkO?QKgzS+G><1z@Ot+BbOhwwk2=YMscIV=0IsC?l~j86b4Q9A){_?Cua zGH1web?D1x0nBr6nW9OB(qq;1sEQ4f@8c2g!L0%=z58?K4$8GyByxrxJ~(ep^%qBK zuX=p{$wGm92-G7Az&{&+Cf`nQ8w*J*%UL89j~9038&*;Ql=*^9s!FDEL0XCbi8>4l zWxp9#?&}zf2o!zN$y2NeHl)_1nGf8N(r*(10hl*ZcU5WmJae7`)d9x3v-ACj=;A8) z5LTz_i8WS3s@7;rUE_zTZPKlu%tAen&U`n$%$n>@X6EG>AZ_DN(I-IJIrQ~-q7CDx z1O=JY?;z!tf zH{Yk-|J1AVp>|? zXnn*xy}H6l#fugXREw$m{#^U2IxtG05((;2!YFHjgw9$QzOU;y#p+^ugOS8oF?;dz z*_ZFX0cAL4!xtS3(gVK>Sk9cD3*1grVO)AndPU%}SSKQXcLN6m% z*U;RgdI}uw9JexRIsCB4OUiO;Q^A8I zN~Jh>WAtXzgHh?+VUX{5*NYXmDmivSS1)FQ^jGG;nj7G5&$jHE;Z$U-u`>wVp@2-; z3J2gU*kW>Nv&Cu|VtQuMtcEU(7olP!#5QIWtGZ(5FpbNAt;%5sXLIHCO|QP zQu^%R+U@oVfc@pX#qI}${{!+z!+`O-HP4>J;UudU+R+&c^MR+tjEcJ7dDyT9V>Mhr zWlXhK(qTB4CU-*VRZr+#1G^~$~E;`83K&p}5k&FJkHhEWUpG1sUcSPWCfuUPX(p1$A zMhBe;4wct7vM)pdqh9$2umVWmzQGK_B4>~GY>U~s_@uA;Gu2|xx@W$S2Z}hjPtm>Z zNQ$#EzP53s9ZfF7kxg4bxm+G47LQQ+WqjU zceJtlq!em~*sFAkOePy_x>f+d0kHgsYNl1Aww4=Qxr@~GMo9u+`B{s-4Cb<*@UGjvo}+~NBP z^zvy|NfR-9ufdvt{!EA)NCQb6;2wiCAD}QduPZwY4-f!v*6CH$dyhLRql>{1{Hy7+ zNl$CGb}Sj(>Z;o^gwnesAd|?}ZW$s_IlbH_%>2=6Kb`a>3J8&!d(+9Q>=-eln&_TV zFPg^;6BFpD1#D&(FPHIhbv*T1i%qJ@m$+<90 zG85!IIl+{{r#>LLYnY-i4fazh@YO3LTJZ31HhG|Sb=R8?5`em!8IP*7sE%958`E^> zx^p>N_|c}byl%MKr6XnsR8rMco zXq0^u&mij!h$V75cw{F;a_}$D^Yy!?2kq9yjorHbe4QP@Jp~wV(~~e}I}s#&T9guk zq4_J0q<@h;ZIIjTt1L{F z=rn>7|tqATKI7&|!-hllF%{eTINF>Ua0YIcclb6pyC#NIh~lm3>xMvA?YIi5uE-L+}} z=nV12nk-(&wg9ad8^dau?@EZ|*d!xwfcb`~=e^Xc>tgnxUhKo?OPqgmskK#E?o*A< z-NX>>(51I#k36cg*ZAcEGjY1Sqada%T@5kj>sLt+R7wTDq$ZUxmxb}$o4B=rK|j$Rfi6AA-plKF&nqtG(HEl`0!SYvb|WE5 z6Cta3<(kZ?$8P~)9=k7U+*kPNFmw^ff$!DP%DYs@FnZLIE?`c+OqPW#>U7#Ft?P<$ z07F!3{T>Qwe(aRs9VuO#qr1&3@A5Z{Zy(^+Dktg<-U!?b^IKyAt;&Lq_tZA*6{a>f ze9BPJA#sa0ZZ{1zR5Mh(f<|YkNQuJiYcui_fqRcRIOGnclf`QN&2K(^V1jfot=Lll zq@RqwvhK$??e%9=xN=GN;U+0Pm8hSu^y96h^G)=5r5k-srVX|7f-{7o_*jqM}J zOlSYqA*xz$-&#E(uY70}RMpmc)u_KU6#M?#t}jnHn3XZx&}wCmuJ0=D%xc4^H}lPf92Z&J&S&+VuXGKD$gcz7 zyNcHNQRPkVOAhLiR!`0ujL`=DR;Yd2$&-dHOA072Mto-p!75P)Z#EXpYG}`&OIAOC zEgQLlE)D+9ZBf;2SrQJKi)?o;BDy=aN6?d3hu0eL8G2psg|+q7YhsI=f>jF!Fb-`U zsrh1(R!)SK#<419c7|Ntq4x`h4~otYy=u$aOl$k2FegEhu7K};yMMU@3UJ6${3M6O zs*HRRQsRHY*hbKFzIU~W&Mc*we0`EbGwzNZ;}Aj!amyxud6 z?#E1yeEig|fydac(w~=uRpa8ubp0M$B6aJZ+uLCI#WDZV4$FV3u-s-oZ;?7Sk!x)+FMGJ9=pFnV zznap!qROv|5%ncrMVBk9EElH3CT%(YCVnjSP)j@J(F6FgLSXSCM30@z&n@N`F1*~m zobYh0+W?XhrmphO($}wn*`54nF&ua`rT_9&EV!VFQ*0?Z1oqPuofzT%nE5ffd@>9E z?Ex-h4UcnWWid`eWxYC5LOZ%#y?Zs0a#XfdJ)z|8%7QJ{sVHuu!Tb19O7V28eoOF1^kF|(hQ(!MVV9!m3o|syQH%`!D}=>N!ocz#LqLIz*VdEC?4Tzokugzlvb~ zsM~Gvz)2CBHLP_1IQ-RrUF<*qA}dAigf$uP0`)Ep51bXlo^J>DUK_}?#h-!rW69Iq zQD&1r>cEdeJO`_zC7`)Poxg2>=KgQ^@mH{FWiwpxfaEow0xS;n=8s>SnT*MXTsM1J z`PBEyVZni$6SPY=kPo!+56#vK=!i|eqj$UW17cT`BBUM}+Oab7gTA`jM)8@Y*m8a} zU5r9rI>@BE66mbWf~YFY1eG{*O0We1y9yzN$4v6dV0(VFR$P&kvPcVIfqKzVQS|JM zlFp*g&yI0MrgW?t+EvkAyHL;J8wg6lvd;eenE7-@Os!TRs{DuOh`aK#PGMIxTzPPY zt?IAF^}EY!zrx0#?vQ=xaSkR+7RHHN(dF+%iC=epZZ)3|@O%gV04FSa-JFs&ZKPY; zb6Xo>OD%l>Tee-*WiL}S?L1{Ykht_1>t#yEZT5eMB+A;R!MC0=_X45Fzk~+-1pAe2 zW!Ogl6ncDJ=sH~dDf9)bv|~H|QRp$~7&7-p{e#f;JB#1{ai)FnOi%x@Q3q~x`iI76 znSYpdMA6eV!R5I0)V!S4$h8CGVezGhtl0$Lkc1-4U!5d4U*DGw{#=jDIIs%|8w>} z_ip$3bUz-SN1kELTEDmZT|}s>%3+|Apu)kyVJOH;Yrw%F62Za2TO%XFt^~A7?7_jI zKe3XMQdf|YqEdHuFt@TbgM*WgNK8i3*6bzd-b})mlthz;C~m358h*T>p(3{pp@T3{ zgM!|Y>pXX4D-6#q+(He{wE>v2g-`2%NY4>)5)<7jjHT99a3NWT`xnjpzAmTzsV+me z7F;f=0LWqzJ+^5!DxB$wODN90;XvIbh+!KG+A99U7zW#>%$>uj+F9qXi;s{#wLcUQ^84BrfB9D zQ*Y2Q>nZx?(tM-7frEUi)NaRzTkE_^_1eQvkyC}6i634$ralbX>rypyqPl>5h)+#L z(D{HmBe2~l!u*iLZAHTvnaI^PRw0i%^Cp?L$C&L>ykIpTc>sOXld_>)Lo*bB^OLi~ z>x;rLDgpO+bjBKEXqd#yAm51YxXZ{Z!_Q1q-U9)#nX4F^=wLVq;LSQ7I`I&FANEH% zpXdr+C8mhbdrKw`ez5hsgb*DZldDk?`)G$XfdXfEsV?WzpB5p}E@oWA9N1j?R$CRf z4|%uG4@aCRbC@KHbtq5fOmmDv#*s7!2Z$*N&D+cs zcnT%YdsL!OW4m5E&1clbI@ytx#*{sW?^-#@>*g_Wbn}vV_niQRtG)ZSLeV}fAjI`U zMTekQ+-k*?%L*`I2>x6k>IpvkL`)OjT9}-|*A)R|z+x*BI1qV~E*4=7uFRy|3EMxR z<`O`F9faSCuwjyP9ImZ^Mkz)sA$Ey|OSq=o>7}4sPlYwxqOAQ<%_WxAYA``MKe!;4 z+sSPn!=p`V`3L+b9@@s_1=Lmi2{!C0}v8$G5G0%#J=noT*i)RWQdmrDZ4*5970b= zW)5OClmZ-PQW^FjqYp(oLXerjQ-*c>TKqx_G6=z$)_APH<-NvW-HlH4dFD)VsOpW$`X&GN{&ft|Dw z@~G`{(mgb$2pU1}Y35=VRDo41IfGK7$P~rtm;do9$L!E;w*XXTzPJADtINGL`=Z;9e0USCUmYXiI?-L=k zme>QxLm?1JGU`xpjJh-v?H(-|W5yfd&sj&&@^oC`veHO({HqaGouQq)o#dTTodhr; z#t10W#Er|F(`jiCMacBgKZ&b}$BZ3{Els#qpzNtMwX5WviOGO$B%t+}t=+BtSleB* zSi>PkAciNlNCgu|4**l$xO~jg%u0LD`roPJGt1&@DdN*dRc2_Y78PU^h-80@OH7#fCYE={s2RH5J7Ao|J(nUSL?Q$bqRCtkA{U}E#f5}>NJ70{PaEWHjj+TzOtqYi*i|Nj`_K{NENxcfhMwM#;2o#=PKKL z1!+EMo2gT&7rJ0pNmf)=5;jBCiL5lRTgP~$W{d8uj=A>1*KZCVO`n*)FrKjeH9I?= zW@qrq??;&VszufKr{0akl2o>-nz8d}@&)^b1;xgfjU4Bg=aM(xHvlBRH_~tRF&Coy zqF17A$T$RXGQMRb31zxoZ`mGZ?D}?IIS{%eyC&bU4;K)ttg6llmkhs{N?dQ4``R6~ zowQZcU(#*Row;tfem^ZW9K2dFyqa1NVUe~87)~}!GL$S^H9Ty}Y$Eijy)+iP7yB+o z-mKU>+C1k=d9{80@p9q{<7)1Tj>9M8rf81hHXSqkTe@Lv%p% zCwomogKqU9S`{m;+37l1Jy_k}(u4>Z4SkO296Zk?B79p*+)2E`{nT6}s{E}sz7uCW zg&@Ckz*-|yS)tpri@c~jnb8u?6V9sF)+USH*PTgS=bb81dSo8FhN2$`m)=7Z!xg5J z!6H9AHa1f4s`kvE3^s_)S)Sj{ByScD_old5m)`16&gVshbWV5PMP%u`DtdVA!QJY%p5&ZG-^h^6Ag<=5GLym;yYoReNvP*^!)~=n5lwzB^;}Gp zwMod2hn8X7sm=RQ|?>j2| z!Olf+N4GQR(*LFB2Fzi;IC}N=^y+kuFoj*aX<4V)=$-@ZICL+xB+`|D&1k%F+U59w zz9&APzC`I)5&`?Z(MC(LxuBWX^~n+%E1DwOVrjU+sD7bNU2*v#<3rZY+qJhLG7BsQ zFAwxX%YK&ZXxmkJ@9va+&-lqgpG0p)pEXrJrGGWEvw4ywH^or4uWiv%>MZIc8gRFd zaX@OV_(bVc>4r~rX}Ub3zR2^(+@K4;5qlNeTzzPzO!dbCk^FB~U+yP=>4`fiEx3Pa z|MGLhJ!=0;ZOc;Ij8oHCUZsD*#!!4_miw{$!pwe4V@_ZBXIm^MwZ#twJ|^dex8IMG zXZ?0=6wm#NHnc9rrN^r$gvKWirlwm;F-!0!FvwEevQM*z+dg@pUN5{MdZUOL+>zT6 zaG!R$yHDFDryCSE&k_W!%=Ab z@D7GePrSeEx}WU}FH|-795^0`w4^&-Of-G-p}j~Jr4nKCFFY#Wi|fk!EUtVnFmAHs z@_DMD_ReW-^~P_nnNZF7gYN-{ucD9cx$=$9zRT_=BhoFR&_l+R#RFPfWL#Tr3;x6G z{n+JtMT_XYJ>^@{od9}Y-fQnc(y#mz4t7g5m~XJey_2u(*Zhu=zGCrGl8YPO;@@n~ z^n4r6A6_?7ZsrNVxW6{$adCa#id#u12S9(xBS;LLnt&VmxiSM-TxD_|yGhQc8WYY7 zX%(+Hi)LUxhkNb=huwq@#rBjf3Ymc8dgA{!X6YFP+}DcKLKAw%nJ(S5NK^;T5UjjB z2OabbV7wu-WliGv;cD^rKpX6&AJj2ziRq{Beg6?DOMg4jQUIZgI5{rO{SVr;>7THlyNY=V1rah@nzZQHeO4 znhR-2%l_+e*l(gVmaeXjLL3|(9veZRTR)Y~|=`hut!B6uL`MKd79a3OIz8Q*}K4Ch;j1rfkpm!;BR031@b>0)%ojD0e+tU zeDXiO`PY*o9FG+I2SxwKu0O8A_$7ua!tp2X#Zc>|DIVb9AaDxO63;yWdkaYV2J3g1 z#~jpjfgzb7WV+bQl#(v=+M3eI+0P~7C0&y*_m@VE-h91t)Ba*-Kz@BAxMRIrqx-cq zO?o$+GfjGMkq!W)#^wvbp}HNuh(#l;dxz$caqM-Sd$H&;VD63KzU&`urbI_yac}`aJwU(D6v%axDxpM zba#sz=c%zDE)}EtI{0SpJoKlE@)~w3e!8`xwe&c6)$i@qqOf)x7pvjeYh0;OveG~} zAb=p;l2Z{n+`IjIM5&;_i72Zx`e$TEfcIN5{R6Mk#o4o zVCE(mje$&Mi~%cfCW(-AVMqUmbNv_k&@E+DBm z1>1FNF-#O0qyc-9idT^EH)Oy8!=OW|BhVmrm$hmU6nAoC450y)zW0J%SYG6NLT{_* ztYH)s^U+iz{f+{6;35DaNvN{>$f|Xvb5wH>3g7>9#$>?q<1Y|0SldC_66ZHSq2Ccu zZTi>qer9$JV^U`uAGhsDo$^Ff4_T)qq*#H-KgsJVzoxWyLIxuLWBHej1r$<}fJbGC zbeDIMdO>OJ7;b%AqPeJSf)jP|o9&R5NG3BAg9nj0d zJvbOFOd{!q-=VwQ(%P51Un2NK`@SbY#M%{S#JFR|#5|!YClZ}BgB8|R=*?4F`km?v zA@6+_qUyhJi2aB_+EX+l5r!3rJCcF1nLiwd)}2XZ#TgMO#I`BX8vm%Rf~-8KzmYYS zI>L7X;%@Y>@frdv1V71sFH}jU?0$@N?6qh_T^QLfo#E4CuAs%h59#K2!TM7 z#m8n)eXQR~Ir6dxLIZ$#Z@PLD6I9J!1_#)Z**$}Ckbs;h?YGkM2yCBqrmbz4y(+-b zF0>Pyzj#X)0Z9S5zU=tk^)3vJTP+smufSh}`f0#m*g^28d3?XoUkDMxWa36ozn6{a zL|f)7TZCj;V`HGj$H91dJT+?OvsR)aazxnUuOOT8zvBZu-bibELZens*V}J_nc=g@ z+VYSDNt^6fhR#W$x-y#BTZS-;z2MuE_)}y4YJrreKsU5JX>QUyX1S_fXS8O%=cdL6!N5yE*5CgQeBcwRa%^q2A#*H%nxrKV zsC}#vcH=Eau(#3UA;)XPbe$LJbtsRqZx>dq1{jKiC5zL#@O!FeS{9r3>6#+Otl%pG z4@&irxqPHTwY!v6COxcYsqL(7iT`&EH^u^(vrU_1cw4XMK1*279YEmXVE$6j;d}7K zwm4C5>Oqq)Y4d7+Sk?y_oZd#UYWn>pu5tO#!V!l5$bA1516qGR<~y>un^V1CjgOsn zlurGH4@oO~v=drdK9-kCHlL0f<*&$V2B=AhMm`=#1OF<|9KG_Hp4IP68;SrDW1VGB zF1ZvBLL(rGgz&74W*+w8SZ$v_UpTZXi6_XU(ozv?n!DaBk7@0CD^kC)Dkt+mTtGEK z2rvhq$wZj^E;xngpba&l*ry$v3G(}u&a}--(Vv{(N5vbwp!2bL`>{Aj7B>t%IW@v$ z{VfV(f5`Nx0TmDA_}9e)>ytM&je91+q6h?}Rk}Rq-Y>eYPtb^(BCb% zytcJrjLbwKe=5H&r*Dxw=a(3QEM`<9>8DJ#vi%!nF^;+2Q=$a{-y?M|%M}kgQHG*^ zPI3Jkx_Y99!fBt5tsE!W*p)v#&Evxoc(CMxM_2XT-)&StYB_Mfe{KES*P$)+CZh7z zT82#PA=542TyZ-;&BXzuDKG9Ua;oyqlzQinoCo+IAvE-ZZ-K*q_ZqOX3!&^0uKf*! zGE-&+bxM!kVnCsfCrL^%t{5k8fEZ1oi%S7T>W$KK>3p?!6&(qF_7-_}2p{H8bBa0o z6X!PkGU*fc#4`Z<06-Yj*_rD%szMBGpc`Y`HHw|x=os3qNNe{gHS(3L zWSBHb)*W-+o9{O+0^PI95csIHd4ptSAwjdWL0vVMV0swKwJS3Sf5Y;kR=gR?aDS83 zpA>;630>(ZesUO*yB-C!v^3WS$#2iGN1&@Er1#8((dishq=Lds|CsZE5nL7W8~Iz< zzhE9ncgg?@3Mgn>Qv7mU2`L0<*qqCoced2Nrfyw@#NipxNoxtCS*j-OeWpoL-a%h& zABMSgfh||!zhk(?TK;7R8t1Tr0CP|~-y(-G35diz3+H)OeY4s^Ri50evC&$cG9p!d ztgNU}k$}eq5zPwd-^eB_H<(Z4!SsQY3+6t*V%i@H01#`J0B4kcgQ3q+UTxeoU$u@g zC0vJN{PL#&F#++!$6W{Fi_WZ?Z_GkIfk6-tAW7`)=qzK@di+ql%h;y72hkik>$1@& z0wk#s-rvY93g}_yowyuCiga(8wMhg(G+M83`qF^GE`6DCxV+11>kHWYLW>rgNV(M-|R&S!3z#ge{_l3^GP3A}6$7^oN9EgxL~ zUN=ey6l@(5y!8QT)AWj(sHpwMEox?$*XY~pJml^bG0S$Y0|j}J%#I704e(1dPY@Jh z6p~7wT;ZCmS*1{jcl9)a6&O0B51d&^v5$}~4Z|o){1oj!Ts=AA@>D0gSA@2$z$;(; z#%nkLR5prjKJ8XA;Dc(k4lW|V*4i1qK4V2<7Zo^xA3!{gMJ*=xJOL;YVIQ)|Dr4y5 z$+%)&e^Z2QsX!70@$|P;dJS&0o*c%)#C^Nt+7ZXVEUdq(MULs73`GRDT=bgcwzx12 zJx+P{jz4<*-AbX%N7Cm=<}@$O*&U@k(W;3kc?2E4ujn2QE;K)6Tc-QktOr*X8=KU2 zm%{^MpbP>2#y4EUa)#tgt+)!9WX~Hy{_aCO(YD}C;{|;pj~4Z^%S+qQN%Vz(p*gEw z>yMfaEy@II%soY2OBH1?lkzI9x6yi$b3y%0E?X}!`E*iI#iZ%hbrNBLq66~=Rl1t! zd-Gty`rpxp11_LE=bubP(Nfr$&%~Y+M(dQ3QJM^YwxQ^E7bw!ve=VRf!e?JdLl$H$uf zB>`2B@%ret&zv?*(cw$7h`$R&`z3Ta$m~s67&R1%1;7ZghCC1Oc(%s^E4`Xc>OKo||%wES=j$GH4(der%E;&7~hF_sWZ%s{R+5C|gP6D$M~?Frgf zllo!qrde#5Jadia_LGAAVh(oIc$t)Tt2Kls_`2%A#Ns_x0d?}xmb&jQ+VhP1Z1vh zlMoazEE%$-{~H79w6l5Zj__f$Ey2T%=SQ`SU4f;w5%-w++OYIDn72Fh4_p15YO2*}1)1++v!t#x^0D**^y&zol#p|8Y_@cOw{m-z6zJdir^8Klf#IA*O_B?;~D&@4a>@b zH??dD>!InetuOD#TK7z<^;Gz{po)D<&h9fv3RVGtp9{j;ZvSpqt%6SaN%KpO!%YdN z6c$E}gPIS@Y|#~sJSg|>syh(nf9<_LcDaHEana(~zap|)&VBn-`4kr1Xuf%j;)rd`P> zTxVGv#=IzC(7SlNzl1rhlI;S1b|Zl@Ap2ub z_dQJL2KpPSJ{C~|DvycNt<^nlDp~SQb?MA!aS)L$uRagKpQd0;1^mbx74KI*q`zUQ zc~4#B@S3a4o1sfOtu0JvyJJubhzVccU-)Q`XGV`o98fdbaH5wXPhQxp(5gm3VuX~J!#O5_N!`Dz7Y9}`8m$;>U@ zZE2EY{?XneO8J*LXjT?{@-$}5eJtgcxdKsWWl6b-OR0LWKRGeBVl#NM|K%I7$p9En zZJ!Fz*_^*bU<0@~>e??<4Uyr|R&j+z4mldT2fKAgB*8pa6T-pl*=Nh28mNybK_C8T zTx1P3v_8BYCn|?EtpIq=z(4gm&=Jj&9RY)Bi#7BvF>1v=I!fJuK3kP{l9qjlf1bMRHMeWCKjK|P`O<-6N}x{R>6oixv&$UtJmG+SbxsU7Z9?w)7J$1wT!ty7Z1; zKG;Nj0`2HL8A9|D+LA>`OztrD?;^|`vAG--JEShprj(Tb7No#J`s5oL!uG&dsonfeWIlZQ zWFo*DRI9hvm}7|oY``JH%ieb!{es&rnMUpZRK{?ibDF-#yI4s zI>10oAwd$)(s2v!2OF#-p3qwQ8UCb6jbisl1=%=%VBOA2yy1Im5WcLUvXtx6)0wrx z_WWS;@)anKBh|EVf<#_w67FSx`(fW&-E*a{y;f1wt;^LoAI1Oeyr6?1o|g78w)M&z zDkb2w?H1zr{FM&vS_ZMgniWwj4Xh2&Y7b2FSV?;kqv#}+xR7RFf4-v}TJfDZ{uPKI zgW&lV<{X}Fj~d&~0d@^76v7xdDz&;6_gzcL_I*`QOlAY|WDJO?y>IyYpTY716Zu*KoXas1qAms%?>Hh@oWZFbT@KJ!);!(5djw?5$keHQH&{G+G*| z3FxYhFgULQ0EAKJTkMG2Ld7u20z<_le>tWweEZO7)1chj|5{cGOLfn=0E+1S%i{#& z$FMsiB-UF6N-bZW@n`UItb%Unc)F`pyr1H0Obu+tQimL7wfH}$!;^cF78nN09pFW1 zCtes|y`8AsYl<<`bB`utW#fNFLqlV#@iJ^6UGPP-%Qiy%du${EATkK@*tGjr>0k#p zw6>=iYeIdrx=U_34K{0h&+r`ao+bkaK#IC`xP~XEmgv>1!)M#Xn+{6@(^e(F{ORNM zP~T7Tqy>g9Ann@C_>MI~R78!3Gi7jK9A*cq*@tl|uOE>gu0 z{m+W#kHx3@=ZQ5N$TrV0YUfYO_vX_XlZ`w}eXr0M>obGzFKE;kv>9uQ19Fn{rZb(W zzTeg~iD4Ij3?T-Dc4>@h=-wS`~He>XVtNhlUm;zyr?W%#_nhM1z(q4uH78aPf1_44At>zuX7c=c=w&F zUptJ+W{+qlGo6F9<{;j}NQZ&m?1}Sk7DXcAgYz3{nd7W?i}QLO`-$_nlFVhrCyN6< zAYW9Gaz84|KtNkgs!m+qQ`bCf>?$+mN zsaJMrgmP45K-NTjA~)EpaZYQj|8`GM8&J>J<+Pj{6*_EvuFu;yw`u zRaruo2|dJ^>g8M%x4!Zy{Q9iM--pN1%*?O<3*%~IYG|7;CAXf*{^r!ge7UtTlSIJl zYU!|-n}Z{9Y2LNOa(P*lcKesn2k)61@Td;;^(r&W9n%01vBLU|+^pyf+=Iv1!F8M( z(Mx;@`e^%fN#0XJ>90!TlBwm+Kh@qhl|P5KLI+9^7#HOS!X!*oM{V(E(xp$WuKR;2 zri|58kWTAe&7DwD74iM`v$zbddex!SRB8LLJgF2t^=ZBo_`9$scAT@NmixS`eLvCd z{Njo(+dvaDeech<-0_qxO|PR;sjjC2Jf{aPj+$85Z5!RGmV9fR(&vx*eWZiQ6;Pa< zQ*q=+X7JXZOq?9Z*+gZjtv7dnNS5e&7uDbF?VhaUz-i8^fAeEWsbgi57&$UJoxXeU z1AAUPu4(^}=*dQa7+3HUq_;|ga2=h+=z=%Zp&AC7Hi+P}5Y4DmTpg1ivqPdjv-vd_ z-<-X0PT|DZRFl?U_WG8N;8jO|2Ql21!z9E76Nq zURp;)y~X^#PUe9D8yb;n2>sbi0vQ^c_(#R{)N7wnvm*dl(2A#D(9e8#>xx%kj*pxE z&^g^_hiN|NeEt=QXiO7{&u1md<7Ev3;aT7foA_-hdW5x~Wnphlvi>doRa@DEDLen! z1>s^W2gwx$1BntNLM0C$UoZKE_$x$0o$M~5M*>~Da_Ej0*j7#gUs%5$(?zf6j zGO2T9%3Qw7Y^EMwiGxId9P6d8tmv@9j?)ZNXih5&eC#Tw<~rj>xt_XtzLDMBFN(dM z{e(G}aR!U%X`Q4Jh)K%MV})bM&B$9C3fIE7dI_@+nb{n_1U|ih(hbj}{M%$;V`YZ`0QWp|E8C^6rqJXGgR+@POR7N1lA*@Y$Hd;nKzBsrg;?DD67Gc=IQ= zx@Ey_c@xA|gO<8yJX679JuRpAEk5oDd%se(k`(Rzb5bc+U^muCIkvgPePI_|%9v4q zreilGdt^JMWpFK@>@s#z;^12k`+nZ?HftmHvQMYLQ|#m|Bn$L7r7Sr2oh~q0a2(kq z*R&(oAK^>`^C~pE_EuwxNAwOoxK~;9=D&|O<)8n2h68Jw-I15J^fTW-?y@hvBl$OV zP!`Z*(>!@2!k;!H2)Y0o0FBsS^>KfR+?zau*3_2Qb&446g%c4AxyrW;-(7v$*U))k zGTHL;=P4Z**VtzLSQJ&4P60d5Mafd7W?$5s+d$Ss-?}c5gK_sdsbQ}ip!}IWfEtju;^i+`=j570*|}`X(_3dVNVwHM0l4{- zp7lnU*SaA}N_DLGHb`lr`O`uSXM6Dn*U1_@J6s(IcbG+RP;k|Ci2+}W2-jr8BNXksSa`f^OpJVC%vV02+VO#Ap&-&38y0%7 zp9ba-9uCv1-^Ynkh%tQhWB#u0HI;>*C4*7 z@Vb67DuT6;INRXuqNSiCGe@nvlrXJ>r>TjJ90Fx<_lG)sL+#CgcjDJMCBsAOCQ)cW z>hCHNE}ntthC-kSXCBuPc?I!DGgw-%7dectgsMM^spY#D;HZNqk8N2K!>y;ZhA(#gb&JKfYBy;1?B3N!!sHEm_ZsthVxZpZL7)1Mue!M8 zMF%0_sLN_sf^rIO@CspT%*Qy`JgPBuKyhRE5TH6I7O-d1+OaujQ(aQHwz6 zTEwds0VW`iQ6ge^@#NQ-b7$2=eHn>qxD^pYmg*9#%Co_teI`+<` z&eaMIeh?t6nTfc&nv5?#@5QZLzH?#<*5tKzOvj@|)gq?=v@rOH#M!>fmQ%Zz%D1Nu z*gE!OK*a6XVvQE5U{Un_iSE70=p?+t>J4ly#}(F(OjTm|j((h3TsO>Ebs5P0N%j3& zrzbP4u$oFLi#;@S54@ULGFKb0%|eOQa?I|AlUlrow=2j>NnAYl&vtN~3`FGPX{~UZ zqG(Y|evfUz;89v!8rO8A>mqpRhx?RjncneYW2#B4{;*^&2u-N{4QZO$d?!f9wM&3l z)I0>8LPS1|Bu0Mpoz%n zpU2iOU)vffG)CPM({@`n+DMAtil;U$Dt}{NA9ygBnMoLS``X*t) zNnh@FS#X~`nN~QRGW5?mK4O=&#+>M*r1Y27)xEvB`?a7nH>G)hnm7EF-j9!T?^i(R z_b$Rgp-i9W&XRLDq%|a7mrSJuBMvnUU+Z}5vR6g@KXYm}zHz=)*yh>{X+?bLQ>Q=e zzU{04B5v;*4wYhB-dOr|50+cB#t(Q}w=$hn=^>3unHU~M#_yUeMg#Lx)HvY+84j$x z7QT6$G>SC2j3H}jkBa~egd@vAr7~&~t@}U~Icc%sk|ZlDPFzCr={GAcD<+Umt_SZP ziuGxuqEsra^lEGuKiCz+v*4184#+2o3?LJ&^)^zLB+ecB>DL_0v#iTXu0^blnVp0< z*)62F4B&fxPiY#N9%ofrdeH8QR)~AYnMV(cp1#WuXZ;QlV%1Z*f~5A1+qx!3-G|jr z$OM@F2%+XH72Mx_w&@q9U*8_~2HelhXQjqHWy~~Yt>1bf8>1XQ_EvGG#-?nqmn{}U z&!hKSs-`eq(qt+|jQB%Z@lvH!be8DCmztiG@n`XkW$NyvZfKE;YYD@Ay#rQwGRbNh zj0XM+H=d^s4^sl0j-#z_3(zCp#`7=fFi*%j=2d@FR24rKFzNj?8M5N`3j>#TI`tx^ z;Ne>h+O6mf{8e3NkK9H(7c4hd)$#Zy%_}F^d?BPn?V|BI+26W3^k+MXpth%cu1W3y zG5R7>lp;Ab>B~d@p!bVc!|^D4)vE&Yd0zlqH|_>;vDVkq&T>!FEfXg=J#y zV!+LbD@R6NqUS9gsxBxocUX#@D?ylZS1=*MVyJdt5_OmNfJrH>xRkMuASuv~z%xKD z^wvi7fpgjdjOiNMTHc0Zt{T?M%o)93CN}@@Jrk=hDbq*j%xNS$9Fvy8wS>5hc*J)J64ZZ+vY_;Xdg@DzTOG=5SfEf=)?4j+YTDe~UVM z^M=I+1BR_-<;E9|o6i^2&O`hy4(tK>`?|ijWLKvp;(O%}>UK@H2LTUH9m=#9YWz$! zg7Qh*;4{6{^)>A6DXm$tejOGZBnr@~FB|ZLAN4mV2j8^anr#eOxBNNfol1B(?-nyxpg|0 za8-Z)LbcY&-8jNM)wJM5{ddUir#1!;|M!ZV#avryH z6}O27mFuT8ho7VUTD*K~)=Y_v81kr=)dN#{s89Bo`4wTCGg3YRNA{e-D}}EfLuSwe z?<9u9UGiw)4`;;39(&*ch$iie%u}rhbcMw5oS`hq`AqmZ9OO5xuvBtwVgJ5Nk0QFp zSp_7?oXt(lbLH}Sz_?eQjHFNL&7SUcwn4Je*sr!PpKU%?e(pj?^=x+LdpaY(=rzxJ znsdFko#0!;((jq=f3VH?mce@xDx;~HU^!+AYg&Z$$!um)d)(b3j;10uD@y7YUttGK zE&6TPqGmpGYMUu=7kEy2UZ!8QXshS{Dh_5jA|@rL=ce;g@63{iM68;X!RFew!$X|G zX}Fdv^IT^4bNL;=#~Ywh*eP7Y+?>Rk9XcJ-W=-SK-QC@TA5?qh$8#7mG;sMn zYKaf`wFkPd<-&GCcRv;U(dnS@yX*lRW^Qxu=PxL^%5DbBGJlwLg-zxNC@lj_tn$fU zgbwXIr}S}YPnwB;j5L~JK9Md`;K@=ZJfX;wn2?qbz0aevx{;TZ~@00Oq9#^{Q;a1he(oq z`bTg6jC~~DF--bhbN&UqAP@jTWX*0v@PjJCrsy9K*fYfy36w1ju0L(k?l;x8U2fbB zHF;@hykzbs!Wz<)y~0Fwol^2+%F0Y|VCT)px^deG8WP%4nz3a4@!TimF>x;nc z`l%yY)C<=H1kbaT(+_sj;&BLJuq_pQZUG|iBI@V+D8H5+t;Fr7rBzGG%9fnj^%arW z?UPy`7d)0IdD)FCVmJF&?j#dM&LHL=j200?8`%PS5DO0d<`aO0M`ilrw)aiLL38?B z7?*~{Dem?o_4%j|8>7KOz3TgGgH;1Z0Kih^Ttl~euQX-iE>z%;{}K~Lu8=z zaP9}A0f!Z*L9&XA=sUpjHC!+Q`2;8*Hp_si>=8KM>P!Efp9Q?_W7GZUGGZM-fYuZJAP{N0%w-OR9;5y$1(uo{?&zp=qPeX z4U)FfTkG|r8*vW`MJ&#F3ipR{wEAxJ8xS63M%)1QXFR3?bxb77Mo;D1*e5>DD9G5Cqrr zAkttor-=>&V*R7d(kZh|*KMA|G4-XjyU{0yCM3D*mv-C+qgq1Ss(?Gv>;N<-0|b3i zFL!zNC)L@o2|O|h8>4KiJ5X)U@KqxpR&`t2cq&p? z6ALCKr!hYC)^U9=R8Y7e!k;B`tO~NR zR%%n3oH+hVzqieYagUOv_sM|*;=yuGzKs|Nw(H5ftLWmp=XAj^g+N3?YRdiZzXhPH zXlSBC=dpBpMgah^vKu23_bpaqYwTpRzi&9Uy7F0)gGC`}N*d1GN<1fR?plauxBK)b%Ja>7pNOW_+9CW* zfRsdQ1W>KPQC81kRiLgGKBKzjqkE(D`=;%D_EAEZkXqw_IP@HfN(1;2M0`VWcX^t~ zAU()b)PrMk<3k7EbXUfb0q~a!oAW~>f^!G)c6^+`xItz?EpnYcq@}2#f@b&y>Zn_X zskPy!FW2)^Lm%81L8(GE@Au~PsGmKH<1*WjC#De2m-;0t+?VfYe$wrF7YMjZ&ki8nptq>cuJzl^wJ`@P$g+&W1x}zYFU`OJd_k)_PXFBPkV$+ zHnB^W>rZGB{g^Hoa|eb?kxD1m=E17%Lm-L%2)+IpfC)xy5My~u<>;+N6qVG`J3(&X zOB}~J{^vR*MVrD7b78N&4mftre$2v;*$zBEdQY&rA9!o+wUP6y(uLdT?5J+*i$xLL zq1`vRR_4d{le?l8;(SavK_2=gD}h*G{WsYmhwrxx#i4TwKmO=i_@Y%yGbnU+3i}?K zvH+1&fY;fY!D!dZ39zCw2PY+qSF*XDik^pX^(idHaejOkq26~Lp1Q?efTPZFm5f*? zm1u}zdSf;i2`m1&Nl|`J4>I>s`wF6Y%`YBLn*xXU+_;aTx5qcKF(1$@}>|RO-4B;rVx>3Etx2wAkf2(7F4UuKd!` znBbHu!gp}+e-s<78^EqZXI!y4Uvw+~5zq(D$zY2O$q`RMPFOpQbxD^xO*<1t^$_mJ z44MOMlKHa0dm94_>H~Ov0R_D#$u)CU-GB~Bn1PC!vIAJo9Kz-z^Wf2Qs|e-y_Rf7W z?rEV=c+kMoI_MoaINp_d1bDb#hn^}i-ZdMm_b`^`yjjN`Uy*P6shGJ zE+q&8Mqt<*#vVMCkZ84f6q=K6^6f#)Dm=P>r1~F!s-iUwm`JHtWl)V82u9g^`Z-Z+ zs!BvD<+7d?Xa`KwzB^6~l^omT!(DX6^)%bQIaytrx49?#Tyj`FMNAn(=A>%f4SQ?I zN%QAWTU1;wmOt~O?c<55^_me#m1hbDY#}7=FHv3Bb_{;60E8v=#iTSXZwRM1!zfw> z4d|m!?2=7!2!%ibKxYygt1MV&1y9|uAymk~^{=2ZaJzb+K4B71^(>av&8KEbv%+(7P>#rz3k zS^O+BLQz7q@jevZii=m}t7mr-!H5dpJ50SK!d;gN3CCT#?IsqArl$GpvueS`Eam?F zm^#M_yMz!!y=KWIecunJ=J`6cZGM)i=}8SE>(;Qs=uLW%6!2+w6%n8E9L|UfZ2!2O zEjvJ%eMpz+z&vFCIvO2ZO~xJen!9fHRihN~Z zUOFywdRWzVw4SkoGtxqS&A*m$R=;8eNh#aufeRkTLBTln`@a6Ts z=p8f^fp24~=S}1M>2gQAl*AA0t(OoBq6O#XIIvqduLV%#s4<=XwR#AwYp$T`pR+f} z5^LA!Y}$RGf4bTC(EOql+#Kq^kVvQ`EiGMpXNm-Tij60#Y#8u!xKdPD&RjW_Dz0mQ zNI2OH;ovGacgS!AsRC=oMQEEErP>?r>I8qxQ2;r_{N45RcyNxh zD7{|p?2xV8a<3`=4LI<6E2{+&F^@E?uct4h2Jipj>Mf({SeLF*WZ~}a9tf@p?rtFv+=2yn zcXxMpl3>BzgS)#s!QB?Ov(J0>cgFn-1G@X^l3BB6Ra3jS+pf6XC;-A1PAM*#olV;B z#ClYp`;|VaIUe*r5R(IFrodN@cAyycFzSvkn!}9su$S&X8YK>x2a@wq`(llDME=&2 zv^J#nclLl4pii2NuCJ(2lqy;KLKsA+IB!H$Wjkh!<~l}sU5Dt)SnIa)U) zXiGlku1VEgI*j+_JEl9H2_=8!ECPt)oT=gImS%&4q_M_yP>Pt7aLK#6cGF?gcs%fJ zEgiF?191RM;9eV(CVH=-z!Ga zTU&Eyda9pY)cd{qq1;%$mgW<9pvKWPr`byVraFH=jo22HhfBiqQ%-|F<;bFNcXbBO zb?JO*GWS{Hgqw_y(zfk2zg)BP^A#eh^z3GLN!2=?S#FDRK>;lIOJU0|MZtG26RINw z5*9u}Wj9e&Rq!BL11psue~43id5+tKokK*wY1VutmgWjT{H5m!^{ft!_QbJwXu-7^ zC-me;EX{1l4=Y{aD|cfHl)pC+6JM*20V(4zjYLlyYq>osOqH9j6L7!&nP}*mhk9?Z zkr=k<-f#vTEtOXV^|*)f7u=2N9Wvq%P#947vt6nL!PNZuANoAqi_?QP1hnrT%->!%ums;M3qk=Ue}ffPD48v z%U3uK&+V~t4n}Ql7Z)T~1EIMVmf8o`S+4y?kH3BO=d9y|1EKzQ*!UkOd?Tyg%ICh$ z{VkDYc%bOAM^aN?lp|z^M~mj^vRO622Qklk*9y91taSLW_v=qo*N~nEj&6dTFX#8W zXlO##`}G%A*KNnsA^;Oo@H&4revKyWwF*CR)}Zn8W^V^zlWfmDbt2@3SC;o*_oEW` zN8WUNi_0QQ-I$cpc*HmdLaPe=i@~cb8DTF^xf}02qjV@bB4|^c+Bz8a6dwL(Ij;l$(Ct(1@NCAXuho6k2 z0!aw6rLI9wgd=U!eSsajd zXs2Imi*GK?Nr3Q}*l~e4=L>VE!9Co`lRWHRoA6pe_?L%0e`)6U+wD#hfqhMRyGV;c zqr4>o^SoS<{_Tqw1@ShI!c!kc1z$ycbH6XF@1H1j*f5?LA*Y(OThf@gTfzhWil_3G zY)Zph+H3oTkDY;0%;ju|KKhDLj+2n?r+zWI@haXX|))wLrLE$i<+iC zy&DbX!=c#e`Ra}K z#0Zt^+p5_sT<$~Z%PCn^=JV_s5?wBNZHWS=_1i&a!^kp<_LwG$Afu;sov1z-;B&7+ zJNc~}WX)i_RG!(r6ObeDzm6ZfJ@;~5ErnRCZrCmU+-vV78GOC^%T5I%eV{cXH1=99 zFgEGCz+b9yjBR_F_pGt?ji1H8KNOD4O!!Er(TAmje~2RX>W3iDnj+(1=_g{w_!XyU zq-k4CZj7E#Bg?doLE&5I{LuQ1*OJ+&6}fGoZ{v$xvn4RlDP`JSc$<&)AN05c1xm~o z=(wp=5GIp9hL#1w{Gx`z<2<6{_acDOYd8}3I4)~wIEG%eNUT{F@J%mfc#NdJ`e=k{=wuci$r6#i4it*b_5@*3YG z`xLyO8(wz&76S9jG28~mdC)8!K4d~|RIy{_%enR#L_bo0;5Ci@TY~Ft!@Y-(^+tQ= zV?4p`#h<2WUhs16x*_vMoy|4s6ipnhsf+w-c5Rh%j@P9^t?ck1b@P1#8G%T`ubfZ# zRd|CR`^6qVlDUaG9hIC#;5^lImWhMUZCTP3h|`nE?_aK-*&Ubr8ff+1){m}kuRF=3 z6%-Oaw46iM`meGqmrO*FN2gR}duFWOw2!PT7uM2ny4_wLWJcxn+FP$YUzb!jtm+PB zM;B|*!+((wHk&q|{5dP(4#8Q?%EvO}6=s`ke=&zjl1bo6JCd}@#4%ZICNJm@tFJ8B zaQdCWMYrZaM3DGT`}gMg_0!VZfBMDkNSrA*KFCt!29A)rgfe9Esz9v^hN>#BUD$Yk z4k4C&QMLHJwiJ5p7QuseX`5HWzC+l8@GsD zK6dgkPVQJW0f`XCjLSE@(rugo!lpX+vnU2rO1p`JjyBX?pG$5b6T^jKwot-aRal@( z6g=cnSW|UkNcjafvpTK&WPt@a#Wepx)EP+7L}K^^%ux725Hs7BCp>y5OV<^zHjTqcvLch|b$6-2ExpZh{c& z+d6xLnOA_8)Bh`El|tfld5QIsx=$W&R^4nT!KryRXlHy@EXA<<;WsY*uHx4~f*IV% zGS*88AqOP?-e5fLQs%;w0(i$%;o9o%@mN#ROy6*T09_F6%ycKHP!5xXp7}JcPcv11 zx*$A+&IxOG^7TVx_a~?CbiQ&%UOL*zKaRz$&u_={st8b!qV_zVw96+`1>7rgmP4@) zCeCa%T4sq3U)kUBO^vqZ(Sc)sCC%~JJ|wr@uD`Qjy>bBkFn2guHhpuD1syMM@lGsK zc6bw`x>hc=3d_peLmsSKYTv^HlhRG^Ilh7$G*gCaSKRvPww0aY?`)5sj zcfPfa1V`J;5&TJsnO6G801n{AIkAAzDD&yWaj5#xOp_(kv&(U2FUc+hsEJC36rzd4 zrkGBg=lZv>i03VMl{N~9qm^gCVCz21C_#=qn(E|I(RqlS{RyZ z1rMXDtS3^ZR~~+m`70w9B}XR(aK1rz=UWwaE=+48Il3x3${XZ6zR}^vB*!Ns)EExC ze2+NA4?6cM*A}W`THea|3QStAdZf)4T^H54= zN}B|aJ@{v{@z!%SSC&SR%z&fK&P_r>2u8?JV#Du<=l8f=+@hMTRZDkAby5Eq2Kqp+ zf1;#ZCc8`3sAG=hq&JFltK8wMy#8s{Nyj_o?&~X*nyk_AIXaeP>TZ35NBu-jR0r4| z3AgP-@PS&^=f3u2w}2&^V&c`Z*{jJTJ3VkGcwr+xHOeHBxqXwV`SOQcQK^BltMPWj z?l?p7_)CbJ>&}RaCqhw5G<&Mdw}@{I8ojL+6+W%{WL+QI%_kiIfmRLBP}zYJ_s4II zm2;5+hM4*!o!`#o{F`EM#zp+P5etQh{u3AgHxV| zD{o$}8%KQDy`Eo%Y7viy#pI`%IaxW~XuHs9zWHh9?gF#t?5lDjAF+tRX3B0lA;Hd} zYBKipp54hjiT`c#yzk?~CLir$6+>ad3bV>~eUaKqzhK8NQT;Zv_t^Ng8m5X!qcwQ` zZTc}>DZA6Ts#Mk2!`kN~wQpMQ=D6yw>f*ave?M%Xb$D8k{a!(HTzOjD(jjHwHVh+f zrPq}#{$=C&Ok!T)isG!0&|aa|P+^{XC(%x;kka zFywVzIspmRjE4iqA@u%BkI`k03C5v|ldIr4Xf9YXCJc56K6WH)AEwXLc6cVa-Bw{`CRN<+V1|Sf3Jl1w!zf385oCz)eZUcP{Gl2H=)&J zTW$Zl!uKZvyAyGEs>4DPW!GjC^#n<1ywbnQECGHFe*3Oh7hfmfuP*8=}aOXjzX zB~xA5kqy68=GeN@lEsa!n$ycI**wqDwkd#3bXkZ}B%;vo{MLX>K=`ET@?DY?wlxJ9 zuy7b|+0h}=xroYyCHO1Kb!=vw;BM?Z-XMI<+_@3;>pr5AfBQd+@4AA@SWI6+N+F{q z3mJyejJakh`QgT$Yxh6%rm*r z{2Ov9P2)_a`kO%nZ8oqxFJr(s3D;&DKyd#j_VrNYjTFZ%@)2L@U;*7I^A4P`R?OoX zo+{xxe4&+ENAXVgx2_HSq_=w^*Wvf~{7j+WPR71AZ*=T>@!j7@2xgX?T>nLf`yGuM zwI@q%^Lsd zgyZRY*YZhv-x3eL7TixpceY9SJUu^~Y=8?;Q)i!d-KmahaZ&E%@p(#m!Rvxe7Vgyb z@B=)(bR>yPy#<=dt&N^jKb~XLQ!!IYmfjQab;E2lhNr)zlZz3>5P|nERywSk-2WMV z{2M%i^z!OTRGgZzfy$vt3Fr*0dMTQB(s&#>cmBcEawK`#A6OWS`Yzym^3ZRqPx*N+ zR2&*P!|E}>_U(%#EsZq5XfiM{TX?coK>EpbdNlM!U%W=EdFQpS@`i%@24Yyv#MI`9 zzgccrM8+hZ>v@Q*n4R-z-N)qWvH%opS~`{}na{@SWMY5dzSA}ThmQqYb|*ECEq`WE zHozgSw|;H8Y3VjO_dYu!O+G8&#{1XLK5xFh94V=?3D8p4>}4ax`n)nX`QEO-5xxH= zr?ZDg6v@0@5eC)(1lzXS=@%Kcr|HF6Y7?B#rq@((C<%Z7B;4$%@a$=~yv=8Na*S;3C~skGsZl=yHKks6yCJhOd2q0Ui5LWAE-(lsab5LS<>%;I&GSvzz{oU2ew5uOYGDSKjP5C~ zxv^l#$@i`HWRxc0X3L}7KM-g>8-mSsbseNq(VoVAbtkRuL}FW?Q#Vq_R$NEKl-jA2 zKXbJVG5w-4+WqnN6rtm@)tsXssIR045E+-L9|6KbfQGDG&ukwRPz`xT?8`I(Le#9X^w8{>P!WR?&AqEj^G~%?kmfXiOWM zdO-S6u?k3fug>4Rr~v_ts@n7u&$r1u_;f(g(|qKaI)Yu;2~Gl-4UhI*-?x>0tMun+ zP42&vE<|JX!EaSGiGLYcp|*YYLfynyiMG7C0>2++fiiGqk#z6$=C##dQ(W?4*`=~cQpH_>R zksJoTW{5fOt8x(-tBQ9Xo&7XdH3f>fk&W}$`a?0JSEcFp{>Ev?tGmo@RD}=a8#?!; zoB-YC{s=d^mz#jKV-mpDn%A0+1}57C52V^o*%^RLs|B~ka&4!siqeN$Ih zsp+G+zS?IFn8_(hcKjrvjlzE)%iPib3wG4N?$6{j+kbIp3q&nmxu9qrn*SyeFa#Cq zj4MX&QHFMPFu~V<{)vl+jP1mnRV0;rIv0$KVjjgazqOESmkjWz1wzmOM;SRzKFCSB zeWH{n2Rw|m()=RlwHf)T{mPZ}Hyl^1m0k6V3IBU8bW`eVYgCe^!CNU;s_9-2Da?gl#3=7$7^CAuz3Nj~7p8ai_0q zx)yVI?)-IBY-bWDL?{=`u&T@K#sNg{$)fS6>a6X~uFDnE2D`!)G(-UL#me8B33 z<*;e8|2}sx@Z45x@|>9daqw<76bRIDZM$SpNA4^v!EtR; z($c_BE>xw-sq=ZAkny9~Hs7r*)=+ELc(BkN%~rmc-PJX=x_Y)GR-UcNJN!9o)K5Qe zG+SHa*%I#((IGT;d)j|z%hf8_d{U)d%Zeo;8JxDvtP_;(ea^d z=TLe=B4)dgaf?)Nlkj@!ggnw&J@i~mfk<@zVf1tESz%`uMO>(+-Re=G6nAH1pgb%^#0;tqd-< zL^Lg*-~ldaj9RfbERA-`aXpin0k*5o(X^Y^%vsU`(EVQzIL%SPqYT1jwCA{j^g^_b+zCqd>abko#^ls4m^ za@dtbjeXlM3KaK?3x83dM5DMxMdx^SI;zump=2td3G3gNvHtjNQ{nYRLszWBO zuh6|r{`SuQbEl)pe)iMI&qRFvmpYI3A8FAMKzd+1@^Td9_zPtBn0%?c^+|*^tdPl1 zqZ5Q<+?tg*<>2H3$1;oE^^4~exHn$p zVv;t7h@*@OSo=F)CZar?U8CTC6Yy5KWsxBqskychm6r|l6gS6ZusM#SH@w2?=T1cLDyAxr2yTBDd^IXNC_h}%?}Ky2^svLSE(Yy)vUYkh z!5BQT+CEh|Fom|f86Jw(BV0A5hg%#O5UbM&&)jMFeU0~WSV*a>GndzOS!)>xy(*C#U5n7^#+%aCe@GYC4GN+FJACnU@9dT&jpH$Y?jbp+VS@@*Vy+uHwieK4f(gd)J{qjKkp8-O60 z6CYi`|E>fR6shQf6dALQ}s3F3`Wf~Vb4^B^nJl~i>?tGjgZMCPM zRcARAX$9*)4InH&E*R^baIK)`xIIAdzm^iBMbf)#Zfb07 zRIoBD?+w#5Gp}4kH)9!`2RGMV7ty%0i5CPJ7nt1{g!Q?yPo)1RFab{l&+A`ULB(p2 zaXkw(5I(4+?pXh}r^qa&ZJ=A}a)yv7~RB{i6m)+31Lcs>Z^( zrbxks<;896&e8st;p(1-+s?u0y8PD#A3vXwp84%$*Nx;L!6oapF7J{v_23?Cy(P>M$AbYI+o!N7(Z3cwO>Ef(;TyX1h7f)kSWx zs6y)96nT>sVCWdi)AMmCb7BD@Rl?+``fe4I z{^w|b2=Y*!TQX-(TZj5YE%K3whCmfhWINu=3pV9kq@liTd+rcyhbK2HD2Fe0@IToH zuqknJ|9ifBQIMc>4m(yF5hP-&lYyLlH(@>g!ZJ#zw70|HNy;vqQYKgAR{MjDI&Lglp`8|~hmN$-DX;78def~2YC}orx-09u%v-nH{S?ks z_*paDW2$xRThU|c!H@Aj0UeYpyfKLFwaEPY6{SP691`%be8tVv77-weKLNOvQzXxn z`~pd1Kc9iMk+Az4tDzeOW1puHy>LcL`IqV&1=t`p$#M>VNKV(BCE<}~V?%-yXPV*7 zH9F08@*=+Sq6Z(p95PmgrA8R*r@r^EDVS8k8!LT273hrOBRedneHDDNKJDw{_e#`DpNt|y)j$N zU@?qbXQ2Nj0alwu6GF3jcoi#&N+jtEGS5wYt`5ABsL8L@IW`y+%p|AuU3qJk@~%}B zj&QH3H_mze+G6qg4@a|h1yW5Kz_o2!%?iH>FoVL_;B1H3J0}7!zP`kHN#?axz<>Lp z^jI$R-U%D|{DZFp!g{B=?|8&Bkb?gYCZ-98q37+6V=HC<#}Krk;KpOR>VMYqEnQo6 z+k4ZpD&h7pdf2NScuz+zn~9`J=pK>PXB*O{Lp)(MU^%o;_92OO^QR^!u7b>($< z>a9yTm@~Z#MikDHzDUC zA3O;^NOGm1`lvEEF}cDAsg|4i2mQ_XRtM|^S9tBCa zJ;*SM$$T|W2U%cINzV}R>j7P4FZ{p@B}3Mfzra|)lyUbqF+NE{``bQC&HFF5i|Vkg z`ek@eD{pt2gWW##Z_or%A6P>{M^3M$8Xi{gD)ilWf)v7A@#Y!=a+~nG_hw=!;wk?A zf|-XLKiIkWG3#pmfiX)xH|l?5200W0u{BDJr7NglpMk@_n%WNeEySuU4!5$$A%UNP zc9RZ@>s4X>o;Xw_pu`$mJ+O1m@?~a4}C;|JAkVaFa0dps^tq z^KK-&plQHXJ_0Lpl<^@oH1XO7YUkTVd-eIPC*A3MlHLs3)_>LG-BdfGQ`d~13 zUeT;Wc+3=}J1>(q-r_2*1IYt%o*xRbh&$0&Ndr~ufr+v_zx%1YKi!*DajPi*0^2SS zF~a1yG45Z3@Z$jqTJeYi8RRPsqj8Jp3|*rMRJ^D#>5d0+G-9Id{cNhwxDUA^G^8w=ueY#f=sg`gR()OebJHRD{0|fVr4M-g!T0m zNEZKr`u=e=T_0n`?xw1Z|8tz< z_q2<2y&Ob$4rO|3C2G_}B|MF$iIXiEeVqYMD9u2Nb=Mw&(QsiO-|?(vi)M^H!@P+f z0ph1`C?UX6Tj-C1ye_(XXDHXj%8&S+VO-KL z#BjyN#eUmC43b8l8!erD8TW^NIcEHT0i8__ij!=Ze14oF$w>&A*O3H0lR~IDCt+PS zNl-(HNIs)%Uz^Fm%aYTGbGl!)@UV2mYnBp}k{>d^_mP-C8E+WXv>6T&e!v5SoB6*1 z1*m`7A@B6y_ey(P*dVPj%*isgS!I?zzLrlog zabaau4h|Z*?)@+uPaMEzgIq)2#-D5RI1T%7&9VW9=r0}u>k*!ifq|CET;@lzpoWwm z)#o6{?!SaCO=QolK3*cQa2q3B$8dGmJ!3Z4>^`^dkK{ief4?gV@!{wH@fN@d1qu0w zoc+4UrJexby1yUBCaVmj*ch~hUstETC!C&_aaGRs70r9a!D7}A{0O?%u=w4^nEMiclf47gq1qK5$YFeo8+R`UC}^^j zX>Vid9^pJYzEcfNCa>XHaY23PIITTy^NTr(?KT}Z--*R&R{Gy_;{!radM{P*Bgg&` zn?JCheEtLGA%#0XE%2TjthKBctY>*)>roW$EHA~!0!7*eq~5Stkrf}TlpBg@)+@yRMCPnV{lD8-v>LwPXHx3;!!|`MV?Va`p zvj0o$Y{>&`OV8uc)oPls9embNHUzsKZU1p#Aw=vjNHnY~!z7ZNje@knS_j%PMMKOm zhn=s?IN$(XRlrEif_DmTg_#SIhRt+})L-np0Y>-8pl>^tZ2;uG9$zjT#c=fyDpz0z zmLnT_b8tWVH+B2z!xLMR+{$&XG5}^Buds;^wq8<>CtN~zyEByXYeUm>Be`a1^MoH? zX(H_KI2f}zke12bcv|RXKH;NvbJ2{qeTeSb4I*&qbc1E?aLM23-;8+`%PTbop|-D_ z<&KLrEzBAM_IS55#Qwltu2p@obM&wkcbG0l?fz8PO!}`gb%FS)?b@PIkVy-+zXA6* z8Xzoi;F1pWzVZhSRP4(wf!kH{LSAht+ImmXSVx>40^b%&B=|J$jDE4St+I{WNv|sAo0RX?p0eSML@_CH-8t1*=&ye`)`KSWoCl*1a`XDv?8wXEFHm=?J+k--Xwg+cgKjdCqr+`|anq5>hEVJ1 z!`H_DrdcRiKP-MYY#y|J5M>Mm0ozg+x_zwfCoFE{*dFb3l7QVJ5U=lyR%6R2!QfXG z@Q`);lGu8C`mw6I7e6$hw%Oc7^KQ+`q?%UiH9+*a0rc*C>B_GARWLU~HtXcd8TI0d;TQY;PAVQfDcpU(m zLYx|Mycaz_Ru?NVCp8zkal;L#TvHFlQiBOKVq9wj=2*@=Kk0BO^?JLbC)ba{g!6@N zh~q01I}{2b+W7!1>{9RUr~kQSH!(l4R5!8M6(EjmGC*>hddNncxXby861P{Mkg!HY z^=O>8Eft=fHSKA|9zXuXB*Lez>HX79-o42&hK?_b9CP23v|dCYx%K0)$mX3+>As5| z6|HqBj4^cJiqt61KituOqQz#8@CgK+tBX>&B~b2dB0-%7CUzW#JR3l9U_P91u=ECY z`u6A@IP&O1e`k=nJ5d(k<6gx4@dHMuD!*uxX%^P2fZyN?27V+N(y-T}B_;hLP9Q3s zROJC;sI+Pu&I90m|Hi_28NX{5@qNbwO%8tpbbKDoeA};xH3`N6Z2YkV6rg#gpX#GG z8?AR;3JYH1D!AY9dOvk*rXh2o76_K$b4;lJ$vMOlLn}@fbl8*#7xVOBv9~!?3v&F4Dzh1e%zXz7}N5$RiUhV zay01)-{hdAL=7la`%`?mu-7qeYv={JN1oZ~W0eoTyKczLt22WZQ?9;2vS9$GePHMF5L!;)MYQ(KD@F73^N*(oe9KfzFzDXz2$> zAZ6FfVWvEgEqz(f6o?Qr{QaYl$X-Vs?zAoj0&m4~cXey*JsFBh26}%^%sv}}CR+Z; zkzJJ+kbRp%ePS{&P9vN2m@TGA?`?4hy#q1+@}~fiA^zMYf)etY233)ytUfEcrsW%V zAqqWxEw_c;)YHKv-x)t3%Lr-^)J{$z_1jVSWbjLCYgysNY=DNhqZ>fYB?xtBm#9}u z{9Tz7LoixQcqT@}h@IX)b=#cWb@X$fGWScD&y|eI(l-9MY>cmWMJCcOk;1%48yiB2 z&~%081V-p521X)ex}JZ8_w_u~i`}nw`E3+?94t#yF;IO6Hvq2NB*?3J=`-SHe%Q%> zYM!9^d7W2p0k24Wc6Tj3z6QtGU0XJUz7Ij)e~Xl|iH;u`X@wS&;a~fw8$GL$6v*DQ z2te&oqbo(d6YwQ+xWh9LXWPhx5wxu!_!QL@&w<-&FS34w^gL!|5C^^G2)K7o2#}W8 ztoAX>!m0ZX^O+de1+#wl!aTRlevxQZ6f@XP&e2as)u&7@>=S(AQ+N>`LwI;;1P`pc9Q?HHP5#)hT=hupg#co-KYcltmmY}|Jm^iea~rps z>+i|K$A6j*d|rE(2HSk$MdvQaIE;r?-l>seImD%lv02eqIcV3ckKlFbn#lU0Qb#5% zfPPQ`ntm)g0MjdZ|Ik2&A!WD`$)hY8MuVZeXI`|JqWfDk6k|+p0kuI&#qp%$EE-ZLhNZA{!EKV^arqDcOSl^0hnH+c^Fi+0Su#|y&DqVY~yX=ZOWh`T9 z$)E0uQAJZIstxrW5Lp$OBTW%@ajC_uvII9}a-XLIQhohNao^j8${IP1b-3@Bxv@Ih zj;fgC^3-~VWFK7nKu=K+;X{d}57<%K)ht25mX76&BO#8A6mFg@{1*Nk@4(jmT`V-9 z?}47zx0!UE|Jz6>`MRKQFzPm+XhN76?{w|M?nKdA?g`%UWoP|j<>JJ<5ysfu(5A{s{9b=JIfj3lON{=ZHYi&Q)56_KI&i{PN<0w7X>*jbSn&|VA92Y>YV@~Nm3*x2ISNjwYEpHBtFlaKudNK zI*e}{BdT6EF~045+7zP%+(-2z18<-(;fESb2J*)wF=R}z;Iq{JVYjeA+@*o}JS^-) z)W>w0DFe}S_}+(6SY!>3%ThQo&KBFRc|OpG2*w$Kts6;VnV{V?%qlqcj?rQvqr8DC zd4g~@R)Z|4+VjqL!dd~O+ml2l__+g%No25gx8%L$Z5^IbD9DC)@@5}NdN1gUO57Sg zz4ZTNf%UMUF}$|YRDP{w)5}xcnGc2yDUL>(wRx;yLKO=AlGbGf?__%C$6#u+F=NUR z)7sL_I@mnJfO+QV_RiWj1c*|Y;N)*!G1y0kNA0+SGF-iZ~)7vhM@$I7M= zpdhUL5+97TsnSE~#>5;{O82faFiSffmeC%W>#?&vJC9q)eGNxKrn-Y4=ZdWqL?A>@ zNxg*N5mK55B&_xCWC1e*IW#Rq-4Y%d*Ym?pi(v@Wj-|bPD!yxJh1*M1?aC{Bv}Ag> zS-7t(dI<<7OP2w9*bTCO3JF|?JA>TmR@)aE4J#w+i!oEpVsHG-{TQVqVTMh9VdlOM z?!_#|c?Pd(ld!U5yhy;P&{YsG@fIf2?Rg5gc6y@IYhIsuhi-PBcaV&4?1H6~c!_Yu zd)Bc0*R0>i5FHQv3bMzKCJ8JW3R2cczKsO9^O`^beAs4qpFcgbN9R}v`d#Ozgka=P zVAY5lSI!9`a}X|`R5#Td3-0oBxn0Q&VyCYOqM|GPockXxES)-4xMKJGt>C{Yk{KB- z4c#pGPZIs)hz~s@mum+hL2Xam6e0}4hpKB5fhOjF7 zM_w{^Rx8oo0q38NAh9qvC4SY1?<%7-UF@Dv*p%TkSMYHQJ-$L0@c08(l7nmKq*sGo z=x0SCrK?1$z1iLJ*C)eg!4Y@c=|3(6XwlW6>Z-{QMPZxs`!J+AWQk}+MXK!P{lS92 z%rhZ~@atY*dL%uU>+wRjVu!DfV5+UtQO`VwK_53#eXJC>_9vggY%plPDo<0g5ILR` zpf@+EA3Rt|atlXmXJupqPN2p&)u&(TStKw*;G|QyRs?4^k6eTtpM@e;Kk5S6+-GUd zRi};#9DDOrjYy} z;&u(sDq(^@EXHi*RW9ba$|iVkY?K-p1SLRe`R{wQ1omJ~P6sH&Pf&P@j5ZC#IoyX+5oW-vx@0v;=oFogE$BCc-&14vHyIj2({#HAstcAd>i>kvp}c3 zv6rMK-AC914b?=$; z^Um^@6P_I&e_pa%@8Q%KJKg&__|W&HlO`Ofq;OK!?p16=+`skwrzKXH^q9#fQ(+InBP5F4Aev1P!-MDRtB3q zVuP4@Fy2~=XgC%_CqZ=(p*Tp%&2VC|{XGo^$V3Uo^F$x=*>UhBxoF!8N`ArNG8`xH zbfs2BgscsWMtq$NB`lx(7(@zfF&*HR+Z_>km-G5gSL3K7hX9X%_thC?dD&^_GSfFJ zz*u3rpy7c(s)_XcogkY#x!ZioEpeYi5C=W_n#7d5^El=U@k;{%3Ext-8I!2sC+d}I+SVx;Mc3z_ZCH+Gy^89Dm8}QvTO)@-_N1--@+=Zl2+>aQkedn=Sl;WZ8>wJHmRG4#u0a7}IXa&wHwdEvo;pA`dYT zdxmjD_~Pe5FwMj0s5pGn^H(|X_%j8pqjii1oz&@h4K~7mXCk8-_cnbsDk;B7xy^<>cJ3exzbEm|L;@AN2B=M@y5vtuYb} zwE_)j3_Rwe4FU@b%>LGy>PQp`gOkDsIs1l_XHlAtwg}1(@iJ@JeOfxU!&ffIHWQ$I zSwGwxF&SQY)y*8qGJ;en9>?2w$r5ZNm*Zs7>Le6oiU;K{G(`St$hVHKrULwT8CEz1 zwo?K2E*W(OXSRBEE8g&U^PLZ^GUk033YA~Spcu*nzl8FWc3fo2@Gfn)WPeF@pzs3o ze7dNzJtAl6HT-PQf*E}GxI00cuOB9#rziC%HfCT7e>xgA^arK8g?WyChae#e@^tK1 z_9SACA^K#9Ao2CzMbqxwk%8n9s1Hj$K!N^RL zl*!6^5t-b(4E%zF=+}v<88GukV+%^CUH4T?wY8;S9<`#bb=dn~kuXe-- z5);9K*4N5(g`?8c^LvE{ph4x-U_BwGWm@HxNsw))D}F;xE#eQnq~>hoJ)H~c^MI9@ zCQ)$=^D#4)kT8!;!VIgjASulFcpeEkML6tx>@W$h8!Ufi4(3OT48x800FwpAu=EVT z!54)0hQ>}bKd$M?ko_Kpj3Kc!UGHWpDix@BuL9F|%t3nYKD*R}UeSnXA4FGDz={Sf z>>Phxa6?sqBaSvA>x{oV2sP1e>mPpP4D$hORElucI`=3=>8|c|qV#E| zAEvnFnl)<1>n1Ov$J+1KS{0raamndSb+5-0W1fU06`8aG5FyCiH{mnx4)TldQqj;! z-}X8D_}QO}dkdG8N&TDl$3Ud|(PrtyW{jjoG>o2*ktB3r?Uv~RMls${vz)VHGab{H zz1CPIJ_0=YpxMWfTjjWL*tA-Rs(h(X`dfUPW6c}RW*ek83+(iZ_`l2uKy-a&jf=#m zv=FHr8!>R|G15<>V+ra0WhjCC238qjeSaq=8JgS1q%DDGyBY5?l50-(I}3@RhqBF$ z5$_uG@X1^c2Q>$47xI#omOI7MAP#j`fIKAdO0Cqp6y@R``cRekec$F|p|>I|?3Gm< z(w=ObXWV2v&o?-newcSuwt>dhg#mQXx{0G=RO41f4Kwhuh8>YIf8?+~P@QAq0)$;B zG&if;0PA8!Rnx7_;h!U{S%84@_-X*(FrLrrGX~+)Y?dAm5lpegkIX??v*Go;2kW+{ zPZxZ0{_%^;opRb9e{YG+Q7FS&J1Jh^(H?!B zozGZ1{`mkLWysmoQMFRk+?&cxIeo7eM%|1ze(x=3zDBTd!a?E~?!ylAUeC}=0R6+Y zfIWI70q$eHy6_)7Ts^o$l6W|bJ+VL+Y(#x>s6l!@tL)MW(nQC?vi2=^A&nk>9oqA zZM>A#bYAhxvw~}i=m>%ryEY%39sr8eKOKJ1HFrWS_M8tZFMGiuy!QpM?qg05Lj0^N zks%H3N7{UTWU>N#VP|Ysi*ZzVQNx6h~z`m@c zufG}EKxMs+lh8d=O{@$4v;2Hd@hD?bPaqi1d3qt1y>*!F#iXxKSVRuL<(}E-Bpx+$ zQ;#2AVW#({Tt5V}e!fF}>@x#tO+lBivrL)2+DrM5uXhTMvL919JD&OCk zel?v9kihg}tgQxY(OH-=vILLQzzWkZT+w#;%<+T!gqLL)V~`i7D;{yM5U*)R3YgT; zU=%!<)0*QL@E7d}_csm9&HTQ9BC~G*)fsz@t~>0!M7g;mL5Jw4Qx9Lr9k-k{maqNj z6&(KF@#(_z9-l>v2tRVP*x{?KX~L1(1H-To*_@Hc{~Gap*v_~STdlNdd{_x!{yd*q zg8EV}jj=?rol+@iNqKD{H94}@n{qF3`U0_9XJR43rzf{6c9Ys`S9G^L4R>F~p^Lu#it@CnOrA1FjWZ&@QKP zYpfS4+xzi=M@nMQ?6x@94OHlOs$>pxYM`cx_UBk&Zu2sf2JNpF4U-*gB?aTC-i6{O)NLlk8$vl5bCn zrAoK!nT9V?i@-YUf%cbXCekc#pCfJ-TE%lNxV5pizWP&*yn&-~yo|oJh)%k9I#**$USfy}=_`$bMc}n>l|eQ{E9;T74k0R+)HUmVF( zKwVqmJ6_UnU=k99%f^ZggC567*n^g`hmivSMys7{prLll>Dfa>Io@%P5q{I?I;CK% zS`0;Yk*fG&c>J~Zm&*J6H%SIAa#V4d8_2+X=PI5xOv11%ZT$a>zNW0xBXx86?zc%h zKcXs%#{*NSYhJElUY@`0U6u4bzHV(4)3^Ws$G*Ox)&6bOH~U#GZ+Fi_$V}fc*H%@0 z*XGW#A_}+lz8ft;_`CGY|9($c&47w|;!9T<;Pd0Ix3nO$VW|EYtgN-ss-GA|Ry|5r z0IOgeuH7-_3NEi?8V{S^_o7{+o2lNdQp{_qY+T%2U ziq3kH)+IE-6&43&wXT0MZmvG%ldmup@#ATsPZ%l8{ZT;pWe4{gc9{Ir827v&mk>() z!jetzjMf;T2G(gRu-xRph-N)b#PFtEb7`CL-xvmx;|49G6JTK2wC$Q0Xtu$0;)svm z#&BcG;QcW{4a<~cQ!VBVYr{@;D5U<_$J}R_1cgj5o=43va zEvPQ7J5U@V%5#6=DpE!jW1^QNo+^9Umgq2IxA?xgNgW>q-~C)7jH8b7SxBzm=o!KX z_GWI+Y~q#ar~x4%fwuVPt3mlseg*JF0i zYX2zToPU(BL{|h&CGyGr0bO<#+{5C%C-M*~2y~ES_*iT`^;cm!yrcSSacu47N=3r5 zh9XkZy@Zi`a;hd;dNpeJRAB7Ec#w6o`JeH`R#w_=s37YIU*v@%6pKT6eR|K}DbV#! zjJ?vtZhM-AEMnalKM`FPKF@C7jY-X9k61Jw4;&6{`L991;-J8ajsskS<76SpwJFm_ z7k{?R+EN>F`F6ekCS2rfF!U3c%)gQc3KYo>6v;8&3>tTLg$N1c=+Q$AN2tVEv>wO! zZc@@8;?KR`Y5dfz*!_5b7+mnOtBvHicR4^ngR5$g1$Vb`Gg^$`t*Tk&9Zy+Hg23WF z0P>hDATSO1B1Ob6BQ|e(pJQyej5paYw!|R9d=KP)q?You4wgTEib6cTEZ5_j}R(J^9~M;sHob?l-SIeCsplV554mpJ)&Q>tX%NJ@WGYj`Q;}PyZO| zbzZXr4)A$ZB>$~CyL3C4u`={R0&LvzA+;u#ZsGm7*<@Hv{?|F7Nvmf&2A2E@A19qW zAM=k~sFV*G`(*K?;cXT?D$51E=CcY6hc2I@1|It*Nj>%eVaiW0o>O5-Q7E=zUm{K3 zFPP0HO5eR;3<(J~eK+s!i_4fumvRgMR^Rp5A}N00)g%pJJ_G9_5mT{7>^9P9P)DY?yo3%+1>L=)BLQ0@ovGfX)xdF1oC{&ifp`)WayaEE%ly+=nBVB z|GMsw!Ta>EZ_ISu=(bqu;k{s=mlN`C#Db6g%oRzb(Xs4hjmb;fhx6yjpE16FO;62> zpunxJ|L8jg(-$XZU=u%_A3fF2CR-2`bj4817G#QD*4KSZbA+lZ#0N{0j?*<@`W*YJ zy=ivTkb~`bYt8Mi{W-~0ja(Iu11rG>5Qbf0oQPh@i;v6-ifG(c<;Rt)NCS(17Ozi$ z&@8keFbBN0BAg!-mvIne;Mn7XHZ&4lsrU{Z@51X)*&RhC`L z#U&%@!H%r>hx2P(2$$)i1thVsO|tEIrzaRn5TLrr7iGZ%mPlOWK6dhMM#VfpUogog zPpan0 z+ro$BI$un7?{+GPaasYE&JPkN`X)i`WK__?CyEkaMDOWG9ZVR5~z!_Hn}xt z5oFGa$^sg3vsBWbI8SiZ_$CP%`5B``5K-^V3DQkCKM&5P=d*@b zs_|`7PgVvDAT?)^2|K9bG`+RP{42f4v7Aw6sZy_J-2kps$_gEp+fLak!5ed|r@QiL zG+*2&{KVB`!ktUa!kL;OiWCmPkDh788}gC9q5))A>_8M~w?|rWic~yYIUts$;ltYC z;DyR7#!Pj<(@B0E<2BaK`<(|pmdt$VZ1Qva&M)RiB(}e7N*Y$i0JUmF4hgkgON9<4 z`TS!y75wke@g2YOZTH5JIpTyoi}0&Ws0Mvizs*C6|ERojPm(`uH!4)X(b}YJ66i{W zq}fbr;2ZeB`iR48r{Z{A-q~a(4mq5ui%v`?ELZqShtI1~8v%5aX5zn9=q#Heo6p8d zyu@SxgYy&_h6t02*HSYgUG#%%zJdbbj7%xntjnIub5=52t(Y7cMGFIXgW8_E;+=_Nyew~xq>aJ<( z>(TMfNjEvKtZvE0pzMJQ$M7cji4=&d1F!E>brGFS>-9IiFvNW_QDG!1HIl*KBAK?zI z7}jqfo!$#Y>y<`b`1MrzXm0xnB#y#u_lQP}tsoF9+Jc_xsf1Ooz0<3f$Bu&V#(N{; zPzjYn)&PdQ&+G^r^?0QiV*a&ZEoG;+*3oPaIU&P{?rjgJ#zoWL1y2$sC4KhIX56`? zVBRkQm;3(z<0A8w@;tq5@(be%;3eVD+NjS36h1KH55r8m$GZ|a(x;2#`OsIN0T&-4-DR3HDIhr1b4W5G+99jH?}ab}N` zMXW^6x!vj;79>C`ZzD%c#Zwryp$t*f|sdl)` zUd57=R|sw1N=|A73TgjM3<^r(ax1W2Zj6wPk&tlU=&OAQ7XuK@d1e8{3;Xyq@4Zdg z(}6smjxZ`#Evm*2k)y#D4@kIrvEQ;7ru*94r}A9#2{ZmU86!X-Rp?F;@AZ!q`!Nlu{MXx)jtGwL`9YckbQSL+#i7&o5;CbN zTnzh3`lQS$++h22ADGiN*0Zq)E{l3RjEJH*NU6hRrHdpVNl}4AOdxU7E0v*ND#(2C z?L9j%)fhQObu6Gwky@mUMjs)W>U-$j>fxYw3#9lru1Smm3}-MoAE48jqO!!*R4s@v z3X$Fr{p2mD6u}Z8aJ@^%Ub0HIpxMm3?R6S+iGn@qY z?3yH$hj=I<_`NXEJ_tm@{jeu}Inq8Qs3QSSEN^1h5;!3T3n-2KlO)AV5k`aw1~3^| zp$PHh=v~Q9XYj7sBEQ0EqF@U;c$=}aq|CGU>PYPP84I!pw%^$_w@4df)Z~%`BI8-n z$Dr8nF^$A}a|+4$)V%T4mr$cZV_cd@|Yk8_cL<-OGPa9t;ls zgbZdxI!_4&k`w|%BV0dE(kPL8!PpaLm|89%KsYFmN*E9s6Fp;ac!_rYS#Kd7KW2l0 z{TbszHb1hb|23WS=Fpz6K=die@4EBvjdPk0Y+vmVf&Zb=*EzqltiuHYTa{8B zrp6-aeukSr<3tO_SNd0mdD3^$)#Z4`(48_~m*wcEAXHQ$i?N;U(s_sa6cb<_|MKCf zSV9K(&91Q9GR_=!FK2|&?PL`)@@vkKZ06w*9S^+ByV(-zDYp$Z?yXVHZJAy$>*D76tsq%^@8Dm=JgLC~0_WExA{KaJKKz|&d+#A6S5Jyv{-fx7K_Xw?E1Htbwb)mXLBC%DJvaYP{~b~y=?qK z_PIeQek@g*4tnNJ$u)DWE{#iL2QW8+EGW@)E37Vqhz-aO0C{eqUTSIW@XF^Tnjkd7 znO-ilMn$NV;uw#p3xw0c^aty*sNOK8mV?;Tazb*umyjScBw6iNXQ2}ZtKA8hf-oWQVe{%79mYGaokQo(13uR+l zl4M~v*E|u9zQ^QHu1i@!13NJb^`1_*l|}U(eagsz+MXjG1v}LC4d(egbZ9EG$dLW9 zplQD;W&2Uqvy*AxaHZZtM6JML%&*p5GVynhSUBvgz6uDRqaHgb2BR~Z>S7pvD|U6sv{uS+< zvyhBT-X)^vWA7G+)~~3vl_LzxsL}iAxomO-2m?mCkMl~H|@|zG@^bwpwX?LmQ4HR$^hYs&S_V-5$ms$Kfq8RN~V2XU`mo7hIuuZ%?+~Y}>>wYXu`HSv1fTr?L*6fJR z&@vH39%=E#q&i~2Yt)uJRS=k#3hACV5B9yjX8<^uTCmrYz4N9f;NU#-`u5)*$~D;9 zzT}!}*2ct!jsEl^3ZiA>DMtyzKf3HU6N)+rSl+VPoV-~G0_LUBNrXpibuL1cr%&g9 z@U;7sPOV@q#H5Iz{Q9!}*pTB6)+~j(#(H@uw(ebLL-$m(E*;40?W3d?0kW+n@e6Xh z(&zai$9K&$qVIRZMG^f1c= z9E6OhMh|jl&>zWkj$m*l8=I3^isj=gnj$99so@=tMsl&E#CxZJ1N%t7ao7)JHvnm! zy7p2X2CX5352!18kpHq^Uvvzrj$tD#OS>tu<|OOweB{omlaq=Nb%D+g!I0p!6Vab# z5mmBF<-d_y>%l|H!aKA+y=SB*5p ztGAJ3m%VZZRAZhc-^2cY9G|Y#X@+|VonODY=@Q;>{y@E}Ls_99 z;^TS4;{F7OGqxDWA1CENT3k8@O{88Q-EQ;@KS>f)pR(|{!#V_Y8W(Vbi_P`bz_~ft zRmFu}d!+*=ncHc;zrOxQEQ5|kIwca>jnBznE0n*SY`c6u8+wVju)L13czq<&J{L7F zzJ|2{SHv#PTN)b9wVMSim#lX=VZgNW#}uec=sfAd5_XDT3ky7TfJ@@5SF5WEofi8weCk?u$q; zlV>XS1v&r`BtBy<+S!4Lw918JE~D~PbRsDUc~Kh01F@!Lqk?wgYPR4@r?`;6rJX;W z!~(;ZDbZnC-Q91Ub71%rF!<>#`mv|GK6W6vHq5R#vlx2p;8EClM3xa?aMPFer5>uc zl$pW2**LJ=p^F-&OqUo*I1DcEJVYL2;2*IA<%~0wGH*9PPaNna&nGZ|yaBue38bDRV z7X$9O_#8XM5ahn{*pM4Tc>i()c(|?+{lFnN64oa$da(N!4{;~+?KVI*4;M_K!1b9& zx1kj#wTclZy6;R^XN>^Qtw2rGj*20{%K6S8F&gp78Ebf)nCpw?6-8X_=|`mGX}+3Y zcA&Pep0;{EOTqwznP4fmX56V=Mt)!(7k)CXg{_>vT5dE-tbQJ1KfcFK9|)5OZ)}!N z(iqVV7u)|n-;f~I=$9z!YPotsvdm6mpT&+J&b20&hkib3vL3itn&O>aZn*{1p?X^X z`V>#(WEO|M1_1h~Mo=`mq}}YqCzWI%WhgGQJ!s)a;41rMM&CYI`VVY|cqk9?PO#}I z25ZG+wLzT(ksauNh%>{0C{%^cZzWB@TaU*olb~u~ro*4%nhu125(Kcx=Ydt#BE8Ta z#Z&W7;&O;=wrjB-cAg<#N{BdCC5Ee0$(DpAc^f2N`m)Jt$QKpA!@Fjo3T`@T)>K(0 z4DwMNuMV3^4O1}IJF6*e420~2pSomd`YYOi6Qw1A{%DVZq_;574oJqP9T}jWOiAm_ zPM;;8jdijmWNIddwH4pOric&qN10AZCt(aVbWIyJBM~NQUyBH1lO@#qmat7}#u+Qj z{yF&b&&)tLB&1~OP_HYg@(&B3KeL6lBbP=ksZ$d`zFMi{D$GE;2dBs*24P2`wy0#0 zX|eQ}H15Sx>$2YF1%!^SJ<-J|$+n432BD%wn}hVgI|MZV7&h$YD)!7yUO-oUC$p;z z|H_NJCi=>E>y}VKn8wVuxY+6jiKa>yKL8^Etd(9DP~R{;+rw+o4aqzCANQFq27`%# z3ithh2FScEdI|aROaxs{1NPecZte+~GaKj7Y8@3Ng>6M+$5}Qf3CUS_$3Zuxc3Y9E zl91@njKzUX{EL>?BNe}Upv?)_#$gF&OPN0eWgjy-(@cy(4T9KAM@brkv1*H-&WcRR z@Q&DE%r`q$K~4$x;^K8FjJ@-%#pZoB-k^{BlaL9EP$Hj_h>>BCAR3jJ$j@}6qaig} z^C`Y}ItU#MLg(xp_^+w%dq4<)KcV*}1mw*>k-F6AW%&gB*a0mjWQsc0;^cPaL!|n8z z9enXvtgHqwqod!ve&T&$h)c1^Z)jgOmid+;oS0qH6?^KKuWZfvE(;78+7u4E`H_}u z(e3e7!lE;<6Gv)Pid=8B8Hgu*dAIN^q@pe|TWl-1x4d%FWp#R6R!A}JEACo0MBH4}W8Ci+%pT;5;VR%h54E9#K( z#Cn&z4%IUoJSRjZa+jV}J5M-9TCNnDeTVEF@}I$?o(9u(!QIc(#?7SUgAKL7xHbqA z4EZs7bYT21lHv32QckbG;kk=?&U0TpetC`W^wHUba_#Rq5*Ue>a^_bT?nz$IfEeeMH%b$#-8I8G;BEqF=5K~YD?ZeCW8*dI!K|L zyte#j`GgWe?IlvN-JA#br0AFlw0ud&+&=#Aje}sgEKp-%Vw-5NAb#NKL+Otsn=rah z2MG(S$vj;ZoE(&c)Aw4riA(Xex*xdm%0TRqLL=k*NMnhaK9z5ufj7^+TXn@%QicVI}cYxO0zr;)V}tzkKYvhoKh@ zWer8q*T^=RdAv{`dBniIck=D3}4wtHTKCqz$(Afhe5X zhnfGGCp|Ef$sfXiSf0bv;XOvVotOjCejEf|ln~9NA_py}5w%HRpPMqOG(R^f8B2Uq z#qs=1E}T$(A8h`kk_uE7DUpMigCML35>#DNBZUOMoYP>bg4B!@I*=c}D|38Y5h6Uw zp~o?HAPygGyZl3{#%*Fwv59_QVUn~t+Cm;GuAc&To=O)H^G6nMsqYSbj$#RG@4HHu ze%74=;^!0GpiPx?)RM-`Y!sbDa!bpVhQkj(%c_ERbAsj4>&@dL@UudH1+z#Knng(H3~5`9NSpbisrTjI6iG}9Tlb;X?+LFEbEL5M;^{Bj;+j3Hr$A!B{P@f0($0c6As(uU0K$sZ_V5uKj0_!K6 z?<`y3^+#T;6=&bC^1uM&IfaY?1}m(If`U{SaaQsxxPYq30#O-|q9F;qQ$V<;{wXJw zZ`Rv1WiYKrLx5K;_61hQwYT!Vtqqssz+~$;?4n;XMpQT~e-VfjR9n$&O`ViBeJDgD zjQ6?Q=G8I7`8NjTjB`Eu+bb^v{FI?);f$P*HrWS#uXwJ@!ETBwwnDJ4^Q8-0QH;Ix zLBjI&E$KVqm4Lv<5jZ$mO5e%<^r|&-a!$4pTw3T4%u@5?8(Xa1#r`75kU|9BkZ2Uf zSZE2pCWj!#5=O`q^507Y_5?UG20{!wjG0g^h`EIA%*8gL*x7Uc@j2_QAYe%}`t{g_v#C_hasL=H1b2L?oL| zek(T1=F66-NL<#SCQ4k$X{{M+v^Cwvkni$-+Ccvg=nI8`TAR)FAH?l*s4tejuqQu< z`@53f=FjPrrtzh>`2RfZ{~Jm9lZ#O#j41A0AvfEyz$DS}>2vG`8tW&ZgL%ac)!KBT z3!gV_!xv(_bZa9!g_|xWZdT19fJZqaG2Rw(zE;b z)cn7Gwr$#nFfq!00Ep369gB8CTzTpQ-MW$LM_-PkaQ)}0->Q`ONDU2MS}Z>|brJYs z^OGISr;?H8!!31f?MNi{`s@gRSvU5n5SZs*oJyrgUorcuU_sF^gcGeT_>5UZ*!2D- z@X9^`Dyb8%@4)C!Ca5;3mzSg!|G#TMZ~>&?WEca%4hWZzwch{N{hHx`LJD%Qb%A{lPQ#d~1WQY#Y^ZF;^We?SEBJNDYQ z96liWpfK!5PaBhcC&TyE_z`A+{PuRz9wcZCI6}eAt!*HV?{0N30WwIuh-wOb1M`B4 zxWFDCj;D4500*P|Z)5}LRFHd#uGXsf-@TlHgKF|cwG1>h1LR=Q&&iQkse=1&AwTpC zZP3sC8I!yjTD_&UWtfV?v?u1~zLyjsKAx3bhws@>m4ARC>u6|Vztmgzo(rCKYPr}j zJ|IOT31nd5?HFYN>G2<8dUjyxK%VXJTnvpEgl9zHCJEy&9wXjd31<1#DQZb&KhQybtKzS`GG+-Q{RMTkvBK)s_k2`cJdmB~jk)JT zy4XGz8$s2@CPOqp%t{<51$-Tx4?y})UP>1m!5A6J{?q*V)6k>;j;&~iH30%4sowwc zfW%rbG2EC_2$Z7AZ>f*A>zaNzf7J20T)@S?+z#&B>}Y<8)RE5>CJ3*zP3TeEMOe_x zoy$ASFLX6|nrXZrX1K8*3HH5lL`bO%$}ur{`rvMLTMw^r)Iq~libzbrbw8qO_Aip} zJcq46MDV*wp54Ca7AgE?9S`Z*%PsXyye=-1AEXahy;Tq^%3Rf{{VH}q9BFj_QwG-JCxR?3)aX9%93lQ` z#F^b2$QfGrOAq&NtfR3rN!DPIpPopcB9h77=%MFilE_^sq3TgK-zW2DWQSVVkCcgV zI&eplgTo+E3Sz{SftyoF>k+6>4bu7@vBC5+VLLKzk0i&v$6wXOLH-&Kg!3y5mw4YJ zXElB(mrjW@Hu5u-5f5jtM>_Stu5g=vHRs`=o%G(oIdB(cp>+kxTRy}fLe?*^>C9P! z#pDmM7L08*r=2Tm5O5Rg;_HUJ!v0I~y?1__&JVtf4m|%(c4B=>F7#vqxQJMk%`S_k zEn_a03qaF*4h`Y$5lvcXofj9+fcTgk(m;CAq)JLmb_|B(Xg^zV8c(!}bfy`>czBXb zVD9%UOWT~92_|Ia!42C%I5^(G2MYLJ&YqNho8Uzcx(SDjypLbCH72p7f z!T$C6MgV2!x?#IzeQ1!6m`9GR)A(b&#v?KoKI89uqVOSsT6PU0lwHeABrQ<6^U_MA zp3(ocNJCD1814Y%PuKq#@@s@dfFE4t?-mS4 zzXgvaK_b%qXmCMST|MmAI;Kx?XX)ivpV;T5kXUo*{@d;#7qTrJG*N``c6A^uau$Tx zLVa;!&R}yGpCCyU9;)rwZC%|#qWMkX9`EZn6bql)|h;bF-l_NJZ?BziO;OKVTi z2UaKk4?E*CG&6IB8^Ty^8B<0LcoEK$Zs()Vsh1xG|B~X5?7@D4J#hOLzrEFBFSI|g zkRJ8O)Dd950S&p3UP`q@Qg|EhQlshMVwiYhHNa?#8#fw$=2I+f?MG2K=!yuw^i}b1 z6GgTJguMMl{4gol-}ei*5N59b1$#isIuET9v9Hs7)GGShIs{nXP?4u%R3}7H*)?X> zHZ-<3BeaHyVcOo!?>^o_b1mE6u*cRB z4v7P4n2zdAf2bsVtk^NHh*i+ZK0%ACG+sh=5m|B7AA*cfNQz$Bx|ke+1YnSAZfM8y zI`M7*)K!fzp*rgJ)nV!&zS=Av*7E`q0%bOFudch+(qp96RpSD1G@N;Ww!GyQHfu-)ifK^cj>Q#9<^>vKv6!rR|)+p>>Wekfzl z&RId2D1=;gVJ=FY&TSz#DK`TCO90;AHC+}rOUQ+0!ylIgzFN5MiguU>7b@dHpzpv{ ziRg80`pL!K0&~(0mv2BM4pQxmQk&OZD9#tB<`lMwD9@h@y>zVZn{DsEyOnwgPfT$1 zJN&or2u2i|ZeL;U++e;E5W}OyT87>E*Oi>gdADXz9ppV+X^pXWUk=OjfjsWoaT{iy z@88d&G*DCoXa^0<+zri*lc=&a4w6VRBDh39GEQnO<#V)>{N#mZ7n-*UYxu2Az_WJt z=h6k&3Xs)oh@RUEPD^2P6TK4g1LcGg=zB9=jAzsGxvv4>7E~k7V;>&{_;TIX^F8el z7`|>xdVe4B!b!q}1=|h5tQEBE(Jbx#^FQ(x1M%EfLnz#HrwzI1_hdIR=5YAFmP$aMeRb6^-wu{OuB{e=eS7l9&-z1>`8UDsb8`hBVYS|ORQ7ryd4U%Knoe-BjfAuc z;N|$Y%8N?z%S6s~;09X}0#2(}KzK^hPZVr~4^Sp_AlmP%4!sTV%bE*O@>ZpR*rGl| ziqTE<`J4xa+qH7~zTQ7Mu`fg+?c9f47rFS_0wwtP4r+r_DW@%|kp4yDMSQRczh$^a z)f~V>MIT2KuVVSuW48v#v$y-J1OFhHlSZQ2A=y1~nMA5TG(-2o^H#%0>0%vUx!w@| zm%knRyHY8xiS>%#1dOLitRU31%Nt$2MKKT<&<}HaI!Ay?YQ55-i++vl6b?=F{2SZa z>o_mz)P`klJr-FLEEYnzDZ+9qX%)9?A1A#!b@~+kbB2A}@NA`YuL%)cO=~H}w@P`d z^N|3jC?gIoLdq~}TH))NgZ&s1>z)tzTk{0c=TEA?r0*MqKLq&yMqxeS?Y|enLTvvaQ4VfWC-tctbDx%^4Yt7jrH=PxueQg>3Q6WK? zl@Uo;i@Id+qYPreRQ&&mNt;GEDk#{lx6(^U-Cn)VTJRFya8&_r+?%`g;9o%y5bG>W z+|BogHp2&q!^yd{m$^pW14LQ#{rnT+J@W#x9{4wM%DBilSWXQ5)3F5<`q5X$MiMT^0~ps+4?k>p)HU=<7=_Hxe?RY{ zi;Z$Yb9LcjYtd&aWkc=un{9$P>vY-ogdg7iUdj`=n$f%dJRkoHeXAYj(pz_q{%5A= zBIRl|>MIEdCvOD}AKdwzG{W@UZT%#h+5 zV|sF)DE{Sm(mn+yBOX|{5D6m&({xf1R3qLNY+%IIchDmuu?=7=K48+1sd?vzZ=rx> zlzKQJ`<)*dMUiv`^eASIOax< zVH6Bcnt;9uG9s&Fyhkb7gR?Q%S7aWw@xTnyvL4Jn1KE8DmvTQeL7e7nKbO z*=y2|B+pPJp$#di)wnO14Ts?kGpDD)=tD~!hCb+7@f-ta)Zb!wlfAz1WBZ=dS`pCa zhkSU6Xwli16({v(;p;lz5~DJdY=^}g5z>~Uxl+ly#{u;xlo6tnj2p6J3v9pt*G&>r zL+se%Lm?j1$glGx*|Z}Fep6qC$F)yQBZ4;RZh?8fQ?zGcR!U+4xXbVpK;%?ndp3L+ z#4y=5!cGS5G*hg6yL{CW2;fdIRBphu`#;?cl7v$<;AMTGn$Fgrw)r=VF11t=nfS=} z4G1|qhTQMQ^+dHvCs?P5MEHtecpiBInE6S?_<3~ySDKz7Kx!M(e1w*ONAF^YM*M#4+4nF^M>lUHiH^+E3 zRIiSR=-OUY5gOaM=y>s$~eqb^-G`lZUcDbW1;NvA%yiG%I=|w9 z13spJgRXS462dT^Zm((izA#+*YK=z4pjG12>&-@Pz0fn~C?X$u3UeU(sLCNfHR`@j z1bE*`|9EOR$W|lrEAy@1?I5VmlKkY0V_EXy27O(|nTu~^xcHv1&M@4p6>^3j9`v#@ ziOt4qxqOqC_783rrH;cQ0|mSZly+cmbyC3ns%aE<<2*BcJ=@c`_+xh5I`e$Q`Xyug znU`TJ00&Tx0bZQ5;ABx(L6>C^@Bcxcvfi5*;uRkcsh@2ldW4L#W~TZxic9vJE~1y$ z4S#XO{MfNwM}SBWkU&G%Pg!U(bo;r)yGHLMTVKW|d$ihhADPJzDli|m9Hh#@;)7em~go$FWej7tttx?U2 zw4kTX$h26sa`0Y{@pbqyZXTkuJ(h>Zy5i@m zp9TGe5m7nL!+vT8vYIedQlASAOdr67pco3OU!x=vQyg{fD?~1nb&=3fmuMSk(y4}D zr!lN+0BjX*Nab1&d~X0hcvxmyEV)|#R@nA(idV~qFu_N37*0w0vn(-;CcjmwQ@RXe zD3}Y2Ktg!(NCDsKj*btv^Giri^)yrwi|Dq&(B2<5e$kM1x!EBKUCcgS>^Y1>oT|E- z4V+>qeWv?m7XgXF0-ydCLIG5T=8=>A9->oRq{}c91V|oHx9Ncjw^E+aDn&`9Bg-H( z_Qk7FcCbrO6t=Q6qR#H?cnoNOGF@M-i7vaDyj9JL{H?k zn35P}EmNm%+sw)j9vxwBI6dS)#zF1l@mYx*Z>0b88w#>-A!sbiK*W`hgF%)jCXcxU z`22N|pT|>=0yAJA9x5e zTflz?KQ&-<_K&E(b`#;wFX-1`b@89SW6aKgM#&7uSF@@xDv*=CpIu1pt|s?@{>scL z-Gs<->J{^eiEm6Y|8ppA2X&B?J^ZUF8LGZ}01VytX53=S1>^zy8 zW%_`~&xS?AGkjCgUAZeI5sW+&r%vB<&o*)u!)!o%)ZSOF8+HFD3xJI;YA=iAJbD?2 z){eH-&L9Ruq*NR4qx{cqt8Zv5hPZr^6AjPK%>~4M(!cj*k&xZTJ;1C!DT2Lt9`eQp zpe_>p*)+yzL*r8s>+o)K+k7gUBaqi!M??(gwI_di{Fel}v17Dy4XSFYPgwTDhBS%_ zH?>7l6<{wJV~(?QfnSjHEl6uL_d}SxIke=FXz8lG*Jmpt!*+r7W9;!5GK&xkT7m(~ zu@sZ?m1s7-g&Zt}N)W|_w#o3*ei$7-QZ|>F>zfL7O+R>zvIjAz>9#}H;2m2xAqjmL z?z`Y2FLzweX+%m6QUua2>|UR);kJL}W58X$AmG4iCD|QAdr8Y}qzJ=LsWgf>zw5*? z(tg;UJ!piymZL$b0XutLq1L)|JgS{CAu>8=UFT?L@O3VJsyWVp&8)6!aDABi9PVSQ zd)3oaM&I4L&W`WG+fq-|>p-Q_%3+qBLMN0aI)`KoHxv7GmwP-Cb+ zZ4(QkG~-=X&q~}K-S-PX?2UKUD}ww%G`n8O_^sn>XHP2@qV%E5Um5vB^Ruz(I6`Q- z_+b`TP3a^;O!NT~!B21uCg_u|kTNU}3ew@5lF>&koBTK>mdC*gRV}#}Y^cxPF$8gO z^M1`oBH#X+UPnD(aNc_|1aZetRbF9luW9ioL<`y~+nVytnuP`ckAlpUME)?!tE#bN z-Nvgx5z6ZJL6+yKN=y;-WSd=Vz$p6|>yiCXn5P2PPTf~M5yE)E%d8&Vz7`CQ^7?Wd zNUpx{ml5t)1ye|_6&i~OS_*H-e~G+0kT!2RV=J4ZCr!9KWGp4ZXBGZUp3xm$Z^tp7 zYsYeezhjX?HOPHAz-AV${X(e`by_k%bOG`hGj6$eZ5GZ5!V->o#Od6N*a6lit7*Ge z?1Ez#y+?*%eO0OTThRjLi3*)5dj6!rx~bk=YGtGUnXok^r}{n+lrvh&u71a_m5##M ztKD@ijQxTEn$q5^Z0doYR+7-bCn9i;{c>$C?EBhgJECx#9aQQgfRa*XU}l|C>!8(f z`0r?tsGJwspA!0;I8Q)Sot=Cb?1jWP%4m^{vITf}JpC*O}UPL&9-kz0=6Y~$o!9OeThTiaUm&@O)yiVR8 z{Z4`>4@J|1->BHdSc$K_z#Pm)H5`M==0E71LRMH^^i7hIq3i+{8vz*f$N=gk-WX3@ z?b)X3aklRw+5_Y7dRE=NPj6-hj_PSWzL(znZOv!9+n|R|0TAVTKA0&=!H{AQYT^YH z*0;m}c11Y(1foMG%C`4nRA6NFq+S{M(4y!ilvb!IU?c#DtMl@nrGnX;?ep(Gn`(<% zzqPU}{^)NWxaF39I(OajnSR_*(7N*9a#MLmta*Z;-+w$EwsNd~M8+@9%xo#-jY=NO z8xq>_|LJ)ndJDfsnF}%w*|bITr>xDVRIc_N-hV@S@%^13)a-PlE*86a#90tiKfh!L z1U$6oqKtTcp5WodRGIo&vd}j19#Nt=L%ja=(AtCAN&joxHvmBsU6MniDk#{2M92Xq zu&3lWyz70GWK>w*U2dCu=a4t{e2(!;-8U*{NU}YnWUCVLQua~)9bC5?jOQ=nr?0*c zXX31&Hxl1f(ynf{$BjLSp`2+BQ;l-nupg~5Bi1#JuN9NISGCk-8(v&9iMa3`gWu|! zrmq7Bqij_8lB@z2-d5e|o+(KReipkhfTb`Td5FHByFCX=_=`DcmI# z%O{WXJ>4tnxZC(8S*SEKW%J1+X5;gbEKH~Hs`5M(S@n~ z44TKBWg|vyQYrYAl|NmNsw(Jzc2hGwY)Ik5k_9wGIl#D3#ED@GrO0reRM{my3R){T`Dg{(SUd#Xh_5cS zC~n%XAfq6N^@PLR@J^JU?t2Pl{~`1kmfAK_AGVJ7td}Df{JOKB>#C zLomMQSE{kz8V*UebII!RvZX;O14dP_beYFOR&=qQcd^@HObHyJ;E)AtvmW4SW$#2V z?L(r*l#w8lDoKzbwnUd#z?T^qDHfQW+TU?Y)?Q|Bc;!d*iLf=($-z+9Ttv)gFn5}y z3Cx^ZftA}#`VR9AxD+v;&tn$P3iv8@6Q5*5bb$89SrbwmL$R>aaxTKtU z+YXs~?L%I2#?>)lepF0V;&Xq$J9Rzs*=l&w+;Z0#A%4O}!vH7C20R-OintCCHT@l> zlU$p>UC{7%p{QxqQ($S8np1-5zwG*eD>&srmiy~q4+*i$l$o;ulz8}ZwrmuGj%I=t`(Vj0fLy_i+&g5?b*wZ6S zV3HjkJKd?v%@!k2j4kNrm;z{bgWvV>+$8O6g6nZA3JH|m&DfjZ*tV>_#t@);_j7@) zj2#oTK`s-g^s7DN8Jjw?p!DM$`3IgxOZ>Pj1mrDP_`iF4gLBe zUFdC8SRQs!J}z^A>+NU%p4lw~av4+0!Z6Tf}(GY5#iGvmbr>^~yNsogdHoZVKOIIKAmfyg)$Ls1AhW-Q%<)sxd}nBz55}Cr zxuaPp&hx8Y&0X%R(v98wx3x&n)z)%=)U_8)+3ooX#q)WG2HMNKs4}1Ard{ddH2mjh z^bFKk*V>G4R~1hI@2alW6A33nGNajoytSEy%?vjuM+eAuFZa3p6;sDtvzPRnxSLEO8QCV02g}P04*N z)>^3US^7LD^tycveO30&7$J+X7JYq+CXZVX@{9F&0fb8@aANfzmfb2a@Q3#5UK9Pk zGGFcgAl|<%7nIg`nlY!!>+5?uOtXCLi;YCCquBq5K>a;1`7bMd*|uPwy!5c82aR)Y zA9i`Dx01V<>HLBmDlN0>$Mp(W!mDjk{;S&v_ycK;K<|eKFCQ+y$woF0yaUK^j-{!*w(G#zi_9vT$;sZ;zeo#HhOEVPX?8=c{9P z-Cchzq3!7~<1gj!P@A`nf_Jc|jm_~|5IQ)I4!(%ZKL;JYCr6iL8gBijvi1=Q>FM%V zS!z^&zk9FWZ+{o0Mi=Fz9)@13ni2B#Tw*wO9dECfqOwH;5+)c$PwSa? zUtgD|0w}O_ave;SF^4?g$?M-e$W@E&Md{R}zJwu5E6pBGApJjVy>(cW&HFwK>w-&& zONXFKcO#7~-6`-7F#^(v5(WbeD9z_v-U}p6~BC-v9W6W9Ock zE6(e@&Y4M4;*@@1>rfkKDZnSMmo1Xhlx6rLStb1g#9AfWxMhsx)=D~5@9Bd)K>?|g zj7UT$gBh&ydbv?5zruR@w*HgKO-<|5V}?&8@pC`t7_Tkcl4`}|E>@f#`M4R>7x(K7 zzD*_ZwR&;hUhUqY&3S0+$YUyQoJ8jOrQBS;X_-x?OcJxO~a`XgYj>E3$Q} zCzHzzrV{d_A)&F7QG-lHAwMqZiKG$MvfI!W$@r&aaZa6Zi|9u#;l89e4 zlOMF}8XKEVa36<^au1ITel?)g>T`(PaODVwD}xVJ#hzVw?o{Pt#$8>lY1(LF6;@I0 z?W(RE$7Slrl+$ntx^8e$fZ}N2*BEl_q+c1*f@HadW@X^C6nyT9Z8c;sJ3I8!d>RG} zRlhE%czRT9mkC+R_%P8@05dlLJ#HMh*^xAH-nF{lOO1vOAS(-S-089W58pZ3h}}lH zrW{|@Xzj8pTVmy}{flvU8v!@o`VL(`oJh1W*JS=2BXV8ewaOtTCiOA) z9~Z88{75+PdMmfhR^R6)Dj9yq_e6fLms5WYXHeLV@9=XdXhWy7JFe&3LR2zO$ld!F z-6J%EdP91b)=v@iz85d;L}nl9N$c5Zn~#qx+-wv_Y`v-aM2D1bPIk`$ohAuiEVHyf}Ed;e!6a}*g-}(t%G|%hiOWY1*X_-i>1pv%x_*K{vk4?{bmtk8Ixw z7wh2trag-=`}O8UtGEB5cBj$Sv)N~`dl9x}e2R|55B%~al`K9$%NE|KaRW z7^Z3%*vnuqzl{vb>x?M0`XxJD67ue~I0uXQ*qo1De58i+YT6s*P`yLOGeSw_fl3ge z4RmV6O*Melke2AZuakP{H&6RdnCrP z@pVqU?6NRbl~UVxK#*1|HTls8CO(YSBc6hgr6y)$9NeHFeJp6}!bD0}g*@bCnLeZ3 z!vLN4j!g=OeNy)p^;C?oKvIH&9HId=CHh9}K2MFZ&WlQ>aue>=Iy{RjpX7>v!n9LJ zrCk8Z55^I%X#gY8Ko=P+$Kl9@W8yCX5I7nL>U(4~&wm$b!iKZt8nZ3V@?`-%wDt(A%kj3>C)ra*=H#UTXvSQ&2hR0e5VWbxhShMTi z`X=8*R)`chYn%}6tKk5RiNQfR16aBNmUa~sP$E@YP>*DR#1PGE8z@xQ(h9;9ZX9`U`RMf0TfFdEm>LvhV1fR&%9*MWW@mEaw1RCLg|-7>!IbJ9XHsv69=wdSYDC^OPVVICjc7~k$w3T-Irm& zEm-tlfH;QQNE~$bqHVjh@o`PR4h+}h`u18|BI{5IOPR2}ms6gx1nVtLW-E8CO9g4qa3eL@YG8mbeOPsyWAL zP55F$*ZIF`0YHZa_5<42alKv{@t}K_y&FIH|`_p+k-(FTi_n8N*YCP&9c<`iCD1@|v_rEd^T*C{AyFN1u-qldUPI3w`T6yGKR!SE@VQ9# zQ0Q?p8KR>*_%w-dC|Pk@%P+Fv*~?d}O3x3Fp8j-`Bfz2rA$35GXZ?zgwumnO1RWsi zPKChrjIxtkvnUjtDo-==d#7s{Bpdk2U|i&AUs?;_9 zT+ZCXZDTC*Vi*fFOt3E_u`aSCS#!L89~}ZFaPD;?21zZvue$fwW-7@Ml22Q>e5d(( z-=E~%980I?Zf{p=<7HUiHC7rNJaq^U5J-TwSqGWA5sHtOt?x*V>N(||)=pln9=BXo z(F>L=B+k!ni#x8}b1j(hcCWk#8lY28w~9_7u@oBh`WOyR28TB{uk5#;V#;uoG^o3G z-ot;r9G;(sFQO#(*KFw!x*Q4{q&N8TavV6aK(a%vn1L*EOpz(@_Ht!GppE(tgG!Jr z&lxyEJ==0Tt_VzK>y)~^F)HO=9cR;u>2HJ6G9VluEdJ4Kkk?ADE3;X^KECDrh@I8P z$fw7Lb7&feP}->gxm@{lQw7{L76QR7*OARcWgRqh0m5(Gx1|HdRnk62UJ}9qzgbIL zcj_v4E!EPN#092CmgezlxxLooZ=Dz1Z$g--hM2-{1m=^oRWi)YP2eLVqt`MYa0Wzq zF-W?eSX3({z05t5Mzl}KEh?gxkrBd{VT6kf@d^f1G3Z7pocXPW-hsRK_Nq z(ZMh%IXe3*LzkK{mRDI$p`nS{`QJEjM?aLeei!CtT<}v`e8_u%hwc`l7F{G`g=u#q))%fX-CN2vW&gOx8~ZVK{N&tHEaxNORHrFe zIuviDMb~(=s^WUQY}AG%dU3t;0fO68IA9NTW<*zcJ*NKVm+IO+HV7R&{m@UHFM4?1 z)vfSkLZAK}>;jVAbj4FT!2Cw)TJE~@6FNHNi!A&dq3sMSn}h@{QB^o$P8DbSe1Y8K zithtF2Uz#-e!u@9FHdSZTBIZpe@4?aB^I)5Wgc^*-I%8l(sA!Ye@UI7}6+IPo#z)rclJe=V`Om*93u z7pVbEmmw>t4g~-Qx*t~4fIi+~ppdYmpyYZ?^^sdyB_!Ie{F5p`rgFW{)9;E*NFX%q zBO~k=_sFz9_3z5|HTITiQt8KXz)(t+6?w&ek)xnUsQ>YfEF8H3mVdnrK#UuCtYzg4 zhNo>;7Q;326pgu;NjBBda&}KuEGf&wf>I%Tlphm#>-th3KhV|_IAYAWVba*!}6KbBLbBVMDK~;zLb#*xN#%j z-LA=}@~O8^cvZ#2s`B)AtbpQfX>oXy{YW<`M(i~%UbL*!^4q0BReKy|s&HdRd$;_J zDO@0)hXPEleHHX=0v|{>B}MZ#rQ(Z4TbM=cA+5JC#|v%< zeEy#1TmDY*w}m)~AG+<&Pqgagos4ouXOTv)@rUM_>iKBMW~&m<0Q&{zmJQ1di*vK= z6D+OJb$8c1?c!7fAd}u>a=r_bZ$$2OUoetvnVfF?w#4_&(|wo>c!%#j&bg^EAJ6u> za5`JpAfKx3eZR+5>FLz)Vac@xz+P9sN`|OyY;OD+9khrnd#;$zRe8wufhs5iA10RA zPXczMlrhof4$G#hH6hD*31VThPS3;1Hg=S`W33gGlu_h#DD#-j%b#N-DYND6!%Bak zu&`@Ue!$)Tc&>zY=E*9Hr!(fC;Qbl;_NbMMQBX84C>n>IoyTO8!(3ZSXCuiEBeVPW zJ$Iz%_04tuq=i}<4Y_5eG(Y>k-@3^Br=pU}kyJY0%`s`!)S*u~KV7sQdfhlnu9-Lk zby_R9?W)`+-;Dkq2pSoSoWDBvtvVuW@BB3Ui=`e&b8J9MBYq?uyJw-f`69?Zr!FQk z+#G2c7m3A}s+tlge$*6sInzqZoVeX4Id%7M_It~QesmmI6eT(IT-l*&vYTt;lU4So z@)11(RT9!MEdPtMHO^Ya+xX_}jYw17MldjPBJ$OD$}eF|X~R^Y7g%g8c9JG!IAQ*3 zge5j*T(!iOLOjHpY&Zft@lo53ACetnozjjKF3re;?O;$(kmLLITxa?_qfg$Sto<=n2xUUx?;#C4^-)9$r5AME zoPXmE8i)je_}RQN)#R>?Zd=yMHT%Pc*uDH}KcX!Cz9X_GH&0#hNU!jn=hVI3g*#wa zJQ!r9%BlF7O&J}rOt3D{etx(8PYSx?y_E?zVEuzZbx zD`HtI7KF{LDj51cQ`~W$UjEK{yJFzIIL1DbA;1zU+<$+&RvdBl%6@pBuKuwmU894{ z0SX`g`IH#~9sZyG3FLKQv8GUGCd5b!?r;-3AEY4+J`-|Zaj!@v!1Es*bA8z}ts|da zV4i20O@y!RV%pUk10^+EuE5Bxg?hL=mv}|%Ob%96MaB-}Y(55c_Dp6!{1}qobS^>OYpd<;{f+lFp&Sm4X&sbTx`_}T*qZ_VGf5&nyqrg`4w?0Zej$@|s{4T3X z4CpxxxdJ^lp9sHE3?vd~kW%w}iHm1dlSG!a%Rq1$b-h&oL8~YvO_&9dk1B@es~8i#KNJbA{AT~Jy`Uka39XrWKVdg8_&ofI;&p&0-D<2`NhrXXsz{d2 ztDk$A#O@sa^Otl^b1lh@+Ns72qc}ZEIaL@YOQBG87m1vP$&96%Gko>zn0Y}NDEU%% za>AF3dn5BS0{mc1fpV57K<)Eq$xQ4((%e%%-duPfX6oEw96x~quvij95Ym*E1Gm2Z zQf|Q5F}u8NU-CBKJ^zHV?%VgJX`~<*#$20(H!U6%OOmraad=+S1G)uD6kQz?bXX1N z0uY30;v+l`;KTn(-NOV!pmM!$DVRW9LdpfLV?4r|%TmpC-_hHcZ~M6yPU2qPw1{~d zz#>5MMxfBuXEhu?3pumpSUz3ra!|&kP(!A2M13Co^~0IY2js}U|B((#mVYbijPdUP z(6@Yu`)nVwkI8U>xYiJYHjJ~YBiAA*ksCOetwB^&;?JcV5p zfn0{1eZjEhP>y?1@cdFbyk%}yo-^+e_$!c~AJ!MiX%jS;K6S1&cHg-Be z=}C-na;D9wq`Sh#r}5u_y>5WG&I=%XI}Y(S5t|H;F-f~+;k2?^vw0FQ5|HEVj)Y0% z%F~X=|M>(SIMOWgj&yiXP$!CE+Q;~ERSDi^;wbr4pn%?h`UUnx}Cc>taHg`$& z8j(Imj_ix0%iTyguJ7)@hv?}45aaak&rM~cY2elw)8K}}KSQ9c@mw{yxCkt)2C-*d zp#yFs31Gg*gNc)>ZUsAzym~SZqn|W8JR{tCO&Z_^B_p^bH+%UvGy~SbMU5V7rZb`= zX!=MMF#cV-%C7|qy@L!n)gsSHE4G!9JEbh!eGg~MXe*s(M0@rIV|L8Sqgm0*x^uTA z#KIfQ+<%)Go%KtYIRBO-Tl;sPoI&XMWSNzUQxL=%0aJf({4+PDUm{HJ0F%eZhpA{v zzg;&c1f?ey1H}--gh@ETkPoh#hXDE=5F`CU*s(k|I%2Wl5r*)e6pFH8#211Rraqcz z>Q9m6RG>QA{pZEcrw15tg8@kEMQst5Ix$+-w)ymM%&>B8b6`q5MN8qtfI?r_UFKI> zT@|CoR~Q#vG~2KL+?xrq-Y?tVtr~&`o>eoEwTNT0hCNQdd_LX!&_nd1-PW+z(BJ=%>4jiny-fbzsUx{6Cu_QJ^uZ%g$h;1@vzJ1KUyEw zl^e2Vy%u9Y_3wbHoNBA2NFm+m+q_ISNA6wRNy*O_$)f#jV7_OXqjQ*-6pmJ=!gFn^j4|IETeXr|t0pb3L6D~+2Ax**D+7;PvUni zWUsu6VZ4~hZ|63$DJLY8^i7j`7 z1^chXh{*tb14b@+Z5h!gcVGRj5m4@@DGSeWo?y%Zngc;1kY#f~Vew|Xp_9C2pAwyY z^W$$4KlbW2qxX&t9rashr(MJrOGL>6c(k&a#JXDEr)JLA>&-@QIs$NK=`c7au(MP|wN0T>$Zzfu%H`tM{ksQWh%~ zn8dw~vadg7THnb%tKvCd_J(kd^S3lGi?Cuz>q1{4VObZPC`5{sbHK8q{M5)i^Aa3> z)#!4g!$tWg;!VZD2ef9=LM5Q`U_`sFF5|`WAG_i}SBb5$bu4wGLb?tTK%R~1c7?qP z22FAwEcL@C+4Ges(_5Q+=(D{>@8zqtH157=H4?Mvn35`=_sl`Y4?Ha^za3kGp@tY) zJRskPpsS=DBP_-r9*_u71G`@!>pGwA(?wfP;*M7zK;(-j7yheQI14q6_#fS+eXpb?+v$V&;F>V z08D7)aP8dh7uBCEY@isl=ab68<`_nwi;<&r#6&?#0%e4mNCDqmwU}?B`2~DP!hU$_ zuCHO${^A9{_C(*isUtFmZH83jm{e^~R{ReF$=teDMLvqKRWXne+wQi$#UvK)=9K&{ zTTWohAK((y3wcH4#hH`W`v&T12Foo4uD85{a%W6n*}u%|T74we4rfsJ_+g>x{VO)n zNPG2r{y<(UN#2y3AP=P)A7ZH-1cYFvW4>28bfCu$(%f`dwPi((juS#akW2g8plJfd z7Gpf({bGPJ)kG!O>;2!$AS?c6C;(;>V$=%NKN?Ql5rJ{xBig;?%1XH8Lx4jtL~KTE zPjAn240XqZW}B=(tzEs^b}kmeLxkeLZF~K49xEgx7*U+K%YrfXRHX36!%Jv9TLdHg z^RV;4SU}6$zYDme8nk!TKx+YCgEka2O7iVs0~4#{L?;GWO)k$&!r6dG3p{ycHu#*6 z1IIU;5GqfE&^tU~#CA~p%D%x&qoS$!t=LhstTnft+Q^}th-}2QxJN$xl*PmMx74e7 zz}q|_ugoWv^!OKx=5$>|@5wCO>9v&}tw7aLm-y=F>S6G|J;x8l@o}S#AJ&w6ABzF> z_Z!~W?#)W@cM-+U*}pQP0; zc|fK*p@ILz@GZML0f%XWfS~NEVd(ZT)r|_A&!9fnbEir}$_-7}`HvqnHOO{dxi>-9_!eeH@Sm{?IXND(4dOMoI24IS7kkKk8_!v^n17 zEAD-SIevpirpXY1*4G*+2fg0gaN$L2CQ7x*s%%uD};d{ zL7YF)HI6!We#3?wBkmKa6m`5c=)>xp?}=YOORIIB0Z0i9zVWe1v8MJwtqLCKg3i`$ zL(5YzgtU%Py(4M2&iI`UZr|P@p-P~Pn*jQC*}l(laCxO2urj~&4;(!MqYv-^&j9l4 ze%5Z`_}57YmY=hC>{v>CwSc6-%MiFEq-3bxUe-nOtED=GE*cJ`imKD298&+{Fb3zJ zeQr`Y3ryf8`Jf9Nmr$F|Jo!M2PMN4`g)8k$v`t$Cf+<|^w#-xz1w@!>Ok_CKXN6>r z(0Bs78CpRK#}-H|5FN7#19!8h7NvkyCRS^Eep{030nXTfx&ydKB=N}Q3z zE5MtswsAEQ5C9^kONHA!3_ML#%KWh;v#{^k&I+h6&Lg&F>iXOJWw{Wn4^lB6ncN4t zFvLGj#$UrHA5aDJsSxzHf+LN{4E3MOag}6f6G@#n%Zgdz{0S$SGP&EJt>#%>*%$19 zAHv<*?eM&SjfkfNQ9M2tVBKQc%%q&{14M~HZL0{h^=|Na0S5W%{fDbddoZES({}my zZt@5c<*-&Sz#!OS)|_8i@PfL2N^?!wD=b;!4dZk$8FF&z?51Ztr6u>Xxyvc$i}HCO zA-6Y=vT#4wXi^^68DKWJ4lv$J?T9kgf1A3`6YqGxY3I@FOQtue9OKqmkod8 zzjnxtCD;!|=I$1)3?|`g(#MvI>Z7J>uWC|o=%4sTq<>Z0>>+qt4vsT0kdx>n-dPC& zaRA+}MD3?cR_lSZsUqi3Glu%xKEo@z0Cs(~)W+=iI-Je?mx8%?uD zPoKuGvVf%PVvSV?A-J1OML)=TvL0uH^W1rcN%d3LS6*CgZd9%ue^i4CDL@_Bl0%* z9@Lo)WxvCe2a&jOhLX7T~#Z$JbP`rS;mtX9xPa@hDVA@RPt!(N(Nl>!xNtFps!Z) z5U(gSnvhiO2gZa7XfD(VFUds`zgJwHGF5g7+mCBp~#r#)El z!fVT~*3r>L@P~XvFZAIL)R4ePG;njWTZsh-3eam2R)!iAHU>4sZ>E?82;jrbokwk# zlvp4zj)Guex33{c6T1&Don{4vwH(W>HP&8%T-#ntMg_z$g|DZ%$asMY2CxRds#vjz z^v*8F75gs=z^)E`HBHnhwHMW6&0&U`XKHt?P@6^<74+M1_RJz$m@!IV)GG#c~2xY8?VQKeOgF<*D%-=2~ zbugp$LV;#MEhgD8t$;iY6EsH~^lhQ_ardtte7M0|O7Zf#y9l6IWJ}1qD9Vtow>hA8 z?iD?B>W-j$hw>6p3C&+cgZ#uy-_4dOz>+Xu7d?=yE^) z6cGR)QwiK*F&7-L252!6Kq(M~dsMv4=>Y>dQ z(84EA?9NErmIHXEege`r{R<3v*V=buU?zc}9I+jq%Lh?mb@a|P`)?f_IxElc*L!wi z=1pEDYk~Z_<>Ewm56kDaY*sKTT9jqKbHpdmwv%pLRTtcQbnp-&8jdPn?jRCypMp!b zB@+^f$8;kRk5b_FN+IW0qp$^OP?nk~^@g{% z=1YDX#;3IbF|6t4GAs7F^G#yU7`Q4zuy8H#gr}0gEdbf_&dtsHqXpEFN$Y ze|$eyu+#cuD3T5`mST=7d|({P!PKcmZ{U+n?jr}IIeN0kPBRQC0<-aYA)=zqB)0~) zxS)^-aZm#uKnlepsiaF}YTrX}H5LgJdUF`_IY-$(WtR0;6i}oC^(_%!YBjIctYC^_VQhOpSKPErg@e*b};*Ro#94{X?caw`^ zDFtcim<~^!ga#CEd5W;Rf*`mF)fAJw>h?oPw0FvAq*ll4pD%k2S_jg?hhXs#kT2ee zlGCk=-Fi#r%QQWu$UquF-XiK;P;f=zTFf$k>IIbd6bjR;Rvd&`N2Cui{S z2t8Kmz)SFj#fV##Iwx`bI1%3y`^KHRnI$e3DU_Q4xDIRm=}*s(X$-g3c``;*G6xcz zfh4ob%@g`(AG%T`xvd1s-ku`AZXT0!C^1 zD=`T(rE|*~q*&tK2=|!V$0j0&^LLpla(!7)Ji?!^gNZfm9-|B$2*#+v_d)3FH&>HN z-Xk+Ob~_%A{JS#oNoU(ec2Ardn)UGlPn#u{B!MekG+lm=?|RHi%$0pivm*BMi0^r8 zdj}MfCjDyKgq*-q($mA~^HptD=XS;4G@Br_G^TzGc5*!MqWtO3xyYX zj8|O>r_csJjWEAZvw>Y*_18X2grq2bpYYqqiq!906{maErjJ1B+ESx-Log^aIyRb| z;`g*`J*7CoQRn-5{s4rQkL8PUmos?_7Ue)i!oSOB1j}_N_hU}t`-yuGuucY`AxXbR$|q9XOj?VKqh0hRtAUPwcAC}(Xrj+d(k;+H%eZI9>BT`TPT+;+j z00AUS45lPS@?dmLdivn^mtV*Dgws_cRyly^bz(FK;0tBj0znRZkQAjU57ED-gW{Hu z)|mcPnV1M^D2kWWANY`TpQ9q-YWtP6a>rZLz)Onor}SkdnN*Y9|x77K!)d`?+CHOn?;~rQ4&%gj)`0B%oI5D@^ z7Aic=4B|$eJb1u&APS%j@6Le@q~wEy(hg}# zJ2d~(j{UP13*Mj$^TsEpE4a|=re@tKbyu+_{~hNAZ+E*pE;rAw_ zFb<0%P!s{>HAl^SVEc;EY52WJTt~xot^oh>g0wB8-{>j2tYVVLGci#vzkk&umjouLEsJe@w`t7@I3eg7R5B)O++;S=0()?e) zLPfq%hFr-`;^OB$-foI30u?pAz*Q3Div&XNBlp=VmpB2LU$CkrAqBzyy%W zsEVt;IWF)8FXQNFx z7g z=43dLQ_cn2{RO}os*np>;B?yl>;U@_#~Xnryzc`qBE;52@YIyy@5q4gWNF@AJyX%w@N>J*LE2n8br;b<2seln(R_ZdM5tqrFHFwK_aM+*m})uu|a zdfSH|X(Z3E^KErxPkWO?`YX%BRw&t$L<0B!8Ei=vp7U~Ya*p;|`=VgY!z1Ad^KLRB zZ*Gx<@TBxRKx`*XQSb$3sdX0$H*iMM{6KyIxOLadE2WhO`VXrSkKY2a0E({47vCSI zeF}VUsQfvO3k(R(B8?!O49_B*(%tgbJz3ekfvk|&ou2l81_pRowKjp|XSy|p^f>gS601lUwZ~@V4_$l`jAiS9X_ypCb_YrWQsO1)TZVONtu0<*j#J-Y% z=NKxB0ut=)=VgYip5RM>k4w+eClr~>Gr9$(oG}mkAp(kQ9_HkdaVTw{pdo*tVjEitXRftdrWenvBP??w zB6&R{lw5j&+RTNgK z@L{NR4Ud?s_8QVLPGTf)5=;DXT-SsO&8Ll0(W}lKN^WE;CS{# z8MeS!=`x_Ld!EWmcPZH38oSNK{X5~K*J;yaPCh*r`j+6F2sN8eM`~;gMt!N~{8iWVWob?4-l-&VM5M z@r@(|>ItXJG!Fq~yn=#S-i%>wS>Tm3@U_f%PKt(o&AXr zWyY@dm1-09j<5Zp)Tg$$MEc+|>pfF>=3Y}GB2&%l07I;fl;+PT@cBaF zCY9a7CjZG0g5c3WJVt!V4@oabz-tZZE+bOf`6)FrCuWTW_4u%n%N(~E>y;}h=`B%2 zoDy&4M>DPwEv}=y$AS|6jCjoZkDOj?Y2N;>P?D8Ee7Nc)zr;r&mhuO(90iUDim9(bru+dkPC7hnE&NSH1Jo#eHkG( zYqFd~c-LKrC+MH+%a~LB9OSmv>-KaC_VlcEyFkXHFJ--THzvxl?>3bM2Tx?=0(Kuo zpR0irvDf+>s2-{rYyonwwDGsLboduD;28}WU2oUZ5j%Wx(OU&FjD_YNmEkoFhNwAB z7t_&}NkXxEzvSS#!o^b;s$+Yy>Hd&cH%?to_)W3?@0U?ZAQ_*Oe98ky%4Z5*T+S;k zMiVDyi>H?}CvL6Z0SL6$C~`kP__MrmPT)vK9X~k_XFl1L{FFQty*0t3+a|TwN|{b- za33CQX{y7Bubv=b$K5w2KCWOXGBOde5&;wmRjxou zWpx)6#Sru@-um;v1LM&X7!RH0Pb~wT_67RkrRkb6AQj4AQz)CGgF2;O3jQN}{DZ_0 zU_y0(GT)Pa_@m8X#(bW%4Tcg2bo;7~dCKn};{pc;LSeaGnWyvK#XvJ3`mzq7jY}I> zNJeNdG)x)Oz)rM(rc+AM(3tiBheUWChFwl2zs1ic2> zwF8GIXGjs$wO46>JB_idIa`WWW2s(-Bf_NQ4 z2!KAw>>W~Q8GM*3Ee6x+?-}0;cV*tmt8{n((3*9+*fV5R73Ez7^-$>NX zNdn~@aF@DT=sghvxOwHT_XQIS#N_;JQ%rhtK_0FkmaiY30u=Z_p_cbSkvJzh5!N5S zy(;4M|366{sDi#gnMAkPHhd0yu((iqA!a3bKSvwE3YRkU=|~1gtT1B z6x4VAO*$x&0`>$PJVIAkm_;^r`p^s;;8%k_Q=`(-LwbNI9}W|bnn~x`*cdfV27-gy z$moOO$L>VT3ETA(z>4W7S+hx+M23_6KT8%52cpY?PBKy&zuc>`KH&>x}>xW$CXIaCGG zkc#}C?tR!_I7!3P;2HJe;(pzsMP@m zBn5vO<^IGY|I8tr`BnL265#BC2m+9ZzWKJFwzij=y@+1l922Mk9h%0S$?)izOD9RI z{xCc)lUo~kRQEMYnoauPTweP*;AW8VJ(lz%ENI8V)#ERB{)ZUQ&`I$j?>o6BID!9p zNk%KGW#CD*^jSxH+ZSljv2V8@skS%d!i8g}xTdBzz4_7hG0}6r!JFuuK6=&|*-q23 zgRU>>ADDM1i z*_8vf*6|&!P7w!}(qYg99Gk{QP2U-Z{L&QEMFUI-WJ%cYI~ojDZFwIfqXp_Z>IGZS zlY~WMqw~UTQP~9J=bRp|2141{qtjH2XHvI z$<%Lvh%M7EYZn1}#2DQ2oUBOznU~t)eH0v5eFvQrs-Cdum=wJ{%3w%96GEyj%Kyl} zG>Ok&Q^hW9tWH~)#((7Rk>O{0Ec!D3xj#|?7V^SSD>-b)Y5rMsKhM9c;(`gNb=9(O zvi-)rH)N$ZwYPchH^*Jykd41)FAMlX4{-W7flG|PYX7*&KhiHER4PzgyWkljX*BW>ulFlh*AP+Wp@G1&v5+Z{H z1Mc1k4i67EzrOfAQ7}F}-jkL2Zxx9TB}-*sUPwUQcHGX48n`i~((M$_M zpm8>IJ)$&n()sASJa7RMZazuNsV?$Y6jsT%{l?YaLN4Ct0iV{+qeR?DK;c2M;O!4~ zpNy~z^501VYL3FHYGr_QW{6F|#&#%_D<~`I^uaHU=R0;uTL&~`Tg{9dA>5JdSTL?B zS6wb_&NKXWO~gwQO4{EVbTKbRpZs&^zpB*zEios+>mAVa2txPC5VUe}-}d(_UuHNT z%cmF7Z?3ObHpPW9X_EJlscybo>Qz}~h_B-eIEWb;8#8w}y8GADV49#X*)OMs3M2W0 z;{x++6h9X1mJ?4C7Jl}E`Lc9!k@335PUCvt()jy(b@r(MA!e??m94AN3hRSMZ?YE= zNhig3z+VZ5m_RuTTql{b!r;2uIRjeB<%|2jmyZ?Z-%9oglk|&$4|%Irs*4R7SnW#u zm$RSU+XGHaqjZI+`hpixUe58O(XH6sKQJ(`@0T<6pKtR@h5H1wEwdXiT^I$7Kb!FV z$j29^+!PfAPmWB1P5wwhh>izauTp_BED?)R%!jXsmxt=l z@C^w;Bt=>F6m;wXTfJ&IyuNir#?FZ4jEt&3()g8o0y-cHnarP6`DY2rAfG$xG2($2 z=a)cJ5G%V8C2j|}^_35@21Dtbe0xAWvOl2rix~{t=SLhLABR@MP2>g57*MEe0SlBw zOiDB|Jbyc9d{q~C=^P#%OV`$lL**(Dm_XciKUsg2X4Q!H2^_{yV^d zkyz2wS+_Prp{2A3w5@Q&QrJQq{D2A6e=)dz7_Y9rj9eyUPt;Z$58Nw5w>H@WJp7q zEQk@y`d}?hrgqF?e|hs4A2^>8-Ws-^)_8#Z&-nsm2iVB(KxWt)v-Lc1v$Xj8NTE_; zL4mZ9|Lh&R2ekK66=o@#ymHOAimdwbg+v*4|XkdKxl5kc87z z;GXaN15d*Rgk#c&3nk-=#C6|n=E%|nYzhS~i|<6KxLRywBV_n+!hlht-=VDRe*kwW%w(aTm){nHw{Kdi8D}++#(V!aM zZvFeLsB-wNup1B{ef;QMYL-K2j2F-c-41%)c51y?!KnqpyY0cMI-XgrHoY3mqq{wYlk#r6 zVJmG#TQ6Utvo_wjiyruxg`FLL{^M1D#Ts&Q@{n`1_ViL(MbptH>E$AO{jK}x)rejw z=d~A}#?iQQ_e6F>ZRTTFoRgjB72;nvH4#CZA+nl_{+#7~KX*9YcKol1fuo-e6jHQ* z=j(iZ-FwtnidV%Jy3H;v^Q0zNJjjcaYONI+cDVW&O-pw|2K7#bRe$UBb{xmtbWQ?|7& zaGqqO`_dt1{bYJ30LvyUr4m!g#B8CVn!aa4+c%jYPrn=TiPUhC8~dR@4fEo{y7 zTHkWCJVbdi2D_`nt|DfDo?*_C5Oi!<>UBO>c{*}A-r>-7{>Ehj0q#4M1t?Vksza|q z*0>=5LiKBTdZ8VK8;qz0Rxvv|I>h`S<*XZ5-JlA07_yCM&Otj_-8>|6}tkP ztOA#j29BAkf>^ERL)lIyrRXlw0iL@=sM-_Cw8^8FZ`=<=uF*X zahV=2b*{~R%;}X#H4a^SIQ|kBqENoc`?(`p#R9pS-|MjH<NyAMVgo!#wPUuZSlcvOhaqN{VN=L|PR( z!H@YE^!+m(?7i)6AQ-imcFlXX@h!7U&HF5{t~aoUcxJ@feVHgR#XzzJ`>xkB;J@F; zFnCOs*^>sEWDO3=1_=*Qe&B$?zgvP1^r#T`k(yqrNgslH zo59l1iqzE9`w+b72&uuol5>=LpckU3&oRDy_ruUeRsWj@u$!Fwy|`}h$}DX#cC7mzA*O@!~H`QI>zX4 zaX&ni2z{wwTXGuLfNPq!tT%+EPu~k@VmbVJoDlQ1cqKDefUE+sxh=G!VT4}U3f`6= z-ovA6dMn$AGNH_AYxgd!(z@MrfjoYv$$$+_w0^$|B(0KTZB=>1CA#?94mn-sWFjmt zw0pgHi4s-RkhUmj6Y0pc`bh1jHc7xEQ|pt-9G|D@C|K{iQEWXU4J&SVV16L_xMj3w z05=p{YT(`iYxZFa)LPKp{bHM;H)@_cD{Ei+JR;t=$Quu+ZD(}i=eCEGOoJGh-nv8v z!q`QgmEl(v*yMR^g3FowC?7tmR2HbT(?}=ZTp3-FzfWxMp;@2y`STY{tiXu2TlJFs z61Qh2f{3?`?DbI)|x0@*?&(_g5yw31OB)zqgBa^;0hrBCygL0^36MN#loP2vNfd+5<&eD!n= zlNWYYeMG2V2wTp)Vvbu)#xOQE#uX$%Y-WLTE0Da=nJn4eF_wE|Q0GUxdwY7rB{n(F zry46eFIZUc@ZHO6zCK5-b9E%WSKq*3A*MTsMqqjn&(XrrFdO&r76S3gk8;I%MquKx zz$L?rwtolS_vy!osK7B(55UNAVk`E{wVNAegG@TEGw3l%4?f%qbGOj2F~jJ5X2g3< z!>$IyAd~fpxKpd^l6M3$S`(&vZQpNJN1bjTb;3T=;h+~DV*9o;fByfaO=KX$HsIAle2NF}C6 z`{5TI(@x*OQRLy)GlFwV%8H8HTTq875~S^zH)-i%n~$(A%>Yn`g1fUHVadO}3;x&c zBf339yS#-%mwxH(gE@JbwbGF*(RQOO3m3@TmTwS1@)Raq9bU!!C} zif@gumWm**8tqK;WrQok#$UGHC7}U13P9!Az=rsD>p1OTHWU2Y8rv}AY@mdgx@Ajr ze{)Ab1z)qdq&5N2_Y^RZ802bxg@*bg3&VJu9+glHavx1c>#rR{qV~X3(={~w?ucHI zk|HH7Ee#G*>Fpl>PIc2X1h@k~I*bpkQ#1(dDCYGN_;zx6a(CqAgKZ9I?1mU9(Fpq#EBo?IA`u-sP}d#3G~1U+79HXD2b&ba zQSLEYj7x8G44-@iyV~?%{s=<9V&H?AM@yDV7c`y*3eKpSYUUf=fadBqQ?d$$A>I4G zH#S}*(af{4v1!kM#>pla|TZOis z_68&RdwuNwN;tV|;G~R&7#MRB$2(<)M;n$&#rQ$Wm~MQr>twpMxzYK&OG08ZdUTdy zoyu)!-)XF9XX{SVj@>!-a!f_VSsntRyo2rf=Uw|T4|WLh^L%&CLBGFxPR158-ko-( zwJWXhdn-Y|j|U)x9hlS7Z4fY?Zg|;Yl=J0)eU6qESs7txICd3tQC9RL>7jP}-sDds z842Wa2R$JxjK@0He9f^X15|G>b70N z+iqIYpM{(@zxO`)Rt@60>iINb;}Yh4wT~>$S0fYywl@na%n)#bzsWI(v$)$=f9d%n z|9b|}=h$M{?dkej6&W zNkhdOJ{UGXN=k0GGaqJ^%%|ckK(;TD|9lWy2}Y8TU*dlDQZ4UpRLG~dg+HLYkZ=J5 z9xW-Kep9}EF3`E`R#vZZjXN%eqX#l9e*crYbu({HgJ9rRkD7%_JI*ska%mZvj0wty z_k3HtV&aUK6fZx`H-0nZFcX_&2^ZUGkayL&tM2Ki^>8nOL&LZqG;y|MJp=90h_#mx zj@8olFTH{is$LF!+BBwQLfrYtqG(w>?#DVgL5D25V!O?$i}9EH2a*8Q(+Tdv>-3e` zk{sR+&qroTk`}jlvj)odLv z;uyEA@EEsyM!0Mw&pR-T8(r(2v+WE*(7Ubn-5^BCn_Y zwZ1nrto5q2#r&j9u$ugSVZqx?OT$B|u4}<=dFU!TQ#!IsLH^Ct%wDR)y{(nV&(oj3 zgV0}|<+W$-eJ^xq#4Tw&XXBnTZ1oM&y~Hb8{sfkd7f`D|4f0Td5Zm5+Wmw}RT5^GwDlKll=z0Y zHVJ>7Nya2A8Xu*pIKr}3w#K|u8#lu&M2o7LgkEU7)B?tCd|pU}!apeEp>omgbyonH z$FVV!l%^Z=q>tLws$)c>SQK??tyy-9E-Qd z;lEwh^eH^xleYvo=A>im=Z_1)3kxX-l1mh$z45=4?-~=T4KgQNXk zZ4n0mfd+jQoeaZP1A31mp;$!Nm%~9LgV@@QzfOV!8~zpWgs`E9l2Qws8w==0=Xr@U zJIuSK4^y@i-tSBS$LdR5?)|J0%EN9*^QsaYQ^1odzSP2dAvSb??iD_YmZ(!$a{W!F zMq9tiX&O7pEIS-n0pEL7*Ly-0gyrs{HgaE_d$1uOy@wu@g9EDpPOB8Pn&cl%#31T2 zl@j$QUii`LSZJPqbFaWGcO-)ni|HVw08OD&bayx1tn?rO{pC$?ifWuEA}*2{B*6Nc z6&HV{B7yZka{&D0FyvriyL7CCi+4yAs3rPh8^(Gq=*KaFzJ}lwkyv`dqs;5CVD#_0 zsyidjw)ywH5#|L?N!)Go!+YEjewd+oIX^gvK*k36!9`x~q;W!}j+y(Wz1Gu+bl@o! z)$;DUi&o*JWLw^yxUqga>^1}^xfwG78w?|SsJafop2Lg)7ox*s2db5t`F z6~qY$4Dp@m3pk4k4l*$FgsTy`E&1lJA7c+>qy<3Nm_*TL?1}WiXQn|HsaT*1P##4@ z{3~DAC7{P`lz&%TRyok142CY0d*yt{%cv?qDc34B=rjX9s%fJ52X||7QEItspb75N zxc-g5Y{TDz@i+0$z``!HQ6@@uoaq55tM7tQl*R(f9UzJ!)#kE1sGUy}6u zfxqwuhIc)G4ex?_o3=JO|2yehV3lxAG_2oj_4f|{#`ObdE$c=wd!9Y`+DWfv2f{jAD8u4!$^Ykmu`h8wF|>CcWxCbn#*;!IKxlapHs_`E zTyNrribBQr`})sVF)?8<0&v*dKR5mh92ApydV~B5t9+qp{v}EvVOF0w$(LkN31ivo z>(+YUKqo%5vHS^8qu_VN0p*$Bd;b$1T6)cb?Y*!##wW4f^;;H~TrSc<1~0z1%r%R| zs{U}R|(3~{*yufj>aP0Nox+aucl3vsLXsX5zqSJVzK{fRG zgnB~x%jAfW?v_hjMUDp*2WHfS|In+j(=>@$(XUyRY{sP2Zv{xqa*nbkNfQ z+CoT@%BvQ~2g3Wm)qts9Kv9WMJ@r%h1`M&Z?Qiau=#A7qQLJVxje8SYe}1s)W&k*J zE+Yf<&oSJM87}^6Pa+B$3{U~p$;|-NEMFlc?|z?8$>Y`0YAbXP_sSNB!(*W|6k#P5 zp9<;03{yEMF~5R$e1oI~1fTvA(4dF43Py!8dN)6wn_6>;N#~Iks>Zl;&<8_xO(?bz zOF@26Wn7vdLQGMEtUGvFV49!&=`RE0QbXIj9pi1kC{4vvg7$?$$1`qzmWYH$6;^^9 zr|S3)A5cjt&;fke8++|dm9AwWfwmSu5YlfJ^-AWqu(eNc9`-?>Z}FZEzLRzN096&o)%L;R@Z^z{hQ>xc*Ht3)c)ES%Ulo*L6VR zS38!Zr}4@@a%uS7I~rwe&cj^Qj8AX!<~1UmR+Ko#u92CVcH&RB%U~x|@Q78(h#h)H z3TleAid4$DlW|2EKghK@t2{)ttWnTCn40xuZ(4niqp)c>skqb*#IEZqqi?yn4O({M zcPL&wA>q!)ERb94c_0UN*6o;AAeDOOyW5Rja3UhZ8!RNMPy zFD-9ZwqX+sDIr(D__xj%C!ee%N+IDF>?sxmf7t|!t@I{%OK{X)^yS^v9u0EP9=&Q^ zE!<#0O-6-=-j9n-o`X;XSI6sPF|~CPIod8_vzwV=l#VE&{)fx>tRGC==-jgEfug-2 z4wcSqw&{=Ckb9Bic-qh?E=-<6!tbJ@l_6*!uKfweLqaJrkG75u=DO+9W!wd~!}T^q z6~xOu!DhaTYw0DVYBEfId0m(p2f+Tm7&9ok*uYmLQO!C3F&<5XnM!>63?YW^6ln;@ zS?SHKXhDGov;qtc&FygwGuu^7p3?PxYSb6$AKpVl6Q{9Kl0C+rs4J$9VfJAoYju$q zr1~9!Gkw5Yp3kZ4vAs~b9*}m>n?jw{8(}rk*hq~+yQuKlMuXe$2K)&aQZmb;7!Uxz1;`krmVhLOZ%q*{#Cbn|q_9Gx;_mZ@<4ZXeExKoSbS zur+zWn}gmD6B(a@@A zDOlOB9C2D(9=ec#op)?(tk;!^@s;>`l8eFFe4(5`b_V{-`g;j;;wp>%caT7<; z^cR}6QqXD4mXxwoQ3)h7v9u=y&zmSKxkH|sGo zepJ;OmUp9MV%Maud+?5b{J_`b%8M(xcy%pN?FMSo&a>j$dkXSi1rF^!*`Qd_3ni+))| zlyeaT_TCaXMe9Xno6`7XI&>vr6lAq#i|H!08u7<8m&|Z?*X}wW>rHg@DnmKgXM=c+ z*{3r$ycrg%Wd^GlNY>DAiS;hB_+E~ zVj=vh*96Wv8e+$ilB$AwT2^Yi%l_iQAOl=h@SM5e^ZI}Zq;|=NR(1B?6mJkpLjRI4 zJRbl#f4Gpx5maYjXpkD^i?VLbCRIOM-GogK4pt!FMEA6P@V5_hAf=^{ELBxx8q}+; zv(xEX=I89Wg2Aei%Un@!*@gt?wkMogYhyF@epJm{xaOvt*87n#Wa2*>(&2hU$z@uy z-jY4nqb6=>#ttFZ>Gy^rOYGI)+$}9E=ADBBRogCGOBtnCZpHoVU<(@OO^jDtE>7MW zcy(V?hw+HVxgMjVdxyT>Qa|P^%*SUP3(O!(K6JEo%n$|(r;YY1HgB(Ubn4sV!U%6w zulw(__x+)ZvA5a^EVZNTCqom=mWK!pcuY$UHrvWvU7jN7kdLAgxt6LRPA0~(`h+!i zlO_u0f&^ZlB`y(P==#jilF4HJj7gqjd2@%t;8{(Hj^PCZy&85bCMzt7p@HdEf{CpW zfttH=ie& z@cLUqgY%}Kn8!7ho@+cB{#<{enQzM*vIaR+v2b(3eg@r_f6xC+yYbeHCkb@-FvirUjRg5QL?#RJ%)#3DHx3rL20kP(wA{*;F@-dO|+=*82w5(-(@^QRC za+YxOwQeaBj^a;*H)`lFVG+Gi!-I~e2Nl)cHv2;`9#>v!W&FI-fBX}+A`UTzcadb( zB#}JZyWp%F1O5FfHf9+wi{!oy&>d!5IxaT7)$S1(X{X{KUU|iRQNLovg&`Aw#gcxw zS?HfEIcfd;qGMhFm9qV2k}j$E0BLXNZ2y;!mc|`c^@$oE0*+8qnT>-@?j1Pbag0Ag za$iyTpL%Xq{%&)lH(Z^yvAzxb;9w=)+ACfPy(gxga?9Kcf%n?xLPx=uTz#)`GK5v= z)HhFZBgB%lip3`*ag{*Mf?^AgJzkfoJO`v7vL-oa51Fu99s)ftxEL!AzTxPEKc=u1l*@O!fE;H zB3Uo1R9f<0B7#zNU_fkt&V-8FN@rzm+@S_)Q;^!Cfx66xA`)mYv4L*D+$;;} z-sNNI)B(7=@NrA)cwtPeYi+JTVPiJ7RX9r%lz2Dw_ZzFPGM9!@(*6dWr zuG;04xn5YYG@LbXUtjD6lmESX_HyaZK*6NS_?ZYT4&{BGS1-f$I~dyi&Y0kIu$#S; z*bj6S4XMrxvT*_BA6xnF2 z+Tn+2f!zEj&C=^Qbhcl4se8v(jGJj{Y=W zLKGGxV9rmwLUAn4SeLnMMU{(v&%iE_6oK}WutKyv#eD7NXx=hCE2M$Qp2~{VTnos* zLmdr&n?B$_);)-$PSUWv^K`vzg+$D|{PvBBW{dN!$fZ&5qVv@`t*$ql9QOvRYZ!xA zJh6cq^2G1er0UVIRY~wG+N|ozZI#R5Xz}hlT+H>d)P8pH$phiJPgOQTg9Tm@YZD49 z4Ij8#be>u_T+u#wqwKvriCm~PsHMRB%Mtj+Y=MBC4Z}m*&ZE0v3&!l9TN2tD>Z~VW zNS7mJ4!9#RWh=2CZ1~#~e*X&dwww^}3r#ndS=EB{R?WcJTii{KtxmtJRJQB4#w=If znqHcGrYV8(5=g_Mdr_^W_9orIqxnTId)LOd2Ht^u!^GeOr3~a0XLXd-gqV7%_M?mH zU97sk{z6#?Z~_Qi%-L4mDIv=%V}kdOeO6x`Be`Gwc}WG+o5gaHgKg5TL&i;;ujXFq zZ)R(=N6*Me$R1liqe@y44h?D2VcDN@dk&TV>G!dUHT1P50~QAG0WM4<5zvb5+aD+q zwaO&T4#+*HUSVH&&1RwugqyK|86wwf!m6=&OZZvGcrC&)-0=@1fB$_VbHDeCfcf;x{iApE{2C`o32VSK+49_q%Jig zerxQoPMO_C29(m#3vKN9LOZ^)mhx(oeohLr%B=ybmR^4btQj1-D-FK|D zdHmd!FY`7^8J>d)V=^&8DC$)3_(q+r;i)13T`TJP zGs*ZR4t(12e1B5*`E|!%G0iV^L#gnd)!|L&E^8(WkNG$-yI-uQdGy8e{eJ5S`d)O+ z(C`I#?@l`tp}4n6W^q#6Vh0yP1|6xLoWdi?zm=AuI!v~3gt9Z9WJRzcc7w&oXO!7u%C?t8VHRyB^g-wL8Juv%2XQiMYjv9Xq3b4J9 z!a!)ir0zJE=#{(1d;j`VU$r^bFt%lN`Za>z6ivAZOj<*VaaP^2>C66}JBo(>@d15i z^~2&fz{^n|;C-{j&vax@{*f4-!Y%UOTb$KZzV$QQZyd|FS0?VT|cEKde_BVcya0D(ii3z#3W$C$a&+1gR zjf`k^|9tv{LReAb(?8yL#84DqM>j+j&%)rOzFDHukc%CS-lb-7_fEN6R2U=&cE}CN zOvPY%T-ptu*wRaS3%EK^4=JV;f@ zgP2*!rd#%X3wmNMIY7ICY4;H&|GbfjUW;YIQdH{&&O3+cw`KUGTpN%37*5%Q7CC0! z`D$*#muFzNahl%U;$AEmH1`^qDF3as{`pMx72sTO7_~AyWQOruCzO?y$>pa-{D$Zs z=$J!i7ix%bl{U)7UF`e9NWM8uF$^>k*==sC@tWy5#TF;fEOoIi=nZmuzgKkYH?{%wZFau^766G}@3_WZh~+(nsy63s~X_>nQJMDY*D;P)2ZYoe1nWJad{p%wqY z3&p1t0)8 zwGF9}|Ff^(Q1E;K`+Idxx%VGW9WN$Y2KX28T8Z;darxt3LmjX`B7)4!<5>9jtA8OH z<_LWG`73Ff{{mlI4cH$Ot-8jsdif`dA%Ftwl6g}0Z}7bWQX?x^RPtNF{$q8p>3P7S zDgQCR|LY8JrDO2m%$eJdQD*`C#|-}>E&pkQ|Fpq>=HNeb@c*Vipk+$5CEJV5lUP|N z8&f@iPgPxDHdq}VbYFWnJgBW_8akCkZ5n%u2ijJNUjD{(>|1+Y-G%M7tW1K!A%ti% zmh4g#HEB~U3293V$#m>d<~l_S<=xg|KAQ>5MO9a& zwFo=B?=A{D#Y=%bLS?Y7U?jd}WL<4q|4|*gB_x<4*%Wp2$~(KdSMdESoDlA0d77@W zT7Qe;^}|)fiY9HGW=Z4!{&-xP1D1+u617z1xLcRYj`MEnK@*yu98hXQ+^AKK*i=%|-j}_LNPbXR}&C zQUP0e`E1+4)_ECCSJU~Oz?hppZU?(|3azzOMN!u3o$!!@E!59#> zx;)Qnf`P)VzT>pV5sQO*BuE+?F0XZ$ULfsr%NkZt%eHkfcv_z7{G?JmSm=$T*}F$v zwx*-GWPW_KHnWGd!#S<8F@@d+acY`Ro-Ak~1`zPBiC{K?gN1OfcUi@AK{+Nt!W-_o z33D`hdjDrwdEF~t7Uvol=nQ)Y>djmW_GdO|-LE!%siTt7`nEI4J0c>Yt8?Mzi=+r; z(oB`Y1mn7z4zeen=V%>r7CRbM@MSb@O`paNnVibYbbyY|0lAt%A)Qx;0%n~S3_7xQ|+7f5l$8)aHD zdAWrs^&y(JnY^oWy}hXwIUR^tDsgo?co$L7H30-lr2x(4m9t=8p1U}7zn+?usX!jv zqz6LYsP(IOeq6`jqW0u+i1u+n>y1JO&fG;v9fB1{J|gj(Bss@cOTK+AMo{d zyRyp{8WvyXnTh3KuhT+i5@V&=7Y5dJ9uoFyNAau? zWIZ1UZ+f`huf(@GLge9&oR>J)N!id$)W^r9^PFXO57LSguXp8rJQ&Z?(4CM zZ-qA7v6PLmbya9_7+UaLwg{1V&M|mzpm@=5^iy0=)@@@mGg+ZtWoT)Nfsd-9m0YPl@)J}lW2GWx*V5Hv%U!Fi?olgtZzpAHJwO!IWujx>CpO!+8 zkc>~W;JJ;x@m$VoY`i)Jt&_1)GjsV|6?b(}K|$C0nvH~roTl~0*hhJ#SR}x;PYdw= zs5tq#*+BPBk=ft~$+FYz+G@WWQtoM)txLDim$5Q3=+k^I>v=C1;yAnASMYUtVKv*@ zTghzaGoI;&>#>}s-6o|#gV4usJ>83E%MsO3CT@~U9Fv|5x;C*Ulz~*Yoc^(A`kk&~ zsvFMewpZL`;%e30%y3xKkC7YpmM~bTjAya0J=W2TO>qCcOI3q^aEgQLduE;0wUyDs z`@Rd(#D&V26Fg4K#=-V+x7R23gUaFz=(DXlBY>Qipm{-@*rVwV=P@ks*Oa7O%&hKA zb30DZ=s%tiJFdTQ?+*WE6Sl_<2JYcuOpWSWrA7Bn3Ku&yI zk=77M_&ETht(ad7tB%MR#Ep!%^X`XW*jUq?BrZ&!1o&PH-{+OZv1|IVExu~q=b!7V z#_EnMDEI;=qH}iYbJ{u!fBnN%W7GJ<;kDaZE5i_NN%eQPez5m!@zJ^7i%?4S{~xW1 zVprHBkWnPB^+=uzWF#aLSdJ3B{$MVOn6xF9=Dd*Qie(qW-bx4F%k684d=HdskrbcKcJ`o&cI&0Cv4!DUs36V9lNI~XcRCvK=nb__w%)Xdp#NOoirs?MNZ_z|6*8CZvY)E6Q6%}d*ZTwP za5856(RcNamFUF*c-~Q|r$nT`)^PxJoJqY;h|{Y)nAo~306ap4UmcGB+}JPl{68Rm zo&M9vRO|p%Sge3kRZFY@WXZyeh6qeTV|7I)jPSj0y!Y*HX$O)d^R2=am(ta9Z{m4#X=K zF2lvzE5l@6>BhCG`S1#t?G@aaXHncvb$MLCysSnmzq_buy9no9v3_|%P=I!*1K8wg zd1~0eh3m|TLyEFd=MHKBl(Xmb?5l&8mkGr~8_jg~JR3h~+z#Tt7*U@6Vb!{mX3MK$ zXH}pYDD2t7mbkdMY#qcvRjW{i8_(CxA%*I_(cJ;p73)*27$fUg*=5Fsl{rTGZ1d_m zl=-?f%S?bMzax@@WA2-KN5@^k8NWlTtxt1HNL&gvYJwCdj1^p{$kS1m z51;wM9O)eowN_9eQ_j?kq~xkWP>xgLuNf>9EWx>ama0B_>xEK&m+oRS-_@+Y9% zDEqn7Q%39>jS_9}S2{R3#+Wgw2c4(2mSFQNpyzW}|pM&%YHY*(D$c0iW7ir}r;7or?qTd=tO3EHZwfU5vlTG;NdoG8LnsIiU15*pSQ8lCsfe`Jo+xDx~ zwh4JM(n?{&QK9NPdrK7Og|t@Mu2*g@O5xx#$uC!M8o}l2&nz#PeLXGO!IYE${^X@a z+S{+uJCo!x9i0cD?aG=wU3(?3SI1MS%ps%5eqMM#*%QSlRJ6GATM^CDRo=m07d}{4 zwfk&DbekAF-t)|MT-sgrLhid3&28>A(pqm}1d|3OKZqk1-U+qyW+dp(T67+`qgu)J z%=q3wqMn|>WBuR<@f}DPy*K=SIG;zFU8@gpUA5dYjFFv7Xi8=!ui`_N>5SHj{{q4O zta7gp-Qjpi71_=kL?TUnZJ@|bf0j3&X7=T;Gvkm>j)rto!~i~g*zNFbw$XY-w2gUR z(N*VtZYYl1&&^&hNUNhm^TPP6Jmt%>RH6?y~QtFO))}@AX~!WJj1N)4b`xd(F?0uSw3{J2l^#jYdJmDT7?ua=a}W@RsZUd zQci67%ehSDYX?xz#H%KEQRczR>-|JktC3nXys_J4Pvf%V&zgCa^F}>Jt%|2rGb_J? z;)!I-NEkSIwTMG(>Z5^NjH-&Ftzg%l&XpC{i5)L4_=ojK&s(`kk=+8ow_R)&^?KeN1wXTMrTcR4-T64oS>9u>3KjXJxfuE1= z%~M^Jjes6DsHM$cWd{iw={ap}WDctvm8R7Ij&{|ymC_9Hu^b<>Ya2Oeh3O)ncu!(O z3IY}gJhFF$`fxH!L~WaOzoT9@=Eg1R9HeIA-LgHPHws_s8f59}SDqVP+fB7hu$NU& zgXa+ibI?Y(a6pTb7Wsd8yjmiva&v0FRR$OPvRo8}=uf7F3bO4vyY4jROmuh<1qoly z3%ZJo4^J~M655{O(%hzG?V?iRw^nd8|7W{yPa zj|*5GA(uzO^}0K(^K7dY$gO&K%N}i}VkjN* z93Fx2rlS3H@sw9DeeK!E&H_DFy)?Y-*vj7i%B}%~7Ny$bw#P zPM3*udRxN|$ZCc|b^D$l)jlIT-Z|E_9>L{%fpCk%UgaO8u|ZiryW?($^ozxV`>XkG zhxTiaPj#Spd_{K)Q}H|an?XAWtVp;D>M~}gz1d{s;n?(Wd9cXH+BfUqm0Np!LHV5w ztaQ!7gr3hO5%Td*4hBAKSH5Z3CDG6jFvhx(b$f5p5~NeT zS@C$tJ(Eb!81o8?%B|v%)0~P>A{Mv!hVS{+VK{iDl_>ptI8Ilg9(9*1%76ck)&^yfQzAX zWeu{00!hr^h6jV0Nj#Tu4aEf?x;*)TxeKgm-6PxAK2z|L){Nvim~2lPR6NP&fANmt z=e)HXPI6pGd5gs2q=?HD@<~QMm#exOKeGyC`~#$g{Q5b9(|VQO7l3}Z?gFc%SD2cv zLvV(}uT%Lmp1}tPGu05*!|Z}@x%a=Xwmp;g0cp68srA57d6K8oJy1oqJXm0-)a^9h z?&IAXYo~gVW09&ZzzC)Mnyw>8v3mX8wE4?i*1KJ+ z)5`H0N=|P6R|%%di?Xez$d=c>p>p>i+q^lVoAL6%*i{AET}gRXAWWGh@hmwn2c6{_ zQLA92qo$yw>8HKcwE}EZ%}Z8vYjW4D#bTs(AK>73xwpX!nlI z$g$=R_zE0KMiDGkt|oK=yXADp@u-MHq!Rg}ODnsY3gX@JWdDyR5y;xZ`TT|I)~xc+ z^8>19!H0{Gq3Jf3OR{#}W`hMjj&xW$Acf31*ac=*j-rTWiXi2;wg15bC?9-(oQONNhD-xJg7oMu-F zrV%K}PfgF!%HFE2*mN5UWoAvoLH_KPsbYLzubU(3YifnOa!o z*q%r!lk+M~7TrUo>xsy+2GKbogTaAeq`tm*2jk>@g_4 ze97oW6L-Gb1rn0RBkSWX-J3>P5%akhPc@$8wkWqU%xO#tl0KOIB^3wwmB=)%zP-(1 z>q5&~MBx)5)|Q*TBI3hwj+U_zy4R>4u+dYTaweFjlPHds9?R9?Vd%n{x1D19!o_qz0F^tTZ^l%ak1wv#pO zvjcUn0r~fvX2$oLeLW&TWBn;5v}Z%kY7^<}0tR%zW?usx#5J!Pmv>}{h-hko!U z73Gl`@F~j^j0y`SA@AdhW*n51XAb!+I`E+i1BV>TX%ysw;NmOJ;5#g^+h->>0=7o^03@lkFh1Nuko6U0q|GxJx!r|2v_D+- z_rK(Js6YqtCvD0|=cwV_kr#reO!^-N`*h0RW}+@?rB&+vL{h_xfB5sj0w;_q!Ur!) zU}eMdIYOrsQWW`GkkFgV=71!9P@4T-lX-UXR+aO8*I4!AL6hq zDat421SXiUe(q!?-U$QcVRB7SkxKoVrN8Je&|Au2?J?UM{ zu7_`bJ`rL~ z72;kRDK!G^lr56@_JDZhQA?+7C=yvHZr8|~bel=`fxao5)Y7J3w@LLN(F#a;D74bK zjtPIB!aXhfWJnFP6r}-Mo^BMTZH!3rbX6@V^Ca}_A$=T2xok`%XgkBwOG8LGYU~_-dm$ zLiDiONk=jXKkjxDI_M{5I7}>Gx(h>4-SpN=>+#IYr15$QY6gU$NHrU2kg|nPTVpBF z($Fc~@FMXdl?M`y^8O#lX$E$Ul4j7kj=!zad#0vV{Z6H`8mP_PQg*%>H86D%6g0G< zeD5UYB$ENpy$BlQ$XBh*mT@*`dT0moM#Ha!{%}VB)zALPH~9OY?I)E(kq*)E(-}+m1=>d3W z9+CXp>n%{J;lQH9e@zVo@F?h0Ps^pD_CF~La;JqCdZGVD9T)%)Lqh2^9tVKHzJieM z=gslme{1i(K?qXA{}KP6G(V!{f5iV!^8b_kQ&r=CYXAQyYM)*P2Es%=mDrNw!1Kr& zbluf5)i74NiZUg5Pv7U}a+?kneOc`s9;OMpJ)eR$x*&FnVPQl~-CT8Oy&_6qh@J?m zN|KFnq+xmx^$?q^E*NCM^?gnTGNK527MLZZ zrLlI_;gH>!QlvQH^@w5s>{4nG^1whX?&5dH&6k!5U+R=iPBKRhsMP6Bq>zFWFQn*y zxZf#ilc*psIXUC>@bBR+;7t(b;F5bnT*0{K|LTNj6%aZ$eN3|ee5OjDh9L8VcqG|j zoY>y)s(U9mW?`N+q;~NvT+F3jYU#-29$f@7fcBmMt2W@5Qc7qkV_?C>Jn%m0pI8~Y zO9M<$+365~xn>@mMd?ap^c%(^uSQD2}B5r-Y>b7GS{-)dfm|abo#1kWOFG0Tf+5@PbZZDV{t)*94z?6WD|)g`#>W>=hR6p43m# zpmC#(jqx)b;QIUTd9=Xn@T)f2BRG#PZh>B$$rocbF+hZ*d!d9J+kyWpKmeUw{6O7| zeN~qQQ-e6f1^|E2h7WDLPJ+<~z^Im7x&y$77R3V+8F=&Bz{$p6E>)CH)ccedb_UjT z)^>S_0;Ti0T=%z|7M`4B<})yTGQ+w11^O$W4&OjbN50;AVP_XfcKcEYHw<)=w)ONd zsekV;THrV-2DX5A7umW`vf*D^|2ZR=RWGJ6runxRt{+4xIk}2NC*J%Q?B4@Hki#dQ z@$m?u|Gc0V0PJZSVf=3$9>u5*5B(IIlN|Av+~_g`nQD1_3gLdOL(d1m8^X&E`nMQv z5#YIBCH2(_O8xcvNl6gH#U%7RI>EVr!5b0_z!Q++{kQg>A;8|xxw~#lpOEsu(3=B7 zR9%D5|JI%qLWPoXZ`D)M1ixfh^#7K606WbO7g+v{I&uKK*u>~l6aq?Fi<$%M{73x% kh<~bd{C_U_tH?7eAJEdqu_!3cfIs)|%1LC3X}$cv0DYqBlmGw# literal 0 HcmV?d00001 diff --git a/images/down.png b/images/down.png new file mode 100644 index 0000000000000000000000000000000000000000..b637acb8c2f3882526f65a46380fba3567d18e31 GIT binary patch literal 1503 zcmeAS@N?(olHy`uVBq!ia0vp^8bB=0!3HENFY$^3DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49qH-ArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKWfE$}v3=Jk=fazBx7U&!58GyV5Q|Rl9UukYGTy=3tP%6T`SPd=?sVqp< z4@xc0FD*(2MqHXQ$f^P>=c3falKi5O{QMkPC z!8&|>tvvIJOA_;vQ$1a5m4IgGWoD*W8Ms(j8XK88S{Rx+8XCG9TUuJUIT@Lln;RHA zSsIxc!t}c2Czs}?=9R$orXch>;nWLC47mkBn_W_iGRsm^+=}vZ6~Lah%Eav!3!LUb z^`_uHjR=2hB3K6vq}E+`gdKF`h+J0h44ljAKKo`obAPCE$KX)Igk6oN z4wQJ<_k^3KZB&vDQiu~N&a#p!6&#V2i--sZnny|~BXEr;Vj?q7U6^8LQl3MDYO9k{#yTA{QG PsL1tn^>bP0l+XkKpO+*I literal 0 HcmV?d00001 diff --git a/images/feed.png b/images/feed.png new file mode 100644 index 0000000000000000000000000000000000000000..dc3e8046797b7711d9a69852af2a0924a424fb13 GIT binary patch literal 1434 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

JlPlt#z;3*X>>306Ed5L<#&k(n6 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

JB+t^JOW+nQtj)FiFW*$Dglo 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 KMNUMnLSTXw_H@7i literal 0 HcmV?d00001 diff --git a/images/htmlburger.png b/images/htmlburger.png new file mode 100644 index 0000000000000000000000000000000000000000..6483267642189e725c7aa727e80393bc964f7df7 GIT binary patch literal 28899 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 literal 0 HcmV?d00001 diff --git a/images/icons.png b/images/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..65d588859dde47f6eac5fd4562994cdea6e9f331 GIT binary patch literal 7829 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 literal 0 HcmV?d00001 diff --git a/images/juejin.png b/images/juejin.png new file mode 100644 index 0000000000000000000000000000000000000000..25144d817084ecd3ab31c6c9445fec3821c0328a GIT binary patch literal 14806 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 literal 0 HcmV?d00001 diff --git a/images/laravel.png b/images/laravel.png new file mode 100644 index 0000000000000000000000000000000000000000..22e26c0fe668fbbc781f1d856e7fafc428dab053 GIT binary patch literal 15194 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 literal 0 HcmV?d00001 diff --git a/images/lifecycle.png b/images/lifecycle.png new file mode 100644 index 0000000000000000000000000000000000000000..a11082cec7183deb78d67ea3d1fb308e2536f535 GIT binary patch literal 116787 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[C3$M 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

k7O%q1le9Q(vCtUx~ zXiU+~tET@%L^t2hNYl7xfS!_OTG{E7be%J4Dt@HzsLgqF}*1G6AnRhy%cyk>#E@5*836 zymuk1^v?Gg5PI|c{$r}FrPJ(%FTorcz5}frH5HTfPU*{)iNFruE3!1{1FCCh&VHF& z*1?V=X-s*4M!wAtW?i-U#qG1FtV7|i<5f+@t`?tR$SF@t#XH;9tV1nsTo4jWj1~uC z4|jgWYt?UX>h#z?V}*e*5tXF9kPRFre=HQ7(D=&9-M-&`X3IAlcrWpa=Sa!I1fQMM zPIa9&q^X(!%m<(YnJoy{Aeg*9SsrW{F@hXIH?vS;RqGpkoxewdbRMY*Ybb`hIftH zZMo?#T3bkokI>A(_oQlyF(Ux?oov|y18lBGMie$u1TJ{aLirMAMg+|KTo1$y3bdP7m=2UE-lxx_SVC4E-D5Q*B<~5;tMaSYw38cWJ(PUZn~V8J`A$NFp0*FY9G&tgylt4s&@jr}T?)?c7&i zlB)KGw7Hef-Ke;un<^&*PVmTBsh>Ye{x#WF)=8tP^vHXtH_!5}W+R~Cv9u7FX1>dq zc+-4!Q%&vcXsP3kRy{P%beg0E8n~C|GnQ{jsAiWt;YK%4lJUVY)W=Q1+DP;yRG9F@ z)#rNcghBd72GL*a6)-aIW7u#8W_9hXcxAqo5>E@)=fpo63DoWIE#+tE_piRa36bKO z+iaRHaUos5PFrxuca?rUJ=G#?F`hN2!6m^K#&uHNF9lubLJ(4{;-r)JH1CuU*dP#> zToWBPQ;9);JZW3m7*e$x$XT-6x0dv*nuFFu%OlYA(VgE+?jh2+20cbscDrE(&GiQr zozD!$Z{R%2zua-o(exjsbu!}4e2?Q{hVvsB4f}#r6L}xF_?t_%Pp6m*Q3oh}8(pg` z@LWtt7pb-emm9rEruVbfmn6!qYaYOtoG~)w6kuT`#WOxYWM)-frN^=g{5d5h}7A zC#qO{1ybMCDJ?gPl3xDqM|+CHUn8XBV^YFp^j1qXr=W0x+g{o$2RnTClYX%Ce_5fK zu4Izayk|u@Lv`AalyPL*>7H4AJL0q1quzYEwi$fUY>0HEDSW5oyM<%BnT!jL-vV$+ zkBupF;)4d;EaaDfLJGy#Z1C+;3A64Syda`ell95_!tT*L*hY}emIya1&-E35iZ6ag zl%u5WSKrSF{LQu=E*-`BIHc>1&6#q=*KfbP(pcWPC6~Zh=NMh$7FPV(pngr`m!6QH z+w!LEw*Ta0k%WK*igxi>65uEoqg4Z>9kv#qXJhp7PoMVp^`f@O0grhDGw~_FLo+-1 zEiK=)OP406LDv}>QCc4HKbcl|efI!{4qggODyX2kPixzipr;raHIY!4;v0vD4KMOcOHGuuI2x)w4k%B0q6hs?z$qc?@^Y zf7FJbnR={iz^P7B*pL-049=h6{+`rw8av zNWi7lc)Wr(CLS`sb4hw#-Yha{|2-3T*`6&(4sYE z!1%T7By4b9sicj-odKwD;lB&@u{<OACq3%ty~q!uzD7k!X_F zFO_Yg_TG`2nJ_NRKPsyIq)BO%Oil%}VTe4qwM`2EFtD#)kBg=k<)1n{5H9V*YxJ0? zLM?qoit{@&gqH0=aZa+y2i5?gQ;8;Q7Zi9=Bymb;R_-qoVZ{La*WAT~39G~v~z5uMXrw)}g;grl2z3Rk4LE+IaC}pZ$V?&3NTX{?p#@!S~t+ zKY*`UBF1P(dUa`=&XGquzHNq7h;FR8*_u*sbNthDeURc;^T0*Z*LKeRu_to7Qu;~U ztZlaV`^Qv0Q5L14VFKBmLsk#S`@$ixFb5F>Tl|m9!EDBDsm)7*@aSdcO&$lHeNP>R z%Qt)y21;)+R2amI$@muJ^W}-~3#4l<<0a+^saO?CGy^Zk+N!>2dgTD?9VhOCVC~D}NnQA1|wC>-5t&#g-^PSIoVaa!a47qz@ znHpY}&e`_FVkJU*Z|!dB4-YEUpIm`(UOJX~2}j?HRp>_NVz~naGV%??N+<_X&KHBc zgEqkFHVgX6ZF;iLApZI^8JR}K^OWVWoc7A0;qV3aGu@-cMUp;BClc*#d{Qw!i;4i* znQPL#Q+;<;G?z|Kgg*y8MN~9l7$#6j%fa($(-{toodxa>vt92p72U$55qyuGj3onW z{A+7ozRiuK#1yKhl;^9J@E|0TK0jOnKAr~ZqNl{g8m2)w?MH2sC2)K#E{4;_#{l^Y zdaXT!N18fD6UCAZ%^)(pqts<+SPEZAPkoO+4Ig77rQhz4e6C$cc{#K>o);bWU>ry2 zhC7M&z41V5qPy;%q+IzN9#~;6|vv&^>+~HzS=X<3uGxl`i+8#qkcT z2{}5vh+KrNIq==Ku#^MfB)Xc}!CCt_{qvC%Z&Vk8s;$xRY;Xj}zMIX|ou$rgv#V!% z8=3;qnn%_2=79sMPsY(A4b9z4;SdEh%F6-d7p4NgPW0}q3ee+E)BRM7%_w%DMBDF> zK3r9+BR6DHrqa;(m4x>bA56qOu~_B0nYD=RyL3cI$eXfdx7K39x&78m5s7>nP&tF5 zX!R_8nef9^da8$bN{Z3N@yxb~UV3b6I&+C>0A2uqb42Vr_3z%;5Ed_5dISh- z=0Mr-gh&ek8ExoC@=g$Jb*`_F)1ZT^6+paGQC|FffTj`|p42aHe=-l@IVwDCQ>n~> z$j?iV<|(|fU1pB_&sk>52ce*FLl#wUa2)6H3A3 zVu`~u=u4O?lZ6>$6otWykb{hY>-d$xKs6$^THbg4iVRwm`$3ejLv+mbQDSb!MT@dIMNl#UW|u4?vHMw-?~kQ9%d($}|3>|m=_$zPCUrkM6w>(o zSE7)I-?;62XexkOU?KC0yH3Gnk;ROIgjMHyOOvGqCK*{?8pNN{xR0Sq@J8q1dyq#= z)%u7p@p2RC9P{ORpzv}{_lw>?nG%1@%iPl2tPxKkE`X`*2 zU*U5`I#qUqN1Gro4~G7u`hpVV?*0u(y4&FTd)>81#t+f$0YhzN`w>r_bzdEQ0(m&d z);XOB6r_Pz!CKg3z(2jugp1)87S-8h6##e>iv+IqfJ7+(y$S#m!W9?0UppxWITMUx zxepq=c_!R{v$!IJz@aoQuKy5a$w0hUV+$Gh%zsgAbY8|8F1UIarla%5%OL!W@Kj)w zD^t7_-}$@9FfIL@1`1{-iY-Ye9|J*3fR;S8`gGyo&QRBP$4of)rN4h7sLqV;g=d89 zj)^Elw>Y-hY-wo!O|2uMKKg>tIy&F_$8&oiCk_}X&=@2QfqeS`%W}E>N2?TrXr;i~ z!QO@`&A5B<4MemwPpNmhJhp7FlBYff{!LY@L?Tn+T*6Y0F2nmVZLJJvV|M|;@xM(1c4HNLU zL_g90d)_AmX}f{3xL4WCt<$%SAfcTV3^eHelO!;OCc*-4cGaZErH*nv zw*SOONkCnhp^VFT@$laYi^Oz^f{*sQSj5Ewez@L4+ltuSs;Wwmq{&P;J6ROm+{Y&% zng3M;QdXn>ut|?HKXv6~iM|;p{W@6sC-g?_C0To#rOj1ijeMJKbAN-Irp?EoHd2zC z$e}y(wo~D=RwY?#v6U2%mxW{zyG-t;s5Z{t7lF{UDMYT6#Bd)zHIC`C$5(( zRbxOS@i#KSl~BU94@^0N=3NZI-ik&Fz}3)QbB2~pGV`OM=~`)yP)m7(lr7|qEYb6Z zt+A7|?sW1j5x(h~mbcl(q8RV1k-%<%gmrye=LbE+7C6)Ssx1UP0e?8lupUG!DTHUl zQiGCPRTcX@UYYYB-H9?f=GR-=O_usm6%l91&p;}4e#}qvj(u^N_VtD{6nPJMXSa1` z+Gn6(l#T$zze`UPcFd8-Dzk*mgJgB|~P2^F2} zmqIVsl$v)t=hN{{`w=};9+cJHB(~E^ro9T-ghXw87BUVqX-)i;{kt=@7Aofi#A5*CP(zudaRXyWZuSCWKF^)7M_3r^F+a|w9n{_C1op8dBe_N1 zF4ED*J3a68@U;0Z$#q;-HEHCrl-tz5e#93CwSlyt2WQk62~eN$&G>FNo?7by71FqC z0m%vXyUf<0M%7ZA{hk2beJ*}}*?HgT_H3HLNx`OY8UdiU{$espvUP*68z-iYgX(rx z*Murq^1EB#X4qUPJX59ABlO-1()LkXd+Wy$6PABhTzVXegqkaq&I6dF7dJBw`L9mrU)Uw z9XN!deI#3k#!?w|n3SWyt{G4LM58XpI#6sIWk|gxiV<*h1s{ zXZd>Dt)9}-y43A4LlT;%h)4uh#Um;c7(>}M-gkNOfM?PsG zHA4#(-X>C-40^w#&~o`|NWILo9l#R0k0GGOevt&H-!>^TYJEd|IA&4Ye^m{mF7?L^3ku$fJ^XcgtFt;(Nye!c zy-@&eQIa<-C_}0YHah{)mvxkOXSbLs0kh_uGzD# zNRLj~3bq*L%|*^-I@n>AXs4ZtwsEg&IKGU}n2*heYL#GB&DFDpG^5Yj3TOOqXj%bWP!r8vodxQ}m8y<+6T7MNBQY!&Y2nwes|UJ;rYpM2@-)?f;d+0!0(o0fW4!9T)Ed`;gH|;MiTrH0MQ=T(96<#HS9k4)=d|)5P7~7)%5*HCbzNp?TmS`V^=y@0a ze;6_AQ%gpK9L`4|P&3OWW&|#xB5q`S|CVyK23O5cv*X51E5RC=!HDE z-(4LWzD@61L1*eNg_WCm)#3HTH{LG-+Mv4(wp#_~Nbz@Xd>dRXhE>^aLdroek&P>; z?13K`Is!l7Ti^$lbptcO7b_i5w+CHVzUkS` z&K;ekY8#*($`m#{$XDmAj-}6HXz)gjWp4?vN9>?}Kb^^6Nt zIG0=9bNAb<8S=E*?%ys#?&PM=CF*|2wz;5Jv%IL`_&FJAV&|CT@yt_LyAFiR<@;I( zgC*hIucF~HMh3l}C}j|qfZ?i5&Tg{4XzJAjnYc-2kl@X7xE~5cC22;m-o9DZzR~PC zJnR|%)!EQzTg|&$Z43#ZrU#n6f?tbv&U@sR9y=a{SG3aI)Dr1E$&^h5x@HpY$RPOr zR~u6Ao(#Z#bfUqM|_b^0;*XE%DK*j*f{P@8Im-%m`fg6xEbgT^0F;@0L`T zH%dBYRIUS26Hd)F`%Km2Ok=68YLPy8y-+XVT4dJzeR$m2l0b!mqxTQ~z?&8`W7Y9_OV0b2MT> zhskd7Je@SBx`Vma9w}ytL0pP>ZMybb2BJKqanOYj_JzISca1Q#ENQ>FtK z{rC*v^$r2hQz&FL1poW(G% zd&v{#(}|?f&!@JfE^HLkJCzG5lXz}?lmszInOPw01Wro&h054ca|z?rjQUYi{*dvuLnSpbC&`xa z;~Ns6sjxWOGw-4rc~YjrSe+z|I_HW>0v{V$h#D zkMQ%FSemkM+ptt-{D{fEo#=s%%*z`eb6w#S68Zw&1Fa_8DVlpl=Q)REoxX)B^jB6n z2B*}MI?}0V_$U*#&oq+3T`cOP|f#+;1L_7W=6 z(W%X+hxL$DT^48yW+PEzR0w50_zEI+kRiz%R3Y0=pa0@IApMbE|0z#+K~k?Nohx~W zf=cXRKGtI@Mgq-V!GmP);LK;ruC|M~^ZPGVGYQA?iaHFdJ=uj5yLl}Y-=?sII!X>8 z)tt%M)`;`E{8ot?DJRl{Zu=H)Zizd1TNiYBHv1}m?b0SR5QJm1@jpHB;MyrBB33(?_N;UK?h&Ny`!EGHcCatq z`3^utYNqCT!`@)Ni5b`ZS?T=c@USq2r2V%(h#T_j&(Y4c`mXXlADe*K#BejmYL8x@ z2j)yW3-a5$1L979y&V1A*blVh6wNaFa##-eMP@N!??{*hCZT^43cj)26Z3eaRW@7URNtG<-@BxYD-X zj}D8=!-^tbGrB@kv3tVWGe8^H#Hx{81k-pWqUAagP7PNhl#ftekV{>5ttVh6ci-xg zMNQQL5%N4P;R}ZXQS4N-u0~sZ^v|VMe0P~f5XE((UGGfRR*pWg42?}F;-hZ%z7}XX zih*vIU>tqphPGdW@bY0e*a1al&J-;tbH59yjK-6bSpCX$HaHgiOxR1F@VrZN;C_`? zg=2Q4o^YwPNQysR)TSVGcy*riv}Ss15Vj{VcrM3HH^lH zqSAN(&${#l)BA7*0l+fB{^9tTSVCML*eXlmJFp@kEkX5Suy62auGMQFbQLp#-ET$t zqM-o`#WWo4hN#5O^5gVgw!)t&tu*V-?q9z)(A7QL3Urxu7K(F!$me0_MJu;Gi1kSj zbb0Y2s>WORi1vpX=CZ)#kqExm^JS%dUABf21up$(cr~+13x*ypFz=6YM)vA4G|cJ2 zsol+bqKaVc&x%6N4Pzep)r7V3PS0I&R%gRTSDV=r=~ZQloUPNOyk@A$b7_Bx-?3zP z)}7xP&FTme)_n{&|0IK$k#MS;KiDN0q2^dg{tbcW^Ww?Z=2WF09WE@5RS{}qszqEi z^7t~u-tQdY*|I*vsyWK9miX$)ViePPaO3^vD8xTJ!zif$0VN=d4FVYe^RrxtrQjMH z&MqL6!Nkx@7(O$l&!h;`*dL_DawJDu>H^!aGXzWcaZ6;lOzXwL%#U z!w83Ce>&GOQTKRw4a8mXvt62RFvMIvT9p z2F58Hu|F#;Lbcg!K$p}dyyD9WkP;9~R#Vg&)yyfAjgNlyidQ40$8A$&W^||oY7JAmE==;F6{|D&n4(nXCkU#pLNI+3^s-qMa z$@1DajxWp~K>YXJKHR<$l!|%B1^N9cQrmr+L z=#yx(yQ!?n>`73cjOO;@Z9)FiK0$m2=pF$ zGY&2szEZ?=!)N+pQt&eUsHgLhQ&W5V8U}IRe}(0c9$w<&ZgVOVi{x&!fHu#&)wUbW z3zFZD$fd(9dqA5wCPgYBkLhNi5;=9w-u`XrD=~aQU11Lrfx-iw2Kxueo=pFdsbMc#f;SUVQ3NL5WT{ zrY(gF&`LkZIpuz;vCN{N$j-~mNrjho5OdNg zHNd3GWwu~ua`+$~{zz(O)Gpk5LIHZ!hClVdW0P0_Zqqm6&p>HLcc8C#1|&WEf{Oq` zadS0bKV^td_yRJeZ^~&QkVB)tWirEBZ(%-5IcBU+^x65^v#qu^W6Y8)ugM{hLfB)z zS|=w!JFIa;_>NB&_ga<-2uSp_wLV8Yj@kifOD6pdx$U}-z?y-X1IsjuW(8PQ0YLAs zTo4)pCM!&M@p4+x%#{7a!+g9_1#|?vS{KFdQa+ct&DEPIf+ot0#)eX%`;NM+F=x9B z&fi+jE2MkD{33*`7Hkw&Y6n(oA88KkSfRVh9**fSAtHH)=;OIMl1?b_5*29gL7--n zmT=k!8cZ!pe=S9aC^2!zrReNmS1PN$-a*+r{y%to%cv^5u78wJL;*noDFNy3Zlt@B zE@|oRQV>PDyIZ=uySqcWyZfx|{k-Sg=l?z*&p2Q97~Shrj+lR7W%~ zykfIvc<#$g0PIP8@ zhJidftHk6S8Kn$bYMeDq^TV&>dy%^_hB@m?6XW;i^>tf1VKQ@rCcoYNi8>B_%MorV z*H=ca1g5gItriiSw$MGaKbh$%JBYT4_qcw;)QH`WQip(6Q2eS3Nijh`*@Da#)`S%= zo8)llF~yeHT~`C=44oiF(=J@VPe`(JQk4z0iz;3!H5L3ZV7gGdQ^8Z)RZ|edt?VRp zIsgK>Tf<)YFW{<+ljTP+%CPYEbsrp#8`<4wtzVuhU7xe-$E*xBQC;W8tQ}kH0(7UF z)vL=v$l{7UQSoJ7?P{OZwAY)9@Wf4Y@Vj>@{c&*h_qvx5B>)9wI;ei2D2Asf7%U_3 z2c+pvi@i4#h+`jsD85vsBz4rV?9gIC>%D-M?CgmO?>MAt{Q7e25!KY%or{DJZvKs$ zYC=)Qu)gUNRjZ?Bb1w);T&mgwAP4D)k4PrT+0k^+DH!JAij9nRC}))f)3$i`z3> zlH5of5)18)932C|NpCe?dh$)mIw{T{kj_ZvTilt>#mN&P1pu(!p<@OMG4{ctGS$u~ zW&)+@2xbDdy1mm!3ord=1#i%TMw7#}K%zj;K-bjxVqfAyJ|ba%PFp`wH*ZPeGKL=> z^*iMHs7#ihY_1g%_~Hm6Wqq*=&&l#+rN7xyW#Gs?0=4rgeR|{CywYPMyMzmcAM8f6dcZ4Fk^={z{sGhYOcEj+|uFlxyubc zhfQ|*9VMOn-(N|GpMVB7llxr*b_6S+Wd6(w@hiv;GfDBgw#I^z{P|9*n7ZQpN=_1# zI<8`3T|T{YfifapnNJvhULr#FU{odb2e+(42?zU4 zob4}XC!c|;ay7*bu#DkWqO{GyUkSj00b9(~SbfEN^_`O~gFz*YS&2Q1ebSM&$ydRw zw2SVR)(#tIEhW@??AdvlqHU16HM-m=u*_mCLv1iX5u^AWZT$I3=q9EImPRxzCI_-T zCXSBLnxWI3AaZ`QY*G1JU@RCfZoPV;up#(7pRA0N2Ok0=0cILn)iv+Ux^4J+_)Dcv zLIoJP*qEe?ho0Qq@2SCYO5IJjPP@ebh$X?2_$7TqOHj=+r}l|**3G~`Y3}0`<`zNT ztvf-NZ$Mf3*z36_W5Y!p=Un9YNsSMF-F=W0Ws5Iv0&A?ydxe9!s-L6+uj~r79P%p% zogZdT!zaao0xK)l*aQVvRsy@t>Ecmyv5C&E8+ zj=~r z%SGfv$ivYM%4@A6IFH^dw&@iPAFmkPJ9EB0+O>k2<39eAGE=!WmiuG5V?~D)=xhzt?;!^QU@E*7RlEW`V`XoWya!IJ*|7vg&zccA^8AANU-hk)V|X_&Y4W9F74ZstN%;Gn;^S^FIxk zz}Dy@o`G*FL_3+7WNziVN`o$2H%nR?(9sNW+|EHSZlhp3=r-=zNW1)XdUsMdA7Z)q zdaEiNv0U=kMI<{J8{6+pb~|xBM{$NikkP=0WW$IfRxW=LEjEV3in5C$Et}mvHDa^5zX& zLi2DQHnyw0%Cq0oT=~;BgoJ-lT>f)$nD-{UB+aNUL?o!;h|rMI8K`vq%$%#G((H~M zWJLc=(0_zbWnskppQc1&Jm!?>6g3V$dUeJaYHg(}Lfr5F0KpLllS8l%am~V2#YhyO_+cQBAIiKCu}yCC3B7bF z=pBEHfc5cJhyOpFLbry%cMgvKGWQH}^s8TL9@4imzE@xqVaI2F+}gW)Ke=ZD{A|dn zmVsyg(-59cQ9z6$L7n;gpDkskh9zqci>CBg#S_L3ko+P+wfzJcR0R|p1#-OX^6j}? z-!SDHbUz0=+I+V#$A8d%aan;>p^qqzDv`q3Y=c6KojdvqLGC_e~EvtP75Af|(26DEckTOVe2!NOaQ7yD2Ji$w(S|@>;NK;$wsJAA-)y7K5u`cu zeo3uB{=38*|v=>uVh+8pcHUz)|t zK0pul4))Sg3{g@H(W=GO8ZaP*TW;e?IVOVde?TF9&ryeMUVB`!!EN_~hyqhq>7_3i zPk>=QPu*-9&FoSR9z6>NG&JTO3O5ZxLrKN_)!p(}+fxTzLH--Z@m33A6YGC$SCGMv z+`5tzB+W7%qmSJu__>Jd+v+gD+>6)VhyRr6U-ZwasR6$MBDr1Pcz?yb*BV6=11Nt? zLz!{wl(9*G(&WSP@*l*C3Fo|`$7{B~oXBnlbi=L{_xlnRIo=$gjP0nVhqTIK33$Z# zf$9yhT*iAmToseGYI$BJ8IV-mOxbMu8;xnf^8`$z$iY?kc6Q<6?gU|@A()pwfF%pI zUP-*RS1Ml9q$Zw@P)qIw5|8XP-MV7L8G1zv$C4SCm_zyLz4N!fV!!q!GiUm2lq}m5 z{pZ)`!{B!KqUea?(9Cm1y+ZkqFa({5iWE;eo(Cx={z?kBe0;j^LDrKWbDG)tKm|Yc z`%j72)CF!~o`O2Y;9ZEdsS-@tr~eji3yp|HvxN2?nGwc_QS;k{DqpHR zPLnZ9hNt_}`|)L7XTt%z5=b!qrUWR=9UP%sYo%hU0=Lm?yX*SbT{&TJVJ6#uSzX@{ zD0fa(rQkpgC;T0w(e<2%q~7OZVZ>I3xXdsibfImhxWOPdcb)>Wc+Bu9h{_^4(zw*| zwFW1IS-+o&;Y(`I+8wAI?Zx0P);)ls9bXHFN2q(zFq`Vdh%!qE@N`h%&o-?)xqm6Sl3I=qM6L)6q85}o?c z_euFRY^fAyNQZ7t$egxBgZaZ+NDO3odTUY6&4CV*#{$s+r-xMr+z4#80%{n9T1WjFnQyS_)vECho`+$@WL z!$XZ)r8AJXo)xyee!_^yn8~UgF1FWR^*`99R^FuT1X@x;FMf?ps7F~Qaz6L}I8B09mM}1_63P)QL z9w)!I!~SbcKU7%})}l6U1j-T-e@NrT!p?pJ1(hbR1lJNM#p!?S$cH2##t-A?_5B4= z5??a7wBgWC6!-(s zi3(Uqpe@zbvxF562G6wMbfo~ZdBuh&GgBBPl^eWQb^EuU_mk7sMkC$CTX;yPWoDDv zk*BVv_UWlCP#UJFA9kY~8bl975KJ=boicNrN;Y5|EI%7(ZhiSdX#xN%fUpsxj>$p% zp|Q?mC)_SWIxf5t*?SNO%U?ddY$)2A$ZY{EWFDoJ2{Nx5nDOx~Qq`vNU>ZF7>Pu8gHW;8XLxK zzAP!~sbf$q5_5bqdRiQz3h2|;P(dqf3{G{)sGOcc7d9-`KhF#g+SzZqbugQs@rvPi z=?fgM^0m>z`K7cpZ)pC<3upJay8ZB|w7ow&K!k$IL8kz)P{I#wkvU8Rj_dNFpk#L2 z6c2uK+^JhTN>({{gL4C&W?B_voMz^B;C}a_R<>|b=lT?mam>yk^=3l1-w$PPP_xY0 z^MX_K!u0}IFgf%a%@%$lH|}kL@NBFfUjfTh?(!};4Bh@>=et4i7nS%dS*P*xLR zvCq(oZcSckbr<>}ki2rG7TqNUD5SLL0B~x%PAV(`=n9HIC(IxaW)SZp0N!^-?*GJW zinxI?Xrx9$4tF+bOkJ%o2mNf#unzQb#=lf3qzahQ79D9Aoip1DNH3daa8>B->UlU` zLI8ciDlyuwllHoq_}j6;H|HSBkjvN!t5#5Q*y&v=9o&A1d)MbWvz4n|oeTbAsu+A` zaF7k#Tpf${Tu3G$D87loM-Z8u8|heZ0X|5cAd_L*P!b3>;aa0Hna*%uc6V>Yyr7` zAC!~JKkIqk-BNFdxdCPGMRZ;x6?;q*fD4ecmzZpFC&u0O%K6~#ZZ!`@Jp&#$VzPaV z%c9MiZ(Cfw$zK?^FKbmS4YzG2v#^R=8gdGt!w%+5WJrzavIAy-Yj!L6ITi+g!;Qt7 z#Xf%bO^6zJvH}a=77RM)tzxxLr;gHKvUzKbT|DEb$fx^p;c#XOHU?r~pCp&gC-`fQ z{VS*Vb7@nTiKpmLKmyKA;wkwIF06_eiIIng|3ioQv$hY*sms^LY-ukDBx=#(czT~q#rrP%PrGuo)O+2?KC?4Ly2Fw&3v){YrYIyyE{QHvFUO<79S!35< z39Pc{gNWOIVKgip!Q~H-orSNZ)dC;lO{~p!1|Cjt+7cjf6oM??YjJ1#*U#>7koy@T zJms>y{Fbj)iYskC@lCuM@Arvcx-dXX8G%h06*s{Sq-2Y9&f984d1DCNu|Td!Hw{K+ zgZC`F>@Mm&hs+luZLa+I>56Rn_Z14`A8T#$w>pe#H(HVm1?V!8^|&q{n`%aw2Nd?8 zjt-@BtKk)m+|u{IKAx&PQ58$CHMTJaPaHlG_MXXqyHyV3z1PrgJKfZ8pb-<(xTJeB zsL;;7#8WPKoIb~n@#>W@oV1Pjy7dL)IkqG3Nz~MG`~<`6)2{TUck4rwqC(mT3_NZl zGasKAuI@o=2gqXJ@y%nKAGYRKZieFkKu>XMCA5NLgH>vl549Ryob|_WSBHi0$--WT z>5_>BBJkrs_j8Wy1uO8ClpG3Q)KG%J`)Mm>nf|*Bk9n=GeaDX0vt4$ohaTDB;XwTw z`C58UL?;!jjI0on@sRuV8pT7213|eB3LiPy*e>i1cv+;<6{RxqW#*Yht_>yIxsp1I z1Zjppzy)QaG2)Sr03^~MT*+2ZYcVwX)eyX{Y&FO2vJ=ybuHDXz?4 z`BwAt7?^vTHsszey~PKq$_>#J7eb-hzs(l06yl$=^+`F36e41G_~l;jyaRqZ`?68V z#aGuFQc-zV;a2&qJ-RZ|VXN`F1phIRxfY=?3zI&AD5 z1j1N~;q7sz#&~sO7TLlg*(h=CtLfSUjJu$VJau0U1 z&5w*N#xtvJBUVBPIZQ`c4!#yG(9e-IhF&1}PCfM*@}NjCGC%KEyN5B<{xk&uN*t1R z>bqd99lS3;T5MBDNNncEJ>A+kc!ocUWviKEj9zAx1#a>*H~d$BCPM1H@=r$Wen}F| z(EHmXLh{g`BXG7ZhL!E9ZOFB!i~pfwhF*kpfTE8J~Lqw<4$5K3J5oJ|*t zDEn2j7{|OeH9C5?Dz{!@4 z%k9GK>-F`5Qa`6_PMlKJ>4#_Lv#9j5fi~ui=xDjA-0B3Yc{yiOY z!LJM-6o=KP@|kQKFjof>IV5o5YyG_^&!o}U4QXbN8ui^j77hM5-bow5!P-}KX{{RM z{xL3z8)f!u*-bP!aFX(un8xWYtG3$P;faRzlwFUI$_Tk7+Ccu?q!FCURH#}(7H{zq zM4rIea}fi38aOw>*waP+Vn=;<9K)odO}!qg>~x$*mqTbM0npR(1Kjf@7kp6Ec;~~) zq<1IGVH>_abvMOzI&ZHX=Hcn1j2L!Cx zItO?CGWV{1mF)S`y#axh+vPJrx!9g*)YfLhN+`0xOZ|H9Md#uYQjxahxEDQyj!nj8A zuF)9@;EPsJ*RdKYdUeZ3!8bX-eQTvl6q6?ZA|USLxeG#^TB)rx;- z2%?JSyW_pDY`_F@Zhv0E2*PVV7k1{kaU6588)s5?oy&<*y`&|1(yOzQjRxM&XTgjn zj^uJ7Db%dz!&YLil5`ribuxG}TogF0S$UKaQRFBXApHRjA&xHSAn_*WGAQxa~Yd67$BL4G)nyfto z5%P<1-3J97I<{eNs!U=yf$krkb7_uqUISafU{ z2a!h&3sH(FEb!dU%w<2lKP_n$lik$K|NCJVAIe(*H9iygAf>Of>rbr_;63q~VBl+# z5HSr1yB}HK?&|=|sx6M2C_aR4@f(ykJzulQ*B;(|L0SFhP(ShDUm}iP0%)VsiI09z zf!yn|=|U!P7;oUuJQfuH%r-&d_x-WY8R|(+Cb4kPjMuirF0ceX1aRw2t8-4c!0#Qt zKxX%H-@7z-Xdgmmv><}OQ9S@Nl;^wPNQ7amu!FxNV}whR=@k@^1gQ@fURJt*`EsuJ z(*WxGDG$Y8lY-6s@p@udB{`gPq4u(!6E_uSIwo*hrV zC?BBn=zIa@8ka>>3rP|Lg@$jc6z2d~;8`2yv$np<-IK#_o8uKP#}*(;5WyEtoOYI^ zbD%K%Ysy}2Ed&sS_bpBL?0X9zwh4gN!b_Afim^fdtUsI|q6 zVf&m2!4B;(;{#9OeJLI|KoLEFUe-fZaP=JS$_2q&#sL_7glES1n3+K#-iw1>si(LP zz403|#F4)0-DIPQCLZtx;m+|N55?GXV8J^0<|NczpL4>4h6MvQD2aB0U5XME<3-q_61-Ah<$VEcO8ARb1>- z_X+wFQh?{aGHA2N{DIbc85sm=)m>|qZyZvxJO_p{{<T=By$Y^BP=%`NY3O!#6O z{@Wczq8Td)obs%VodNe5fIE!dy~-5Fe!sJm#16H1i-=CGzz@dKCb~uM+a~Ah(#k=$ z6pR#;P!BM|2{RD6Ehq-i!ce5Zl}iQyr_VoH9O+9fHF1Uj9>}}-&=0Mf%z)Qj#A~GB zrgtGKgs-;%nJn=`yXe&i$i}=7s(AJLd;yNyZ^Hz}0Y@#Ea#IiQ zidI`jz$wm$$9M@45mStlfz_^*-?;Ot>wPDFmM@GER8Rw8siz$Bzz~2x(2$ zyk6wf_R^PW>vyHd94@wpm23AcrAHo(_I|;|!yH!}DQ=5PPRU!`vKv3E=MP3Ah9-my z+1&TuH~{~&VPH7{^w{@~wWhy8$Z=TsGKEAMb4`5ZWXVxs=|S+yNQY<3R`UY3P7rKDlkd@;2;Px+ic{m7ur#`|VHP}1i~Yfa2u#~@?FXpuZI zAA3FCzKPJ62A6K1#PUf2zIb`%uzUPHC=9VvfRgCdkanZQu%j}Cn+`K-sEix<|DTUp zyUtq)4@nx4U&YCAwz%y!UPW{(g zKya_k_a3dEpclVOsfK|bqk-TjnLSnN7oTd)H^d!cdj?2gfh*ZUwlPw7@nX7A#s8=2 zW*<7z)pE{jC{1pJaag&og2~_ZXtGj@*qZ~6dmn%ZL8at&`QzLFn)7wn!8>h&XxZc5 zd<)AlRF=`$3-EpvZyQFtjey(W&Ru#N!a4_1ASBS3d_l;3>qc!aPrPOv8~}}fKnMgw zU&PTd=!@Fg(0r5c1P%G^$*1{+iR)v*U281iheb|!$oe+qmrG~boMQR|4JB98UIX0$ zrOC>qQiLK&D~Ub9gYfq|7`;NI?`10orIC=gW1oZ2M7PaAAR;(e1G`~mR8)%i?@ph+ zr4S~KgoDiL%k6vG!qi5Q{m(x`UxvX!#}*W^JM2bMLRstGCTrW-j~h9Jg1=@KDZoI{ zs#Xzxm2wuJaH0-&mG}k~NCxU;Gz$dxrtmeZwQ*^`U;KS+Y(cQ)T*K3BB|Z`&dFS(z z79t4EBIbYcG~VHP?XEwhyfPZ2%~5B1X3!j(_e9P*vS z6v*r5D>y!{WNM_Y_SMy4^~Vg{w*`Q`H-tbIWW93BRsH_Ro#~P5WI8wZNR_*A?Nf%} z-{&d>fNPqpfqbIUV;OPKKbpyZgkZSW21q3B7V|Hb4|z*-u52syB-#^Aaew73jbU?) zaKV6`K&>5Q`1tr#*YnMcbCndjz278Fs>`jcy6J-VInlX#0hv45^32xu$p<3oH}tGB zc9hB6YG(Ho>yJgTbik$LiK3nfm%Qa zS^oWjzC%d@mHL%s&`eW(JlTp09x8JHq)4IUvLN|bh;04)BUj1@>v?Lp!^QsGTshOc zrIp&q6r+wbBvenOe9tkpTwhH$Z<%Zc?#W~S1qxsO{ieS!j_S>1gi(|3 z4(&aGo+Fc_0AA%yX#mPTAe`{;4}L>NaP?$V!EfW~spOzUp#+ zplV*@T}9;pARt7lUx@}^Tpb?tS0!wzJHkK>eg5xD&O-!CHq~Ami@$W&_z1e)I`b5B zl)$S}UtvM03mD+vA98Vk=KLgkyR(&*#>Q2POJ%8rhE4JRNCmrXL9>&UPSqm!bQvm? z^}GMRWN|~NTm$Jd?3k&Ft$8peCXY%ci8Bkl3QD;L(#it_{r|@gZ#@+XXsET#2V`F7 zt3Pg~@@^NCLFL7Yp*AB<$Bn4??x9aJ%+;mmSjv#Pkw2&yrpGV%7TM7RHd#Dxme4UA z!8iKTJ)OLYLxFI+tenblQSxGQ zP3ZaK+=}c~$1p5k>r9GQ>|_y=YI}u?8$tL^6!}+vZR%nZ1owx^SY|nQ4?>HFVrN2x82M7vRjp=G%$CB3uz0dm*=9bbhsLMgWRWO zQl@OjgN!ft=ZZA{zU(vLFcH~rar5))MCs(yS(D{=NlfUEnr182JI>Q!KOTH>MsVJ{ zdOhSV#L+Ss9Agbhjd!=F2WESFL{1xu9!6!s8Df@zBc~CUO+R7sU>29Ho%giw8SBJc zQYVd1jjz2m`_7ej*tAyVK-Uo2*f%ym2T=+~OHC%1TD>M+;Yw%o?w`llzw8r9p23>Q zT!jQBbBHcKfenh@-pMAiN5sFz=SrSt?Xw-6RGB6o&&{qJ{BFrQR9j@Px*4_-VGuPu zggPCYl)ulVdZ|U*U~);@T_2so8rfuaBGn+54C}P-X}r4p_9euIV!eS)_Bxro?|wQO zZc^%b8^-qPOk6~%C+Bv6yXN-So3SBZf41*qbGvTQ-Fbvc_otOZ_eHhL(?JaHvR_iJ zj<8g!YSD^gN_p%&Ahw5Cjb1#{xy5Y2IYP!BE#?hs+lDg(@XkJ2xN_#t| zxG}6N$NfpHP>p(jcNXh}<-vkGV)=WF?1WmbMFUZ@`$dp>HM=r4{955pR7VmY4%ET= z#zGe9p3w$(F=Mo5dzjcB+nw$|fJZ{wWs_^&=ot-W>D|wy**1}8%By8RJj)dTm9tWx zPmp+n*t8bwUvb$dEq+vSTn)v4wAUv<5QYi-foV$bsVw%bT|Ar5Gr>_KD4kW@+otD^ zEP#LpMtk-X(53+@6i5zg67P35K0o1eH#2}{cZNqrs|i= zw{-8UuwtW{@ryVIKB~LlCN34=nL2F;DfJ{Yo}98$n-@hEraa~Q)nqQ;L?n&|&#*x{ z4Id3ce}jHsgyHkuhR07fUqTCcj0r#QXc@S`PiWjXA5yt_t}8`LoPCKV?zUAj zNUrEN1DBKteWI2w@zY1(IEyJxR*Oxuaqciud>a8_DkhuT{no@;rrC@tO=RPD_Yx`G zw)@xHm4mMb%+R6fa7pJT%YR!}ohzSeH&wjeLC-3ZmBBd*o`;9d4+X{{Vji+;d|Axp z9U`3d6@t&ob0<+E-Cwh+E1fDTU*}}7om&2;##@IKB62QpTj}I>L(?|v*sQFKzBDnk z*?2K*Wp1Tr4UQr*c;$Y>%qo(V&T(&X8so+yQ|-%Y^^Tb#EM0ko=+9I1oAeEEG?w__ z?s}R2aSC#U@t7m6FdaAJ=}YId1}mDcpSaTpT}HlG#qsqOhL{ou_vtXX!>)I$-Datb zZ=4 zdPU6(EoT9OR4L0hh+~f__7C0_R1}2WEJWv@7d=Ep-zBcv9Bmzu@4v&M=*K(}_5id&3KO*|nc>45L)Bp{5Im`8TKk)3{-$usa3 zaTEp9r!z4|ajEy1bal7M8yGi-9WLpuvm^#;pr@L?xsG~KnERKC)bikcQKx{pjGYyy zOwEJ+)t`D}<4t*^@t=r0A@D$j>b^CTO&HPT)~#g3&iNscsZrzx$<(Dt z>@HF!(858$V08G8&5d^l|Ny9e`77A10HMAl&EAlj& z7wgVg_{Vl^bIuzyqE(UkF=d`tI}b3Lb|0;1p(5h(1iS-!e0L@o+wEk64LRd%-r0~K zi_Hd7?^ty+LS00JA|cV>a&XwktjV$^Gr1(6g(D0%c&)B)+c-s9CmVGZF4lkVsv#Aw zFA*l9Rn{SgiiiY{ln9lfi5Qe-yiH$U%LDGrg|UAeHG&7wXHO-U-7Z{L`+N1j*Jn^S z;245Q+5?#dDhqOD`$q!Y>s=k6s_35&0b|y1om@RJu&!ii+>K?JKU@|4+#|=07koim zk&EPMl0`))sj1&Dc+mcBeE8?fyEBL%8@o_ee|PE~7VOhd;j-zDL}S6no#?P*agb$a zt8I4?NhF@x%UZ;DXVg4aD^(qx@HX412AQU~rJjxb?5(8@gMTNxc385ilQOS>8A6WAoV4 zjmHXg^JhfG%(0{`DUH|a1PAAbIO^N!6;CunPq(vJ)L-|+^cXEvn@-)TUUy(3DBC*F zWp{VwjZwRv%?@J5%NhHc>W_8q@yR&#uJa!Sm&l3U-dB$AiPk2dc}ryZqofKLP@$q> zq;fUVFOtz9dus7;8Ox+ZJHR#T*V4t2P-z0BPDrP&ND$QKe~Xjd`vShUFKwbQFE zcV~ViIs&oB)GuthzTr9*-pWu0XYbWLDa^IT?H5l?v!fU!5?vI>pp+Q?x@EIA=tfy6 zp`SLchD@tr>6I^(vN$pUzaM#lRH!L_%wem&%T;{l9<_j29p)eM!=`egAZ9;9STkPj zEDz&oI8jc$s%;&;#-^C%nOoa2^teUcI1AB)v%?zdg2z8OIBO^Ozl`4n(;?OjM#m0& z4Pc-LR&AJJCMzbEpYN_tB51{j;YjK)S-b5@E^R#Dc=Y+xRgq+PNAE<;CdE383J>WM zBP|~jKA_drt3w!Ju4V`l9~9S7WZr3=)OnwUW%CCZ@|a+=#;Y@@NFK^nx!Iv2skQw* zLe${08P^IjK5lK!Io7^&rjy@v$%{uA{vAwNKbe#Bcv4QHZ5$*;n*vO{n9Vbb7NZj^ z$s6ovu!bjR>=ZX=*A$(f!*s|bqY%Vvh$td2m_cA(b=rYgT6U)oT%TIMeow;J=OmR+Md zY)Cg5vSbk=-R{G{Nz}f+`f6{P%$|b-Y~%QUBBHMDkpWu1MOCJSn|I<;AG>HJ^I6)f z*&o~Io|5>URIVPn!(t-Y&4wqhsE6Hf5t?sL@r$higE%l6pn0D}IHVfd<>q$H2z%aj z<3HB?HdZ0twcq#|#_0nnZa;HC)q9_{BmRBqjVVg1I*3YIu6w_mcA zIF5xFU8Kery3XU~eiu(^AV6Xr)QLNMcN8CbE$q_GbN76suh4&^)R>^NeXi@J%8Lu& zr_6U5`icJ&i~Wtj{vDG29}(LB*Z&NFATX4wAc`pD;VM74jDBuGb2bUuSOuW++rso8 z8r|;74uCjW+{RNNHDK{PIF8k>O)iGgE8 zytblS{{amMUNDM>>n*1HDO#B(O_i#$XNEKXEBgK?IMoy&yTWI`{}m*vGj~7Q;{AnQ z9DsbB`m^EA2m<=AUipkhmP6@K%!=R%=hkYcVb*p05Y_GN||D1%LBJz@{5i3KD@Z(c~qLkdA`T> zPIj-xVV4GBF|4zLt){TP`D}14Nn@2r>vsP8-BCiVtsf;chqQQQru8_vB6elG!Npi z=DjLM7HIE;-JFx7j^rh$rnA^SNOC|Kf|P-g zh6c9-`;))1@jb;1bHxBI=I6ElLrRrX6&#vR3FW@qeV+ZhILMYOU8Bn6S^>;e3(&qX zDQElfO#r5WNw6PKKE(i#E@#|)K((qv^Ioa*Nnv7=h4)^U)3M@chlPly;U%E2s*lVe z9|S#XgS+CZ|D+as9lyy!+gQls)=~8piocIKV=E2(Qk2c&kzIUx zlEvd_{!?Pk+`gCP!3q-28NQY4DuWjQOd?|N+DbWVpZJsE+8wA=uJNSM;~QO-Ijzs- z#*AM>URpXv*YxK3BBxl?qpXOQRy*v~1|QyH#SPee9}HyaHTE){aXPAcdY1W9fMjEb zC;H;U9N@I{46|F^1v-CxWs0VgN6qI(-JBPFE&%G{_b5p)f2}21ZO&id{&GN8*vO{S z2p_I-17MbOO;+^F-~Z(ZZ?G1olB@tvDSynhee?7sA>ovTV+~p8gFzeT{{lCLA=sJy zTwt9r!sN4TQZM*#R#qwiyYMMtOqv1VYJF90ud_TRD0QjWoF_wmuk`o-1YlPVm)zYX z+RdN)v@HwVvVj_YepUI?8)38WZt&>OUU?zxECXOE;>Z69lt6GKRQN4c);LWxC=uQN z8_(fqVKA^yX9uXFe~t=QVqGpoAiB4N*TQHBRhCPg)w>IsqG?V*y9JO&=NE164o9qUJ~| zAS`4`&j#H-P%52(T%^I*_ZqMxAhB_grcEvO(~#4nS(8V5h8NcxM#|9t0u-qpEX|jc zqU6F=IUqMRdQ9yqM;xll?C%7LYK{UHCw%8>N0uD|2X~%itM-2bb*zizKp2GFB~;#~ z++7p{n4ihadBVh8YN?_0skYL_6oRVLB%8dpnsEla`}}E*A`1cs*6z=m(myaD`+xpdaj>g56b$Zl_cVOs!(0jwD^Kd@T&Dly7nY-(1 zkl+csFYG;<83;&3XI&~7b9>#baCWV{JZ|Rc#W@q>Av%VEbk_73WrJ6W<-m2kFn13N z5%Zo{#KkvPK|wpYL)Vrb*3Q_m;P53n!pE$Z06d>R@)FhG7}a0oyQ%wi8aEe zbUvOe_ZZzoyt#kX%ZiCe8f#Vq@<9B<6c<#7+jfpSb1NF4pXL8%cxgY}x=U&&RSr62-^I{pBPs`^e+2!PY48W}sPQ zVscQmXWBJyV3;bzva?~@M?`f6V8UsMd#GA@Lj!w;DuqniVX z32~}VHR~s8FNq{@Ijke45MszshAhk(YayZ+At@B>UNsO$r6Q!>Q(v-*;6&_OAZUKP zuckbPGiEe7k%_AlW>Chj8jmD#q$gS5KNj7AwaV?1`^%^!#PA4QM6v{OTVDvW)<04y z^cgo@hg}&BGh0h5xNY_4I-T@bQf~avT}nd8aPVsA>MQouPs=+k*N%VUn!Y#RO=@uKVbTK`O=Tecdb3~5w+KMF6WpEDzz(g^e4q?Ju2w$>flYpxMmi5(vxKnUd)>)H5H4Ldm z%}ktFS)7t=vd5WrTHu?lF=n^>bHALsj_Ku!BicDlY?xsc&~|4%XiTkRdnsPEj$`bA zO{c^78h_3%`y&(-=?5NPRC&`B4WY;%&u*L!K}NN_EY|6dZv0yWChh1!v8~ADO!K4V zb3>=B#VAABw|RN{>ufidz_CJp`n;w#D7ndtyFuDs>RGl0a+{v96J+}y4K=T|=dfaB z=Qs-WZPr^FkY??ZW-*6=6}35$WQiuNK=^$#5<9<=r&*4VY&8>$n-GkFyR~Bg(VI6y ziA??ms1Dlq2uU*@*+eJ1wvBoz*zJ*&Tbg6X;dD|eKe7$`S-R%u%XsUWa;DKpU4v55 zLjZdW;3ZF=x6N^YoY_t(hUOVo|4|>T9_!05X;o{iNm3IXLSUQ@3_*nUfwZ)X_3g0& z@xV#gYqf@J`J^`{dykK$KfI1CW>mL}25y&M^{ZTy;|RnR0sJ1k^J%KnZ@_UK>=EaNL@}I~wT> zX&lHhJDeoWpe>dvB1u>`n%I=4sbIak#fci;#E@oM$wKnQP&})dX)r6YKH3mFdvF&> z*L!mV{JSfj#?AHho1ABqOaJ4X8;u9Sc=NNLbWY!1e@ePM5W*I>Yn#weKMPu)DmxrY z3-mh+?5qgZ7_Svaki752c(@AJn8;2tGcm~rw&z@=2FqAB$yTp0=n|5h#P%(lq?R%M zlg;hdjzTrs#Ww4oy!Q29x&CQOHd>r=5#X2*Q9`dv=F|O#FC{aldMd5v#wKL?$-|z zn^6y}o`G~5vu~dVk&K$5*<7a?pnXm}tBayaCwXHJwy zHmrC7orXiz@}x9=X(Rb;zUwv4aofylgQTM>@BX! zrr$yr?6@rt6_IEYewG@v#y8?lXP6Z@BXhjk1f^pQ*9?45*3?fm_F*r#JRg3q$(>bv zV_@@`)rz@dO4L%C@OrX)>i=>91%(>n08f@KzbW+7YR2zl)Yd#Sd)K<-kR7Og$S;Xq zQVm>!R<*nI_`Ze1N9Yl?x#Zk50$} z!>77mc`iG1Z%x@w4WHX_Z0n;Ic#q%(mYn~BEA zyPXrhve2X;e`kX~MLls1xxji&-8h!^dGtYNTS_AQS)75taa)ezcm1p2F^t zd-=ff*@)6_9r^d5v{MY3KuQAQQqC_#%1r&I{=jtz%Pe)y{(on*eZ{T1%1BOnvgr#g znrt$a*;4xelJu_(Hwt{(SKu=14?00X(FOt-03|-cY94mJ4*l7eq2vLPEnWnKUY3nfBbgicpz=5`3$U^N(uP4y)l1aK_y4-OGL|g?Mo}r5ij1scK zV%F_AE}bk(hj0*^7L%R{@c2q;{wu=^v*MEA+TX^Ff_LPu_#v~eGeyu9S?}H__a!RZ z|9BXIEuo_faZ@&CO^eI5ow@S)3oAP21Jz~;2~u{DzV%OKppIsTJHVgKTnROQN)#3r z;0=jSx$WvvOK?qsOCY$rySq$` z5C#kGkl^laLx900xa%OnGx#7gwv@cHU%VQj)1Frmjt#{T5_>2A#4(DE3 zb08Fu>(0VkPdlCiw$%D`3Do?IeYsom-yB5&kuMuRmp@*N41RCPP3LrqDRB9Zn~jP9 z)i@lf5AYZNOWjM`fjR};FT^@U4Gq(>kZx@COS*m`i&}8ootD2FSeHx-g)KY*<`Rtn zPRT`@K_-iuIGNvuP(-%=${~8aaE}VR3x$JCr4afnDi(Z|Kx?NzhEgn2*rTf&rafC* z4qiu*Z(q!vo<;95WYHdbIxuGa0&mGZ2T2D(1ho(U$*>cjunN32I`5D9DgfYn*6bJP z6PmwE4ab3m8o<%Lhk14#UvIzV=cZZ3E(jmLb0x>dmD=QuoODkY_KAgV2MH<-riBu` z$ONv@oitsnBYo5Zb_MHtA;5|C$6Tu*a^W8#rhYa;VHl6_Jp}aY?;bL91H|!q(9+!e z_Y%17v=0lg;?qqE*y%{5`GtN8D`0bi#h#+au?UYCZ}SQ`Q%-+k@$C0tQzKo^%hUF&JNKIB0wWv{hN6F5vAqen zl4L#uhVgT3ml_RIA*IDul=TXOYd)^iY&^Li(Ncx_%g!4gixhmGtUqsTfXLD)<5Rm$(kR?&=oPa&L+J=OD|y(Wl6* z>v|nf52*}ZEke6}76i%8{=7{J&7_V$Oh*M*$N0*tlu=KEzjdd*0J6j~qw657cp~g@c-v zNySoX#Nec!|FM2;H8UAlB97WOUol7*$!XKYV0iZzrrX%s7s3o{2h-6e*G1+j{tH3; zez2*yue0ktQK=hq8+$^aW)1tFgc~!PqjBLru0|l!z?vD6=NNXE)@4LjvH?e0?w|1D)8HP?P*=n47H?6&hgtf^)x8@u^$;P~*G ziO%WCc@SZjyM}X1Geyu{ju1zx0-t1HB?g@= z_}aW1onj6KGN*j|gG{9S>X!9mCU*P)@IW56=#L}m-M&Zi+uKY$_~+ZV0d1tJ9RL3H zY&@cQ4fip*xGxlboR59(ednShQerw*yW$tcwr3o z?1$BWVu-?PbuWvJ7m`>~4^HuUc>yYI;h+~lI`3n_Va2bE_wNE)Ci9fR^Gn>GcyHA~ za}Pj>GY?#K8$c_se+zqWs?U}87Dg_df#sOj?=Z5qcyGt257L~m+xhz40B6YXzY{g? z=V91VEwIJ^`2dUkpDVEbpMGtXaEg73^Ijya;p!v2GRYLdTq@SM_M7U~HEgUuVqUlz zXDZK)sh~;-#8y^mj1PBV*)w353f8Zc9}!3H+!Gw!X|u_YV1KN z-#@lR<1JE~7sPT7wsCoG^(!egpCItl{2*QBE%GihfLrE-Gs}NRCFkOasCrizp_IL)vWH6Twsfqv*)OB5a!KRAf#I3W(G+RzL<6h4|ZH?%>w+g*s+ z`*7X&%Fjj5-*Db7M~1PA^#&yC%iBp5qs>oCM_!q&sIOG}b>h@j&57f-W&8E#TjNeAOSe=nJ%|nYIKSyLdRx~(9Y~kgR`MrY>EVr*raX+-^ zd1df2iBs+Z(Hc2J-Gx3(g+$hf4b_^H*B_k+n%5pSC8aW%*w7q3;;ZImEB=1_@Zdb* znv?Y=&CR8!-}GV@ZR&s&uVzzr1rRISAl(PF&7ePy2WrGnopID_K|AEaT>f6)%_eT0 zuK%3ZK8LPG!|S^pbsz0A?i$>Gf~rs;goP3JrbGTz_8qZ+O^ zM&eakR@^Xcv@>MJZlNAkB;-62pYBzx_96JsSg5#MY9y zmpf>lM59rIVnbZ&tK}ot5~rD^cKl2(U^$+D%=Nv!UtaZ=roY>740*|;f@fUCr1W_> zVZY@#`cl(2;7}#N=y@}4%JkH5k*ni0D7gF?891e#L~2(nk4twUNuCkvjhMW& z7;RWH9N;phV19hv=`J?42JdYwqb-bCuk||U$LaI749xCU%SOKV^gb=7f~`X(vXpk8 zaNQQAatP}idN1=?`xVek`8(4G+$6iQqecNn0fz?Yr`9RV&s&A}*B;79hpk@)nRkU) z#1q-ekWaw9hdsZZYY#vTOn(1=Zm(gm|{fk9lsn?iP5I`uI{6j4q=h- zvEf?d{fQBVL*w#|q6auB#2^n=r-j5oeD7Gx62?-z(|zSvVx zW1c*W3#_8-I=^=~kY#NjL&yb$yYHmQed3+=klD0yruRY!Q6~a0G{2M7_dZ(l1zoFE z2COEEeYRi2WLB(vQbd~e$|6SFK+5x1$U*EtA@R=I=tqupfpvw2*$YQ&6TJz3w|&C} z2){6~V!F~J?Egj^bR@HENOY5$u0RuFa(^+@z}}OrqJCS(Z;ZBw>MvaI`L8<1qM(QM zKo!UyZV6;s2#P2y+)1EsJ}GdoZAo#X>Ev0DzdXS8Przaajvk4peV=|uoLt(3 z($P4kIj;x6Dh|IHXt51kH_j@p$dm$Cimysb;`TSNRR%PT+z6T&;uooK>l%JlsAtBk zYsSfL;I_9}mAKK|mZyx6yp~|4z;pxf#o~+J%iq9^&=Z$sKMASPrVcG>w=~0TTD0AF1zvf&#HP*DdW_!01&nG^vq%M zT*hBp$>@0=uHpO7s0WQ8k&AwHXDbua7eG^(4}6nu z(i5(sm{Ap5Q^1%7G@3H$)^Z4O$bS$&jHKEH!B@91$E&QegXONovQnW`%3LRiQ5?xA zhh5W49Q+_)CD=a7xJBk4q?PaFG&YSES)84;`RTVLMO7o{%FHh;bLCE(K3HTOwsZ(o za+8!22D7EUwTQVRN*2HajQjydZ9bE|Sgc7bO!~eaP$!SsFS;>!z`q`hKy% zu!*(9o9^Q{8T?m0GU0w=YVyS8I=%ac0vF@$cpSA@jNylqJ+aO$t|4N-{NL~C1H19= zkLAn}evPt9cCj0%vM=wUtl}g`wcmZUCp8-ByKx>=Bdb*Ms*`iGgLBZmGL=6m?3F7G zrNUPSmjNlhNQdcnaa%c#Rn1Rx!(RWUgr3|nr=c|>I%;s54GYZa$FA&x?#Z%I7}C4H(xo_FmB%y?G4=xuU_ zC%KubnWypD?k(0jS{Y6?6mJh~oVIXI2Zri|HH48Xx4pD%ftb7YRqm1}Sq_D95$vZg zv%@^YDW?3hY*!MTORA*yAV6uMN>uU( zgJYBCvwn7%nljyk6J__!PE&hNv4dpRe-nX-1h6`x!y$_S9P{6J&&|4uIr*K}$Esd- zZbln0A%r5B9{(7u|N8ht@M+}@$D9Q0%Y`IprY~NEC|!h06?m^VPo~6_2N#6g3$+RD zRU^kamIk+(;FzB{ZlPV<)G*sB*4LB(3FF{!hy#vI@S@Z#Za6GZ zw-${4jhb$m6bta2>MPgat#zxasy3WX+MkA8{;nyhm9yCC*2H@eQ9Ykp8pFIFL%u93 zUE*)N{dHnC*>ZsL{P&7?rqNnlWF z)pojT*}WSM1pNZ`*-xnV!#_g@qykz@YL!Fv?kayB3({yRt87{&*KyRHZsJ~i)usuT z$+8K}?3N^}vFHs^+YLl&&FWhx`z6q^s7Ut}=*f2trChGHBF~+$NN`J=yCU6w@v(E> za|wIBVPvq&R~fpQr>Yap2bt1#M)$n*_!50T&EMz(%^8;71k5875#1u`TBv_#nmn4U z(SNl5W$JdlLxA`*d1{Ca>Ag^t(%kzf33Q z&PI_;(FR1(v$_7#c*p+Q4_J|t__<1P+@sP@7hZUzlb0H*a{gV7y(>j%M;okOSQu2Y zKLy!&FFV~^X~j8Plmc_J%PpFDlf86$Wr$Hl$@ZIv*Cm`=nBr}YY5GBN-wOD|rhJ0PP?(9PPj+sHT9fH51({q|UZ)ec>D zXnAKrA@$WT8>DD=&+4IOzu3bYH;5qzsj$%3gb}^=NCGhx%Q120iPaBoUF>P$>5Y2< zOjkPg)4|HSuFqFqt~l}f|E>p|J$D2~C~Tug5aP?ssB2b0 z;k&}P@_U4)s}mA1zZ+>^;2s^m`eS7pW4sSKK*sT~oxK6eJ7EzX1(ioXd2)XpHOq+S9=GWU_}#OxF9wydw6ByfpN7#^<|z3 zo{jMH0DqIy8qRp(ElZ$-nl{9?{b&p$Nz6k8QRq?(V?pgqAzNy1m488}-re2%rR1*p zwCY5!T#?`94Op>;-hFNGSE3?qNeo^Z#UEBu8`4_n!?j4yx_7@s5kGpVg?<~JN`-f1 z%9+6Jw5bv`1|55rISegH+_eJUBl9>wi*3jlwfcG{>X7 z8<3~FT~K)jiVLGA0~ys&=IM1g?6DXKf#0k za?^x@qu)LEVj+HW{+>vmKK6YZ?W#&&M|dAGw$Rl^cMncx@;3actATkv?jV@0%dzd0 zG_ceQ!Wq_|EaG{l(TcGp=#gx;~NC4T3UoFjF+Oi&rY>wZxNe?*9#LO zwk6A}kkFse9_@8P&DgPX@@af9QfYIv!ZB{I!-|E>xlX2qefK2maf)<)Cz(VF+{wM2 zs_Oh%xU*W1Y%EEGy$8_vOAE zhCZ4pfi5Y__FN~VvNvNi^}UtCY!k~Rf)qv^DL6Qff}f(B5o}mq zST>Ww?2R~B<=x?c+q^JMAHV%$-HSBQlB?mdYd3|~ljRfW9p8=BuF%0ff7Iqd?>%_5 z&<<*#nt)NHbchN$CumL)G|#wMFlyKq&VpEUCebs3qf-$rz{ zOcm=hnWRKp`B&5ZHrNqUnH<)XCpPlsd=C`Z&h0L~Mm-JCsiUf>lQV0QG0~(;+^9UP z^hbR}609)@dK~vAN$38sVDlqR!CcQk6sWIl`Xit`;F8E3a^R%AkkXN+;rT@OT;hiR z1q0@MF!IL0jVn!YmY%YUZd5sBxM=a{jpdd#1&Nl|#p7Q;Dt!%SEIWRB-zY@EPZ$)_ z6+#Yx(P@|K;wj5${Ry@%(>dL>`*8?GsNwVSs@}Jlr+*g%$}mw)>3l%IoqwRbKbP!{a6PUNeWcg{dYUs8H-+^@Vu9VoXPU_>7D! zmqUka#1-D9AcKKRz7B1O;@TF(ITXc1bc`Q_|BJ_f^$LH%!2fW{;uH2vX5K@rR!mxF z%$2;)zw(BYM#2o*sq=T!WEac&vx(GK3Jr=w#a8aO3LvB{lse&utS}@xXw)Em$ z7*#-JwyP5(DnIxNGJ$$~8Tyz6Gg3PK;%jhkFib;_i6gejOQJr6hnH&kNErD&?-CkK z0#DEAd{H`Ell0P$Apde@yiRP335|-uNzh;u@Z3w$!Pzp{YEA65v@@InX_IZT+b=L) zmPWGYUq3p3wa#v_+KXrSa{0aLx-ZlKMKeAjvR`L2-iwk4^sB$<{&?U`*;O+XC6W?h z_Srl<$g`>{mO>}kyK;S9_D#r8MUnFxo#MTY&1gc)pDd7ur{zIYF9L}01jO`v912C| ze-Cll(J(`8P(7Y#E_L@Wt8+!R%XfM;U!OTaG6ctl}yba6~D-DuUBqi=emW(px0^Ca0SNC-va#fy#&Ya z3gH=Y#*y0UN#3(hi@~8XIvIX5kB5j?+ z{Gf~I#lIk(>{v?~Pj(A2v1lE@pJ>ydN2!+;SG^Olhq}=FV&UG;R{s{pqNTI>b8*BEMHp78!X&2 zYLI8XfWvHDT|mwr7w0(r!P;w_tq*~lAQTV6*#GTg>l-+b`9XQxFao)ijOg4>Z@K_( zM8RVa{=~6p2xFeeB9Dv|-4)X5l5PMSanUwWSAKE7&k?(d*W&Hslb%`R`xFB27ePq; ze2EM@!~b;}@hz+*a3j?fX7p>g$2~gEwlQb zVzCY#qNmi`=)-M?#os=&P1>%bsj2C^A^x4OG=x^CxTq@jwj5(A4#3OlB9-B}ArDu6 zKqJC(XD@#Z=6z8X(S&cY=9lDs57H=N)R;U`Lc5RN5n_&G^+wL(tGs!!y5`_TYtXLFGcaGzzQG(-Nii z^>zNjA=Z-rD*9CvpAjY_o^-nC$e)UNk2b?!CVZX)u8*Xe7eFmG^?AldzdiupsP?&0 z#|^|X)_|e_f~9R0KA4EJX#`w$3ZJE7S&x299}0OwWm3C_7c2%>UVX3T((T;jJU0G_ zCT)*l5!H8)+h}gQ{R-w^EWFSWr`%*S6dN^?S5PR{U^q>t?OessU?My62+=WLdl+c^ z$`~FmSF)S8MKhv9Av1`o7X}a^PwNIUm%&lTP^IU}bHU4z;^Jqtq0cN#n0ux*zbI@jd^}d z%Sry4LV)MI54G44EGka9ayvSqV96|PW?Jm*2a8qs%vNb~pao<*g# zPaW*f@=4GIJR>f~0I|%!+|1yiZe;SvB)lk6A!9iqez@A&sB+g7Q|=5;A#Du1NJs4! zqDq~Ifd8$cj97jWaPTVUQBR6Z+EgZg|C@0i>#8O&Pw-M+l_B~2nqDW7fk!j;&=Ft9?q&E}Te%pc#?x#G9n10`@ zJB^sBpT>r)SApL9)n4iZh732XYhFR#ISq~TX+HR}w((NYifTsZATKX5<+i+m1(G({ zRc)l_?&~nF{0FU)C!c>=5k%7Ilf`3VOvEv3-hnZ(T(hsCUd2-iVz4VCw@|zHT>Kmt z$@8;NMrM8Q1W1@a(M7L`BfRjAkj_lOt=K5h9$ZbhuS>b=d2h2>`8&?9*{#ui(agCL z6xJQxCRMX)bv|W48I~S;^cBp-YaM)73#xD9t6JcV+JcUt+n2N^rd;>nl)OJ~Ll-mTiZ2}pIL?6AnZs1Hd z0*!#qJ=M*z3}s^47Zeg*xj*G%6ylX4^oMQAXpc}_qS3g}R!v232;n$-?GY!RouqZc z*a@?4kSJZO&G8s+tsW;yTaZ^G{H~72z;#D#g6u=NZJJ2K{qiJf*X0Q{gEgLxnWx#= zWVt2|Dp`kuBVuK-0LH^kTA)BMm zhKB*r|x53a6KM0)Zu(g6vUHb(6M6S%tCn4L3>z~vZ$gWXw zI-mbQNspheA0E5@AsAwPH)zh7q&7(FNx8pM)Cjjo|LQID+y!4pU(pI-0nQjjbT5vc zLS&>%Wy?%x5?mpcAyj*MZbUg>lIkPPP#o%PS?D zTQksIk1eg|o6eBIR3nB5hfe&RntUZ)jyESm)79arku_j|@%aD)i!I`oA^ zw&=a|PF$PZ;%?%{2U76kg$OXWCSnRbd2IyN2icyR=jB#KxgOq^ESoG$h7iAd5=qc1 z{JS*fGb`z|laiOr)1t?&ISTv-(%>@mu_^WERRoT`x#Yz)c?i(puQgeKYmEVlOT6KR zDMwq%GJoPGh)eCJy?P`h%Igv^Xib0TDc+C}H7qash)X`dbk#iWVELvfC9pfK{jq{a z8UEC)J0_JEqb-@UVyMY(5_*4sdT&ev0^ zT?W96fI8}6RwiROPtCW4TXRDq`&UY5CY6g0d4kw_u^a!BWW)&w=g@K!Nr!a?Uj#Kf zhMEl~$Ba_hHa3#Ha1~LqdmAzzmp*z#Hhc7IFigD!bMr@yp3B~xKsC--^8mHSBTjEb zRTRUN@Yv~^Ok4r=?g_r_l*MUH33*{uMm%kr-J&;w|8OZdP3~ zdQ%ggANsx6L^|2%5wxb%{K!(2Ipx?LDe%t2|NKN_)r8@b)1X(4) zM#42P!-w;#BIjSJn#DG0{%DhW5bOpBhdEKl75LM#7zpLRtcN-- z6xCC*7LFLUBS#q^z`KB6FfPh=sTXPt8v2N4Q3{QL-$ezjR-`VrkMk{7{B3aa1>mMQAe*R)TV#Jwu_$4c%0Od-NOtefUFKJK=I)T~37@>$f4=Y>QOB&sYdDpJOC? z05mWt?+ox*8sJaK4%3VwV8oC$GTr?`Cw7az5o$!lbGZ8Ml!%!Zty8Yy>T&@hpaLT6 zK@$0CAV&~IKy1x11S7j(p>i+z{<0N7Fs3~x;J$SURO8|Bbb!cCHNy;&ec{B&n?RP4 zKIvEtHE6hA7P+CZX{F6mI?|EsEf&cP9j3i5zEdzGZlHZ=CA+{Z_4}m($`Fx8+;Y|0 zRIZ2?P<-OkH)>Q+?yd>3tzsq$-y(>~ZOofJfORg=(#JVc!`bj0WhEB9GN5phl{|!m z#B$+o*~%5p7&9nqs%BVu1J!+E3WC6iolc!1l&tpowl5tVK?MJDfsgFAVBkvWaIcan zL0^}MgH7Tf2IJP>v)tWq3leqGatJ1W-H%8{V$|G7UC+mm21K+26CS z?MfG&Wzfj&!6~M!BgRpRe0*yGWH!vkwA5sn)W@cP^T7Jh;9aH&;x7pLdy77$-VUcN zwlg5>(qb`gf1SROp!CMORlYhYz=T$e~aN4^}wQVq>|Uzb{^{6#Dc zuZ(5=QQk&vmQ941p z%vHyppJq6xcS1TX05p@czp9ITD>?AGO&biG=Ct;NO7IkNQpp@toG6F2hstpaeN0r-%}`!TRqeRh z@Vv#}VmVbj41e{`ri`IU3nn}!hg9>vZ|-y7OC@gA8$ z_s^LRO_Q5yg}XTp6i_U5&PsEJ2L$vq1;X^}3Q_ETljTsqRT#9YVTuckb!AL)wmk17 zU0VW5E*rceYgOMCYGotGls_E)YB5)bXE=aR^Ye$i5BeX(IN0ea3qJR%Qpeu9&>GVl z@1?%2Fna|@T^x?Z!`Eg)G-Kc;_YiLvnIKT%?lOrMSiMS+3fpVh_4;qIahB*E*vbAZ z9(podI=uKH0^eGX`KvJwa^mwO1I+5Y+Y^0|j@mdKe7E^hNlL}#mQFyNpZlUr z@2k{oSP9^yTO)mAIkUYCG>tFt zsiQ#7iG|X&ixH<9R4BiGmz`v4c)GA!&soSwnyt-Mt>7$}7_~i0E0it&5P^n@liH58 zN_skWz_@J{4T4O+O*_9hAqW-ippv7EikvG5BO7>h9JZ&hrfrr%b-*pKe8=8%&D#?j zcu6pbd{Im@%u)93GEeF>o2Qrjc5WP_B7z+6k{SEJ=1Eu>DE2+Lq?KfP`Hs&1SO;zY5^JH z;k^@}9(pwkYcH|k^4AZ~0Qeq#-SLeA2nnQ{89&Q64QxLeqW(!v(Z|~&26{iKE7kh9 z(atJ}I)rvdW~$A7GeivH65>aBliluQTTe(zd%4m};xhO+LviK%=xPRP3L$0idS$fD zt8Yb*rQBcb?Ip9QlW?w)+DO4^{c|Myr1y?+8eiHKNEAyE4&DhrKjHURCP%iaEpOr+ zMsHEwOc40@!oyk+uzTFb7FFwaT;6W-J|TC|p3(`R*MdUe;T1NcJ;H~xlW~MZBBlIr z^NwI_ZWT>80~lbdBs4c9CJOJB%jB2m(fkV_+~AVfhfp1pmBmbfwCxBDac#tvu!~tA zztS%fCWg~44Hm!lCCQ(3bH;n5iuCM@&!peuSX{@dU~EikA7uCn**?6pYoL<; zrbPz0-(3xRCK(r}9~Wc>3T|RS{7?U%9yI;@^5kKJcfbN}7uh)|-{o-aPv)7_at049 zHHF9V#^Su%WQEDmW22cH#f|5>OxG;Jg-XHoH2`eA=_4bqi+XG^c+o8W>?Rlk%4-0V zqHk6B`}>%Z3G1cRy}oGENd5Bu^t|zo{%dTRXbeck`2u8ENYy$^0cJ^X1_@ZNqFuIQ zoMRi{V%@%uol1S)bzlIgB=Y)dv(6^g(GLsljD@`s&0I8Ni2(R0Ex48X;E=>>7vLn6 zCvpU|pplIQ*SA_lCg(0euAhzaCP}gUV5(3q(FaoI>&u6}ivUb!6?~W>RCWTBY+=_% zQVrlCx_yC9P;54r>Bo8%yPZGCM1#=_u4Dh)I4|7*w6s2*%ufwBz3SdC*e-3Y5`xa_ zW|pTdhM;f*a6cHL;BkV+`aqIzU)u!kM-Vu((MDV+#CBO!$oLk>pxD?{RztaoIw(%X zBss9_xxnphTe1~xVg_G-=rM{@{!pNopmyg`+E#$=-;<_k*T8!?FDo9={BKseV7K<) z{{A0*fHnWmjRF7v_=@|b00hJVx&O~TjG+JJcfIyMJ2=zCbWLDfS7+H_4Qr6A^vMD~ z919kpuf`&nlh`pQ@9gOo(Su^>IJtlADg}}AV(5uEM?cf&x(i3rlkA2Q8J$>>{Glj8 zcDaXper56sbi4-Cc<)G$#+1$p7`j2?vw>S;D_aUURI{K25T810^PNF1Tb>a)vv94SK zuuMBb?n_3it*ZL4ko0IIf$QyPW5iZXC%HzxEB28(E7~*v^*5{v9GSsB=ez52tp{9>qV>=$$Zu<(QP!E*8!J{f^1BI)UV80Prq`1>4#yD2=8Na z?nX`FO$Rp3Qg8nA1d|Z*WUrmwu{il!23=^NJXI4Upo?-)6uZt>WBDbYMc6S_Ik{n^ z5dy`1bVNzP1Yq0`iS+txXDH^<0w{{oQ-X#2)4$)6{&XB_*^B2L$m7fq4*>z8zn$K- zHHH5??`_^Nz zrm2lSHFm`p>hv!Y*ving5;@C%gQ!x$yv>@-tYb zE>*zGfP#P1+9<8I%6$GB96k*;LK8Ed$;OB!+>g!_FJI47`Q)r$NLz0&#AUe9*gvkU zUe?+uk@>u3oRMI08%sfJr}d;oXX(Cn^6?uust6TzoDbZ2CfJ3)wo-1!&i$+;&kV~I zkJZ@Z)K8n5)J3o&^$hg*ldj$WCa8&reMrv?yyc1Aurbd#?Z*22>aqcXv+R6S(Y&FjV_Dq5|V#k^;W} z{yxv@Z<#0Ra-=Xd7j0+;zo$0&hVE%D3~)Oy;@=YRi#FEM3%(>dovjsHQ2eKzGsX7Y_$k`p_&vVjDaAzm zzqZdE{Ij#OmGD^W>eY~4A-&yyeJpSCH~0t9eB+50<%9Zy zcdwCDY8Mzm;gDG%{ihctpPdm$%R}n8qwhx_7P8sfB)QHXU_~@6QT)_sSMZ>>kQL7n z&?@v7{l;Lb>V4HEwaH(ArCNM^YxkY=vGNGJoX}mdl#r-a?xMYip2edg#Uf6L;w zlGJ^5Qjx&jL3a&|PaGtTHZ(aO7XTeYrdgZMoU>ebs(^_tx#PRIsG0US+ZcW|U6L9d1oBG;j~;hJO6kY+p%M-DC|7PLpXF*mNx-Fhx+Ad!By1yHHEb`@e%WcT`P#6>m zDmJu;Tx6hYNn*_yI6lGEj>&9 z7Wd~U_rmJM@4FAcKT8hed)F>xyiM4orhoSiu3+^x#Cq@a>BWO3Us7;hu*aog!^xTR z94mDAFAb#f=miIk_l7;W@vkrM16Y228C>Xnc33)UWZdST&;#8M92H3~{BBK2_(*2w z70qM8KJ1%j)?F^`z(dqDn;#AH-pj^QZ0V%uS=Qh}{S?m|wyRSy6eJ-#|puu_D7Wx45_0A2B z6zzf!F4R}^uBel!JLrtM7K-R8w{5|x!vm$m(toV{rDv(3Vsn2aCr4nCb?B!P0B@pyJN!XIZyX1TIkmSH)zK6G#EV#wwHin>+;x3`qYwd zB8xT4$kESjq$qu`nZO*4gCdhUewIXkWd#q#zN&im1{n|`x$G#3$ zjMd>|$w}&)mh9SoyQ&d=08U(ya`jG9@?=tKxD{+0wX``skD%N=q4Na9ohi#Z$~|O1 zg@TJk2=_f`P#5nzz9MKU0rA2&m(I$LPUSQ=8WW^;+b4HhcJij% zrI*=49fmGJ zbc@LfG%RzO|LEib6CWf;6}um7p$A71X5vXv2;Okmsxvm`Id3;>w}~-`v^Hko(7$W8GBK!kuvfEy*Hf&}1Q{;q*d4+_ zUUB@zRvx)?60prYyT;AXQyI*yFG8NIV1qXODa8=;ZbclbYM2irclOy)dlq2t;$gfd zecjQ9khBL)%<&KW&ak-5P5?6C8FCRky8)r}n;atZs@$lk7H;CS|E)_>NI`u|IW6jR zGwMF9=35HU{#sM|iVz=^I8doJ4Lmb04#Eql!l;8Ri@nK2l&|gKF8{)muJ^UUpj~vPZ&ubR zy9XhU;lcN_>W#Hx_c`LZRJT(EY)k0RAb}Ah6u32MElcx&CGt0|QfFf$MisdsbYL++xyX7OwvzkC&u!H- zIG5a`Ry^is!YhWQd4MWFauyt%&freK@B58Mkr9*&V?7(mu^L!Ck(ToxuZbX18Qm(c zRV#Q{R1kMNgf)x*``QrtCEt?EGht2+pW>+@?K$-=WH-&mC^d|uqw>g*@$|?Q(=H|) zubV+Qx+G)M;t}f^q;k449}_S5Eg^p2koSyL!ABQv5pS@-{rFaVZk^X!Lp9^hfT64O z43~e_rLj?-w;kzzi%haLo``M@Z;3(dXH|4weqFE0jBXRz5C!^jNAt?DbxNHx7;cLA zSgswgbyWWS>)VcG5&s-`=1M7w)ep6l`-W-n8ML)VAZ}F`^mCoF+ve0oE6# z3jqv{)Vo<@-U$=rmnIkCD@Mh!m>)mIymnhq~TfsU;#j8dJdt5l)r5*Vwl>y2`N|A?5& zU;<~&)$#fZ1bDKUOItg>LBb8CGrZ13a_5q&(N}GUvsTG>7cDB*Y<&*Ng%^ZSzHw>s zwVk$fFxbK4(OaKC{;haR0oBjO%l1m9AU#XyWl!sl_OATqD$YKk={NHAzGgLJ_}vJl z;5h-(*(|(hQz1w!Y!zA+cM@G9+)qum);O@(2oF-Z>|1;dZxki0KJ!*-BCFK84bViQ zmmz_UB>auu@JjFt#i}qSi#CG1gHnKNChG$U_%e)RD)sCV$)uBW2jWA8!$4QHRc@`F+X~}RvmQt{*3Y|> zCZDVMOIWB}P_G9jNBfFq?r*m7o-4^~RE2zX@A=Rg6~b%(ie^@!dF3X@m2>%DTY$(I zwT~h7qYam1tpqHn0r&aCq3lu@MYVKa3oRr8oSQ@`9^YlB>Fkzv!vik&x$J?FUMOm| z@SCf(CJ>XWbKA^cN)ea&2?tw&(*9^wPCRfl=8q9eT7?PeizOIJHd*#Q;FlzBj`5Aj zySZj>1Kncf%lDZt3OKgdbp+^%vpY)j*JAh--=$B75U)ujNV()V8!~4n`sKeyKvNzGA&dC_$wzqG9JvOO9?b8%dMwV-YK zM_x?Xt3A#v>mUG*kMZ|>WLl5UwPLmPdz<Z1m@Iv4tpH|(*H|MIgclc3k-8;6H&TBS6$EgYX$-23_t z|E|?8s3?8>PRjgL<`E6Rhhg>%chb*>Gwydi=?FWk26&(IC>yW*d<7S=HoPlzfIC#D z+@!)O%GP;RZnvcmJcgXG;ASUtqu=X>p0KL?EZ9qZHT+pq~1>SgG9>tS<_QCSR z#`W{~YZPanav(X2kRl&%CnRf1i%sz9JXmy8yOvJ7Q_3g-Awm!F(4O8m`Lt^{mUiuz z@cOHJ(PF>PEyEf8BBFD%p#F~<-6R(3+K62ta|_tB>%{Oc5KT(^R5!x+J!ZW512L8! zi3yk53Hla)NMH2Ex`k2A))(^2ogC;gH2a?fm2MTpKO4L_u!O`A85EvmFs18?J$yvr zGgL!5#2YQxsBm+b9`8~z0LndJ5g@is6JJTp&h#};J~?S+FbXe7_>-W&HvxN=Fr)mA zm}H%aPyeFX0GopFD{xfQ*bbc}1dV@kg12DcD$NE#nm+ISUg@xRomEkA{5_~;w>~a7 zb7H1a+Yv}R`t+0NGx_O|f3<^sOKQOtoVKa^i3IjoldPd;XXQ|J`i&7dWFx9yu^(s|(!+4kas0smNayP8^?)OP|0RSPlL{{_J82&Ui^M z*(ST6kLG#ciDuIOshRSg+mT3UXg~9aDs*6FbaOG_?^&6l9c6&G?fGMQTPmp%`9>x- z)O#)hVWr3FY9kL5q~q4-)6VuA*==nUQd8*f4@sEx4~sk!a536yNcn!Zw!ok1`s-kM z^MeP2O zo9K~|w;;whk|hbhZM9}QP>Ho9uHUKE84fj|6eP*z?eW}cLk zQSJ-0RG7zOb{?en)AR?MhTdc>0gVKuCrbBAQMhj-yGpKRyABm#-mz_C`f;MJw1S>53ZNMr3^BAk^VT`_ddZ@()bZIFlaV7Y?&>W{RIaaG2X@0M~_ zI`bN?19N>udd@4b=2(YxA%DRne#qHDpO~LFi^Gu}%34HBm>U6Ag6kBiA0;wjd$@q@Y4G08#Muy zC?$uXhw&ypq4pU@(vTJeh_UGY&Bct;S6cEtD4`aSSc4#v%5DzzfyH`OLZObZDfH?cjNv&?I4zXmG)45%TWvnF!rGeX-JHw}qpC183gFzbo8BoE z{KfTOZIL9~2>hLX{`C)GwLQPvfxk#HT?*1!UJ)Jtqqp;HYbx6UFcyjkL{xek8)5{c z8bpeMzziZv2_@7}gjk3mjDQkAP?S3AAP`_2Kzi@J8_Li-B1J$zfe`|RA`tF6@wxX0 z-22@5k`GDFNp?MFzwbJG#U_546>2*d6^5Bj;GduAbnf|5V8A+0h1J$G&_C{)=>PicoxJS1d?fy+YxA*2u-@rRnswLGBLQ(D5 z!}jyP;XftRRY`mOvT=KA*L!CrmMECGd}7XurLOzO;{*JfnHbb5oWk-GmktpP+#b7= z7Q913p-*wHW~N#ctW_+sJxsD~4-RHu8;bS$_MmG<_RRpg)`59GI3v5= z#Clfg^}=pj$c)A7P`Y4iVd&evg>Y+AK5K1CDR&Bz@HKW5JZ~A&Y{nW)Ogz952%|B~ zQ~srDvjs_iVdeLCc3Yl0#=_}pdDnKm&wnYX8!i}09o+VRk(qBkB2F8L+~07Ek2eLM zxM`j!W5Zeg5l`xAI=InTuXqRj^}NVz+`{YK$;|Nyl(2pAIthJCSmVz7Qm3W-_{v^B ziAG+MSs(s@E)y&&4|U!k3>y}I#!6jF&a`_Pt^g$@U;O%ctdRJO#SZr>&$H_#>r%u` zBd@>E(o>kMqar~qfjhU!s-C_Sb*-4Id-28ZMZl+OIyBJt*z;L?DY-Lq8LWDUhjnD0 zSBhyppGu3JJ`i{+GcDpW`E&}tEdK3tRh@#y;1fAIW}Tk9Tw66Eb-cuJ3BCNYZl7cH zS(~H23Tj32>I$L6oRG9~Ez2=^t{xu{MkAeGwc)>YB7w6Yecc74~6HtI1KcR@?AGIxY7e;6E&zSf3U?QStWV>vg<$U=DsDAeB>`wDIH(I zp6}^=Dk10O5p6;eTDPX*`oy|voWOC%2G5^eZ^kQNrr(d(#K^De_G?n@&?&u+*RG-Q z#=WfekDl?Ic20l(;CA1}pf|IvxQv6l7ir7b|YA4ANJNAX^1`_lGDxDLvr$+n;=W6U5nVEXh1@!B5Nb)vxv6 z6L)Hr{dMluJsx$+`;&Ut>Ert%RMl#y!;OgpDRnU^{&}?6&Y$3N%Q3y&W^q=ZWrN2h0Pt{jB`HfhoBJg0%1)mtTT;w5TAuB&PRx4?3vg?R1Mdi{BO0v2WMQlwmO$ z;o_ULzC%~+6EZE;5)|GX2)GeoP@nABDFJU6JB!`4jFfpjw0tZM?8P?kwu_hr--wjPbLgI*LjyWE_Q^DZ3n_d{tRn z)AzAr*%Uak#$OP-4zn?{NN0%qivgQDEM)j(*STwLjrT*nj6F}3Y&U;)c9-mY*UaDz zz`}8(CB~C&wA@=xFYKaKC<7I>c<)96aqT7LWx}%V6k0n#iaYk0GVS+&qIRh0S!t;Rw3+`Q$cIxF#&S9i*gVVdY7)1y_gm1AQT(WpW)VU3tugRNG z558~?oqv#VOy6V&QVas(`>H-RRaW-ZcQi{s+8>%&@>dj4fo$dUW3W}lSdSJ8cp27X zsNeX`)>?J#(4t)XC7|xoHD`F)0u>#hXuK!03Xfz2ftI;9FIh$Op|Z#QA!Tvh!#wp5 zfk+k%kIgE$mkD<{#pW~vCkRIUEg!^$eT@$Qo2}#yO6z(;xX8jNc9Dl@IhG=eOXAiD z%@t~5+6T2z3R1@r> zFy|hhLXFx~vFV6Aq$Jlr_0MsW>KQ5i_%LTXE5dfyDiX-Ir>iBTADu0dK6kUhcdLFn z=k!}?T2)oC3MaWaF-0pHGg>;RnB#K03LlA}`l_F4!~O2Cz~_^n1kVGUsO2%O{}nXN zG}Z@}r!N&GuJ-#+HDvTBYC$KrcWW)bKiA)I<@q7xA4j@#bXpfE;c&S2{vrgi0SVh| zK=<0JZURIDftTx@rbQL&05YG7VCqyY@kJ7$?|JEis9j<;0MNNy*;p~f6tGXQ7Q~7& zZ#lh?H7u%mD{4!-5t8FGpBu)9bUW>EmkBCZE0Z|W6ju)m&<0a;S(FgHhWa8-7LW=< zFerZxNPWm<`beO3yE&-JZ{a#XlD`_&`z))(a^Xe>@iUX(4tIP8Vr{e4=d*GXC9TiYc?(qMuXSK$S(D|Ie%q>D9zy}WYOm`dNOV4{Peeeh-V->yv$EJq zRqxF+m-qvST1wFemu97>Bt>s@xmB^2&ZyI4Oh#l)OFbnK%N^4Q<%5i4iy0;ot*GbqFk=pqDCAf>w3BWYG@B3Uj$xUtTNCgig@c_ii@x`SX< z^XalkA>(whdd|H)XRZby3gfv0^rAh{+Q*Yy0(+4;mq~ubH{73@>Y%|WKU2&h!XZDL z2cwtnWwP&s(FB#*AE3Z?DU1yH|M&}wAg`#>vDvW^QQ8^Ky)u!Il}g51$J&bq_kLK^ zG`{*WQrKGqKzM-zfrrNO*xUN+Fy8zCQsNDLg92S0OKE|obEny;j(9er8Bu(f?p_2v z2EPbm&4lNKEVM*{n3^2a`Hzp|L6qr$;2CJ_{j@boc>KlJPuGzTJrz(8=bVHt7G@-1-1-vJ~PQzbzG{>nF2YTf*!UV4Bs z1N~6mclxKhmSZKK{A;88Dn@T3&-(cZWWx!;=@u{TRLf7=0(~BZ9`vdiX_Gn*B)2Hv zcqs|d$&B2h?Z2BzursoBO4v>2$JZ(kmS+y4-opI`j3A+(kU!3pbRP^owbP3G;B6QG zU|18*=9b&nuMfifFzki+O22$WSR*Wpq`#|(h6W&QW|#7dFpfTQrq|Y?0Y-*?qeHZt z?RHTbqY!#IbcZr0;>6Y#Ox#swj?v)IXG%*j6iaJrU{J* yKmHHAKo$RQaWMbo31F1}UxLt>nD|3>#rW@Ze^lQtnSeTE`bA6sN{)u@<9`9YcsmLJ literal 0 HcmV?d00001 diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8bbf984157a465f7280d556a754ebce1b5274c0c GIT binary patch literal 11460 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 Q0;qtfDQPQK$Xh-7e+`t7*Z=?k literal 0 HcmV?d00001 diff --git a/images/menu.png b/images/menu.png new file mode 100644 index 0000000000000000000000000000000000000000..656353d0060c50c2d2c190df77df6a9221c65aa5 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=12eq zEj?WvLn02py?juRL4kwCP-E7wjcl?tf?NvoZ?E}L%?VVp-NC<>)rL8ZD`3;4QU-xp flNcEeq&;BJEm2aODNy4ARKeis>gTe~DWM4f2rV#d literal 0 HcmV?d00001 diff --git a/images/mvvm.png b/images/mvvm.png new file mode 100644 index 0000000000000000000000000000000000000000..16370a3a0046a5a287663847f1ee8aecc9d7345f GIT binary patch literal 43685 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%0AbDGN)5(MU*W-#F~c zRAHg#_wCcC%lV!u3i$VECC*5y{n|4FjW6yfwLWll_tqneGF3fv7q(6{wOO81ej(0! zzE`#ms|240DDR#zX}BWWl6P`_S6XcB2UpdukSuhrC5Jvkr`Krt#3sGTlf`Z47e^aO z#?<{Qs#{ri9oezsVY(vsYE0Jgmuo?}d7W0LsDPbtdGrU)-C-NDZvJ!4xQ_C)K_$yq z20Qr|TOR|EFC*1Xp<3+HvR2SC&=*TYGHR^ps=ZVo>IV@*Ywie7%yF$plst~zSk=ysQwP1WM#z~shmvN|Xkv;NX`E1=rYBa;q_p#`Jd;AwZY{4?kB-V(n!uMc_(sT6qbvq};~Nl&R5aM~RcOq5ec2;|g0YvehQJ!Ny^L z%AA{FU6}ti;W8FjXd)8jSP03<1xzPvbrYQTq0~eo;KGZ6URkzGNk2oZ!y#1<=Xa_M6R3a9#4sEV;g!y z$;QBIwR95(PO5W>+pyw|k;9Uty6T(Rrmr7$9Tz5DpPfvv65!j|koLDDNdqKUm>d&} zZY5`%&*1Gyo^|OcwExPyRHGLub6{Uq`jSL;aTfomRzuym2RDq<&YYlq&{9)bSXFjN zX(r5;tea6S!hclCP zOk!)>PUbCqAf`-w5!e5)W=j><9WBJn%xL*ym=U5Wo`uk8NAC0y)6HgvP!{dxtE5v$ za4gC>2D0hi3w|)uDni>Y(7FG`hICkXF|ApD1Nn>9;B7{4PUhPVI$I9g&b{Hig?mA2 zpL8%D&AjN8QX0^c&s!&m)jjW6D>(|}3~5P-C}D3UjiL1>8ko{TG%iy{^VC)dXyU1T z<(uSX`2Iur6N-HX(uYi9<)Orn&d&XVgA74LSE6r()EzzPNWE=e`eJ`6o5{IP>Y1PO zCboR@LzxFN&k4RCWr>*fv+n6m)wa&A?CNgZ!7R@+94ZGb|+S2N-Iaw{o4GHm{;C94@5&WC@3G$^Xr>g z-Yv4Lk{X$2q^&fUuVIrWnmYH`3LH@nW#oEC$R0r6-|=X(vgIpjH^=DdoHdn>mv#25 ziRIzvkx|Ar1XLLAGa(cF6BHPspZ#haaw3?3@iY@McSsPSKfqLWe^U!|F^7WFJHcj};j1UwOF6N9r@-k1cGIr2w5}6CDZZ?UtG5$VU zUT`T&&xzN^5ea8ogGf7m^>1t17d|bIlM-KqYUVnhs1dW7fO+)yItCHy0G*EAz9(Tr(_UJR4u~AZ~EQ|9e`+YmhMca2lD2G$$ z-e=&V&N8yww7nonyy z#;cLA-WehmPIH2Dua*^~ptDvAe?ubi-j=c&JytY=Zk5Km^E>DWPV$tS=o5*xwY*GB zo83vzqoSfj14(EY7$l{n_V@PE-Xl_*^#SL~rYVI8vl#o+QR}Y_pVYFu`~3LQ^5)k< zGGA+{da<9>ZSR9M3b|EhUh4-%DfN@@4VInKZr!b!XL({P?x!Rq)?QAgk{#MPAKhk5 zzP`i3lcnU+;Blt2@~vNE3&>+ma<)PQb+Cczweaxp_MQW-1TOv?~u^6=|#T=@E7PlLjb$#(hv>+Eku%bJ<j@Fim<Dh4oZ5h4%XTX$}vCiaI@pl$(sHu}WLF zS@8#S3*N?P6Fz&oWhV}Bs^f0;>=HlYM?XsBO40u+|0HT}#NmIvy(-CNbV%U_S_0 z@I$wH)Jun0vbn4*NLVOP8WOC5hRDt9GRjvEk9a$z){-h4LuN(~mzZI|C9SYJA)eR1 z_xx{T2)(|sDFf|q#3vQ9o#S6dhW(-}I#DTT!$)8f8-&63NR?Do#T|e~dj|8PxyG+{ zZB;&MA&J9Umi(eOHcqskv{b;gB+Jop4V{-5)^t?jpwlPL($dn7o)AEzf^_LRU+d3% za@W$&E*=WCyy?yFF2jq@fxannd_P80+SC^;j4YPM5A&nmkuj9}y?O z&#iiwee^B3ABj%#8LoH(nP0b%f`S57XxsUoSOEgD|A#|wL7Jr_A$`R4nd8GDEt$lG zbWNk#`yOGpr(dTkA*S807P{dWDDBaq`s0YbVo25>sfCCQKs_!rkOINoa{jkv8y>U#Y`a>w^xM%Fs7JE+3&AD3{x9k|$qJfkds_yN>F$2K3s-kfz~(d}V|B zs^s2V)D$BsF;H_V3Uhigy!L-On}no5w>P-*23=D)(K$Cq^M7A!C7AG%2@8!>1TpIQ zSUk~L9*qFC1jkM7KJr;>ljxH6_tLOS+;8>V`6)glN`Im{nR4U*448X%Wee>NI``Yb zs{&X_*I}gViT|_NP+2WxM(UQXz^JZB^#lHA(p**#KtiN*D@y-+oa!?xTj$y#NE*yx zF(=gzL8-?Igdo{bAuMR8`#XMrUkJHdMi%R~QjsnN@)=?EJMsJX2-cV>C+_nzgguX( zbsZ4ok(ZZ;Svtbz2d{{0Ss8dy;&{K8&Z>$y{jvsE%d|wvlTtw^b`#`%w`wJvZydOV zN|3t+1>yc3>?$SF-QyMU3I}hG?nq1f_ahPUOXAP*cCS-o9-hcb|BwOv?HKins+Ugi zu#Q%*Qj-n1?(Z8$cigETAl;t}U$#Hn2${}PDNESQ=aN zApA7?H4d4h5*BvaO~gCffRE1*4RP3vpxd3y`~ym-H?{Y6y_*p0kM6n5gbK=VqCu!l zbS_@O#@N&7nUs&goPIzXz-_LZLc)7#89(+_VA0@(Y@E_F{{fGOt#$#D`;V$EP*qF8 z8fTST7IMnW&^?yi$0;FY-Y|`}!CJX%$zG-hgGK^xq(9m{(L{c*OFrm-;B|O)=8kSk z6B=TD-$i9gsqZ(KT_Il{uYRTeTH(E_s zq-)3TuJOxPt%#sFNE)dZq&`yGKgdgajHoQ2EUTL_5#g%j>7}crQV6krTz~#n+~wljG*EBt%fpSUtJxIlb|+VETCOp~Nd)LN=22Jb|z& zvnLfv5xy$>wD>p#f{Hf8+gmY8Eg4LbeEx!gFWzZ=GvcN4Ga+1 z0mX)Tf)Y^6Cg3|Zq_9d-qg52j(mm|4xrAFZ{fLYG{O43~ZWAR21pQed&4)Vr!L@^A zHM)bpb%;A#m+dM$Bg;P_#)Z>l4vgOY@>&t}{gxN3(fIxFWTh9+xfidiE;pNP{tmGv z7ID+&43?ZtQt-YP>2%IelPG(O!mW>^{J{?uO@dHm85Na1uNcddbFQbZpr$~cg|BDr zJ61oT8d{Q+sbuS=v*UHuR2R=Z)UQ(!3s#hg%F6s^#aUlhJQ$|*jDg{L8?%OFJ(3dL z`c@h(5*la;i&$_3m7>Eu z^_i%6SyNNvcng-Q_s(jJi{rMYmTVfWq}=OAE(bn;whsnE6!!ko){G@NRMXj-CkdNM z%x(2r$*vdySZG!?;wdI_3eyJ)A4~7;-bht)>m8AoNa0da`YEmPP*+Vhje&W~(EPcz zx^^0aQa%zNgnGk(mr{V-c=Jz7?YAk>KI&p~_b@D!o-k6y-zFx%m~EZYvv?R|myxb_%lF=vDhDHp(hMS7_H6htj zS~LyYR;Xskt41k!C_?mBS3pNlU|JX^B5@YHyQp4g)x+{WMgc6We7CQ7;JV!;D8XHW zqlEv>)KOjzf)o6Yh(rZ|FaMnoMxD6#--+jN;x)tqU!W;Aousc@87`=$O*yi_U`~CGz7QTzXO)P2mb#KzN7Bp z{@0G1_TPj5dVT5d!GG-nRyKLq@ z(M-KDvRBS}*879_>9-SEDmWkSi@JFJAGx0R6ZKG%kAFKNID~pA=T*t8zi$+|Jn%b~ zj>w?73Ac2iwe^a>xaV8P7o!8Q7IXFOzf|4FumwJx(44#4@Ma`KR(Z6A> z1CB$OQT=N`j~wozuHn+hO8NEu=)c~RqUOF+6l@Ms91YMAHxnVeXPnQ4pLhJ;M%U-& zdd&UWH1QRj9mfI9NUXW}w(%ZLIR1Fasai35 zCQ;Dv??E8dCo?bqKXozb0#IlL*g%RJFI^&RA_AW=)HRI%6v_=7rKv;E57Ze0I8fb| z9aQrEdA;d{#p_+ZEJC^aW`OQcXHjscbmp!7`9?^n*0)q_Yv2b=(Xf zh8w$jFOTyJyX3E*_pYb0PP6{gcp{K=VXOb}?>p$RK~Q>x&)>cT{GHLI<-Z4iJO6wh zL!!7YBz;o~X(#xaRR?BmngVq?AM~s9wTxy-&fF(n$&c`a%B!fssU==}00-UAQA#+D z!B#kZVT6 zWEXG{?}fVU-M`y{o}q5zMcvkP>`A{Opc0=h2p5rjLR}Pm6-37DlEgtRnM8v67G-(U zS$e?DAP{!wDA8c1{1wggK1>AXGnYN6WjV^T1St_5uMmCzG?(}lO^CT&7|r3kTcTb& zb|9*x4b#H`x8mGhGPXPW(Gn4Pk?MfVym$}R3GlaC10Hf3EqgK)#Qdr0&{Ng~ZXgwe z-Biud_q^JWvh4BvdW**_+TL<{W;fC4t&qQ1sN+XZvd&foxZii)K~amR>S%;2#cb;Q#aS`c6yOs7=}noy4g6Z1kzmsN+fef!FF zH(1)!_;F#6lv+}+OQA+Ku!x&3ki8eWV*`<>Dj^&Yph%&kY-ZT_{%DFsF_R-BFH-yldJ6a}*Fyx|eb6Ui_V;N)_+?+J6$%?+btY_2B%+9s1F zFX;w;y0M6gZL-rTO}{EI>nn?g)HyV+3jV%fK7KQoR;|MyR;I^7G{vE|-5Y90DfeTr zJToEC_IvNHZU0n${!+wF(-)&t$PL50hWlNt0nP(H@T_zom`Zw`$n_G3zQQY=fR?<8 zZ{8s_yc(=|yBE4r>JFWzld~D&4~>5}{Q?AVMdyk1i4e#%0{nxS`L^;7Gyu)qxf%LV?s>cqsybP(}%dAeDJO-1r(A_5B8S7SMm3tG>Og?9~1gsot+p;ey{gNX5_QRI)I&7RSr3araV^|f^gBMVq#>v?^)jQj)~AME zo$*z0HAv0x4S2U>J;qG@nb$UDS-JdkU`$}mmp_H(rd16h&(^@sv>grMrnp3d&MBHW z`Df`17a+4U_u4a&7Y}7|1S1`HhHWwFh%V(KOf~CtpzkIhA-=@l^DhDp8a|^zun#37 zQCIAmuZ$!dH#GNP{tYw$asER$|6l#Lq_Qz`G>D2v5Sf3c$#4L8g%}|%3S~Uhry(4* z_|lDx_N8eeDp-!Y$5X%`zV=7RKG9FqzCOF%FT`Oc8yLF(-@E+ZO4zsW7Jfw~NtT;V zO?t-gna^C-S$(&?y}h!!N`ncL2#O5PdL}F^tdEz{GyI5{o{^D^)9kI5){Gn4rR|*^ zn%|vxkqbcOX*z8+S4_D${+Vtx(br(N-58%lI<~g7z{}$ibTfMY!X-kwkbr(pfc*?^W7V_es551LV;f3^pA)99YPJeq!W#C za@SKClKT33S8?(7N0D!y8jqIt_xFGL^a-lKg{7ta`rcc8(gJy^W$i}ng!uSpT^Fag zn%ts&uuKc}!IhJd366}^z?Wo2bC zF(1nO<&(|&i{IYlzCN~7&O<+c`k9vggPe%zMv(v_HtQ96{ZT#Ecz$PY0fCFf1XqH3 zVj?2NT;(Fz3ZIn6=EaK_oV!n20*EVY)<@x$DvRUY3H5M!=e23v5Jf1)q;_ck>pRBcE3HR&NgfV`R}^AUO-P=Mv8T^va)s-yEaDy zOh-$XJ#hKESqCO48$$kpK?LvMTwCbHenoxO2Uv2?RChQ7)o%fdxgSN^tqYxTH6|0> zah*lZYp+bd;V&2d`t=KHiLYMS+1ooq;aEw-KFuPl?fvn|)CFn>0dFs_Yyz&%=|&Gi zCXKbv3@``g%?hYkE!b6DbNESdjPsWERiCZvX@ZDEOi;7x-ChaI8+V`BtPK|z7h@B% z!|Y=dv3?FQ*U@y|3-8Z3SGS$eA(dISsuno?ja%}eBReZg?Bz?dgV09}#Uj)jC@Zbf z9U8OUG&((cYKohNhTt1%_;`s4xht#haIi5!Iw|%1`Ewy5p-A%hw)gEF9eH_q>n#-R zU0s{m=68AOQ(%pUI9@2Vw26LP(sS=XGQQDxK3{hRMn;n%p~0ac+w*6BalW{(VsdW1 zRRNXD{}W?|*y&4Vcu|DF#);B(r2zpTRP*`s=hW1P<^&0@=T!z}wv+avBs;NOmZ_26xa4&+zI5p5=uMu1{{FlU zyP2#PxUPpD^5~d2B(IHyR3ExXFx8*!t8MAu<1|Yg);BZz)8vEKoDAFM4b)7!UYzl4 zR6Y+2uWkIvSYx!$bui`X8gyPAjpj}B`0;S9{Z6(5RFO2#VWSdK0hidPXb7vCok4z@ zvs&}_mtcP4S4MOb!sG2>`OHT}MYZDhKBc3iw&O{$0_HO>^v@$0)Z|UG^75RQ(;`6> zY7XsnCmS_jB=Vaf&+n0wCqxiTfIU)$F2fcmIUSRg`E|!DorHdNjG^W1M#E25({hvw z$e6WWNG!71Z_mkPNYM<{Z?zDo316JlUySvV)gQ0W>BnJQC$O>;4G}n7mhQ#UZVk-K z%F^Gg0+MY42FS2yWz#3g5grlIPA71@l+t_3qTBgiSGTpP>4)K!D_7cwD#E*bN*~kE zh#BnqGD;t3iKe{ApS`ZZ4T|i~l{xgAIkw9)q&;^YdG`ZUqMi zFE1}cr$98djc@gaKCG^+XgIEy9ZWi!!X^(Nel|*C;*!yu)S&j~(bFS#4m_P_ay>ez zzhIE;is9HKzc}>ft0CZM74{<#>+|vPiD5UMp}mCYzu4tIW5z;5+z%%I{PgM5HK(6r zruEKUdnsb zRkp!utCV((KQ3dJiOtsxY!olI;)+0KRV(W(?At53`WPBELFSqOt zzvBwPeigNKbuP0l0YQBGUwN-4nw{+pq1moAAHRK2ye#bdLkjC8PeaXGKHUTq4^ z-6ICiXAjfkgP)w7oGzU}cJpT9(CRul!RuOeUW~=LxzDx%@N1VwLQY0aq1(rMtIf^$ zt(1Y{cU~$he?9%-)QCa&`I59;`bf>T>+Q3XgGCg+M(~C5u@ypr zX5KpzJhGZnLeFrvN?&*P6EJc=#%jH;c)o1m-n;hS{`~%)H}#0YAni)T3!_tz?{;r{ zd%J#LdfPQAYQMBSB4yigb5R3>l~!`s-01ob9Yn~wqGP{;0#g%{eBLQN)|TdGvEbKI zQh|F{R##UkDJYt-K&z~+tw|??*Y?LuBd^nPavp+3Kew?d=c7LV^Bwo+=J9Tybhw|d zpC2mT8jqFJ=(e*JUI9gOVNxy4gpH^iN{j~^LL?j^EVic+vm0H#b}cx9|7b3BP)$+s z=I>Rf@>h@D<6q$vo}Qh}MmK>W{LT;gT5!xiwhKY~Wd(6mLc&xSja-v6J1_5>vJQds zt)M(3@q2Htk-Hqei*Y36xMNQ74+M&;tRDw!Z4^RF72U5TrKUD5u)~1n zxrM-A`dI|Wp$+=qW63qdH5#v!Q6<91A86Ck=WEE$%)FWLb|(PhW%%Ub_D?3dMS;U< zk6x#kysPv39^mP8scj!-<>%M^_96}o@}0T18*P|BQmQXUryCa)MZ=fro1vZ+_c~?{ zA<@@wC+DPUl>b56&3ZMjV$|qQrB*YRzUPl0ux*vNweoW}9Z#w8o|oh3F2*5|k<=!S zYHZe3%Z)}r+et`B=<~iLfPXz&bUj|q$TNDsK3b;5v)!RIZd-0VMrBe5Vnk`~yLU;I z9s=7xC@lob?Y3rgzq#}?PdeOnY@gPI6OYi zS1l7iEqA44*!!G3v|+8SpS}#~F{6b+h17j> zcEXN$zOe;+b=R}K-cKa0k5wwj*Zu@PyyEdYuVT_+G0qk&HoH?aFo-lvg{?4dlkrL$_>tU%DL3?Eh>A^y$ z&pbLg3A)StY}_l}aia<(VGjYU_cS^>+VeUg8J9)VLJdsxb6mcMxU^fX0_QU0FIoag z=_Yj9BxP(>RYzI6cy~5xHruB(ww?+I)bGvSV>1XlWY~D|=+UFR0-6o2=yam^_4U%f z%wC2A1O)faTev()Nl7!o?|PDjPxjaQSTQIHko(cQ-97g6^Ya$uze%qaHa!pR=nQW< zh1HRga)g3aRaKo#-;b%-yXg4%oPT_I5S>o@65dXPn38&4dm9gr`qkI&Hc}dZ8rHC5 z^3MncIgQFV9$O9YQiN~Jgkb&*&VK!RrT@(2r5ACBGR=Qi9oBIks_Gc4v7GiruI!Zra2~>I7XNU9CBfx9nCaX|%h8IZ{< z`_kp#tcRkmG1YPL>FFtKOXlZeSb!`~PxmrJ(K&*BVLtM)a_Z^~T?YpTuG1ee14((( z4MGMP!QcT7ZzY`XW=Jq0OEv3V9z1ve*6mgLgIi?zMpb8IADIoi=_GypWkPyolpAt$ zLsV6z?b(Zk7ykON(;iM2zSDe36(DiC{%ND4!IP1C%11~Iru`ZShmtYu>ed4a+xyK@ zt^W5yLqjPGR1_2*4Sc_enN((k%Aq;lt8?lEqQO z0_VA4(Nw9pFkBCd6QQDKk!wHFccRzEDmFi2l6|Qj=LSG}b}+@HJRH0SR~n|R3>>@x$x&qvtO6Mg_Hhq!o_I@Z3CnS=iza243dzrd}m<$pm>{ubJMD6Jj!ncU`NfYmSat^y9plPM)9VK@3}jm!vK&&1c)*Ebx@ zy%iKS)1y%PrpjXe{Olyn;r5J=tZHkuWswQB?F`Ayn+-5tAlTHKNZ$jR>D?XDbY zh;Rb8*ZacAD7P|btfbN3|Ax7DNP2UCNSRPtNXYH1iR2NZ^G(+aL(4dj{VC)I(dq3u z+w0d*b6Gu3Y+7p$5&T|2%a<=-V5=*@Ru}80t~HPj%+AiLUrdL8AIthInw=$=0jZK| z&cHcrAKdZtrz3djg{}kvz3%%le3mqA;PSJtO}U)p^}BRe6GnHgWulDG>f-zisFSIj zkC!mT@nC_8{`_uDGbA*rKK=djbt=ZdF(Ky~??bq@-JE3TBIGd1vQA3RGEO|hPXx82 z&`-|J7OxV*FS63Z>!>nN985hzLqmgX=h3BGs0_d?R+QYi|NT=R%mlF5t~j2d_$!a| zpPT%-OGcKjx(i@Uoru%0E#%P*$(VwsSeQpYw{*7kqnFQz4a-K4b{1`a2dZZDEzb#E znYa1ue7qZM^MDM$ChhvEA_<>^eDoJN_ELAMPlb`Zud)ikWk6E;vd4Xh3&x zZe6D1^mM4iQUqwcy^_0_d@W2?B5P*t*of}iTQ5=3jf(2k*C$#{S1Wj2xEf{nr^Em> zChD(v8i1=^pD=p)^2gdpi4tsK1(rcbNa*eDErB+eDi(VC_U&o|QCQ3{qn>ArNhJ_V zMNR#a1rwWS7sBLA>A?DnvrY9yRi~5nir!LdZ2CAUYU>FFP0h{q^$sQJ=h*ba(oq~V zCp7X>75zftlI`JXEnN%~sjQNFQfZ^9gW-iJFQ!l%CW4Dvy7vPeiCsWGl6l;gLlf@8 z-*qNd_8AaZsT7$b(sZhhU1@2w5tC=3KTB@tjb#TcM9(911{~V^X}n*`h2m#d7a?9x zPY=7=K&ickEZsLRFRw2C6C=nJWees8Cn{|1MECagA~hVAft*M~^rQpwHySAxj#eD} z@|D9ho^@;7vI`t|)eqfez~Z9D#(7`w3b;6_szw`RJto)J8p>C9+I$EeLP<+2nZ#NG zpZ`&FbMv;9x8YkFj${gKJYqsZ+uxpqzCQCmBmEqcEih<$S0-u>FbLn=r%F`=?Ru6t z`J_t8_iR;qO&IqM!cD{?j&PvQJNCqAtX#4zv%2~iP@XG9!|H<{K_pyHt(LmMguwO} z0Zq0GtCbt6ARWrS{@LCRVIdVO&_Jfz*icKw7LwiCoR8Ej-)I-t0nSIZq$!C1cqvqx zKe+u5Pz#EAgTF~9ARSm8D$s-#?}hKa^PjA-tm3!-{0R|OmF9wo$0oPfcZBa?oW<_X zTV@$~d8+{hB^3b|-w^v5A8HaSVKSG)-(_XlF4wP(Aq|q>$zpU%URv&wnUM8rQpv< zCZ#&1H(`;QE-KOI3o)im;kSnj7dzwN2S>E7Lr@$88#~{Qtbe(z5eYfIoQOz^^T7ml zx$Evy4|qHIwJk4Vlgyl)KGp%8(35r9+l!ASKR;J5`5>vH67~3z{b^~u4}alXCi5Xi z28QtT@QF2=3`(z6{RWy26vs#BZrx}m75D8*+xI{qGGFV&@07V#p-{e1zE`fYB+(O+Mx#0JZ};NVPOdc?pFIq<>=#cgq0yvzoo13wN4BrN{*JP>=nVGrNLDi1$g-d?^i=|7s-W=sK z^`&?Zd_s|sIEMQ*opJymp7CQcN!uipl%xBGqMX12K&C`$v$!@NL}4p50ImrefEzAO z7X@bKr6qGYCTna>i`=aj*?}%QT1p8r0epZ;x*?YYs4A0pf0APF`PBS}j_616YMMsL zs-x8L3=fXoZ1y@UkKu2V%>ZH)a8%)@@=K;>Hm z1XR-G0xsj{*tAOJ_kQJkHqDYp+nWs%h%ht~YdijYi!zlc325;c66^AJiG$f!B6z>r z)hB5|z7Bv>R_9)uJI3`%mlNYE--r>T{q1ccHiLekQTQRT=}8f_ zJ!upb7B(KQ+zJ*Y^YQnW?>yMrLRkvDxX_y+O}=Uii#ZF_Doo~n1h+>4G_nJU*scvj zTG%67p;>$lkLm~ZfxEl=9QOUEhyMTB^gb4(neEtXF$sV zY6kuVUUo8Z=B)ul;Jepcx4${X6llLSHU)Q+|o$8g~sW>egB?j z<3x&6xOS@R>w`z_J3-3lup4JPdF!GJl}qaAq-hjr7QRIzyo%@!5tGR(^7>L6ebF_E z6dkf!a3$#qKH+nJ*dcsVtm)A$p{&~vl9pcxQ-wwgF>jC-_h+BqUh`|ko4mqHz|ysEU*`%I;w>c1220&ZW$R@{MfSqdZRCyLzCAl8UWuwM z)$4&ecTv|mbzN|1Xdn3Igp)j;unqNKpcFrUYi#@tbe%*v61oh(yPA@zl&7k&c}ejRxOqa)s3?`aOM}2O zh`^!(`EabjH5e2%d)Y9)bS&(*@$ zxN%Zo@WqgcZf#4u9?R_=Iehr=K_Ze7e-BWoQh|p00W-_fr~DVEmNL?@oIOKB2T@Y6 ze!7TCVBGs2A>q)=E^Z7&?OTn5Lzi&ufdgFfQx}Tg2trpLmUAV5wTV!q$@~fI6(uF* z{8+(gg{gq$!Y?8i-qw|UczBpzwRB0PYlWl!D4?vY zEHg^rD&mRkoP>ZXmEzv_g2W$@)hwv|4NKI`lW1;nk(|q74r&mPyTJ=NUxxLJjghdm zu!O`}^g>O-}MN zFswt;=hdYNsb~xMu!PM|X%|?4E86?|LLpm!GP$}jA#hy(U0`(PRudFG+^$fcHMieq zrAMcC$`CAQQ7COFLzIB8J#FX zB&Et~Sr({PppzyhCcqGfAdPPlO zY!*tlfl6bCe&0HO$>zgCfeA1)&BeiB!jf z&GRE!TQ8LERsF3s*3+M8#K`GX4!CiP9UUXsV3=bKr+s}vJAVdgSLQNaG z3?E@_tOtMpVakQPjvD#(>(@n|XBrx0-#=67wm|Ff>82mAwP%614Inv^l9D1LBLfhS zTOk1zO>^@ic_@D@sZ8akrp|>cY4qr^0vQ4E!NkPm4LU3S-yx!muT*s%wu%StZ)JXd zpg^;JX=w=p!SV5Nx#5sWXDk=+RROzokbw8=vC4vzE3sZxWV{@WTDyt*wC_R0{p9J{ z0sKAaje^bm!a}}sQ8Iu^2>$_FgGl(rgjFb)atvIJ6>vS5UE9qfGU;BX9X^ykl?X~z(xQB^o#3i=B-$?n{-0^5g} z_2Hrm`j|}C-XkSFJKWOFvaz<76c>M5 z`$(Miv#&3=?M7_>hwZsG@C%?rro)z3`wU0TAJfy%{Y0eyU3-Q|e6fi+9;;D2<0{;pF6e zxd$u>B$NhcC-u!ix82|cO(6Nb_!c20$WuJYMM5^R${(tWU6`7}Hu-H|@4uCYh{v6$ zM?3J#U1?eng&<^Rrlh5$%t8r-VFmm$ul;sv%Lf7if?fe~I9XAD#y~;wt*tE!m>HPz zdf3KSPFB`{$Ii;iDlDEeiU^n@|GUiJzy<~e1{xcaAhRsd?aJqPCN3>a&SPWr`t=vs zxY&w{l-ue{=X>BAEIgn#3KJ0o&<&i*c81^6`zF$%X+Y$8dspc9iEu}=Qn|Ren46oo zwY51#YTU>s+}{5;!O=|1($*k?-d=PIXe0YE<(-?)ywUCPyk=g zBB+SzLWRWT^bisbg=G^1gKDj2Ur0zYj)Q?q6Q)QXFvuDI{)mQ=G5)DeJ1BjQ?e5MF z7_!paw{Q2Vc*x*Jpl$oj5EzHb@i*@|0%B`JNfINcDseK(rOZ5|+w#5QE zC@3i*pB>9r=c!ZbAoBaSc~&C*(a{kFvbelFp92|ESy_1*6Vnw+MzYTH?fBmj5;muY zTkwkfk`*^DZV)IR8J`1qbfMA5WkUvKP{MTpZ5pq#3=n9WnVA9pCpMNO3*IPn1#TzR zveJ5W5Fjt!?c0p7{W;hg(0$d_)kOQWbabl|H5DQ$!3N>tY5J}m}PT3+&*@jA4LxUts66wC5sdN5<`{S8cKX~#)Z-L}-$N zqj6N#Y=H$;>6lGCp{6sNAnLmmzjgJyaqZeGyf6c2+RKY@hDl!j(3sb$Q}WxlXSp9$ z_|&W!w2U5Wj?%fltUglQ!oo!XMg_`8T1Dg>;~JlpMUW#k)zx1PRFHl+@kshYs*fDey`s$D#ku!LmwJC(gizgnWksRAg72h_ z0cN3^h9dv(-)8H0mv!DXwzi|!OlqPVN`Bq8@-)!rWIdijU}R{R@P7Tf5v*azrPy=l z&K>2;21Z0c1o$!xe|kuy!Z-3=EPf*F-n3yLt(1E3V0b?W;9dDm;6u}cFmIPW6wQE4 zMcpjas5rJYYTLR+&y0)=tIL+g#;<@=?lCH!&JNct#Gm=mJv0pP&^xNzx369jWeswJ zmGuC}e`Xm{u8$)^P})C#{_It>LrzXGQgN&!rwe17(+LSN*0X1Knaur%V$v8}o)Huo z5=GRtSREDkJ^=6M4_(_1r;MSu>*_u`%SXmZ>^u8*t!1tMt0znLl_ch}d4y0owOVRj~wY&n=crGQyHDc60N7H=VTjnC_9>*!DoK7Ke7jkCoD z7#Z@rjY@yv<)ylPUko%r^;Q0IVacz*rlqHEm6W_^S~L!nO;BAWB|!@V;<&#u->IRA z3D-(Pme^mn(LXd~=i*{PqfKIRMvdx7s=}C;s_Jo|{e|1I4#+6AlfxYy9nc(eiUKt> zg3WAfY=r0Jk+6P?UTUM3cO$kI%zuJeBT9B-qn0$fvh{-E6#7tqcXn$l z!Q9k~Qe0d(6QT9%gC-ldF&TK$ zx`*1iotroRE--nEcXVr9CALIIPfukr;+?BARH*t{Zk0jQMtnq-$;Mcgn3SY50{~Y$ zX=;y$f^zRbf1`y(51cZy%-?pOG;=PJ#o|VYDBVUzJ3SYK_9G_&qOcWA)h8;p>Pr-liJ$a!0Q^@ z)~9-&wSdzJ`A!oP5ph_s8U}$vbhV3%ug+kS7Ce~Q58=opr^B@g;%se>X@6jNSlAs; zRm>C^j?%MSk)#8E5#PsySSiy_0pFfxmFjOBU?s9$|C2_D;Ov?zZ z762g-4m-9td+jkT*gVj}kNfDxjvQ32fuNQ~&TN%YP;di!TC!w`N{TB+R*?AmgN$4r z-lc|B-?S8Tm+>q@msFk zHv$6y=gpi#N@(JZ>zP-hqtAqdh#Vl1PH!3DmAzr`X%H|*yS*ytyUX-Fiz>)nbl@`w?yyHNmEjdPMHZ?Q$|~6LT6jslbC~BiL61SNVI|=^ zvKoNhOjtx&j)>tK`c+@q_hseefJ5}A=VGFGI#8@nT3SAS&qJCBXm@;&Y|4kX+VHJj zecYzGFoCe(3q0-aW-OMN%_<&6a_Q>n33^$-5SNveRfCj;jqz}I_eoSD^_~-e^+OBk zaSD?OLGg-^l~o1zm1F0voV&|?tIzWFe6umgf*JMgn>UUp;t~?1+>wOY2*QT!s`7*@P1!`Qk9(l!f+i@GErJl=N>>~ZbYaAv)mF92OPIIT^?Vb07WD0-$nfaTTV?H!W4ckf2= z`_x|-%85-YF80CNf@T#F5iuhS{`K4k$i`$NmciDp@p3L$?nQYE`IRb0Cb#ttyNJ`(CD*Pty)FTW<%yl-D!EolMbCm6&hqil!V?i zc_qQ-%LBG*NN}-Q*e(cyvD&ti1F^698@=s7g;YK6WC9?xp(v&^v6ui2vsnlX$9q8`v zW;Qf7_Hp-lsZuDeAZ3P;z07O$)Z&6KInauYmgO5iO%vc(4{EO6^avU(fu2U}9ZsHH z#1sq|=9Y(F+rUdqMD|OqtgPOVM&W%F6qS*dCb+V*v?e#Yn~}XVQj^KmH1a zw!nY@luM}NiIDs0brhe88!x+ri!8K&!UIOyw`U1cJl}`%ixv}>cD-{1kD@WP>9!%z zCo|KVN7i?6W;p3hXS&XMgJfLf6AFj@eqyU`_+Ck+76*M_M6UzyefO>`C;j&AR zk>F&t5i|$A2!2dXgSNfdEBN^G(0E$z3st%H?U%(>L}cLKHU=kGuJq3eiR^MtB^kPr$3oe~osj_J-EY`cwvL*sIELuDKU zL73tr_4oM-fgfk+@PA=H=UFg*KONYpb;L0U;zLm5+#k67^^c$Q|9<@7KbQMw?fxHu dG9SdVlw{U2TXxHuMYuIdTGT_D_x2w<^FKrwSn&V= literal 0 HcmV?d00001 diff --git a/images/patreon.png b/images/patreon.png new file mode 100644 index 0000000000000000000000000000000000000000..aa0e4aee13fb15560e9804c6c96cc21bb2a91091 GIT binary patch literal 5626 zcmaJ_2{@GN+ka=6FtV>@8>GlG#ya+GtYyhEB-y7J&0-z0WJ!@M3E4s=l5$96iLr!i zg^I`?MPWvES-_j;G-y`TGcKlk!`p6hwvL>ntpHt2CE003;}W++?w zvxR0;X4AQ># zPC-tVXEnVDI0cX2ItrmUA{`9?+Ipcx4=+DV5X=*E*%z-PvE0xs0rU0Nk#JPCRJ0@- zVSIeet_EQ2u3Fi9UG?+Q@Rrcig=vRs(hcA+K_0MB+!cJFW~h$DpLR9r?cZX!1nf_h zAU_?6|2XAjX#+DN1YlsQ3aav6ib@EWx`qNmRaISGNe-r@h){tmBH##Rd4z_hii)P9 zBJ8h2f<9V+_a#kRl*wOX(cg3=e1d|Ans7LYL{cCrD-Z%M!x0)98gNA=xRR1QT|+)F z3?JkXDvuA8{M!Nw6X+G-OAPWQ;9-zY;}H89da3 z2uCO=!g09Yas8CvTNYEt;-oD-5d!Q9ge!kn&&G!kL zz&>f(go2RCA6pl6{GGZ8_>fe*tc2U;uVKBlFWUupx-^ zUr$@q=%>7v>rt#P_^(y;#t&Y7DnE1RqW?T^wDG{&DV!XF6}hy%rT5g*q3!+NJoawh z2#UNl^roD$NcBU9fx*%;J_E948|cMZ+z-t~p2M1?!{rKB)Vq~CqvhB~`-SkQ$qspa z{YD_~cMq|PPoF=oDH-Kv$?!EG?C0$@%V4d`bRMYn9BysxMO2qKQ2L0F`(Tf&FJhea z$d--3DszcB$J69>wF1ima5i7y6WoKE`=bE)GwU|R?VM1FnhQ=iPY)7(v9bx

w74 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 literal 0 HcmV?d00001 diff --git a/images/vue-component-with-pre-processors.png b/images/vue-component-with-pre-processors.png new file mode 100644 index 0000000000000000000000000000000000000000..b08ae2098df0a86f5c00b3d3acfc43c166392f3c GIT binary patch literal 121770 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 literal 0 HcmV?d00001 diff --git a/images/vue-component.png b/images/vue-component.png new file mode 100644 index 0000000000000000000000000000000000000000..a5521ace602ba7b48819a3286683cb5cd3a97f73 GIT binary patch literal 127196 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 uEgyh7Xh4wA%>lU>iXmY#Jy`$tGcYswP1e! + + + vue.js + + + + + + + + + + + + + +

+ + +
+ +
+
+ +
+ +

Vue.js

+
+ +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + + + + + + diff --git a/js/common.js b/js/common.js new file mode 100644 index 0000000..716c3c2 --- /dev/null +++ b/js/common.js @@ -0,0 +1,209 @@ +(function () { + + initSearch() + initMobileMenu() + if (PAGE_TYPE) { + initVersionSelect() + initSubHeaders() + } + + /** + * Swiftype search box + */ + + function initSearch () { + docsearch({ + appId: 'BH4D9OD16A', + apiKey: '85cc3221c9f23bfbaa4e3913dd7625ea', + indexName: 'vuejs', + inputSelector: '#search-query' + }); + } + + /** + * Mobile burger menu button for toggling sidebar + */ + + function initMobileMenu () { + var mobileBar = document.getElementById('mobile-bar') + var sidebar = document.querySelector('.sidebar') + var menuButton = mobileBar.querySelector('.menu-button') + + menuButton.addEventListener('click', function () { + sidebar.classList.toggle('open') + }) + + document.body.addEventListener('click', function (e) { + if (e.target !== menuButton && !sidebar.contains(e.target)) { + sidebar.classList.remove('open') + } + }) + } + + /** + * Doc version select + */ + + function initVersionSelect () { + // version select + document.querySelector('.version-select').addEventListener('change', function (e) { + var version = e.target.value + if (version.indexOf('1.') !== 0) { + version = version.replace('.', '') + var section = window.location.pathname.match(/\/(\w+?)\//)[1] + window.location.assign('http://' + version + '.vuejs.org/' + section + '/') + } else { + // TODO when 1.x is out + } + }) + } + + /** + * Sub headers in sidebar + */ + + function initSubHeaders () { + var each = [].forEach + var main = document.getElementById('main') + var header = document.getElementById('header') + var sidebar = document.querySelector('.sidebar') + var content = document.querySelector('.content') + + // build sidebar + var currentPageAnchor = sidebar.querySelector('.sidebar-link.current') + var isAPI = document.querySelector('.content').classList.contains('api') + if (currentPageAnchor || isAPI) { + var allHeaders = [] + var sectionContainer + if (isAPI) { + sectionContainer = document.querySelector('.menu-root') + } else { + sectionContainer = document.createElement('ul') + sectionContainer.className = 'menu-sub' + currentPageAnchor.parentNode.appendChild(sectionContainer) + } + var headers = content.querySelectorAll('h2') + if (headers.length) { + each.call(headers, function (h) { + sectionContainer.appendChild(makeLink(h)) + var h3s = collectH3s(h) + allHeaders.push(h) + allHeaders.push.apply(allHeaders, h3s) + if (h3s.length) { + sectionContainer.appendChild(makeSubLinks(h3s, isAPI)) + } + }) + } else { + headers = content.querySelectorAll('h3') + each.call(headers, function (h) { + sectionContainer.appendChild(makeLink(h)) + allHeaders.push(h) + }) + } + + var animating = false + sectionContainer.addEventListener('click', function (e) { + e.preventDefault() + if (e.target.classList.contains('section-link')) { + sidebar.classList.remove('open') + setActive(e.target) + animating = true + setTimeout(function () { + animating = false + }, 400) + } + }, true) + + // make links clickable + allHeaders.forEach(makeHeaderClickable) + + // init smooth scroll + smoothScroll.init({ + speed: 400, + offset: window.innerWidth > 720 + ? 40 + : 58 + }) + } + + // listen for scroll event to do positioning & highlights + window.addEventListener('scroll', updateSidebar) + window.addEventListener('resize', updateSidebar) + + function updateSidebar () { + var doc = document.documentElement + var top = doc && doc.scrollTop || document.body.scrollTop + var headerHeight = header.offsetHeight + if (top > headerHeight) { + main.className = 'fix-sidebar' + } else { + main.className = '' + } + if (animating || !allHeaders) return + var last + for (var i = 0; i < allHeaders.length; i++) { + var link = allHeaders[i] + if (link.offsetTop > top) { + if (!last) last = link + break + } else { + last = link + } + } + if (last) + setActive(last.id) + } + + function makeLink (h) { + var link = document.createElement('li') + var text = h.textContent.replace(/\(.*\)$/, '') + link.innerHTML = + '' + + text + + '' + return link + } + + function collectH3s (h) { + var h3s = [] + var next = h.nextSibling + while (next && next.tagName !== 'H2') { + if (next.tagName === 'H3') { + h3s.push(next) + } + next = next.nextSibling + } + return h3s + } + + function makeSubLinks (h3s, small) { + var container = document.createElement('ul') + if (small) { + container.className = 'menu-sub' + } + h3s.forEach(function (h) { + container.appendChild(makeLink(h)) + }) + return container + } + + function setActive (id) { + var previousActive = sidebar.querySelector('.section-link.active') + var currentActive = typeof id === 'string' + ? sidebar.querySelector('.section-link[href="#' + id + '"]') + : id + if (currentActive !== previousActive) { + if (previousActive) previousActive.classList.remove('active') + currentActive.classList.add('active') + } + } + + function makeHeaderClickable (link) { + var wrapper = document.createElement('a') + wrapper.href = '#' + link.id + wrapper.setAttribute('data-scroll', '') + link.parentNode.insertBefore(wrapper, link) + wrapper.appendChild(link) + } + } +})() diff --git a/js/smooth-scroll.min.js b/js/smooth-scroll.min.js new file mode 100644 index 0000000..9627a92 --- /dev/null +++ b/js/smooth-scroll.min.js @@ -0,0 +1,2 @@ +/** smooth-scroll v5.1.2, by Chris Ferdinandi | http://github.com/cferdinandi/smooth-scroll | Licensed under MIT: http://gomakethings.com/mit/ */ +!function(t,e){"function"==typeof define&&define.amd?define("smoothScroll",e(t)):"object"==typeof exports?module.exports=e(t):t.smoothScroll=e(t)}(this,function(t){"use strict";var e,n={},o=!!document.querySelector&&!!t.addEventListener,r={speed:500,easing:"easeInOutCubic",offset:0,updateURL:!0,callbackBefore:function(){},callbackAfter:function(){}},a=function(t,e,n){if("[object Object]"===Object.prototype.toString.call(t))for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.call(n,t[o],o,t);else for(var r=0,a=t.length;a>r;r++)e.call(n,t[r],r,t)},c=function(t,e){var n={};return a(t,function(e,o){n[o]=t[o]}),a(e,function(t,o){n[o]=e[o]}),n},u=function(t,e){for(var n=e.charAt(0);t&&t!==document;t=t.parentNode)if("."===n){if(t.classList.contains(e.substr(1)))return t}else if("#"===n){if(t.id===e.substr(1))return t}else if("["===n&&t.hasAttribute(e.substr(1,e.length-2)))return t;return!1},i=function(t){for(var e,n=String(t),o=n.length,r=-1,a="",c=n.charCodeAt(0);++r=1&&31>=e||127==e||0===r&&e>=48&&57>=e||1===r&&e>=48&&57>=e&&45===c?"\\"+e.toString(16)+" ":e>=128||45===e||95===e||e>=48&&57>=e||e>=65&&90>=e||e>=97&&122>=e?n.charAt(r):"\\"+n.charAt(r)}return a},s=function(t,e){var n;return"easeInQuad"===t&&(n=e*e),"easeOutQuad"===t&&(n=e*(2-e)),"easeInOutQuad"===t&&(n=.5>e?2*e*e:-1+(4-2*e)*e),"easeInCubic"===t&&(n=e*e*e),"easeOutCubic"===t&&(n=--e*e*e+1),"easeInOutCubic"===t&&(n=.5>e?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1),"easeInQuart"===t&&(n=e*e*e*e),"easeOutQuart"===t&&(n=1- --e*e*e*e),"easeInOutQuart"===t&&(n=.5>e?8*e*e*e*e:1-8*--e*e*e*e),"easeInQuint"===t&&(n=e*e*e*e*e),"easeOutQuint"===t&&(n=1+--e*e*e*e*e),"easeInOutQuint"===t&&(n=.5>e?16*e*e*e*e*e:1+16*--e*e*e*e*e),n||e},f=function(t,e,n){var o=0;if(t.offsetParent)do o+=t.offsetTop,t=t.offsetParent;while(t);return o=o-e-n,o>=0?o:0},l=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},d=function(t){return t&&"object"==typeof JSON&&"function"==typeof JSON.parse?JSON.parse(t):{}},h=function(t,e){history.pushState&&(e||"true"===e)&&history.pushState({pos:t.id},"",window.location.pathname+t)};n.animateScroll=function(e,n,o){var a=c(a||r,o||{}),u=d(e?e.getAttribute("data-options"):null);a=c(a,u),n="#"+i(n.substr(1));var p,m,b,v=document.querySelector("[data-scroll-header]"),g=null===v?0:v.offsetHeight+v.offsetTop,O=t.pageYOffset,y=f(document.querySelector(n),g,parseInt(a.offset,10)),I=y-O,S=l(),A=0;h(n,a.updateURL);var Q=function(o,r,c){var u=t.pageYOffset;(o==r||u==r||t.innerHeight+u>=S)&&(clearInterval(c),a.callbackAfter(e,n))},C=function(){A+=16,m=A/parseInt(a.speed,10),m=m>1?1:m,b=O+I*s(a.easing,m),t.scrollTo(0,Math.floor(b)),Q(b,y,p)},H=function(){a.callbackBefore(e,n),p=setInterval(C,16)};0===t.pageYOffset&&t.scrollTo(0,0),H()};var p=function(t){var o=u(t.target,"[data-scroll]");o&&"a"===o.tagName.toLowerCase()&&(t.preventDefault(),n.animateScroll(o,o.hash,e,t))};return n.destroy=function(){e&&(document.removeEventListener("click",p,!1),e=null)},n.init=function(t){o&&(n.destroy(),e=c(r,t||{}),document.addEventListener("click",p,!1))},n}); \ No newline at end of file diff --git a/js/vue.js b/js/vue.js new file mode 100644 index 0000000..7ae9589 --- /dev/null +++ b/js/vue.js @@ -0,0 +1,10073 @@ +/*! + * Vue.js v1.0.26 + * (c) 2016 Evan You + * Released under the MIT License. + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.Vue = factory()); +}(this, function () { 'use strict'; + + function set(obj, key, val) { + if (hasOwn(obj, key)) { + obj[key] = val; + return; + } + if (obj._isVue) { + set(obj._data, key, val); + return; + } + var ob = obj.__ob__; + if (!ob) { + obj[key] = val; + return; + } + ob.convert(key, val); + ob.dep.notify(); + if (ob.vms) { + var i = ob.vms.length; + while (i--) { + var vm = ob.vms[i]; + vm._proxy(key); + vm._digest(); + } + } + return val; + } + + /** + * Delete a property and trigger change if necessary. + * + * @param {Object} obj + * @param {String} key + */ + + function del(obj, key) { + if (!hasOwn(obj, key)) { + return; + } + delete obj[key]; + var ob = obj.__ob__; + if (!ob) { + if (obj._isVue) { + delete obj._data[key]; + obj._digest(); + } + return; + } + ob.dep.notify(); + if (ob.vms) { + var i = ob.vms.length; + while (i--) { + var vm = ob.vms[i]; + vm._unproxy(key); + vm._digest(); + } + } + } + + var hasOwnProperty = Object.prototype.hasOwnProperty; + /** + * Check whether the object has the property. + * + * @param {Object} obj + * @param {String} key + * @return {Boolean} + */ + + function hasOwn(obj, key) { + return hasOwnProperty.call(obj, key); + } + + /** + * Check if an expression is a literal value. + * + * @param {String} exp + * @return {Boolean} + */ + + var literalValueRE = /^\s?(true|false|-?[\d\.]+|'[^']*'|"[^"]*")\s?$/; + + function isLiteral(exp) { + return literalValueRE.test(exp); + } + + /** + * Check if a string starts with $ or _ + * + * @param {String} str + * @return {Boolean} + */ + + function isReserved(str) { + var c = (str + '').charCodeAt(0); + return c === 0x24 || c === 0x5F; + } + + /** + * Guard text output, make sure undefined outputs + * empty string + * + * @param {*} value + * @return {String} + */ + + function _toString(value) { + return value == null ? '' : value.toString(); + } + + /** + * Check and convert possible numeric strings to numbers + * before setting back to data + * + * @param {*} value + * @return {*|Number} + */ + + function toNumber(value) { + if (typeof value !== 'string') { + return value; + } else { + var parsed = Number(value); + return isNaN(parsed) ? value : parsed; + } + } + + /** + * Convert string boolean literals into real booleans. + * + * @param {*} value + * @return {*|Boolean} + */ + + function toBoolean(value) { + return value === 'true' ? true : value === 'false' ? false : value; + } + + /** + * Strip quotes from a string + * + * @param {String} str + * @return {String | false} + */ + + function stripQuotes(str) { + var a = str.charCodeAt(0); + var b = str.charCodeAt(str.length - 1); + return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str; + } + + /** + * Camelize a hyphen-delmited string. + * + * @param {String} str + * @return {String} + */ + + var camelizeRE = /-(\w)/g; + + function camelize(str) { + return str.replace(camelizeRE, toUpper); + } + + function toUpper(_, c) { + return c ? c.toUpperCase() : ''; + } + + /** + * Hyphenate a camelCase string. + * + * @param {String} str + * @return {String} + */ + + var hyphenateRE = /([a-z\d])([A-Z])/g; + + function hyphenate(str) { + return str.replace(hyphenateRE, '$1-$2').toLowerCase(); + } + + /** + * Converts hyphen/underscore/slash delimitered names into + * camelized classNames. + * + * e.g. my-component => MyComponent + * some_else => SomeElse + * some/comp => SomeComp + * + * @param {String} str + * @return {String} + */ + + var classifyRE = /(?:^|[-_\/])(\w)/g; + + function classify(str) { + return str.replace(classifyRE, toUpper); + } + + /** + * Simple bind, faster than native + * + * @param {Function} fn + * @param {Object} ctx + * @return {Function} + */ + + function bind(fn, ctx) { + return function (a) { + var l = arguments.length; + return l ? l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a) : fn.call(ctx); + }; + } + + /** + * Convert an Array-like object to a real Array. + * + * @param {Array-like} list + * @param {Number} [start] - start index + * @return {Array} + */ + + function toArray(list, start) { + start = start || 0; + var i = list.length - start; + var ret = new Array(i); + while (i--) { + ret[i] = list[i + start]; + } + return ret; + } + + /** + * Mix properties into target object. + * + * @param {Object} to + * @param {Object} from + */ + + function extend(to, from) { + var keys = Object.keys(from); + var i = keys.length; + while (i--) { + to[keys[i]] = from[keys[i]]; + } + return to; + } + + /** + * Quick object check - this is primarily used to tell + * Objects from primitive values when we know the value + * is a JSON-compliant type. + * + * @param {*} obj + * @return {Boolean} + */ + + function isObject(obj) { + return obj !== null && typeof obj === 'object'; + } + + /** + * Strict object type check. Only returns true + * for plain JavaScript objects. + * + * @param {*} obj + * @return {Boolean} + */ + + var toString = Object.prototype.toString; + var OBJECT_STRING = '[object Object]'; + + function isPlainObject(obj) { + return toString.call(obj) === OBJECT_STRING; + } + + /** + * Array type check. + * + * @param {*} obj + * @return {Boolean} + */ + + var isArray = Array.isArray; + + /** + * Define a property. + * + * @param {Object} obj + * @param {String} key + * @param {*} val + * @param {Boolean} [enumerable] + */ + + function def(obj, key, val, enumerable) { + Object.defineProperty(obj, key, { + value: val, + enumerable: !!enumerable, + writable: true, + configurable: true + }); + } + + /** + * Debounce a function so it only gets called after the + * input stops arriving after the given wait period. + * + * @param {Function} func + * @param {Number} wait + * @return {Function} - the debounced function + */ + + function _debounce(func, wait) { + var timeout, args, context, timestamp, result; + var later = function later() { + var last = Date.now() - timestamp; + if (last < wait && last >= 0) { + timeout = setTimeout(later, wait - last); + } else { + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + } + }; + return function () { + context = this; + args = arguments; + timestamp = Date.now(); + if (!timeout) { + timeout = setTimeout(later, wait); + } + return result; + }; + } + + /** + * Manual indexOf because it's slightly faster than + * native. + * + * @param {Array} arr + * @param {*} obj + */ + + function indexOf(arr, obj) { + var i = arr.length; + while (i--) { + if (arr[i] === obj) return i; + } + return -1; + } + + /** + * Make a cancellable version of an async callback. + * + * @param {Function} fn + * @return {Function} + */ + + function cancellable(fn) { + var cb = function cb() { + if (!cb.cancelled) { + return fn.apply(this, arguments); + } + }; + cb.cancel = function () { + cb.cancelled = true; + }; + return cb; + } + + /** + * Check if two values are loosely equal - that is, + * if they are plain objects, do they have the same shape? + * + * @param {*} a + * @param {*} b + * @return {Boolean} + */ + + function looseEqual(a, b) { + /* eslint-disable eqeqeq */ + return a == b || (isObject(a) && isObject(b) ? JSON.stringify(a) === JSON.stringify(b) : false); + /* eslint-enable eqeqeq */ + } + + var hasProto = ('__proto__' in {}); + + // Browser environment sniffing + var inBrowser = typeof window !== 'undefined' && Object.prototype.toString.call(window) !== '[object Object]'; + + // detect devtools + var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; + + // UA sniffing for working around browser-specific quirks + var UA = inBrowser && window.navigator.userAgent.toLowerCase(); + var isIE = UA && UA.indexOf('trident') > 0; + var isIE9 = UA && UA.indexOf('msie 9.0') > 0; + var isAndroid = UA && UA.indexOf('android') > 0; + var isIos = UA && /(iphone|ipad|ipod|ios)/i.test(UA); + var iosVersionMatch = isIos && UA.match(/os ([\d_]+)/); + var iosVersion = iosVersionMatch && iosVersionMatch[1].split('_'); + + // detecting iOS UIWebView by indexedDB + var hasMutationObserverBug = iosVersion && Number(iosVersion[0]) >= 9 && Number(iosVersion[1]) >= 3 && !window.indexedDB; + + var transitionProp = undefined; + var transitionEndEvent = undefined; + var animationProp = undefined; + var animationEndEvent = undefined; + + // Transition property/event sniffing + if (inBrowser && !isIE9) { + var isWebkitTrans = window.ontransitionend === undefined && window.onwebkittransitionend !== undefined; + var isWebkitAnim = window.onanimationend === undefined && window.onwebkitanimationend !== undefined; + transitionProp = isWebkitTrans ? 'WebkitTransition' : 'transition'; + transitionEndEvent = isWebkitTrans ? 'webkitTransitionEnd' : 'transitionend'; + animationProp = isWebkitAnim ? 'WebkitAnimation' : 'animation'; + animationEndEvent = isWebkitAnim ? 'webkitAnimationEnd' : 'animationend'; + } + + /** + * Defer a task to execute it asynchronously. Ideally this + * should be executed as a microtask, so we leverage + * MutationObserver if it's available, and fallback to + * setTimeout(0). + * + * @param {Function} cb + * @param {Object} ctx + */ + + var nextTick = (function () { + var callbacks = []; + var pending = false; + var timerFunc; + function nextTickHandler() { + pending = false; + var copies = callbacks.slice(0); + callbacks = []; + for (var i = 0; i < copies.length; i++) { + copies[i](); + } + } + + /* istanbul ignore if */ + if (typeof MutationObserver !== 'undefined' && !hasMutationObserverBug) { + var counter = 1; + var observer = new MutationObserver(nextTickHandler); + var textNode = document.createTextNode(counter); + observer.observe(textNode, { + characterData: true + }); + timerFunc = function () { + counter = (counter + 1) % 2; + textNode.data = counter; + }; + } else { + // webpack attempts to inject a shim for setImmediate + // if it is used as a global, so we have to work around that to + // avoid bundling unnecessary code. + var context = inBrowser ? window : typeof global !== 'undefined' ? global : {}; + timerFunc = context.setImmediate || setTimeout; + } + return function (cb, ctx) { + var func = ctx ? function () { + cb.call(ctx); + } : cb; + callbacks.push(func); + if (pending) return; + pending = true; + timerFunc(nextTickHandler, 0); + }; + })(); + + var _Set = undefined; + /* istanbul ignore if */ + if (typeof Set !== 'undefined' && Set.toString().match(/native code/)) { + // use native Set when available. + _Set = Set; + } else { + // a non-standard Set polyfill that only works with primitive keys. + _Set = function () { + this.set = Object.create(null); + }; + _Set.prototype.has = function (key) { + return this.set[key] !== undefined; + }; + _Set.prototype.add = function (key) { + this.set[key] = 1; + }; + _Set.prototype.clear = function () { + this.set = Object.create(null); + }; + } + + function Cache(limit) { + this.size = 0; + this.limit = limit; + this.head = this.tail = undefined; + this._keymap = Object.create(null); + } + + var p = Cache.prototype; + + /** + * Put into the cache associated with . + * Returns the entry which was removed to make room for + * the new entry. Otherwise undefined is returned. + * (i.e. if there was enough room already). + * + * @param {String} key + * @param {*} value + * @return {Entry|undefined} + */ + + p.put = function (key, value) { + var removed; + + var entry = this.get(key, true); + if (!entry) { + if (this.size === this.limit) { + removed = this.shift(); + } + entry = { + key: key + }; + this._keymap[key] = entry; + if (this.tail) { + this.tail.newer = entry; + entry.older = this.tail; + } else { + this.head = entry; + } + this.tail = entry; + this.size++; + } + entry.value = value; + + return removed; + }; + + /** + * Purge the least recently used (oldest) entry from the + * cache. Returns the removed entry or undefined if the + * cache was empty. + */ + + p.shift = function () { + var entry = this.head; + if (entry) { + this.head = this.head.newer; + this.head.older = undefined; + entry.newer = entry.older = undefined; + this._keymap[entry.key] = undefined; + this.size--; + } + return entry; + }; + + /** + * Get and register recent use of . Returns the value + * associated with or undefined if not in cache. + * + * @param {String} key + * @param {Boolean} returnEntry + * @return {Entry|*} + */ + + p.get = function (key, returnEntry) { + var entry = this._keymap[key]; + if (entry === undefined) return; + if (entry === this.tail) { + return returnEntry ? entry : entry.value; + } + // HEAD--------------TAIL + // <.older .newer> + // <--- add direction -- + // A B C E + if (entry.newer) { + if (entry === this.head) { + this.head = entry.newer; + } + entry.newer.older = entry.older; // C <-- E. + } + if (entry.older) { + entry.older.newer = entry.newer; // C. --> E + } + entry.newer = undefined; // D --x + entry.older = this.tail; // D. --> E + if (this.tail) { + this.tail.newer = entry; // E. <-- D + } + this.tail = entry; + return returnEntry ? entry : entry.value; + }; + + var cache$1 = new Cache(1000); + var filterTokenRE = /[^\s'"]+|'[^']*'|"[^"]*"/g; + var reservedArgRE = /^in$|^-?\d+/; + + /** + * Parser state + */ + + var str; + var dir; + var c; + var prev; + var i; + var l; + var lastFilterIndex; + var inSingle; + var inDouble; + var curly; + var square; + var paren; + /** + * Push a filter to the current directive object + */ + + function pushFilter() { + var exp = str.slice(lastFilterIndex, i).trim(); + var filter; + if (exp) { + filter = {}; + var tokens = exp.match(filterTokenRE); + filter.name = tokens[0]; + if (tokens.length > 1) { + filter.args = tokens.slice(1).map(processFilterArg); + } + } + if (filter) { + (dir.filters = dir.filters || []).push(filter); + } + lastFilterIndex = i + 1; + } + + /** + * Check if an argument is dynamic and strip quotes. + * + * @param {String} arg + * @return {Object} + */ + + function processFilterArg(arg) { + if (reservedArgRE.test(arg)) { + return { + value: toNumber(arg), + dynamic: false + }; + } else { + var stripped = stripQuotes(arg); + var dynamic = stripped === arg; + return { + value: dynamic ? arg : stripped, + dynamic: dynamic + }; + } + } + + /** + * Parse a directive value and extract the expression + * and its filters into a descriptor. + * + * Example: + * + * "a + 1 | uppercase" will yield: + * { + * expression: 'a + 1', + * filters: [ + * { name: 'uppercase', args: null } + * ] + * } + * + * @param {String} s + * @return {Object} + */ + + function parseDirective(s) { + var hit = cache$1.get(s); + if (hit) { + return hit; + } + + // reset parser state + str = s; + inSingle = inDouble = false; + curly = square = paren = 0; + lastFilterIndex = 0; + dir = {}; + + for (i = 0, l = str.length; i < l; i++) { + prev = c; + c = str.charCodeAt(i); + if (inSingle) { + // check single quote + if (c === 0x27 && prev !== 0x5C) inSingle = !inSingle; + } else if (inDouble) { + // check double quote + if (c === 0x22 && prev !== 0x5C) inDouble = !inDouble; + } else if (c === 0x7C && // pipe + str.charCodeAt(i + 1) !== 0x7C && str.charCodeAt(i - 1) !== 0x7C) { + if (dir.expression == null) { + // first filter, end of expression + lastFilterIndex = i + 1; + dir.expression = str.slice(0, i).trim(); + } else { + // already has filter + pushFilter(); + } + } else { + switch (c) { + case 0x22: + inDouble = true;break; // " + case 0x27: + inSingle = true;break; // ' + case 0x28: + paren++;break; // ( + case 0x29: + paren--;break; // ) + case 0x5B: + square++;break; // [ + case 0x5D: + square--;break; // ] + case 0x7B: + curly++;break; // { + case 0x7D: + curly--;break; // } + } + } + } + + if (dir.expression == null) { + dir.expression = str.slice(0, i).trim(); + } else if (lastFilterIndex !== 0) { + pushFilter(); + } + + cache$1.put(s, dir); + return dir; + } + +var directive = Object.freeze({ + parseDirective: parseDirective + }); + + var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g; + var cache = undefined; + var tagRE = undefined; + var htmlRE = undefined; + /** + * Escape a string so it can be used in a RegExp + * constructor. + * + * @param {String} str + */ + + function escapeRegex(str) { + return str.replace(regexEscapeRE, '\\$&'); + } + + function compileRegex() { + var open = escapeRegex(config.delimiters[0]); + var close = escapeRegex(config.delimiters[1]); + var unsafeOpen = escapeRegex(config.unsafeDelimiters[0]); + var unsafeClose = escapeRegex(config.unsafeDelimiters[1]); + tagRE = new RegExp(unsafeOpen + '((?:.|\\n)+?)' + unsafeClose + '|' + open + '((?:.|\\n)+?)' + close, 'g'); + htmlRE = new RegExp('^' + unsafeOpen + '((?:.|\\n)+?)' + unsafeClose + '$'); + // reset cache + cache = new Cache(1000); + } + + /** + * Parse a template text string into an array of tokens. + * + * @param {String} text + * @return {Array | null} + * - {String} type + * - {String} value + * - {Boolean} [html] + * - {Boolean} [oneTime] + */ + + function parseText(text) { + if (!cache) { + compileRegex(); + } + var hit = cache.get(text); + if (hit) { + return hit; + } + if (!tagRE.test(text)) { + return null; + } + var tokens = []; + var lastIndex = tagRE.lastIndex = 0; + var match, index, html, value, first, oneTime; + /* eslint-disable no-cond-assign */ + while (match = tagRE.exec(text)) { + /* eslint-enable no-cond-assign */ + index = match.index; + // push text token + if (index > lastIndex) { + tokens.push({ + value: text.slice(lastIndex, index) + }); + } + // tag token + html = htmlRE.test(match[0]); + value = html ? match[1] : match[2]; + first = value.charCodeAt(0); + oneTime = first === 42; // * + value = oneTime ? value.slice(1) : value; + tokens.push({ + tag: true, + value: value.trim(), + html: html, + oneTime: oneTime + }); + lastIndex = index + match[0].length; + } + if (lastIndex < text.length) { + tokens.push({ + value: text.slice(lastIndex) + }); + } + cache.put(text, tokens); + return tokens; + } + + /** + * Format a list of tokens into an expression. + * e.g. tokens parsed from 'a {{b}} c' can be serialized + * into one single expression as '"a " + b + " c"'. + * + * @param {Array} tokens + * @param {Vue} [vm] + * @return {String} + */ + + function tokensToExp(tokens, vm) { + if (tokens.length > 1) { + return tokens.map(function (token) { + return formatToken(token, vm); + }).join('+'); + } else { + return formatToken(tokens[0], vm, true); + } + } + + /** + * Format a single token. + * + * @param {Object} token + * @param {Vue} [vm] + * @param {Boolean} [single] + * @return {String} + */ + + function formatToken(token, vm, single) { + return token.tag ? token.oneTime && vm ? '"' + vm.$eval(token.value) + '"' : inlineFilters(token.value, single) : '"' + token.value + '"'; + } + + /** + * For an attribute with multiple interpolation tags, + * e.g. attr="some-{{thing | filter}}", in order to combine + * the whole thing into a single watchable expression, we + * have to inline those filters. This function does exactly + * that. This is a bit hacky but it avoids heavy changes + * to directive parser and watcher mechanism. + * + * @param {String} exp + * @param {Boolean} single + * @return {String} + */ + + var filterRE = /[^|]\|[^|]/; + function inlineFilters(exp, single) { + if (!filterRE.test(exp)) { + return single ? exp : '(' + exp + ')'; + } else { + var dir = parseDirective(exp); + if (!dir.filters) { + return '(' + exp + ')'; + } else { + return 'this._applyFilters(' + dir.expression + // value + ',null,' + // oldValue (null for read) + JSON.stringify(dir.filters) + // filter descriptors + ',false)'; // write? + } + } + } + +var text = Object.freeze({ + compileRegex: compileRegex, + parseText: parseText, + tokensToExp: tokensToExp + }); + + var delimiters = ['{{', '}}']; + var unsafeDelimiters = ['{{{', '}}}']; + + var config = Object.defineProperties({ + + /** + * Whether to print debug messages. + * Also enables stack trace for warnings. + * + * @type {Boolean} + */ + + debug: false, + + /** + * Whether to suppress warnings. + * + * @type {Boolean} + */ + + silent: false, + + /** + * Whether to use async rendering. + */ + + async: true, + + /** + * Whether to warn against errors caught when evaluating + * expressions. + */ + + warnExpressionErrors: true, + + /** + * Whether to allow devtools inspection. + * Disabled by default in production builds. + */ + + devtools: 'development' !== 'production', + + /** + * Internal flag to indicate the delimiters have been + * changed. + * + * @type {Boolean} + */ + + _delimitersChanged: true, + + /** + * List of asset types that a component can own. + * + * @type {Array} + */ + + _assetTypes: ['component', 'directive', 'elementDirective', 'filter', 'transition', 'partial'], + + /** + * prop binding modes + */ + + _propBindingModes: { + ONE_WAY: 0, + TWO_WAY: 1, + ONE_TIME: 2 + }, + + /** + * Max circular updates allowed in a batcher flush cycle. + */ + + _maxUpdateCount: 100 + + }, { + delimiters: { /** + * Interpolation delimiters. Changing these would trigger + * the text parser to re-compile the regular expressions. + * + * @type {Array} + */ + + get: function get() { + return delimiters; + }, + set: function set(val) { + delimiters = val; + compileRegex(); + }, + configurable: true, + enumerable: true + }, + unsafeDelimiters: { + get: function get() { + return unsafeDelimiters; + }, + set: function set(val) { + unsafeDelimiters = val; + compileRegex(); + }, + configurable: true, + enumerable: true + } + }); + + var warn = undefined; + var formatComponentName = undefined; + + if ('development' !== 'production') { + (function () { + var hasConsole = typeof console !== 'undefined'; + + warn = function (msg, vm) { + if (hasConsole && !config.silent) { + console.error('[Vue warn]: ' + msg + (vm ? formatComponentName(vm) : '')); + } + }; + + formatComponentName = function (vm) { + var name = vm._isVue ? vm.$options.name : vm.name; + return name ? ' (found in component: <' + hyphenate(name) + '>)' : ''; + }; + })(); + } + + /** + * Append with transition. + * + * @param {Element} el + * @param {Element} target + * @param {Vue} vm + * @param {Function} [cb] + */ + + function appendWithTransition(el, target, vm, cb) { + applyTransition(el, 1, function () { + target.appendChild(el); + }, vm, cb); + } + + /** + * InsertBefore with transition. + * + * @param {Element} el + * @param {Element} target + * @param {Vue} vm + * @param {Function} [cb] + */ + + function beforeWithTransition(el, target, vm, cb) { + applyTransition(el, 1, function () { + before(el, target); + }, vm, cb); + } + + /** + * Remove with transition. + * + * @param {Element} el + * @param {Vue} vm + * @param {Function} [cb] + */ + + function removeWithTransition(el, vm, cb) { + applyTransition(el, -1, function () { + remove(el); + }, vm, cb); + } + + /** + * Apply transitions with an operation callback. + * + * @param {Element} el + * @param {Number} direction + * 1: enter + * -1: leave + * @param {Function} op - the actual DOM operation + * @param {Vue} vm + * @param {Function} [cb] + */ + + function applyTransition(el, direction, op, vm, cb) { + var transition = el.__v_trans; + if (!transition || + // skip if there are no js hooks and CSS transition is + // not supported + !transition.hooks && !transitionEndEvent || + // skip transitions for initial compile + !vm._isCompiled || + // if the vm is being manipulated by a parent directive + // during the parent's compilation phase, skip the + // animation. + vm.$parent && !vm.$parent._isCompiled) { + op(); + if (cb) cb(); + return; + } + var action = direction > 0 ? 'enter' : 'leave'; + transition[action](op, cb); + } + +var transition = Object.freeze({ + appendWithTransition: appendWithTransition, + beforeWithTransition: beforeWithTransition, + removeWithTransition: removeWithTransition, + applyTransition: applyTransition + }); + + /** + * Query an element selector if it's not an element already. + * + * @param {String|Element} el + * @return {Element} + */ + + function query(el) { + if (typeof el === 'string') { + var selector = el; + el = document.querySelector(el); + if (!el) { + 'development' !== 'production' && warn('Cannot find element: ' + selector); + } + } + return el; + } + + /** + * Check if a node is in the document. + * Note: document.documentElement.contains should work here + * but always returns false for comment nodes in phantomjs, + * making unit tests difficult. This is fixed by doing the + * contains() check on the node's parentNode instead of + * the node itself. + * + * @param {Node} node + * @return {Boolean} + */ + + function inDoc(node) { + if (!node) return false; + var doc = node.ownerDocument.documentElement; + var parent = node.parentNode; + return doc === node || doc === parent || !!(parent && parent.nodeType === 1 && doc.contains(parent)); + } + + /** + * Get and remove an attribute from a node. + * + * @param {Node} node + * @param {String} _attr + */ + + function getAttr(node, _attr) { + var val = node.getAttribute(_attr); + if (val !== null) { + node.removeAttribute(_attr); + } + return val; + } + + /** + * Get an attribute with colon or v-bind: prefix. + * + * @param {Node} node + * @param {String} name + * @return {String|null} + */ + + function getBindAttr(node, name) { + var val = getAttr(node, ':' + name); + if (val === null) { + val = getAttr(node, 'v-bind:' + name); + } + return val; + } + + /** + * Check the presence of a bind attribute. + * + * @param {Node} node + * @param {String} name + * @return {Boolean} + */ + + function hasBindAttr(node, name) { + return node.hasAttribute(name) || node.hasAttribute(':' + name) || node.hasAttribute('v-bind:' + name); + } + + /** + * Insert el before target + * + * @param {Element} el + * @param {Element} target + */ + + function before(el, target) { + target.parentNode.insertBefore(el, target); + } + + /** + * Insert el after target + * + * @param {Element} el + * @param {Element} target + */ + + function after(el, target) { + if (target.nextSibling) { + before(el, target.nextSibling); + } else { + target.parentNode.appendChild(el); + } + } + + /** + * Remove el from DOM + * + * @param {Element} el + */ + + function remove(el) { + el.parentNode.removeChild(el); + } + + /** + * Prepend el to target + * + * @param {Element} el + * @param {Element} target + */ + + function prepend(el, target) { + if (target.firstChild) { + before(el, target.firstChild); + } else { + target.appendChild(el); + } + } + + /** + * Replace target with el + * + * @param {Element} target + * @param {Element} el + */ + + function replace(target, el) { + var parent = target.parentNode; + if (parent) { + parent.replaceChild(el, target); + } + } + + /** + * Add event listener shorthand. + * + * @param {Element} el + * @param {String} event + * @param {Function} cb + * @param {Boolean} [useCapture] + */ + + function on(el, event, cb, useCapture) { + el.addEventListener(event, cb, useCapture); + } + + /** + * Remove event listener shorthand. + * + * @param {Element} el + * @param {String} event + * @param {Function} cb + */ + + function off(el, event, cb) { + el.removeEventListener(event, cb); + } + + /** + * For IE9 compat: when both class and :class are present + * getAttribute('class') returns wrong value... + * + * @param {Element} el + * @return {String} + */ + + function getClass(el) { + var classname = el.className; + if (typeof classname === 'object') { + classname = classname.baseVal || ''; + } + return classname; + } + + /** + * In IE9, setAttribute('class') will result in empty class + * if the element also has the :class attribute; However in + * PhantomJS, setting `className` does not work on SVG elements... + * So we have to do a conditional check here. + * + * @param {Element} el + * @param {String} cls + */ + + function setClass(el, cls) { + /* istanbul ignore if */ + if (isIE9 && !/svg$/.test(el.namespaceURI)) { + el.className = cls; + } else { + el.setAttribute('class', cls); + } + } + + /** + * Add class with compatibility for IE & SVG + * + * @param {Element} el + * @param {String} cls + */ + + function addClass(el, cls) { + if (el.classList) { + el.classList.add(cls); + } else { + var cur = ' ' + getClass(el) + ' '; + if (cur.indexOf(' ' + cls + ' ') < 0) { + setClass(el, (cur + cls).trim()); + } + } + } + + /** + * Remove class with compatibility for IE & SVG + * + * @param {Element} el + * @param {String} cls + */ + + function removeClass(el, cls) { + if (el.classList) { + el.classList.remove(cls); + } else { + var cur = ' ' + getClass(el) + ' '; + var tar = ' ' + cls + ' '; + while (cur.indexOf(tar) >= 0) { + cur = cur.replace(tar, ' '); + } + setClass(el, cur.trim()); + } + if (!el.className) { + el.removeAttribute('class'); + } + } + + /** + * Extract raw content inside an element into a temporary + * container div + * + * @param {Element} el + * @param {Boolean} asFragment + * @return {Element|DocumentFragment} + */ + + function extractContent(el, asFragment) { + var child; + var rawContent; + /* istanbul ignore if */ + if (isTemplate(el) && isFragment(el.content)) { + el = el.content; + } + if (el.hasChildNodes()) { + trimNode(el); + rawContent = asFragment ? document.createDocumentFragment() : document.createElement('div'); + /* eslint-disable no-cond-assign */ + while (child = el.firstChild) { + /* eslint-enable no-cond-assign */ + rawContent.appendChild(child); + } + } + return rawContent; + } + + /** + * Trim possible empty head/tail text and comment + * nodes inside a parent. + * + * @param {Node} node + */ + + function trimNode(node) { + var child; + /* eslint-disable no-sequences */ + while ((child = node.firstChild, isTrimmable(child))) { + node.removeChild(child); + } + while ((child = node.lastChild, isTrimmable(child))) { + node.removeChild(child); + } + /* eslint-enable no-sequences */ + } + + function isTrimmable(node) { + return node && (node.nodeType === 3 && !node.data.trim() || node.nodeType === 8); + } + + /** + * Check if an element is a template tag. + * Note if the template appears inside an SVG its tagName + * will be in lowercase. + * + * @param {Element} el + */ + + function isTemplate(el) { + return el.tagName && el.tagName.toLowerCase() === 'template'; + } + + /** + * Create an "anchor" for performing dom insertion/removals. + * This is used in a number of scenarios: + * - fragment instance + * - v-html + * - v-if + * - v-for + * - component + * + * @param {String} content + * @param {Boolean} persist - IE trashes empty textNodes on + * cloneNode(true), so in certain + * cases the anchor needs to be + * non-empty to be persisted in + * templates. + * @return {Comment|Text} + */ + + function createAnchor(content, persist) { + var anchor = config.debug ? document.createComment(content) : document.createTextNode(persist ? ' ' : ''); + anchor.__v_anchor = true; + return anchor; + } + + /** + * Find a component ref attribute that starts with $. + * + * @param {Element} node + * @return {String|undefined} + */ + + var refRE = /^v-ref:/; + + function findRef(node) { + if (node.hasAttributes()) { + var attrs = node.attributes; + for (var i = 0, l = attrs.length; i < l; i++) { + var name = attrs[i].name; + if (refRE.test(name)) { + return camelize(name.replace(refRE, '')); + } + } + } + } + + /** + * Map a function to a range of nodes . + * + * @param {Node} node + * @param {Node} end + * @param {Function} op + */ + + function mapNodeRange(node, end, op) { + var next; + while (node !== end) { + next = node.nextSibling; + op(node); + node = next; + } + op(end); + } + + /** + * Remove a range of nodes with transition, store + * the nodes in a fragment with correct ordering, + * and call callback when done. + * + * @param {Node} start + * @param {Node} end + * @param {Vue} vm + * @param {DocumentFragment} frag + * @param {Function} cb + */ + + function removeNodeRange(start, end, vm, frag, cb) { + var done = false; + var removed = 0; + var nodes = []; + mapNodeRange(start, end, function (node) { + if (node === end) done = true; + nodes.push(node); + removeWithTransition(node, vm, onRemoved); + }); + function onRemoved() { + removed++; + if (done && removed >= nodes.length) { + for (var i = 0; i < nodes.length; i++) { + frag.appendChild(nodes[i]); + } + cb && cb(); + } + } + } + + /** + * Check if a node is a DocumentFragment. + * + * @param {Node} node + * @return {Boolean} + */ + + function isFragment(node) { + return node && node.nodeType === 11; + } + + /** + * Get outerHTML of elements, taking care + * of SVG elements in IE as well. + * + * @param {Element} el + * @return {String} + */ + + function getOuterHTML(el) { + if (el.outerHTML) { + return el.outerHTML; + } else { + var container = document.createElement('div'); + container.appendChild(el.cloneNode(true)); + return container.innerHTML; + } + } + + var commonTagRE = /^(div|p|span|img|a|b|i|br|ul|ol|li|h1|h2|h3|h4|h5|h6|code|pre|table|th|td|tr|form|label|input|select|option|nav|article|section|header|footer)$/i; + var reservedTagRE = /^(slot|partial|component)$/i; + + var isUnknownElement = undefined; + if ('development' !== 'production') { + isUnknownElement = function (el, tag) { + if (tag.indexOf('-') > -1) { + // http://stackoverflow.com/a/28210364/1070244 + return el.constructor === window.HTMLUnknownElement || el.constructor === window.HTMLElement; + } else { + return (/HTMLUnknownElement/.test(el.toString()) && + // Chrome returns unknown for several HTML5 elements. + // https://code.google.com/p/chromium/issues/detail?id=540526 + // Firefox returns unknown for some "Interactive elements." + !/^(data|time|rtc|rb|details|dialog|summary)$/.test(tag) + ); + } + }; + } + + /** + * Check if an element is a component, if yes return its + * component id. + * + * @param {Element} el + * @param {Object} options + * @return {Object|undefined} + */ + + function checkComponentAttr(el, options) { + var tag = el.tagName.toLowerCase(); + var hasAttrs = el.hasAttributes(); + if (!commonTagRE.test(tag) && !reservedTagRE.test(tag)) { + if (resolveAsset(options, 'components', tag)) { + return { id: tag }; + } else { + var is = hasAttrs && getIsBinding(el, options); + if (is) { + return is; + } else if ('development' !== 'production') { + var expectedTag = options._componentNameMap && options._componentNameMap[tag]; + if (expectedTag) { + warn('Unknown custom element: <' + tag + '> - ' + 'did you mean <' + expectedTag + '>? ' + 'HTML is case-insensitive, remember to use kebab-case in templates.'); + } else if (isUnknownElement(el, tag)) { + warn('Unknown custom element: <' + tag + '> - did you ' + 'register the component correctly? For recursive components, ' + 'make sure to provide the "name" option.'); + } + } + } + } else if (hasAttrs) { + return getIsBinding(el, options); + } + } + + /** + * Get "is" binding from an element. + * + * @param {Element} el + * @param {Object} options + * @return {Object|undefined} + */ + + function getIsBinding(el, options) { + // dynamic syntax + var exp = el.getAttribute('is'); + if (exp != null) { + if (resolveAsset(options, 'components', exp)) { + el.removeAttribute('is'); + return { id: exp }; + } + } else { + exp = getBindAttr(el, 'is'); + if (exp != null) { + return { id: exp, dynamic: true }; + } + } + } + + /** + * Option overwriting strategies are functions that handle + * how to merge a parent option value and a child option + * value into the final value. + * + * All strategy functions follow the same signature: + * + * @param {*} parentVal + * @param {*} childVal + * @param {Vue} [vm] + */ + + var strats = config.optionMergeStrategies = Object.create(null); + + /** + * Helper that recursively merges two data objects together. + */ + + function mergeData(to, from) { + var key, toVal, fromVal; + for (key in from) { + toVal = to[key]; + fromVal = from[key]; + if (!hasOwn(to, key)) { + set(to, key, fromVal); + } else if (isObject(toVal) && isObject(fromVal)) { + mergeData(toVal, fromVal); + } + } + return to; + } + + /** + * Data + */ + + strats.data = function (parentVal, childVal, vm) { + if (!vm) { + // in a Vue.extend merge, both should be functions + if (!childVal) { + return parentVal; + } + if (typeof childVal !== 'function') { + 'development' !== 'production' && warn('The "data" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm); + return parentVal; + } + if (!parentVal) { + return childVal; + } + // when parentVal & childVal are both present, + // we need to return a function that returns the + // merged result of both functions... no need to + // check if parentVal is a function here because + // it has to be a function to pass previous merges. + return function mergedDataFn() { + return mergeData(childVal.call(this), parentVal.call(this)); + }; + } else if (parentVal || childVal) { + return function mergedInstanceDataFn() { + // instance merge + var instanceData = typeof childVal === 'function' ? childVal.call(vm) : childVal; + var defaultData = typeof parentVal === 'function' ? parentVal.call(vm) : undefined; + if (instanceData) { + return mergeData(instanceData, defaultData); + } else { + return defaultData; + } + }; + } + }; + + /** + * El + */ + + strats.el = function (parentVal, childVal, vm) { + if (!vm && childVal && typeof childVal !== 'function') { + 'development' !== 'production' && warn('The "el" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm); + return; + } + var ret = childVal || parentVal; + // invoke the element factory if this is instance merge + return vm && typeof ret === 'function' ? ret.call(vm) : ret; + }; + + /** + * Hooks and param attributes are merged as arrays. + */ + + strats.init = strats.created = strats.ready = strats.attached = strats.detached = strats.beforeCompile = strats.compiled = strats.beforeDestroy = strats.destroyed = strats.activate = function (parentVal, childVal) { + return childVal ? parentVal ? parentVal.concat(childVal) : isArray(childVal) ? childVal : [childVal] : parentVal; + }; + + /** + * Assets + * + * When a vm is present (instance creation), we need to do + * a three-way merge between constructor options, instance + * options and parent options. + */ + + function mergeAssets(parentVal, childVal) { + var res = Object.create(parentVal || null); + return childVal ? extend(res, guardArrayAssets(childVal)) : res; + } + + config._assetTypes.forEach(function (type) { + strats[type + 's'] = mergeAssets; + }); + + /** + * Events & Watchers. + * + * Events & watchers hashes should not overwrite one + * another, so we merge them as arrays. + */ + + strats.watch = strats.events = function (parentVal, childVal) { + if (!childVal) return parentVal; + if (!parentVal) return childVal; + var ret = {}; + extend(ret, parentVal); + for (var key in childVal) { + var parent = ret[key]; + var child = childVal[key]; + if (parent && !isArray(parent)) { + parent = [parent]; + } + ret[key] = parent ? parent.concat(child) : [child]; + } + return ret; + }; + + /** + * Other object hashes. + */ + + strats.props = strats.methods = strats.computed = function (parentVal, childVal) { + if (!childVal) return parentVal; + if (!parentVal) return childVal; + var ret = Object.create(null); + extend(ret, parentVal); + extend(ret, childVal); + return ret; + }; + + /** + * Default strategy. + */ + + var defaultStrat = function defaultStrat(parentVal, childVal) { + return childVal === undefined ? parentVal : childVal; + }; + + /** + * Make sure component options get converted to actual + * constructors. + * + * @param {Object} options + */ + + function guardComponents(options) { + if (options.components) { + var components = options.components = guardArrayAssets(options.components); + var ids = Object.keys(components); + var def; + if ('development' !== 'production') { + var map = options._componentNameMap = {}; + } + for (var i = 0, l = ids.length; i < l; i++) { + var key = ids[i]; + if (commonTagRE.test(key) || reservedTagRE.test(key)) { + 'development' !== 'production' && warn('Do not use built-in or reserved HTML elements as component ' + 'id: ' + key); + continue; + } + // record a all lowercase <-> kebab-case mapping for + // possible custom element case error warning + if ('development' !== 'production') { + map[key.replace(/-/g, '').toLowerCase()] = hyphenate(key); + } + def = components[key]; + if (isPlainObject(def)) { + components[key] = Vue.extend(def); + } + } + } + } + + /** + * Ensure all props option syntax are normalized into the + * Object-based format. + * + * @param {Object} options + */ + + function guardProps(options) { + var props = options.props; + var i, val; + if (isArray(props)) { + options.props = {}; + i = props.length; + while (i--) { + val = props[i]; + if (typeof val === 'string') { + options.props[val] = null; + } else if (val.name) { + options.props[val.name] = val; + } + } + } else if (isPlainObject(props)) { + var keys = Object.keys(props); + i = keys.length; + while (i--) { + val = props[keys[i]]; + if (typeof val === 'function') { + props[keys[i]] = { type: val }; + } + } + } + } + + /** + * Guard an Array-format assets option and converted it + * into the key-value Object format. + * + * @param {Object|Array} assets + * @return {Object} + */ + + function guardArrayAssets(assets) { + if (isArray(assets)) { + var res = {}; + var i = assets.length; + var asset; + while (i--) { + asset = assets[i]; + var id = typeof asset === 'function' ? asset.options && asset.options.name || asset.id : asset.name || asset.id; + if (!id) { + 'development' !== 'production' && warn('Array-syntax assets must provide a "name" or "id" field.'); + } else { + res[id] = asset; + } + } + return res; + } + return assets; + } + + /** + * Merge two option objects into a new one. + * Core utility used in both instantiation and inheritance. + * + * @param {Object} parent + * @param {Object} child + * @param {Vue} [vm] - if vm is present, indicates this is + * an instantiation merge. + */ + + function mergeOptions(parent, child, vm) { + guardComponents(child); + guardProps(child); + if ('development' !== 'production') { + if (child.propsData && !vm) { + warn('propsData can only be used as an instantiation option.'); + } + } + var options = {}; + var key; + if (child['extends']) { + parent = typeof child['extends'] === 'function' ? mergeOptions(parent, child['extends'].options, vm) : mergeOptions(parent, child['extends'], vm); + } + if (child.mixins) { + for (var i = 0, l = child.mixins.length; i < l; i++) { + var mixin = child.mixins[i]; + var mixinOptions = mixin.prototype instanceof Vue ? mixin.options : mixin; + parent = mergeOptions(parent, mixinOptions, vm); + } + } + for (key in parent) { + mergeField(key); + } + for (key in child) { + if (!hasOwn(parent, key)) { + mergeField(key); + } + } + function mergeField(key) { + var strat = strats[key] || defaultStrat; + options[key] = strat(parent[key], child[key], vm, key); + } + return options; + } + + /** + * Resolve an asset. + * This function is used because child instances need access + * to assets defined in its ancestor chain. + * + * @param {Object} options + * @param {String} type + * @param {String} id + * @param {Boolean} warnMissing + * @return {Object|Function} + */ + + function resolveAsset(options, type, id, warnMissing) { + /* istanbul ignore if */ + if (typeof id !== 'string') { + return; + } + var assets = options[type]; + var camelizedId; + var res = assets[id] || + // camelCase ID + assets[camelizedId = camelize(id)] || + // Pascal Case ID + assets[camelizedId.charAt(0).toUpperCase() + camelizedId.slice(1)]; + if ('development' !== 'production' && warnMissing && !res) { + warn('Failed to resolve ' + type.slice(0, -1) + ': ' + id, options); + } + return res; + } + + var uid$1 = 0; + + /** + * A dep is an observable that can have multiple + * directives subscribing to it. + * + * @constructor + */ + function Dep() { + this.id = uid$1++; + this.subs = []; + } + + // the current target watcher being evaluated. + // this is globally unique because there could be only one + // watcher being evaluated at any time. + Dep.target = null; + + /** + * Add a directive subscriber. + * + * @param {Directive} sub + */ + + Dep.prototype.addSub = function (sub) { + this.subs.push(sub); + }; + + /** + * Remove a directive subscriber. + * + * @param {Directive} sub + */ + + Dep.prototype.removeSub = function (sub) { + this.subs.$remove(sub); + }; + + /** + * Add self as a dependency to the target watcher. + */ + + Dep.prototype.depend = function () { + Dep.target.addDep(this); + }; + + /** + * Notify all subscribers of a new value. + */ + + Dep.prototype.notify = function () { + // stablize the subscriber list first + var subs = toArray(this.subs); + for (var i = 0, l = subs.length; i < l; i++) { + subs[i].update(); + } + }; + + var arrayProto = Array.prototype; + var arrayMethods = Object.create(arrayProto) + + /** + * Intercept mutating methods and emit events + */ + + ;['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'].forEach(function (method) { + // cache original method + var original = arrayProto[method]; + def(arrayMethods, method, function mutator() { + // avoid leaking arguments: + // http://jsperf.com/closure-with-arguments + var i = arguments.length; + var args = new Array(i); + while (i--) { + args[i] = arguments[i]; + } + var result = original.apply(this, args); + var ob = this.__ob__; + var inserted; + switch (method) { + case 'push': + inserted = args; + break; + case 'unshift': + inserted = args; + break; + case 'splice': + inserted = args.slice(2); + break; + } + if (inserted) ob.observeArray(inserted); + // notify change + ob.dep.notify(); + return result; + }); + }); + + /** + * Swap the element at the given index with a new value + * and emits corresponding event. + * + * @param {Number} index + * @param {*} val + * @return {*} - replaced element + */ + + def(arrayProto, '$set', function $set(index, val) { + if (index >= this.length) { + this.length = Number(index) + 1; + } + return this.splice(index, 1, val)[0]; + }); + + /** + * Convenience method to remove the element at given index or target element reference. + * + * @param {*} item + */ + + def(arrayProto, '$remove', function $remove(item) { + /* istanbul ignore if */ + if (!this.length) return; + var index = indexOf(this, item); + if (index > -1) { + return this.splice(index, 1); + } + }); + + var arrayKeys = Object.getOwnPropertyNames(arrayMethods); + + /** + * By default, when a reactive property is set, the new value is + * also converted to become reactive. However in certain cases, e.g. + * v-for scope alias and props, we don't want to force conversion + * because the value may be a nested value under a frozen data structure. + * + * So whenever we want to set a reactive property without forcing + * conversion on the new value, we wrap that call inside this function. + */ + + var shouldConvert = true; + + function withoutConversion(fn) { + shouldConvert = false; + fn(); + shouldConvert = true; + } + + /** + * Observer class that are attached to each observed + * object. Once attached, the observer converts target + * object's property keys into getter/setters that + * collect dependencies and dispatches updates. + * + * @param {Array|Object} value + * @constructor + */ + + function Observer(value) { + this.value = value; + this.dep = new Dep(); + def(value, '__ob__', this); + if (isArray(value)) { + var augment = hasProto ? protoAugment : copyAugment; + augment(value, arrayMethods, arrayKeys); + this.observeArray(value); + } else { + this.walk(value); + } + } + + // Instance methods + + /** + * Walk through each property and convert them into + * getter/setters. This method should only be called when + * value type is Object. + * + * @param {Object} obj + */ + + Observer.prototype.walk = function (obj) { + var keys = Object.keys(obj); + for (var i = 0, l = keys.length; i < l; i++) { + this.convert(keys[i], obj[keys[i]]); + } + }; + + /** + * Observe a list of Array items. + * + * @param {Array} items + */ + + Observer.prototype.observeArray = function (items) { + for (var i = 0, l = items.length; i < l; i++) { + observe(items[i]); + } + }; + + /** + * Convert a property into getter/setter so we can emit + * the events when the property is accessed/changed. + * + * @param {String} key + * @param {*} val + */ + + Observer.prototype.convert = function (key, val) { + defineReactive(this.value, key, val); + }; + + /** + * Add an owner vm, so that when $set/$delete mutations + * happen we can notify owner vms to proxy the keys and + * digest the watchers. This is only called when the object + * is observed as an instance's root $data. + * + * @param {Vue} vm + */ + + Observer.prototype.addVm = function (vm) { + (this.vms || (this.vms = [])).push(vm); + }; + + /** + * Remove an owner vm. This is called when the object is + * swapped out as an instance's $data object. + * + * @param {Vue} vm + */ + + Observer.prototype.removeVm = function (vm) { + this.vms.$remove(vm); + }; + + // helpers + + /** + * Augment an target Object or Array by intercepting + * the prototype chain using __proto__ + * + * @param {Object|Array} target + * @param {Object} src + */ + + function protoAugment(target, src) { + /* eslint-disable no-proto */ + target.__proto__ = src; + /* eslint-enable no-proto */ + } + + /** + * Augment an target Object or Array by defining + * hidden properties. + * + * @param {Object|Array} target + * @param {Object} proto + */ + + function copyAugment(target, src, keys) { + for (var i = 0, l = keys.length; i < l; i++) { + var key = keys[i]; + def(target, key, src[key]); + } + } + + /** + * Attempt to create an observer instance for a value, + * returns the new observer if successfully observed, + * or the existing observer if the value already has one. + * + * @param {*} value + * @param {Vue} [vm] + * @return {Observer|undefined} + * @static + */ + + function observe(value, vm) { + if (!value || typeof value !== 'object') { + return; + } + var ob; + if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { + ob = value.__ob__; + } else if (shouldConvert && (isArray(value) || isPlainObject(value)) && Object.isExtensible(value) && !value._isVue) { + ob = new Observer(value); + } + if (ob && vm) { + ob.addVm(vm); + } + return ob; + } + + /** + * Define a reactive property on an Object. + * + * @param {Object} obj + * @param {String} key + * @param {*} val + */ + + function defineReactive(obj, key, val) { + var dep = new Dep(); + + var property = Object.getOwnPropertyDescriptor(obj, key); + if (property && property.configurable === false) { + return; + } + + // cater for pre-defined getter/setters + var getter = property && property.get; + var setter = property && property.set; + + var childOb = observe(val); + Object.defineProperty(obj, key, { + enumerable: true, + configurable: true, + get: function reactiveGetter() { + var value = getter ? getter.call(obj) : val; + if (Dep.target) { + dep.depend(); + if (childOb) { + childOb.dep.depend(); + } + if (isArray(value)) { + for (var e, i = 0, l = value.length; i < l; i++) { + e = value[i]; + e && e.__ob__ && e.__ob__.dep.depend(); + } + } + } + return value; + }, + set: function reactiveSetter(newVal) { + var value = getter ? getter.call(obj) : val; + if (newVal === value) { + return; + } + if (setter) { + setter.call(obj, newVal); + } else { + val = newVal; + } + childOb = observe(newVal); + dep.notify(); + } + }); + } + + + + var util = Object.freeze({ + defineReactive: defineReactive, + set: set, + del: del, + hasOwn: hasOwn, + isLiteral: isLiteral, + isReserved: isReserved, + _toString: _toString, + toNumber: toNumber, + toBoolean: toBoolean, + stripQuotes: stripQuotes, + camelize: camelize, + hyphenate: hyphenate, + classify: classify, + bind: bind, + toArray: toArray, + extend: extend, + isObject: isObject, + isPlainObject: isPlainObject, + def: def, + debounce: _debounce, + indexOf: indexOf, + cancellable: cancellable, + looseEqual: looseEqual, + isArray: isArray, + hasProto: hasProto, + inBrowser: inBrowser, + devtools: devtools, + isIE: isIE, + isIE9: isIE9, + isAndroid: isAndroid, + isIos: isIos, + iosVersionMatch: iosVersionMatch, + iosVersion: iosVersion, + hasMutationObserverBug: hasMutationObserverBug, + get transitionProp () { return transitionProp; }, + get transitionEndEvent () { return transitionEndEvent; }, + get animationProp () { return animationProp; }, + get animationEndEvent () { return animationEndEvent; }, + nextTick: nextTick, + get _Set () { return _Set; }, + query: query, + inDoc: inDoc, + getAttr: getAttr, + getBindAttr: getBindAttr, + hasBindAttr: hasBindAttr, + before: before, + after: after, + remove: remove, + prepend: prepend, + replace: replace, + on: on, + off: off, + setClass: setClass, + addClass: addClass, + removeClass: removeClass, + extractContent: extractContent, + trimNode: trimNode, + isTemplate: isTemplate, + createAnchor: createAnchor, + findRef: findRef, + mapNodeRange: mapNodeRange, + removeNodeRange: removeNodeRange, + isFragment: isFragment, + getOuterHTML: getOuterHTML, + mergeOptions: mergeOptions, + resolveAsset: resolveAsset, + checkComponentAttr: checkComponentAttr, + commonTagRE: commonTagRE, + reservedTagRE: reservedTagRE, + get warn () { return warn; } + }); + + var uid = 0; + + function initMixin (Vue) { + /** + * The main init sequence. This is called for every + * instance, including ones that are created from extended + * constructors. + * + * @param {Object} options - this options object should be + * the result of merging class + * options and the options passed + * in to the constructor. + */ + + Vue.prototype._init = function (options) { + options = options || {}; + + this.$el = null; + this.$parent = options.parent; + this.$root = this.$parent ? this.$parent.$root : this; + this.$children = []; + this.$refs = {}; // child vm references + this.$els = {}; // element references + this._watchers = []; // all watchers as an array + this._directives = []; // all directives + + // a uid + this._uid = uid++; + + // a flag to avoid this being observed + this._isVue = true; + + // events bookkeeping + this._events = {}; // registered callbacks + this._eventsCount = {}; // for $broadcast optimization + + // fragment instance properties + this._isFragment = false; + this._fragment = // @type {DocumentFragment} + this._fragmentStart = // @type {Text|Comment} + this._fragmentEnd = null; // @type {Text|Comment} + + // lifecycle state + this._isCompiled = this._isDestroyed = this._isReady = this._isAttached = this._isBeingDestroyed = this._vForRemoving = false; + this._unlinkFn = null; + + // context: + // if this is a transcluded component, context + // will be the common parent vm of this instance + // and its host. + this._context = options._context || this.$parent; + + // scope: + // if this is inside an inline v-for, the scope + // will be the intermediate scope created for this + // repeat fragment. this is used for linking props + // and container directives. + this._scope = options._scope; + + // fragment: + // if this instance is compiled inside a Fragment, it + // needs to reigster itself as a child of that fragment + // for attach/detach to work properly. + this._frag = options._frag; + if (this._frag) { + this._frag.children.push(this); + } + + // push self into parent / transclusion host + if (this.$parent) { + this.$parent.$children.push(this); + } + + // merge options. + options = this.$options = mergeOptions(this.constructor.options, options, this); + + // set ref + this._updateRef(); + + // initialize data as empty object. + // it will be filled up in _initData(). + this._data = {}; + + // call init hook + this._callHook('init'); + + // initialize data observation and scope inheritance. + this._initState(); + + // setup event system and option events. + this._initEvents(); + + // call created hook + this._callHook('created'); + + // if `el` option is passed, start compilation. + if (options.el) { + this.$mount(options.el); + } + }; + } + + var pathCache = new Cache(1000); + + // actions + var APPEND = 0; + var PUSH = 1; + var INC_SUB_PATH_DEPTH = 2; + var PUSH_SUB_PATH = 3; + + // states + var BEFORE_PATH = 0; + var IN_PATH = 1; + var BEFORE_IDENT = 2; + var IN_IDENT = 3; + var IN_SUB_PATH = 4; + var IN_SINGLE_QUOTE = 5; + var IN_DOUBLE_QUOTE = 6; + var AFTER_PATH = 7; + var ERROR = 8; + + var pathStateMachine = []; + + pathStateMachine[BEFORE_PATH] = { + 'ws': [BEFORE_PATH], + 'ident': [IN_IDENT, APPEND], + '[': [IN_SUB_PATH], + 'eof': [AFTER_PATH] + }; + + pathStateMachine[IN_PATH] = { + 'ws': [IN_PATH], + '.': [BEFORE_IDENT], + '[': [IN_SUB_PATH], + 'eof': [AFTER_PATH] + }; + + pathStateMachine[BEFORE_IDENT] = { + 'ws': [BEFORE_IDENT], + 'ident': [IN_IDENT, APPEND] + }; + + pathStateMachine[IN_IDENT] = { + 'ident': [IN_IDENT, APPEND], + '0': [IN_IDENT, APPEND], + 'number': [IN_IDENT, APPEND], + 'ws': [IN_PATH, PUSH], + '.': [BEFORE_IDENT, PUSH], + '[': [IN_SUB_PATH, PUSH], + 'eof': [AFTER_PATH, PUSH] + }; + + pathStateMachine[IN_SUB_PATH] = { + "'": [IN_SINGLE_QUOTE, APPEND], + '"': [IN_DOUBLE_QUOTE, APPEND], + '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH], + ']': [IN_PATH, PUSH_SUB_PATH], + 'eof': ERROR, + 'else': [IN_SUB_PATH, APPEND] + }; + + pathStateMachine[IN_SINGLE_QUOTE] = { + "'": [IN_SUB_PATH, APPEND], + 'eof': ERROR, + 'else': [IN_SINGLE_QUOTE, APPEND] + }; + + pathStateMachine[IN_DOUBLE_QUOTE] = { + '"': [IN_SUB_PATH, APPEND], + 'eof': ERROR, + 'else': [IN_DOUBLE_QUOTE, APPEND] + }; + + /** + * Determine the type of a character in a keypath. + * + * @param {Char} ch + * @return {String} type + */ + + function getPathCharType(ch) { + if (ch === undefined) { + return 'eof'; + } + + var code = ch.charCodeAt(0); + + switch (code) { + case 0x5B: // [ + case 0x5D: // ] + case 0x2E: // . + case 0x22: // " + case 0x27: // ' + case 0x30: + // 0 + return ch; + + case 0x5F: // _ + case 0x24: + // $ + return 'ident'; + + case 0x20: // Space + case 0x09: // Tab + case 0x0A: // Newline + case 0x0D: // Return + case 0xA0: // No-break space + case 0xFEFF: // Byte Order Mark + case 0x2028: // Line Separator + case 0x2029: + // Paragraph Separator + return 'ws'; + } + + // a-z, A-Z + if (code >= 0x61 && code <= 0x7A || code >= 0x41 && code <= 0x5A) { + return 'ident'; + } + + // 1-9 + if (code >= 0x31 && code <= 0x39) { + return 'number'; + } + + return 'else'; + } + + /** + * Format a subPath, return its plain form if it is + * a literal string or number. Otherwise prepend the + * dynamic indicator (*). + * + * @param {String} path + * @return {String} + */ + + function formatSubPath(path) { + var trimmed = path.trim(); + // invalid leading 0 + if (path.charAt(0) === '0' && isNaN(path)) { + return false; + } + return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed; + } + + /** + * Parse a string path into an array of segments + * + * @param {String} path + * @return {Array|undefined} + */ + + function parse(path) { + var keys = []; + var index = -1; + var mode = BEFORE_PATH; + var subPathDepth = 0; + var c, newChar, key, type, transition, action, typeMap; + + var actions = []; + + actions[PUSH] = function () { + if (key !== undefined) { + keys.push(key); + key = undefined; + } + }; + + actions[APPEND] = function () { + if (key === undefined) { + key = newChar; + } else { + key += newChar; + } + }; + + actions[INC_SUB_PATH_DEPTH] = function () { + actions[APPEND](); + subPathDepth++; + }; + + actions[PUSH_SUB_PATH] = function () { + if (subPathDepth > 0) { + subPathDepth--; + mode = IN_SUB_PATH; + actions[APPEND](); + } else { + subPathDepth = 0; + key = formatSubPath(key); + if (key === false) { + return false; + } else { + actions[PUSH](); + } + } + }; + + function maybeUnescapeQuote() { + var nextChar = path[index + 1]; + if (mode === IN_SINGLE_QUOTE && nextChar === "'" || mode === IN_DOUBLE_QUOTE && nextChar === '"') { + index++; + newChar = '\\' + nextChar; + actions[APPEND](); + return true; + } + } + + while (mode != null) { + index++; + c = path[index]; + + if (c === '\\' && maybeUnescapeQuote()) { + continue; + } + + type = getPathCharType(c); + typeMap = pathStateMachine[mode]; + transition = typeMap[type] || typeMap['else'] || ERROR; + + if (transition === ERROR) { + return; // parse error + } + + mode = transition[0]; + action = actions[transition[1]]; + if (action) { + newChar = transition[2]; + newChar = newChar === undefined ? c : newChar; + if (action() === false) { + return; + } + } + + if (mode === AFTER_PATH) { + keys.raw = path; + return keys; + } + } + } + + /** + * External parse that check for a cache hit first + * + * @param {String} path + * @return {Array|undefined} + */ + + function parsePath(path) { + var hit = pathCache.get(path); + if (!hit) { + hit = parse(path); + if (hit) { + pathCache.put(path, hit); + } + } + return hit; + } + + /** + * Get from an object from a path string + * + * @param {Object} obj + * @param {String} path + */ + + function getPath(obj, path) { + return parseExpression(path).get(obj); + } + + /** + * Warn against setting non-existent root path on a vm. + */ + + var warnNonExistent; + if ('development' !== 'production') { + warnNonExistent = function (path, vm) { + warn('You are setting a non-existent path "' + path.raw + '" ' + 'on a vm instance. Consider pre-initializing the property ' + 'with the "data" option for more reliable reactivity ' + 'and better performance.', vm); + }; + } + + /** + * Set on an object from a path + * + * @param {Object} obj + * @param {String | Array} path + * @param {*} val + */ + + function setPath(obj, path, val) { + var original = obj; + if (typeof path === 'string') { + path = parse(path); + } + if (!path || !isObject(obj)) { + return false; + } + var last, key; + for (var i = 0, l = path.length; i < l; i++) { + last = obj; + key = path[i]; + if (key.charAt(0) === '*') { + key = parseExpression(key.slice(1)).get.call(original, original); + } + if (i < l - 1) { + obj = obj[key]; + if (!isObject(obj)) { + obj = {}; + if ('development' !== 'production' && last._isVue) { + warnNonExistent(path, last); + } + set(last, key, obj); + } + } else { + if (isArray(obj)) { + obj.$set(key, val); + } else if (key in obj) { + obj[key] = val; + } else { + if ('development' !== 'production' && obj._isVue) { + warnNonExistent(path, obj); + } + set(obj, key, val); + } + } + } + return true; + } + +var path = Object.freeze({ + parsePath: parsePath, + getPath: getPath, + setPath: setPath + }); + + var expressionCache = new Cache(1000); + + var allowedKeywords = 'Math,Date,this,true,false,null,undefined,Infinity,NaN,' + 'isNaN,isFinite,decodeURI,decodeURIComponent,encodeURI,' + 'encodeURIComponent,parseInt,parseFloat'; + var allowedKeywordsRE = new RegExp('^(' + allowedKeywords.replace(/,/g, '\\b|') + '\\b)'); + + // keywords that don't make sense inside expressions + var improperKeywords = 'break,case,class,catch,const,continue,debugger,default,' + 'delete,do,else,export,extends,finally,for,function,if,' + 'import,in,instanceof,let,return,super,switch,throw,try,' + 'var,while,with,yield,enum,await,implements,package,' + 'protected,static,interface,private,public'; + var improperKeywordsRE = new RegExp('^(' + improperKeywords.replace(/,/g, '\\b|') + '\\b)'); + + var wsRE = /\s/g; + var newlineRE = /\n/g; + var saveRE = /[\{,]\s*[\w\$_]+\s*:|('(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`)|new |typeof |void /g; + var restoreRE = /"(\d+)"/g; + var pathTestRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\]|\[\d+\]|\[[A-Za-z_$][\w$]*\])*$/; + var identRE = /[^\w$\.](?:[A-Za-z_$][\w$]*)/g; + var literalValueRE$1 = /^(?:true|false|null|undefined|Infinity|NaN)$/; + + function noop() {} + + /** + * Save / Rewrite / Restore + * + * When rewriting paths found in an expression, it is + * possible for the same letter sequences to be found in + * strings and Object literal property keys. Therefore we + * remove and store these parts in a temporary array, and + * restore them after the path rewrite. + */ + + var saved = []; + + /** + * Save replacer + * + * The save regex can match two possible cases: + * 1. An opening object literal + * 2. A string + * If matched as a plain string, we need to escape its + * newlines, since the string needs to be preserved when + * generating the function body. + * + * @param {String} str + * @param {String} isString - str if matched as a string + * @return {String} - placeholder with index + */ + + function save(str, isString) { + var i = saved.length; + saved[i] = isString ? str.replace(newlineRE, '\\n') : str; + return '"' + i + '"'; + } + + /** + * Path rewrite replacer + * + * @param {String} raw + * @return {String} + */ + + function rewrite(raw) { + var c = raw.charAt(0); + var path = raw.slice(1); + if (allowedKeywordsRE.test(path)) { + return raw; + } else { + path = path.indexOf('"') > -1 ? path.replace(restoreRE, restore) : path; + return c + 'scope.' + path; + } + } + + /** + * Restore replacer + * + * @param {String} str + * @param {String} i - matched save index + * @return {String} + */ + + function restore(str, i) { + return saved[i]; + } + + /** + * Rewrite an expression, prefixing all path accessors with + * `scope.` and generate getter/setter functions. + * + * @param {String} exp + * @return {Function} + */ + + function compileGetter(exp) { + if (improperKeywordsRE.test(exp)) { + 'development' !== 'production' && warn('Avoid using reserved keywords in expression: ' + exp); + } + // reset state + saved.length = 0; + // save strings and object literal keys + var body = exp.replace(saveRE, save).replace(wsRE, ''); + // rewrite all paths + // pad 1 space here because the regex matches 1 extra char + body = (' ' + body).replace(identRE, rewrite).replace(restoreRE, restore); + return makeGetterFn(body); + } + + /** + * Build a getter function. Requires eval. + * + * We isolate the try/catch so it doesn't affect the + * optimization of the parse function when it is not called. + * + * @param {String} body + * @return {Function|undefined} + */ + + function makeGetterFn(body) { + try { + /* eslint-disable no-new-func */ + return new Function('scope', 'return ' + body + ';'); + /* eslint-enable no-new-func */ + } catch (e) { + if ('development' !== 'production') { + /* istanbul ignore if */ + if (e.toString().match(/unsafe-eval|CSP/)) { + warn('It seems you are using the default build of Vue.js in an environment ' + 'with Content Security Policy that prohibits unsafe-eval. ' + 'Use the CSP-compliant build instead: ' + 'http://vuejs.org/guide/installation.html#CSP-compliant-build'); + } else { + warn('Invalid expression. ' + 'Generated function body: ' + body); + } + } + return noop; + } + } + + /** + * Compile a setter function for the expression. + * + * @param {String} exp + * @return {Function|undefined} + */ + + function compileSetter(exp) { + var path = parsePath(exp); + if (path) { + return function (scope, val) { + setPath(scope, path, val); + }; + } else { + 'development' !== 'production' && warn('Invalid setter expression: ' + exp); + } + } + + /** + * Parse an expression into re-written getter/setters. + * + * @param {String} exp + * @param {Boolean} needSet + * @return {Function} + */ + + function parseExpression(exp, needSet) { + exp = exp.trim(); + // try cache + var hit = expressionCache.get(exp); + if (hit) { + if (needSet && !hit.set) { + hit.set = compileSetter(hit.exp); + } + return hit; + } + var res = { exp: exp }; + res.get = isSimplePath(exp) && exp.indexOf('[') < 0 + // optimized super simple getter + ? makeGetterFn('scope.' + exp) + // dynamic getter + : compileGetter(exp); + if (needSet) { + res.set = compileSetter(exp); + } + expressionCache.put(exp, res); + return res; + } + + /** + * Check if an expression is a simple path. + * + * @param {String} exp + * @return {Boolean} + */ + + function isSimplePath(exp) { + return pathTestRE.test(exp) && + // don't treat literal values as paths + !literalValueRE$1.test(exp) && + // Math constants e.g. Math.PI, Math.E etc. + exp.slice(0, 5) !== 'Math.'; + } + +var expression = Object.freeze({ + parseExpression: parseExpression, + isSimplePath: isSimplePath + }); + + // we have two separate queues: one for directive updates + // and one for user watcher registered via $watch(). + // we want to guarantee directive updates to be called + // before user watchers so that when user watchers are + // triggered, the DOM would have already been in updated + // state. + + var queue = []; + var userQueue = []; + var has = {}; + var circular = {}; + var waiting = false; + + /** + * Reset the batcher's state. + */ + + function resetBatcherState() { + queue.length = 0; + userQueue.length = 0; + has = {}; + circular = {}; + waiting = false; + } + + /** + * Flush both queues and run the watchers. + */ + + function flushBatcherQueue() { + var _again = true; + + _function: while (_again) { + _again = false; + + runBatcherQueue(queue); + runBatcherQueue(userQueue); + // user watchers triggered more watchers, + // keep flushing until it depletes + if (queue.length) { + _again = true; + continue _function; + } + // dev tool hook + /* istanbul ignore if */ + if (devtools && config.devtools) { + devtools.emit('flush'); + } + resetBatcherState(); + } + } + + /** + * Run the watchers in a single queue. + * + * @param {Array} queue + */ + + function runBatcherQueue(queue) { + // do not cache length because more watchers might be pushed + // as we run existing watchers + for (var i = 0; i < queue.length; i++) { + var watcher = queue[i]; + var id = watcher.id; + has[id] = null; + watcher.run(); + // in dev build, check and stop circular updates. + if ('development' !== 'production' && has[id] != null) { + circular[id] = (circular[id] || 0) + 1; + if (circular[id] > config._maxUpdateCount) { + warn('You may have an infinite update loop for watcher ' + 'with expression "' + watcher.expression + '"', watcher.vm); + break; + } + } + } + queue.length = 0; + } + + /** + * Push a watcher into the watcher queue. + * Jobs with duplicate IDs will be skipped unless it's + * pushed when the queue is being flushed. + * + * @param {Watcher} watcher + * properties: + * - {Number} id + * - {Function} run + */ + + function pushWatcher(watcher) { + var id = watcher.id; + if (has[id] == null) { + // push watcher into appropriate queue + var q = watcher.user ? userQueue : queue; + has[id] = q.length; + q.push(watcher); + // queue the flush + if (!waiting) { + waiting = true; + nextTick(flushBatcherQueue); + } + } + } + + var uid$2 = 0; + + /** + * A watcher parses an expression, collects dependencies, + * and fires callback when the expression value changes. + * This is used for both the $watch() api and directives. + * + * @param {Vue} vm + * @param {String|Function} expOrFn + * @param {Function} cb + * @param {Object} options + * - {Array} filters + * - {Boolean} twoWay + * - {Boolean} deep + * - {Boolean} user + * - {Boolean} sync + * - {Boolean} lazy + * - {Function} [preProcess] + * - {Function} [postProcess] + * @constructor + */ + function Watcher(vm, expOrFn, cb, options) { + // mix in options + if (options) { + extend(this, options); + } + var isFn = typeof expOrFn === 'function'; + this.vm = vm; + vm._watchers.push(this); + this.expression = expOrFn; + this.cb = cb; + this.id = ++uid$2; // uid for batching + this.active = true; + this.dirty = this.lazy; // for lazy watchers + this.deps = []; + this.newDeps = []; + this.depIds = new _Set(); + this.newDepIds = new _Set(); + this.prevError = null; // for async error stacks + // parse expression for getter/setter + if (isFn) { + this.getter = expOrFn; + this.setter = undefined; + } else { + var res = parseExpression(expOrFn, this.twoWay); + this.getter = res.get; + this.setter = res.set; + } + this.value = this.lazy ? undefined : this.get(); + // state for avoiding false triggers for deep and Array + // watchers during vm._digest() + this.queued = this.shallow = false; + } + + /** + * Evaluate the getter, and re-collect dependencies. + */ + + Watcher.prototype.get = function () { + this.beforeGet(); + var scope = this.scope || this.vm; + var value; + try { + value = this.getter.call(scope, scope); + } catch (e) { + if ('development' !== 'production' && config.warnExpressionErrors) { + warn('Error when evaluating expression ' + '"' + this.expression + '": ' + e.toString(), this.vm); + } + } + // "touch" every property so they are all tracked as + // dependencies for deep watching + if (this.deep) { + traverse(value); + } + if (this.preProcess) { + value = this.preProcess(value); + } + if (this.filters) { + value = scope._applyFilters(value, null, this.filters, false); + } + if (this.postProcess) { + value = this.postProcess(value); + } + this.afterGet(); + return value; + }; + + /** + * Set the corresponding value with the setter. + * + * @param {*} value + */ + + Watcher.prototype.set = function (value) { + var scope = this.scope || this.vm; + if (this.filters) { + value = scope._applyFilters(value, this.value, this.filters, true); + } + try { + this.setter.call(scope, scope, value); + } catch (e) { + if ('development' !== 'production' && config.warnExpressionErrors) { + warn('Error when evaluating setter ' + '"' + this.expression + '": ' + e.toString(), this.vm); + } + } + // two-way sync for v-for alias + var forContext = scope.$forContext; + if (forContext && forContext.alias === this.expression) { + if (forContext.filters) { + 'development' !== 'production' && warn('It seems you are using two-way binding on ' + 'a v-for alias (' + this.expression + '), and the ' + 'v-for has filters. This will not work properly. ' + 'Either remove the filters or use an array of ' + 'objects and bind to object properties instead.', this.vm); + return; + } + forContext._withLock(function () { + if (scope.$key) { + // original is an object + forContext.rawValue[scope.$key] = value; + } else { + forContext.rawValue.$set(scope.$index, value); + } + }); + } + }; + + /** + * Prepare for dependency collection. + */ + + Watcher.prototype.beforeGet = function () { + Dep.target = this; + }; + + /** + * Add a dependency to this directive. + * + * @param {Dep} dep + */ + + Watcher.prototype.addDep = function (dep) { + var id = dep.id; + if (!this.newDepIds.has(id)) { + this.newDepIds.add(id); + this.newDeps.push(dep); + if (!this.depIds.has(id)) { + dep.addSub(this); + } + } + }; + + /** + * Clean up for dependency collection. + */ + + Watcher.prototype.afterGet = function () { + Dep.target = null; + var i = this.deps.length; + while (i--) { + var dep = this.deps[i]; + if (!this.newDepIds.has(dep.id)) { + dep.removeSub(this); + } + } + var tmp = this.depIds; + this.depIds = this.newDepIds; + this.newDepIds = tmp; + this.newDepIds.clear(); + tmp = this.deps; + this.deps = this.newDeps; + this.newDeps = tmp; + this.newDeps.length = 0; + }; + + /** + * Subscriber interface. + * Will be called when a dependency changes. + * + * @param {Boolean} shallow + */ + + Watcher.prototype.update = function (shallow) { + if (this.lazy) { + this.dirty = true; + } else if (this.sync || !config.async) { + this.run(); + } else { + // if queued, only overwrite shallow with non-shallow, + // but not the other way around. + this.shallow = this.queued ? shallow ? this.shallow : false : !!shallow; + this.queued = true; + // record before-push error stack in debug mode + /* istanbul ignore if */ + if ('development' !== 'production' && config.debug) { + this.prevError = new Error('[vue] async stack trace'); + } + pushWatcher(this); + } + }; + + /** + * Batcher job interface. + * Will be called by the batcher. + */ + + Watcher.prototype.run = function () { + if (this.active) { + var value = this.get(); + if (value !== this.value || + // Deep watchers and watchers on Object/Arrays should fire even + // when the value is the same, because the value may + // have mutated; but only do so if this is a + // non-shallow update (caused by a vm digest). + (isObject(value) || this.deep) && !this.shallow) { + // set new value + var oldValue = this.value; + this.value = value; + // in debug + async mode, when a watcher callbacks + // throws, we also throw the saved before-push error + // so the full cross-tick stack trace is available. + var prevError = this.prevError; + /* istanbul ignore if */ + if ('development' !== 'production' && config.debug && prevError) { + this.prevError = null; + try { + this.cb.call(this.vm, value, oldValue); + } catch (e) { + nextTick(function () { + throw prevError; + }, 0); + throw e; + } + } else { + this.cb.call(this.vm, value, oldValue); + } + } + this.queued = this.shallow = false; + } + }; + + /** + * Evaluate the value of the watcher. + * This only gets called for lazy watchers. + */ + + Watcher.prototype.evaluate = function () { + // avoid overwriting another watcher that is being + // collected. + var current = Dep.target; + this.value = this.get(); + this.dirty = false; + Dep.target = current; + }; + + /** + * Depend on all deps collected by this watcher. + */ + + Watcher.prototype.depend = function () { + var i = this.deps.length; + while (i--) { + this.deps[i].depend(); + } + }; + + /** + * Remove self from all dependencies' subcriber list. + */ + + Watcher.prototype.teardown = function () { + if (this.active) { + // remove self from vm's watcher list + // this is a somewhat expensive operation so we skip it + // if the vm is being destroyed or is performing a v-for + // re-render (the watcher list is then filtered by v-for). + if (!this.vm._isBeingDestroyed && !this.vm._vForRemoving) { + this.vm._watchers.$remove(this); + } + var i = this.deps.length; + while (i--) { + this.deps[i].removeSub(this); + } + this.active = false; + this.vm = this.cb = this.value = null; + } + }; + + /** + * Recrusively traverse an object to evoke all converted + * getters, so that every nested property inside the object + * is collected as a "deep" dependency. + * + * @param {*} val + */ + + var seenObjects = new _Set(); + function traverse(val, seen) { + var i = undefined, + keys = undefined; + if (!seen) { + seen = seenObjects; + seen.clear(); + } + var isA = isArray(val); + var isO = isObject(val); + if ((isA || isO) && Object.isExtensible(val)) { + if (val.__ob__) { + var depId = val.__ob__.dep.id; + if (seen.has(depId)) { + return; + } else { + seen.add(depId); + } + } + if (isA) { + i = val.length; + while (i--) traverse(val[i], seen); + } else if (isO) { + keys = Object.keys(val); + i = keys.length; + while (i--) traverse(val[keys[i]], seen); + } + } + } + + var text$1 = { + + bind: function bind() { + this.attr = this.el.nodeType === 3 ? 'data' : 'textContent'; + }, + + update: function update(value) { + this.el[this.attr] = _toString(value); + } + }; + + var templateCache = new Cache(1000); + var idSelectorCache = new Cache(1000); + + var map = { + efault: [0, '', ''], + legend: [1, '
', '
'], + tr: [2, '', '
'], + col: [2, '', '
'] + }; + + map.td = map.th = [3, '', '
']; + + map.option = map.optgroup = [1, '']; + + map.thead = map.tbody = map.colgroup = map.caption = map.tfoot = [1, '', '
']; + + map.g = map.defs = map.symbol = map.use = map.image = map.text = map.circle = map.ellipse = map.line = map.path = map.polygon = map.polyline = map.rect = [1, '', '']; + + /** + * Check if a node is a supported template node with a + * DocumentFragment content. + * + * @param {Node} node + * @return {Boolean} + */ + + function isRealTemplate(node) { + return isTemplate(node) && isFragment(node.content); + } + + var tagRE$1 = /<([\w:-]+)/; + var entityRE = /&#?\w+?;/; + var commentRE = / +

Komponen Reaktif untuk Antarmuka Web yang Modern

+

+ Install v1.0.26 + Memulai +

+ + + + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ +Disponsori oleh +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +

Contoh Sederhana

+
+
1
+2
+3
+4
+
<div id="demo">
+  <p>{{message}}</p>
+  <input v-model="message">
+</div>
+
+
+ +
+
+ +
+
1
+2
+3
+4
+5
+6
+
var demo = new Vue({
+  el: '#demo',
+  data: {
+    message: 'Hello Vue.js!'
+  }
+})
+
+
+ +
=
+ +
+
+

{{message}}

+ +
+ +
+
+
+
+
+ +

Simpel

+ +

Cukup tulis beberapa kode HTML, ambil beberapa JSON, dan buat instance Vue.

+
+
+

Reaktif

+

Expressions & computed properties with transparent dependency tracking.

+
+
+ +

Komponen-komponen

+ +

Buat aplikasi Anda dengan komponen yang terpisah dan dapat digunakan ulang.

+
+
+ +

Padat

+ +

~24kb min+gzip, tanpa dependency.

+
+
+ +

Cepat

+ +

Async batch DOM updates yang presisi dan efisien.

+
+
+ +

Siap Pakai

+ +

Install melalui NPM atau Bower, tergantung ekosistem favorit Anda

+
+
+
+
+ +

Anda harus mencoba Vue.js jika menginginkan:

+ +
    +
  • Data binding yang Extendable
  • +
  • Object models Javascript biasa
  • +
  • API yang mudah dimengerti
  • +
  • Membangun UI dengan cara menyusun komponen-komponen
  • +
  • Mixing & matching library kecil
  • +
+
+ + + + + + + + + + + + + + + + diff --git a/perf/index.html b/perf/index.html new file mode 100644 index 0000000..0871a00 --- /dev/null +++ b/perf/index.html @@ -0,0 +1,114 @@ + + + + + Performance Comparisons - vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

Performance Comparisons

+

TodoMVC Benchmark

+

Last Updated: 2014-10-12

+
+

Looking for the TodoMVC Benchmark? It’s been removed because after discussion with some other framework authors we have agreed that:

+
    +
  1. The original intention of these benchmarks were for comparing Browser performance rather than that of frameworks. The “synchrorously trigger an action xxx times” test routine doesn’t reflect meaningful real world user actions.

    +
  2. +
  3. Due to internal implementation differences, frameworks that uses async rendering (e.g. Vue, Om, Mercury) gains the advantage by skipping part of the calculations that happened in the same event loop. The real world user experience doesn’t demonstrate such dramatic difference.

    +
  4. +
  5. Overall this benchmark suite gave rise to more controversy than constructive insights, so it’s been removed and I’d be happy to replace it with a more meaningful way to measure front-end performance.

    +
  6. +
+ + + +
+ + +
+ + + + + + + + + diff --git a/placeholder b/placeholder deleted file mode 100644 index e69de29..0000000 diff --git a/support-vuejs/index.html b/support-vuejs/index.html new file mode 100644 index 0000000..e956030 --- /dev/null +++ b/support-vuejs/index.html @@ -0,0 +1,110 @@ + + + + + vue.js + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +

+

Support Vue.js Development



Support Vue.js on Patreon (recurring pledge)

+



Donate via PayPal (one time)

+

Current premium sponsors:


























+ +

Vue.js is an MIT licensed open source project and completely free to use.
However, the amount of effort needed to maintain and develop new features for the project is not sustainable without proper financial backing. You can support Vue.js development by pledging on Patreon or donating on PayPal.

+

If you run a business and are using Vue in a revenue-generating product, it makes business sense to sponsor Vue development: it ensures the project that your product relies on stays healthy and actively maintained. It can also help your exposure in the Vue community and makes it easier to attract Vue developers.

+

If you are an individual user and have enjoyed the productivity of using Vue, consider donating as a sign of appreciation - like buying me coffee once in a while :)

+

As of now I am exploring the possibility of working on Vue.js fulltime - if you are a business that is building core products using Vue.js, I am also open to conversations regarding custom sponsorship / consulting arrangements. Get in touch on Twitter.

+ + + +
+ + +
+ + + + + + + + + From 52117401b41c21b31ba2a92cc28b736e7c620c21 Mon Sep 17 00:00:00 2001 From: Mulia Arifandi Nasution Date: Sat, 10 Sep 2016 07:14:55 +0700 Subject: [PATCH 3/4] Site updated: 2016-09-10 07:14:54 --- guide/class-and-style.html | 51 +++++++++++++++++++++++++------------- guide/conditional.html | 48 +++++++++++++++++++++++------------ 2 files changed, 66 insertions(+), 33 deletions(-) diff --git a/guide/class-and-style.html b/guide/class-and-style.html index c5b7242..031b8a7 100644 --- a/guide/class-and-style.html +++ b/guide/class-and-style.html @@ -203,39 +203,56 @@

Class and Style Bindings

-

A common need for data binding is manipulating an element’s class list and its inline styles. Since they are both attributes, we can use v-bind to handle them: we just need to calculate a final string with our expressions. However, meddling with string concatenation is annoying and error-prone. For this reason, Vue.js provides special enhancements when v-bind is used for class and style. In addition to Strings, the expressions can also evaluate to Objects or Arrays.

-

Binding HTML Classes

Although you can use mustache interpolations such as class="{{ className }}" to bind the class, it is not recommended to mix that style with v-bind:class. Use one or the other!

+ +

Salah satu kebutuhan umum dari data binding adalah memanipulasi sebuah daftar class elemen dan inline styles. Karena kedua-duanya merupakan atribut, kita bisa menggunakan v-bind untuk menangani mereka: kita hanya perlu melakukan perhitungan/kalkulasi sebuah string akhir dengan ekspresi kita. Namun, mencampur dengan penggabungan string membosankan dan rentan error. Untuk alasan inilah, Vue.js menyediakan tambahan spesial ketika v-bind digunakan untuk class dan style. Selain untuk Strings, ekpresi tersebut juga bisa mengevaluasi Objek dan Larik/Array.

+

Binding HTML Classes

+

Kita bisa melewatkan sebuah Objek ke v-bind:class untuk secara dinamis men-toggle class. Catatan bahwa v-bind:class directive dapat berdampingan dengan plain class attribute:

<div class="static" v-bind:class="{ 'class-a': isA, 'class-b': isB }"></div>
data: {
isA: true,
isB: false
}
-

Which will render:

+ +

Yang akan merender:

<div class="static class-a"></div>
-

When isA and isB changes, the class list will be updated accordingly. For example, if isB becomes true, the class list will become "static class-a class-b".

-

And you can directly bind to an object in data as well:

+ +

Ketika isA dan isB berubah, daftar class juga akan berubah. Sebagai contoh, jika isB menjadi true, daftar kelas akan menjadi "static class-a class-b".

+ +

Dan anda juga bisa secara langsung mengikat ke sebuah objek di dalam sebuah data:

<div v-bind:class="classObject"></div>
data: {
classObject: {
'class-a': true,
'class-b': false
}
}
-

This will render the same result. As you may have noticed, we can also bind to a computed property that returns an Object. This is a common and powerful pattern.

-

Array Syntax

We can pass an Array to v-bind:class to apply a list of classes:

+ +

Ini akan merender hasil yang sama. Seperti yang mungkin anda telah sadari, kita juga bisa mengikat ke sebuah computed property yang mengembalikan sebuah Objek. Ini adalah sebuah hal yang lumrah dan merupakan pola yang powerfull.

+

Sintaks Larik/Array

+

Kita bisa melewatkan sebuah larik/array ke v-bind:class untuk menerapkan sebuah daftar class:

<div v-bind:class="[classA, classB]">
data: {
classA: 'class-a',
classB: 'class-b'
}
-

Which will render:

+ +

Yang akan merender:

<div class="class-a class-b"></div>
-

If you would like to also toggle a class in the list conditionally, you can do it with a ternary expression:

+ +

Jika anda juga ingin men-toggle sebuah class di daftar secara kondisional, anda bisa melakukannya dengan sebuah ekpresi ternari:

<div v-bind:class="[classA, isB ? classB : '']">
-

This will always apply classA, but will only apply classB when isB is true.

-

However, this can be a bit verbose if you have multiple conditional classes. In version 1.0.19+, it’s also possible to use the Object syntax inside Array syntax:

+ +

Ini akan selalu menerapkan classA, tetapi hanya akan menerapkan classB ketika isB bernilai true.

+ +

Meskipun demikian, ini bisa menjadi sedikit berlebihan dalam penulisan jika anda memiliki banyak kondisi class. Pada versi 1.0.19+, memungkinkan untuk menggunakan Sintaks Objek didalam Sintaks larik/array:

<div v-bind:class="[classA, { classB: isB, classC: isC }]">
-

Binding Inline Styles

Object Syntax

The Object syntax for v-bind:style is pretty straightforward - it looks almost like CSS, except it’s a JavaScript object. You can use either camelCase or kebab-case for the CSS property names:

+

Binding Inline Styles

Sintaks Objek

+

Sintaks objek untuk v-bind:style sangat mudah dan jelas - dia mirip dengan CSS, kecuali dia adalah objek Javascript. Anda bisa menggunakan camelCase atau kebab-case untuk nama properti CSS:

<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
data: {
activeColor: 'red',
fontSize: 30
}
-

It is often a good idea to bind to a style object directly so that the template is cleaner:

+ +

Sering kali mengikat sebuah object style secara langsung merupakan ide yang bagus sehingga template menjadi lebih rapi.

<div v-bind:style="styleObject"></div>
data: {
styleObject: {
color: 'red',
fontSize: '13px'
}
}
-

Again, the Object syntax is often used in conjunction with computed properties that return Objects.

-

Array Syntax

The Array syntax for v-bind:style allows you to apply multiple style objects to the same element:

+ +

Sekali lagi, Sintaks objek sering kali digunakan serangkai dengan computed properties yang mengembalikan Objek.

+

Sintaks Larik/Array

+

Sintaks larik/array untuk v-bind:Style membolehkan anda untuk menerapkan banyak style objects ke element yang sama:

<div v-bind:style="[styleObjectA, styleObjectB]">
-

Auto-prefixing

When you use a CSS property that requires vendor prefixes in v-bind:style, for example transform, Vue.js will automatically detect and add appropriate prefixes to the applied styles.

+

Auto-prefixing

+

Ketika anda menggunakan sebuah properti CSS yang memerlukan awalan vendor pada v-bind:style, sebagai contoh transform, Vue.js akan secara otomatis mendeteksi dan menambahkan awalan yang sesuai untuk style yang diterapkan.

Conditional Rendering

-

v-if

In string templates, for example Handlebars, we would write a conditional block like this:

+

v-if

+

Pada string templates, sebagai contoh Handlebars, kita akan menulis sebuah blok kondisional seperti ini:

<!-- Handlebars template -->
{{#if ok}}
<h1>Yes</h1>
{{/if}}
-

In Vue.js, we use the v-if directive to achieve the same:

+ +

Pada Vue.js, kita menggunakan v-if directive untuk mendapatkan hal yang sama:

<h1 v-if="ok">Yes</h1>
-

It is also possible to add an “else” block with v-else:

+ +

Memungkinkan juga untuk menambahkan blok “else” dengan v-else:

<h1 v-if="ok">Yes</h1>
<h1 v-else>No</h1>
-

Template v-if

Because v-if is a directive, it has to be attached to a single element. But what if we want to toggle more than one element? In this case we can use v-if on a <template> element, which serves as an invisible wrapper. The final rendered result will not include the <template> element.

+

Template v-if

+

Karena v-if adalah sebuah directive, dia harus terikat dengan sebuah elemen tunggal. Tetapi, bagaimana jika kita ingin men-toggle lebih dari satu elemen? Dalam kasus ini kita bisa menggunakan v-if pada sebuah elemen <template>, yang akan bertindak sebagai sebuah invisible wrapper.

<template v-if="ok">
<h1>Title</h1>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</template>
-

v-show

Another option for conditionally displaying an element is the v-show directive. The usage is largely the same:

+

v-show

+

Opsi lain untuk menampilkan sebuah elemen secara kondisional adalah v-show directive. Penggunaannya sebagian besar sama:

<h1 v-show="ok">Hello!</h1>
-

The difference is that an element with v-show will always be rendered and remain in the DOM; v-show simply toggles the display CSS property of the element.

-

Note that v-show doesn’t support the <template> syntax.

-

v-else

You can use the v-else directive to indicate an “else block” for v-if or v-show:

+ +

Perbedaannya adalah elemen dengan v-show akan selalu dirender dan berada di dalam DOM; v-show secara singkat men-toggle tampilan properti CSS dari elemen tersebut.

+ +

Catatan bahwa v-show tidak mendukung sintaks <template>.

+

v-else

+

Anda bisa menggunakan v-else directive untuk mengindikasi sebuah “blok else” untuk v-if atau v-show:

<div v-if="Math.random() > 0.5">
Sorry
</div>
<div v-else>
Not sorry
</div>
-

The v-else element must immediately follow the v-if or v-show element - otherwise it will not be recognized.

-

Component caveat

When used with components and v-show, v-else doesn’t get applied properly due to directives priorities. So instead of doing this:

+ +

Elemen v-else harus segera diikuti oleh elemen v-if atau v-show - jika tidak dia tidak akan dikenali.

+

Component caveat

+

Ketika digunakan dengan komponen dan v-show, v-else tidak mendapatkan properti yang diterapkan karena prioritas directives. Jadi, daripada melakukan ini:

<custom-component v-show="condition"></custom-component>
<p v-else>This could be a component too</p>
-

Replace the v-else with another v-show:

+ +

Ganti v-else dengan v-show:

<custom-component v-show="condition"></custom-component>
<p v-show="!condition">This could be a component too</p>
-

It does work as intended with v-if.

-

v-if vs. v-show

When a v-if block is toggled, Vue.js will have to perform a partial compilation/teardown process, because the template content inside v-if can also contain data bindings or child components. v-if is “real” conditional rendering because it ensures that event listeners and child components inside the conditional block are properly destroyed and re-created during toggles.

-

v-if is also lazy: if the condition is false on initial render, it will not do anything - partial compilation won’t start until the condition becomes true for the first time (and the compilation is subsequently cached).

-

In comparison, v-show is much simpler - the element is always compiled and preserved, with just simple CSS-based toggling.

-

Generally speaking, v-if has higher toggle costs while v-show has higher initial render costs. So prefer v-show if you need to toggle something very often, and prefer v-if if the condition is unlikely to change at runtime.

+ +

Cara kerja dan hasilnya sama saja dengan v-if.

+

v-if vs. v-show

+

Ketika sebuah blok v-if ditoggle, Vue.js harus melakukan proses kompilasi parsial/sebagian, karena konten template didalam v-if juga dapat mengandung data binding atau komponen anak. v-if merupakan rendering kondisional secara “nyata” karena dia harus memastikan event listeners dan komponen anak didalam blok kondisional benar-benar dihancurkan dan dibuat ulang ketika toggles.

+ +

v-if juga malas/lazy: jika kondisi false pada awal render, dia tidak akan melakukan apapun - kompilasi parsial tidak akan mulai hingga kondisi menjadi true untuk pertama kali (dan kompilasi pun kemudian di-cached).

+ +

Sebagai perbandingan, v-show lebih ringkas - elemennya selalu dikompilasi dan disimpan, dengan hanya simple CSS-based toggling.

+ +

Secara umum, v-if mempunyai higher toggle costs sementara v-show mempunyai higher initial render costs. Jadi pilih v-show jika anda memerlukan untuk men-toggle sesuatu secara sering, dan pilih v-if jika kondisinya tidak sering berubah selama berjalan.