本文整理汇总了TypeScript中core/util/array.difference函数的典型用法代码示例。如果您正苦于以下问题:TypeScript difference函数的具体用法?TypeScript difference怎么用?TypeScript difference使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了difference函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: it
it("match between Python and bokehjs", () => {
let fail_count = 0
const all_view_model_names = concat([core_defaults.all_view_model_names(), widget_defaults.all_view_model_names()])
for (const name of all_view_model_names) {
const model = Models(name)
const instance = new model({}, {silent: true, defer_initialization: true})
const attrs = instance.attributes_as_json(true, deep_value_to_json)
strip_ids(attrs)
const python_defaults = get_defaults(name)
const bokehjs_defaults = attrs
if (!check_matching_defaults(name, python_defaults, bokehjs_defaults)) {
console.log(name)
// console.log('python defaults:')
// console.log(python_defaults)
// console.log('bokehjs defaults:')
// console.log(bokehjs_defaults)
console.log(difference(keys(python_defaults), keys(bokehjs_defaults)))
fail_count += 1
}
}
console.error(`Python/bokehjs matching defaults problems: ${fail_count}`)
expect(fail_count).to.equal(0)
})
示例2: build_levels
build_levels(): void {
const renderer_models = this.model.plot.all_renderers
// should only bind events on NEW views
const old_renderers = keys(this.renderer_views)
const new_renderer_views = build_views(this.renderer_views, renderer_models, this.view_options()) as RendererView[]
const renderers_to_remove = difference(old_renderers, renderer_models.map((model) => model.id))
for (const id_ of renderers_to_remove) {
delete this.levels.glyph[id_]
}
for (const view of new_renderer_views) {
this.levels[view.model.level][view.model.id] = view
}
}
示例3: build_levels
build_levels() {
const renderer_models = this.model.plot.all_renderers;
// should only bind events on NEW views
const old_renderers = Object.keys(this.renderer_views);
const new_renderer_views = build_views(this.renderer_views, renderer_models, this.view_options());
const renderers_to_remove = difference(old_renderers, renderer_models.map((model) => model.id))
for (const id_ of renderers_to_remove) {
delete this.levels.glyph[id_];
}
for (const view of new_renderer_views) {
this.levels[view.model.level][view.model.id] = view;
}
return this;
}
示例4: render
render() {
let dtrender, dtselect, glyph, nonselection_glyph, selection_glyph, trender;
if (!this.model.visible) {
return;
}
const t0 = Date.now();
const glsupport = this.glyph.glglyph;
this.glyph.map_data();
const dtmap = Date.now() - t0;
const tmask = Date.now();
// all_indices is in full data space, indices is converted to subset space
// either by mask_data (that uses the spatial index) or manually
let indices = this.glyph.mask_data(this.all_indices);
if (indices.length === this.all_indices.length) {
indices = range(0, this.all_indices.length);
}
const dtmask = Date.now() - tmask;
const { ctx } = this.plot_view.canvas_view;
ctx.save();
// selected is in full set space
const {selected: _selected} = this.model.data_source;
let selected: number[]
if (!_selected || (_selected.length === 0)) {
selected = [];
} else {
if (_selected['0d'].glyph) {
selected = this.model.view.convert_indices_from_subset(indices);
} else if (_selected['1d'].indices.length > 0) {
selected = _selected['1d'].indices;
} else {
selected = ((() => {
const result = [];
for (const i of Object.keys(_selected["2d"].indices)) {
result.push(parseInt(i));
}
return result;
})());
}
}
// inspected is in full set space
let { inspected } = this.model.data_source;
if (!inspected || (inspected.length === 0)) {
inspected = [];
} else {
if (inspected['0d'].glyph) {
inspected = this.model.view.convert_indices_from_subset(indices);
} else if (inspected['1d'].indices.length > 0) {
inspected = inspected['1d'].indices;
} else {
inspected = ((() => {
const result = [];
for (const i of Object.keys(inspected["2d"].indices)) {
result.push(parseInt(i));
}
return result;
})());
}
}
// inspected is transformed to subset space
inspected = ((() => {
const result = [];
for (const i of indices) {
if (includes(inspected, this.all_indices[i])) {
result.push(i);
}
}
return result;
})());
const { lod_threshold } = this.plot_model.plot;
if (((this.model.document != null ? this.model.document.interactive_duration() : undefined) > 0) && !glsupport && (lod_threshold != null) && (this.all_indices.length > lod_threshold)) {
// Render decimated during interaction if too many elements and not using GL
indices = this.decimated;
glyph = this.decimated_glyph;
nonselection_glyph = this.decimated_glyph;
({ selection_glyph } = this);
} else {
glyph = this.model.muted && (this.muted_glyph != null) ? this.muted_glyph : this.glyph;
({ nonselection_glyph } = this);
({ selection_glyph } = this);
}
if ((this.hover_glyph != null) && inspected.length) {
indices = difference(indices, inspected);
}
if (!(selected.length && this.have_selection_glyphs())) {
trender = Date.now();
if (this.glyph instanceof LineView) {
if (this.hover_glyph && inspected.length) {
this.hover_glyph.render(ctx, this.model.view.convert_indices_from_subset(inspected), this.glyph);
} else {
//.........这里部分代码省略.........
示例5: render
render(): void {
if (!this.model.visible)
return
const t0 = Date.now()
const glsupport = this.glyph.glglyph
this.glyph.map_data()
const dtmap = Date.now() - t0
const tmask = Date.now()
// all_indices is in full data space, indices is converted to subset space
// either by mask_data (that uses the spatial index) or manually
let indices = this.glyph.mask_data(this.all_indices)
if (indices.length === this.all_indices.length) {
indices = range(0, this.all_indices.length)
}
const dtmask = Date.now() - tmask
const {ctx} = this.plot_view.canvas_view
ctx.save()
// selected is in full set space
const {selected} = this.model.data_source
let selected_full_indices: number[]
if (!selected || selected.is_empty()) {
selected_full_indices = []
} else {
if (this.glyph instanceof LineView && selected.selected_glyph === this.glyph.model) {
selected_full_indices = this.model.view.convert_indices_from_subset(indices)
} else {
selected_full_indices = selected.indices
}
}
// inspected is in full set space
const {inspected} = this.model.data_source
let inspected_full_indices: number[]
if (!inspected || (inspected.length === 0)) {
inspected_full_indices = []
} else {
if (inspected['0d'].glyph) {
inspected_full_indices = this.model.view.convert_indices_from_subset(indices)
} else if (inspected['1d'].indices.length > 0) {
inspected_full_indices = inspected['1d'].indices
} else {
inspected_full_indices = ((() => {
const result = []
for (const i of Object.keys(inspected["2d"].indices)) {
result.push(parseInt(i))
}
return result
})())
}
}
// inspected is transformed to subset space
const inspected_subset_indices: number[] = ((() => {
const result = []
for (const i of indices) {
if (includes(inspected_full_indices, this.all_indices[i]))
result.push(i)
}
return result
})())
const {lod_threshold} = this.plot_model
let glyph: GlyphView
let nonselection_glyph: GlyphView
let selection_glyph: GlyphView
if ((this.model.document != null ? this.model.document.interactive_duration() > 0 : false)
&& !glsupport && lod_threshold != null && this.all_indices.length > lod_threshold) {
// Render decimated during interaction if too many elements and not using GL
indices = this.decimated
glyph = this.decimated_glyph
nonselection_glyph = this.decimated_glyph
selection_glyph = this.selection_glyph
} else {
glyph = this.model.muted && this.muted_glyph != null ? this.muted_glyph : this.glyph
nonselection_glyph = this.nonselection_glyph
selection_glyph = this.selection_glyph
}
if (this.hover_glyph != null && inspected_subset_indices.length)
indices = difference(indices, inspected_subset_indices)
// Render with no selection
let dtselect: number | null = null
let trender: number
if (!(selected_full_indices.length && this.have_selection_glyphs())) {
trender = Date.now()
if (this.glyph instanceof LineView) {
if (this.hover_glyph && inspected_subset_indices.length)
this.hover_glyph.render(ctx, this.model.view.convert_indices_from_subset(inspected_subset_indices), this.glyph)
else
glyph.render(ctx, this.all_indices, this.glyph)
} else {
glyph.render(ctx, indices, this.glyph)
if (this.hover_glyph && inspected_subset_indices.length)
//.........这里部分代码省略.........