breeze-client 2.1.2 → 2.1.3-mjs
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/adapter-ajax-angularjs/{breeze-client-adapter-ajax-angularjs.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-fetch/{breeze-client-adapter-ajax-fetch.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-httpclient/{breeze-client-adapter-ajax-httpclient.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-jquery/{breeze-client-adapter-ajax-jquery.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-post/{breeze-client-adapter-ajax-post.d.ts → index.d.ts} +1 -0
- package/adapter-data-service-odata/{breeze-client-adapter-data-service-odata.d.ts → index.d.ts} +1 -0
- package/adapter-data-service-webapi/{breeze-client-adapter-data-service-webapi.d.ts → index.d.ts} +1 -0
- package/adapter-model-library-backing-store/{breeze-client-adapter-model-library-backing-store.d.ts → index.d.ts} +1 -0
- package/adapter-model-library-ko/{breeze-client-adapter-model-library-ko.d.ts → index.d.ts} +1 -0
- package/adapter-uri-builder-json/{breeze-client-adapter-uri-builder-json.d.ts → index.d.ts} +1 -0
- package/adapter-uri-builder-odata/{breeze-client-adapter-uri-builder-odata.d.ts → index.d.ts} +1 -0
- package/esm2020/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +130 -0
- package/esm2020/adapter-ajax-angularjs/adapter-core.mjs +49 -0
- package/esm2020/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +5 -0
- package/esm2020/adapter-ajax-fetch/adapter-ajax-fetch.mjs +132 -0
- package/esm2020/adapter-ajax-fetch/adapter-core.mjs +49 -0
- package/esm2020/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +5 -0
- package/esm2020/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +137 -0
- package/esm2020/adapter-ajax-httpclient/adapter-core.mjs +49 -0
- package/esm2020/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +5 -0
- package/esm2020/adapter-ajax-jquery/adapter-ajax-jquery.mjs +103 -0
- package/esm2020/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +5 -0
- package/esm2020/adapter-ajax-post/adapter-ajax-post.mjs +77 -0
- package/esm2020/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +5 -0
- package/esm2020/adapter-data-service-odata/adapter-core.mjs +49 -0
- package/esm2020/adapter-data-service-odata/adapter-data-service-odata.mjs +456 -0
- package/esm2020/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +5 -0
- package/esm2020/adapter-data-service-webapi/adapter-data-service-webapi.mjs +93 -0
- package/esm2020/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +5 -0
- package/esm2020/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +268 -0
- package/esm2020/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +5 -0
- package/esm2020/adapter-model-library-ko/adapter-model-library-ko.mjs +240 -0
- package/esm2020/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +5 -0
- package/esm2020/adapter-uri-builder-json/adapter-core.mjs +49 -0
- package/esm2020/adapter-uri-builder-json/adapter-uri-builder-json.mjs +36 -0
- package/esm2020/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +5 -0
- package/esm2020/adapter-uri-builder-odata/adapter-core.mjs +49 -0
- package/esm2020/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +190 -0
- package/esm2020/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +5 -0
- package/esm2020/breeze-client.mjs +5 -0
- package/esm2020/index.mjs +2 -0
- package/esm2020/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +5 -0
- package/esm2020/mixin-get-entity-graph/mixin-get-entity-graph.mjs +269 -0
- package/esm2020/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +5 -0
- package/esm2020/mixin-save-queuing/mixin-save-queuing.mjs +400 -0
- package/esm2020/src/abstract-data-service-adapter.mjs +296 -0
- package/esm2020/src/array.mjs +4 -0
- package/esm2020/src/assert-param.mjs +312 -0
- package/esm2020/src/breeze.mjs +85 -0
- package/esm2020/src/complex-array.mjs +117 -0
- package/esm2020/src/config.mjs +223 -0
- package/esm2020/src/core.mjs +707 -0
- package/esm2020/src/csdl-metadata-parser.mjs +385 -0
- package/esm2020/src/data-service.mjs +203 -0
- package/esm2020/src/data-type.mjs +444 -0
- package/esm2020/src/default-property-interceptor.mjs +460 -0
- package/esm2020/src/entity-action.mjs +45 -0
- package/esm2020/src/entity-aspect.mjs +806 -0
- package/esm2020/src/entity-group.mjs +187 -0
- package/esm2020/src/entity-key.mjs +116 -0
- package/esm2020/src/entity-manager.mjs +2094 -0
- package/esm2020/src/entity-metadata.mjs +2109 -0
- package/esm2020/src/entity-query.mjs +996 -0
- package/esm2020/src/entity-state.mjs +99 -0
- package/esm2020/src/enum.mjs +141 -0
- package/esm2020/src/event.mjs +256 -0
- package/esm2020/src/interface-registry.mjs +41 -0
- package/esm2020/src/key-generator.mjs +108 -0
- package/esm2020/src/local-query-comparison-options.mjs +65 -0
- package/esm2020/src/mapping-context.mjs +405 -0
- package/esm2020/src/naming-convention.mjs +88 -0
- package/esm2020/src/observable-array.mjs +183 -0
- package/esm2020/src/predicate.mjs +1232 -0
- package/esm2020/src/primitive-array.mjs +85 -0
- package/esm2020/src/query-options.mjs +152 -0
- package/esm2020/src/relation-array.mjs +173 -0
- package/esm2020/src/save-options.mjs +41 -0
- package/esm2020/src/unattached-children-map.mjs +58 -0
- package/esm2020/src/validate.mjs +988 -0
- package/esm2020/src/validation-options.mjs +64 -0
- package/fesm2015/{breeze-client-adapter-ajax-angularjs.js → breeze-client-adapter-ajax-angularjs.mjs} +1 -1
- package/fesm2015/breeze-client-adapter-ajax-angularjs.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-fetch.js → breeze-client-adapter-ajax-fetch.mjs} +5 -3
- package/fesm2015/breeze-client-adapter-ajax-fetch.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-httpclient.js → breeze-client-adapter-ajax-httpclient.mjs} +1 -1
- package/fesm2015/breeze-client-adapter-ajax-httpclient.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-jquery.js → breeze-client-adapter-ajax-jquery.mjs} +2 -2
- package/fesm2015/breeze-client-adapter-ajax-jquery.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-post.js → breeze-client-adapter-ajax-post.mjs} +1 -1
- package/fesm2015/breeze-client-adapter-ajax-post.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-data-service-odata.js → breeze-client-adapter-data-service-odata.mjs} +20 -22
- package/fesm2015/breeze-client-adapter-data-service-odata.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-data-service-webapi.js → breeze-client-adapter-data-service-webapi.mjs} +13 -13
- package/fesm2015/breeze-client-adapter-data-service-webapi.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-model-library-backing-store.js → breeze-client-adapter-model-library-backing-store.mjs} +13 -13
- package/fesm2015/breeze-client-adapter-model-library-backing-store.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-model-library-ko.js → breeze-client-adapter-model-library-ko.mjs} +13 -13
- package/fesm2015/breeze-client-adapter-model-library-ko.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-uri-builder-json.js → breeze-client-adapter-uri-builder-json.mjs} +8 -8
- package/fesm2015/breeze-client-adapter-uri-builder-json.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-uri-builder-odata.js → breeze-client-adapter-uri-builder-odata.mjs} +85 -86
- package/fesm2015/breeze-client-adapter-uri-builder-odata.mjs.map +1 -0
- package/fesm2015/{breeze-client-mixin-get-entity-graph.js → breeze-client-mixin-get-entity-graph.mjs} +1 -1
- package/fesm2015/breeze-client-mixin-get-entity-graph.mjs.map +1 -0
- package/fesm2015/{breeze-client-mixin-save-queuing.js → breeze-client-mixin-save-queuing.mjs} +1 -1
- package/fesm2015/breeze-client-mixin-save-queuing.mjs.map +1 -0
- package/fesm2015/{breeze-client.js → breeze-client.mjs} +417 -422
- package/fesm2015/breeze-client.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-angularjs.js → fesm2020/breeze-client-adapter-ajax-angularjs.mjs} +41 -42
- package/fesm2020/breeze-client-adapter-ajax-angularjs.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-fetch.js → fesm2020/breeze-client-adapter-ajax-fetch.mjs} +44 -43
- package/fesm2020/breeze-client-adapter-ajax-fetch.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-httpclient.js → fesm2020/breeze-client-adapter-ajax-httpclient.mjs} +43 -44
- package/fesm2020/breeze-client-adapter-ajax-httpclient.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-jquery.js → fesm2020/breeze-client-adapter-ajax-jquery.mjs} +18 -19
- package/fesm2020/breeze-client-adapter-ajax-jquery.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-post.js → fesm2020/breeze-client-adapter-ajax-post.mjs} +8 -11
- package/fesm2020/breeze-client-adapter-ajax-post.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-data-service-odata.js → fesm2020/breeze-client-adapter-data-service-odata.mjs} +126 -134
- package/fesm2020/breeze-client-adapter-data-service-odata.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-data-service-webapi.js → fesm2020/breeze-client-adapter-data-service-webapi.mjs} +38 -42
- package/fesm2020/breeze-client-adapter-data-service-webapi.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-model-library-backing-store.js → fesm2020/breeze-client-adapter-model-library-backing-store.mjs} +63 -64
- package/fesm2020/breeze-client-adapter-model-library-backing-store.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-model-library-ko.js → fesm2020/breeze-client-adapter-model-library-ko.mjs} +57 -58
- package/fesm2020/breeze-client-adapter-model-library-ko.mjs.map +1 -0
- package/fesm2020/breeze-client-adapter-uri-builder-json.mjs +91 -0
- package/fesm2020/breeze-client-adapter-uri-builder-json.mjs.map +1 -0
- package/fesm2020/breeze-client-adapter-uri-builder-odata.mjs +245 -0
- package/fesm2020/breeze-client-adapter-uri-builder-odata.mjs.map +1 -0
- package/{fesm5/breeze-client-mixin-get-entity-graph.js → fesm2020/breeze-client-mixin-get-entity-graph.mjs} +45 -45
- package/fesm2020/breeze-client-mixin-get-entity-graph.mjs.map +1 -0
- package/{fesm5/breeze-client-mixin-save-queuing.js → fesm2020/breeze-client-mixin-save-queuing.mjs} +116 -126
- package/fesm2020/breeze-client-mixin-save-queuing.mjs.map +1 -0
- package/{fesm5/breeze-client.js → fesm2020/breeze-client.mjs} +3403 -3615
- package/fesm2020/breeze-client.mjs.map +1 -0
- package/mixin-get-entity-graph/{breeze-client-mixin-get-entity-graph.d.ts → index.d.ts} +1 -0
- package/mixin-save-queuing/{breeze-client-mixin-save-queuing.d.ts → index.d.ts} +1 -0
- package/package.json +126 -12
- package/src/entity-metadata.d.ts +6 -4
- package/src/entity-query.d.ts +1 -1
- package/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.metadata.json +0 -1
- package/adapter-ajax-angularjs/package.json +0 -13
- package/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.metadata.json +0 -1
- package/adapter-ajax-fetch/package.json +0 -13
- package/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.metadata.json +0 -1
- package/adapter-ajax-httpclient/package.json +0 -17
- package/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.metadata.json +0 -1
- package/adapter-ajax-jquery/package.json +0 -13
- package/adapter-ajax-post/breeze-client-adapter-ajax-post.metadata.json +0 -1
- package/adapter-ajax-post/package.json +0 -13
- package/adapter-data-service-odata/breeze-client-adapter-data-service-odata.metadata.json +0 -1
- package/adapter-data-service-odata/package.json +0 -13
- package/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.metadata.json +0 -1
- package/adapter-data-service-webapi/package.json +0 -13
- package/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.metadata.json +0 -1
- package/adapter-model-library-backing-store/package.json +0 -13
- package/adapter-model-library-ko/breeze-client-adapter-model-library-ko.metadata.json +0 -1
- package/adapter-model-library-ko/package.json +0 -13
- package/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.metadata.json +0 -1
- package/adapter-uri-builder-json/package.json +0 -13
- package/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.metadata.json +0 -1
- package/adapter-uri-builder-odata/package.json +0 -13
- package/breeze-client.d.ts +0 -8
- package/breeze-client.metadata.json +0 -1
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.js +0 -190
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-fetch.umd.js +0 -190
- package/bundles/breeze-client-adapter-ajax-fetch.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.js +0 -195
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-jquery.umd.js +0 -115
- package/bundles/breeze-client-adapter-ajax-jquery.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-post.umd.js +0 -92
- package/bundles/breeze-client-adapter-ajax-post.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-post.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-post.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-odata.umd.js +0 -743
- package/bundles/breeze-client-adapter-data-service-odata.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-odata.umd.min.js +0 -16
- package/bundles/breeze-client-adapter-data-service-odata.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-webapi.umd.js +0 -326
- package/bundles/breeze-client-adapter-data-service-webapi.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js +0 -16
- package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.js +0 -280
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-ko.umd.js +0 -252
- package/bundles/breeze-client-adapter-model-library-ko.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-ko.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-model-library-ko.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-json.umd.js +0 -96
- package/bundles/breeze-client-adapter-uri-builder-json.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.js +0 -262
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js.map +0 -1
- package/bundles/breeze-client-mixin-get-entity-graph.umd.js +0 -258
- package/bundles/breeze-client-mixin-get-entity-graph.umd.js.map +0 -1
- package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js +0 -2
- package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js.map +0 -1
- package/bundles/breeze-client-mixin-save-queuing.umd.js +0 -579
- package/bundles/breeze-client-mixin-save-queuing.umd.js.map +0 -1
- package/bundles/breeze-client-mixin-save-queuing.umd.min.js +0 -16
- package/bundles/breeze-client-mixin-save-queuing.umd.min.js.map +0 -1
- package/bundles/breeze-client.umd.js +0 -14094
- package/bundles/breeze-client.umd.js.map +0 -1
- package/bundles/breeze-client.umd.min.js +0 -16
- package/bundles/breeze-client.umd.min.js.map +0 -1
- package/esm2015/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -130
- package/esm2015/adapter-ajax-angularjs/adapter-core.js +0 -49
- package/esm2015/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
- package/esm2015/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -130
- package/esm2015/adapter-ajax-fetch/adapter-core.js +0 -49
- package/esm2015/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
- package/esm2015/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -137
- package/esm2015/adapter-ajax-httpclient/adapter-core.js +0 -49
- package/esm2015/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
- package/esm2015/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -103
- package/esm2015/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
- package/esm2015/adapter-ajax-post/adapter-ajax-post.js +0 -77
- package/esm2015/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
- package/esm2015/adapter-data-service-odata/adapter-core.js +0 -49
- package/esm2015/adapter-data-service-odata/adapter-data-service-odata.js +0 -459
- package/esm2015/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
- package/esm2015/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -93
- package/esm2015/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
- package/esm2015/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -268
- package/esm2015/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
- package/esm2015/adapter-model-library-ko/adapter-model-library-ko.js +0 -240
- package/esm2015/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
- package/esm2015/adapter-uri-builder-json/adapter-core.js +0 -49
- package/esm2015/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -36
- package/esm2015/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
- package/esm2015/adapter-uri-builder-odata/adapter-core.js +0 -49
- package/esm2015/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -192
- package/esm2015/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
- package/esm2015/breeze-client.js +0 -9
- package/esm2015/index.js +0 -2
- package/esm2015/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
- package/esm2015/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
- package/esm2015/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
- package/esm2015/mixin-save-queuing/mixin-save-queuing.js +0 -400
- package/esm2015/public_api.js +0 -2
- package/esm2015/src/abstract-data-service-adapter.js +0 -296
- package/esm2015/src/array.js +0 -4
- package/esm2015/src/assert-param.js +0 -312
- package/esm2015/src/breeze.js +0 -85
- package/esm2015/src/complex-array.js +0 -119
- package/esm2015/src/config.js +0 -223
- package/esm2015/src/core.js +0 -706
- package/esm2015/src/csdl-metadata-parser.js +0 -385
- package/esm2015/src/data-service.js +0 -203
- package/esm2015/src/data-type.js +0 -444
- package/esm2015/src/default-property-interceptor.js +0 -459
- package/esm2015/src/entity-action.js +0 -45
- package/esm2015/src/entity-aspect.js +0 -806
- package/esm2015/src/entity-group.js +0 -187
- package/esm2015/src/entity-key.js +0 -116
- package/esm2015/src/entity-manager.js +0 -2094
- package/esm2015/src/entity-metadata.js +0 -2109
- package/esm2015/src/entity-query.js +0 -996
- package/esm2015/src/entity-state.js +0 -99
- package/esm2015/src/enum.js +0 -141
- package/esm2015/src/event.js +0 -256
- package/esm2015/src/interface-registry.js +0 -41
- package/esm2015/src/key-generator.js +0 -108
- package/esm2015/src/local-query-comparison-options.js +0 -65
- package/esm2015/src/mapping-context.js +0 -405
- package/esm2015/src/naming-convention.js +0 -88
- package/esm2015/src/observable-array.js +0 -185
- package/esm2015/src/predicate.js +0 -1235
- package/esm2015/src/primitive-array.js +0 -87
- package/esm2015/src/query-options.js +0 -152
- package/esm2015/src/relation-array.js +0 -175
- package/esm2015/src/save-options.js +0 -41
- package/esm2015/src/unattached-children-map.js +0 -58
- package/esm2015/src/validate.js +0 -991
- package/esm2015/src/validation-options.js +0 -64
- package/esm5/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -132
- package/esm5/adapter-ajax-angularjs/adapter-core.js +0 -49
- package/esm5/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
- package/esm5/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -132
- package/esm5/adapter-ajax-fetch/adapter-core.js +0 -49
- package/esm5/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
- package/esm5/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -139
- package/esm5/adapter-ajax-httpclient/adapter-core.js +0 -49
- package/esm5/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
- package/esm5/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -105
- package/esm5/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
- package/esm5/adapter-ajax-post/adapter-ajax-post.js +0 -81
- package/esm5/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
- package/esm5/adapter-data-service-odata/adapter-core.js +0 -49
- package/esm5/adapter-data-service-odata/adapter-data-service-odata.js +0 -466
- package/esm5/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
- package/esm5/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -98
- package/esm5/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
- package/esm5/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -270
- package/esm5/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
- package/esm5/adapter-model-library-ko/adapter-model-library-ko.js +0 -242
- package/esm5/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
- package/esm5/adapter-uri-builder-json/adapter-core.js +0 -49
- package/esm5/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -38
- package/esm5/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
- package/esm5/adapter-uri-builder-odata/adapter-core.js +0 -49
- package/esm5/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -197
- package/esm5/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
- package/esm5/breeze-client.js +0 -9
- package/esm5/index.js +0 -2
- package/esm5/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
- package/esm5/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
- package/esm5/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
- package/esm5/mixin-save-queuing/mixin-save-queuing.js +0 -412
- package/esm5/public_api.js +0 -2
- package/esm5/src/abstract-data-service-adapter.js +0 -302
- package/esm5/src/array.js +0 -4
- package/esm5/src/assert-param.js +0 -317
- package/esm5/src/breeze.js +0 -85
- package/esm5/src/complex-array.js +0 -119
- package/esm5/src/config.js +0 -228
- package/esm5/src/core.js +0 -714
- package/esm5/src/csdl-metadata-parser.js +0 -385
- package/esm5/src/data-service.js +0 -207
- package/esm5/src/data-type.js +0 -451
- package/esm5/src/default-property-interceptor.js +0 -459
- package/esm5/src/entity-action.js +0 -52
- package/esm5/src/entity-aspect.js +0 -812
- package/esm5/src/entity-group.js +0 -189
- package/esm5/src/entity-key.js +0 -118
- package/esm5/src/entity-manager.js +0 -2112
- package/esm5/src/entity-metadata.js +0 -2144
- package/esm5/src/entity-query.js +0 -1023
- package/esm5/src/entity-state.js +0 -106
- package/esm5/src/enum.js +0 -144
- package/esm5/src/event.js +0 -259
- package/esm5/src/interface-registry.js +0 -43
- package/esm5/src/key-generator.js +0 -111
- package/esm5/src/local-query-comparison-options.js +0 -67
- package/esm5/src/mapping-context.js +0 -407
- package/esm5/src/naming-convention.js +0 -90
- package/esm5/src/observable-array.js +0 -201
- package/esm5/src/predicate.js +0 -1300
- package/esm5/src/primitive-array.js +0 -87
- package/esm5/src/query-options.js +0 -167
- package/esm5/src/relation-array.js +0 -175
- package/esm5/src/save-options.js +0 -43
- package/esm5/src/unattached-children-map.js +0 -60
- package/esm5/src/validate.js +0 -996
- package/esm5/src/validation-options.js +0 -66
- package/fesm2015/breeze-client-adapter-ajax-angularjs.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-fetch.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-httpclient.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-jquery.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-post.js.map +0 -1
- package/fesm2015/breeze-client-adapter-data-service-odata.js.map +0 -1
- package/fesm2015/breeze-client-adapter-data-service-webapi.js.map +0 -1
- package/fesm2015/breeze-client-adapter-model-library-backing-store.js.map +0 -1
- package/fesm2015/breeze-client-adapter-model-library-ko.js.map +0 -1
- package/fesm2015/breeze-client-adapter-uri-builder-json.js.map +0 -1
- package/fesm2015/breeze-client-adapter-uri-builder-odata.js.map +0 -1
- package/fesm2015/breeze-client-mixin-get-entity-graph.js.map +0 -1
- package/fesm2015/breeze-client-mixin-save-queuing.js.map +0 -1
- package/fesm2015/breeze-client.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-angularjs.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-fetch.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-httpclient.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-jquery.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-post.js.map +0 -1
- package/fesm5/breeze-client-adapter-data-service-odata.js.map +0 -1
- package/fesm5/breeze-client-adapter-data-service-webapi.js.map +0 -1
- package/fesm5/breeze-client-adapter-model-library-backing-store.js.map +0 -1
- package/fesm5/breeze-client-adapter-model-library-ko.js.map +0 -1
- package/fesm5/breeze-client-adapter-uri-builder-json.js +0 -92
- package/fesm5/breeze-client-adapter-uri-builder-json.js.map +0 -1
- package/fesm5/breeze-client-adapter-uri-builder-odata.js +0 -250
- package/fesm5/breeze-client-adapter-uri-builder-odata.js.map +0 -1
- package/fesm5/breeze-client-mixin-get-entity-graph.js.map +0 -1
- package/fesm5/breeze-client-mixin-save-queuing.js.map +0 -1
- package/fesm5/breeze-client.js.map +0 -1
- package/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.metadata.json +0 -1
- package/mixin-get-entity-graph/package.json +0 -13
- package/mixin-save-queuing/breeze-client-mixin-save-queuing.metadata.json +0 -1
- package/mixin-save-queuing/package.json +0 -13
- package/public_api.d.ts +0 -1
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as breeze from 'breeze-client';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
let core = breeze.core;
|
|
4
|
+
let canIsolateES5Props = core.isES5Supported;
|
|
5
|
+
let ko;
|
|
6
|
+
class ModelLibraryKnockoutAdapter {
|
|
7
|
+
constructor() {
|
|
8
8
|
this.name = "ko";
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
config
|
|
12
|
-
config
|
|
13
|
-
return config
|
|
14
|
-
}
|
|
15
|
-
|
|
10
|
+
static register(config) {
|
|
11
|
+
config = config || breeze.config;
|
|
12
|
+
config.registerAdapter("modelLibrary", ModelLibraryKnockoutAdapter);
|
|
13
|
+
return config.initializeAdapterInstance("modelLibrary", "ko", true);
|
|
14
|
+
}
|
|
15
|
+
initialize() {
|
|
16
16
|
ko = core.requireLib("ko;knockout", "The Knockout library");
|
|
17
17
|
ko.extenders.intercept = function (target, interceptorOptions) {
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
let instance = interceptorOptions.instance;
|
|
19
|
+
let property = interceptorOptions.property;
|
|
20
20
|
// create a computed observable to intercept writes to our observable
|
|
21
|
-
|
|
21
|
+
let result;
|
|
22
22
|
if (target.splice) {
|
|
23
23
|
result = ko.computed({
|
|
24
24
|
read: target //always return the original observables value
|
|
@@ -36,20 +36,20 @@ var ModelLibraryKnockoutAdapter = /** @class */ (function () {
|
|
|
36
36
|
//return the new computed observable
|
|
37
37
|
return result;
|
|
38
38
|
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
for (
|
|
39
|
+
}
|
|
40
|
+
getTrackablePropertyNames(entity) {
|
|
41
|
+
let names = [];
|
|
42
|
+
for (let p in entity) {
|
|
43
43
|
if (p === "entityType")
|
|
44
44
|
continue;
|
|
45
45
|
if (p === "_$typeName")
|
|
46
46
|
continue;
|
|
47
|
-
|
|
47
|
+
let propDescr = getES5PropDescriptor(entity, p);
|
|
48
48
|
if (propDescr && propDescr.get) {
|
|
49
49
|
names.push(p);
|
|
50
50
|
}
|
|
51
51
|
else {
|
|
52
|
-
|
|
52
|
+
let val = entity[p];
|
|
53
53
|
if (ko.isObservable(val)) {
|
|
54
54
|
names.push(p);
|
|
55
55
|
}
|
|
@@ -59,8 +59,8 @@ var ModelLibraryKnockoutAdapter = /** @class */ (function () {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
return names;
|
|
62
|
-
}
|
|
63
|
-
|
|
62
|
+
}
|
|
63
|
+
initializeEntityPrototype(proto) {
|
|
64
64
|
proto.getProperty = function (propertyName) {
|
|
65
65
|
return this[propertyName]();
|
|
66
66
|
};
|
|
@@ -72,42 +72,42 @@ var ModelLibraryKnockoutAdapter = /** @class */ (function () {
|
|
|
72
72
|
if (canIsolateES5Props) {
|
|
73
73
|
isolateES5Props(proto);
|
|
74
74
|
}
|
|
75
|
-
}
|
|
76
|
-
|
|
75
|
+
}
|
|
76
|
+
startTracking(entity, proto) {
|
|
77
77
|
// create ko's for each property and assign defaultValues
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
let stype = (entity.entityType || entity.complexType);
|
|
79
|
+
let es5Descriptors = stype._extra.es5Descriptors || {};
|
|
80
80
|
// sort unmapped properties to the end
|
|
81
81
|
stype.getProperties().sort(function (p1, p2) {
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
let v1 = p1.isUnmapped ? 1 : 0;
|
|
83
|
+
let v2 = p2.isUnmapped ? 1 : 0;
|
|
84
84
|
return v1 - v2;
|
|
85
85
|
}).forEach(function (prop) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
let propName = prop.name;
|
|
87
|
+
let val = entity[propName];
|
|
88
|
+
let propDescr = es5Descriptors[propName];
|
|
89
|
+
let koObj;
|
|
90
90
|
// check if property is an ES5 property
|
|
91
91
|
if (propDescr) {
|
|
92
|
-
|
|
92
|
+
let getFn = propDescr.get.bind(entity);
|
|
93
93
|
if (propDescr.set) {
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
let setFn = propDescr.set.bind(entity);
|
|
95
|
+
let rawAccessorFn = function (newValue) {
|
|
96
96
|
if (arguments.length === 0) {
|
|
97
|
-
|
|
97
|
+
getFn();
|
|
98
98
|
return;
|
|
99
99
|
}
|
|
100
100
|
else {
|
|
101
|
-
|
|
101
|
+
setFn(newValue);
|
|
102
102
|
}
|
|
103
103
|
};
|
|
104
104
|
koObj = ko.computed({
|
|
105
105
|
read: function () {
|
|
106
106
|
stype._koDummy();
|
|
107
|
-
return
|
|
107
|
+
return getFn();
|
|
108
108
|
},
|
|
109
109
|
write: function (newValue) {
|
|
110
|
-
entity._$interceptor(prop, newValue,
|
|
110
|
+
entity._$interceptor(prop, newValue, rawAccessorFn);
|
|
111
111
|
stype._koDummy.valueHasMutated();
|
|
112
112
|
return entity;
|
|
113
113
|
}
|
|
@@ -115,7 +115,7 @@ var ModelLibraryKnockoutAdapter = /** @class */ (function () {
|
|
|
115
115
|
}
|
|
116
116
|
else {
|
|
117
117
|
koObj = ko.computed({
|
|
118
|
-
read:
|
|
118
|
+
read: getFn,
|
|
119
119
|
write: function () {
|
|
120
120
|
}
|
|
121
121
|
});
|
|
@@ -143,7 +143,7 @@ var ModelLibraryKnockoutAdapter = /** @class */ (function () {
|
|
|
143
143
|
});
|
|
144
144
|
}
|
|
145
145
|
else {
|
|
146
|
-
|
|
146
|
+
let koExt = koObj.extend({ intercept: { instance: entity, property: prop } });
|
|
147
147
|
entity[propName] = koExt;
|
|
148
148
|
}
|
|
149
149
|
}
|
|
@@ -160,10 +160,9 @@ var ModelLibraryKnockoutAdapter = /** @class */ (function () {
|
|
|
160
160
|
entity[propName] = koObj;
|
|
161
161
|
}
|
|
162
162
|
});
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
config.registerAdapter("modelLibrary", ModelLibraryKnockoutAdapter);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
breeze.config.registerAdapter("modelLibrary", ModelLibraryKnockoutAdapter);
|
|
167
166
|
// private fns
|
|
168
167
|
function getES5PropDescriptor(proto, propName) {
|
|
169
168
|
if (!canIsolateES5Props) {
|
|
@@ -173,29 +172,29 @@ function getES5PropDescriptor(proto, propName) {
|
|
|
173
172
|
return Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(proto, propName);
|
|
174
173
|
}
|
|
175
174
|
else {
|
|
176
|
-
|
|
175
|
+
let nextProto = Object.getPrototypeOf(proto);
|
|
177
176
|
return nextProto ? getES5PropDescriptor(nextProto, propName) : null;
|
|
178
177
|
}
|
|
179
178
|
}
|
|
180
179
|
function initializeValueForProp(entity, prop, val) {
|
|
181
|
-
if (prop instanceof DataProperty) {
|
|
180
|
+
if (prop instanceof breeze.DataProperty) {
|
|
182
181
|
if (prop.isComplexProperty) {
|
|
183
182
|
// TODO: right now we create Empty complexObjects here - these should actually come from the entity
|
|
184
183
|
if (prop.isScalar) {
|
|
185
184
|
val = prop.dataType._createInstanceCore(entity, prop);
|
|
186
185
|
}
|
|
187
186
|
else {
|
|
188
|
-
val = makeComplexArray([], entity, prop);
|
|
187
|
+
val = breeze.makeComplexArray([], entity, prop);
|
|
189
188
|
}
|
|
190
189
|
}
|
|
191
190
|
else if (!prop.isScalar) {
|
|
192
|
-
val = makePrimitiveArray([], entity, prop);
|
|
191
|
+
val = breeze.makePrimitiveArray([], entity, prop);
|
|
193
192
|
}
|
|
194
193
|
else if (val === undefined) {
|
|
195
194
|
val = prop.defaultValue;
|
|
196
195
|
}
|
|
197
196
|
}
|
|
198
|
-
else if (prop instanceof NavigationProperty) {
|
|
197
|
+
else if (prop instanceof breeze.NavigationProperty) {
|
|
199
198
|
if (val !== undefined) {
|
|
200
199
|
throw new Error("Cannot assign a navigation property in an entity ctor.: " + prop.name);
|
|
201
200
|
}
|
|
@@ -204,7 +203,7 @@ function initializeValueForProp(entity, prop, val) {
|
|
|
204
203
|
val = null;
|
|
205
204
|
}
|
|
206
205
|
else {
|
|
207
|
-
val = makeRelationArray([], entity, prop);
|
|
206
|
+
val = breeze.makeRelationArray([], entity, prop);
|
|
208
207
|
}
|
|
209
208
|
}
|
|
210
209
|
else {
|
|
@@ -216,7 +215,7 @@ function onBeforeChange(args) {
|
|
|
216
215
|
args._koObj._suppressBreeze = true;
|
|
217
216
|
}
|
|
218
217
|
function onArrayChanged(args) {
|
|
219
|
-
|
|
218
|
+
let koObj = args.array._koObj;
|
|
220
219
|
if (koObj._suppressBreeze) {
|
|
221
220
|
koObj._suppressBreeze = false;
|
|
222
221
|
}
|
|
@@ -225,16 +224,16 @@ function onArrayChanged(args) {
|
|
|
225
224
|
}
|
|
226
225
|
}
|
|
227
226
|
function isolateES5Props(proto) {
|
|
228
|
-
|
|
229
|
-
|
|
227
|
+
let stype = (proto.entityType || proto.complexType);
|
|
228
|
+
let es5Descriptors = {};
|
|
230
229
|
stype.getProperties().forEach(function (prop) {
|
|
231
|
-
|
|
230
|
+
let propDescr = getES5PropDescriptor(proto, prop.name);
|
|
232
231
|
if (propDescr) {
|
|
233
232
|
es5Descriptors[prop.name] = propDescr;
|
|
234
233
|
}
|
|
235
234
|
});
|
|
236
235
|
if (!core.isEmpty(es5Descriptors)) {
|
|
237
|
-
|
|
236
|
+
let extra = stype._extra;
|
|
238
237
|
extra.es5Descriptors = es5Descriptors;
|
|
239
238
|
stype._koDummy = ko.observable(null);
|
|
240
239
|
}
|
|
@@ -245,4 +244,4 @@ function isolateES5Props(proto) {
|
|
|
245
244
|
*/
|
|
246
245
|
|
|
247
246
|
export { ModelLibraryKnockoutAdapter };
|
|
248
|
-
//# sourceMappingURL=breeze-client-adapter-model-library-ko.
|
|
247
|
+
//# sourceMappingURL=breeze-client-adapter-model-library-ko.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breeze-client-adapter-model-library-ko.mjs","sources":["../../src/adapter-model-library-ko.ts","../../src/breeze-client-adapter-model-library-ko.ts"],"sourcesContent":["import * as breeze from 'breeze-client';\r\n\r\nlet core = breeze.core;\r\n\r\nlet canIsolateES5Props = core.isES5Supported;\r\nlet ko: any;\r\n\r\nexport class ModelLibraryKnockoutAdapter implements breeze.ModelLibraryAdapter {\r\n name: string;\r\n constructor() {\r\n this.name = \"ko\";\r\n }\r\n\r\n static register(config?: breeze.BreezeConfig) {\r\n config = config || breeze.config;\r\n config.registerAdapter(\"modelLibrary\", ModelLibraryKnockoutAdapter);\r\n return config.initializeAdapterInstance(\"modelLibrary\", \"ko\", true) as ModelLibraryKnockoutAdapter;\r\n }\r\n\r\n initialize() {\r\n ko = core.requireLib(\"ko;knockout\", \"The Knockout library\");\r\n ko.extenders.intercept = function (target: any, interceptorOptions: any) {\r\n let instance = interceptorOptions.instance;\r\n let property = interceptorOptions.property;\r\n\r\n // create a computed observable to intercept writes to our observable\r\n let result: any;\r\n if (target.splice) {\r\n result = ko.computed({\r\n read: target //always return the original observables value\r\n });\r\n } else {\r\n result = ko.computed({\r\n read: target, //always return the original observables value\r\n write: function (newValue: any) {\r\n instance._$interceptor(property, newValue, target);\r\n return instance;\r\n }\r\n });\r\n }\r\n //return the new computed observable\r\n return result;\r\n };\r\n\r\n }\r\n\r\n getTrackablePropertyNames(entity: any) {\r\n let names: string[] = [];\r\n for (let p in entity) {\r\n if (p === \"entityType\") continue;\r\n if (p === \"_$typeName\") continue;\r\n\r\n let propDescr = getES5PropDescriptor(entity, p);\r\n if (propDescr && propDescr.get) {\r\n names.push(p);\r\n } else {\r\n let val = entity[p];\r\n if (ko.isObservable(val)) {\r\n names.push(p);\r\n } else if (!core.isFunction(val)) {\r\n names.push(p);\r\n }\r\n }\r\n }\r\n return names;\r\n }\r\n\r\n initializeEntityPrototype(proto: any) {\r\n\r\n proto.getProperty = function (propertyName: string) {\r\n return this[propertyName]();\r\n };\r\n\r\n proto.setProperty = function (propertyName: string, value: any) {\r\n this[propertyName](value);\r\n // allow set property chaining.\r\n return this;\r\n };\r\n\r\n if (canIsolateES5Props) {\r\n isolateES5Props(proto);\r\n }\r\n\r\n }\r\n\r\n startTracking(entity: any, proto: any) {\r\n // create ko's for each property and assign defaultValues\r\n\r\n let stype = (entity.entityType || entity.complexType) as breeze.StructuralType;\r\n let es5Descriptors = stype._extra.es5Descriptors || {};\r\n\r\n // sort unmapped properties to the end\r\n stype.getProperties().sort(function (p1, p2) {\r\n let v1 = p1.isUnmapped ? 1 : 0;\r\n let v2 = p2.isUnmapped ? 1 : 0;\r\n return v1 - v2;\r\n }).forEach(function (prop) {\r\n let propName = prop.name;\r\n let val = entity[propName];\r\n let propDescr = es5Descriptors[propName];\r\n let koObj: any;\r\n\r\n // check if property is an ES5 property\r\n if (propDescr) {\r\n let getFn = propDescr.get.bind(entity);\r\n if (propDescr.set) {\r\n let setFn = propDescr.set.bind(entity);\r\n let rawAccessorFn = function (newValue: any) {\r\n if (arguments.length === 0) {\r\n getFn();\r\n return;\r\n } else {\r\n setFn(newValue);\r\n }\r\n };\r\n koObj = ko.computed({\r\n read: function () {\r\n (stype as any)._koDummy();\r\n return getFn();\r\n },\r\n write: function (newValue: any) {\r\n entity._$interceptor(prop, newValue, rawAccessorFn);\r\n (stype as any)._koDummy.valueHasMutated();\r\n return entity;\r\n }\r\n });\r\n } else {\r\n koObj = ko.computed({\r\n read: getFn,\r\n write: function () {\r\n }\r\n\r\n });\r\n }\r\n // check if property is already exposed as a ko object\r\n } else if (ko.isObservable(val)) {\r\n if (prop.isNavigationProperty) {\r\n throw new Error(\"Cannot assign a navigation property in an entity ctor.: \" + propName);\r\n }\r\n koObj = val;\r\n // otherwise\r\n } else {\r\n val = initializeValueForProp(entity, prop, val);\r\n koObj = prop.isScalar ? ko.observable(val) : ko.observableArray(val);\r\n }\r\n\r\n\r\n if (prop.isScalar) {\r\n if (propDescr) {\r\n Object.defineProperty(entity, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: koObj\r\n });\r\n } else {\r\n let koExt = koObj.extend({ intercept: { instance: entity, property: prop } });\r\n entity[propName] = koExt;\r\n }\r\n } else {\r\n val._koObj = koObj;\r\n // code to suppress extra breeze notification when\r\n // ko's array methods are called.\r\n koObj.subscribe(onBeforeChange, null, \"beforeChange\");\r\n // code to insure that any direct breeze changes notify ko\r\n val.arrayChanged.subscribe(onArrayChanged);\r\n\r\n koObj.equalityComparer = function () {\r\n throw new Error(\"Collection navigation properties may NOT be set.\");\r\n };\r\n entity[propName] = koObj;\r\n }\r\n\r\n });\r\n\r\n }\r\n}\r\n\r\nbreeze.config.registerAdapter(\"modelLibrary\", ModelLibraryKnockoutAdapter);\r\n\r\n\r\n// private fns\r\n\r\nfunction getES5PropDescriptor(proto: any, propName: string): any {\r\n if (!canIsolateES5Props) {\r\n return null;\r\n }\r\n if (proto.hasOwnProperty(propName)) {\r\n return Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(proto, propName);\r\n } else {\r\n let nextProto = Object.getPrototypeOf(proto);\r\n return nextProto ? getES5PropDescriptor(nextProto, propName) : null;\r\n }\r\n}\r\n\r\nfunction initializeValueForProp(entity: any, prop: breeze.EntityProperty, val: any) {\r\n if (prop instanceof breeze.DataProperty) {\r\n if (prop.isComplexProperty) {\r\n // TODO: right now we create Empty complexObjects here - these should actually come from the entity\r\n if (prop.isScalar) {\r\n val = (prop.dataType as breeze.ComplexType)._createInstanceCore(entity, prop);\r\n } else {\r\n val = breeze.makeComplexArray([], entity, prop);\r\n }\r\n } else if (!prop.isScalar) {\r\n val = breeze.makePrimitiveArray([], entity, prop);\r\n } else if (val === undefined) {\r\n val = prop.defaultValue;\r\n }\r\n\r\n } else if (prop instanceof breeze.NavigationProperty) {\r\n if (val !== undefined) {\r\n throw new Error(\"Cannot assign a navigation property in an entity ctor.: \" + prop.name);\r\n }\r\n if (prop.isScalar) {\r\n // TODO: change this to nullEntity later.\r\n val = null;\r\n } else {\r\n val = breeze.makeRelationArray([], entity, prop);\r\n }\r\n } else {\r\n throw new Error(\"unknown property: \" + (prop as any).name);\r\n }\r\n return val;\r\n}\r\n\r\n\r\nfunction onBeforeChange(args: any) {\r\n args._koObj._suppressBreeze = true;\r\n}\r\n\r\nfunction onArrayChanged(args: any) {\r\n let koObj = args.array._koObj;\r\n if (koObj._suppressBreeze) {\r\n koObj._suppressBreeze = false;\r\n } else {\r\n koObj.valueHasMutated();\r\n }\r\n}\r\n\r\nfunction isolateES5Props(proto: any) {\r\n let stype = (proto.entityType || proto.complexType) as breeze.StructuralType;\r\n let es5Descriptors = {};\r\n stype.getProperties().forEach(function (prop) {\r\n let propDescr = getES5PropDescriptor(proto, prop.name);\r\n if (propDescr) {\r\n es5Descriptors[prop.name] = propDescr;\r\n }\r\n });\r\n if (!core.isEmpty(es5Descriptors)) {\r\n let extra = stype._extra;\r\n extra.es5Descriptors = es5Descriptors;\r\n (stype as any)._koDummy = ko.observable(null);\r\n }\r\n}\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './adapter-model-library-ko';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import * as breeze from 'breeze-client';
|
|
2
|
+
|
|
3
|
+
/** Appends parameter to url, with appropriate delimiter */
|
|
4
|
+
function appendQueryStringParameter(url, parameter) {
|
|
5
|
+
if (!parameter)
|
|
6
|
+
return url;
|
|
7
|
+
let separator = url.endsWith("?") ? "" : url.includes("?") ? "&" : "?";
|
|
8
|
+
return url + separator + parameter;
|
|
9
|
+
}
|
|
10
|
+
/** Encodes the object into query string parameters */
|
|
11
|
+
function encodeParams(obj) {
|
|
12
|
+
let query = '';
|
|
13
|
+
let subValue, innerObj, fullSubName;
|
|
14
|
+
for (let name in obj) {
|
|
15
|
+
if (!obj.hasOwnProperty(name)) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
let value = obj[name];
|
|
19
|
+
if (value instanceof Array) {
|
|
20
|
+
for (let i = 0; i < value.length; ++i) {
|
|
21
|
+
subValue = value[i];
|
|
22
|
+
fullSubName = name + '[' + i + ']';
|
|
23
|
+
innerObj = {};
|
|
24
|
+
innerObj[fullSubName] = subValue;
|
|
25
|
+
query += encodeParams(innerObj) + '&';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else if (value && value.toISOString) { // a feature of Date-like things
|
|
29
|
+
query += encodeURIComponent(name) + '=' + encodeURIComponent(value.toISOString()) + '&';
|
|
30
|
+
}
|
|
31
|
+
else if (value instanceof Object) {
|
|
32
|
+
for (let subName in value) {
|
|
33
|
+
if (obj.hasOwnProperty(name)) {
|
|
34
|
+
subValue = value[subName];
|
|
35
|
+
fullSubName = name + '[' + subName + ']';
|
|
36
|
+
innerObj = {};
|
|
37
|
+
innerObj[fullSubName] = subValue;
|
|
38
|
+
query += encodeParams(innerObj) + '&';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else if (value === null) {
|
|
43
|
+
query += encodeURIComponent(name) + '=&';
|
|
44
|
+
}
|
|
45
|
+
else if (value !== undefined) {
|
|
46
|
+
query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return query.length ? query.substr(0, query.length - 1) : query;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
class UriBuilderJsonAdapter {
|
|
53
|
+
constructor() {
|
|
54
|
+
this.name = "json";
|
|
55
|
+
}
|
|
56
|
+
static register(config) {
|
|
57
|
+
config = config || breeze.config;
|
|
58
|
+
config.registerAdapter("uriBuilder", UriBuilderJsonAdapter);
|
|
59
|
+
return config.initializeAdapterInstance("uriBuilder", "json", true);
|
|
60
|
+
}
|
|
61
|
+
initialize() { }
|
|
62
|
+
buildUri(entityQuery, metadataStore) {
|
|
63
|
+
// force entityType validation;
|
|
64
|
+
let entityType = entityQuery._getFromEntityType(metadataStore, false);
|
|
65
|
+
if (!entityType)
|
|
66
|
+
entityType = new breeze.EntityType(metadataStore);
|
|
67
|
+
let json = entityQuery.toJSONExt({ entityType: entityType, toNameOnServer: true });
|
|
68
|
+
json.from = undefined;
|
|
69
|
+
json.queryOptions = undefined;
|
|
70
|
+
if (json.parameters && json.parameters.$data) {
|
|
71
|
+
// remove parameters if doing ajax post
|
|
72
|
+
json.parameters = undefined;
|
|
73
|
+
}
|
|
74
|
+
let jsonString = JSON.stringify(json);
|
|
75
|
+
if (jsonString.length > 2) {
|
|
76
|
+
let urlBody = encodeURIComponent(jsonString);
|
|
77
|
+
return appendQueryStringParameter(entityQuery.resourceName, urlBody);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
return entityQuery.resourceName;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
breeze.config.registerAdapter("uriBuilder", UriBuilderJsonAdapter);
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Generated bundle index. Do not edit.
|
|
88
|
+
*/
|
|
89
|
+
|
|
90
|
+
export { UriBuilderJsonAdapter };
|
|
91
|
+
//# sourceMappingURL=breeze-client-adapter-uri-builder-json.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breeze-client-adapter-uri-builder-json.mjs","sources":["../../src/adapter-core.ts","../../src/adapter-uri-builder-json.ts","../../src/breeze-client-adapter-uri-builder-json.ts"],"sourcesContent":["/** Appends parameter to url, with appropriate delimiter */\r\nexport function appendQueryStringParameter(url: string, parameter: string) {\r\n if (!parameter) return url;\r\n\r\n let separator = url.endsWith(\"?\") ? \"\" : url.includes(\"?\") ? \"&\" : \"?\";\r\n\r\n return url + separator + parameter;\r\n}\r\n\r\n/** Encodes the object into query string parameters */\r\nexport function encodeParams(obj: {}) {\r\n let query = '';\r\n let subValue: any, innerObj: any, fullSubName: any;\r\n\r\n for (let name in obj) {\r\n if (!obj.hasOwnProperty(name)) { continue; }\r\n\r\n let value = obj[name];\r\n\r\n if (value instanceof Array) {\r\n for (let i = 0; i < value.length; ++i) {\r\n subValue = value[i];\r\n fullSubName = name + '[' + i + ']';\r\n innerObj = {};\r\n innerObj[fullSubName] = subValue;\r\n query += encodeParams(innerObj) + '&';\r\n }\r\n } else if (value && value.toISOString) { // a feature of Date-like things\r\n query += encodeURIComponent(name) + '=' + encodeURIComponent(value.toISOString()) + '&';\r\n } else if (value instanceof Object) {\r\n for (let subName in value) {\r\n if (obj.hasOwnProperty(name)) {\r\n subValue = value[subName];\r\n fullSubName = name + '[' + subName + ']';\r\n innerObj = {};\r\n innerObj[fullSubName] = subValue;\r\n query += encodeParams(innerObj) + '&';\r\n }\r\n }\r\n } else if (value === null) {\r\n query += encodeURIComponent(name) + '=&';\r\n } else if (value !== undefined) {\r\n query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';\r\n }\r\n }\r\n\r\n return query.length ? query.substr(0, query.length - 1) : query;\r\n}\r\n","import * as breeze from 'breeze-client';\r\nimport { appendQueryStringParameter } from './adapter-core';\r\n\r\nexport class UriBuilderJsonAdapter implements breeze.UriBuilderAdapter {\r\n name: string;\r\n\r\n constructor() {\r\n this.name = \"json\";\r\n }\r\n\r\n static register(config?: breeze.BreezeConfig) {\r\n config = config || breeze.config;\r\n config.registerAdapter(\"uriBuilder\", UriBuilderJsonAdapter);\r\n return config.initializeAdapterInstance(\"uriBuilder\", \"json\", true) as UriBuilderJsonAdapter;\r\n }\r\n\r\n initialize() {}\r\n\r\n buildUri(entityQuery: breeze.EntityQuery, metadataStore: breeze.MetadataStore) {\r\n // force entityType validation;\r\n let entityType = entityQuery._getFromEntityType(metadataStore, false);\r\n if (!entityType) entityType = new breeze.EntityType(metadataStore);\r\n let json = entityQuery.toJSONExt( { entityType: entityType, toNameOnServer: true}) as any;\r\n json.from = undefined;\r\n json.queryOptions = undefined;\r\n if (json.parameters && json.parameters.$data) {\r\n // remove parameters if doing ajax post\r\n json.parameters = undefined;\r\n }\r\n\r\n let jsonString = JSON.stringify(json);\r\n if (jsonString.length > 2) {\r\n let urlBody = encodeURIComponent(jsonString);\r\n return appendQueryStringParameter(entityQuery.resourceName, urlBody);\r\n } else {\r\n return entityQuery.resourceName;\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nbreeze.config.registerAdapter(\"uriBuilder\", UriBuilderJsonAdapter);\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './adapter-uri-builder-json';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import * as breeze from 'breeze-client';
|
|
2
|
+
|
|
3
|
+
/** Appends parameter to url, with appropriate delimiter */
|
|
4
|
+
function appendQueryStringParameter(url, parameter) {
|
|
5
|
+
if (!parameter)
|
|
6
|
+
return url;
|
|
7
|
+
let separator = url.endsWith("?") ? "" : url.includes("?") ? "&" : "?";
|
|
8
|
+
return url + separator + parameter;
|
|
9
|
+
}
|
|
10
|
+
/** Encodes the object into query string parameters */
|
|
11
|
+
function encodeParams(obj) {
|
|
12
|
+
let query = '';
|
|
13
|
+
let subValue, innerObj, fullSubName;
|
|
14
|
+
for (let name in obj) {
|
|
15
|
+
if (!obj.hasOwnProperty(name)) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
let value = obj[name];
|
|
19
|
+
if (value instanceof Array) {
|
|
20
|
+
for (let i = 0; i < value.length; ++i) {
|
|
21
|
+
subValue = value[i];
|
|
22
|
+
fullSubName = name + '[' + i + ']';
|
|
23
|
+
innerObj = {};
|
|
24
|
+
innerObj[fullSubName] = subValue;
|
|
25
|
+
query += encodeParams(innerObj) + '&';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else if (value && value.toISOString) { // a feature of Date-like things
|
|
29
|
+
query += encodeURIComponent(name) + '=' + encodeURIComponent(value.toISOString()) + '&';
|
|
30
|
+
}
|
|
31
|
+
else if (value instanceof Object) {
|
|
32
|
+
for (let subName in value) {
|
|
33
|
+
if (obj.hasOwnProperty(name)) {
|
|
34
|
+
subValue = value[subName];
|
|
35
|
+
fullSubName = name + '[' + subName + ']';
|
|
36
|
+
innerObj = {};
|
|
37
|
+
innerObj[fullSubName] = subValue;
|
|
38
|
+
query += encodeParams(innerObj) + '&';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else if (value === null) {
|
|
43
|
+
query += encodeURIComponent(name) + '=&';
|
|
44
|
+
}
|
|
45
|
+
else if (value !== undefined) {
|
|
46
|
+
query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return query.length ? query.substr(0, query.length - 1) : query;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
class UriBuilderODataAdapter {
|
|
53
|
+
constructor() {
|
|
54
|
+
this.name = "odata";
|
|
55
|
+
}
|
|
56
|
+
static register(config) {
|
|
57
|
+
config = config || breeze.config;
|
|
58
|
+
config.registerAdapter("uriBuilder", UriBuilderODataAdapter);
|
|
59
|
+
return config.initializeAdapterInstance("uriBuilder", "odata", true);
|
|
60
|
+
}
|
|
61
|
+
initialize() { }
|
|
62
|
+
buildUri(entityQuery, metadataStore) {
|
|
63
|
+
// force entityType validation;
|
|
64
|
+
let entityType = entityQuery._getFromEntityType(metadataStore, false);
|
|
65
|
+
if (!entityType) {
|
|
66
|
+
// anonymous type but still has naming convention info avail
|
|
67
|
+
entityType = new breeze.EntityType(metadataStore);
|
|
68
|
+
}
|
|
69
|
+
let queryOptions = {};
|
|
70
|
+
queryOptions["$filter"] = toWhereODataFragment(entityQuery.wherePredicate);
|
|
71
|
+
queryOptions["$orderby"] = toOrderByODataFragment(entityQuery.orderByClause);
|
|
72
|
+
if (entityQuery.skipCount) {
|
|
73
|
+
queryOptions["$skip"] = entityQuery.skipCount;
|
|
74
|
+
}
|
|
75
|
+
if (entityQuery.takeCount != null) {
|
|
76
|
+
queryOptions["$top"] = entityQuery.takeCount;
|
|
77
|
+
}
|
|
78
|
+
queryOptions["$expand"] = toExpandODataFragment(entityQuery.expandClause);
|
|
79
|
+
queryOptions["$select"] = toSelectODataFragment(entityQuery.selectClause);
|
|
80
|
+
if (entityQuery.inlineCountEnabled) {
|
|
81
|
+
queryOptions["$inlinecount"] = "allpages";
|
|
82
|
+
}
|
|
83
|
+
const qoText = toQueryOptionsString(queryOptions);
|
|
84
|
+
return appendQueryStringParameter(entityQuery.resourceName, qoText);
|
|
85
|
+
// private methods to this func.
|
|
86
|
+
function toWhereODataFragment(wherePredicate) {
|
|
87
|
+
if (!wherePredicate)
|
|
88
|
+
return undefined;
|
|
89
|
+
// validation occurs inside of the toODataFragment call here.
|
|
90
|
+
let frag = wherePredicate.visit({ entityType: entityType }, toODataFragmentVisitor);
|
|
91
|
+
return (frag && frag.length > 0) ? frag : undefined;
|
|
92
|
+
}
|
|
93
|
+
function toOrderByODataFragment(orderByClause) {
|
|
94
|
+
if (!orderByClause)
|
|
95
|
+
return undefined;
|
|
96
|
+
orderByClause.validate(entityType);
|
|
97
|
+
let strings = orderByClause.items.map(function (item) {
|
|
98
|
+
return entityType.clientPropertyPathToServer(item.propertyPath, "/") + (item.isDesc ? " desc" : "");
|
|
99
|
+
});
|
|
100
|
+
// should return something like CompanyName,Address/City desc
|
|
101
|
+
return strings.join(',');
|
|
102
|
+
}
|
|
103
|
+
function toSelectODataFragment(selectClause) {
|
|
104
|
+
if (!selectClause)
|
|
105
|
+
return undefined;
|
|
106
|
+
selectClause.validate(entityType);
|
|
107
|
+
let frag = selectClause.propertyPaths.map(function (pp) {
|
|
108
|
+
return entityType.clientPropertyPathToServer(pp, "/");
|
|
109
|
+
}).join(",");
|
|
110
|
+
return frag;
|
|
111
|
+
}
|
|
112
|
+
function toExpandODataFragment(expandClause) {
|
|
113
|
+
if (!expandClause)
|
|
114
|
+
return undefined;
|
|
115
|
+
// no validate on expand clauses currently.
|
|
116
|
+
// expandClause.validate(entityType);
|
|
117
|
+
let frag = expandClause.propertyPaths.map(function (pp) {
|
|
118
|
+
return entityType.clientPropertyPathToServer(pp, "/");
|
|
119
|
+
}).join(",");
|
|
120
|
+
return frag;
|
|
121
|
+
}
|
|
122
|
+
function toQueryOptionsString(queryOptions) {
|
|
123
|
+
let qoStrings = [];
|
|
124
|
+
for (let qoName in queryOptions) {
|
|
125
|
+
let qoValue = queryOptions[qoName];
|
|
126
|
+
if (qoValue !== undefined) {
|
|
127
|
+
if (qoValue instanceof Array) {
|
|
128
|
+
qoValue.forEach(function (qov) {
|
|
129
|
+
qoStrings.push(qoName + "=" + encodeURIComponent(qov));
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
qoStrings.push(qoName + "=" + encodeURIComponent(qoValue));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (qoStrings.length > 0) {
|
|
138
|
+
return qoStrings.join("&");
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
return "";
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
breeze.Predicate.prototype.toODataFragment = function (context) {
|
|
147
|
+
return this.visit(context, toODataFragmentVisitor);
|
|
148
|
+
};
|
|
149
|
+
let toODataFragmentVisitor = {
|
|
150
|
+
passthruPredicate: function () {
|
|
151
|
+
return this.value;
|
|
152
|
+
},
|
|
153
|
+
unaryPredicate: function (context) {
|
|
154
|
+
let predVal = this.pred.visit(context);
|
|
155
|
+
return odataOpFrom(this) + " " + "(" + predVal + ")";
|
|
156
|
+
},
|
|
157
|
+
binaryPredicate: function (context) {
|
|
158
|
+
let expr1Val = this.expr1.visit(context);
|
|
159
|
+
let expr2Val = this.expr2.visit(context);
|
|
160
|
+
let prefix = context.prefix;
|
|
161
|
+
if (prefix) {
|
|
162
|
+
expr1Val = prefix + "/" + expr1Val;
|
|
163
|
+
}
|
|
164
|
+
let odataOp = odataOpFrom(this);
|
|
165
|
+
if (this.op.key === 'in') {
|
|
166
|
+
let result = expr2Val.map(function (v) {
|
|
167
|
+
return "(" + expr1Val + " eq " + v + ")";
|
|
168
|
+
}).join(" or ");
|
|
169
|
+
return result;
|
|
170
|
+
}
|
|
171
|
+
else if (this.op.isFunction) {
|
|
172
|
+
if (odataOp === "substringof") {
|
|
173
|
+
return odataOp + "(" + expr2Val + "," + expr1Val + ") eq true";
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
return odataOp + "(" + expr1Val + "," + expr2Val + ") eq true";
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
return expr1Val + " " + odataOp + " " + expr2Val;
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
andOrPredicate: function (context) {
|
|
184
|
+
let result = this.preds.map(function (pred) {
|
|
185
|
+
let predVal = pred.visit(context);
|
|
186
|
+
return "(" + predVal + ")";
|
|
187
|
+
}).join(" " + odataOpFrom(this) + " ");
|
|
188
|
+
return result;
|
|
189
|
+
},
|
|
190
|
+
anyAllPredicate: function (context) {
|
|
191
|
+
let exprVal = this.expr.visit(context);
|
|
192
|
+
if (!this.pred.op) { // added 21-Oct-2016 to fix breeze.js issue #172
|
|
193
|
+
return exprVal + "/" + odataOpFrom(this) + "()";
|
|
194
|
+
}
|
|
195
|
+
let prefix = context.prefix;
|
|
196
|
+
if (prefix) {
|
|
197
|
+
exprVal = prefix + "/" + exprVal;
|
|
198
|
+
prefix = "x" + (parseInt(prefix.substring(1)) + 1);
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
prefix = "x1";
|
|
202
|
+
}
|
|
203
|
+
// need to create a new context because of 'prefix'
|
|
204
|
+
let newContext = breeze.core.extend({}, context);
|
|
205
|
+
newContext.entityType = this.expr.dataType;
|
|
206
|
+
newContext.prefix = prefix;
|
|
207
|
+
let newPredVal = this.pred.visit(newContext);
|
|
208
|
+
return exprVal + "/" + odataOpFrom(this) + "(" + prefix + ": " + newPredVal + ")";
|
|
209
|
+
},
|
|
210
|
+
litExpr: function () {
|
|
211
|
+
if (Array.isArray(this.value)) {
|
|
212
|
+
return this.value.map(function (v) { return this.dataType.fmtOData(v); }, this);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
return this.dataType.fmtOData(this.value);
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
propExpr: function (context) {
|
|
219
|
+
let entityType = context.entityType;
|
|
220
|
+
// '/' is the OData path delimiter
|
|
221
|
+
return entityType ? entityType.clientPropertyPathToServer(this.propertyPath, "/") : this.propertyPath;
|
|
222
|
+
},
|
|
223
|
+
fnExpr: function (context) {
|
|
224
|
+
let exprVals = this.exprs.map(function (expr) {
|
|
225
|
+
return expr.visit(context);
|
|
226
|
+
});
|
|
227
|
+
return this.fnName + "(" + exprVals.join(",") + ")";
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
let _operatorMap = {
|
|
231
|
+
'contains': 'substringof'
|
|
232
|
+
};
|
|
233
|
+
function odataOpFrom(node) {
|
|
234
|
+
let op = node.op.key;
|
|
235
|
+
let odataOp = _operatorMap[op];
|
|
236
|
+
return odataOp || op;
|
|
237
|
+
}
|
|
238
|
+
breeze.config.registerAdapter("uriBuilder", UriBuilderODataAdapter);
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Generated bundle index. Do not edit.
|
|
242
|
+
*/
|
|
243
|
+
|
|
244
|
+
export { UriBuilderODataAdapter };
|
|
245
|
+
//# sourceMappingURL=breeze-client-adapter-uri-builder-odata.mjs.map
|