breeze-client 2.1.7-mjs → 2.2.0-cjs
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/README.md +8 -4
- package/adapter-ajax-angularjs/{index.d.ts → breeze-client-adapter-ajax-angularjs.d.ts} +0 -1
- package/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.metadata.json +1 -0
- package/adapter-ajax-angularjs/package.json +13 -0
- package/adapter-ajax-fetch/{index.d.ts → breeze-client-adapter-ajax-fetch.d.ts} +0 -1
- package/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.metadata.json +1 -0
- package/adapter-ajax-fetch/package.json +13 -0
- package/adapter-ajax-httpclient/{index.d.ts → breeze-client-adapter-ajax-httpclient.d.ts} +0 -1
- package/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.metadata.json +1 -0
- package/adapter-ajax-httpclient/package.json +13 -0
- package/adapter-ajax-jquery/{index.d.ts → breeze-client-adapter-ajax-jquery.d.ts} +0 -1
- package/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.metadata.json +1 -0
- package/adapter-ajax-jquery/package.json +13 -0
- package/adapter-ajax-post/{index.d.ts → breeze-client-adapter-ajax-post.d.ts} +0 -1
- package/adapter-ajax-post/breeze-client-adapter-ajax-post.metadata.json +1 -0
- package/adapter-ajax-post/package.json +13 -0
- package/adapter-data-service-odata/{index.d.ts → breeze-client-adapter-data-service-odata.d.ts} +0 -1
- package/adapter-data-service-odata/breeze-client-adapter-data-service-odata.metadata.json +1 -0
- package/adapter-data-service-odata/package.json +13 -0
- package/adapter-data-service-webapi/{index.d.ts → breeze-client-adapter-data-service-webapi.d.ts} +0 -1
- package/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.metadata.json +1 -0
- package/adapter-data-service-webapi/package.json +13 -0
- package/adapter-model-library-backing-store/{index.d.ts → breeze-client-adapter-model-library-backing-store.d.ts} +0 -1
- package/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.metadata.json +1 -0
- package/adapter-model-library-backing-store/package.json +13 -0
- package/adapter-model-library-ko/{index.d.ts → breeze-client-adapter-model-library-ko.d.ts} +0 -1
- package/adapter-model-library-ko/breeze-client-adapter-model-library-ko.metadata.json +1 -0
- package/adapter-model-library-ko/package.json +13 -0
- package/adapter-uri-builder-json/{index.d.ts → breeze-client-adapter-uri-builder-json.d.ts} +0 -1
- package/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.metadata.json +1 -0
- package/adapter-uri-builder-json/package.json +13 -0
- package/adapter-uri-builder-odata/{index.d.ts → breeze-client-adapter-uri-builder-odata.d.ts} +0 -1
- package/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.metadata.json +1 -0
- package/adapter-uri-builder-odata/package.json +13 -0
- package/breeze-client.d.ts +8 -0
- package/breeze-client.metadata.json +1 -0
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.js +190 -0
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-fetch.umd.js +190 -0
- package/bundles/breeze-client-adapter-ajax-fetch.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.js +195 -0
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-jquery.umd.js +115 -0
- package/bundles/breeze-client-adapter-ajax-jquery.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-post.umd.js +92 -0
- package/bundles/breeze-client-adapter-ajax-post.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-post.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-ajax-post.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-data-service-odata.umd.js +747 -0
- package/bundles/breeze-client-adapter-data-service-odata.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-data-service-odata.umd.min.js +16 -0
- package/bundles/breeze-client-adapter-data-service-odata.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-data-service-webapi.umd.js +333 -0
- package/bundles/breeze-client-adapter-data-service-webapi.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js +16 -0
- package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.js +280 -0
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-model-library-ko.umd.js +252 -0
- package/bundles/breeze-client-adapter-model-library-ko.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-model-library-ko.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-model-library-ko.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-uri-builder-json.umd.js +96 -0
- package/bundles/breeze-client-adapter-uri-builder-json.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.js +262 -0
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js.map +1 -0
- package/bundles/breeze-client-mixin-get-entity-graph.umd.js +258 -0
- package/bundles/breeze-client-mixin-get-entity-graph.umd.js.map +1 -0
- package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js +2 -0
- package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js.map +1 -0
- package/bundles/breeze-client-mixin-save-queuing.umd.js +579 -0
- package/bundles/breeze-client-mixin-save-queuing.umd.js.map +1 -0
- package/bundles/breeze-client-mixin-save-queuing.umd.min.js +16 -0
- package/bundles/breeze-client-mixin-save-queuing.umd.min.js.map +1 -0
- package/bundles/breeze-client.umd.js +14234 -0
- package/bundles/breeze-client.umd.js.map +1 -0
- package/bundles/breeze-client.umd.min.js +16 -0
- package/bundles/breeze-client.umd.min.js.map +1 -0
- package/esm2015/adapter-ajax-angularjs/adapter-ajax-angularjs.js +130 -0
- package/esm2015/adapter-ajax-angularjs/adapter-core.js +49 -0
- package/esm2015/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +5 -0
- package/esm2015/adapter-ajax-fetch/adapter-ajax-fetch.js +130 -0
- package/esm2015/adapter-ajax-fetch/adapter-core.js +49 -0
- package/esm2015/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +5 -0
- package/esm2015/adapter-ajax-httpclient/adapter-ajax-httpclient.js +137 -0
- package/esm2015/adapter-ajax-httpclient/adapter-core.js +49 -0
- package/esm2015/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +5 -0
- package/esm2015/adapter-ajax-jquery/adapter-ajax-jquery.js +103 -0
- package/esm2015/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +5 -0
- package/esm2015/adapter-ajax-post/adapter-ajax-post.js +77 -0
- package/esm2015/adapter-ajax-post/breeze-client-adapter-ajax-post.js +5 -0
- package/esm2015/adapter-data-service-odata/adapter-core.js +49 -0
- package/esm2015/adapter-data-service-odata/adapter-data-service-odata.js +463 -0
- package/esm2015/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +5 -0
- package/esm2015/adapter-data-service-webapi/adapter-data-service-webapi.js +100 -0
- package/esm2015/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +5 -0
- package/esm2015/adapter-model-library-backing-store/adapter-model-library-backing-store.js +268 -0
- package/esm2015/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +5 -0
- package/esm2015/adapter-model-library-ko/adapter-model-library-ko.js +240 -0
- package/esm2015/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +5 -0
- package/esm2015/adapter-uri-builder-json/adapter-core.js +49 -0
- package/esm2015/adapter-uri-builder-json/adapter-uri-builder-json.js +36 -0
- package/esm2015/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +5 -0
- package/esm2015/adapter-uri-builder-odata/adapter-core.js +49 -0
- package/esm2015/adapter-uri-builder-odata/adapter-uri-builder-odata.js +192 -0
- package/esm2015/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +5 -0
- package/esm2015/breeze-client.js +9 -0
- package/esm2015/index.js +2 -0
- package/esm2015/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +5 -0
- package/esm2015/mixin-get-entity-graph/mixin-get-entity-graph.js +269 -0
- package/esm2015/mixin-save-queuing/breeze-client-mixin-save-queuing.js +5 -0
- package/esm2015/mixin-save-queuing/mixin-save-queuing.js +400 -0
- package/esm2015/src/abstract-data-service-adapter.js +327 -0
- package/esm2015/src/array.js +4 -0
- package/esm2015/src/assert-param.js +312 -0
- package/esm2015/src/breeze.js +85 -0
- package/esm2015/src/complex-array.js +119 -0
- package/esm2015/src/config.js +223 -0
- package/esm2015/src/core.js +714 -0
- package/esm2015/src/csdl-metadata-parser.js +385 -0
- package/esm2015/src/data-service.js +203 -0
- package/esm2015/src/data-type.js +506 -0
- package/esm2015/src/default-property-interceptor.js +460 -0
- package/{esm2022/src/entity-action.mjs → esm2015/src/entity-action.js} +25 -25
- package/esm2015/src/entity-aspect.js +804 -0
- package/esm2015/src/entity-group.js +187 -0
- package/esm2015/src/entity-key.js +116 -0
- package/esm2015/src/entity-manager.js +2094 -0
- package/esm2015/src/entity-metadata.js +2109 -0
- package/esm2015/src/entity-query.js +1015 -0
- package/esm2015/src/entity-state.js +107 -0
- package/esm2015/src/enum.js +141 -0
- package/esm2015/src/event.js +256 -0
- package/esm2015/src/interface-registry.js +41 -0
- package/esm2015/src/key-generator.js +108 -0
- package/esm2015/src/local-query-comparison-options.js +65 -0
- package/esm2015/src/mapping-context.js +411 -0
- package/esm2015/src/naming-convention.js +88 -0
- package/esm2015/src/observable-array.js +185 -0
- package/esm2015/src/predicate.js +1242 -0
- package/esm2015/src/primitive-array.js +87 -0
- package/esm2015/src/query-options.js +152 -0
- package/esm2015/src/relation-array.js +175 -0
- package/esm2015/src/save-options.js +41 -0
- package/esm2015/src/unattached-children-map.js +58 -0
- package/esm2015/src/validate.js +991 -0
- package/esm2015/src/validation-options.js +64 -0
- package/esm5/adapter-ajax-angularjs/adapter-ajax-angularjs.js +132 -0
- package/esm5/adapter-ajax-angularjs/adapter-core.js +49 -0
- package/esm5/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +5 -0
- package/esm5/adapter-ajax-fetch/adapter-ajax-fetch.js +132 -0
- package/esm5/adapter-ajax-fetch/adapter-core.js +49 -0
- package/esm5/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +5 -0
- package/esm5/adapter-ajax-httpclient/adapter-ajax-httpclient.js +139 -0
- package/esm5/adapter-ajax-httpclient/adapter-core.js +49 -0
- package/esm5/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +5 -0
- package/esm5/adapter-ajax-jquery/adapter-ajax-jquery.js +105 -0
- package/esm5/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +5 -0
- package/esm5/adapter-ajax-post/adapter-ajax-post.js +81 -0
- package/esm5/adapter-ajax-post/breeze-client-adapter-ajax-post.js +5 -0
- package/esm5/adapter-data-service-odata/adapter-core.js +49 -0
- package/{esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs → esm5/adapter-data-service-odata/adapter-data-service-odata.js} +147 -138
- package/esm5/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +5 -0
- package/esm5/adapter-data-service-webapi/adapter-data-service-webapi.js +105 -0
- package/esm5/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +5 -0
- package/esm5/adapter-model-library-backing-store/adapter-model-library-backing-store.js +270 -0
- package/esm5/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +5 -0
- package/esm5/adapter-model-library-ko/adapter-model-library-ko.js +242 -0
- package/esm5/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +5 -0
- package/esm5/adapter-uri-builder-json/adapter-core.js +49 -0
- package/esm5/adapter-uri-builder-json/adapter-uri-builder-json.js +38 -0
- package/esm5/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +5 -0
- package/esm5/adapter-uri-builder-odata/adapter-core.js +49 -0
- package/esm5/adapter-uri-builder-odata/adapter-uri-builder-odata.js +197 -0
- package/esm5/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +5 -0
- package/esm5/breeze-client.js +9 -0
- package/esm5/index.js +2 -0
- package/esm5/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +5 -0
- package/esm5/mixin-get-entity-graph/mixin-get-entity-graph.js +269 -0
- package/esm5/mixin-save-queuing/breeze-client-mixin-save-queuing.js +5 -0
- package/esm5/mixin-save-queuing/mixin-save-queuing.js +412 -0
- package/esm5/src/abstract-data-service-adapter.js +333 -0
- package/esm5/src/array.js +4 -0
- package/esm5/src/assert-param.js +317 -0
- package/esm5/src/breeze.js +85 -0
- package/esm5/src/complex-array.js +119 -0
- package/esm5/src/config.js +228 -0
- package/esm5/src/core.js +722 -0
- package/esm5/src/csdl-metadata-parser.js +385 -0
- package/esm5/src/data-service.js +207 -0
- package/esm5/src/data-type.js +513 -0
- package/esm5/src/default-property-interceptor.js +460 -0
- package/esm5/src/entity-action.js +52 -0
- package/esm5/src/entity-aspect.js +810 -0
- package/esm5/src/entity-group.js +189 -0
- package/esm5/src/entity-key.js +118 -0
- package/esm5/src/entity-manager.js +2112 -0
- package/esm5/src/entity-metadata.js +2144 -0
- package/esm5/src/entity-query.js +1042 -0
- package/esm5/src/entity-state.js +114 -0
- package/esm5/src/enum.js +144 -0
- package/esm5/src/event.js +259 -0
- package/esm5/src/interface-registry.js +43 -0
- package/esm5/src/key-generator.js +111 -0
- package/esm5/src/local-query-comparison-options.js +67 -0
- package/esm5/src/mapping-context.js +413 -0
- package/{esm2022/src/naming-convention.mjs → esm5/src/naming-convention.js} +29 -35
- package/esm5/src/observable-array.js +201 -0
- package/esm5/src/predicate.js +1307 -0
- package/esm5/src/primitive-array.js +87 -0
- package/esm5/src/query-options.js +167 -0
- package/esm5/src/relation-array.js +175 -0
- package/esm5/src/save-options.js +43 -0
- package/esm5/src/unattached-children-map.js +60 -0
- package/{esm2022/src/validate.mjs → esm5/src/validate.js} +110 -116
- package/esm5/src/validation-options.js +66 -0
- package/{fesm2022/breeze-client-adapter-ajax-angularjs.mjs → fesm2015/breeze-client-adapter-ajax-angularjs.js} +1 -6
- package/fesm2015/breeze-client-adapter-ajax-angularjs.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-ajax-fetch.mjs → fesm2015/breeze-client-adapter-ajax-fetch.js} +4 -9
- package/fesm2015/breeze-client-adapter-ajax-fetch.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-ajax-httpclient.mjs → fesm2015/breeze-client-adapter-ajax-httpclient.js} +4 -6
- package/fesm2015/breeze-client-adapter-ajax-httpclient.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-ajax-jquery.mjs → fesm2015/breeze-client-adapter-ajax-jquery.js} +2 -6
- package/fesm2015/breeze-client-adapter-ajax-jquery.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-ajax-post.mjs → fesm2015/breeze-client-adapter-ajax-post.js} +1 -1
- package/fesm2015/breeze-client-adapter-ajax-post.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-data-service-odata.mjs → fesm2015/breeze-client-adapter-data-service-odata.js} +69 -68
- package/fesm2015/breeze-client-adapter-data-service-odata.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-data-service-webapi.mjs → fesm2015/breeze-client-adapter-data-service-webapi.js} +30 -30
- package/fesm2015/breeze-client-adapter-data-service-webapi.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-model-library-backing-store.mjs → fesm2015/breeze-client-adapter-model-library-backing-store.js} +13 -14
- package/fesm2015/breeze-client-adapter-model-library-backing-store.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-model-library-ko.mjs → fesm2015/breeze-client-adapter-model-library-ko.js} +13 -14
- package/fesm2015/breeze-client-adapter-model-library-ko.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-uri-builder-json.mjs → fesm2015/breeze-client-adapter-uri-builder-json.js} +8 -9
- package/fesm2015/breeze-client-adapter-uri-builder-json.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-uri-builder-odata.mjs → fesm2015/breeze-client-adapter-uri-builder-odata.js} +86 -86
- package/fesm2015/breeze-client-adapter-uri-builder-odata.js.map +1 -0
- package/{fesm2022/breeze-client-mixin-get-entity-graph.mjs → fesm2015/breeze-client-mixin-get-entity-graph.js} +1 -1
- package/fesm2015/breeze-client-mixin-get-entity-graph.js.map +1 -0
- package/{fesm2022/breeze-client-mixin-save-queuing.mjs → fesm2015/breeze-client-mixin-save-queuing.js} +2 -23
- package/fesm2015/breeze-client-mixin-save-queuing.js.map +1 -0
- package/{fesm2022/breeze-client.mjs → fesm2015/breeze-client.js} +1543 -2039
- package/fesm2015/breeze-client.js.map +1 -0
- package/fesm5/breeze-client-adapter-ajax-angularjs.js +186 -0
- package/fesm5/breeze-client-adapter-ajax-angularjs.js.map +1 -0
- package/fesm5/breeze-client-adapter-ajax-fetch.js +186 -0
- package/fesm5/breeze-client-adapter-ajax-fetch.js.map +1 -0
- package/fesm5/breeze-client-adapter-ajax-httpclient.js +193 -0
- package/fesm5/breeze-client-adapter-ajax-httpclient.js.map +1 -0
- package/fesm5/breeze-client-adapter-ajax-jquery.js +111 -0
- package/fesm5/breeze-client-adapter-ajax-jquery.js.map +1 -0
- package/fesm5/breeze-client-adapter-ajax-post.js +86 -0
- package/fesm5/breeze-client-adapter-ajax-post.js.map +1 -0
- package/fesm5/breeze-client-adapter-data-service-odata.js +523 -0
- package/fesm5/breeze-client-adapter-data-service-odata.js.map +1 -0
- package/fesm5/breeze-client-adapter-data-service-webapi.js +111 -0
- package/fesm5/breeze-client-adapter-data-service-webapi.js.map +1 -0
- package/fesm5/breeze-client-adapter-model-library-backing-store.js +276 -0
- package/fesm5/breeze-client-adapter-model-library-backing-store.js.map +1 -0
- package/fesm5/breeze-client-adapter-model-library-ko.js +248 -0
- package/fesm5/breeze-client-adapter-model-library-ko.js.map +1 -0
- package/fesm5/breeze-client-adapter-uri-builder-json.js +92 -0
- package/fesm5/breeze-client-adapter-uri-builder-json.js.map +1 -0
- package/fesm5/breeze-client-adapter-uri-builder-odata.js +250 -0
- package/fesm5/breeze-client-adapter-uri-builder-odata.js.map +1 -0
- package/fesm5/breeze-client-mixin-get-entity-graph.js +254 -0
- package/fesm5/breeze-client-mixin-get-entity-graph.js.map +1 -0
- package/fesm5/breeze-client-mixin-save-queuing.js +356 -0
- package/fesm5/breeze-client-mixin-save-queuing.js.map +1 -0
- package/fesm5/breeze-client.js +13956 -0
- package/fesm5/breeze-client.js.map +1 -0
- package/mixin-get-entity-graph/{index.d.ts → breeze-client-mixin-get-entity-graph.d.ts} +0 -1
- package/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.metadata.json +1 -0
- package/mixin-get-entity-graph/package.json +13 -0
- package/mixin-save-queuing/{index.d.ts → breeze-client-mixin-save-queuing.d.ts} +0 -1
- package/mixin-save-queuing/breeze-client-mixin-save-queuing.metadata.json +1 -0
- package/mixin-save-queuing/package.json +13 -0
- package/package.json +11 -93
- package/src/config.d.ts +1 -1
- package/src/core.d.ts +1 -1
- package/src/entity-aspect.d.ts +1 -1
- package/src/entity-metadata.d.ts +6 -8
- package/src/entity-query.d.ts +1 -1
- package/esm2022/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +0 -135
- package/esm2022/adapter-ajax-angularjs/adapter-core.mjs +0 -49
- package/esm2022/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +0 -5
- package/esm2022/adapter-ajax-fetch/adapter-ajax-fetch.mjs +0 -135
- package/esm2022/adapter-ajax-fetch/adapter-core.mjs +0 -49
- package/esm2022/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +0 -5
- package/esm2022/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +0 -139
- package/esm2022/adapter-ajax-httpclient/adapter-core.mjs +0 -49
- package/esm2022/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +0 -5
- package/esm2022/adapter-ajax-jquery/adapter-ajax-jquery.mjs +0 -107
- package/esm2022/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +0 -5
- package/esm2022/adapter-ajax-post/adapter-ajax-post.mjs +0 -77
- package/esm2022/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +0 -5
- package/esm2022/adapter-data-service-odata/adapter-core.mjs +0 -49
- package/esm2022/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +0 -5
- package/esm2022/adapter-data-service-webapi/adapter-data-service-webapi.mjs +0 -100
- package/esm2022/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +0 -5
- package/esm2022/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +0 -269
- package/esm2022/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +0 -5
- package/esm2022/adapter-model-library-ko/adapter-model-library-ko.mjs +0 -241
- package/esm2022/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +0 -5
- package/esm2022/adapter-uri-builder-json/adapter-core.mjs +0 -49
- package/esm2022/adapter-uri-builder-json/adapter-uri-builder-json.mjs +0 -37
- package/esm2022/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +0 -5
- package/esm2022/adapter-uri-builder-odata/adapter-core.mjs +0 -49
- package/esm2022/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +0 -191
- package/esm2022/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +0 -5
- package/esm2022/breeze-client.mjs +0 -5
- package/esm2022/index.mjs +0 -2
- package/esm2022/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +0 -5
- package/esm2022/mixin-get-entity-graph/mixin-get-entity-graph.mjs +0 -269
- package/esm2022/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +0 -5
- package/esm2022/mixin-save-queuing/mixin-save-queuing.mjs +0 -421
- package/esm2022/src/abstract-data-service-adapter.mjs +0 -325
- package/esm2022/src/array.mjs +0 -4
- package/esm2022/src/assert-param.mjs +0 -330
- package/esm2022/src/breeze.mjs +0 -85
- package/esm2022/src/complex-array.mjs +0 -117
- package/esm2022/src/config.mjs +0 -232
- package/esm2022/src/core.mjs +0 -712
- package/esm2022/src/csdl-metadata-parser.mjs +0 -385
- package/esm2022/src/data-service.mjs +0 -239
- package/esm2022/src/data-type.mjs +0 -507
- package/esm2022/src/default-property-interceptor.mjs +0 -460
- package/esm2022/src/entity-aspect.mjs +0 -897
- package/esm2022/src/entity-group.mjs +0 -192
- package/esm2022/src/entity-key.mjs +0 -127
- package/esm2022/src/entity-manager.mjs +0 -2183
- package/esm2022/src/entity-metadata.mjs +0 -2242
- package/esm2022/src/entity-query.mjs +0 -1024
- package/esm2022/src/entity-state.mjs +0 -107
- package/esm2022/src/enum.mjs +0 -143
- package/esm2022/src/event.mjs +0 -264
- package/esm2022/src/interface-registry.mjs +0 -39
- package/esm2022/src/key-generator.mjs +0 -110
- package/esm2022/src/local-query-comparison-options.mjs +0 -75
- package/esm2022/src/mapping-context.mjs +0 -422
- package/esm2022/src/observable-array.mjs +0 -183
- package/esm2022/src/predicate.mjs +0 -1259
- package/esm2022/src/primitive-array.mjs +0 -85
- package/esm2022/src/query-options.mjs +0 -160
- package/esm2022/src/relation-array.mjs +0 -173
- package/esm2022/src/save-options.mjs +0 -51
- package/esm2022/src/unattached-children-map.mjs +0 -56
- package/esm2022/src/validation-options.mjs +0 -78
- package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-fetch.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-jquery.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-post.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-data-service-odata.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-data-service-webapi.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-model-library-ko.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-uri-builder-json.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs.map +0 -1
- package/fesm2022/breeze-client-mixin-get-entity-graph.mjs.map +0 -1
- package/fesm2022/breeze-client-mixin-save-queuing.mjs.map +0 -1
- package/fesm2022/breeze-client.mjs.map +0 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { core } from './core';
|
|
2
|
+
import { observableArray } from './observable-array';
|
|
3
|
+
import { BreezeEvent } from './event';
|
|
4
|
+
var ɵ0 = function (adds) {
|
|
5
|
+
return adds;
|
|
6
|
+
}, ɵ1 = function () {
|
|
7
|
+
var entityAspect = this.getEntityAspect();
|
|
8
|
+
if (entityAspect.entityState.isUnchanged()) {
|
|
9
|
+
entityAspect.setModified();
|
|
10
|
+
}
|
|
11
|
+
if (entityAspect.entityState.isModified() && !this._origValues) {
|
|
12
|
+
this._origValues = this.slice(0);
|
|
13
|
+
}
|
|
14
|
+
}, ɵ2 = function (adds) {
|
|
15
|
+
// nothing needed
|
|
16
|
+
}, ɵ3 = function (removes) {
|
|
17
|
+
// nothing needed;
|
|
18
|
+
}, ɵ4 = function () {
|
|
19
|
+
if (!this._origValues)
|
|
20
|
+
return;
|
|
21
|
+
this.length = 0;
|
|
22
|
+
Array.prototype.push.apply(this, this._origValues);
|
|
23
|
+
}, ɵ5 = function () {
|
|
24
|
+
this._origValues = null;
|
|
25
|
+
};
|
|
26
|
+
// TODO: mixin impl is not very typesafe
|
|
27
|
+
// Not needed
|
|
28
|
+
// interface IPrimitiveArray extends IObservableArray {
|
|
29
|
+
// [index: number]: any;
|
|
30
|
+
// parent?: IStructuralObject;
|
|
31
|
+
// parentProperty?: DataProperty;
|
|
32
|
+
// }
|
|
33
|
+
var primitiveArrayMixin = {
|
|
34
|
+
// complexArray will have the following props
|
|
35
|
+
// parent
|
|
36
|
+
// propertyPath
|
|
37
|
+
// parentProperty
|
|
38
|
+
// addedItems - only if modified
|
|
39
|
+
// removedItems - only if modified
|
|
40
|
+
// each complexAspect of any entity within a complexArray
|
|
41
|
+
// will have its own _complexState = "A/M";
|
|
42
|
+
/**
|
|
43
|
+
Primitive arrays are not actually classes, they are objects that mimic arrays. A primitive array is collection of
|
|
44
|
+
primitive types associated with a data property on a single entity or complex object. i.e. customer.invoiceNumbers.
|
|
45
|
+
This collection looks like an array in that the basic methods on arrays such as 'push', 'pop', 'shift', 'unshift', 'splice'
|
|
46
|
+
are all provided as well as several special purpose methods.
|
|
47
|
+
@class {primitiveArray}
|
|
48
|
+
**/
|
|
49
|
+
/**
|
|
50
|
+
An [[Event]] that fires whenever the contents of this array changed. This event
|
|
51
|
+
is fired any time a new entity is attached or added to the EntityManager and happens to belong to this collection.
|
|
52
|
+
Adds that occur as a result of query or import operations are batched so that all of the adds or removes to any individual
|
|
53
|
+
collections are collected into a single notification event for each relation array.
|
|
54
|
+
@example
|
|
55
|
+
// assume order is an order entity attached to an EntityManager.
|
|
56
|
+
orders.arrayChanged.subscribe(
|
|
57
|
+
function (arrayChangedArgs) {
|
|
58
|
+
let addedEntities = arrayChangedArgs.added;
|
|
59
|
+
let removedEntities = arrayChanged.removed;
|
|
60
|
+
});
|
|
61
|
+
@event arrayChanged
|
|
62
|
+
@param added {Array of Primitives} An array of all of the items added to this collection.
|
|
63
|
+
@param removed {Array of Primitives} An array of all of the items removed from this collection.
|
|
64
|
+
@readOnly
|
|
65
|
+
**/
|
|
66
|
+
// virtual impls
|
|
67
|
+
_getGoodAdds: ɵ0,
|
|
68
|
+
_beforeChange: ɵ1,
|
|
69
|
+
_processAdds: ɵ2,
|
|
70
|
+
_processRemoves: ɵ3,
|
|
71
|
+
_rejectChanges: ɵ4,
|
|
72
|
+
_acceptChanges: ɵ5
|
|
73
|
+
};
|
|
74
|
+
// local functions
|
|
75
|
+
/** For use by breeze plugin authors only. The class is for use in building a [[IModelLibraryAdapter]] implementation.
|
|
76
|
+
@adapter (see [[IModelLibraryAdapter]])
|
|
77
|
+
@hidden
|
|
78
|
+
*/
|
|
79
|
+
export function makePrimitiveArray(arr, parent, parentProperty) {
|
|
80
|
+
var arrX = arr;
|
|
81
|
+
observableArray.initializeParent(arrX, parent, parentProperty);
|
|
82
|
+
arrX.arrayChanged = new BreezeEvent("arrayChanged", arrX);
|
|
83
|
+
core.extend(arrX, observableArray.mixin);
|
|
84
|
+
return core.extend(arrX, primitiveArrayMixin);
|
|
85
|
+
}
|
|
86
|
+
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5 };
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLWFycmF5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9wcmltaXRpdmUtYXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRyxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztTQW1EckIsVUFBUyxJQUFXO0lBQ2pDLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxPQUVjO0lBQ2IsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFDLElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUMxQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7S0FDNUI7SUFDRCxJQUFJLFlBQVksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQzlELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNsQztBQUNILENBQUMsT0FFYSxVQUFTLElBQVc7SUFDaEMsaUJBQWlCO0FBQ25CLENBQUMsT0FFZ0IsVUFBUyxPQUFjO0lBQ3RDLGtCQUFrQjtBQUNwQixDQUFDLE9BR2U7SUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7UUFBRSxPQUFPO0lBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3JELENBQUMsT0FFZTtJQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQzFCLENBQUM7QUE5RUgsd0NBQXdDO0FBRXhDLGFBQWE7QUFDYix1REFBdUQ7QUFDdkQsMEJBQTBCO0FBQzFCLGdDQUFnQztBQUNoQyxtQ0FBbUM7QUFDbkMsSUFBSTtBQUVKLElBQUksbUJBQW1CLEdBQUc7SUFFeEIsNkNBQTZDO0lBQzdDLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsb0JBQW9CO0lBQ3BCLG9DQUFvQztJQUNwQyxzQ0FBc0M7SUFDdEMsMERBQTBEO0lBQzFELDRDQUE0QztJQUU1Qzs7Ozs7O09BTUc7SUFFSDs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUVELGdCQUFnQjtJQUNsQixZQUFZLElBRVg7SUFFRCxhQUFhLElBUVo7SUFFRCxZQUFZLElBRVg7SUFFRCxlQUFlLElBRWQ7SUFHRCxjQUFjLElBSWI7SUFFRCxjQUFjLElBRWI7Q0FDRixDQUFDO0FBQ0Esa0JBQWtCO0FBRXBCOzs7RUFHRTtBQUNGLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxHQUFVLEVBQUUsTUFBd0IsRUFBRSxjQUE0QjtJQUNuRyxJQUFJLElBQUksR0FBRyxHQUFVLENBQUM7SUFDdEIsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDL0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29yZSAgfSBmcm9tICcuL2NvcmUnO1xyXG5pbXBvcnQgeyBvYnNlcnZhYmxlQXJyYXkgfSBmcm9tICcuL29ic2VydmFibGUtYXJyYXknO1xyXG5pbXBvcnQgeyBCcmVlemVFdmVudCB9IGZyb20gJy4vZXZlbnQnO1xyXG5pbXBvcnQgeyBTdHJ1Y3R1cmFsT2JqZWN0IH0gZnJvbSAnLi9lbnRpdHktYXNwZWN0JztcclxuaW1wb3J0IHsgRGF0YVByb3BlcnR5IH0gZnJvbSAnLi9lbnRpdHktbWV0YWRhdGEnO1xyXG5cclxuLy8gVE9ETzogbWl4aW4gaW1wbCBpcyBub3QgdmVyeSB0eXBlc2FmZVxyXG5cclxuLy8gTm90IG5lZWRlZFxyXG4vLyBpbnRlcmZhY2UgSVByaW1pdGl2ZUFycmF5IGV4dGVuZHMgSU9ic2VydmFibGVBcnJheSB7XHJcbi8vICAgW2luZGV4OiBudW1iZXJdOiBhbnk7XHJcbi8vICAgcGFyZW50PzogSVN0cnVjdHVyYWxPYmplY3Q7XHJcbi8vICAgcGFyZW50UHJvcGVydHk/OiBEYXRhUHJvcGVydHk7XHJcbi8vIH1cclxuXHJcbmxldCBwcmltaXRpdmVBcnJheU1peGluID0ge1xyXG5cclxuICAvLyBjb21wbGV4QXJyYXkgd2lsbCBoYXZlIHRoZSBmb2xsb3dpbmcgcHJvcHNcclxuICAvLyAgICBwYXJlbnRcclxuICAvLyAgICBwcm9wZXJ0eVBhdGhcclxuICAvLyAgICBwYXJlbnRQcm9wZXJ0eVxyXG4gIC8vICAgIGFkZGVkSXRlbXMgIC0gb25seSBpZiBtb2RpZmllZFxyXG4gIC8vICAgIHJlbW92ZWRJdGVtcyAgLSBvbmx5IGlmIG1vZGlmaWVkXHJcbiAgLy8gIGVhY2ggY29tcGxleEFzcGVjdCBvZiBhbnkgZW50aXR5IHdpdGhpbiBhIGNvbXBsZXhBcnJheVxyXG4gIC8vICB3aWxsIGhhdmUgaXRzIG93biBfY29tcGxleFN0YXRlID0gXCJBL01cIjtcclxuXHJcbiAgLyoqXHJcbiAgUHJpbWl0aXZlIGFycmF5cyBhcmUgbm90IGFjdHVhbGx5IGNsYXNzZXMsIHRoZXkgYXJlIG9iamVjdHMgdGhhdCBtaW1pYyBhcnJheXMuIEEgcHJpbWl0aXZlIGFycmF5IGlzIGNvbGxlY3Rpb24gb2ZcclxuICBwcmltaXRpdmUgdHlwZXMgYXNzb2NpYXRlZCB3aXRoIGEgZGF0YSBwcm9wZXJ0eSBvbiBhIHNpbmdsZSBlbnRpdHkgb3IgY29tcGxleCBvYmplY3QuIGkuZS4gY3VzdG9tZXIuaW52b2ljZU51bWJlcnMuXHJcbiAgVGhpcyBjb2xsZWN0aW9uIGxvb2tzIGxpa2UgYW4gYXJyYXkgaW4gdGhhdCB0aGUgYmFzaWMgbWV0aG9kcyBvbiBhcnJheXMgc3VjaCBhcyAncHVzaCcsICdwb3AnLCAnc2hpZnQnLCAndW5zaGlmdCcsICdzcGxpY2UnXHJcbiAgYXJlIGFsbCBwcm92aWRlZCBhcyB3ZWxsIGFzIHNldmVyYWwgc3BlY2lhbCBwdXJwb3NlIG1ldGhvZHMuXHJcbiAgQGNsYXNzIHtwcmltaXRpdmVBcnJheX1cclxuICAqKi9cclxuXHJcbiAgLyoqXHJcbiAgQW4gW1tFdmVudF1dIHRoYXQgZmlyZXMgd2hlbmV2ZXIgdGhlIGNvbnRlbnRzIG9mIHRoaXMgYXJyYXkgY2hhbmdlZC4gIFRoaXMgZXZlbnRcclxuICBpcyBmaXJlZCBhbnkgdGltZSBhIG5ldyBlbnRpdHkgaXMgYXR0YWNoZWQgb3IgYWRkZWQgdG8gdGhlIEVudGl0eU1hbmFnZXIgYW5kIGhhcHBlbnMgdG8gYmVsb25nIHRvIHRoaXMgY29sbGVjdGlvbi5cclxuICBBZGRzIHRoYXQgb2NjdXIgYXMgYSByZXN1bHQgb2YgcXVlcnkgb3IgaW1wb3J0IG9wZXJhdGlvbnMgYXJlIGJhdGNoZWQgc28gdGhhdCBhbGwgb2YgdGhlIGFkZHMgb3IgcmVtb3ZlcyB0byBhbnkgaW5kaXZpZHVhbFxyXG4gIGNvbGxlY3Rpb25zIGFyZSBjb2xsZWN0ZWQgaW50byBhIHNpbmdsZSBub3RpZmljYXRpb24gZXZlbnQgZm9yIGVhY2ggcmVsYXRpb24gYXJyYXkuXHJcbiAgQGV4YW1wbGVcclxuICAgICAgLy8gYXNzdW1lIG9yZGVyIGlzIGFuIG9yZGVyIGVudGl0eSBhdHRhY2hlZCB0byBhbiBFbnRpdHlNYW5hZ2VyLlxyXG4gICAgICBvcmRlcnMuYXJyYXlDaGFuZ2VkLnN1YnNjcmliZShcclxuICAgICAgZnVuY3Rpb24gKGFycmF5Q2hhbmdlZEFyZ3MpIHtcclxuICAgICAgICAgIGxldCBhZGRlZEVudGl0aWVzID0gYXJyYXlDaGFuZ2VkQXJncy5hZGRlZDtcclxuICAgICAgICAgIGxldCByZW1vdmVkRW50aXRpZXMgPSBhcnJheUNoYW5nZWQucmVtb3ZlZDtcclxuICAgICAgfSk7XHJcbiAgQGV2ZW50IGFycmF5Q2hhbmdlZFxyXG4gIEBwYXJhbSBhZGRlZCB7QXJyYXkgb2YgUHJpbWl0aXZlc30gQW4gYXJyYXkgb2YgYWxsIG9mIHRoZSBpdGVtcyBhZGRlZCB0byB0aGlzIGNvbGxlY3Rpb24uXHJcbiAgQHBhcmFtIHJlbW92ZWQge0FycmF5IG9mIFByaW1pdGl2ZXN9IEFuIGFycmF5IG9mIGFsbCBvZiB0aGUgaXRlbXMgcmVtb3ZlZCBmcm9tIHRoaXMgY29sbGVjdGlvbi5cclxuICBAcmVhZE9ubHlcclxuICAqKi9cclxuXHJcbiAgICAvLyB2aXJ0dWFsIGltcGxzXHJcbiAgX2dldEdvb2RBZGRzOiAgZnVuY3Rpb24oYWRkczogYW55W10pIHtcclxuICAgIHJldHVybiBhZGRzO1xyXG4gIH0sXHJcblxyXG4gIF9iZWZvcmVDaGFuZ2U6IGZ1bmN0aW9uKCkge1xyXG4gICAgbGV0IGVudGl0eUFzcGVjdCA9IHRoaXMuZ2V0RW50aXR5QXNwZWN0KCk7XHJcbiAgICBpZiAoZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzVW5jaGFuZ2VkKCkpIHtcclxuICAgICAgZW50aXR5QXNwZWN0LnNldE1vZGlmaWVkKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzTW9kaWZpZWQoKSAmJiAhdGhpcy5fb3JpZ1ZhbHVlcykge1xyXG4gICAgICB0aGlzLl9vcmlnVmFsdWVzID0gdGhpcy5zbGljZSgwKTtcclxuICAgIH1cclxuICB9LFxyXG5cclxuICBfcHJvY2Vzc0FkZHM6IGZ1bmN0aW9uKGFkZHM6IGFueVtdKSB7XHJcbiAgICAvLyBub3RoaW5nIG5lZWRlZFxyXG4gIH0sXHJcblxyXG4gIF9wcm9jZXNzUmVtb3ZlczogZnVuY3Rpb24ocmVtb3ZlczogYW55W10pIHtcclxuICAgIC8vIG5vdGhpbmcgbmVlZGVkO1xyXG4gIH0sXHJcblxyXG5cclxuICBfcmVqZWN0Q2hhbmdlczogZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXRoaXMuX29yaWdWYWx1ZXMpIHJldHVybjtcclxuICAgIHRoaXMubGVuZ3RoID0gMDtcclxuICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMsIHRoaXMuX29yaWdWYWx1ZXMpO1xyXG4gIH0sXHJcblxyXG4gIF9hY2NlcHRDaGFuZ2VzOiBmdW5jdGlvbigpIHtcclxuICAgIHRoaXMuX29yaWdWYWx1ZXMgPSBudWxsO1xyXG4gIH1cclxufTtcclxuICAvLyBsb2NhbCBmdW5jdGlvbnNcclxuXHJcbi8qKiBGb3IgdXNlIGJ5IGJyZWV6ZSBwbHVnaW4gYXV0aG9ycyBvbmx5LiBUaGUgY2xhc3MgaXMgZm9yIHVzZSBpbiBidWlsZGluZyBhIFtbSU1vZGVsTGlicmFyeUFkYXB0ZXJdXSBpbXBsZW1lbnRhdGlvbi4gXHJcbkBhZGFwdGVyIChzZWUgW1tJTW9kZWxMaWJyYXJ5QWRhcHRlcl1dKSAgICBcclxuQGhpZGRlbiBcclxuKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VQcmltaXRpdmVBcnJheShhcnI6IGFueVtdLCBwYXJlbnQ6IFN0cnVjdHVyYWxPYmplY3QsIHBhcmVudFByb3BlcnR5OiBEYXRhUHJvcGVydHkpIHtcclxuICBsZXQgYXJyWCA9IGFyciBhcyBhbnk7XHJcbiAgb2JzZXJ2YWJsZUFycmF5LmluaXRpYWxpemVQYXJlbnQoYXJyWCwgcGFyZW50LCBwYXJlbnRQcm9wZXJ0eSk7XHJcbiAgYXJyWC5hcnJheUNoYW5nZWQgPSBuZXcgQnJlZXplRXZlbnQoXCJhcnJheUNoYW5nZWRcIiwgYXJyWCk7XHJcbiAgY29yZS5leHRlbmQoYXJyWCwgb2JzZXJ2YWJsZUFycmF5Lm1peGluKTtcclxuICByZXR1cm4gY29yZS5leHRlbmQoYXJyWCwgcHJpbWl0aXZlQXJyYXlNaXhpbik7XHJcbn1cclxuXHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { __extends } from "tslib";
|
|
2
|
+
import { core } from './core';
|
|
3
|
+
import { BreezeEnum } from './enum';
|
|
4
|
+
import { assertConfig } from './assert-param';
|
|
5
|
+
/**
|
|
6
|
+
MergeStrategy is an 'Enum' that determines how entities are merged into an EntityManager.
|
|
7
|
+
|
|
8
|
+
@class MergeStrategy
|
|
9
|
+
@static
|
|
10
|
+
**/
|
|
11
|
+
var MergeStrategy = /** @class */ (function (_super) {
|
|
12
|
+
__extends(MergeStrategy, _super);
|
|
13
|
+
function MergeStrategy() {
|
|
14
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
MergeStrategy.PreserveChanges updates the cached entity with the incoming values unless the cached entity is in a changed
|
|
18
|
+
state (added, modified, deleted) in which case the incoming values are ignored. The updated cached entity’s EntityState will
|
|
19
|
+
remain [[EntityState.Unchanged]] unless you’re importing entities in which case the new EntityState will
|
|
20
|
+
be that of the imported entities.
|
|
21
|
+
**/
|
|
22
|
+
MergeStrategy.PreserveChanges = new MergeStrategy();
|
|
23
|
+
/**
|
|
24
|
+
MergeStrategy.OverwriteChanges always updates the cached entity with incoming values even if the entity is in
|
|
25
|
+
a changed state (added, modified, deleted). After the merge, the pending changes are lost.
|
|
26
|
+
The new EntityState will be [[EntityState/Unchanged]] unless you’re importing entities
|
|
27
|
+
in which case the new EntityState will be that of the imported entities.
|
|
28
|
+
**/
|
|
29
|
+
MergeStrategy.OverwriteChanges = new MergeStrategy();
|
|
30
|
+
/**
|
|
31
|
+
SkipMerge is used to ignore incoming values. Adds the incoming entity to the cache only if there is no cached entity with the same key.
|
|
32
|
+
This is the fastest merge strategy but your existing cached data will remain “stale”.
|
|
33
|
+
**/
|
|
34
|
+
MergeStrategy.SkipMerge = new MergeStrategy();
|
|
35
|
+
/**
|
|
36
|
+
Disallowed is used to throw an exception if there is an incoming entity with the same key as an entity already in the cache.
|
|
37
|
+
Use this strategy when you want to be sure that the incoming entity is not already in cache.
|
|
38
|
+
This is the default strategy for EntityManager.attachEntity.
|
|
39
|
+
**/
|
|
40
|
+
MergeStrategy.Disallowed = new MergeStrategy();
|
|
41
|
+
return MergeStrategy;
|
|
42
|
+
}(BreezeEnum));
|
|
43
|
+
export { MergeStrategy };
|
|
44
|
+
MergeStrategy.prototype._$typeName = "MergeStrategy";
|
|
45
|
+
Error['x'] = MergeStrategy.resolveSymbols();
|
|
46
|
+
/**
|
|
47
|
+
FetchStrategy is an 'Enum' that determines how and where entities are retrieved from as a result of a query.
|
|
48
|
+
**/
|
|
49
|
+
var FetchStrategy = /** @class */ (function (_super) {
|
|
50
|
+
__extends(FetchStrategy, _super);
|
|
51
|
+
function FetchStrategy() {
|
|
52
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
FromServer is used to tell the query to execute the query against a remote data source on the server.
|
|
56
|
+
**/
|
|
57
|
+
FetchStrategy.FromServer = new FetchStrategy();
|
|
58
|
+
/**
|
|
59
|
+
FromLocalCache is used to tell the query to execute the query against a local EntityManager instead of going to a remote server.
|
|
60
|
+
**/
|
|
61
|
+
FetchStrategy.FromLocalCache = new FetchStrategy();
|
|
62
|
+
return FetchStrategy;
|
|
63
|
+
}(BreezeEnum));
|
|
64
|
+
export { FetchStrategy };
|
|
65
|
+
FetchStrategy.prototype._$typeName = "FetchStrategy";
|
|
66
|
+
Error['x'] = FetchStrategy.resolveSymbols();
|
|
67
|
+
/**
|
|
68
|
+
A QueryOptions instance is used to specify the 'options' under which a query will occur.
|
|
69
|
+
**/
|
|
70
|
+
var QueryOptions = /** @class */ (function () {
|
|
71
|
+
/**
|
|
72
|
+
QueryOptions constructor
|
|
73
|
+
> var newQo = new QueryOptions( { mergeStrategy: MergeStrategy.OverwriteChanges });
|
|
74
|
+
> // assume em1 is a preexisting EntityManager
|
|
75
|
+
> em1.setProperties( { queryOptions: newQo });
|
|
76
|
+
Any QueryOptions property that is not defined will be defaulted from any QueryOptions defined at a higher level in the breeze hierarchy, i.e.
|
|
77
|
+
- from query.queryOptions
|
|
78
|
+
- to entityManager.queryOptions
|
|
79
|
+
- to QueryOptions.defaultInstance;
|
|
80
|
+
|
|
81
|
+
@param config - A configuration object.
|
|
82
|
+
**/
|
|
83
|
+
function QueryOptions(config) {
|
|
84
|
+
QueryOptions._updateWithConfig(this, config);
|
|
85
|
+
}
|
|
86
|
+
QueryOptions.resolve = function (queryOptionsArray) {
|
|
87
|
+
return new QueryOptions(core.resolveProperties(queryOptionsArray, ["fetchStrategy", "mergeStrategy", "includeDeleted"]));
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
Returns a copy of this QueryOptions with the specified [[MergeStrategy]],
|
|
91
|
+
[[FetchStrategy]], or 'includeDeleted' option applied.
|
|
92
|
+
> // Given an EntityManager instance, em
|
|
93
|
+
> var queryOptions = em.queryOptions.using(MergeStrategy.PreserveChanges);
|
|
94
|
+
|
|
95
|
+
or
|
|
96
|
+
> var queryOptions = em.queryOptions.using(FetchStrategy.FromLocalCache);
|
|
97
|
+
|
|
98
|
+
or
|
|
99
|
+
> var queryOptions = em.queryOptions.using({ mergeStrategy: MergeStrategy.OverwriteChanges });
|
|
100
|
+
|
|
101
|
+
or
|
|
102
|
+
> var queryOptions = em.queryOptions.using({
|
|
103
|
+
> includeDeleted: true,
|
|
104
|
+
> fetchStrategy: FetchStrategy.FromLocalCache
|
|
105
|
+
> });
|
|
106
|
+
@param config - A configuration object or a standalone [[MergeStrategy]] or [[FetchStrategy]]
|
|
107
|
+
@return A new QueryOptions instance.
|
|
108
|
+
**/
|
|
109
|
+
QueryOptions.prototype.using = function (qoConfig) {
|
|
110
|
+
if (!qoConfig)
|
|
111
|
+
return this;
|
|
112
|
+
var result = new QueryOptions(this);
|
|
113
|
+
if (qoConfig instanceof MergeStrategy) {
|
|
114
|
+
qoConfig = { mergeStrategy: qoConfig };
|
|
115
|
+
}
|
|
116
|
+
else if (qoConfig instanceof FetchStrategy) {
|
|
117
|
+
qoConfig = { fetchStrategy: qoConfig };
|
|
118
|
+
}
|
|
119
|
+
return QueryOptions._updateWithConfig(result, qoConfig);
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance.
|
|
123
|
+
The current instance is returned unchanged.
|
|
124
|
+
> var newQo = new QueryOptions( { mergeStrategy: MergeStrategy.OverwriteChanges });
|
|
125
|
+
> newQo.setAsDefault();
|
|
126
|
+
**/
|
|
127
|
+
QueryOptions.prototype.setAsDefault = function () {
|
|
128
|
+
return core.setAsDefault(this, QueryOptions);
|
|
129
|
+
};
|
|
130
|
+
QueryOptions.prototype.toJSON = function () {
|
|
131
|
+
return core.toJson(this, {
|
|
132
|
+
fetchStrategy: null,
|
|
133
|
+
mergeStrategy: null,
|
|
134
|
+
includeDeleted: false
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
QueryOptions.fromJSON = function (json) {
|
|
138
|
+
return new QueryOptions({
|
|
139
|
+
fetchStrategy: FetchStrategy.fromName(json.fetchStrategy),
|
|
140
|
+
mergeStrategy: MergeStrategy.fromName(json.mergeStrategy),
|
|
141
|
+
includeDeleted: json.includeDeleted === true
|
|
142
|
+
});
|
|
143
|
+
};
|
|
144
|
+
/** @hidden @internal */
|
|
145
|
+
QueryOptions._updateWithConfig = function (obj, config) {
|
|
146
|
+
if (config) {
|
|
147
|
+
assertConfig(config)
|
|
148
|
+
.whereParam("fetchStrategy").isEnumOf(FetchStrategy).isOptional()
|
|
149
|
+
.whereParam("mergeStrategy").isEnumOf(MergeStrategy).isOptional()
|
|
150
|
+
.whereParam("includeDeleted").isBoolean().isOptional()
|
|
151
|
+
.applyAll(obj);
|
|
152
|
+
}
|
|
153
|
+
return obj;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
The default instance for use whenever QueryOptions are not specified.
|
|
157
|
+
**/
|
|
158
|
+
QueryOptions.defaultInstance = new QueryOptions({
|
|
159
|
+
fetchStrategy: FetchStrategy.FromServer,
|
|
160
|
+
mergeStrategy: MergeStrategy.PreserveChanges,
|
|
161
|
+
includeDeleted: false
|
|
162
|
+
});
|
|
163
|
+
return QueryOptions;
|
|
164
|
+
}());
|
|
165
|
+
export { QueryOptions };
|
|
166
|
+
QueryOptions.prototype._$typeName = "QueryOptions";
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2JyZWV6ZS1jbGllbnQvIiwic291cmNlcyI6WyJzcmMvcXVlcnktb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5Qzs7Ozs7R0FLRztBQUNIO0lBQW1DLGlDQUFVO0lBQTdDOztJQStCQSxDQUFDO0lBN0JDOzs7OztPQUtHO0lBQ0ksNkJBQWUsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQzdDOzs7OztPQUtHO0lBQ0ksOEJBQWdCLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUU5Qzs7O09BR0c7SUFDSSx1QkFBUyxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7SUFFdkM7Ozs7T0FJRztJQUNJLHdCQUFVLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUcxQyxvQkFBQztDQUFBLEFBL0JELENBQW1DLFVBQVUsR0ErQjVDO1NBL0JZLGFBQWE7QUFnQzFCLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQztBQUNyRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLGNBQWMsRUFBRSxDQUFDO0FBRTVDOztHQUVHO0FBQ0g7SUFBbUMsaUNBQVU7SUFBN0M7O0lBV0EsQ0FBQztJQVRDOztPQUVHO0lBQ0ksd0JBQVUsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQ3hDOztPQUVHO0lBQ0ksNEJBQWMsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBRTlDLG9CQUFDO0NBQUEsQUFYRCxDQUFtQyxVQUFVLEdBVzVDO1NBWFksYUFBYTtBQVkxQixhQUFhLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUM7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cmUgfSBmcm9tICcuL2NvcmUnO1xyXG5pbXBvcnQgeyBCcmVlemVFbnVtIH0gZnJvbSAnLi9lbnVtJztcclxuaW1wb3J0IHsgYXNzZXJ0Q29uZmlnIH0gZnJvbSAnLi9hc3NlcnQtcGFyYW0nO1xyXG5cclxuLyoqXHJcbk1lcmdlU3RyYXRlZ3kgaXMgYW4gJ0VudW0nIHRoYXQgZGV0ZXJtaW5lcyBob3cgZW50aXRpZXMgYXJlIG1lcmdlZCBpbnRvIGFuIEVudGl0eU1hbmFnZXIuXHJcblxyXG5AY2xhc3MgTWVyZ2VTdHJhdGVneVxyXG5Ac3RhdGljXHJcbioqL1xyXG5leHBvcnQgY2xhc3MgTWVyZ2VTdHJhdGVneSBleHRlbmRzIEJyZWV6ZUVudW0ge1xyXG5cclxuICAvKipcclxuICBNZXJnZVN0cmF0ZWd5LlByZXNlcnZlQ2hhbmdlcyB1cGRhdGVzIHRoZSBjYWNoZWQgZW50aXR5IHdpdGggdGhlIGluY29taW5nIHZhbHVlcyB1bmxlc3MgdGhlIGNhY2hlZCBlbnRpdHkgaXMgaW4gYSBjaGFuZ2VkXHJcbiAgc3RhdGUgKGFkZGVkLCBtb2RpZmllZCwgZGVsZXRlZCkgaW4gd2hpY2ggY2FzZSB0aGUgaW5jb21pbmcgdmFsdWVzIGFyZSBpZ25vcmVkLiBUaGUgdXBkYXRlZCBjYWNoZWQgZW50aXR54oCZcyBFbnRpdHlTdGF0ZSB3aWxsXHJcbiAgcmVtYWluIFtbRW50aXR5U3RhdGUuVW5jaGFuZ2VkXV0gdW5sZXNzIHlvdeKAmXJlIGltcG9ydGluZyBlbnRpdGllcyBpbiB3aGljaCBjYXNlIHRoZSBuZXcgRW50aXR5U3RhdGUgd2lsbFxyXG4gIGJlIHRoYXQgb2YgdGhlIGltcG9ydGVkIGVudGl0aWVzLlxyXG4gICoqL1xyXG4gIHN0YXRpYyBQcmVzZXJ2ZUNoYW5nZXMgPSBuZXcgTWVyZ2VTdHJhdGVneSgpO1xyXG4gIC8qKlxyXG4gIE1lcmdlU3RyYXRlZ3kuT3ZlcndyaXRlQ2hhbmdlcyBhbHdheXMgdXBkYXRlcyB0aGUgY2FjaGVkIGVudGl0eSB3aXRoIGluY29taW5nIHZhbHVlcyBldmVuIGlmIHRoZSBlbnRpdHkgaXMgaW5cclxuICBhIGNoYW5nZWQgc3RhdGUgKGFkZGVkLCBtb2RpZmllZCwgZGVsZXRlZCkuIEFmdGVyIHRoZSBtZXJnZSwgdGhlIHBlbmRpbmcgY2hhbmdlcyBhcmUgbG9zdC5cclxuICBUaGUgbmV3IEVudGl0eVN0YXRlIHdpbGwgYmUgIFtbRW50aXR5U3RhdGUvVW5jaGFuZ2VkXV0gdW5sZXNzIHlvdeKAmXJlIGltcG9ydGluZyBlbnRpdGllc1xyXG4gIGluIHdoaWNoIGNhc2UgdGhlIG5ldyBFbnRpdHlTdGF0ZSB3aWxsIGJlIHRoYXQgb2YgdGhlIGltcG9ydGVkIGVudGl0aWVzLlxyXG4gICoqL1xyXG4gIHN0YXRpYyBPdmVyd3JpdGVDaGFuZ2VzID0gbmV3IE1lcmdlU3RyYXRlZ3koKTtcclxuXHJcbiAgLyoqXHJcbiAgU2tpcE1lcmdlIGlzIHVzZWQgdG8gaWdub3JlIGluY29taW5nIHZhbHVlcy4gQWRkcyB0aGUgaW5jb21pbmcgZW50aXR5IHRvIHRoZSBjYWNoZSBvbmx5IGlmIHRoZXJlIGlzIG5vIGNhY2hlZCBlbnRpdHkgd2l0aCB0aGUgc2FtZSBrZXkuXHJcbiAgVGhpcyBpcyB0aGUgZmFzdGVzdCBtZXJnZSBzdHJhdGVneSBidXQgeW91ciBleGlzdGluZyBjYWNoZWQgZGF0YSB3aWxsIHJlbWFpbiDigJxzdGFsZeKAnS5cclxuICAqKi9cclxuICBzdGF0aWMgU2tpcE1lcmdlID0gbmV3IE1lcmdlU3RyYXRlZ3koKTtcclxuXHJcbiAgLyoqXHJcbiAgRGlzYWxsb3dlZCBpcyB1c2VkIHRvIHRocm93IGFuIGV4Y2VwdGlvbiBpZiB0aGVyZSBpcyBhbiBpbmNvbWluZyBlbnRpdHkgd2l0aCB0aGUgc2FtZSBrZXkgYXMgYW4gZW50aXR5IGFscmVhZHkgaW4gdGhlIGNhY2hlLlxyXG4gIFVzZSB0aGlzIHN0cmF0ZWd5IHdoZW4geW91IHdhbnQgdG8gYmUgc3VyZSB0aGF0IHRoZSBpbmNvbWluZyBlbnRpdHkgaXMgbm90IGFscmVhZHkgaW4gY2FjaGUuXHJcbiAgVGhpcyBpcyB0aGUgZGVmYXVsdCBzdHJhdGVneSBmb3IgRW50aXR5TWFuYWdlci5hdHRhY2hFbnRpdHkuXHJcbiAgKiovXHJcbiAgc3RhdGljIERpc2FsbG93ZWQgPSBuZXcgTWVyZ2VTdHJhdGVneSgpO1xyXG5cclxuXHJcbn1cclxuTWVyZ2VTdHJhdGVneS5wcm90b3R5cGUuXyR0eXBlTmFtZSA9IFwiTWVyZ2VTdHJhdGVneVwiO1xyXG5FcnJvclsneCddID0gTWVyZ2VTdHJhdGVneS5yZXNvbHZlU3ltYm9scygpO1xyXG5cclxuLyoqXHJcbkZldGNoU3RyYXRlZ3kgaXMgYW4gJ0VudW0nIHRoYXQgZGV0ZXJtaW5lcyBob3cgYW5kIHdoZXJlIGVudGl0aWVzIGFyZSByZXRyaWV2ZWQgZnJvbSBhcyBhIHJlc3VsdCBvZiBhIHF1ZXJ5LlxyXG4qKi9cclxuZXhwb3J0IGNsYXNzIEZldGNoU3RyYXRlZ3kgZXh0ZW5kcyBCcmVlemVFbnVtIHtcclxuXHJcbiAgLyoqXHJcbiAgRnJvbVNlcnZlciBpcyB1c2VkIHRvIHRlbGwgdGhlIHF1ZXJ5IHRvIGV4ZWN1dGUgdGhlIHF1ZXJ5IGFnYWluc3QgYSByZW1vdGUgZGF0YSBzb3VyY2Ugb24gdGhlIHNlcnZlci5cclxuICAqKi9cclxuICBzdGF0aWMgRnJvbVNlcnZlciA9IG5ldyBGZXRjaFN0cmF0ZWd5KCk7XHJcbiAgLyoqXHJcbiAgRnJvbUxvY2FsQ2FjaGUgaXMgdXNlZCB0byB0ZWxsIHRoZSBxdWVyeSB0byBleGVjdXRlIHRoZSBxdWVyeSBhZ2FpbnN0IGEgbG9jYWwgRW50aXR5TWFuYWdlciBpbnN0ZWFkIG9mIGdvaW5nIHRvIGEgcmVtb3RlIHNlcnZlci5cclxuICAqKi9cclxuICBzdGF0aWMgRnJvbUxvY2FsQ2FjaGUgPSBuZXcgRmV0Y2hTdHJhdGVneSgpO1xyXG5cclxufVxyXG5GZXRjaFN0cmF0ZWd5LnByb3RvdHlwZS5fJHR5cGVOYW1lID0gXCJGZXRjaFN0cmF0ZWd5XCI7XHJcbkVycm9yWyd4J10gPSBGZXRjaFN0cmF0ZWd5LnJlc29sdmVTeW1ib2xzKCk7XHJcblxyXG4vKiogQ29uZmlndXJhdGlvbiBpbmZvIHRvIGJlIHBhc3NlZCB0byB0aGUgW1tRdWVyeU9wdGlvbnNdXSBjb25zdHJ1Y3Rvci4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBRdWVyeU9wdGlvbnNDb25maWcge1xyXG4gIC8qKiBUaGUgW1tGZXRjaFN0cmF0ZWd5XV0gdG8gdXNlIHdpdGggYW55IHF1ZXJpZXMuKi9cclxuICBmZXRjaFN0cmF0ZWd5PzogRmV0Y2hTdHJhdGVneTtcclxuICAvKiogVGhlIFtbTWVyZ2VTdHJhdGVneV1dIHRvIHVzZSB3aXRoIGFueSBxdWVyaWVzLiovXHJcbiAgbWVyZ2VTdHJhdGVneT86IE1lcmdlU3RyYXRlZ3k7XHJcbiAgLyoqIFdoZXRoZXIgdG8gaW5jbHVkZSBjYWNoZWQgZGVsZXRlZCBlbnRpdGllcyBpbiBhIHF1ZXJ5IHJlc3VsdCAoZmFsc2UgYnkgZGVmYXVsdCkuIF9fUmVhZCBPbmx5X18gKi9cclxuICBpbmNsdWRlRGVsZXRlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG5BIFF1ZXJ5T3B0aW9ucyBpbnN0YW5jZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlICdvcHRpb25zJyB1bmRlciB3aGljaCBhIHF1ZXJ5IHdpbGwgb2NjdXIuXHJcbioqL1xyXG5leHBvcnQgY2xhc3MgUXVlcnlPcHRpb25zIHtcclxuICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuICBfJHR5cGVOYW1lOiBzdHJpbmc7XHJcbiAgLyoqIFRoZSBbW0ZldGNoU3RyYXRlZ3ldXSB0byB1c2Ugd2l0aCBhbnkgcXVlcmllcy4gX19SZWFkIE9ubHlfXyAqL1xyXG4gIGZldGNoU3RyYXRlZ3k6IEZldGNoU3RyYXRlZ3k7XHJcbiAgLyoqIFRoZSBbW01lcmdlU3RyYXRlZ3ldXSB0byB1c2Ugd2l0aCBhbnkgcXVlcmllcy4gX19SZWFkIE9ubHlfXyAqL1xyXG4gIG1lcmdlU3RyYXRlZ3k6IE1lcmdlU3RyYXRlZ3k7XHJcbiAgLyoqIFdoZXRoZXIgdG8gaW5jbHVkZSBjYWNoZWQgZGVsZXRlZCBlbnRpdGllcyBpbiBhIHF1ZXJ5IHJlc3VsdCAoZmFsc2UgYnkgZGVmYXVsdCkuIF9fUmVhZCBPbmx5X18gKi9cclxuICBpbmNsdWRlRGVsZXRlZDogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgVGhlIGRlZmF1bHQgaW5zdGFuY2UgZm9yIHVzZSB3aGVuZXZlciBRdWVyeU9wdGlvbnMgYXJlIG5vdCBzcGVjaWZpZWQuXHJcbiAgKiovXHJcbiAgc3RhdGljIGRlZmF1bHRJbnN0YW5jZSA9IG5ldyBRdWVyeU9wdGlvbnMoe1xyXG4gICAgZmV0Y2hTdHJhdGVneTogRmV0Y2hTdHJhdGVneS5Gcm9tU2VydmVyLFxyXG4gICAgbWVyZ2VTdHJhdGVneTogTWVyZ2VTdHJhdGVneS5QcmVzZXJ2ZUNoYW5nZXMsXHJcbiAgICBpbmNsdWRlRGVsZXRlZDogZmFsc2VcclxuICB9KTtcclxuXHJcbiAgLyoqXHJcbiAgUXVlcnlPcHRpb25zIGNvbnN0cnVjdG9yXHJcbiAgPiAgICAgdmFyIG5ld1FvID0gbmV3IFF1ZXJ5T3B0aW9ucyggeyBtZXJnZVN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5Lk92ZXJ3cml0ZUNoYW5nZXMgfSk7XHJcbiAgPiAgICAgLy8gYXNzdW1lIGVtMSBpcyBhIHByZWV4aXN0aW5nIEVudGl0eU1hbmFnZXJcclxuICA+ICAgICBlbTEuc2V0UHJvcGVydGllcyggeyBxdWVyeU9wdGlvbnM6IG5ld1FvIH0pO1xyXG4gIEFueSBRdWVyeU9wdGlvbnMgcHJvcGVydHkgdGhhdCBpcyBub3QgZGVmaW5lZCB3aWxsIGJlIGRlZmF1bHRlZCBmcm9tIGFueSBRdWVyeU9wdGlvbnMgZGVmaW5lZCBhdCBhIGhpZ2hlciBsZXZlbCBpbiB0aGUgYnJlZXplIGhpZXJhcmNoeSwgaS5lLlxyXG4gIC0gIGZyb20gcXVlcnkucXVlcnlPcHRpb25zXHJcbiAgLSAgdG8gICBlbnRpdHlNYW5hZ2VyLnF1ZXJ5T3B0aW9uc1xyXG4gIC0gIHRvICAgUXVlcnlPcHRpb25zLmRlZmF1bHRJbnN0YW5jZTtcclxuXHJcbiAgQHBhcmFtIGNvbmZpZyAtIEEgY29uZmlndXJhdGlvbiBvYmplY3QuXHJcbiAgKiovXHJcbiAgY29uc3RydWN0b3IoY29uZmlnPzogUXVlcnlPcHRpb25zQ29uZmlnKSB7XHJcbiAgICBRdWVyeU9wdGlvbnMuX3VwZGF0ZVdpdGhDb25maWcodGhpcywgY29uZmlnKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyByZXNvbHZlKHF1ZXJ5T3B0aW9uc0FycmF5OiBhbnlbXSkge1xyXG4gICAgcmV0dXJuIG5ldyBRdWVyeU9wdGlvbnMoY29yZS5yZXNvbHZlUHJvcGVydGllcyhxdWVyeU9wdGlvbnNBcnJheSwgW1wiZmV0Y2hTdHJhdGVneVwiLCBcIm1lcmdlU3RyYXRlZ3lcIiwgXCJpbmNsdWRlRGVsZXRlZFwiXSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgUmV0dXJucyBhIGNvcHkgb2YgdGhpcyBRdWVyeU9wdGlvbnMgd2l0aCB0aGUgc3BlY2lmaWVkIFtbTWVyZ2VTdHJhdGVneV1dLFxyXG4gIFtbRmV0Y2hTdHJhdGVneV1dLCBvciAnaW5jbHVkZURlbGV0ZWQnIG9wdGlvbiBhcHBsaWVkLlxyXG4gID4gICAgIC8vIEdpdmVuIGFuIEVudGl0eU1hbmFnZXIgaW5zdGFuY2UsIGVtXHJcbiAgPiAgICAgdmFyIHF1ZXJ5T3B0aW9ucyA9IGVtLnF1ZXJ5T3B0aW9ucy51c2luZyhNZXJnZVN0cmF0ZWd5LlByZXNlcnZlQ2hhbmdlcyk7XHJcblxyXG4gIG9yXHJcbiAgPiAgICAgdmFyIHF1ZXJ5T3B0aW9ucyA9IGVtLnF1ZXJ5T3B0aW9ucy51c2luZyhGZXRjaFN0cmF0ZWd5LkZyb21Mb2NhbENhY2hlKTtcclxuXHJcbiAgb3JcclxuICA+ICAgICB2YXIgcXVlcnlPcHRpb25zID0gZW0ucXVlcnlPcHRpb25zLnVzaW5nKHsgbWVyZ2VTdHJhdGVneTogTWVyZ2VTdHJhdGVneS5PdmVyd3JpdGVDaGFuZ2VzIH0pO1xyXG5cclxuICBvclxyXG4gID4gICAgIHZhciBxdWVyeU9wdGlvbnMgPSBlbS5xdWVyeU9wdGlvbnMudXNpbmcoe1xyXG4gID4gICAgICAgIGluY2x1ZGVEZWxldGVkOiB0cnVlLFxyXG4gID4gICAgICAgIGZldGNoU3RyYXRlZ3k6ICBGZXRjaFN0cmF0ZWd5LkZyb21Mb2NhbENhY2hlIFxyXG4gID4gICAgIH0pO1xyXG4gIEBwYXJhbSBjb25maWcgLSBBIGNvbmZpZ3VyYXRpb24gb2JqZWN0IG9yIGEgc3RhbmRhbG9uZSBbW01lcmdlU3RyYXRlZ3ldXSBvciBbW0ZldGNoU3RyYXRlZ3ldXSBcclxuICBAcmV0dXJuIEEgbmV3IFF1ZXJ5T3B0aW9ucyBpbnN0YW5jZS5cclxuICAqKi9cclxuICB1c2luZyhxb0NvbmZpZzogUXVlcnlPcHRpb25zQ29uZmlnIHwgTWVyZ2VTdHJhdGVneSB8IEZldGNoU3RyYXRlZ3kpIHtcclxuICAgIGlmICghcW9Db25maWcpIHJldHVybiB0aGlzO1xyXG4gICAgbGV0IHJlc3VsdCA9IG5ldyBRdWVyeU9wdGlvbnModGhpcyk7XHJcbiAgICBpZiAoIHFvQ29uZmlnIGluc3RhbmNlb2YgTWVyZ2VTdHJhdGVneSkge1xyXG4gICAgICBxb0NvbmZpZyA9IHsgbWVyZ2VTdHJhdGVneTogcW9Db25maWcgfTtcclxuICAgIH0gZWxzZSBpZiAoIHFvQ29uZmlnIGluc3RhbmNlb2YgRmV0Y2hTdHJhdGVneSkge1xyXG4gICAgICBxb0NvbmZpZyA9IHsgZmV0Y2hTdHJhdGVneTogcW9Db25maWcgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBRdWVyeU9wdGlvbnMuX3VwZGF0ZVdpdGhDb25maWcocmVzdWx0LCBxb0NvbmZpZyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICBTZXRzIHRoZSAnZGVmYXVsdEluc3RhbmNlJyBieSBjcmVhdGluZyBhIGNvcHkgb2YgdGhlIGN1cnJlbnQgJ2RlZmF1bHRJbnN0YW5jZScgYW5kIHRoZW4gYXBwbHlpbmcgYWxsIG9mIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlLlxyXG4gIFRoZSBjdXJyZW50IGluc3RhbmNlIGlzIHJldHVybmVkIHVuY2hhbmdlZC5cclxuICA+ICAgICB2YXIgbmV3UW8gPSBuZXcgUXVlcnlPcHRpb25zKCB7IG1lcmdlU3RyYXRlZ3k6IE1lcmdlU3RyYXRlZ3kuT3ZlcndyaXRlQ2hhbmdlcyB9KTtcclxuICA+ICAgICBuZXdRby5zZXRBc0RlZmF1bHQoKTtcclxuICAqKi9cclxuICBzZXRBc0RlZmF1bHQoKSB7XHJcbiAgICByZXR1cm4gY29yZS5zZXRBc0RlZmF1bHQodGhpcywgUXVlcnlPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHRvSlNPTigpIHtcclxuICAgIHJldHVybiBjb3JlLnRvSnNvbih0aGlzLCB7XHJcbiAgICAgIGZldGNoU3RyYXRlZ3k6IG51bGwsXHJcbiAgICAgIG1lcmdlU3RyYXRlZ3k6IG51bGwsXHJcbiAgICAgIGluY2x1ZGVEZWxldGVkOiBmYWxzZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZnJvbUpTT04oanNvbjogYW55KSB7XHJcbiAgICByZXR1cm4gbmV3IFF1ZXJ5T3B0aW9ucyh7XHJcbiAgICAgIGZldGNoU3RyYXRlZ3k6IEZldGNoU3RyYXRlZ3kuZnJvbU5hbWUoanNvbi5mZXRjaFN0cmF0ZWd5KSxcclxuICAgICAgbWVyZ2VTdHJhdGVneTogTWVyZ2VTdHJhdGVneS5mcm9tTmFtZShqc29uLm1lcmdlU3RyYXRlZ3kpLFxyXG4gICAgICBpbmNsdWRlRGVsZXRlZDoganNvbi5pbmNsdWRlRGVsZXRlZCA9PT0gdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuICBwcml2YXRlIHN0YXRpYyBfdXBkYXRlV2l0aENvbmZpZyhvYmo6IFF1ZXJ5T3B0aW9ucywgY29uZmlnPzogUXVlcnlPcHRpb25zQ29uZmlnKSB7XHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIGFzc2VydENvbmZpZyhjb25maWcpXHJcbiAgICAgICAgLndoZXJlUGFyYW0oXCJmZXRjaFN0cmF0ZWd5XCIpLmlzRW51bU9mKEZldGNoU3RyYXRlZ3kpLmlzT3B0aW9uYWwoKVxyXG4gICAgICAgIC53aGVyZVBhcmFtKFwibWVyZ2VTdHJhdGVneVwiKS5pc0VudW1PZihNZXJnZVN0cmF0ZWd5KS5pc09wdGlvbmFsKClcclxuICAgICAgICAud2hlcmVQYXJhbShcImluY2x1ZGVEZWxldGVkXCIpLmlzQm9vbGVhbigpLmlzT3B0aW9uYWwoKVxyXG4gICAgICAgIC5hcHBseUFsbChvYmopO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcblxyXG59XHJcblF1ZXJ5T3B0aW9ucy5wcm90b3R5cGUuXyR0eXBlTmFtZSA9IFwiUXVlcnlPcHRpb25zXCI7XHJcbiJdfQ==
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { core } from './core';
|
|
2
|
+
import { EntityQuery } from './entity-query';
|
|
3
|
+
import { EntityState } from './entity-state';
|
|
4
|
+
import { BreezeEvent } from './event';
|
|
5
|
+
import { observableArray } from './observable-array';
|
|
6
|
+
var ɵ0 = function (callback, errorCallback) {
|
|
7
|
+
var parent = this.parentEntity;
|
|
8
|
+
var query = EntityQuery.fromEntityNavigation(this.parentEntity, this.navigationProperty);
|
|
9
|
+
var em = parent.entityAspect.entityManager;
|
|
10
|
+
return em.executeQuery(query, callback, errorCallback);
|
|
11
|
+
}, ɵ1 = function () {
|
|
12
|
+
return this.parentEntity.entityAspect;
|
|
13
|
+
}, ɵ2 = function () {
|
|
14
|
+
var em = this.parentEntity.entityAspect.entityManager;
|
|
15
|
+
return em && em._pendingPubs;
|
|
16
|
+
}, ɵ3 = function (adds) {
|
|
17
|
+
return getGoodAdds(this, adds);
|
|
18
|
+
}, ɵ4 = function (adds) {
|
|
19
|
+
processAdds(this, adds);
|
|
20
|
+
}, ɵ5 = function (removes) {
|
|
21
|
+
processRemoves(this, removes);
|
|
22
|
+
};
|
|
23
|
+
var relationArrayMixin = {
|
|
24
|
+
/**
|
|
25
|
+
Relation arrays are not actually classes, they are objects that mimic arrays. A relation array is collection of
|
|
26
|
+
entities associated with a navigation property on a single entity. i.e. customer.orders or order.orderDetails.
|
|
27
|
+
This collection looks like an array in that the basic methods on arrays such as 'push', 'pop', 'shift', 'unshift', 'splice'
|
|
28
|
+
are all provided as well as several special purpose methods.
|
|
29
|
+
@class {relationArray}
|
|
30
|
+
**/
|
|
31
|
+
/**
|
|
32
|
+
An [[Event]] that fires whenever the contents of this array changed. This event
|
|
33
|
+
is fired any time a new entity is attached or added to the EntityManager and happens to belong to this collection.
|
|
34
|
+
Adds that occur as a result of query or import operations are batched so that all of the adds or removes to any individual
|
|
35
|
+
collections are collected into a single notification event for each relation array.
|
|
36
|
+
@example
|
|
37
|
+
// assume order is an order entity attached to an EntityManager.
|
|
38
|
+
orders.arrayChanged.subscribe(
|
|
39
|
+
function (arrayChangedArgs) {
|
|
40
|
+
let addedEntities = arrayChangedArgs.added;
|
|
41
|
+
let removedEntities = arrayChanged.removed;
|
|
42
|
+
});
|
|
43
|
+
@event arrayChanged
|
|
44
|
+
@param added {Array of Entity} An array of all of the entities added to this collection.
|
|
45
|
+
@param removed {Array of Entity} An array of all of the removed from this collection.
|
|
46
|
+
@readOnly
|
|
47
|
+
**/
|
|
48
|
+
/**
|
|
49
|
+
Performs an asynchronous load of all other the entities associated with this relationArray.
|
|
50
|
+
@example
|
|
51
|
+
// assume orders is an empty, as yet unpopulated, relation array of orders
|
|
52
|
+
// associated with a specific customer.
|
|
53
|
+
orders.load().then(...)
|
|
54
|
+
@method load
|
|
55
|
+
@param [callback] {Function}
|
|
56
|
+
@param [errorCallback] {Function}
|
|
57
|
+
@return {Promise}
|
|
58
|
+
**/
|
|
59
|
+
load: ɵ0,
|
|
60
|
+
_getEventParent: ɵ1,
|
|
61
|
+
_getPendingPubs: ɵ2,
|
|
62
|
+
// virtual impls
|
|
63
|
+
_getGoodAdds: ɵ3,
|
|
64
|
+
_processAdds: ɵ4,
|
|
65
|
+
_processRemoves: ɵ5
|
|
66
|
+
};
|
|
67
|
+
function getGoodAdds(relationArray, adds) {
|
|
68
|
+
var goodAdds = checkForDups(relationArray, adds);
|
|
69
|
+
if (!goodAdds.length) {
|
|
70
|
+
return goodAdds;
|
|
71
|
+
}
|
|
72
|
+
var parentEntity = relationArray.parentEntity;
|
|
73
|
+
var entityManager = parentEntity.entityAspect.entityManager;
|
|
74
|
+
// we do not want to attach an entity during loading
|
|
75
|
+
// because these will all be 'attached' at a later step.
|
|
76
|
+
if (entityManager && !entityManager.isLoading) {
|
|
77
|
+
goodAdds.forEach(function (add) {
|
|
78
|
+
if (add.entityAspect.entityState.isDetached()) {
|
|
79
|
+
relationArray._inProgress = true;
|
|
80
|
+
try {
|
|
81
|
+
entityManager.attachEntity(add, EntityState.Added);
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
relationArray._inProgress = false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return goodAdds;
|
|
90
|
+
}
|
|
91
|
+
function processAdds(relationArray, adds) {
|
|
92
|
+
var parentEntity = relationArray.parentEntity;
|
|
93
|
+
var np = relationArray.navigationProperty;
|
|
94
|
+
var addsInProcess = relationArray._addsInProcess;
|
|
95
|
+
var invNp = np.inverse;
|
|
96
|
+
var startIx = addsInProcess.length;
|
|
97
|
+
try {
|
|
98
|
+
adds.forEach(function (childEntity) {
|
|
99
|
+
addsInProcess.push(childEntity);
|
|
100
|
+
if (invNp) {
|
|
101
|
+
childEntity.setProperty(invNp.name, parentEntity);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// This occurs with a unidirectional 1-n navigation - in this case
|
|
105
|
+
// we need to update the fks instead of the navProp
|
|
106
|
+
var pks_1 = parentEntity.entityType.keyProperties;
|
|
107
|
+
np.invForeignKeyNames.forEach(function (fk, i) {
|
|
108
|
+
childEntity.setProperty(fk, parentEntity.getProperty(pks_1[i].name));
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
finally {
|
|
114
|
+
addsInProcess.splice(startIx, adds.length);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function processRemoves(relationArray, removes) {
|
|
118
|
+
var inp = relationArray.navigationProperty.inverse;
|
|
119
|
+
if (inp) {
|
|
120
|
+
removes.forEach(function (childEntity) {
|
|
121
|
+
childEntity.setProperty(inp.name, null);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function checkForDups(relationArray, adds) {
|
|
126
|
+
// don't allow dups in this array. - also prevents recursion
|
|
127
|
+
var parentEntity = relationArray.parentEntity;
|
|
128
|
+
var navProp = relationArray.navigationProperty;
|
|
129
|
+
var inverseProp = navProp.inverse;
|
|
130
|
+
var goodAdds;
|
|
131
|
+
if (inverseProp) {
|
|
132
|
+
goodAdds = adds.filter(function (a) {
|
|
133
|
+
if (relationArray._addsInProcess.indexOf(a) >= 0) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
var inverseValue = a.getProperty(inverseProp.name);
|
|
137
|
+
return inverseValue !== parentEntity;
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
// This occurs with a unidirectional 1->N relation ( where there is no n -> 1)
|
|
142
|
+
// in this case we compare fks.
|
|
143
|
+
var fkPropNames_1 = navProp.invForeignKeyNames;
|
|
144
|
+
var keyProps_1 = parentEntity.entityType.keyProperties;
|
|
145
|
+
goodAdds = adds.filter(function (a) {
|
|
146
|
+
if (relationArray._addsInProcess.indexOf(a) >= 0) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
return fkPropNames_1.some(function (fk, i) {
|
|
150
|
+
var keyProp = keyProps_1[i].name;
|
|
151
|
+
var keyVal = parentEntity.getProperty(keyProp);
|
|
152
|
+
var fkVal = a.getProperty(fk);
|
|
153
|
+
return keyVal !== fkVal;
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
return goodAdds;
|
|
158
|
+
}
|
|
159
|
+
/** For use by breeze plugin authors only. The class is for use in building a [[IModelLibraryAdapter]] implementation.
|
|
160
|
+
@adapter (see [[IModelLibraryAdapter]])
|
|
161
|
+
@hidden
|
|
162
|
+
*/
|
|
163
|
+
export function makeRelationArray(arr, parentEntity, navigationProperty) {
|
|
164
|
+
var arrX = arr;
|
|
165
|
+
arrX.parentEntity = parentEntity;
|
|
166
|
+
arrX.navigationProperty = navigationProperty;
|
|
167
|
+
arrX.arrayChanged = new BreezeEvent("arrayChanged", arrX);
|
|
168
|
+
// array of pushes currently in process on this relation array - used to prevent recursion.
|
|
169
|
+
arrX._addsInProcess = [];
|
|
170
|
+
// need to use mixins here instead of inheritance because we are starting from an existing array object.
|
|
171
|
+
core.extend(arrX, observableArray.mixin);
|
|
172
|
+
return core.extend(arrX, relationArrayMixin);
|
|
173
|
+
}
|
|
174
|
+
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5 };
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tYXJyYXkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9icmVlemUtY2xpZW50LyIsInNvdXJjZXMiOlsic3JjL3JlbGF0aW9uLWFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFJOUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3RDLE9BQU8sRUFBbUIsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7U0FzRDlELFVBQVMsUUFBK0IsRUFBRSxhQUFrQztJQUNoRixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQy9CLElBQUksS0FBSyxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pGLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO0lBQzNDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ3pELENBQUMsT0FFZ0I7SUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO0FBQ3hDLENBQUMsT0FFZ0I7SUFDZixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7SUFDdEQsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztBQUMvQixDQUFDLE9BR2EsVUFBUyxJQUFjO0lBQ25DLE9BQU8sV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqQyxDQUFDLE9BRWEsVUFBUyxJQUFjO0lBQ25D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QUU7Z0JBQ2hELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxPQUFPLGFBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxPQUFPLEdBQUcsVUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDL0IsSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUIsT0FBTyxNQUFNLEtBQUssS0FBSyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7O0VBR0U7QUFDRixNQUFNLFVBQVUsaUJBQWlCLENBQUMsR0FBVSxFQUFFLFlBQW9CLEVBQUUsa0JBQXNDO0lBQ3hHLElBQUksSUFBSSxHQUFHLEdBQVUsQ0FBQztJQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNqQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7SUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUQsMkZBQTJGO0lBQzNGLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLHdHQUF3RztJQUN4RyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBa0IsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29yZSB9IGZyb20gJy4vY29yZSc7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vZW50aXR5LWFzcGVjdCc7XHJcbmltcG9ydCB7IFF1ZXJ5RXJyb3JDYWxsYmFjaywgUXVlcnlSZXN1bHQsIFF1ZXJ5U3VjY2Vzc0NhbGxiYWNrIH0gZnJvbSAnLi9lbnRpdHktbWFuYWdlcic7XHJcbmltcG9ydCB7IERhdGFQcm9wZXJ0eSwgTmF2aWdhdGlvblByb3BlcnR5IH0gZnJvbSAnLi9lbnRpdHktbWV0YWRhdGEnO1xyXG5pbXBvcnQgeyBFbnRpdHlRdWVyeSB9IGZyb20gJy4vZW50aXR5LXF1ZXJ5JztcclxuaW1wb3J0IHsgRW50aXR5U3RhdGUgfSBmcm9tICcuL2VudGl0eS1zdGF0ZSc7XHJcbmltcG9ydCB7IEJyZWV6ZUV2ZW50IH0gZnJvbSAnLi9ldmVudCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGVBcnJheSwgb2JzZXJ2YWJsZUFycmF5IH0gZnJvbSAnLi9vYnNlcnZhYmxlLWFycmF5JztcclxuXHJcbi8vIFRPRE86IG1peGluIGltcGwgaXMgbm90IHZlcnkgdHlwZXNhZmVcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVsYXRpb25BcnJheSBleHRlbmRzIE9ic2VydmFibGVBcnJheSB7XHJcbiAgW2luZGV4OiBudW1iZXJdOiBFbnRpdHk7XHJcbiAgcGFyZW50RW50aXR5OiBFbnRpdHk7XHJcbiAgcGFyZW50UHJvcGVydHk/OiBEYXRhUHJvcGVydHk7XHJcbiAgbmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHk7XHJcbiAgX2luUHJvZ3Jlc3M/OiBib29sZWFuO1xyXG4gIF9hZGRzSW5Qcm9jZXNzOiBFbnRpdHlbXTtcclxuICBsb2FkKHF1ZXJ5U3VjY2Vzc0NhbGxiYWNrPzogUXVlcnlTdWNjZXNzQ2FsbGJhY2ssIHF1ZXJ5RXJyb3JDYWxsYmFjaz86IFF1ZXJ5RXJyb3JDYWxsYmFjayk6IFByb21pc2U8UXVlcnlSZXN1bHQ+OyBcclxufVxyXG5cclxubGV0IHJlbGF0aW9uQXJyYXlNaXhpbiA9IHtcclxuXHJcbiAgLyoqXHJcbiAgUmVsYXRpb24gYXJyYXlzIGFyZSBub3QgYWN0dWFsbHkgY2xhc3NlcywgdGhleSBhcmUgb2JqZWN0cyB0aGF0IG1pbWljIGFycmF5cy4gQSByZWxhdGlvbiBhcnJheSBpcyBjb2xsZWN0aW9uIG9mXHJcbiAgZW50aXRpZXMgYXNzb2NpYXRlZCB3aXRoIGEgbmF2aWdhdGlvbiBwcm9wZXJ0eSBvbiBhIHNpbmdsZSBlbnRpdHkuIGkuZS4gY3VzdG9tZXIub3JkZXJzIG9yIG9yZGVyLm9yZGVyRGV0YWlscy5cclxuICBUaGlzIGNvbGxlY3Rpb24gbG9va3MgbGlrZSBhbiBhcnJheSBpbiB0aGF0IHRoZSBiYXNpYyBtZXRob2RzIG9uIGFycmF5cyBzdWNoIGFzICdwdXNoJywgJ3BvcCcsICdzaGlmdCcsICd1bnNoaWZ0JywgJ3NwbGljZSdcclxuICBhcmUgYWxsIHByb3ZpZGVkIGFzIHdlbGwgYXMgc2V2ZXJhbCBzcGVjaWFsIHB1cnBvc2UgbWV0aG9kcy5cclxuICBAY2xhc3Mge3JlbGF0aW9uQXJyYXl9XHJcbiAgKiovXHJcblxyXG4gIC8qKlxyXG4gIEFuIFtbRXZlbnRdXSB0aGF0IGZpcmVzIHdoZW5ldmVyIHRoZSBjb250ZW50cyBvZiB0aGlzIGFycmF5IGNoYW5nZWQuICBUaGlzIGV2ZW50XHJcbiAgaXMgZmlyZWQgYW55IHRpbWUgYSBuZXcgZW50aXR5IGlzIGF0dGFjaGVkIG9yIGFkZGVkIHRvIHRoZSBFbnRpdHlNYW5hZ2VyIGFuZCBoYXBwZW5zIHRvIGJlbG9uZyB0byB0aGlzIGNvbGxlY3Rpb24uXHJcbiAgQWRkcyB0aGF0IG9jY3VyIGFzIGEgcmVzdWx0IG9mIHF1ZXJ5IG9yIGltcG9ydCBvcGVyYXRpb25zIGFyZSBiYXRjaGVkIHNvIHRoYXQgYWxsIG9mIHRoZSBhZGRzIG9yIHJlbW92ZXMgdG8gYW55IGluZGl2aWR1YWxcclxuICBjb2xsZWN0aW9ucyBhcmUgY29sbGVjdGVkIGludG8gYSBzaW5nbGUgbm90aWZpY2F0aW9uIGV2ZW50IGZvciBlYWNoIHJlbGF0aW9uIGFycmF5LlxyXG4gIEBleGFtcGxlXHJcbiAgICAgIC8vIGFzc3VtZSBvcmRlciBpcyBhbiBvcmRlciBlbnRpdHkgYXR0YWNoZWQgdG8gYW4gRW50aXR5TWFuYWdlci5cclxuICAgICAgb3JkZXJzLmFycmF5Q2hhbmdlZC5zdWJzY3JpYmUoXHJcbiAgICAgIGZ1bmN0aW9uIChhcnJheUNoYW5nZWRBcmdzKSB7XHJcbiAgICAgICAgICBsZXQgYWRkZWRFbnRpdGllcyA9IGFycmF5Q2hhbmdlZEFyZ3MuYWRkZWQ7XHJcbiAgICAgICAgICBsZXQgcmVtb3ZlZEVudGl0aWVzID0gYXJyYXlDaGFuZ2VkLnJlbW92ZWQ7XHJcbiAgICAgIH0pO1xyXG4gIEBldmVudCBhcnJheUNoYW5nZWRcclxuICBAcGFyYW0gYWRkZWQge0FycmF5IG9mIEVudGl0eX0gQW4gYXJyYXkgb2YgYWxsIG9mIHRoZSBlbnRpdGllcyBhZGRlZCB0byB0aGlzIGNvbGxlY3Rpb24uXHJcbiAgQHBhcmFtIHJlbW92ZWQge0FycmF5IG9mIEVudGl0eX0gQW4gYXJyYXkgb2YgYWxsIG9mIHRoZSByZW1vdmVkIGZyb20gdGhpcyBjb2xsZWN0aW9uLlxyXG4gIEByZWFkT25seVxyXG4gICoqL1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgUGVyZm9ybXMgYW4gYXN5bmNocm9ub3VzIGxvYWQgb2YgYWxsIG90aGVyIHRoZSBlbnRpdGllcyBhc3NvY2lhdGVkIHdpdGggdGhpcyByZWxhdGlvbkFycmF5LlxyXG4gIEBleGFtcGxlXHJcbiAgICAgIC8vIGFzc3VtZSBvcmRlcnMgaXMgYW4gZW1wdHksIGFzIHlldCB1bnBvcHVsYXRlZCwgcmVsYXRpb24gYXJyYXkgb2Ygb3JkZXJzXHJcbiAgICAgIC8vIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGN1c3RvbWVyLlxyXG4gICAgICBvcmRlcnMubG9hZCgpLnRoZW4oLi4uKVxyXG4gIEBtZXRob2QgbG9hZFxyXG4gIEBwYXJhbSBbY2FsbGJhY2tdIHtGdW5jdGlvbn1cclxuICBAcGFyYW0gW2Vycm9yQ2FsbGJhY2tdIHtGdW5jdGlvbn1cclxuICBAcmV0dXJuIHtQcm9taXNlfVxyXG4gICoqL1xyXG4gIGxvYWQ6IGZ1bmN0aW9uKGNhbGxiYWNrPzogUXVlcnlTdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2s/OiBRdWVyeUVycm9yQ2FsbGJhY2spOiBQcm9taXNlPFF1ZXJ5UmVzdWx0PiB7XHJcbiAgICBsZXQgcGFyZW50ID0gdGhpcy5wYXJlbnRFbnRpdHk7XHJcbiAgICBsZXQgcXVlcnkgPSBFbnRpdHlRdWVyeS5mcm9tRW50aXR5TmF2aWdhdGlvbih0aGlzLnBhcmVudEVudGl0eSwgdGhpcy5uYXZpZ2F0aW9uUHJvcGVydHkpO1xyXG4gICAgbGV0IGVtID0gcGFyZW50LmVudGl0eUFzcGVjdC5lbnRpdHlNYW5hZ2VyO1xyXG4gICAgcmV0dXJuIGVtLmV4ZWN1dGVRdWVyeShxdWVyeSwgY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spO1xyXG4gIH0sXHJcblxyXG4gIF9nZXRFdmVudFBhcmVudDogZnVuY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRFbnRpdHkuZW50aXR5QXNwZWN0O1xyXG4gIH0sXHJcblxyXG4gIF9nZXRQZW5kaW5nUHViczogZnVuY3Rpb24oKSB7XHJcbiAgICBsZXQgZW0gPSB0aGlzLnBhcmVudEVudGl0eS5lbnRpdHlBc3BlY3QuZW50aXR5TWFuYWdlcjtcclxuICAgIHJldHVybiBlbSAmJiBlbS5fcGVuZGluZ1B1YnM7XHJcbiAgfSxcclxuXHJcbiAgLy8gdmlydHVhbCBpbXBsc1xyXG4gIF9nZXRHb29kQWRkczogZnVuY3Rpb24oYWRkczogRW50aXR5W10pIHtcclxuICAgIHJldHVybiBnZXRHb29kQWRkcyh0aGlzLCBhZGRzKTtcclxuICB9LFxyXG5cclxuICBfcHJvY2Vzc0FkZHM6IGZ1bmN0aW9uKGFkZHM6IEVudGl0eVtdKSB7XHJcbiAgICBwcm9jZXNzQWRkcyh0aGlzLCBhZGRzKTtcclxuICB9LFxyXG5cclxuICBfcHJvY2Vzc1JlbW92ZXM6IGZ1bmN0aW9uKHJlbW92ZXM6IEVudGl0eVtdKSB7XHJcbiAgICBwcm9jZXNzUmVtb3Zlcyh0aGlzLCByZW1vdmVzKTtcclxuICB9XHJcblxyXG59O1xyXG5cclxuZnVuY3Rpb24gZ2V0R29vZEFkZHMocmVsYXRpb25BcnJheTogUmVsYXRpb25BcnJheSwgYWRkczogRW50aXR5W10pIHtcclxuICBsZXQgZ29vZEFkZHMgPSBjaGVja0ZvckR1cHMocmVsYXRpb25BcnJheSwgYWRkcyk7XHJcbiAgaWYgKCFnb29kQWRkcy5sZW5ndGgpIHtcclxuICAgIHJldHVybiBnb29kQWRkcztcclxuICB9XHJcbiAgbGV0IHBhcmVudEVudGl0eSA9IHJlbGF0aW9uQXJyYXkucGFyZW50RW50aXR5O1xyXG4gIGxldCBlbnRpdHlNYW5hZ2VyID0gcGFyZW50RW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlNYW5hZ2VyO1xyXG4gIC8vIHdlIGRvIG5vdCB3YW50IHRvIGF0dGFjaCBhbiBlbnRpdHkgZHVyaW5nIGxvYWRpbmdcclxuICAvLyBiZWNhdXNlIHRoZXNlIHdpbGwgYWxsIGJlICdhdHRhY2hlZCcgYXQgYSBsYXRlciBzdGVwLlxyXG4gIGlmIChlbnRpdHlNYW5hZ2VyICYmICFlbnRpdHlNYW5hZ2VyLmlzTG9hZGluZykge1xyXG4gICAgZ29vZEFkZHMuZm9yRWFjaChmdW5jdGlvbiAoYWRkKSB7XHJcbiAgICAgIGlmIChhZGQuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzRGV0YWNoZWQoKSkge1xyXG4gICAgICAgIHJlbGF0aW9uQXJyYXkuX2luUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBlbnRpdHlNYW5hZ2VyIS5hdHRhY2hFbnRpdHkoYWRkLCBFbnRpdHlTdGF0ZS5BZGRlZCk7XHJcbiAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgIHJlbGF0aW9uQXJyYXkuX2luUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4gZ29vZEFkZHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHByb2Nlc3NBZGRzKHJlbGF0aW9uQXJyYXk6IFJlbGF0aW9uQXJyYXksIGFkZHM6IEVudGl0eVtdKSB7XHJcbiAgbGV0IHBhcmVudEVudGl0eSA9IHJlbGF0aW9uQXJyYXkucGFyZW50RW50aXR5O1xyXG4gIGxldCBucCA9IHJlbGF0aW9uQXJyYXkubmF2aWdhdGlvblByb3BlcnR5O1xyXG4gIGxldCBhZGRzSW5Qcm9jZXNzID0gcmVsYXRpb25BcnJheS5fYWRkc0luUHJvY2VzcztcclxuXHJcbiAgbGV0IGludk5wID0gbnAuaW52ZXJzZTtcclxuICBsZXQgc3RhcnRJeCA9IGFkZHNJblByb2Nlc3MubGVuZ3RoO1xyXG4gIHRyeSB7XHJcbiAgICBhZGRzLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkRW50aXR5KSB7XHJcbiAgICAgIGFkZHNJblByb2Nlc3MucHVzaChjaGlsZEVudGl0eSk7XHJcbiAgICAgIGlmIChpbnZOcCkge1xyXG4gICAgICAgIGNoaWxkRW50aXR5LnNldFByb3BlcnR5KGludk5wLm5hbWUsIHBhcmVudEVudGl0eSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gVGhpcyBvY2N1cnMgd2l0aCBhIHVuaWRpcmVjdGlvbmFsIDEtbiBuYXZpZ2F0aW9uIC0gaW4gdGhpcyBjYXNlXHJcbiAgICAgICAgLy8gd2UgbmVlZCB0byB1cGRhdGUgdGhlIGZrcyBpbnN0ZWFkIG9mIHRoZSBuYXZQcm9wXHJcbiAgICAgICAgbGV0IHBrcyA9IHBhcmVudEVudGl0eS5lbnRpdHlUeXBlLmtleVByb3BlcnRpZXM7XHJcbiAgICAgICAgbnAuaW52Rm9yZWlnbktleU5hbWVzLmZvckVhY2goZnVuY3Rpb24gKGZrLCBpKSB7XHJcbiAgICAgICAgICBjaGlsZEVudGl0eS5zZXRQcm9wZXJ0eShmaywgcGFyZW50RW50aXR5LmdldFByb3BlcnR5KHBrc1tpXS5uYW1lKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZmluYWxseSB7XHJcbiAgICBhZGRzSW5Qcm9jZXNzLnNwbGljZShzdGFydEl4LCBhZGRzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gcHJvY2Vzc1JlbW92ZXMocmVsYXRpb25BcnJheTogUmVsYXRpb25BcnJheSwgcmVtb3ZlczogRW50aXR5W10pIHtcclxuICBsZXQgaW5wID0gcmVsYXRpb25BcnJheS5uYXZpZ2F0aW9uUHJvcGVydHkuaW52ZXJzZTtcclxuICBpZiAoaW5wKSB7XHJcbiAgICByZW1vdmVzLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkRW50aXR5KSB7XHJcbiAgICAgIGNoaWxkRW50aXR5LnNldFByb3BlcnR5KGlucCEubmFtZSwgbnVsbCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNoZWNrRm9yRHVwcyhyZWxhdGlvbkFycmF5OiBSZWxhdGlvbkFycmF5LCBhZGRzOiBFbnRpdHlbXSkge1xyXG4gIC8vIGRvbid0IGFsbG93IGR1cHMgaW4gdGhpcyBhcnJheS4gLSBhbHNvIHByZXZlbnRzIHJlY3Vyc2lvblxyXG4gIGxldCBwYXJlbnRFbnRpdHkgPSByZWxhdGlvbkFycmF5LnBhcmVudEVudGl0eTtcclxuICBsZXQgbmF2UHJvcCA9IHJlbGF0aW9uQXJyYXkubmF2aWdhdGlvblByb3BlcnR5O1xyXG4gIGxldCBpbnZlcnNlUHJvcCA9IG5hdlByb3AuaW52ZXJzZTtcclxuICBsZXQgZ29vZEFkZHM6IEVudGl0eVtdO1xyXG4gIGlmIChpbnZlcnNlUHJvcCkge1xyXG4gICAgZ29vZEFkZHMgPSBhZGRzLmZpbHRlcihmdW5jdGlvbiAoYSkge1xyXG4gICAgICBpZiAocmVsYXRpb25BcnJheS5fYWRkc0luUHJvY2Vzcy5pbmRleE9mKGEpID49IDApIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGludmVyc2VWYWx1ZSA9IGEuZ2V0UHJvcGVydHkoaW52ZXJzZVByb3AhLm5hbWUpO1xyXG4gICAgICByZXR1cm4gaW52ZXJzZVZhbHVlICE9PSBwYXJlbnRFbnRpdHk7XHJcbiAgICB9KTtcclxuICB9IGVsc2Uge1xyXG4gICAgLy8gVGhpcyBvY2N1cnMgd2l0aCBhIHVuaWRpcmVjdGlvbmFsIDEtPk4gcmVsYXRpb24gKCB3aGVyZSB0aGVyZSBpcyBubyBuIC0+IDEpXHJcbiAgICAvLyBpbiB0aGlzIGNhc2Ugd2UgY29tcGFyZSBma3MuXHJcbiAgICBsZXQgZmtQcm9wTmFtZXMgPSBuYXZQcm9wLmludkZvcmVpZ25LZXlOYW1lcztcclxuICAgIGxldCBrZXlQcm9wcyA9IHBhcmVudEVudGl0eS5lbnRpdHlUeXBlLmtleVByb3BlcnRpZXM7XHJcbiAgICBnb29kQWRkcyA9IGFkZHMuZmlsdGVyKGZ1bmN0aW9uIChhKSB7XHJcbiAgICAgIGlmIChyZWxhdGlvbkFycmF5Ll9hZGRzSW5Qcm9jZXNzLmluZGV4T2YoYSkgPj0gMCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmtQcm9wTmFtZXMuc29tZShmdW5jdGlvbiAoZmssIGkpIHtcclxuICAgICAgICBsZXQga2V5UHJvcCA9IGtleVByb3BzW2ldLm5hbWU7XHJcbiAgICAgICAgbGV0IGtleVZhbCA9IHBhcmVudEVudGl0eS5nZXRQcm9wZXJ0eShrZXlQcm9wKTtcclxuICAgICAgICBsZXQgZmtWYWwgPSBhLmdldFByb3BlcnR5KGZrKTtcclxuICAgICAgICByZXR1cm4ga2V5VmFsICE9PSBma1ZhbDtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmV0dXJuIGdvb2RBZGRzO1xyXG59XHJcblxyXG4vKiogRm9yIHVzZSBieSBicmVlemUgcGx1Z2luIGF1dGhvcnMgb25seS4gVGhlIGNsYXNzIGlzIGZvciB1c2UgaW4gYnVpbGRpbmcgYSBbW0lNb2RlbExpYnJhcnlBZGFwdGVyXV0gaW1wbGVtZW50YXRpb24uIFxyXG5AYWRhcHRlciAoc2VlIFtbSU1vZGVsTGlicmFyeUFkYXB0ZXJdXSkgICAgXHJcbkBoaWRkZW4gXHJcbiovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlUmVsYXRpb25BcnJheShhcnI6IGFueVtdLCBwYXJlbnRFbnRpdHk6IEVudGl0eSwgbmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHkpOiBSZWxhdGlvbkFycmF5IHtcclxuICBsZXQgYXJyWCA9IGFyciBhcyBhbnk7XHJcbiAgYXJyWC5wYXJlbnRFbnRpdHkgPSBwYXJlbnRFbnRpdHk7XHJcbiAgYXJyWC5uYXZpZ2F0aW9uUHJvcGVydHkgPSBuYXZpZ2F0aW9uUHJvcGVydHk7XHJcbiAgYXJyWC5hcnJheUNoYW5nZWQgPSBuZXcgQnJlZXplRXZlbnQoXCJhcnJheUNoYW5nZWRcIiwgYXJyWCk7XHJcbiAgLy8gYXJyYXkgb2YgcHVzaGVzIGN1cnJlbnRseSBpbiBwcm9jZXNzIG9uIHRoaXMgcmVsYXRpb24gYXJyYXkgLSB1c2VkIHRvIHByZXZlbnQgcmVjdXJzaW9uLlxyXG4gIGFyclguX2FkZHNJblByb2Nlc3MgPSBbXTtcclxuICAvLyBuZWVkIHRvIHVzZSBtaXhpbnMgaGVyZSBpbnN0ZWFkIG9mIGluaGVyaXRhbmNlIGJlY2F1c2Ugd2UgYXJlIHN0YXJ0aW5nIGZyb20gYW4gZXhpc3RpbmcgYXJyYXkgb2JqZWN0LlxyXG4gIGNvcmUuZXh0ZW5kKGFyclgsIG9ic2VydmFibGVBcnJheS5taXhpbik7XHJcbiAgcmV0dXJuIGNvcmUuZXh0ZW5kKGFyclgsIHJlbGF0aW9uQXJyYXlNaXhpbikgYXMgUmVsYXRpb25BcnJheTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { core } from './core';
|
|
2
|
+
import { assertConfig } from './assert-param';
|
|
3
|
+
import { DataService } from './data-service';
|
|
4
|
+
/**
|
|
5
|
+
A SaveOptions instance is used to specify the 'options' under which a save will occur.
|
|
6
|
+
**/
|
|
7
|
+
var SaveOptions = /** @class */ (function () {
|
|
8
|
+
function SaveOptions(config) {
|
|
9
|
+
SaveOptions._updateWithConfig(this, config);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance.
|
|
13
|
+
The current instance is returned unchanged.
|
|
14
|
+
**/
|
|
15
|
+
SaveOptions.prototype.setAsDefault = function () {
|
|
16
|
+
return core.setAsDefault(this, SaveOptions);
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
Returns a copy of this SaveOptions with the specified config options applied.
|
|
20
|
+
> var saveOptions = em1.saveOptions.using( {resourceName: "anotherResource" });
|
|
21
|
+
**/
|
|
22
|
+
SaveOptions.prototype.using = function (config) {
|
|
23
|
+
return SaveOptions._updateWithConfig(this, config);
|
|
24
|
+
};
|
|
25
|
+
/** @hidden @internal */
|
|
26
|
+
SaveOptions._updateWithConfig = function (obj, config) {
|
|
27
|
+
if (config) {
|
|
28
|
+
assertConfig(config)
|
|
29
|
+
.whereParam("resourceName").isOptional().isString()
|
|
30
|
+
.whereParam("dataService").isOptional().isInstanceOf(DataService)
|
|
31
|
+
.whereParam("allowConcurrentSaves").isBoolean().isOptional()
|
|
32
|
+
.whereParam("tag").isOptional()
|
|
33
|
+
.applyAll(obj);
|
|
34
|
+
}
|
|
35
|
+
return obj;
|
|
36
|
+
};
|
|
37
|
+
/** The default value whenever SaveOptions are not specified. */
|
|
38
|
+
SaveOptions.defaultInstance = new SaveOptions({ allowConcurrentSaves: false });
|
|
39
|
+
return SaveOptions;
|
|
40
|
+
}());
|
|
41
|
+
export { SaveOptions };
|
|
42
|
+
SaveOptions.prototype._$typeName = "SaveOptions";
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9zYXZlLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBYzdDOztHQUVHO0FBQ0g7SUFlRSxxQkFBWSxNQUEwQjtRQUNwQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFHRDs7O09BR0c7SUFDSCxrQ0FBWSxHQUFaO1FBQ0UsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsMkJBQUssR0FBTCxVQUFNLE1BQXlCO1FBQzdCLE9BQU8sV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsd0JBQXdCO0lBQ1QsNkJBQWlCLEdBQWhDLFVBQWlDLEdBQWdCLEVBQUUsTUFBeUI7UUFDMUUsSUFBSSxNQUFNLEVBQUU7WUFDVixZQUFZLENBQUMsTUFBTSxDQUFDO2lCQUNmLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUU7aUJBQ2xELFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO2lCQUNoRSxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxVQUFVLEVBQUU7aUJBQzNELFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQUU7aUJBQzlCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwQjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQW5DRCxnRUFBZ0U7SUFDekQsMkJBQWUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFvQzNFLGtCQUFDO0NBQUEsQUFqREQsSUFpREM7U0FqRFksV0FBVztBQWtEeEIsV0FBVyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29yZSB9IGZyb20gJy4vY29yZSc7XHJcbmltcG9ydCB7IGFzc2VydENvbmZpZyB9IGZyb20gJy4vYXNzZXJ0LXBhcmFtJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL2RhdGEtc2VydmljZSc7XHJcblxyXG4vKiogQ29uZmlndXJhdGlvbiBpbmZvIHRvIGJlIHBhc3NlZCB0byB0aGUgW1tTYXZlT3B0aW9uc11dIGNvbnN0cnVjdG9yICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2F2ZU9wdGlvbnNDb25maWcge1xyXG4gIC8qKiBSZXNvdXJjZSBuYW1lIHRvIGJlIHVzZWQgZHVyaW5nIHRoZSBzYXZlIC0gdGhpcyBkZWZhdWx0cyB0byBcIlNhdmVDaGFuZ2VzXCIgKi9cclxuICByZXNvdXJjZU5hbWU/OiBzdHJpbmc7XHJcbiAgLyoqIFRoZSBEYXRhU2VydmljZSB0byBiZSB1c2VkIGZvciB0aGlzIHNhdmUuICovXHJcbiAgZGF0YVNlcnZpY2U/OiBEYXRhU2VydmljZTtcclxuICAvKiogV2hldGhlciBtdWx0aXBsZSBzYXZlcyBjYW4gYmUgaW4tZmxpZ2h0IGF0IHRoZSBzYW1lIHRpbWUuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAqL1xyXG4gIGFsbG93Q29uY3VycmVudFNhdmVzPzogYm9vbGVhbjtcclxuICAvKiogRnJlZSBmb3JtIHZhbHVlIHRoYXQgd2lsbCBiZSBzZW50IHRvIHRoZSBzZXJ2ZXIgZHVyaW5nIHRoZSBzYXZlLiAqL1xyXG4gIHRhZz86IGFueTtcclxufVxyXG5cclxuLyoqXHJcbkEgU2F2ZU9wdGlvbnMgaW5zdGFuY2UgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSAnb3B0aW9ucycgdW5kZXIgd2hpY2ggYSBzYXZlIHdpbGwgb2NjdXIuXHJcbioqL1xyXG5leHBvcnQgY2xhc3MgU2F2ZU9wdGlvbnMge1xyXG4gIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG4gIF8kdHlwZU5hbWU6IHN0cmluZzsgLy8gb24gcHJvdG9cclxuICAvKiogUmVzb3VyY2UgbmFtZSB0byBiZSB1c2VkIGR1cmluZyB0aGUgc2F2ZSAtIHRoaXMgZGVmYXVsdHMgdG8gXCJTYXZlQ2hhbmdlc1wiLiBfX1JlYWQgT25seV9fICovXHJcbiAgcmVzb3VyY2VOYW1lOiBzdHJpbmc7XHJcbiAgLyoqIFRoZSBEYXRhU2VydmljZSB0byBiZSB1c2VkIGZvciB0aGlzIHNhdmUuIF9fUmVhZCBPbmx5X18gKi9cclxuICBkYXRhU2VydmljZTogRGF0YVNlcnZpY2U7XHJcbiAgLyoqIFdoZXRoZXIgbXVsdGlwbGUgc2F2ZXMgY2FuIGJlIGluLWZsaWdodCBhdCB0aGUgc2FtZSB0aW1lLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gX19SZWFkIE9ubHlfXyAqL1xyXG4gIGFsbG93Q29uY3VycmVudFNhdmVzOiBib29sZWFuO1xyXG4gIC8qKiBGcmVlIGZvcm0gdmFsdWUgdGhhdCB3aWxsIGJlIHNlbnQgdG8gdGhlIHNlcnZlciBkdXJpbmcgdGhlIHNhdmUuIF9fUmVhZCBPbmx5X18gKi9cclxuICB0YWc6IGFueTtcclxuXHJcbiAgLyoqIFRoZSBkZWZhdWx0IHZhbHVlIHdoZW5ldmVyIFNhdmVPcHRpb25zIGFyZSBub3Qgc3BlY2lmaWVkLiAqL1xyXG4gIHN0YXRpYyBkZWZhdWx0SW5zdGFuY2UgPSBuZXcgU2F2ZU9wdGlvbnMoeyBhbGxvd0NvbmN1cnJlbnRTYXZlczogZmFsc2V9KTtcclxuXHJcbiAgY29uc3RydWN0b3IoY29uZmlnPzogU2F2ZU9wdGlvbnNDb25maWcpIHtcclxuICAgIFNhdmVPcHRpb25zLl91cGRhdGVXaXRoQ29uZmlnKHRoaXMsIGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgU2V0cyB0aGUgJ2RlZmF1bHRJbnN0YW5jZScgYnkgY3JlYXRpbmcgYSBjb3B5IG9mIHRoZSBjdXJyZW50ICdkZWZhdWx0SW5zdGFuY2UnIGFuZCB0aGVuIGFwcGx5aW5nIGFsbCBvZiB0aGUgcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBpbnN0YW5jZS5cclxuICBUaGUgY3VycmVudCBpbnN0YW5jZSBpcyByZXR1cm5lZCB1bmNoYW5nZWQuXHJcbiAgKiovXHJcbiAgc2V0QXNEZWZhdWx0KCkge1xyXG4gICAgcmV0dXJuIGNvcmUuc2V0QXNEZWZhdWx0KHRoaXMsIFNhdmVPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gIFJldHVybnMgYSBjb3B5IG9mIHRoaXMgU2F2ZU9wdGlvbnMgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbmZpZyBvcHRpb25zIGFwcGxpZWQuXHJcbiAgPiAgICAgdmFyIHNhdmVPcHRpb25zID0gZW0xLnNhdmVPcHRpb25zLnVzaW5nKCB7cmVzb3VyY2VOYW1lOiBcImFub3RoZXJSZXNvdXJjZVwiIH0pO1xyXG4gICoqL1xyXG4gIHVzaW5nKGNvbmZpZzogU2F2ZU9wdGlvbnNDb25maWcpIHtcclxuICAgIHJldHVybiBTYXZlT3B0aW9ucy5fdXBkYXRlV2l0aENvbmZpZyh0aGlzLCBjb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbiAgcHJpdmF0ZSBzdGF0aWMgX3VwZGF0ZVdpdGhDb25maWcob2JqOiBTYXZlT3B0aW9ucywgY29uZmlnOiBTYXZlT3B0aW9uc0NvbmZpZykge1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICBhc3NlcnRDb25maWcoY29uZmlnKVxyXG4gICAgICAgICAgLndoZXJlUGFyYW0oXCJyZXNvdXJjZU5hbWVcIikuaXNPcHRpb25hbCgpLmlzU3RyaW5nKClcclxuICAgICAgICAgIC53aGVyZVBhcmFtKFwiZGF0YVNlcnZpY2VcIikuaXNPcHRpb25hbCgpLmlzSW5zdGFuY2VPZihEYXRhU2VydmljZSlcclxuICAgICAgICAgIC53aGVyZVBhcmFtKFwiYWxsb3dDb25jdXJyZW50U2F2ZXNcIikuaXNCb29sZWFuKCkuaXNPcHRpb25hbCgpXHJcbiAgICAgICAgICAud2hlcmVQYXJhbShcInRhZ1wiKS5pc09wdGlvbmFsKClcclxuICAgICAgICAgIC5hcHBseUFsbChvYmopO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcblxyXG59XHJcblNhdmVPcHRpb25zLnByb3RvdHlwZS5fJHR5cGVOYW1lID0gXCJTYXZlT3B0aW9uc1wiO1xyXG5cclxuXHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { core } from './core';
|
|
2
|
+
/** @hidden @internal */
|
|
3
|
+
// Represents entities not yet attached to navigationProperties.
|
|
4
|
+
var UnattachedChildrenMap = /** @class */ (function () {
|
|
5
|
+
function UnattachedChildrenMap() {
|
|
6
|
+
// key is EntityKey.toString(), value is array of { navigationProperty, children }
|
|
7
|
+
this.map = {};
|
|
8
|
+
}
|
|
9
|
+
UnattachedChildrenMap.prototype.addChild = function (parentEntityKey, navigationProperty, child) {
|
|
10
|
+
var tuple = this.getTuple(parentEntityKey, navigationProperty);
|
|
11
|
+
if (!tuple) {
|
|
12
|
+
tuple = { navigationProperty: navigationProperty, children: [] };
|
|
13
|
+
core.getArray(this.map, parentEntityKey.toString()).push(tuple);
|
|
14
|
+
}
|
|
15
|
+
tuple.children.push(child);
|
|
16
|
+
};
|
|
17
|
+
UnattachedChildrenMap.prototype.removeChildren = function (parentEntityKeyString, navigationProperty) {
|
|
18
|
+
var tuples = this.map[parentEntityKeyString];
|
|
19
|
+
if (!tuples)
|
|
20
|
+
return;
|
|
21
|
+
core.arrayRemoveItem(tuples, function (t) {
|
|
22
|
+
return t.navigationProperty === navigationProperty;
|
|
23
|
+
});
|
|
24
|
+
if (!tuples.length) {
|
|
25
|
+
delete this.map[parentEntityKeyString];
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
UnattachedChildrenMap.prototype.getTuple = function (parentEntityKey, navigationProperty) {
|
|
29
|
+
var tuples = this.getTuples(parentEntityKey);
|
|
30
|
+
if (!tuples)
|
|
31
|
+
return null;
|
|
32
|
+
var tuple = core.arrayFirst(tuples, function (t) {
|
|
33
|
+
return t.navigationProperty === navigationProperty;
|
|
34
|
+
});
|
|
35
|
+
return tuple;
|
|
36
|
+
};
|
|
37
|
+
UnattachedChildrenMap.prototype.getTuples = function (parentEntityKey) {
|
|
38
|
+
var allTuples = [];
|
|
39
|
+
var tuples = this.map[parentEntityKey.toString()];
|
|
40
|
+
if (tuples) {
|
|
41
|
+
allTuples = allTuples.concat(tuples);
|
|
42
|
+
}
|
|
43
|
+
var entityType = parentEntityKey.entityType;
|
|
44
|
+
while (entityType.baseEntityType) {
|
|
45
|
+
entityType = entityType.baseEntityType;
|
|
46
|
+
var baseKey = parentEntityKey.toString(entityType);
|
|
47
|
+
tuples = this.map[baseKey];
|
|
48
|
+
if (tuples) {
|
|
49
|
+
allTuples = allTuples.concat(tuples);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return (allTuples.length) ? allTuples : undefined;
|
|
53
|
+
};
|
|
54
|
+
UnattachedChildrenMap.prototype.getTuplesByString = function (parentEntityKeyString) {
|
|
55
|
+
return this.map[parentEntityKeyString];
|
|
56
|
+
};
|
|
57
|
+
return UnattachedChildrenMap;
|
|
58
|
+
}());
|
|
59
|
+
export { UnattachedChildrenMap };
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdHRhY2hlZC1jaGlsZHJlbi1tYXAuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9icmVlemUtY2xpZW50LyIsInNvdXJjZXMiOlsic3JjL3VuYXR0YWNoZWQtY2hpbGRyZW4tbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFXOUIsd0JBQXdCO0FBQ3hCLGlFQUFpRTtBQUNqRTtJQUFBO1FBQ0Usa0ZBQWtGO1FBQ2xGLFFBQUcsR0FBcUMsRUFBRSxDQUFDO0lBc0Q3QyxDQUFDO0lBbkRDLHdDQUFRLEdBQVIsVUFBUyxlQUEwQixFQUFFLGtCQUFzQyxFQUFFLEtBQWE7UUFDeEYsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsS0FBSyxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakU7UUFDRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsOENBQWMsR0FBZCxVQUFlLHFCQUE2QixFQUFFLGtCQUFzQztRQUNsRixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFVBQUMsQ0FBTTtZQUNsQyxPQUFPLENBQUMsQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELHdDQUFRLEdBQVIsVUFBUyxlQUEwQixFQUFFLGtCQUFzQztRQUN6RSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQixDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQseUNBQVMsR0FBVCxVQUFVLGVBQTBCO1FBQ2xDLElBQUksU0FBUyxHQUFnQixFQUFFLENBQUM7UUFDaEMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLE1BQU0sRUFBRTtZQUNWLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxVQUFVLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUM1QyxPQUFPLFVBQVUsQ0FBQyxjQUFjLEVBQUU7WUFDaEMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUM7WUFDdkMsSUFBSSxPQUFPLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRCxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzQixJQUFJLE1BQU0sRUFBRTtnQkFDVixTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0QztTQUNGO1FBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEQsQ0FBQztJQUVELGlEQUFpQixHQUFqQixVQUFrQixxQkFBNkI7UUFDN0MsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVILDRCQUFDO0FBQUQsQ0FBQyxBQXhERCxJQXdEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvcmUgfSBmcm9tICcuL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuL2VudGl0eS1hc3BlY3QnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uUHJvcGVydHkgfSBmcm9tICcuL2VudGl0eS1tZXRhZGF0YSc7XHJcbmltcG9ydCB7IEVudGl0eUtleSB9IGZyb20gJy4vZW50aXR5LWtleSc7XHJcblxyXG4vKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuZXhwb3J0IGludGVyZmFjZSBJTmF2VHVwbGUge1xyXG4gIG5hdmlnYXRpb25Qcm9wZXJ0eTogTmF2aWdhdGlvblByb3BlcnR5O1xyXG4gIGNoaWxkcmVuOiBFbnRpdHlbXTtcclxufVxyXG5cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbi8vIFJlcHJlc2VudHMgZW50aXRpZXMgbm90IHlldCBhdHRhY2hlZCB0byBuYXZpZ2F0aW9uUHJvcGVydGllcy4gXHJcbmV4cG9ydCBjbGFzcyBVbmF0dGFjaGVkQ2hpbGRyZW5NYXAge1xyXG4gIC8vIGtleSBpcyBFbnRpdHlLZXkudG9TdHJpbmcoKSwgdmFsdWUgaXMgYXJyYXkgb2YgeyBuYXZpZ2F0aW9uUHJvcGVydHksIGNoaWxkcmVuIH1cclxuICBtYXA6IHsgW2luZGV4OiBzdHJpbmddOiBJTmF2VHVwbGVbXSB9ID0ge307XHJcblxyXG5cclxuICBhZGRDaGlsZChwYXJlbnRFbnRpdHlLZXk6IEVudGl0eUtleSwgbmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHksIGNoaWxkOiBFbnRpdHkpIHtcclxuICAgIGxldCB0dXBsZSA9IHRoaXMuZ2V0VHVwbGUocGFyZW50RW50aXR5S2V5LCBuYXZpZ2F0aW9uUHJvcGVydHkpO1xyXG4gICAgaWYgKCF0dXBsZSkge1xyXG4gICAgICB0dXBsZSA9IHsgbmF2aWdhdGlvblByb3BlcnR5OiBuYXZpZ2F0aW9uUHJvcGVydHksIGNoaWxkcmVuOiBbXSB9O1xyXG4gICAgICBjb3JlLmdldEFycmF5KHRoaXMubWFwLCBwYXJlbnRFbnRpdHlLZXkudG9TdHJpbmcoKSkucHVzaCh0dXBsZSk7XHJcbiAgICB9XHJcbiAgICB0dXBsZS5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUNoaWxkcmVuKHBhcmVudEVudGl0eUtleVN0cmluZzogc3RyaW5nLCBuYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSkge1xyXG4gICAgbGV0IHR1cGxlcyA9IHRoaXMubWFwW3BhcmVudEVudGl0eUtleVN0cmluZ107XHJcbiAgICBpZiAoIXR1cGxlcykgcmV0dXJuO1xyXG4gICAgY29yZS5hcnJheVJlbW92ZUl0ZW0odHVwbGVzLCAodDogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB0Lm5hdmlnYXRpb25Qcm9wZXJ0eSA9PT0gbmF2aWdhdGlvblByb3BlcnR5O1xyXG4gICAgfSk7XHJcbiAgICBpZiAoIXR1cGxlcy5sZW5ndGgpIHtcclxuICAgICAgZGVsZXRlIHRoaXMubWFwW3BhcmVudEVudGl0eUtleVN0cmluZ107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUdXBsZShwYXJlbnRFbnRpdHlLZXk6IEVudGl0eUtleSwgbmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHkpIHtcclxuICAgIGxldCB0dXBsZXMgPSB0aGlzLmdldFR1cGxlcyhwYXJlbnRFbnRpdHlLZXkpO1xyXG4gICAgaWYgKCF0dXBsZXMpIHJldHVybiBudWxsO1xyXG4gICAgbGV0IHR1cGxlID0gY29yZS5hcnJheUZpcnN0KHR1cGxlcywgZnVuY3Rpb24gKHQpIHtcclxuICAgICAgcmV0dXJuIHQubmF2aWdhdGlvblByb3BlcnR5ID09PSBuYXZpZ2F0aW9uUHJvcGVydHk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0dXBsZTtcclxuICB9XHJcblxyXG4gIGdldFR1cGxlcyhwYXJlbnRFbnRpdHlLZXk6IEVudGl0eUtleSkge1xyXG4gICAgbGV0IGFsbFR1cGxlczogSU5hdlR1cGxlW10gPSBbXTtcclxuICAgIGxldCB0dXBsZXMgPSB0aGlzLm1hcFtwYXJlbnRFbnRpdHlLZXkudG9TdHJpbmcoKV07XHJcbiAgICBpZiAodHVwbGVzKSB7XHJcbiAgICAgIGFsbFR1cGxlcyA9IGFsbFR1cGxlcy5jb25jYXQodHVwbGVzKTtcclxuICAgIH1cclxuICAgIGxldCBlbnRpdHlUeXBlID0gcGFyZW50RW50aXR5S2V5LmVudGl0eVR5cGU7XHJcbiAgICB3aGlsZSAoZW50aXR5VHlwZS5iYXNlRW50aXR5VHlwZSkge1xyXG4gICAgICBlbnRpdHlUeXBlID0gZW50aXR5VHlwZS5iYXNlRW50aXR5VHlwZTtcclxuICAgICAgbGV0IGJhc2VLZXkgPSBwYXJlbnRFbnRpdHlLZXkudG9TdHJpbmcoZW50aXR5VHlwZSk7XHJcbiAgICAgIHR1cGxlcyA9IHRoaXMubWFwW2Jhc2VLZXldO1xyXG4gICAgICBpZiAodHVwbGVzKSB7XHJcbiAgICAgICAgYWxsVHVwbGVzID0gYWxsVHVwbGVzLmNvbmNhdCh0dXBsZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKGFsbFR1cGxlcy5sZW5ndGgpID8gYWxsVHVwbGVzIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHVwbGVzQnlTdHJpbmcocGFyZW50RW50aXR5S2V5U3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLm1hcFtwYXJlbnRFbnRpdHlLZXlTdHJpbmddO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|