├── .browserslistrc ├── .editorconfig ├── .eslintrc.js ├── .gitattributes ├── .github └── workflows │ └── node.js.yml ├── .gitignore ├── .yarn └── releases │ └── yarn-berry.cjs ├── .yarnrc.yml ├── README.md ├── babel.config.js ├── bin ├── initialize-server.sh └── setup-server.sh ├── docs ├── first-class-collection.puml ├── notification.puml ├── state.puml └── strategy.puml ├── jest.config.js ├── package.json ├── postcss.config.js ├── public ├── favicon.ico └── index.html ├── renovate.json ├── server └── db.seed.json ├── spec └── views │ └── cart │ ├── cart-item-builder.ts │ ├── cart-item-list.spec.ts │ └── interaction.spec.ts ├── src ├── App.vue ├── assets │ └── logo.png ├── components │ └── HelloWorld.vue ├── main.ts ├── router.ts ├── shims-tsx.d.ts ├── shims-vue.d.ts └── views │ ├── Home.vue │ ├── button-behavior │ ├── controller │ │ └── interaction.ts │ ├── model │ │ ├── button-behavior.ts │ │ └── loading-state │ │ │ ├── loading-state.ts │ │ │ ├── state-factory.ts │ │ │ └── state-list.ts │ └── view │ │ ├── LoadingStateSelector.vue │ │ ├── LoadingStateSelectorList.vue │ │ └── View.vue │ ├── cart │ ├── controller │ │ └── interaction.ts │ ├── model │ │ ├── cart-item-list.ts │ │ ├── cart-item │ │ │ ├── product.ts │ │ │ └── state.ts │ │ ├── repository.ts │ │ └── repository │ │ │ ├── from-api.ts │ │ │ └── on-memory.ts │ └── view │ │ ├── Cart.vue │ │ ├── CartByCompositionApi.vue │ │ └── CartItem.vue │ ├── error │ ├── ErrorJob.vue │ ├── job-error.ts │ └── notification.ts │ └── todo │ ├── model │ ├── repository.ts │ ├── repository │ │ ├── from-api.ts │ │ └── on-memory.ts │ ├── select-task-state.ts │ ├── task-state-class.js │ ├── task-state-legacy.js │ ├── task-state-plane.js │ ├── task-state.ts │ └── todo.ts │ └── view │ ├── TodoList.vue │ └── TodoTask.vue ├── tsconfig.json └── yarn.lock /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/.editorconfig -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/workflows/node.js.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/.github/workflows/node.js.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/.gitignore -------------------------------------------------------------------------------- /.yarn/releases/yarn-berry.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/.yarn/releases/yarn-berry.cjs -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/.yarnrc.yml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/README.md -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/babel.config.js -------------------------------------------------------------------------------- /bin/initialize-server.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/bin/initialize-server.sh -------------------------------------------------------------------------------- /bin/setup-server.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/bin/setup-server.sh -------------------------------------------------------------------------------- /docs/first-class-collection.puml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/docs/first-class-collection.puml -------------------------------------------------------------------------------- /docs/notification.puml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/docs/notification.puml -------------------------------------------------------------------------------- /docs/state.puml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/docs/state.puml -------------------------------------------------------------------------------- /docs/strategy.puml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/docs/strategy.puml -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/jest.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/package.json -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/postcss.config.js -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/public/index.html -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/renovate.json -------------------------------------------------------------------------------- /server/db.seed.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/server/db.seed.json -------------------------------------------------------------------------------- /spec/views/cart/cart-item-builder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/spec/views/cart/cart-item-builder.ts -------------------------------------------------------------------------------- /spec/views/cart/cart-item-list.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/spec/views/cart/cart-item-list.spec.ts -------------------------------------------------------------------------------- /spec/views/cart/interaction.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/spec/views/cart/interaction.spec.ts -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/App.vue -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/HelloWorld.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/components/HelloWorld.vue -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/main.ts -------------------------------------------------------------------------------- /src/router.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/router.ts -------------------------------------------------------------------------------- /src/shims-tsx.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/shims-tsx.d.ts -------------------------------------------------------------------------------- /src/shims-vue.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/shims-vue.d.ts -------------------------------------------------------------------------------- /src/views/Home.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/Home.vue -------------------------------------------------------------------------------- /src/views/button-behavior/controller/interaction.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/button-behavior/controller/interaction.ts -------------------------------------------------------------------------------- /src/views/button-behavior/model/button-behavior.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/button-behavior/model/button-behavior.ts -------------------------------------------------------------------------------- /src/views/button-behavior/model/loading-state/loading-state.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/button-behavior/model/loading-state/loading-state.ts -------------------------------------------------------------------------------- /src/views/button-behavior/model/loading-state/state-factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/button-behavior/model/loading-state/state-factory.ts -------------------------------------------------------------------------------- /src/views/button-behavior/model/loading-state/state-list.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/button-behavior/model/loading-state/state-list.ts -------------------------------------------------------------------------------- /src/views/button-behavior/view/LoadingStateSelector.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/button-behavior/view/LoadingStateSelector.vue -------------------------------------------------------------------------------- /src/views/button-behavior/view/LoadingStateSelectorList.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/button-behavior/view/LoadingStateSelectorList.vue -------------------------------------------------------------------------------- /src/views/button-behavior/view/View.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/button-behavior/view/View.vue -------------------------------------------------------------------------------- /src/views/cart/controller/interaction.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/cart/controller/interaction.ts -------------------------------------------------------------------------------- /src/views/cart/model/cart-item-list.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/cart/model/cart-item-list.ts -------------------------------------------------------------------------------- /src/views/cart/model/cart-item/product.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/cart/model/cart-item/product.ts -------------------------------------------------------------------------------- /src/views/cart/model/cart-item/state.ts: -------------------------------------------------------------------------------- 1 | export interface CartItemState { 2 | buyNow: boolean 3 | } 4 | -------------------------------------------------------------------------------- /src/views/cart/model/repository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/cart/model/repository.ts -------------------------------------------------------------------------------- /src/views/cart/model/repository/from-api.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/cart/model/repository/from-api.ts -------------------------------------------------------------------------------- /src/views/cart/model/repository/on-memory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/cart/model/repository/on-memory.ts -------------------------------------------------------------------------------- /src/views/cart/view/Cart.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/cart/view/Cart.vue -------------------------------------------------------------------------------- /src/views/cart/view/CartByCompositionApi.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/cart/view/CartByCompositionApi.vue -------------------------------------------------------------------------------- /src/views/cart/view/CartItem.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/cart/view/CartItem.vue -------------------------------------------------------------------------------- /src/views/error/ErrorJob.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/error/ErrorJob.vue -------------------------------------------------------------------------------- /src/views/error/job-error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/error/job-error.ts -------------------------------------------------------------------------------- /src/views/error/notification.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/error/notification.ts -------------------------------------------------------------------------------- /src/views/todo/model/repository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/todo/model/repository.ts -------------------------------------------------------------------------------- /src/views/todo/model/repository/from-api.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/todo/model/repository/from-api.ts -------------------------------------------------------------------------------- /src/views/todo/model/repository/on-memory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/todo/model/repository/on-memory.ts -------------------------------------------------------------------------------- /src/views/todo/model/select-task-state.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/todo/model/select-task-state.ts -------------------------------------------------------------------------------- /src/views/todo/model/task-state-class.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/todo/model/task-state-class.js -------------------------------------------------------------------------------- /src/views/todo/model/task-state-legacy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/todo/model/task-state-legacy.js -------------------------------------------------------------------------------- /src/views/todo/model/task-state-plane.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/todo/model/task-state-plane.js -------------------------------------------------------------------------------- /src/views/todo/model/task-state.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/todo/model/task-state.ts -------------------------------------------------------------------------------- /src/views/todo/model/todo.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/todo/model/todo.ts -------------------------------------------------------------------------------- /src/views/todo/view/TodoList.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/todo/view/TodoList.vue -------------------------------------------------------------------------------- /src/views/todo/view/TodoTask.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/src/views/todo/view/TodoTask.vue -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tooppoo/sample-for-vue-with-design-patterns/HEAD/yarn.lock --------------------------------------------------------------------------------